diff --git a/.agent/rules/claude-mem-context.md b/.agent/rules/claude-mem-context.md new file mode 100644 index 00000000..66d02575 --- /dev/null +++ b/.agent/rules/claude-mem-context.md @@ -0,0 +1,7 @@ + +# claude-mem: Cross-Session Memory + +*No context yet. Complete your first session and context will appear here.* + +Use claude-mem's MCP search tools for manual memory queries. + diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index eaad88b2..5a29d83d 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -10,7 +10,7 @@ "plugins": [ { "name": "claude-mem", - "version": "10.6.3", + "version": "11.0.0", "source": "./plugin", "description": "Persistent memory system for Claude Code - context compression across sessions" } diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 00000000..66d02575 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,7 @@ + +# claude-mem: Cross-Session Memory + +*No context yet. Complete your first session and context will appear here.* + +Use claude-mem's MCP search tools for manual memory queries. + diff --git a/.gitignore b/.gitignore index 448f7aa2..bf408642 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ datasets/ node_modules/ dist/ -!installer/dist/ **/_tree-sitter/ *.log .DS_Store @@ -35,4 +34,7 @@ src/ui/viewer.html .claude-octopus/ .claude/session-intent.md .claude/session-plan.md -.octo/ \ No newline at end of file +.octo/ + +# Local contribution analysis (not part of upstream) +CONTRIB_NOTES.md \ No newline at end of file diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..1aab776a --- /dev/null +++ b/.npmignore @@ -0,0 +1,48 @@ +# Source code (dist/ and plugin/ are the shipped artifacts) +src/ +scripts/ +tests/ +docs/ +datasets/ +private/ +antipattern-czar/ + +# Heavy binaries installed at runtime via smart-install.js +plugin/node_modules/ +plugin/scripts/claude-mem +plugin/bun.lock +plugin/data/ +plugin/data.backup/ + +# Development files +*.ts +!*.d.ts +tsconfig*.json +.eslintrc* +.prettierrc* +.editorconfig +jest.config* +vitest.config* + +# Git and CI +.git/ +.github/ +.gitignore +.claude/ +.cursor/ +.mcp.json +.plan/ + +# OS files +.DS_Store +*.log +*.tmp +*.temp +Thumbs.db + +# Misc +Auto Run Docs/ +~*/ +http*/ +https*/ +.idea/ diff --git a/.windsurf/rules/claude-mem-context.md b/.windsurf/rules/claude-mem-context.md new file mode 100644 index 00000000..98e6203e --- /dev/null +++ b/.windsurf/rules/claude-mem-context.md @@ -0,0 +1,5 @@ +# Memory Context from Past Sessions + +*No context yet. Complete your first session and context will appear here.* + +Use claude-mem's MCP search tools for manual memory queries. diff --git a/CHANGELOG.md b/CHANGELOG.md index c9a30c32..48a7196c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,114 @@ # Changelog -All notable changes to claude-mem. +All notable changes to this project will be documented in this file. -## [v10.6.3] - 2026-03-29 +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). -## v10.6.3 — Critical Patch Release +## [11.0.0] - 2026- +✅ CHANGELOG.md generated successfully! + 221 releases processed +k deletions · 39 patch releases since v10.0.0** + +### Breaking: Strict Observer Response Contract + +The memory agent can no longer return prose-style skip responses. This changes the implicit contract between the prompt layer and the response parser: + +- **Prompt enforcement** — `buildObservationPrompt` now requires `` XML blocks or an empty response. Prose like "Skipping — no substantive tool executions" is explicitly forbidden. +- **Runtime detection** — `ResponseProcessor` warns when non-XML content is received and discarded, making silent data loss visible. +- **Expanded recording scope** — Concrete debugging findings from logs, queue state, database rows, and code-path inspection are now encouraged as durable discoveries. + +### v10.x Highlights (What Got Us Here) + +#### Multi-IDE Platform (v10.2.0 → v10.7.0) +- **NPX CLI installer** with interactive `@clack/prompts` UI and `--ide` flag +- **13 IDE integrations**: Claude Code, Gemini CLI, Windsurf, OpenCode, OpenClaw, Codex CLI, Copilot CLI, Antigravity, Goose, Crush, Roo Code, Warp, and MCP factory pattern for extensibility +- Claude Code install now delegates to native `claude plugin marketplace add` + `claude plugin install` + +#### OpenClaw Plugin (v10.0.0) +- Persistent memory for [OpenClaw](https://openclaw.ai) agents — observation recording, MEMORY.md live sync, and real-time observation feeds to Telegram/Discord/Slack/Signal/WhatsApp/LINE +- System prompt context injection via `before_prompt_build` hook (v10.6.0) + +#### Smart Explore (v10.5.0) +- AST-powered code navigation via tree-sitter with 3 MCP tools: `smart_search`, `smart_outline`, `smart_unfold` +- **6–12× token savings** over traditional Glob → Grep → Read exploration cycles +- 10 languages: TypeScript, JavaScript, Python, Rust, Go, Java, C, C++, Ruby, PHP + +#### ChromaDB Overhaul (v10.3.0 → v10.7.0) +- Replaced WASM embeddings with persistent `chroma-mcp` MCP connection +- Semantic context injection on `UserPromptSubmit` via Chroma vector search +- Tier routing by queue complexity with observation feedback table +- Multi-machine sync via `claude-mem-sync` + +#### Stability (v10.4.0 → v10.5.6) +- **30+ root-cause bug fixes** across 10 triage phases (v10.4.0) +- Embedded Process Supervisor for unified lifecycle management +- Content-hash deduplication on observation INSERT +- Self-healing `claimNextMessage` for stuck processing messages +- Chroma spawn storm fix (641 processes → max 2) +- Fixed infinite spinner from orphaned pending messages + +#### New Skills & Modes +- **Timeline Report** — narrative "Journey Into [Project]" reports from development history +- **Make Plan / Do** — phased implementation planning with subagent execution +- **Law Study Mode** — purpose-built for law students with Socratic methodology +- **Smart Explore** — structural code search as an MCP skill + +#### Platform +- Windows hardening: PowerShell daemon spawning, backslash path conversion, Chroma re-enabled +- Linux: stdin buffering fix for Node.js → Bun handoff +- XDG-compliant environment resolution +- npm publish workflow on tag push + +## [10.7.2] - 2026-04-05 + +## Bug Fix + +- **fix**: Downgrade concept-type cleanup log from error to debug (#1606) — reduces noise in logs by treating routine concept-type cleanup as debug-level rather than error-level logging. + +## [10.7.1] - 2026-04-05 + +## Bug Fix + +**Restore full interactive installer** — the install simplification in v10.7.0 (commit 21b10b46) over-applied scope and replaced the entire `runInstallCommand` with just two `claude` CLI commands. This gutted the interactive IDE multi-select, `--ide` flag, and all 13 IDE-specific setup dispatchers. + +### What changed +- **Claude Code**: now uses native `claude plugin marketplace add` + `claude plugin install` (the intended simplification) +- **All other IDEs** (Gemini CLI, OpenCode, Windsurf, OpenClaw, Codex CLI, Copilot CLI, Antigravity, Goose, Crush, Roo Code, Warp): full installer flow restored — file copy, marketplace registration, interactive multi-select via `@clack/prompts`, and IDE-specific setup +- `--ide ` flag works again for direct IDE targeting + +## [10.7.0] - 2026-04-04 + +## What's New + +### Simplified Installation +- Install command now delegates to native Claude Code plugin system: `claude plugin marketplace add thedotmack/claude-mem && claude plugin install claude-mem` +- Reduced install.ts from 536 lines to 36 lines + +### Multi-IDE Support (NPX CLI) +- Gemini CLI hooks installer with lifecycle event mapping +- Windsurf hooks installer with project registry and context injection +- OpenCode plugin installer with AGENTS.md context injection +- OpenClaw plugin installer +- Codex CLI transcript watcher integration +- MCP factory pattern for Copilot CLI, Antigravity, Goose, Crush, Roo Code, Warp + +### Uninstall Improvements +- Worker shutdown now waits for process exit before file deletion +- IDE-specific hooks and config are cleaned up during uninstall + +### Bug Fixes +- Fixed bundle path resolution using `import.meta.url` instead of `process.cwd()` +- Fixed Windsurf registry key collision for same-named workspace directories +- AGENTS.md injection failures now logged instead of silently swallowed +- Session tracking Map capped at 1000 entries to prevent memory leaks +- Fixed double-shebang in NPX CLI bundle +- Fixed corrupt JSON handling in Gemini CLI status command + +### Other +- Restored version-bump skill for future releases +- Added IDE context files for Windsurf, Warp, Copilot, and agent rules + +## [10.6.3] - 2026-03-29 ### Bug Fixes @@ -35,7 +139,7 @@ All notable changes to claude-mem. - `tests/infrastructure/plugin-distribution.test.ts` - `tests/supervisor/env-sanitizer.test.ts` -## [v10.6.2] - 2026-03-21 +## [10.6.2] - 2026-03-21 ## fix: Activity spinner stuck spinning forever @@ -51,7 +155,7 @@ The viewer UI activity spinner would spin indefinitely because `isAnySessionProc - Replaced inline `require()` with proper accessor via `sessionManager.getPendingMessageStore()` - Added 8 regression tests for session termination invariant -## [v10.6.1] - 2026-03-18 +## [10.6.1] - 2026-03-18 ### New Features - **Timeline Report Skill** — New `/timeline-report` skill generates narrative "Journey Into [Project]" reports from claude-mem's development history with token-aware economics @@ -66,7 +170,7 @@ The viewer UI activity spinner would spin indefinitely because `isAnySessionProc ### Security - Removed arbitrary file write vulnerability (`dump_to_file` parameter) -## [v10.6.0] - 2026-03-18 +## [10.6.0] - 2026-03-18 ## OpenClaw: System prompt context injection @@ -85,7 +189,7 @@ The viewer settings hook used `||` instead of `??`, which silently replaced back - Updated `openclaw-integration.mdx` and `openclaw/SKILL.md` to reflect system prompt injection behavior - Fixed "prompt injection" → "context injection" terminology to avoid confusion with the OWASP security term -## [v10.5.6] - 2026-03-16 +## [10.5.6] - 2026-03-16 ## Patch: Process Supervisor Hardening & Logging Cleanup @@ -106,7 +210,7 @@ The viewer settings hook used `||` instead of `??`, which silently replaced back - Added deterministic test cases for missing, invalid, stale, and alive PID file states - Removed unused `dataDir` from shutdown test fixtures -## [v10.5.5] - 2026-03-09 +## [10.5.5] - 2026-03-09 ### Bug Fix @@ -118,13 +222,13 @@ The viewer settings hook used `||` instead of `??`, which silently replaced back - Deleted `src/constants/observation-metadata.ts` (no longer needed) - Removed observation type/concept filter UI controls from the viewer's Context Settings modal -## [v10.5.4] - 2026-03-09 +## [10.5.4] - 2026-03-09 ## Bug Fixes - **fix: restore modes to correct location** — All modes (`code`, code language variants, `email-investigation`) were erroneously moved from `plugin/modes/` to `plugin/hooks/modes/` during the v10.5.3 release, breaking mode loading. This patch restores them to `plugin/modes/` where they belong. -## [v10.5.3] - 2026-03-09 +## [10.5.3] - 2026-03-09 ## What's New @@ -149,7 +253,7 @@ Adds `law-study` — a purpose-built claude-mem mode for law students. Activate with: `/mode law-study` or `/mode law-study--chill` -## [v10.5.2] - 2026-02-26 +## [10.5.2] - 2026-02-26 ## Smart Explore Benchmark Docs & Skill Update @@ -165,13 +269,13 @@ Activate with: `/mode law-study` or `/mode law-study--chill` - Updated smart_unfold token range from ~1-7k to ~400-2,100 based on measurements - Updated Explore agent token range from ~20-40k to ~39-59k based on measurements -## [v10.5.1] - 2026-02-26 +## [10.5.1] - 2026-02-26 ### Bug Fix - Restored hooks.json to pre-smart-explore configuration (re-adds Setup hook, separate worker start command, PostToolUse matcher) -## [v10.5.0] - 2026-02-26 +## [10.5.0] - 2026-02-26 ## Smart Explore: AST-Powered Code Navigation @@ -206,13 +310,13 @@ The standard exploration cycle (Glob → Grep → Read) forces agents to consume - Removed legacy setup.sh script - Security fix: replaced `execSync` with `execFileSync` to prevent command injection in file path handling -## [v10.4.4] - 2026-02-26 +## [10.4.4] - 2026-02-26 ## Fix - **Remove `save_observation` from MCP tool surface** — This tool was exposed as an MCP tool available to Claude, but it's an internal API-only feature. Removing it from the MCP server prevents unintended tool invocation and keeps the tool surface clean. -## [v10.4.3] - 2026-02-25 +## [10.4.3] - 2026-02-25 ## Bug Fixes @@ -223,7 +327,7 @@ The standard exploration cycle (Glob → Grep → Read) forces agents to consume - Synced all version files (plugin.json was stuck at 10.4.0) -## [v10.4.2] - 2026-02-25 +## [10.4.2] - 2026-02-25 ## Bug Fixes @@ -231,7 +335,7 @@ The standard exploration cycle (Glob → Grep → Read) forces agents to consume - **Fix CLAUDE_PLUGIN_ROOT fallback for Stop hooks (#1215)**: Added POSIX shell-level `CLAUDE_PLUGIN_ROOT` fallback in `hooks.json` for environments where the variable isn't injected, added script-level self-resolution via `import.meta.url` in `bun-runner.js`, and regression test added in `plugin-distribution.test.ts` - **Sync plugin.json version**: Fixed `plugin.json` being stuck at 10.4.0 while other version files were at 10.4.1 -## [v10.4.1] - 2026-02-24 +## [10.4.1] - 2026-02-24 ### Refactor - **Skills Conversion**: Converted `/make-plan` and `/do` commands into first-class skills in `plugin/skills/`. @@ -241,9 +345,7 @@ The standard exploration cycle (Glob → Grep → Read) forces agents to consume ### Chore - **Version Bump**: Aligned all package and plugin manifests to v10.4.1. -## [v10.4.0] - 2026-02-24 - -## v10.4.0 — Stability & Platform Hardening +## [10.4.0] - 2026-02-24 Massive reliability release: 30+ root-cause bug fixes across 10 triage phases, plus new features for agent attribution, Chroma control, and broader platform support. @@ -309,13 +411,13 @@ Massive reliability release: 30+ root-cause bug fixes across 10 triage phases, p - 50+ new tests across hook lifecycle, context re-injection, plugin distribution, migration runner, data integrity, stale abort controller, logs tail-read, CORS, MCP type coercion, and smart-install - 68 files changed, ~4200 insertions, ~900 deletions -## [v10.3.3] - 2026-02-23 +## [10.3.3] - 2026-02-23 ### Bug Fixes - Fixed session context footer to reference the claude-mem skill instead of MCP search tools for accessing memories -## [v10.3.2] - 2026-02-23 +## [10.3.2] - 2026-02-23 ## Bug Fixes @@ -326,7 +428,7 @@ Massive reliability release: 30+ root-cause bug fixes across 10 triage phases, p - **Installer routing**: Added rewrite rule so install.cmem.ai root path correctly serves the install script - **Installer build**: Added compiled installer dist so CLI installation works out of the box -## [v10.3.1] - 2026-02-19 +## [10.3.1] - 2026-02-19 ## Fix: Prevent Duplicate Worker Daemons and Zombie Processes @@ -341,7 +443,7 @@ Exit if port 37777 is already bound — runs before WorkerService constructor re ### Guaranteed process.exit() after HTTP shutdown HTTP shutdown (POST /api/admin/shutdown) now calls `process.exit(0)` in a `try/finally` block. Previously, zombie workers stayed alive after shutdown, and background tasks reconnected to chroma-mcp, spawning duplicate subprocesses contending for the same data directory. -## [v10.3.0] - 2026-02-18 +## [10.3.0] - 2026-02-18 ## Replace WASM Embeddings with Persistent chroma-mcp MCP Connection @@ -366,7 +468,7 @@ None — backward compatible. ChromaDB data is preserved; only the connection me - `src/services/worker-service.ts` — Updated startup sequence - `src/services/infrastructure/GracefulShutdown.ts` — Subprocess cleanup integration -## [v10.2.6] - 2026-02-18 +## [10.2.6] - 2026-02-18 ## Bug Fixes @@ -383,7 +485,7 @@ Observer Claude CLI subprocesses were accumulating as zombies — processes that This ensures no observer subprocess survives beyond its session lifetime, even in crash scenarios. -## [v10.2.5] - 2026-02-18 +## [10.2.5] - 2026-02-18 ### Bug Fixes @@ -397,7 +499,7 @@ This ensures no observer subprocess survives beyond its session lifetime, even i - 1 new integration test for stuck recovery in zombie-prevention suite - All existing queue tests updated for renamed method -## [v10.2.4] - 2026-02-18 +## [10.2.4] - 2026-02-18 ## Chroma Vector DB Backfill Fix @@ -421,7 +523,7 @@ Fixes the Chroma backfill system to correctly sync all SQLite observations into - `src/services/worker-service.ts` — Startup backfill trigger + readiness guard - `src/utils/logger.ts` — Added `CHROMA_SYNC` log component -## [v10.2.3] - 2026-02-17 +## [10.2.3] - 2026-02-17 ## Fix Chroma ONNX Model Cache Corruption @@ -440,7 +542,7 @@ Addresses the persistent embedding pipeline failures reported across #1104, #110 - `scripts/sync-marketplace.cjs` — removed `bun pm cache rm`, added `bun install` in cache dir - `src/services/sync/ChromaSync.ts` — moved model cache, added corruption recovery -## [v10.2.2] - 2026-02-17 +## [10.2.2] - 2026-02-17 ## Bug Fixes @@ -448,7 +550,7 @@ Addresses the persistent embedding pipeline failures reported across #1104, #110 - **Simplified native module cache clearing** in `smart-install.js` and `sync-marketplace.cjs` — replaced targeted `@img/sharp` directory deletion and lockfile removal with `bun pm cache rm` - Reduced ~30 lines of brittle file system manipulation to a clean Bun CLI command -## [v10.2.1] - 2026-02-16 +## [10.2.1] - 2026-02-16 ## Bug Fixes @@ -460,7 +562,7 @@ Addresses the persistent embedding pipeline failures reported across #1104, #110 - **Sharp cache invalidation**: Added cache clearing for sharp's native bindings when Bun version changes (#1138) - **Marketplace install**: Switched marketplace sync from npm to bun for package installation consistency (#1140) -## [v10.1.0] - 2026-02-16 +## [10.1.0] - 2026-02-16 ## SessionStart System Message & Cleaner Defaults @@ -492,7 +594,7 @@ Addresses the persistent embedding pipeline failures reported across #1104, #110 - Context handler refactored for parallel fetch with graceful fallback (`src/cli/handlers/context.ts`) - Default settings tuned in `SettingsDefaultsManager` (`src/shared/SettingsDefaultsManager.ts`) -## [v10.0.8] - 2026-02-16 +## [10.0.8] - 2026-02-16 ## Bug Fixes @@ -509,7 +611,7 @@ Addresses the persistent embedding pipeline failures reported across #1104, #110 - Use WASM backend for Chroma embeddings, eliminating native binary compilation issues - Closes #1104, #1105, #1110 -## [v10.0.7] - 2026-02-14 +## [10.0.7] - 2026-02-14 ## Chroma HTTP Server Architecture @@ -531,7 +633,7 @@ Addresses the persistent embedding pipeline failures reported across #1104, #110 - Added Vercel deploy workflow for install scripts - Added `.claude/plans` and `.claude/worktrees` to `.gitignore` -## [v10.0.6] - 2026-02-13 +## [10.0.6] - 2026-02-13 ## Bug Fixes @@ -543,7 +645,7 @@ Addresses the persistent embedding pipeline failures reported across #1104, #110 - Changed OpenClaw plugin kind from "integration" to "memory" for accuracy. -## [v10.0.5] - 2026-02-13 +## [10.0.5] - 2026-02-13 ## OpenClaw Installer & Distribution @@ -572,7 +674,7 @@ This release introduces the OpenClaw one-liner installer and fixes several OpenC - Fix: remove stale memory slot reference during reinstall cleanup - Fix: remove opinionated filters from OpenClaw plugin -## [v10.0.4] - 2026-02-12 +## [10.0.4] - 2026-02-12 ## Revert: v10.0.3 chroma-mcp spawn storm fix @@ -597,7 +699,7 @@ v10.0.3 introduced regressions. This release reverts the codebase to the stable - `tests/infrastructure/process-manager.test.ts` - `tests/integration/chroma-vector-sync.test.ts` -## [v10.0.3] - 2026-02-11 +## [10.0.3] - 2026-02-11 ## Fix: Prevent chroma-mcp spawn storm (PR #1065) @@ -630,7 +732,7 @@ Closes #1063, closes #695. Relates to #1010, #707. **Contributors:** @rodboev -## [v10.0.2] - 2026-02-11 +## [10.0.2] - 2026-02-11 ## Bug Fixes @@ -651,7 +753,7 @@ Closes #1063, closes #695. Relates to #1010, #707. ### Contributors - @rodboev — Hook resilience and worker lifecycle fixes (PR #1056) -## [v10.0.1] - 2026-02-11 +## [10.0.1] - 2026-02-11 ## What's Changed @@ -663,7 +765,7 @@ Closes #1063, closes #695. Relates to #1010, #707. ### Build Artifacts - Rebuilt worker service and MCP server with latest changes -## [v10.0.0] - 2026-02-11 +## [10.0.0] - 2026-02-11 ## OpenClaw Plugin — Persistent Memory for OpenClaw Agents @@ -747,7 +849,7 @@ All observation recording and MEMORY.md syncs are fire-and-forget — they never Closed 37+ duplicate/stale/invalid issues across multiple triage phases, significantly cleaning up the issue tracker. -## [v9.1.1] - 2026-02-07 +## [9.1.1] - 2026-02-07 ## Critical Bug Fix: Worker Initialization Failure @@ -765,9 +867,7 @@ Closed 37+ duplicate/stale/invalid issues across multiple triage phases, signifi - **Restored mem-search skill** — Recreated `plugin/skills/mem-search/SKILL.md` with the 3-layer workflow (search → timeline → batch fetch) updated for the current MCP tool set. -## [v9.1.0] - 2026-02-07 - -## v9.1.0 — The Great PR Triage +## [9.1.0] - 2026-02-07 100 open PRs reviewed, triaged, and resolved. 157 commits, 123 files changed, +6,104/-721 lines. This release focuses on stability, security, and community contributions. @@ -869,7 +969,7 @@ Thank you to the 35+ contributors whose PRs were reviewed in this release: **Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v9.0.17...v9.1.0 -## [v9.0.17] - 2026-02-05 +## [9.0.17] - 2026-02-05 ## Bug Fixes @@ -893,7 +993,7 @@ All 9 hook definitions updated to use `node bun-runner.js` instead of direct `bu Fixes #818 | PR #827 by @bigphoot -## [v9.0.16] - 2026-02-05 +## [9.0.16] - 2026-02-05 ## Bug Fixes @@ -913,7 +1013,7 @@ Resolves the "Worker did not become ready within 15 seconds" timeout error that ### PR Merge Tasks - PR #820 merged with full verification pipeline (rebase, code review, build verification, test, manual verification) -## [v9.0.15] - 2026-02-05 +## [9.0.15] - 2026-02-05 ## Security Fix @@ -925,7 +1025,7 @@ Resolves the "Worker did not become ready within 15 seconds" timeout error that This is a security-focused patch release that hardens credential handling to prevent unintended API key usage from project directories. -## [v9.0.14] - 2026-02-05 +## [9.0.14] - 2026-02-05 ## In-Process Worker Architecture @@ -948,7 +1048,7 @@ The in-process architecture means hooks no longer need to spawn separate worker Full PR: https://github.com/thedotmack/claude-mem/pull/722 -## [v9.0.13] - 2026-02-05 +## [9.0.13] - 2026-02-05 ## Bug Fixes @@ -962,7 +1062,7 @@ Fixed a critical issue where observer processes could become "zombies" - lingeri This fix prevents resource leaks from orphaned observer processes that could accumulate over time. -## [v9.0.12] - 2026-01-28 +## [9.0.12] - 2026-01-28 ## Fix: Authentication failure from observer session isolation @@ -989,11 +1089,7 @@ Observer sessions now use the SDK's `cwd` option instead: Anyone running v9.0.11 who saw "Invalid API key" errors should upgrade immediately. ---- - -🤖 Generated with [Claude Code](https://claude.ai/code) - -## [v9.0.11] - 2026-01-28 +## [9.0.11] - 2026-01-28 ## Bug Fixes @@ -1014,7 +1110,7 @@ Thanks to @bigph00t for this fix! Fixes #817. --- **Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v9.0.10...v9.0.11 -## [v9.0.10] - 2026-01-26 +## [9.0.10] - 2026-01-26 ## Bug Fix @@ -1029,11 +1125,7 @@ The folder-level CLAUDE.md generation was failing to find observations due to a - Updated `SessionSearch.ts`, `regenerate-claude-md.ts`, and `claude-md-utils.ts` to use shared path utilities - Added comprehensive test coverage (61 new tests) for path matching edge cases ---- - -🤖 Generated with [Claude Code](https://claude.com/claude-code) - -## [v9.0.9] - 2026-01-26 +## [9.0.9] - 2026-01-26 ## Bug Fixes @@ -1047,7 +1139,7 @@ Previously, claude-mem would create new `CLAUDE.md` files in project directories Thanks to @maxmillienjr for this contribution! -## [v9.0.8] - 2026-01-26 +## [9.0.8] - 2026-01-26 ## Fix: Prevent Zombie Process Accumulation (Issue #737) @@ -1078,7 +1170,7 @@ This release fixes a critical issue where Claude haiku subprocesses spawned by t Fixes #737 -## [v9.0.6] - 2026-01-22 +## [9.0.6] - 2026-01-22 ## Windows Console Popup Fix @@ -1100,7 +1192,7 @@ This release eliminates the annoying console window popups that Windows users ex ### Contributors - @bigph00t (Alexander Knigge) -## [v9.0.5] - 2026-01-14 +## [9.0.5] - 2026-01-14 ## Major Worker Service Cleanup @@ -1123,3 +1215,4244 @@ This release contains a significant refactoring of `worker-service.ts`, removing - Updated README with $CMEM links and contract address - Added comprehensive cleanup and validation plans for worker-service.ts +## [9.0.4] - 2026-01-10 + +## What's New + +This release adds the `/do` and `/make-plan` development commands to the plugin distribution, making them available to all users who install the plugin from the marketplace. + +### Features + +- **Development Commands Now Distributed with Plugin** (#666) + - `/do` command - Execute tasks with structured workflow + - `/make-plan` command - Create detailed implementation plans + - Commands now available at `plugin/commands/` for all users + +### Documentation + +- Revised Arabic README for clarity and corrections (#661) + +### Full Changelog + +https://github.com/thedotmack/claude-mem/compare/v9.0.3...v9.0.4 + +## [9.0.3] - 2026-01-10 + +## Bug Fixes + +### Hook Framework JSON Status Output (#655) + +Fixed an issue where the worker service startup wasn't producing proper JSON status output for the Claude Code hook framework. This caused hooks to appear stuck or unresponsive during worker initialization. + +**Changes:** +- Added `buildStatusOutput()` function for generating structured JSON status output +- Worker now outputs JSON with `status`, `message`, and `continue` fields on stdout +- Proper exit code 0 ensures Windows Terminal compatibility (no tab accumulation) +- `continue: true` flag ensures Claude Code continues processing after hook execution + +**Technical Details:** +- Extracted status output generation into a pure, testable function +- Added comprehensive test coverage in `tests/infrastructure/worker-json-status.test.ts` +- 23 passing tests covering unit, CLI integration, and hook framework compatibility + +## Housekeeping + +- Removed obsolete error handling baseline file + +## [9.0.2] - 2026-01-10 + +## Bug Fixes + +- **Windows Terminal Tab Accumulation (#625, #628)**: Fixed terminal tab accumulation on Windows by implementing graceful exit strategy. All expected failure scenarios (port conflicts, version mismatches, health check timeouts) now exit with code 0 instead of code 1. +- **Windows 11 Compatibility (#625)**: Replaced deprecated WMIC commands with PowerShell `Get-Process` and `Get-CimInstance` for process enumeration. WMIC is being removed from Windows 11. + +## Maintenance + +- **Removed Obsolete CLAUDE.md Files**: Cleaned up auto-generated CLAUDE.md files from `~/.claude/plans/` and `~/.claude/plugins/marketplaces/` directories. + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v9.0.1...v9.0.2 + +## [9.0.1] - 2026-01-08 + +## Bug Fixes + +### Claude Code 2.1.1 Compatibility +- Fixed hook architecture for compatibility with Claude Code 2.1.0/2.1.1 +- Context is now injected silently via SessionStart hook +- Removed deprecated `user-message-hook` (no longer used in CC 2.1.0+) + +### Path Validation for CLAUDE.md Distribution +- Added `isValidPathForClaudeMd()` to reject malformed paths: + - Tilde paths (`~`) that Node.js doesn't expand + - URLs (`http://`, `https://`) + - Paths with spaces (likely command text or PR references) + - Paths with `#` (GitHub issue/PR references) + - Relative paths that escape project boundary +- Cleaned up 12 invalid CLAUDE.md files created by bug artifacts +- Updated `.gitignore` to prevent future accidents + +### Log-Level Audit +- Promoted 38+ WARN messages to ERROR level for improved debugging: + - Parser: observation type errors, data contamination + - SDK/Agents: empty init responses (Gemini, OpenRouter) + - Worker/Queue: session recovery, auto-recovery failures + - Chroma: sync failures, search failures + - SQLite: search failures + - Session/Generator: failures, missing context + - Infrastructure: shutdown, process management failures + +## Internal Changes +- Removed hardcoded fake token counts from context injection +- Standardized Claude Code 2.1.0 note wording across documentation + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v9.0.0...v9.0.1 + +## [9.0.0] - 2026-01-06 + +## 🚀 Live Context System + +Version 9.0.0 introduces the **Live Context System** - a major new capability that provides folder-level activity context through auto-generated CLAUDE.md files. + +### ✨ New Features + +#### Live Context System +- **Folder CLAUDE.md Files**: Each directory now gets an auto-generated CLAUDE.md file containing a chronological timeline of recent development activity +- **Activity Timelines**: Tables show observation ID, time, type, title, and estimated token cost for relevant work in each folder +- **Worktree Support**: Proper detection of git worktrees with project-aware filtering to show only relevant observations per worktree +- **Configurable Limits**: Control observation count via `CLAUDE_MEM_CONTEXT_OBSERVATIONS` setting + +#### Modular Architecture Refactor +- **Service Layer Decomposition**: Major refactoring from monolithic worker-service to modular domain services +- **SQLite Module Extraction**: Database operations split into dedicated modules (observations, sessions, summaries, prompts, timeline) +- **Context Builder System**: New modular context generation with TimelineRenderer, FooterRenderer, and ObservationCompiler +- **Error Handler Centralization**: Unified Express error handling via ErrorHandler module + +#### SDK Agent Improvements +- **Session Resume**: Memory sessions can now resume across Claude conversations using SDK session IDs +- **Memory Session ID Tracking**: Proper separation of content session IDs from memory session IDs +- **Response Processor Refactor**: Cleaner message handling and observation extraction + +### 🔧 Improvements + +#### Windows Stability +- Fixed Windows PowerShell variable escaping in hook execution +- Improved IPC detection for Windows managed mode +- Better PATH handling for Bun and uv on Windows + +#### Settings & Configuration +- **Auto-Creation**: Settings file automatically created with defaults on first run +- **Worker Host Configuration**: `CLAUDE_MEM_WORKER_HOST` setting for custom worker endpoints +- Settings validation with helpful error messages + +#### MCP Tools +- Standardized naming: "MCP tools" terminology instead of "mem-search skill" +- Improved tool descriptions for better Claude integration +- Context injection API now supports worktree parameter + +### 📚 Documentation +- New **Folder Context Files** documentation page +- **Worktree Support** section explaining git worktree behavior +- Updated architecture documentation reflecting modular refactor +- v9.0 release notes in introduction page + +### 🐛 Bug Fixes +- Fixed stale session resume crash when SDK session is orphaned +- Fixed logger serialization bug causing silent ChromaSync failures +- Fixed CLAUDE.md path resolution in worktree environments +- Fixed date preservation in folder timeline generation +- Fixed foreign key constraint issues in observation storage +- Resolved multiple TypeScript type errors across codebase + +### 🗑️ Removed +- Deprecated context-generator.ts (functionality moved to modular system) +- Obsolete queue analysis documents +- Legacy worker wrapper scripts + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.5.10...v9.0.0 + +## [8.5.10] - 2026-01-06 + +## Bug Fixes + +- **#545**: Fixed `formatTool` crash when parsing non-JSON tool inputs (e.g., raw Bash commands) +- **#544**: Fixed terminology in context hints - changed "mem-search skill" to "MCP tools" +- **#557**: Settings file now auto-creates with defaults on first run (no more "module loader" errors) +- **#543**: Fixed hook execution by switching runtime from `node` to `bun` (resolves `bun:sqlite` issues) + +## Code Quality + +- Fixed circular dependency between Logger and SettingsDefaultsManager +- Added 72 integration tests for critical coverage gaps +- Cleaned up mock-heavy tests causing module cache pollution + +## Full Changelog + +See PR #558 for complete details and diagnostic reports. + +## [8.5.9] - 2026-01-04 + +## What's New + +### Context Header Timestamp + +The context injection header now displays the current date and time, making it easier to understand when context was generated. + +**Example:** `[claude-mem] recent context, 2026-01-04 2:46am EST` + +This appears in both terminal (colored) output and markdown format, including empty state messages. + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.5.8...v8.5.9 + +## [8.5.8] - 2026-01-04 + +## Bug Fixes + +- **#511**: Add `gemini-3-flash` model to GeminiAgent with proper rate limits and validation +- **#517**: Fix Windows process management by replacing PowerShell with WMIC (fixes Git Bash/WSL compatibility) +- **#527**: Add Apple Silicon Homebrew paths (`/opt/homebrew/bin`) for `bun` and `uv` detection +- **#531**: Remove duplicate type definitions from `export-memories.ts` using shared bridge file + +## Tests + +- Added regression tests for PR #542 covering Gemini model support, WMIC parsing, Apple Silicon paths, and export type refactoring + +## Documentation + +- Added detailed analysis reports for GitHub issues #511, #514, #517, #520, #527, #531, #532 + +## [8.5.7] - 2026-01-04 + +## Modular Architecture Refactor + +This release refactors the monolithic service architecture into focused, single-responsibility modules with comprehensive test coverage. + +### Architecture Improvements + +- **SQLite Repositories** (`src/services/sqlite/`) - Modular repositories for sessions, observations, prompts, summaries, and timeline +- **Worker Agents** (`src/services/worker/agents/`) - Extracted response processing, error handling, and session cleanup +- **Search Strategies** (`src/services/worker/search/`) - Modular search with Chroma, SQLite, and Hybrid strategies plus orchestrator +- **Context Generation** (`src/services/context/`) - Separated context building, token calculation, formatters, and renderers +- **Infrastructure** (`src/services/infrastructure/`) - Graceful shutdown, health monitoring, and process management +- **Server** (`src/services/server/`) - Express server setup, middleware, and error handling + +### Test Coverage + +- **595 tests** across 36 test files +- **1,120 expect() assertions** +- Coverage for SQLite repos, worker agents, search, context, infrastructure, and server modules + +### Session ID Refactor + +- Aligned tests with NULL-based memory session initialization pattern +- Updated `SESSION_ID_ARCHITECTURE.md` documentation + +### Other Improvements + +- Added missing logger imports to 34 files for better observability +- Updated esbuild and MCP SDK to latest versions +- Removed `bun.lock` from version control + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.5.6...v8.5.7 + +## [8.5.6] - 2026-01-04 + +## Major Architectural Refactoring + +Decomposes monolithic services into modular, maintainable components: + +### Worker Service +Extracted infrastructure (GracefulShutdown, HealthMonitor, ProcessManager), server layer (ErrorHandler, Middleware, Server), and integrations (CursorHooksInstaller) + +### Context Generator +Split into ContextBuilder, ContextConfigLoader, ObservationCompiler, TokenCalculator, formatters (Color/Markdown), and section renderers (Header/Footer/Summary/Timeline) + +### Search System +Extracted SearchOrchestrator, ResultFormatter, TimelineBuilder, and strategy pattern (Chroma/SQLite/Hybrid search strategies) with dedicated filters (Date/Project/Type) + +### Agent System +Extracted shared logic into ResponseProcessor, ObservationBroadcaster, FallbackErrorHandler, and SessionCleanupHelper + +### SQLite Layer +Decomposed SessionStore into domain modules (observations, prompts, sessions, summaries, timeline) with proper type exports + +## Bug Fixes +- Fixed duplicate observation storage bug (observations stored multiple times when messages were batched) +- Added duplicate observation cleanup script for production database remediation +- Fixed FOREIGN KEY constraint and missing `failed_at_epoch` column issues + +## Coming Next +Comprehensive test suite in a new PR, targeting **v8.6.0** + +## [8.5.5] - 2026-01-03 + +## Improved Error Handling and Logging + +This patch release enhances error handling and logging across all worker services for better debugging and reliability. + +### Changes +- **Enhanced Error Logging**: Improved error context across SessionStore, SearchManager, SDKAgent, GeminiAgent, and OpenRouterAgent +- **SearchManager**: Restored error handling for Chroma calls with improved logging +- **SessionStore**: Enhanced error logging throughout database operations +- **Bug Fix**: Fixed critical bug where `memory_session_id` could incorrectly equal `content_session_id` +- **Hooks**: Streamlined error handling and loading states for better maintainability + +### Investigation Reports +- Added detailed analysis documents for generator failures and observation duplication regressions + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.5.4...v8.5.5 + +## [8.5.4] - 2026-01-02 + +## Bug Fixes + +### Chroma Connection Error Handling +Fixed a critical bug in ChromaSync where connection-related errors were misinterpreted as missing collections. The `ensureCollection()` method previously caught ALL errors and assumed they meant the collection doesn't exist, which caused connection errors to trigger unnecessary collection creation attempts. Now connection-related errors like "Not connected" are properly distinguished and re-thrown immediately, preventing false error handling paths and inappropriate fallback behavior. + +### Removed Dead last_user_message Code +Cleaned up dead code related to `last_user_message` handling in the summary flow. This field was being extracted from transcripts but never used anywhere - in Claude Code transcripts, "user" type messages are mostly tool_results rather than actual user input, and the user's original request is already stored in the user_prompts table. Removing this unused field eliminates confusing warnings like "Missing last_user_message when queueing summary". Changes span summary-hook, SessionRoutes, SessionManager, interface definitions, and all agent implementations. + +## Improvements + +### Enhanced Error Handling Across Services +Comprehensive improvement to error handling across 8 core services: +- **BranchManager** - Now logs recovery checkout failures +- **PaginationHelper** - Logs when file paths are plain strings instead of valid JSON +- **SDKAgent** - Enhanced logging for Claude executable detection failures +- **SearchManager** - Logs plain string handling for files read and edited +- **paths.ts** - Improved logging for git root detection failures +- **timeline-formatting** - Enhanced JSON parsing errors with input previews +- **transcript-parser** - Logs summary of parse errors after processing +- **ChromaSync** - Logs full error context before attempting collection creation + +### Error Handling Documentation & Tooling +- Created `error-handling-baseline.txt` establishing baseline error handling practices +- Documented error handling anti-pattern rules in CLAUDE.md +- Added `detect-error-handling-antipatterns.ts` script to identify empty catch blocks, improper logging practices, and oversized try-catch blocks + +## New Features + +### Console Filter Bar with Log Parsing +Implemented interactive log filtering in the viewer UI: +- **Structured Log Parsing** - Extracts timestamp, level, component, correlation ID, and message content using regex pattern matching +- **Level Filtering** - Toggle visibility for DEBUG, INFO, WARN, ERROR log levels +- **Component Filtering** - Filter by 9 component types: HOOK, WORKER, SDK, PARSER, DB, SYSTEM, HTTP, SESSION, CHROMA +- **Color-Coded Rendering** - Visual distinction with component-specific icons and log level colors +- **Special Message Detection** - Recognizes markers like → (dataIn), ← (dataOut), ✓ (success), ✗ (failure), ⏱ (timing), [HAPPY-PATH] +- **Smart Auto-Scroll** - Maintains scroll position when reviewing older logs +- **Responsive Design** - Filter bar adapts to smaller screens + +## [8.5.3] - 2026-01-02 + +# 🛡️ Error Handling Hardening & Developer Tools + +Version 8.5.3 introduces comprehensive error handling improvements that prevent silent failures and reduce debugging time from hours to minutes. This release also adds new developer tools for queue management and log monitoring. + +--- + +## 🔴 Critical Error Handling Improvements + +### The Problem +A single overly-broad try-catch block caused a **10-hour debugging session** by silently swallowing errors. This pattern was pervasive throughout the codebase, creating invisible failure modes. + +### The Solution + +**Automated Anti-Pattern Detection** (`scripts/detect-error-handling-antipatterns.ts`) +- Detects 7 categories of error handling anti-patterns +- Enforces zero-tolerance policy for empty catch blocks +- Identifies large try-catch blocks (>10 lines) that mask specific errors +- Flags missing error logging that causes silent failures +- Supports approved overrides with justification comments +- Exit code 1 if critical issues detected (enforceable in CI) + +**New Error Handling Standards** (Added to `CLAUDE.md`) +- **5-Question Pre-Flight Checklist**: Required before writing any try-catch + 1. What SPECIFIC error am I catching? + 2. Show documentation proving this error can occur + 3. Why can't this error be prevented? + 4. What will the catch block DO? + 5. Why shouldn't this error propagate? +- **Forbidden Patterns**: Empty catch, catch without logging, large try blocks, promise catch without handlers +- **Allowed Patterns**: Specific errors, logged failures, minimal scope, explicit recovery +- **Meta-Rule**: Uncertainty triggers research, NOT try-catch + +### Fixes Applied + +**Wave 1: Empty Catch Blocks** (5 files) +- `import-xml-observations.ts` - Log skipped invalid JSON +- `bun-path.ts` - Log when bun not in PATH +- `cursor-utils.ts` - Log failed registry reads & corrupt MCP config +- `worker-utils.ts` - Log failed health checks + +**Wave 2: Promise Catches on Critical Paths** (8 locations) +- `worker-service.ts` - Background initialization failures +- `SDKAgent.ts` - Session processor errors (2 locations) +- `GeminiAgent.ts` - Finalization failures (2 locations) +- `OpenRouterAgent.ts` - Finalization failures (2 locations) +- `SessionManager.ts` - Generator promise failures + +**Wave 3: Comprehensive Audit** (29 catch blocks) +- Added logging to 16 catch blocks (UI, servers, worker, routes, services) +- Documented 13 intentional exceptions with justification comments +- All patterns now follow error handling guidelines with appropriate log levels + +### Approved Override System + +For justified exceptions (performance-critical paths, expected failures), use: +```typescript +// [APPROVED OVERRIDE]: Brief technical justification +try { + // code +} catch { + // allowed exception +} +``` + +**Progress**: 163 anti-patterns → 26 approved overrides (84% reduction in silent failures) + +--- + +## 🗂️ Queue Management Features + +**New Commands** +- `npm run queue:clear` - Interactive removal of failed messages +- `npm run queue:clear -- --all` - Clear all messages (pending, processing, failed) +- `npm run queue:clear -- --force` - Non-interactive mode + +**HTTP API Endpoints** +- `DELETE /api/pending-queue/failed` - Remove failed messages +- `DELETE /api/pending-queue/all` - Complete queue reset + +Failed messages exceed max retry count and remain for debugging. These commands provide clean queue maintenance. + +--- + +## 🪵 Developer Console (Chrome DevTools Style) + +**UI Improvements** +- Bottom drawer console (slides up from bottom-left corner) +- Draggable resize handle for height adjustment +- Auto-refresh toggle (2s interval) +- Clear logs button with confirmation +- Monospace font (SF Mono/Monaco/Consolas) +- Minimum height: 150px, adjustable to window height - 100px + +**API Endpoints** +- `GET /api/logs` - Fetch last 1000 lines of current day's log +- `DELETE /api/logs` - Clear current log file + +Logs viewer accessible via floating console button in UI. + +--- + +## 📚 Architecture Documentation + +**Session ID Architecture** (`docs/SESSION_ID_ARCHITECTURE.md`) +- Comprehensive documentation of 1:1 session mapping guarantees +- 19 validation tests proving UNIQUE constraints and resume consistency +- Documents single-transition vulnerability (application-level enforcement) +- Complete reference for session lifecycle management + +--- + +## 📊 Impact Summary + +- **Debugging Time**: 10 hours → minutes (proper error visibility) +- **Test Coverage**: +19 critical architecture validation tests +- **Silent Failures**: 84% reduction (163 → 26 approved exceptions) +- **Protection**: Automated detection prevents regression +- **Developer UX**: Console logs, queue management, comprehensive docs + +--- + +## 🔧 Technical Details + +**Files Changed**: 25+ files across error handling, queue management, UI, and documentation + +**Critical Path Protection** +These files now have strict error propagation (no catch-and-continue): +- `SDKAgent.ts` +- `GeminiAgent.ts` +- `OpenRouterAgent.ts` +- `SessionStore.ts` +- `worker-service.ts` + +**Build Verification**: All changes tested, build successful + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.5.2...v8.5.3 + +## [8.5.2] - 2025-12-31 + +## Bug Fixes + +### Fixed SDK Agent Memory Leak (#499) + +Fixed a critical memory leak where Claude SDK child processes were never terminated after sessions completed. Over extended usage, this caused hundreds of orphaned processes consuming 40GB+ of RAM. + +**Root Cause:** +- When the SDK agent generator completed naturally (no more messages to process), the `AbortController` was never aborted +- Child processes spawned by the Agent SDK remained running indefinitely +- Sessions stayed in memory (by design for future events) but underlying processes were never cleaned up + +**Fix:** +- Added proper cleanup to SessionRoutes finally block +- Now calls `abortController.abort()` when generator completes with no pending work +- Creates new `AbortController` when crash recovery restarts generators +- Ensures cleanup happens even if recovery logic fails + +**Impact:** +- Prevents orphaned `claude` processes from accumulating +- Eliminates multi-gigabyte memory leaks during normal usage +- Maintains crash recovery functionality with proper resource cleanup + +Thanks to @yonnock for the detailed bug report and investigation in #499! + +## [8.5.1] - 2025-12-30 + +## Bug Fix + +**Fixed**: Migration 17 column rename failing for databases in intermediate states (#481) + +### Problem +Migration 17 renamed session ID columns but used a single check to determine if ALL tables were migrated. This caused errors for databases in partial migration states: +- `no such column: sdk_session_id` (when columns already renamed) +- `table observations has no column named memory_session_id` (when not renamed) + +### Solution +- Rewrote migration 17 to check **each table individually** before renaming +- Added `safeRenameColumn()` helper that handles all edge cases gracefully +- Handles all database states: fresh, old, and partially migrated + +### Who was affected +- Users upgrading from pre-v8.2.6 versions +- Users whose migration was interrupted (crash, restart, etc.) +- Users who restored database from backup + +## [8.5.0] - 2025-12-30 + +# Cursor Support Now Available 🎉 + +This is a major release introducing **full Cursor IDE support**. Claude-mem now works with Cursor, bringing persistent AI memory to Cursor users with or without a Claude Code subscription. + +## Highlights + +**Give Cursor persistent memory.** Every Cursor session starts fresh - your AI doesn't remember what it worked on yesterday. Claude-mem changes that. Your agent builds cumulative knowledge about your codebase, decisions, and patterns over time. + +### Works Without Claude Code + +You can now use claude-mem with Cursor using free AI providers: +- **Gemini** (recommended): 1,500 free requests/day, no credit card required +- **OpenRouter**: Access to 100+ models including free options +- **Claude SDK**: For Claude Code subscribers + +### Cross-Platform Support + +Full support for all major platforms: +- **macOS**: Bash scripts with `jq` and `curl` +- **Linux**: Same toolchain as macOS +- **Windows**: Native PowerShell scripts, no WSL required + +## New Features + +### Interactive Setup Wizard (`bun run cursor:setup`) +A guided installer that: +- Detects your environment (Claude Code present or not) +- Helps you choose and configure an AI provider +- Installs Cursor hooks automatically +- Starts the worker service +- Verifies everything is working + +### Cursor Lifecycle Hooks +Complete hook integration with Cursor's native hook system: +- `session-init.sh/.ps1` - Session start with context injection +- `user-message.sh/.ps1` - User prompt capture +- `save-observation.sh/.ps1` - Tool usage logging +- `save-file-edit.sh/.ps1` - File edit tracking +- `session-summary.sh/.ps1` - Session end summary +- `context-inject.sh/.ps1` - Load relevant history + +### Context Injection via `.cursor/rules` +Relevant past context is automatically injected into Cursor sessions via the `.cursor/rules/claude-mem-context.mdc` file, giving your AI immediate awareness of prior work. + +### Project Registry +Multi-project support with automatic project detection: +- Projects registered in `~/.claude-mem/cursor-projects.json` +- Context automatically scoped to current project +- Works across multiple workspaces simultaneously + +### MCP Search Tools +Full MCP server integration for Cursor: +- `search` - Find observations by query, date, type +- `timeline` - Get context around specific observations +- `get_observations` - Fetch full details for filtered IDs + +## New Commands + +| Command | Description | +|---------|-------------| +| `bun run cursor:setup` | Interactive setup wizard | +| `bun run cursor:install` | Install Cursor hooks | +| `bun run cursor:uninstall` | Remove Cursor hooks | +| `bun run cursor:status` | Check hook installation status | + +## Documentation + +Full documentation available at [docs.claude-mem.ai/cursor](https://docs.claude-mem.ai/cursor): +- Cursor Integration Overview +- Gemini Setup Guide (free tier) +- OpenRouter Setup Guide +- Troubleshooting + +## Getting Started + +### For Cursor-Only Users (No Claude Code) + +```bash +git clone https://github.com/thedotmack/claude-mem.git +cd claude-mem && bun install && bun run build +bun run cursor:setup +``` + +### For Claude Code Users + +```bash +/plugin marketplace add thedotmack/claude-mem +/plugin install claude-mem +claude-mem cursor install +``` + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.2.10...v8.5.0 + +## [8.2.10] - 2025-12-30 + +## Bug Fixes + +- **Auto-restart worker on version mismatch** (#484): When the plugin updates but the worker was already running on the old version, the worker now automatically restarts instead of failing with 400 errors. + +### Changes +- `/api/version` endpoint now returns the built-in version (compiled at build time) instead of reading from disk +- `worker-service start` command checks for version mismatch and auto-restarts if needed +- Downgraded hook version mismatch warning to debug logging (now handled by auto-restart) + +Thanks @yungweng for the detailed bug report! + +## [8.2.9] - 2025-12-29 + +## Bug Fixes + +- **Worker Service**: Remove file-based locking and improve Windows stability + - Replaced file-based locking with health-check-first approach for cleaner mutual exclusion + - Removed AbortSignal.timeout() calls to reduce Bun libuv assertion errors on Windows + - Added 500ms shutdown delays on Windows to prevent zombie ports + - Reduced hook timeout values for improved responsiveness + - Increased worker readiness polling duration from 5s to 15s + +## Internal Changes + +- Updated worker CLI scripts to reference worker-service.cjs directly +- Simplified hook command configurations + +## [8.2.8] - 2025-12-29 + +## Bug Fixes + +- Fixed orphaned chroma-mcp processes during shutdown (#489) + - Added graceful shutdown handling with signal handlers registered early in WorkerService lifecycle + - Ensures ChromaSync subprocess cleanup even when interrupted during initialization + - Removes PID file during shutdown to prevent stale process tracking + +## Technical Details + +This patch release addresses a race condition where SIGTERM/SIGINT signals arriving during ChromaSync initialization could leave orphaned chroma-mcp processes. The fix moves signal handler registration from the start() method to the constructor, ensuring cleanup handlers exist throughout the entire initialization lifecycle. + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.2.7...v8.2.8 + +## [8.2.7] - 2025-12-29 + +## What's Changed + +### Token Optimizations +- Simplified MCP server tool definitions for reduced token usage +- Removed outdated troubleshooting and mem-search skill documentation +- Enhanced search parameter descriptions for better clarity +- Streamlined MCP workflows for improved efficiency + +This release significantly reduces the token footprint of the plugin's MCP tools and documentation. + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.2.6...v8.2.7 + +## [8.2.6] - 2025-12-29 + +## What's Changed + +### Bug Fixes & Improvements +- Session ID semantic renaming for clarity (content_session_id, memory_session_id) +- Queue system simplification with unified processing logic +- Memory session ID capture for agent resume functionality +- Comprehensive test suite for session ID refactoring + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.2.5...v8.2.6 + +## [8.2.5] - 2025-12-28 + +## Bug Fixes + +- **Logger**: Enhanced Error object handling in debug mode to prevent empty JSON serialization +- **ChromaSync**: Refactored DatabaseManager to initialize ChromaSync lazily, removing background backfill on startup +- **SessionManager**: Simplified message handling and removed linger timeout that was blocking completion + +## Technical Details + +This patch release addresses several issues discovered after the session continuity fix: + +1. Logger now properly serializes Error objects with stack traces in debug mode +2. ChromaSync initialization is now lazy to prevent silent failures during startup +3. Session linger timeout removed to eliminate artificial 5-second delays on session completion + +Full changelog: https://github.com/thedotmack/claude-mem/compare/v8.2.4...v8.2.5 + +## [8.2.4] - 2025-12-28 + +Patch release v8.2.4 + +## [8.2.3] - 2025-12-27 + +## Bug Fixes + +- Fix worker port environment variable in smart-install script +- Implement file-based locking mechanism for worker operations to prevent race conditions +- Fix restart command references in documentation (changed from `claude-mem restart` to `npm run worker:restart`) + +## [8.2.2] - 2025-12-27 + +## What's Changed + +### Features +- Add OpenRouter provider settings and documentation +- Add modal footer with save button and status indicators +- Implement self-spawn pattern for background worker execution + +### Bug Fixes +- Resolve critical error handling issues in worker lifecycle +- Handle Windows/Unix kill errors in orphaned process cleanup +- Validate spawn pid before writing PID file +- Handle process exit in waitForProcessesExit filter +- Use readiness endpoint for health checks instead of port check +- Add missing OpenRouter and Gemini settings to settingKeys array + +### Other Changes +- Enhance error handling and validation in agents and routes +- Delete obsolete process management files (ProcessManager, worker-wrapper, worker-cli) +- Update hooks.json to use worker-service.cjs CLI +- Add comprehensive tests for hook constants and worker spawn functionality + +## [8.2.1] - 2025-12-27 + +## 🔧 Worker Lifecycle Hardening + +This patch release addresses critical bugs discovered during PR review of the self-spawn pattern introduced in 8.2.0. The worker daemon now handles edge cases robustly across both Unix and Windows platforms. + +### 🐛 Critical Bug Fixes + +#### Process Exit Detection Fixed +The `waitForProcessesExit` function was crashing when processes exited during monitoring. The `process.kill(pid, 0)` call throws when a process no longer exists, which was not being caught. Now wrapped in try/catch to correctly identify exited processes. + +#### Spawn PID Validation +The worker daemon now validates that `spawn()` actually returned a valid PID before writing to the PID file. Previously, spawn failures could leave invalid PID files that broke subsequent lifecycle operations. + +#### Cross-Platform Orphan Cleanup +- **Unix**: Replaced single `kill` command with individual `process.kill()` calls wrapped in try/catch, so one already-exited process doesn't abort cleanup of remaining orphans +- **Windows**: Wrapped `taskkill` calls in try/catch for the same reason + +#### Health Check Reliability +Changed `waitForHealth` to use the `/api/readiness` endpoint (returns 503 until fully initialized) instead of just checking if the port is in use. Callers now wait for *actual* worker readiness, not just network availability. + +### 🔄 Refactoring + +#### Code Consolidation (-580 lines) +Deleted obsolete process management infrastructure that was replaced by the self-spawn pattern: +- `src/services/process/ProcessManager.ts` (433 lines) - PID management now in worker-service +- `src/cli/worker-cli.ts` (81 lines) - CLI handling now in worker-service +- `src/services/worker-wrapper.ts` (157 lines) - Replaced by `--daemon` flag + +#### Updated Hook Commands +All hooks now use `worker-service.cjs` CLI directly instead of the deleted `worker-cli.js`. + +### ⏱️ Timeout Adjustments + +Increased timeouts throughout for compatibility with slow systems: + +| Component | Before | After | +|-----------|--------|-------| +| Default hook timeout | 120s | 300s | +| Health check timeout | 1s | 30s | +| Health check retries | 15 | 300 | +| Context initialization | 30s | 300s | +| MCP connection | 15s | 300s | +| PowerShell commands | 5s | 60s | +| Git commands | 30s | 300s | +| NPM install | 120s | 600s | +| Hook worker commands | 30s | 180s | + +### 🧪 Testing + +Added comprehensive test suites: +- `tests/hook-constants.test.ts` - Validates timeout configurations +- `tests/worker-spawn.test.ts` - Tests worker CLI and health endpoints + +### 🛡️ Additional Robustness + +- PID validation in restart command (matches start command behavior) +- Try/catch around `forceKillProcess()` for graceful shutdown +- Try/catch around `getChildProcesses()` for Windows failures +- Improved logging for PID file operations and HTTP shutdown + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.2.0...v8.2.1 + +## [8.2.0] - 2025-12-26 + +## 🚀 Gemini API as Alternative AI Provider + +This release introduces **Google Gemini API** as an alternative to the Claude Agent SDK for observation extraction. This gives users flexibility in choosing their AI backend while maintaining full feature parity. + +### ✨ New Features + +#### Gemini Provider Integration +- **New `GeminiAgent`**: Complete implementation using Gemini's REST API for observation and summary extraction +- **Provider selection**: Choose between Claude or Gemini directly in the Settings UI +- **API key management**: Configure via UI or `GEMINI_API_KEY` environment variable +- **Multi-turn conversations**: Full conversation history tracking for context-aware extraction + +#### Supported Gemini Models +- `gemini-2.5-flash-preview-05-20` (default) +- `gemini-2.5-pro-preview-05-06` +- `gemini-2.0-flash` +- `gemini-2.0-flash-lite` + +#### Rate Limiting +- Built-in rate limiting for Gemini free tier (15 RPM) and paid tier (1000 RPM) +- Configurable via `gemini_has_billing` setting in the UI + +#### Resilience Features +- **Graceful fallback**: Automatically falls back to Claude SDK if Gemini is selected but no API key is configured +- **Hot-swap providers**: Switch between Claude and Gemini without restarting the worker +- **Empty response handling**: Messages properly marked as processed even when Gemini returns empty responses (prevents stuck queue states) +- **Timestamp preservation**: Recovered backlog messages retain their original timestamps + +### 🎨 UI Improvements + +- **Spinning favicon**: Visual indicator during observation processing +- **Provider status**: Clear indication of which AI provider is active + +### 📚 Documentation + +- New [Gemini Provider documentation](https://docs.claude-mem.ai/usage/gemini-provider) with setup guide and troubleshooting + +### ⚙️ New Settings + +| Setting | Values | Description | +|---------|--------|-------------| +| `CLAUDE_MEM_PROVIDER` | `claude` \| `gemini` | AI provider for observation extraction | +| `CLAUDE_MEM_GEMINI_API_KEY` | string | Gemini API key | +| `CLAUDE_MEM_GEMINI_MODEL` | see above | Gemini model to use | +| `gemini_has_billing` | boolean | Enable higher rate limits for paid accounts | + +--- + +## 🙏 Contributor Shout-out + +Huge thanks to **Alexander Knigge** ([@AlexanderKnigge](https://x.com/AlexanderKnigge)) for contributing the Gemini provider implementation! This feature significantly expands claude-mem's flexibility and gives users more choice in their AI backend. + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v8.1.0...v8.2.0 + +## [8.1.0] - 2025-12-25 + +## The 3-Month Battle Against Complexity + +**TL;DR:** For three months, Claude's instinct to add code instead of delete it caused the same bugs to recur. What should have been 5 lines of code became ~1000 lines, 11 useless methods, and 7+ failed "fixes." The timestamp corruption that finally broke things was just a symptom. The real achievement: **984 lines of code deleted.** + +--- + +## What Actually Happened + +Every Claude Code hook receives a session ID. That's all you need. + +But Claude built an entire redundant session management system on top: +- An `sdk_sessions` table with status tracking, port assignment, and prompt counting +- 11 methods in `SessionStore` to manage this artificial complexity +- Auto-creation logic scattered across 3 locations +- A cleanup hook that "completed" sessions at the end + +**Why?** Because it seemed "robust." Because "what if the session doesn't exist?" + +But the edge cases didn't exist. Hooks ALWAYS provide session IDs. The "defensive" code was solving imaginary problems while creating real ones. + +--- + +## The Pattern of Failure + +Every time a bug appeared, Claude's instinct was to **ADD** more code: + +| Bug | What Claude Added | What Should Have Happened | +|-----|------------------|--------------------------| +| Race conditions | Auto-create fallbacks | Delete the auto-create logic | +| Duplicate observations | Validation layers | Delete the code path allowing duplicates | +| UNIQUE constraint violations | Try-catch with fallbacks | Use `INSERT OR IGNORE` (5 characters) | +| Session not found | Silent auto-creation | **FAIL LOUDLY** (it's a hook bug) | + +--- + +## The 7+ Failed Attempts + +- **Nov 4**: "Always store session data regardless of pre-existence." Complexity planted. +- **Nov 11**: `INSERT OR IGNORE` recognized. But complexity documented, not removed. +- **Nov 21**: Duplicate observations bug. Fixed. Then broken again by endless mode. +- **Dec 5**: "6 hours of work delivered zero value." User requests self-audit. +- **Dec 20**: "Phase 2: Eliminated Race Conditions" — felt like progress. Complexity remained. +- **Dec 24**: Finally, forced deletion. + +The user stated "hooks provide session IDs, no extra management needed" **seven times** across months. Claude didn't listen. + +--- + +## The Fix + +### Deleted (984 lines): +- 11 `SessionStore` methods: `incrementPromptCounter`, `getPromptCounter`, `setWorkerPort`, `getWorkerPort`, `markSessionCompleted`, `markSessionFailed`, `reactivateSession`, `findActiveSDKSession`, `findAnySDKSession`, `updateSDKSessionId` +- Auto-create logic from `storeObservation` and `storeSummary` +- The entire cleanup hook (was aborting SDK agent and causing data loss) +- 117 lines from `worker-utils.ts` + +### What remains (~10 lines): +```javascript +createSDKSession(sessionId) { + db.run('INSERT OR IGNORE INTO sdk_sessions (...) VALUES (...)'); + return db.query('SELECT id FROM sdk_sessions WHERE ...').get(sessionId); +} +``` + +**That's it.** + +--- + +## Behavior Change + +- **Before:** Missing session? Auto-create silently. Bug hidden. +- **After:** Missing session? Storage fails. Bug visible immediately. + +--- + +## New Tools + +Since we're now explicit about recovery instead of silently papering over problems: + +- `GET /api/pending-queue` - See what's stuck +- `POST /api/pending-queue/process` - Manually trigger recovery +- `npm run queue:check` / `npm run queue:process` - CLI equivalents + +--- + +## Dependencies +- Upgraded `@anthropic-ai/claude-agent-sdk` from `^0.1.67` to `^0.1.76` + +--- + +**PR #437:** https://github.com/thedotmack/claude-mem/pull/437 + +*The evidence: Observations #3646, #6738, #7598, #12860, #12866, #13046, #15259, #20995, #21055, #30524, #31080, #32114, #32116, #32125, #32126, #32127, #32146, #32324—the complete record of a 3-month battle.* + +## [8.0.6] - 2025-12-24 + +## Bug Fixes + +- Add error handlers to Chroma sync operations to prevent worker crashes on timeout (#428) + +This patch release improves stability by adding proper error handling to Chroma vector database sync operations, preventing worker crashes when sync operations timeout. + +## [8.0.5] - 2025-12-24 + +## Bug Fixes + +- **Context Loading**: Fixed observation filtering for non-code modes, ensuring observations are properly retrieved across all mode types + +## Technical Details + +Refactored context loading logic to differentiate between code and non-code modes, resolving issues where mode-specific observations were filtered by stale settings. + +## [8.0.4] - 2025-12-23 + +## Changes + +- Changed worker start script + +## [8.0.3] - 2025-12-23 + +Fix critical worker crashes on startup (v8.0.2 regression) + +## [8.0.2] - 2025-12-23 + +New "chill" remix of code mode for users who want fewer, more selective observations. + +## Features + +- **code--chill mode**: A behavioral variant that produces fewer observations + - Only records things "painful to rediscover" - shipped features, architectural decisions, non-obvious gotchas + - Skips routine work, straightforward implementations, and obvious changes + - Philosophy: "When in doubt, skip it" + +## Documentation + +- Updated modes.mdx with all 28 language modes (was 10) +- Added Code Mode Variants section documenting chill mode + +## Usage + +Set in ~/.claude-mem/settings.json: +```json +{ + "CLAUDE_MEM_MODE": "code--chill" +} +``` + +## [8.0.1] - 2025-12-23 + +## 🎨 UI Improvements + +- **Header Redesign**: Moved documentation and X (Twitter) links from settings modal to main header for better accessibility +- **Removed Product Hunt Badge**: Cleaned up header layout by removing the Product Hunt badge +- **Icon Reorganization**: Reordered header icons for improved UX flow (Docs → X → Discord → GitHub) + +## [8.0.0] - 2025-12-23 + +## 🌍 Major Features + +### **Mode System**: Context-aware observation capture tailored to different workflows +- **Code Development mode** (default): Tracks bugfixes, features, refactors, and more +- **Email Investigation mode**: Optimized for email analysis workflows +- Extensible architecture for custom domains + +### **28 Language Support**: Full multilingual memory +- Arabic, Bengali, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek +- Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Norwegian, Polish +- Portuguese (Brazilian), Romanian, Russian, Spanish, Swedish, Thai, Turkish +- Ukrainian, Vietnamese +- All observations, summaries, and narratives generated in your chosen language + +### **Inheritance Architecture**: Language modes inherit from base modes +- Consistent observation types across languages +- Locale-specific output while maintaining structural integrity +- JSON-based configuration for easy customization + +## 🔧 Technical Improvements + +- **ModeManager**: Centralized mode loading and configuration validation +- **Dynamic Prompts**: SDK prompts now adapt based on active mode +- **Mode-Specific Icons**: Observation types display contextual icons/emojis per mode +- **Fail-Fast Error Handling**: Complete removal of silent failures across all layers + +## 📚 Documentation + +- New docs/public/modes.mdx documenting the mode system +- 28 translated README files for multilingual community support +- Updated configuration guide for mode selection + +## 🔨 Breaking Changes + +- **None** - Mode system is fully backward compatible +- Default mode is 'code' (existing behavior) +- Settings: New `CLAUDE_MEM_MODE` option (defaults to 'code') + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.4.5...v8.0.0 +**View PR**: https://github.com/thedotmack/claude-mem/pull/412 + +## [7.4.5] - 2025-12-21 + +## Bug Fixes + +- Fix missing `formatDateTime` import in SearchManager that broke `get_context_timeline` mem-search function + +## [7.4.4] - 2025-12-21 + +## What's Changed + +* Code quality: comprehensive nonsense audit cleanup (20 issues) by @thedotmack in #400 + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.4.3...v7.4.4 + +## [7.4.3] - 2025-12-20 + +Added Discord notification script for release announcements. + +### Added +- `scripts/discord-release-notify.js` - Posts formatted release notifications to Discord using webhook URL from `.env` +- `npm run discord:notify ` - New npm script to trigger Discord notifications +- Updated version-bump skill workflow to include Discord notification step + +### Configuration +Set `DISCORD_UPDATES_WEBHOOK` in your `.env` file to enable release notifications. + +## [7.4.2] - 2025-12-20 + +Patch release v7.4.2 + +## Changes +- Refactored worker commands from npm scripts to claude-mem CLI +- Added path alias script +- Fixed Windows worker stop/restart reliability (#395) +- Simplified build commands section in CLAUDE.md + +## [7.4.1] - 2025-12-19 + +## Bug Fixes + +- **MCP Server**: Redirect logs to stderr to preserve JSON-RPC protocol (#396) + - MCP uses stdio transport where stdout is reserved for JSON-RPC messages + - Console.log was writing startup logs to stdout, causing Claude Desktop to parse log lines as JSON and fail + +## [7.4.0] - 2025-12-18 + +## What's New + +### MCP Tool Token Reduction + +Optimized MCP tool definitions for reduced token consumption in Claude Code sessions through progressive parameter disclosure. + +**Changes:** +- Streamlined MCP tool schemas with minimal inline definitions +- Added `get_schema()` tool for on-demand parameter documentation +- Enhanced worker API with operation-based instruction loading + +This release improves session efficiency by reducing the token overhead of MCP tool definitions while maintaining full functionality through progressive disclosure. + +## [7.3.9] - 2025-12-18 + +## Fixes + +- Fix MCP server compatibility and web UI path resolution + +This patch release addresses compatibility issues with the MCP server and resolves path resolution problems in the web UI. + +## [7.3.8] - 2025-12-18 + +## Security Fix + +Added localhost-only protection for admin endpoints to prevent DoS attacks when worker service is bound to 0.0.0.0 for remote UI access. + +### Changes +- Created `requireLocalhost` middleware to restrict admin endpoints +- Applied to `/api/admin/restart` and `/api/admin/shutdown` +- Returns 403 Forbidden for non-localhost requests + +### Security Impact +Prevents unauthorized shutdown/restart of worker service when exposed on network. + +Fixes security concern raised in #368. + +## [7.3.7] - 2025-12-17 + +## Windows Platform Stabilization + +This patch release includes comprehensive improvements for Windows platform stability and reliability. + +### Key Improvements + +- **Worker Readiness Tracking**: Added `/api/readiness` endpoint with MCP/SDK initialization flags to prevent premature connection attempts +- **Process Tree Cleanup**: Implemented recursive process enumeration on Windows to prevent zombie socket processes +- **Bun Runtime Migration**: Migrated worker wrapper from Node.js to Bun for consistency and reliability +- **Centralized Project Name Utility**: Consolidated duplicate project name extraction logic with Windows drive root handling +- **Enhanced Error Messages**: Added platform-aware logging and detailed Windows troubleshooting guidance +- **Subprocess Console Hiding**: Standardized `windowsHide: true` across all child process spawns to prevent console window flashing + +### Technical Details + +- Worker service tracks MCP and SDK readiness states separately +- ChromaSync service properly tracks subprocess PIDs for Windows cleanup +- Worker wrapper uses Bun runtime with enhanced socket cleanup via process tree enumeration +- Increased timeouts on Windows platform (30s worker startup, 10s hook timeouts) +- Logger utility includes platform and PID information for better debugging + +This represents a major reliability improvement for Windows users, eliminating common issues with worker startup failures, orphaned processes, and zombie sockets. + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.3.6...v7.3.7 + +## [7.3.6] - 2025-12-17 + +## Bug Fixes + +- Enhanced SDKAgent response handling and message processing + +## [7.3.5] - 2025-12-17 + +## What's Changed +* fix(windows): solve zombie port problem with wrapper architecture by @ToxMox in https://github.com/thedotmack/claude-mem/pull/372 +* chore: bump version to 7.3.5 by @thedotmack in https://github.com/thedotmack/claude-mem/pull/375 + +## New Contributors +* @ToxMox made their first contribution in https://github.com/thedotmack/claude-mem/pull/372 + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.3.4...v7.3.5 + +## [7.3.4] - 2025-12-17 + +Patch release for bug fixes and minor improvements + +## [7.3.3] - 2025-12-16 + +## What's Changed + +- Remove all better-sqlite3 references from codebase (#357) + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.3.2...v7.3.3 + +## [7.3.2] - 2025-12-16 + +## 🪟 Windows Console Fix + +Fixes blank console windows appearing for Windows 11 users during claude-mem operations. + +### What Changed + +- **Windows**: Uses PowerShell `Start-Process -WindowStyle Hidden` to properly hide worker process +- **Security**: Added PowerShell string escaping to follow security best practices +- **Unix/Mac**: No changes (continues to work as before) + +### Root Cause + +The issue was caused by a Node.js limitation where `windowsHide: true` doesn't work with `detached: true` in `child_process.spawn()`. This affects both Bun and Node.js since Bun inherits Node.js process spawning semantics. + +See: https://github.com/nodejs/node/issues/21825 + +### Security Note + +While all paths in the PowerShell command are application-controlled (not user input), we've added proper escaping to follow security best practices. If an attacker could modify bun installation paths or plugin directories, they would already have full filesystem access including the database. + +### Related + +- Fixes #304 (Multiple visible console windows) +- Merged PR #339 +- Testing documented in PR #315 + +### Breaking Changes + +None - fully backward compatible. + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.3.1...v7.3.2 + +## [7.3.1] - 2025-12-16 + +## 🐛 Bug Fixes + +### Pending Messages Cleanup (Issue #353) + +Fixed unbounded database growth in the `pending_messages` table by implementing proper cleanup logic: + +- **Content Clearing**: `markProcessed()` now clears `tool_input` and `tool_response` when marking messages as processed, preventing duplicate storage of transcript data that's already saved in observations +- **Count-Based Retention**: `cleanupProcessed()` now keeps only the 100 most recent processed messages for UI display, deleting older ones automatically +- **Automatic Cleanup**: Cleanup runs automatically after processing messages in `SDKAgent.processSDKResponse()` + +### What This Fixes + +- Prevents database from growing unbounded with duplicate transcript content +- Keeps metadata (tool_name, status, timestamps) for recent messages +- Maintains UI functionality while optimizing storage + +### Technical Details + +**Files Modified:** +- `src/services/sqlite/PendingMessageStore.ts` - Cleanup logic implementation +- `src/services/worker/SDKAgent.ts` - Periodic cleanup calls + +**Database Behavior:** +- Pending/processing messages: Keep full transcript data (needed for processing) +- Processed messages: Clear transcript, keep metadata only (observations already saved) +- Retention: Last 100 processed messages for UI feedback + +### Related + +- Fixes #353 - Observations not being saved +- Part of the pending messages persistence feature (from PR #335) + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.3.0...v7.3.1 + +## [7.3.0] - 2025-12-16 + +## Features + +- **Table-based search output**: Unified timeline formatting with cleaner, more organized presentation of search results grouped by date and file +- **Simplified API**: Removed unused format parameter from MCP search tools for cleaner interface +- **Shared formatting utilities**: Extracted common timeline formatting logic into reusable module +- **Batch observations endpoint**: Added `/api/observations/batch` endpoint for efficient retrieval of multiple observations by ID array + +## Changes + +- **Default model upgrade**: Changed default model from Haiku to Sonnet for better observation quality +- **Removed fake URIs**: Replaced claude-mem:// pseudo-protocol with actual HTTP API endpoints for citations + +## Bug Fixes + +- Fixed undefined debug function calls in MCP server +- Fixed skillPath variable scoping bug in instructions endpoint +- Extracted magic numbers to named constants for better code maintainability + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.2.4...v7.3.0 + +## [7.2.4] - 2025-12-15 + +## What's Changed + +### Documentation +- Updated endless mode setup instructions with improved configuration guidance for better user experience + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.2.3...v7.2.4 + +## [7.2.3] - 2025-12-15 + +## Bug Fixes + +- **Fix MCP server failures on plugin updates**: Add 2-second pre-restart delay in `ensureWorkerVersionMatches()` to give files time to sync before killing the old worker. This prevents the race condition where the worker restart happened too quickly after plugin file updates, causing "Worker service connection failed" errors. + +## Changes + +- Add `PRE_RESTART_SETTLE_DELAY` constant (2000ms) to `hook-constants.ts` +- Add delay before `ProcessManager.restart()` call in `worker-utils.ts` +- Fix pre-existing bug where `port` variable was undefined in error logging + +## [7.2.2] - 2025-12-15 + +## Changes + +- **Refactor:** Consolidate mem-search skill, remove desktop-skill duplication + - Delete separate `desktop-skill/` directory (was outdated) + - Generate `mem-search.zip` during build from `plugin/skills/mem-search/` + - Update docs with correct MCP tool list and new download path + - Single source of truth for Claude Desktop skill + +## [7.2.1] - 2025-12-14 + +## Translation Script Enhancements + +This release adds powerful enhancements to the README translation system, supporting 35 languages with improved efficiency and caching. + +### What's New + +**Translation Script Improvements:** +- **Caching System**: Smart `.translation-cache.json` tracks content hashes to skip re-translating unchanged content +- **Parallel Processing**: `--parallel ` flag enables concurrent translations for faster execution +- **Force Re-translation**: `--force` flag to override cache when needed +- **Tier-Based Scripts**: Organized translation workflows by language priority + - `npm run translate:tier1` - 7 major languages (Chinese, Japanese, Korean, etc.) + - `npm run translate:tier2` - 8 strong tech scene languages (Hebrew, Arabic, Russian, etc.) + - `npm run translate:tier3` - 7 emerging markets (Vietnamese, Indonesian, Thai, etc.) + - `npm run translate:tier4` - 6 additional languages (Italian, Greek, Hungarian, etc.) + - `npm run translate:all` - All 35 languages sequentially +- **Better Output Handling**: Automatically strips markdown code fences if Claude wraps output +- **Translation Disclaimer**: Adds community correction notice at top of translated files +- **Performance**: Uses Bun runtime for faster execution + +### Supported Languages (35 Total) + +Arabic, Bengali, Brazilian Portuguese, Bulgarian, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, Estonian, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese + +### Breaking Changes + +None - fully backward compatible. + +### Installation + +```bash +# Update via npm +npm install -g claude-mem@7.2.1 + +# Or reinstall plugin +claude plugin install thedotmack/claude-mem +``` + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.2.0...v7.2.1 + +## [7.2.0] - 2025-12-14 + +## 🎉 New Features + +### Automated Bug Report Generator + +Added comprehensive bug report tool that streamlines issue reporting with AI assistance: + +- **Command**: `npm run bug-report` +- **🌎 Multi-language Support**: Write in ANY language, auto-translates to English +- **📊 Smart Diagnostics**: Automatically collects: + - Version information (claude-mem, Claude Code, Node.js, Bun) + - Platform details (OS, version, architecture) + - Worker status (running state, PID, port, uptime, stats) + - Last 50 lines of logs (worker + silent debug) + - Database info and configuration settings +- **🤖 AI-Powered**: Uses Claude Agent SDK to generate professional GitHub issues +- **📝 Interactive**: Multiline input support with intuitive prompts +- **🔒 Privacy-Safe**: + - Auto-sanitizes all file paths (replaces home directory with ~) + - Optional `--no-logs` flag to exclude logs +- **⚡ Streaming Progress**: Real-time character count and animated spinner +- **🌐 One-Click Submit**: Auto-opens GitHub with pre-filled title and body + +### Usage + +From the plugin directory: +```bash +cd ~/.claude/plugins/marketplaces/thedotmack +npm run bug-report +``` + +**Plugin Paths:** +- macOS/Linux: `~/.claude/plugins/marketplaces/thedotmack` +- Windows: `%USERPROFILE%\.claude\plugins\marketplaces\thedotmack` + +**Options:** +```bash +npm run bug-report --no-logs # Skip logs for privacy +npm run bug-report --verbose # Show all diagnostics +npm run bug-report --help # Show help +``` + +## 📚 Documentation + +- Updated README with bug report section and usage instructions +- Enhanced GitHub issue template to feature automated tool +- Added platform-specific directory paths + +## 🔧 Technical Details + +**Files Added:** +- `scripts/bug-report/cli.ts` - Interactive CLI entry point +- `scripts/bug-report/index.ts` - Core logic with Agent SDK integration +- `scripts/bug-report/collector.ts` - System diagnostics collector + +**Files Modified:** +- `package.json` - Added bug-report script +- `README.md` - New Bug Reports section +- `.github/ISSUE_TEMPLATE/bug_report.md` - Updated with automated tool instructions + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.15...v7.2.0 + +## [7.1.15] - 2025-12-14 + +## 🐛 Bug Fixes + +**Worker Service Initialization** +- Fixed 404 error on `/api/context/inject` during worker startup +- Route is now registered immediately instead of after database initialization +- Prevents race condition on fresh installs and restarts +- Added integration test for early context inject route access + +## Technical Details + +The context hook was failing with `Cannot GET /api/context/inject` because the route was registered only after database initialization completed. This created a race condition where the hook could attempt to access the endpoint before it existed. + +**Implementation:** +- Added `initializationComplete` Promise to track async background initialization +- Register `/api/context/inject` route immediately in `setupRoutes()` +- Early handler blocks requests until initialization resolves (30s timeout) +- Route handler duplicates logic from `SearchRoutes.handleContextInject` by design to prevent 404s + +**Testing:** +- Added integration test verifying route registration and timeout handling + +Fixes #305 +Related: PR #310 + +## [7.1.14] - 2025-12-14 + +## Enhanced Error Handling & Logging + +This patch release improves error message quality and logging across the claude-mem system. + +### Error Message Improvements + +**Standardized Hook Error Handling** +- Created shared error handlers (`handleFetchError`, `handleWorkerError`) for consistent error messages +- Platform-aware restart instructions (macOS, Linux, Windows) with correct commands +- Migrated all hooks (context, new, save, summary) to use standardized handlers +- Enhanced error logging with actionable context before throwing restart instructions + +**ChromaSync Error Standardization** +- Consistent client initialization checks across all methods +- Enhanced error messages with troubleshooting steps and restart instructions +- Better context about which operation failed + +**Worker Service Improvements** +- Enhanced version endpoint error logging with status codes and response text +- Improved worker restart error messages with PM2 commands +- Better context in all worker-related error scenarios + +### Bug Fixes + +- **Issue #260**: Fixed `happy_path_error__with_fallback` misuse in save-hook causing false "Missing cwd" errors +- Removed unnecessary `happy_path_error` calls from SDKAgent that were masking real error messages +- Cleaned up migration logging to use `console.log` instead of `console.error` for non-error events + +### Logging Improvements + +**Timezone-Aware Timestamps** +- Worker logs now use local machine timezone instead of UTC +- Maintains same format (`YYYY-MM-DD HH:MM:SS.mmm`) but reflects local time +- Easier debugging and log correlation with system events +- Enhanced worker-cli logging output format + +### Test Coverage + +Added comprehensive test suites: +- `tests/error-handling/hook-error-logging.test.ts` - 12 tests for hook error handler behavior +- `tests/services/chroma-sync-errors.test.ts` - ChromaSync error message consistency +- `tests/integration/hook-execution-environments.test.ts` - Bun PATH resolution across shells +- `docs/context/TEST_AUDIT_2025-12-13.md` - Comprehensive audit report + +### Files Changed + +27 files changed: 1,435 additions, 200 deletions + +**What's Changed** +* Standardize and enhance error handling across hooks and worker service by @thedotmack in #295 +* Timezone-aware logging for worker service and CLI +* Complete build with all plugin files included + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.12...v7.1.14 + +## [7.1.13] - 2025-12-14 + +## Enhanced Error Handling & Logging + +This patch release improves error message quality and logging across the claude-mem system. + +### Error Message Improvements + +**Standardized Hook Error Handling** +- Created shared error handlers (`handleFetchError`, `handleWorkerError`) for consistent error messages +- Platform-aware restart instructions (macOS, Linux, Windows) with correct commands +- Migrated all hooks (context, new, save, summary) to use standardized handlers +- Enhanced error logging with actionable context before throwing restart instructions + +**ChromaSync Error Standardization** +- Consistent client initialization checks across all methods +- Enhanced error messages with troubleshooting steps and restart instructions +- Better context about which operation failed + +**Worker Service Improvements** +- Enhanced version endpoint error logging with status codes and response text +- Improved worker restart error messages with PM2 commands +- Better context in all worker-related error scenarios + +### Bug Fixes + +- **Issue #260**: Fixed `happy_path_error__with_fallback` misuse in save-hook causing false "Missing cwd" errors +- Removed unnecessary `happy_path_error` calls from SDKAgent that were masking real error messages +- Cleaned up migration logging to use `console.log` instead of `console.error` for non-error events + +### Logging Improvements + +**Timezone-Aware Timestamps** +- Worker logs now use local machine timezone instead of UTC +- Maintains same format (`YYYY-MM-DD HH:MM:SS.mmm`) but reflects local time +- Easier debugging and log correlation with system events + +### Test Coverage + +Added comprehensive test suites: +- `tests/error-handling/hook-error-logging.test.ts` - 12 tests for hook error handler behavior +- `tests/services/chroma-sync-errors.test.ts` - ChromaSync error message consistency +- `tests/integration/hook-execution-environments.test.ts` - Bun PATH resolution across shells +- `docs/context/TEST_AUDIT_2025-12-13.md` - Comprehensive audit report + +### Files Changed + +27 files changed: 1,435 additions, 200 deletions + +**What's Changed** +* Standardize and enhance error handling across hooks and worker service by @thedotmack in #295 +* Timezone-aware logging for worker service + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.12...v7.1.13 + +## [7.1.12] - 2025-12-14 + +## What's Fixed + +- **Fix data directory creation**: Ensure `~/.claude-mem/` directory exists before writing PM2 migration marker file + - Fixes ENOENT errors on first-time installation (issue #259) + - Adds `mkdirSync(dataDir, { recursive: true })` in `startWorker()` before marker file write + - Resolves Windows installation failures introduced in f923c0c and exposed in 5d4e71d + +## Changes + +- Added directory creation check in `src/shared/worker-utils.ts` +- All 52 tests passing + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.11...v7.1.12 + +## [7.1.11] - 2025-12-14 + +## What's Changed + +**Refactor: Simplified hook execution by removing bun-wrapper indirection** + +Hooks are compiled to standard JavaScript and work perfectly with Node. The bun-wrapper was solving a problem that doesn't exist - hooks don't use Bun-specific APIs, they're just HTTP clients to the worker service. + +**Benefits:** +- Removes ~100 lines of code +- Simpler cross-platform support (especially Windows) +- No PATH resolution needed for hooks +- Worker still uses Bun where performance matters +- Follows YAGNI and Simple First principles + +**Fixes:** +- Fish shell compatibility issue (#264) + +**Full Changelog:** https://github.com/thedotmack/claude-mem/compare/v7.1.10...v7.1.11 + +## [7.1.10] - 2025-12-14 + +## Enhancement + +This release adds automatic orphan cleanup to complement the process leak fix from v7.1.9. + +### Added + +- **Auto-Cleanup on Startup**: Worker now automatically detects and kills orphaned chroma-mcp processes before starting + - Scans for existing chroma-mcp processes on worker startup + - Kills all found processes before creating new ones + - Logs cleanup activity (process count and PIDs) + - Non-fatal error handling (continues on cleanup failure) + +### Benefits + +- Automatically recovers from pre-7.1.9 process leaks without manual intervention +- Ensures clean slate on every worker restart +- Prevents accumulation even if v7.1.9's close() method fails +- No user action required - works transparently + +### Example Logs + +``` +[INFO] [SYSTEM] Cleaning up orphaned chroma-mcp processes {count=2, pids=33753,33750} +[INFO] [SYSTEM] Orphaned processes cleaned up {count=2} +``` + +### Recommendation + +Upgrade from v7.1.9 to get automatic orphan cleanup. Combined with v7.1.9's proper subprocess cleanup, this provides comprehensive protection against process leaks. + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.9...v7.1.10 + +## [7.1.9] - 2025-12-14 + +## Critical Bugfix + +This patch release fixes a critical memory leak that caused chroma-mcp processes to accumulate with each worker restart, leading to memory exhaustion and silent backfill failures. + +### Fixed + +- **Process Leak Prevention**: ChromaSync now properly cleans up chroma-mcp subprocesses when the worker is restarted + - Store reference to StdioClientTransport subprocess + - Explicitly close transport to kill subprocess on shutdown + - Add error handling to ensure cleanup even on failures + - Reset all state in finally block + +### Impact + +- Eliminates process accumulation (16+ orphaned processes seen in production) +- Prevents memory exhaustion from leaked subprocesses (900MB+ RAM usage) +- Fixes silent backfill failures caused by OOM kills +- Ensures graceful cleanup on worker shutdown + +### Recommendation + +**All users should upgrade immediately** to prevent memory leaks and ensure reliable backfill operation. + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.8...v7.1.9 + +## [7.1.8] - 2025-12-13 + +## Memory Export/Import Scripts + +Added portable memory export and import functionality with automatic duplicate prevention. + +### New Features +- **Export memories** to JSON format with search filtering and project-based filtering +- **Import memories** with automatic duplicate detection via composite keys +- Complete documentation in docs/public/usage/export-import.mdx + +### Use Cases +- Share memory sets between developers working on the same project +- Backup and restore specific project memories +- Collaborate on domain knowledge across teams +- Migrate memories between different claude-mem installations + +### Example Usage +```bash +# Export Windows-related memories +npx tsx scripts/export-memories.ts "windows" windows-work.json + +# Export only claude-mem project memories +npx tsx scripts/export-memories.ts "bugfix" fixes.json --project=claude-mem + +# Import memories (with automatic duplicate prevention) +npx tsx scripts/import-memories.ts windows-work.json +``` + +### Technical Improvements +- Fixed JSON format response in /api/search endpoint for consistent structure +- Enhanced project filtering in ChromaDB hybrid search result hydration +- Duplicate detection using composite keys (session ID + title + timestamp) + +## [7.1.7] - 2025-12-13 + +## Fixed +- Removed Windows workaround that was causing libuv assertion failures +- Prioritized stability over cosmetic console window issue + +## Known Issue +- On Windows, a console window may briefly appear when the worker starts (cosmetic only, does not affect functionality) + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.6...v7.1.7 + +## [7.1.6] - 2025-12-13 + +## What's Changed + +Improved error messages with platform-specific worker restart instructions for better troubleshooting experience. + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.5...v7.1.6 + +## [7.1.5] - 2025-12-13 + +## What's Changed + +* fix: Use getWorkerHost() instead of hardcoded localhost in MCP server (#276) + +### Bug Fix +Fixes Windows IPv6 issue where `localhost` resolves to `::1` (IPv6) but worker binds to `127.0.0.1` (IPv4), causing MCP tool connections to fail. + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.4...v7.1.5 + +## [7.1.4] - 2025-12-13 + +## What's Changed + +* fix: add npm fallback when bun install fails with alias packages (#265) + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.3...v7.1.4 + +## [7.1.3] - 2025-12-13 + +## Bug Fixes + +### Smart Install Script Refactoring + +Refactored the smart-install.js script to improve code quality and maintainability: +- Extracted common installation paths as top-level constants (BUN_COMMON_PATHS, UV_COMMON_PATHS) +- Simplified installation check functions to delegate to dedicated path-finding helpers +- Streamlined installation verification logic with clearer error messages +- Removed redundant post-installation verification checks +- Improved error propagation by removing unnecessary retry logic + +This refactoring reduces code duplication and makes the installation process more maintainable while preserving the same functionality for detecting Bun and uv binaries across platforms. + +## [7.1.2] - 2025-12-13 + +## 🐛 Bug Fixes + +### Windows Installation +- Fixed Bun PATH detection on Windows after fresh install +- Added fallback to check common install paths before PATH reload +- Improved smart-install.js to use full Bun path when not in PATH +- Added proper path quoting for Windows usernames with spaces + +### Worker Startup +- Fixed worker connection failures in Stop hook +- Added health check retry loop (5 attempts, 500ms intervals) +- Worker now waits up to 2.5s for responsiveness before returning +- Improved error detection for Bun's ConnectionRefused error format + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.1.1...v7.1.2 + +## [7.1.1] - 2025-12-13 + +## 🚨 Critical Fixes + +### Windows 11 Bun Auto-Install Fixed +- **Problem**: v7.1.0 had a chicken-and-egg bug where `bun smart-install.js` failed if Bun wasn't installed +- **Solution**: SessionStart hook now uses `node` (always available) for smart-install.js +- **Impact**: Fresh Windows installations now work out-of-box + +### Path Quoting for Windows +- Fixed `hooks.json` to quote all paths +- Prevents SyntaxError for usernames with spaces (e.g., "C:\Users\John Doe\") + +## ✨ New Feature + +### Automatic Worker Restart on Version Updates +- Worker now automatically restarts when plugin version changes +- No more manual `npm run worker:restart` needed after upgrades +- Eliminates connection errors from running old worker code + +## 📝 Notes + +- **No manual actions required** - worker auto-restarts on next session start +- All future upgrades will automatically restart the worker +- Fresh installs on Windows 11 work correctly + +## 🔗 Links + +- [Full Changelog](https://github.com/thedotmack/claude-mem/blob/main/CHANGELOG.md#711---2025-12-12) +- [Documentation](https://docs.claude-mem.ai) + +## [7.1.0] - 2025-12-13 + +## Major Architectural Migration + +This release completely replaces PM2 with native Bun-based process management and migrates from better-sqlite3 to bun:sqlite. + +### Key Changes + +**Process Management** +- Replace PM2 with custom Bun-based ProcessManager +- PID file-based process tracking +- Automatic legacy PM2 process cleanup on all platforms + +**Database Driver** +- Migrate from better-sqlite3 npm package to bun:sqlite runtime module +- Zero native compilation required +- Same API compatibility + +**Auto-Installation** +- Bun runtime auto-installed if missing +- uv (Python package manager) auto-installed for Chroma vector search +- Smart installer with platform-specific methods (curl/PowerShell) + +### Migration + +**Automatic**: First hook trigger after update performs one-time PM2 cleanup and transitions to new architecture. No user action required. + +### Documentation + +Complete technical documentation in `docs/PM2-TO-BUN-MIGRATION.md` + +## [7.0.11] - 2025-12-12 + +Patch release adding feature/bun-executable to experimental branch selector for testing Bun runtime integration. + +## [7.0.9] - 2025-12-10 + +## Bug Fixes + +- Fixed MCP response format in search route handlers - all 14 search endpoints now return complete response objects with error status instead of just content arrays, restoring MCP protocol compatibility + +## Changes + +- `SearchRoutes.ts`: Updated all route handlers to return full result object instead of extracted content property + +## [7.0.8] - 2025-12-10 + +## Bug Fixes + +- **Critical**: Filter out meta-observations for session-memory files to prevent recursive timeline pollution + - Memory agent was creating observations about editing Agent SDK's session-memory/summary.md files + - This created a recursive loop where investigating timeline pollution caused more pollution + - Filter now skips Edit/Write/Read/NotebookEdit operations on any file path containing 'session-memory' + - Eliminates 91+ meta-observations that were polluting the timeline + +## Technical Details + +Added filtering logic in SessionRoutes.ts to detect and skip file operations on session-memory files before observations are queued to the SDK agent. This prevents the memory agent from observing its own observation metadata files. + +## [7.0.7] - 2025-12-10 + +## What's Changed + +### Code Quality Improvements +- Refactored hooks codebase to reduce complexity and improve maintainability (#204) +- Net reduction of 78 lines while adding new functionality +- Improved type safety across all hook input interfaces + +### New Features +- Added `CLAUDE_MEM_SKIP_TOOLS` configuration setting for controlling which tools are excluded from observations +- Default skip tools: `ListMcpResourcesTool`, `SlashCommand`, `Skill`, `TodoWrite`, `AskUserQuestion` + +### Technical Improvements +- Created shared utilities: `transcript-parser.ts`, `hook-constants.ts`, `hook-error-handler.ts` +- Migrated business logic from hooks to worker service for better separation of concerns +- Enhanced error handling and spinner management +- Removed dead code and unnecessary abstractions + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.0.6...v7.0.7 + +## [7.0.6] - 2025-12-10 + +## Bug Fixes + +- Fixed Windows terminal spawning to hide terminal windows when spawning child processes (#203, thanks @CrystallDEV) +- Improved worker service process management on Windows + +## Contributors + +Thanks to @CrystallDEV for this contribution! + +## [7.0.5] - 2025-12-09 + +## What's Changed + +### Bug Fixes +- Fixed settings schema inconsistency between write and read operations +- Fixed PowerShell command injection vulnerability in worker-utils.ts +- Enhanced PM2 existence check with clear error messages +- Added error logging to silent tool serialization handlers + +### Improvements +- Settings centralization: Migrated to SettingsDefaultsManager across codebase +- Auto-creation of settings.json file with defaults on first run +- Settings schema migration from nested to flat format +- Refactored HTTP-only new-hook implementation +- Cross-platform worker service improvements + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.0.4...v7.0.5 + +## [7.0.4] - 2025-12-09 + +## What's Changed + +### Bug Fixes +- **Windows**: Comprehensive fixes for Windows plugin installation +- **Cache**: Add package.json to plugin directory for cache dependency resolution + +Thanks to @kat-bell for the excellent contributions! + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.0.3...v7.0.4 + +## [7.0.3] - 2025-12-09 + +## What's Changed + +**Refactoring:** +- Completed rename of `search-server` to `mcp-server` throughout codebase +- Updated all documentation references from search-server to mcp-server +- Updated debug log messages to use `[mcp-server]` prefix +- Removed legacy `search-server.cjs` file + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.0.2...v7.0.3 + +## [7.0.2] - 2025-12-09 + +## What's Changed + +**Bug Fixes:** +- Improved auto-start worker functionality for better reliability + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v7.0.1...v7.0.2 + +## [7.0.1] - 2025-12-09 + +## Bug Fixes + +- **Hook Execution**: Ensure worker is running at the beginning of all hook files +- **Context Hook**: Replace waitForPort with ensureWorkerRunning for better error handling +- **Reliability**: Move ensureWorkerRunning to start of all hook functions to ensure worker is started before any logic executes + +## Technical Changes + +- context-hook.ts: Replace waitForPort logic with ensureWorkerRunning +- summary-hook.ts: Move ensureWorkerRunning before input validation +- new-hook.ts: Move ensureWorkerRunning before debug logging +- save-hook.ts: Move ensureWorkerRunning before SKIP_TOOLS check +- cleanup-hook.ts: Move ensureWorkerRunning before silentDebug calls + +This ensures more reliable worker startup and clearer error messages when the worker fails to start. + +## [7.0.0] - 2025-12-08 + +# Major Architectural Refactor + +This major release represents a complete architectural transformation of claude-mem from a monolithic design to a clean, modular HTTP-based architecture. + +## Breaking Changes + +**None** - Despite being a major version bump due to the scope of changes, this release maintains full backward compatibility. All existing functionality works exactly as before. + +## What Changed + +### Hooks → HTTP Clients +- All 5 lifecycle hooks converted from direct database access to lightweight HTTP clients +- Each hook reduced from 400-800 lines to ~75 lines +- Hooks now make simple HTTP calls to the worker service +- Eliminates SQL duplication across hooks - single source of truth in worker + +### Worker Service Modularization +- `worker-service.ts` reduced from 1600+ lines to clean orchestration layer +- New route-based HTTP architecture: + - `SessionRoutes` - Session lifecycle management + - `DataRoutes` - Database queries (observations, sessions, timeline) + - `SearchRoutes` - Full-text and semantic search + - `SettingsRoutes` - Configuration management + - `ViewerRoutes` - UI endpoints + +### New Service Layer +- `BaseRouteHandler` - Centralized error handling, response formatting (used 46x) +- `SessionEventBroadcaster` - Semantic SSE event broadcasting +- `SessionCompletionHandler` - Consolidated session completion logic +- `SettingsDefaultsManager` - Single source of truth for configuration defaults +- `PrivacyCheckValidator` - Centralized privacy tag validation +- `FormattingService` - Dual-format result rendering +- `TimelineService` - Complex markdown timeline formatting +- `SearchManager` - Extracted search logic from context generation + +### Database Improvements +- Migrated from \`bun:sqlite\` to \`better-sqlite3\` for broader compatibility +- SQL queries moved from route handlers to \`SessionStore\` for separation of concerns +- \`PaginationHelper\` centralizes paginated queries with LIMIT+1 optimization + +### Testing Infrastructure +- New comprehensive happy path tests for full session lifecycle +- Integration tests covering session init, observation capture, search, summaries, cleanup +- Test helpers and mocks for consistent testing patterns + +### Type Safety +- Removed 'as any' casts throughout codebase +- New \`src/types/database.ts\` with proper type definitions +- Enhanced null safety in SearchManager + +## Stats +- **60 files changed** +- **8,671 insertions, 5,585 deletions** +- Net: ~3,000 lines of new code (mostly tests and new modular services) + +## Migration Notes + +No migration required! Update and continue using claude-mem as before. + +## [6.5.3] - 2025-12-05 + +## Bug Fixes + +- **Windows**: Hide console window when spawning child processes (#166) + - Adds `windowsHide: true` to `spawnSync` and `execSync` calls + - Prevents empty terminal windows from appearing on Windows when hooks execute + +Reference: https://nodejs.org/api/child_process.html (windowsHide option) + +## [6.5.2] - 2025-12-04 + +## What's Changed + +- **Upgraded better-sqlite3** from `^11.0.0` to `^12.5.0` for Node.js 25 compatibility + +### Fixes +- Resolves compilation errors when installing on Node.js 25.x (#164) + +## [6.5.1] - 2025-12-04 + +## What's New + +- Decorative Product Hunt announcement in terminal with rocket borders +- Product Hunt badge in viewer header with theme-aware switching (light/dark) +- Badge uses separate tracking URL for analytics + +## Changes + +This is a temporary launch day update. The announcement will auto-expire at midnight EST. + +## [6.5.0] - 2025-12-04 + +## Documentation Overhaul + +This release brings comprehensive documentation updates to reflect all features added in v6.4.x and standardize version references across the codebase. + +### Changes + +**Updated "What's New" Sections:** +- Highlights v6.4.9 Context Configuration Settings (11 new settings) +- Highlights v6.4.0 Dual-Tag Privacy System (`` tags) +- Highlights v6.3.0 Version Channel (beta toggle in UI) + +**Key Features Updated:** +- Added 🔒 Privacy Control (`` tags) +- Added ⚙️ Context Configuration settings + +**Clarifications:** +- Fixed lifecycle hook count: 5 lifecycle events with 6 hook scripts +- Fixed default model: `claude-haiku-4-5` (not sonnet) +- Removed outdated MCP search server references (replaced by skills in v5.4.0) + +**Files Updated:** +- README.md - version badge, features, What's New, default model +- docs/public/introduction.mdx - features, hook count, What's New +- docs/public/installation.mdx - removed MCP reference +- docs/public/configuration.mdx - default model corrections +- plugin/skills/mem-search/operations/help.md - version references + +--- + +📚 Full documentation available at [docs.claude-mem.ai](https://docs.claude-mem.ai) + +## [6.4.9] - 2025-12-02 + +## New Features + +This release adds comprehensive context configuration settings, giving users fine-grained control over how memory context is injected at session start. + +### Context Configuration (11 new settings) + +**Token Economics Display:** +- Control visibility of read tokens, work tokens, savings amount, and savings percentage + +**Observation Filtering:** +- Filter by observation types (bugfix, feature, refactor, discovery, decision, change) +- Filter by observation concepts (how-it-works, why-it-exists, what-changed, problem-solution, gotcha, pattern, trade-off) + +**Display Configuration:** +- Configure number of full observations to include +- Choose which field to show in full (narrative/facts) +- Set number of recent sessions to include + +**Feature Toggles:** +- Control inclusion of last session summary +- Control inclusion of final messages from prior session + +All settings have sensible defaults and are fully backwards compatible. + +### What's Next + +**Settings UI enhancements coming very shortly in the next release!** We're working on improving the settings interface for even better user experience. + +## Technical Details + +- 10 files changed (+825, -212) +- New centralized observation metadata constants +- Enhanced context hook with SQL-based filtering +- Worker service settings validation +- Viewer UI controls for all settings + +## [6.4.1] - 2025-12-01 + +## Hey there, claude-mem community! 👋 + +We're doing something new and exciting: **our first-ever Live AMA**! + +### 🔴 When You'll See Us Live + +**December 1st-5th, 2025** +**Daily from 5-7pm EST** + +During these times, you'll see a live indicator (🔴) when you start a new session, letting you know we're available right now to answer questions, discuss ideas, or just chat about what you're building with claude-mem. + +### What Changed in This Release + +We've added a smart announcement system that: +- Shows upcoming AMA schedule before/after live hours +- Displays a live indicator (🔴) when we're actively available +- Automatically cleans up after the event ends + +### Why We're Doing This + +We want to hear from **you**! Whether you're: +- Just getting started with claude-mem +- A power user with feature ideas +- Curious about how memory compression works +- Running into any issues +- Or just want to say hi 👋 + +This is your chance to connect directly with the developer (@thedotmack) and fellow community members. + +### Join the Community + +Can't make the live times? No worries! Join our Discord to stay connected: +**https://discord.gg/J4wttp9vDu** + +We're excited to meet you and hear what you're building! + +--- + +## Technical Details + +**Changed Files:** +- `src/hooks/user-message-hook.ts` - Added time-aware announcement logic +- Version bumped across all manifests (6.4.0 → 6.4.1) + +**Built Artifacts:** +- `plugin/scripts/user-message-hook.js` - Updated compiled hook + +--- + +Looking forward to seeing you at the AMA! 🎉 + +## [6.4.0] - 2025-12-01 + +## 🎯 Highlights + +This release introduces a powerful **dual-tag privacy system** that gives you fine-grained control over what gets stored in your observation history, along with significant search API improvements. + +## ✨ New Features + +### Dual-Tag Privacy System +- **`` tags**: User-level privacy control - wrap any sensitive content to prevent storage in observation history +- **`` tags**: System-level tags for auto-injected observations to prevent recursive storage +- Tag stripping happens at the hook layer (edge processing) before data reaches worker/database +- Comprehensive documentation in `docs/public/usage/private-tags.mdx` + +### User Experience +- New inline help message in context hook highlighting the `` tag feature +- Improved Community link formatting in startup messages + +## 🔧 Improvements + +### Search API +- Simplified search endpoint parameters to eliminate bracket encoding issues (#154) +- Cleaner API interface for mem-search skill + +### Performance +- Added composite index for user prompts lookup optimization +- Shared tag-stripping utilities in `src/utils/tag-stripping.ts` + +## 📚 Documentation + +- Updated CLAUDE.md with Privacy Tags section +- Enhanced private-tags.mdx with implementation details +- Added comprehensive test coverage for tag stripping + +## 🔗 Related PRs + +- #153: Dual-tag system for meta-observation control +- #154: Eliminate bracket encoding in search API parameters + +--- + +💡 **Try it now**: Wrap sensitive data with `your-secret-data` in any message to Claude Code! + +## [6.3.7] - 2025-12-01 + +## Bug Fixes + +- **fix: Remove orphaned closing brace in smart-install.js** - Fixes SyntaxError "Missing catch or finally after try" that was preventing the plugin from loading correctly + +## What Changed + +Fixed a syntax error in `scripts/smart-install.js` where an extra closing brace on line 392 caused the SessionStart hook to fail. The PM2 worker startup try/catch block was properly formed but had an orphaned closing brace that didn't match any opening brace. + +This bug was introduced in a recent release and prevented the plugin from loading correctly for users. + +## [6.3.6] - 2025-11-30 + +## Auto-detect and rebuild native modules on Node.js version changes + +### Bug Fixes +- **Native Module Compatibility**: Auto-detects Node.js version changes and rebuilds better-sqlite3 when needed +- **Self-healing Recovery**: Gracefully handles ERR_DLOPEN_FAILED errors with automatic reinstall on next session +- **Version Tracking**: Enhanced .install-version marker now tracks both package and Node.js versions (JSON format) +- **Runtime Verification**: Added verifyNativeModules() to catch ABI mismatches and corrupted builds + +### Technical Details +This release fixes a critical issue where upgrading Node.js (e.g., v22 → v25) would cause native module failures that the plugin couldn't auto-recover from. The smart-install script now: +- Tracks Node.js version in addition to package version +- Verifies native modules actually load (not just file existence) +- Triggers rebuild when either version changes +- Handles runtime failures gracefully with helpful user messaging + +### Contributors +- @dreamiurg - Thank you for the comprehensive fix and thorough testing! + +### Merged PRs +- #149 - feat: Auto-detect and rebuild native modules on Node.js version changes + +## [6.3.5] - 2025-11-30 + +## Changes + +- ✨ Restored Discord community button in viewer header +- 📱 Added responsive mobile navigation menu +- 🔄 Reorganized Sidebar component for better mobile UX +- 🐛 Fixed missing props being passed to Sidebar component + +## Technical Details + +- Community button visible in header on desktop (> 600px width) +- Mobile menu icon appears on small screens (≤ 600px width) +- Sidebar toggles via hamburger menu on mobile +- Both buttons positioned in header for consistent UX + +Full changelog: https://github.com/thedotmack/claude-mem/compare/v6.3.4...v6.3.5 + +## [6.3.4] - 2025-11-30 + +## Bug Fixes + +### Worker Startup Improvements + +Fixed critical issues with worker service startup on fresh installations: + +- **Auto-start worker after installation** - The PM2 worker now starts automatically during plugin installation +- **Local PM2 resolution** - Plugin now uses local PM2 from node_modules/.bin instead of requiring global installation +- **Improved error messages** - Clear, actionable instructions with full paths when worker fails to start +- **Cross-platform support** - Proper handling of Windows platform differences (pm2.cmd) +- **Security enhancement** - Switched from execSync to spawnSync with array arguments to prevent command injection + +These changes significantly improve the first-time installation experience, eliminating the need for manual PM2 setup. + +**Special thanks to @dreamiurg for identifying and fixing this critical UX issue!** 🙏 + +## [6.3.3] - 2025-11-30 + +Bug fixes and improvements to timeline context feature: + +- Added session ID validation to filterTimelineByDepth +- Added timestamp fallback warning +- Exported filterTimelineByDepth function for unit testing +- Fixed type breakdown display in timeline item count + +Full changes: https://github.com/thedotmack/claude-mem/compare/v6.3.2...v6.3.3 + +## [6.3.2] - 2025-11-25 + +## What's Changed + +### Improvements +- Add search query support to `/api/decisions` endpoint - now supports semantic search within decisions using Chroma with `{ type: 'decision' }` metadata filter + +### Usage +```bash +# Search within decisions (new) +curl "http://localhost:37777/api/decisions?query=architecture&format=full&limit=5" + +# All decisions (existing behavior preserved) +curl "http://localhost:37777/api/decisions?format=index&limit=10" +``` + +## [6.3.1] - 2025-11-25 + +## What's New + +- Add script to help estimate token savings from on-the-fly replacements + +## [6.3.0] - 2025-11-25 + +## What's New + +### Branch-Based Beta Toggle +Added Version Channel section to Settings sidebar allowing users to switch between stable and beta versions directly from the UI. + +**Features:** +- See current branch (main or beta/7.0) and stability status +- Switch to beta branch to access Endless Mode features +- Switch back to stable for production use +- Pull updates for current branch + +**Implementation:** +- `BranchManager.ts`: Git operations for branch detection/switching +- `worker-service.ts`: `/api/branch/*` endpoints (status, switch, update) +- `Sidebar.tsx`: Version Channel UI with branch state and handlers + +## Installation +To update, restart Claude Code or run the plugin installer. + +## [6.2.1] - 2025-11-23 + +## 🐛 Bug Fixes + +### Critical: Empty Project Names Breaking Context Injection + +**Problem:** +- Observations and summaries created with empty project names +- Context-hook couldn't find recent context (queries `WHERE project = 'claude-mem'`) +- Users saw no observations or summaries in SessionStart since Nov 22 + +**Root Causes:** + +1. **Sessions:** `createSDKSession()` used `INSERT OR IGNORE` for idempotency, but never updated project field when session already existed +2. **In-Memory Cache:** `SessionManager` cached sessions with stale empty project values, even after database was updated + +**Fixes:** + +- `5d23c60` - fix: Update project name when session already exists in createSDKSession +- `54ef149` - fix: Refresh in-memory session project when updated in database + +**Impact:** +- ✅ 364 observations backfilled with correct project names +- ✅ 13 summaries backfilled with correct project names +- ✅ Context injection now works (shows recent observations and summaries) +- ✅ Future sessions will always have correct project names + +## 📦 Full Changelog + +**Commits since v6.2.0:** +- `634033b` - chore: Bump version to 6.2.1 +- `54ef149` - fix: Refresh in-memory session project when updated in database +- `5d23c60` - fix: Update project name when session already exists in createSDKSession + +## [6.2.0] - 2025-11-22 + +## Major Features + +### Unified Search API (#145, #133) +- **Vector-first search architecture**: All text queries now use ChromaDB semantic search +- **Unified /api/search endpoint**: Single endpoint with filter parameters (type, concepts, files) +- **ID-based fetch endpoints**: New GET /api/observation/:id, /api/session/:id, /api/prompt/:id +- **90-day recency filter**: Automatic relevance filtering for search results +- **Backward compatibility**: Legacy endpoints still functional, routing through unified infrastructure + +### Search Architecture Cleanup +- **Removed FTS5 fallback code**: Eliminated ~300 lines of deprecated full-text search code +- **Removed experimental contextualize endpoint**: Will be reimplemented as LLM-powered skill (see #132) +- **Simplified mem-search skill**: Streamlined to prescriptive 3-step workflow (Search → Review IDs → Fetch by ID) +- **Better error messages**: Clear guidance when ChromaDB/UVX unavailable + +## Bug Fixes + +### Search Improvements +- Fixed parameter handling in searchUserPrompts method +- Improved dual-path logic for filter-only vs text queries +- Corrected missing debug output in search API + +## Documentation + +- Updated CLAUDE.md to reflect vector-first architecture +- Clarified FTS5 tables maintained for backward compatibility only (removal planned for v7.0.0) +- Enhanced mem-search skill documentation with clearer usage patterns +- Added comprehensive test results for search functionality + +## Breaking Changes + +None - all changes maintain backward compatibility. + +## Installation + +Users with auto-update enabled will receive this update automatically. To manually update: + +\`\`\`bash +# Restart Claude Code or run: +npm run sync-marketplace +\`\`\` + +## [6.1.1] - 2025-11-21 + +## Bug Fixes + +### Dynamic Project Name Detection (#142) +- Fixed hardcoded "claude-mem" project name in ChromaSync and search-server +- Now uses `getCurrentProjectName()` to dynamically detect the project based on working directory +- Resolves #140 where all observations were incorrectly tagged with "claude-mem" + +### Viewer UI Scrolling +- Simplified overflow CSS to enable proper scrolling in viewer UI +- Removed overcomplicated nested overflow containers +- Fixed issue where feed content wouldn't scroll + +## Installation + +Users with auto-update enabled will receive this patch automatically. To manually update: + +\`\`\`bash +# Restart Claude Code or run: +npm run sync-marketplace +\`\`\` + +## [6.1.0] - 2025-11-19 + +## Viewer UI: Responsive Layout Improvements + +The viewer UI now handles narrow screens better with responsive breakpoints: + +- Community button relocates to sidebar below 600px width +- Projects dropdown relocates to sidebar below 480px width +- Sidebar constrained to 400px max width + +Makes the viewer usable on phones and narrow browser windows. + +## [6.0.9] - 2025-11-17 + +## Queue Depth Indicator Feature + +Added a real-time queue depth indicator to the viewer UI that displays the count of active work items (queued + currently processing). + +### Features +- Visual badge next to claude-mem logo +- Shows count of pending messages + active SDK generators +- Only displays when queueDepth > 0 +- Subtle pulse animation for visual feedback +- Theme-aware styling +- Real-time updates via SSE + +### Implementation +- Backend: Added `getTotalActiveWork()` method to SessionManager +- Backend: Updated worker-service to broadcast queueDepth via SSE +- Frontend: Enhanced Header component to display queue bubble +- Frontend: Updated useSSE hook to track queueDepth state +- Frontend: Added CSS styling with pulse animation + +### Closes +- #122 - Implement queue depth indicator feature +- #96 - Add real-time queue depth indicator to viewer UI +- #97 - Fix inconsistent queue depth calculation + +### Credit +Original implementation by @thedotmack in PR #96 +Bug fix by @copilot-swe-agent in PR #97 + +## [6.0.8] - 2025-11-17 + +## Critical Fix + +This patch release fixes a critical bug where the PM2 worker process would start from the wrong directory (development folder instead of marketplace folder), causing the plugin to malfunction when installed via the marketplace. + +### What's Fixed + +- **Worker Startup Path Resolution** (`src/shared/worker-utils.ts:61`) + Added `cwd: pluginRoot` option to `execSync` when starting PM2 + + This ensures the worker always starts from the correct marketplace directory (`~/.claude/plugins/marketplaces/thedotmack/`), regardless of where the hook is invoked from. + +### Impact + +Users will no longer experience issues with the worker starting from the wrong location. The plugin now works correctly when installed via marketplace without manual intervention. + +### Verification + +Run `pm2 info claude-mem-worker` to verify: +- **exec cwd** should be: `/Users/[username]/.claude/plugins/marketplaces/thedotmack` +- **script path** should be: `/Users/[username]/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs` + +## [6.0.7] - 2025-11-17 + +## Critical Hotfix: Database Migration Issue (#121) + +This is an emergency hotfix addressing a critical database migration bug that prevented claude-mem from loading for some users. + +### What was fixed + +**Issue**: Users were seeing `SqliteError: no such column: discovery_tokens` when starting Claude Code. + +**Root Cause**: The `ensureDiscoveryTokensColumn` migration was using version number 7, which was already taken by another migration (`removeSessionSummariesUniqueConstraint`). This duplicate version number caused migration tracking issues in databases that were upgraded through multiple versions. + +**Fix**: +- Changed migration version from 7 to 11 (next available) +- Added explicit schema_versions check to prevent unnecessary re-runs +- Improved error propagation and documentation + +### Upgrade Instructions + +**If you're experiencing the error:** + +Option 1 - Manual fix (preserves history): +```bash +sqlite3 ~/.claude-mem/claude-mem.db "ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0; ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0;" +``` + +Option 2 - Delete and recreate (loses history): +```bash +rm ~/.claude-mem/claude-mem.db +# Restart Claude Code - database will recreate with correct schema +``` + +Option 3 - Fresh install: +Just upgrade to v6.0.7 and the migration will work correctly. + +### Changes + +- **Fixed**: Database migration version conflict (migration 7 → 11) (#121) +- **Improved**: Migration error handling and schema_versions tracking + +### Full Changelog + +See [CHANGELOG.md](https://github.com/thedotmack/claude-mem/blob/main/CHANGELOG.md) for complete version history. + +--- + +**Affected Users**: @liadtigloo @notmyself - this release fixes your reported issue. Please try one of the upgrade options above and let me know if the issue persists. + +Thanks to everyone who reported this issue with detailed error logs! 🙏 + +## [6.0.6] - 2025-11-17 + +## Critical Bugfix Release + +### Fixed +- **Database Migration**: Fixed critical bug where `discovery_tokens` migration logic trusted `schema_versions` table without verifying actual column existence (#121) +- Migration now always checks if columns exist before queries, preventing "no such column" errors +- Safe for all users - auto-migrates on next Claude Code session without data loss + +### Technical Details +- Removed early return based on `schema_versions` check that could skip actual column verification +- Migration now uses `PRAGMA table_info()` to verify column existence before every query +- Ensures idempotent, safe schema migrations for SQLite databases + +### Impact +- Users experiencing "SqliteError: no such column: discovery_tokens" will be automatically fixed +- No manual intervention or database backup required +- Update to v6.0.6 via marketplace or `git pull` and restart Claude Code + +**Affected Users**: All users who upgraded to v6.0.5 and experienced the migration error + +## [6.0.5] - 2025-11-17 + +## Changes + +### Automatic MCP Server Cleanup +- Automatic cleanup of orphaned MCP server processes on worker startup +- Self-healing maintenance runs on every worker restart +- Prevents orphaned process accumulation and resource leaks + +### Improvements +- Removed manual cleanup notice from session context +- Streamlined worker initialization process + +## What's Fixed +- Memory leaks from orphaned uvx/python processes are now prevented automatically +- Workers self-heal on every restart without manual intervention + +--- + +**Release Date**: November 16, 2025 +**Plugin Version**: 6.0.5 + +## [6.0.4] - 2025-11-17 + +**Patch Release** + +Fixes memory leaks from orphaned uvx/python processes that could accumulate during ChromaDB operations. + +**Changes:** +- Fixed process cleanup in ChromaDB sync operations to prevent orphaned processes +- Improved resource management for external process spawning + +**Full Changelog:** https://github.com/thedotmack/claude-mem/compare/v6.0.3...v6.0.4 + +## [6.0.3] - 2025-11-16 + +## What's Changed + +Documentation alignment release - merged PR #116 fixing hybrid search architecture documentation. + +### Documentation Updates +- Added comprehensive guide +- Updated technical architecture documentation to reflect hybrid ChromaDB + SQLite + timeline context flow +- Fixed skill operation guides to accurately describe semantic search capabilities + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v6.0.2...v6.0.3 + +## [6.0.2] - 2025-11-14 + +## Changes + +- Updated user message hook with Claude-Mem community discussion link for better user engagement and support + +## What's Changed +- Enhanced startup context messaging with community connection information + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v6.0.1...v6.0.2 + +## [6.0.1] - 2025-11-14 + +## UI Enhancements + +### Changes +- Refined color theme with warmer tones for better visual hierarchy +- New observation card blue/teal theme with distinct light/dark mode values +- Added 8 SVG icon assets for summary card sections (thick and thin variants) +- Enhanced summary card component with icon support for completed, investigated, learned, and next-steps sections +- Updated build system to handle icon asset copying + +### Visual Improvements +- Unified color palette refinements across all UI components +- Improved card type differentiation: gold/amber for summaries, purple for prompts, blue/teal for observations +- Better visual consistency in viewer UI + +Full changelog: https://github.com/thedotmack/claude-mem/compare/v6.0.0...v6.0.1 + +## [6.0.0] - 2025-11-13 + +## What's New + +### Major Enhancements + +**Session Management** +- Enhanced session initialization to accept userPrompt and promptNumber +- Live userPrompt updates for multi-turn conversations +- Improved SessionManager with better context handling + +**Transcript Processing** +- Added comprehensive transcript processing scripts for analysis +- New transcript data structures and parsing utilities +- Rich context extraction capabilities + +**Architecture Improvements** +- Refactored hooks and SDKAgent for improved observation handling +- Added silent debug logging utilities +- Better error handling and debugging capabilities + +### Documentation +- Added implementation plan for ROI metrics feature +- Added rich context examples and documentation +- Multiple transcript processing examples + +### Files Changed +- 39 files changed, 4584 insertions(+), 2809 deletions(-) + +## Breaking Changes + +This is a major version bump due to significant architectural changes in session management and observation handling. Existing sessions will continue to work, but the internal APIs have evolved. + +--- + +📦 Install via Claude Code: `~/.claude/plugins/marketplaces/thedotmack/` +📖 Documentation: [CLAUDE.md](https://github.com/thedotmack/claude-mem/blob/main/CLAUDE.md) + +## [5.5.1] - 2025-11-11 + +**Breaking Changes**: None (patch version) + +**Improvements**: +- Enhanced summary hook to capture last user message from Claude Code session transcripts +- Improved activity indicator that tracks both active sessions and queue depth +- Better user feedback during prompt processing +- More accurate processing status broadcasting + +**Technical Details**: +- Modified files: + - src/hooks/summary-hook.ts (added transcript parser for extracting last user message) + - src/services/worker-service.ts (enhanced processing status broadcasting) + - src/services/worker/SessionManager.ts (queue depth tracking for activity indicators) + - src/services/worker-types.ts (added last_user_message field to SDKSession) + - src/sdk/prompts.ts (updated summary prompt to include last user message context) + - src/services/worker/SDKAgent.ts (pass through last user message to SDK) +- Built outputs updated: + - plugin/scripts/summary-hook.js + - plugin/scripts/worker-service.cjs + +**What Changed**: +The summary hook now reads Claude Code transcript files to extract the last user message before generating session summaries. This provides better context for AI-powered session summarization. The activity indicator now accurately reflects both active sessions and queued work, giving users better feedback about what's happening behind the scenes. + +## [5.5.0] - 2025-11-11 + +**Breaking Changes**: None (minor version) + +**Improvements**: +- Merged PR #91: Replace generic "search" skill with enhanced "mem-search" skill +- Improved skill effectiveness from 67% to 100% (Anthropic standards) +- Enhanced scope differentiation to prevent confusion with native conversation memory +- Increased concrete triggers from 44% to 85% +- Added 5+ unique identifiers and explicit exclusion patterns +- Comprehensive documentation reorganization (17 total files) + +**Technical Changes**: +- New mem-search skill with system-specific naming +- Explicit temporal keywords ("previous sessions", "weeks/months ago") +- Technical anchors referencing FTS5 full-text index and typed observations +- Documentation moved from /context/ to /docs/context/ +- Detailed technical architecture documentation added +- 12 operation guides + 2 principle directories + +**Credits**: +- Skill design and enhancement by @basher83 + +## [5.4.5] - 2025-11-11 + +**Patch Release**: Bugfixes and minor improvements + +## [5.4.4] - 2025-11-10 + +**Breaking Changes**: None (patch version) + +**Bugfix**: +- Fixed duplicate observations and summaries appearing in viewer with different IDs and timestamps +- Root cause: `handleSessionInit` spawned an SDK agent but didn't save the promise to `session.generatorPromise`, causing `handleObservations` to spawn a second agent for the same session + +**Technical Details**: +- Modified: src/services/worker-service.ts:265 +- Change: Now assigns `session.generatorPromise = this.sdkAgent.startSession(...)` to track the promise +- Impact: Single SDK agent per session (previously two), eliminates duplicate database entries and SSE broadcasts +- Pattern: Matches existing implementation in `handleSummarize` (line 332) +- Guard: Leverages existing condition in `handleObservations` (line 301) that checks for existing promise + +**User Impact**: +- No more duplicate entries in the viewer UI +- Cleaner, more accurate memory stream visualization +- Reduced redundant processing and database writes + +Merged via PR #86 + +## [5.4.3] - 2025-11-10 + +**Breaking Changes**: None (patch version) + +**Bug Fixes**: +- Fixed PM2 race condition between watch mode and PostToolUse hook +- Eliminated `TypeError: Cannot read properties of undefined (reading 'pm2_env')` errors +- Reduced unnecessary worker restarts (39+ restarts → minimal) + +**Technical Details**: +- Removed PM2 restart logic from `ensureWorkerRunning()` in `src/shared/worker-utils.ts` +- PM2 watch mode now exclusively handles worker restarts on file changes +- Function now only checks worker health via HTTP endpoint and provides clear error messaging +- Removed unused imports and helper functions (`execSync`, `getPackageRoot`, `waitForWorkerHealth`) + +**Files Modified**: +- `src/shared/worker-utils.ts` (40 deletions, 14 additions) +- All built hooks and worker service (rebuilt from source) + +**Impact**: This fix eliminates error spam in hook output while maintaining full functionality. Users will see cleaner output and fewer unnecessary restarts. + +**Upgrade Notes**: No action required. PM2 watch mode will automatically restart the worker on plugin updates. + +## [5.4.2] - 2025-11-10 + +**Bugfix Release**: CWD spatial awareness for SDK agent + +### What's Fixed + +- **CWD Context Propagation**: SDK agent now receives current working directory (CWD) context from tool executions +- **Spatial Awareness**: Prevents false "file not found" reports when working across multiple repositories +- **Observer Guidance**: Agent prompts now include tool_cwd XML elements with spatial awareness instructions + +### Technical Details + +**Data Flow**: +1. Hook extracts CWD from PostToolUseInput (`hookInput.result.tool_cwd`) +2. Worker service receives CWD in PendingMessage and ObservationData interfaces +3. SessionManager passes CWD to SDKAgent's addObservation method +4. SDK agent includes CWD in tool observation objects sent to Claude API +5. Prompts conditionally render tool_cwd XML with spatial awareness guidance + +**Implementation**: +- Optional CWD fields throughout for backward compatibility +- Defaults to empty string when CWD is missing +- CWD treated as read-only display context, not for file operations +- Complete propagation chain from hook → worker → SDK → prompts + +**Test Coverage**: +- 8 comprehensive tests validating CWD propagation +- Tests cover hook extraction, worker forwarding, SDK inclusion, and prompt rendering +- All tests pass with tsx TypeScript loader + +**Security**: +- Zero vulnerabilities introduced +- CodeQL analysis: No alerts +- Read-only context display (no file operation changes) +- Input validation and sanitization maintained + +### Files Changed + +**Source Files**: +- `src/hooks/save-hook.ts` - Extract CWD from PostToolUseInput +- `src/services/worker-types.ts` - Add optional CWD fields to interfaces +- `src/services/worker-service.ts` - Forward CWD in message handling +- `src/services/worker/SessionManager.ts` - Pass CWD to SDK agent +- `src/services/worker/SDKAgent.ts` - Include CWD in tool observations +- `src/sdk/prompts.ts` - Render tool_cwd XML with spatial guidance + +**Built Artifacts**: +- `plugin/scripts/save-hook.js` - Compiled hook with CWD extraction +- `plugin/scripts/worker-service.cjs` - Compiled worker with CWD handling + +**Tests & Documentation**: +- `tests/cwd-propagation.test.ts` - Comprehensive test suite (8 tests) +- `context/CWD_CONTEXT_FIX.md` - Technical implementation documentation +- `PR_SUMMARY.md` - Pull request summary and rationale +- `SECURITY_SUMMARY.md` - Security analysis and review +- `CHANGELOG.md` - Version history entry + +### Installation + +```bash +# Update to latest version +/plugin update claude-mem +``` + +Or restart Claude Code to auto-update. + +### Upgrade Notes + +- **Backward Compatible**: No breaking changes +- **No Action Required**: CWD propagation works automatically +- **Existing Sessions**: Will benefit from improved spatial awareness + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v5.4.1...v5.4.2 + +## [5.4.1] - 2025-11-10 + +**Breaking Changes**: None (patch version) + +**New Features**: +- Added REST API endpoints for MCP server status and toggle control +- Implemented UI toggle in viewer sidebar for enabling/disabling MCP search server +- File-based persistence mechanism (.mcp.json ↔ .mcp.json.disabled) +- Independent state management for MCP toggle + +**Technical Details**: +- New endpoints: + - GET /api/mcp/status (returns mcpEnabled boolean) + - POST /api/mcp/toggle (toggles MCP server state) +- Modified files: + - src/services/worker-service.ts (added MCP control logic) + - src/ui/viewer/components/Sidebar.tsx (added MCP toggle UI) + - plugin/.mcp.json (MCP server configuration) +- Design rationale: Provides runtime control of the MCP search server to allow users to disable it when not needed, reducing resource usage. The file-based toggle mechanism ensures persistence across worker restarts. + +**Known Issues**: None + +**Upgrade Notes**: No breaking changes. Upgrade by running standard update process. + +## [5.4.0] - 2025-11-10 + +### ⚠️ BREAKING CHANGE: MCP Search Tools Removed + +**Migration**: None required. Claude automatically uses the search skill when needed. + +### 🔍 Major Feature: Skill-Based Search Architecture + +**Token Savings**: ~2,250 tokens per session start (90% reduction) + +**What Changed:** +- **Before**: 9 MCP tools (~2,500 tokens in tool definitions per session start) +- **After**: 1 search skill (~250 tokens in frontmatter, full instructions loaded on-demand) +- **User Experience**: Identical - just ask naturally about past work + +### ✨ Improvements + +**Progressive Disclosure Pattern:** +- Skill frontmatter (~250 tokens) loads at session start +- Full instructions (~2,500 tokens) load only when skill is invoked +- HTTP API endpoints replace MCP protocol +- No user action required - migration is transparent + +**Natural Language Queries:** +``` +"What bugs did we fix last session?" +"How did we implement authentication?" +"What changes were made to worker-service.ts?" +"Show me recent work on this project" +``` + +### 🆕 Added + +**10 New HTTP Search API Endpoints** in worker service: +- `GET /api/search/observations` - Full-text search observations +- `GET /api/search/sessions` - Full-text search session summaries +- `GET /api/search/prompts` - Full-text search user prompts +- `GET /api/search/by-concept` - Find observations by concept tag +- `GET /api/search/by-file` - Find work related to specific files +- `GET /api/search/by-type` - Find observations by type (bugfix, feature, etc.) +- `GET /api/context/recent` - Get recent session context +- `GET /api/context/timeline` - Get timeline around specific point in time +- `GET /api/timeline/by-query` - Search + timeline in one call +- `GET /api/search/help` - API documentation + +**Search Skill** (`plugin/skills/search/SKILL.md`): +- Auto-invoked when users ask about past work, decisions, or history +- Comprehensive documentation with usage examples and workflows +- Format guidelines for presenting search results +- 12 operation files with detailed instructions + +### 🗑️ Removed + +**MCP Search Server** (deprecated): +- Removed `claude-mem-search` from plugin/.mcp.json +- Build script no longer compiles search-server.mjs +- Source file kept for reference: src/servers/search-server.ts +- All 9 MCP tools replaced by equivalent HTTP API endpoints + +### 📚 Documentation + +**Comprehensive Updates:** +- `README.md`: Updated version badge, What's New, and search section +- `docs/usage/search-tools.mdx`: Complete rewrite for skill-based approach +- `docs/architecture/mcp-search.mdx` → `search-architecture.mdx`: New architecture doc +- `docs/architecture/overview.mdx`: Updated components and search pipeline +- `docs/usage/getting-started.mdx`: Added skill-based search section +- `docs/configuration.mdx`: Updated search configuration +- `docs/introduction.mdx`: Updated key features + +### 🔧 Technical Details + +**How It Works:** +1. User asks: "What did we do last session?" +2. Claude recognizes intent → invokes search skill +3. Skill loads full instructions from `SKILL.md` +4. Skill uses `curl` to call HTTP API endpoint +5. Results formatted and returned to Claude +6. Claude presents results to user + +**Benefits:** +- **Token Efficient**: Only loads what you need, when you need it +- **Natural**: No syntax to learn, just ask questions +- **Progressive**: Start with overview, drill down as needed +- **Flexible**: HTTP API can be called from skills, MCP tools, or other clients + +### 🐛 Migration Notes + +**For Users:** +- ✅ No action required - migration is transparent +- ✅ Same questions work - natural language queries identical +- ✅ Invisible change - only notice better performance + +**For Developers:** +- ⚠️ MCP search server deprecated (source kept for reference) +- ✅ New implementation: Skill files + HTTP endpoints +- ✅ Build/sync workflow unchanged + +### 📦 Installation + +```bash +/plugin marketplace add thedotmack/claude-mem +/plugin install claude-mem +``` + +Restart Claude Code to start using v5.4.0. + +### 🔗 Resources + +- **Documentation**: https://github.com/thedotmack/claude-mem/tree/main/docs +- **Issues**: https://github.com/thedotmack/claude-mem/issues +- **CHANGELOG**: https://github.com/thedotmack/claude-mem/blob/main/CHANGELOG.md + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v5.3.0...v5.4.0 + +## [5.3.0] - 2025-11-09 + +**Breaking Changes**: None (minor version) + +**Session Lifecycle Improvements**: +- **Prompt Counter Restoration**: SessionManager now loads prompt counter from database on worker restart, preventing state loss +- **Continuation Prompts**: Lightweight prompts for request #2+ avoid re-initializing SDK agent's mental model +- **Summary Framing**: Changed from "final report" to "progress checkpoint" to clarify mid-session summaries + +**Bug Fixes**: +- **#76**: Fixed PM2 "Process 0 not found" error by using idempotent `pm2 start` instead of `pm2 restart` +- **#74, #75**: Fixed troubleshooting skill distribution by moving to `plugin/skills/` directory +- **#73 (Partial)**: Improved context-loading task reporting in summaries + +**Technical Details**: +- Modified files: + - `src/services/worker/SessionManager.ts` (loads prompt_counter from DB) + - `src/services/worker/SDKAgent.ts` (uses continuation prompts) + - `src/sdk/prompts.ts` (added buildContinuationPrompt function) + - `src/shared/worker-utils.ts` (pm2 start instead of restart) + - `src/hooks/context-hook.ts` (improved context loading) + - Moved `.claude/skills/troubleshoot` → `plugin/skills/troubleshoot` + +**Why These Changes Matter**: +- Worker restarts no longer lose session state +- Subsequent prompts are more efficient (no re-initialization overhead) +- Summaries better reflect ongoing work vs completed sessions +- PM2 errors eliminated for new users +- Troubleshooting skill now properly distributed to plugin users + +**Upgrade Notes**: No breaking changes. Worker will automatically pick up improvements on restart. + +## [5.2.3] - 2025-11-09 + +**Breaking Changes**: None (patch version) + +**Improvements**: +- Added troubleshooting slash command skill for diagnosing claude-mem installation issues +- Comprehensive diagnostic workflow covering PM2, worker health, database, dependencies, logs, and viewer UI +- Automated fix sequences and common issue resolutions +- Full system diagnostic report generation + +**Technical Details**: +- New file: `.claude/skills/troubleshoot/SKILL.md` (363 lines) +- Added troubleshooting skill documentation to `README.md` and `docs/troubleshooting.mdx` +- Version bumped to 5.2.3 across all metadata files + +**Usage**: +Run `/skill troubleshoot` or invoke the `troubleshoot` skill to diagnose claude-mem issues. + +The skill provides systematic checks for: +- PM2 worker status +- Worker service health +- Database state and integrity +- Dependencies installation +- Worker logs +- Viewer UI endpoints +- Full system diagnostic report + +## [5.2.2] - 2025-11-08 + +**Breaking Changes**: None (patch version) + +**Improvements**: +- Context hook now displays 'investigated' and 'learned' fields from session summaries +- Enhanced startup context visibility with color-coded formatting (blue for investigated, yellow for learned) +- Improved session summary detail display at startup + +**Technical Details**: +- Modified files: + - src/hooks/context-hook.ts (enhanced SQL query and display logic) + - plugin/scripts/context-hook.js (built hook with new functionality) +- Updated SQL query to SELECT investigated and learned columns +- Added TypeScript type definitions for nullable investigated and learned fields +- Added conditional display blocks with appropriate color formatting + +**Impact**: Users will now see more comprehensive session summary information at startup, providing better context about what was investigated and learned in previous sessions. + +## [5.2.1] - 2025-11-08 + +**Breaking Changes**: None (patch version) + +### Bug Fixes + +This patch release fixes critical race conditions and state synchronization issues in the viewer UI's project filtering system. + +**Fixed Issues:** +- **Race condition with offset reset**: When filter changed, offset wasn't reset synchronously, causing incorrect pagination ranges (e.g., loading items 20-40 for new project with < 20 items) +- **State ref synchronization**: `stateRef.current.hasMore` retained old value when filter changed, preventing new filter from loading if previous filter had no more data +- **Data mixing between projects**: Batched state updates caused data from different projects to appear together in the UI +- **useEffect dependency cycle**: `handleLoadMore` in dependencies caused double renders when filter changed +- **NULL projects in dropdown**: Empty/NULL project values appeared in the project filter dropdown + +**Technical Improvements:** +- Combined two separate useEffect hooks into one for guaranteed execution order (reset → load) +- Removed redundant filter change detection logic (DRY principle) +- Simplified validation in `mergeAndDeduplicateByProject` function +- Added `investigated` field to Summary interface for better session tracking + +**Files Changed:** +- `src/ui/viewer/App.tsx` - Fixed filter change detection and data reset logic +- `src/ui/viewer/hooks/usePagination.ts` - Improved offset and state ref handling +- `src/ui/viewer/utils/data.ts` - Simplified validation logic +- `src/services/sqlite/SessionStore.ts` - Filter NULL/empty projects from dropdown +- `src/ui/viewer/types.ts` - Added investigated field to Summary interface +- `src/ui/viewer/components/SummaryCard.tsx` - Display investigated field + +All changes follow CLAUDE.md coding standards: DRY, YAGNI, and fail-fast error handling. + +### Testing + +Verified fixes work correctly: +1. ✅ Select project from dropdown → Data loads immediately +2. ✅ Switch between multiple projects → Only selected project's data shown (no mixing) +3. ✅ Rapid switching between projects → No race conditions or stale data +4. ✅ Switch back to "All Projects" → All data appears correctly with SSE updates + +## [5.2.0] - 2025-11-07 + +This release delivers a comprehensive architectural refactor of the worker service, extensive UI enhancements, and significant code cleanup. Merges PR #69. + +**Breaking Changes**: None (backward compatible) + +--- + +## 🏗️ Architecture Changes (Worker Service v2) + +### Modular Rewrite + +Extracted monolithic `worker-service.ts` into focused, single-responsibility modules: + +- **DatabaseManager.ts** (111 lines): Centralized database initialization and access +- **SessionManager.ts** (204 lines): Complete session lifecycle management +- **SDKAgent.ts** (309 lines): Claude SDK interactions & observation compression +- **SSEBroadcaster.ts** (86 lines): Server-Sent Events broadcast management +- **PaginationHelper.ts** (196 lines): Reusable pagination logic for all data types +- **SettingsManager.ts** (68 lines): Viewer settings persistence +- **worker-types.ts** (176 lines): Shared TypeScript types + +### Key Improvements + +- ✅ Eliminated duplicated session logic (4 instances → 1 helper) +- ✅ Replaced magic numbers with named constants (HEALTH_CHECK_TIMEOUT_MS, etc.) +- ✅ Removed fragile PM2 string parsing → Direct PM2 restart +- ✅ Fail-fast error handling instead of silent failures +- ✅ Fixed SDK agent bug: Changed from `obs.title` to `obs.narrative` + +--- + +## 🎨 UI/UX Improvements + +### New Features + +**ScrollToTop Component** (`src/ui/viewer/components/ScrollToTop.tsx`) +- GPU-accelerated smooth scrolling +- Appears after scrolling 400px +- Accessible with ARIA labels + +### Enhancements + +**ObservationCard Refactoring** +- Fixed facts toggle logic +- Improved metadata display (timestamps, tokens, model) +- Enhanced narrative display with proper typography +- Better empty states + +**Pagination Improvements** +- Better loading state management +- Improved error recovery on failed fetches +- Automatic deduplication +- Scroll preservation + +**Card Consistency** +- Unified layout patterns across Observation/Prompt/Summary cards +- Consistent spacing and alignment + +--- + +## 📚 Documentation + +**New Files** (7,542 lines total): + +- `context/agent-sdk-ref.md` (1,797 lines): Complete Agent SDK reference +- `docs/worker-service-architecture.md` (1,174 lines): v2 architecture documentation +- `docs/worker-service-rewrite-outline.md` (1,069 lines): Refactor planning document +- `docs/worker-service-overhead.md` (959 lines): Performance analysis +- `docs/processing-indicator-audit.md` + `processing-indicator-code-reference.md` (980 lines): Processing status documentation +- `docs/typescript-errors.md` (180 lines): TypeScript error reference +- `PLAN-full-observation-display.md` (468 lines): Future UI enhancement roadmap +- `src-analysis.md` + `src-tree.md` (418 lines): Source code organization + +--- + +## 🧹 Code Cleanup + +### Deleted Dead Code (~2,000 lines) + +**Shared Modules**: +- `src/shared/config.ts` (48 lines) +- `src/shared/storage.ts` (188 lines) +- `src/shared/types.ts` (29 lines) + +**Utils**: +- `src/utils/platform.ts` (64 lines) +- `src/utils/usage-logger.ts` (61 lines) + +**Index Files**: +- `src/hooks/index.ts` +- `src/sdk/index.ts` + +**Documentation**: +- `docs/VIEWER.md` (405 lines) +- `docs/worker-server-architecture.md` (1,129 lines) + +--- + +## 🐛 Bug Fixes + +1. **SDK Agent Narrative Assignment** (commit e22edad) + - Fixed: Changed from `obs.title` to `obs.narrative` + - Impact: Observations now correctly preserve narrative content + +2. **PostToolUse Hook Field Name** (commit 13643a5) + - Fixed: Corrected field reference in hook output + - Impact: Tool usage properly captured + +3. **Smart Install Flow** (commit 6204fe9) + - Removed: Unnecessary `startWorker()` function + - Simplified: Installation flow now relies on context-hook to start worker + - Rationale: PM2 start is idempotent, no pre-flight checks needed + +4. **Context Hook Worker Management** (commit 6204fe9) + - Removed: Redundant worker status checks + - Simplified: Direct health check + restart if unhealthy + - Performance: Faster session startup + +--- + +## 📊 Statistics + +**Files Changed**: 70 total +- 11 new files +- 7 deleted files +- 52 modified files + +**Net Impact**: +7,470 lines +- 11,105 additions +- 3,635 deletions + +--- + +## ✅ Testing + +All systems verified: +- ✓ Worker service starts successfully +- ✓ All hooks function correctly (context, save, cleanup, summary) +- ✓ Viewer UI renders properly with all improvements +- ✓ Build pipeline compiles without errors +- ✓ SSE broadcasts work for real-time updates +- ✓ Pagination loads correctly + +--- + +## 🔄 Migration Guide + +**No action required** - this release is fully backward compatible. + +All changes are internal refactoring. Public APIs remain unchanged: +- Hook interfaces unchanged +- MCP search tools unchanged +- Database schema unchanged +- Environment variables unchanged + +To activate: +1. Pull latest: `git pull` +2. Rebuild: `npm run build` +3. Sync to marketplace: `npm run sync-marketplace` +4. Restart worker: `npm run worker:restart` +5. Start new Claude Code session + +--- + +## 📖 Related + +- **PR**: #69 +- **Previous Version**: 5.1.4 +- **Semantic Version**: MINOR (backward compatible features & improvements) + +## [5.1.4] - 2025-11-07 + +**Bugfix Release**: PostToolUse Hook Schema Compliance + +**Changes**: +- Fixed parameter naming in save-hook to match Claude Code PostToolUse API schema +- Renamed `tool_output` to `tool_response` throughout the codebase +- Updated worker-service to handle `tool_response` field correctly + +**Technical Details**: +- Modified files: + - `src/hooks/save-hook.ts`: Updated interface and parameter destructuring + - `src/services/worker-service.ts`: Updated observation message handling + - `plugin/scripts/save-hook.js`: Rebuilt with corrected names + - `plugin/scripts/worker-service.cjs`: Rebuilt with corrected names + +**Why This Matters**: The Claude Code PostToolUse hook API provides `tool_response` not `tool_output`. This fix ensures proper schema compliance and prevents potential errors when capturing tool executions. + +## [5.1.2] - 2025-11-06 + +**Breaking Changes**: None (patch version) + +**Features**: +- Theme toggle functionality with light, dark, and system preferences +- User-selectable theme with persistent settings across sessions +- Automatic system preference detection and matching + +**Technical Details**: +- Enhanced viewer UI with theme toggle controls +- Theme preference stored in localStorage +- Seamless integration with existing viewer interface +- Version bumped from 5.1.1 → 5.1.2 + +**Usage**: +Access the viewer at http://localhost:37777 and use the theme toggle to switch between light mode, dark mode, or system preference. + +## [5.1.1] - 2025-11-06 + +**Breaking Changes**: None (patch version) + +**Bugfix**: +- Fixed PM2 ENOENT error on Windows by using full path to PM2 binary +- Improved cross-platform compatibility for PM2 process management + +**Technical Details**: +- Modified files: + - scripts/smart-install.js (improved PM2 binary path resolution) + - package-lock.json (dependency updates) +- The fix ensures PM2 commands work correctly on Windows systems by using the full path to the PM2 binary instead of relying on PATH resolution +- This resolves the "ENOENT: no such file or directory" error that Windows users encountered when the plugin tried to start the worker service + +**Installation**: +Users on Windows will now have a smoother installation experience with automatic PM2 worker startup working correctly. + +## [5.1.0] - 2025-11-06 + +### 🎉 Major Feature: Web-Based Viewer UI + +This release introduces a production-ready web interface for visualizing your memory stream in real-time! + +**Access the viewer**: http://localhost:37777 (auto-starts with the worker) + +### ✨ Key Features + +**Real-Time Visualization** +- Server-Sent Events (SSE) for instant updates as observations are captured +- See user prompts, observations, and session summaries as they happen +- No polling - efficient push-based updates + +**Infinite Scroll & Pagination** +- Load more content seamlessly as you scroll +- Automatic deduplication prevents duplicates +- Smooth loading states with skeleton components + +**Project Filtering** +- Filter memory stream by project/codebase +- Quick project switcher in sidebar +- View stats for all projects or focus on one + +**Persistent Settings** +- Sidebar state (open/closed) saved to localStorage +- Selected project filter persists across sessions +- Smooth GPU-accelerated animations + +**Auto-Reconnection** +- Exponential backoff retry logic +- Graceful handling of worker restarts +- Connection status indicator + +### 🔧 Technical Improvements + +**New Worker Endpoints** (+500 lines) +- `/api/prompts` - Paginated user prompts with project filtering +- `/api/observations` - Paginated observations with project filtering +- `/api/summaries` - Paginated session summaries with project filtering +- `/api/stats` - Database statistics (total counts by project) +- `/api/projects` - List of unique project names +- `/stream` - Server-Sent Events for real-time updates +- `/` - Serves viewer HTML +- `/health` - Health check endpoint + +**Database Enhancements** (+98 lines in SessionStore) +- `getRecentPrompts()` - Paginated prompts with OFFSET/LIMIT +- `getRecentObservations()` - Paginated observations with OFFSET/LIMIT +- `getRecentSummaries()` - Paginated summaries with OFFSET/LIMIT +- `getStats()` - Aggregated statistics by project +- `getUniqueProjects()` - Distinct project names + +**Complete React UI** (17 new files, 1,500+ lines) +- Components: Header, Sidebar, Feed, Cards (Observation, Prompt, Summary, Skeleton) +- Hooks: useSSE, usePagination, useSettings, useStats +- Utils: Data merging, formatters, constants +- Assets: Monaspace Radon font, logos (dark mode + logomark) +- Build: esbuild pipeline for self-contained HTML bundle + +### 📚 Documentation + +Updated CLAUDE.md with: +- Viewer UI architecture and components +- Build process for viewer changes +- Configuration and usage instructions +- Design rationale for SSE and self-contained bundle approach + +### 🎨 Design Highlights + +- **Monaspace Radon** variable font for beautiful monospace rendering +- **Claude branding** with official logos and dark mode support +- **Responsive layout** with collapsible sidebar +- **Smooth animations** using GPU acceleration (transform/opacity) +- **Error boundaries** for graceful failure handling + +### 🚀 Getting Started + +1. Update claude-mem to v5.1.0 +2. Start a Claude Code session (worker auto-starts) +3. Open http://localhost:37777 in your browser +4. Watch your memory stream in real-time! + +### 📦 Files Changed + +**New Files:** +- `src/ui/viewer/` - Complete React application (17 files) +- `src/ui/viewer-template.html` - HTML template for bundle +- `scripts/build-viewer.js` - esbuild configuration +- `plugin/ui/viewer.html` - Built self-contained bundle +- `plugin/ui/viewer-bundle.js` - Compiled React code +- `plugin/ui/assets/fonts/` - Monaspace Radon font files +- `src/ui/*.webp` - Claude logos and branding + +**Modified Files:** +- `src/services/worker-service.ts` - Added 8 new HTTP/SSE endpoints +- `src/services/sqlite/SessionStore.ts` - Added pagination methods +- `scripts/build-hooks.js` - Integrated viewer build process +- `CLAUDE.md` - Comprehensive documentation update + +### 🙏 Acknowledgments + +Built with: +- React 19 + TypeScript +- esbuild for ultra-fast bundling +- Monaspace Radon font by GitHub Next +- Server-Sent Events for real-time updates + +--- + +**Breaking Changes**: None (backward compatible MINOR version) + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v5.0.3...v5.1.0 + +## [5.0.3] - 2025-11-05 + +**Breaking Changes**: None (patch version) + +**Fixes**: +- Fixed Windows installation with smart caching installer (PR #54: scripts/smart-install.js) +- Eliminated redundant npm install executions on every SessionStart (improved from 2-5s to ~10ms) +- Added comprehensive Windows troubleshooting with VS Build Tools guidance +- Fixed dynamic Python version detection in Windows error messages (scripts/smart-install.js:106-115) + +**Improvements**: +- Smart install now caches version state in `.install-version` file +- Only runs npm install when needed: first time, version change, or missing dependencies +- Enhanced rsync to respect gitignore rules in sync-marketplace (package.json:38) +- Better PM2 worker startup verification and management +- Cross-platform compatible installer (pure Node.js, no shell dependencies) + +**Technical Details**: +- New: scripts/smart-install.js (smart caching installer with PM2 worker management) +- Modified: plugin/hooks/hooks.json:25 (use smart-install.js instead of raw npm install) +- Modified: .gitignore (added .install-version cache file) +- Modified: CLAUDE.md (added Windows requirements and troubleshooting section) +- Modified: package.json:38 (enhanced sync-marketplace with --filter=':- .gitignore' --exclude=.git) +- Root cause: npm install was running on every SessionStart regardless of whether dependencies changed +- Impact: 200x faster SessionStart for cached installations (10ms vs 2-5s) + +**For Windows Users**: +This release should completely resolve installation issues. The smart installer will: +1. Show you clear error messages if better-sqlite3 fails to install +2. Guide you to install VS Build Tools if needed (though you probably won't need them) +3. Only run once on first launch, then be instant on subsequent launches + +## [5.0.2] - 2025-11-05 + +**Breaking Changes**: None (patch version) + +**Fixes**: +- Fixed worker startup reliability with async health checks (PR #51: src/shared/worker-utils.ts) +- Added proper error handling to PM2 process spawning (src/shared/worker-utils.ts) +- Worker now verifies health before proceeding with hook operations +- Improved handling of PM2 failures when not yet installed + +**Technical Details**: +- Modified: src/shared/worker-utils.ts (added isWorkerHealthy, waitForWorkerHealth functions) +- Modified: src/hooks/*.ts (all hooks now await ensureWorkerRunning) +- Modified: plugin/scripts/*.js (rebuilt hook executables) +- Root cause: ensureWorkerRunning was synchronous and didn't verify worker was actually responsive before proceeding +- Impact: More reliable worker startup with proper health verification + +## Installation + +Install via Claude Code marketplace: +```bash +/plugin marketplace add https://raw.githubusercontent.com/thedotmack/claude-mem/main/.claude-plugin/marketplace.json +/plugin install claude-mem +``` + +## Full Changelog +[View all changes](https://github.com/thedotmack/claude-mem/compare/v5.0.1...v5.0.2) + +## [5.0.1] - 2025-11-04 + +**Breaking Changes**: None (patch version) + +**Fixes**: +- Fixed worker service stability issues (PR #47: src/services/worker-service.ts, src/shared/worker-utils.ts) +- Improved worker process management and restart reliability (src/hooks/*-hook.ts) +- Enhanced session management and logging across all hooks +- Removed error/output file redirection from PM2 ecosystem config for better debugging (ecosystem.config.cjs) + +**Improvements**: +- Added GitHub Actions workflows for automated code review (PR #48) + - Claude Code Review workflow (.github/workflows/claude-code-review.yml) + - Claude PR Assistant workflow (.github/workflows/claude.yml) +- Better worker health checks and startup sequence +- Improved error handling and logging throughout hook lifecycle +- Cleaned up documentation files and consolidated project context + +**Technical Details**: +- Modified: src/services/worker-service.ts (stability improvements) +- Modified: src/shared/worker-utils.ts (consistent formatting and readability) +- Modified: ecosystem.config.cjs (removed error/output redirection) +- Modified: src/hooks/*-hook.ts (ensure worker running before processing) +- New: .github/workflows/claude-code-review.yml +- New: .github/workflows/claude.yml +- Rebuilt: plugin/scripts/*.js (all hook executables) +- Impact: More reliable worker service with better error visibility and automated PR assistance + +--- + +**Installation**: See [README](https://github.com/thedotmack/claude-mem#readme) for installation instructions. + +## [5.0.0] - 2025-11-04 + +### BREAKING CHANGES +- **Python dependency for optimal performance**: While the plugin works without Python, installing Python 3.8+ and the Chroma MCP server unlocks semantic search capabilities. Without Python, the system falls back to SQLite FTS5 keyword search. +- **Search behavior changes**: Search queries now prioritize semantic relevance when Chroma is available, then apply temporal ordering. Keyword-only queries may return different results than v4.x. +- **Worker service changes**: Worker now initializes ChromaSync on startup. If Chroma MCP is unavailable, worker continues with FTS5-only mode but logs a warning. + +### Added +- **Hybrid Search Architecture**: Combines ChromaDB semantic search with SQLite temporal/metadata filtering + - Chroma vector database for semantic similarity (top 100 matches) + - 90-day temporal recency window for relevant results + - SQLite hydration in chronological order + - Graceful fallback to FTS5 when Chroma unavailable +- **ChromaSync Service**: Automatic vector database synchronization + - Syncs observations, session summaries, and user prompts to Chroma + - Splits large text fields into multiple vectors for better granularity + - Maintains metadata for filtering (project, type, concepts, files) + - Background sync process via worker service +- **get_timeline_by_query Tool**: Natural language timeline search with dual modes + - Auto mode: Automatically uses top search result as timeline anchor + - Interactive mode: Shows top N results for manual anchor selection + - Combines semantic search discovery with timeline context retrieval +- **User Prompt Semantic Search**: Raw user prompts now indexed in Chroma for semantic discovery +- **Enhanced MCP Tools**: All 8 existing search tools now support hybrid search + - search_observations - Now uses semantic + temporal hybrid algorithm + - search_sessions - Semantic search across session summaries + - search_user_prompts - Semantic search across raw prompts + - find_by_concept, find_by_file, find_by_type - Enhanced with semantic capabilities + - get_recent_context - Unchanged (temporal only) + - get_context_timeline - Unchanged (anchor-based temporal) + +### Changed +- **Search Server**: Expanded from ~500 to ~1,500 lines with hybrid search implementation +- **Worker Service**: Now initializes ChromaSync and handles Chroma MCP lifecycle +- **Search Pipeline**: Now follows semantic-first strategy with temporal ordering + ``` + Query → Chroma Semantic Search (top 100) → 90-day Filter → SQLite Hydration (temporal order) → Results + ``` +- **Worker Resilience**: Worker no longer crashes when Chroma MCP unavailable; gracefully falls back to FTS5 + +### Fixed +- **Critical temporal filtering bug**: Fixed deduplication and date range filtering in search results +- **User prompt formatting bug**: Corrected field reference in search result formatting +- **Worker crash prevention**: Worker now handles missing Chroma MCP gracefully instead of crashing + +### Technical Details +- New files: + - src/services/sync/ChromaSync.ts (738 lines) - Vector database sync service + - experiment/chroma-search-test.ts - Comprehensive hybrid search testing + - experiment/chroma-sync-experiment.ts - Vector sync validation + - docs/chroma-search-completion-plan.md - Implementation planning + - FEATURE_PLAN_HYBRID_SEARCH.md - Feature specification + - IMPLEMENTATION_STATUS.md - Testing and validation results +- Modified files: + - src/servers/search-server.ts (+995 lines) - Hybrid search algorithm implementation + - src/services/worker-service.ts (+136 lines) - ChromaSync integration + - src/services/sqlite/SessionStore.ts (+276 lines) - Enhanced timeline queries + - src/hooks/context-hook.ts - Type legend improvements +- Validation: 1,390 observations synced to 8,279 vector documents +- Performance: Semantic search with 90-day window returns results in <200ms + +## [4.3.4] - 2025-11-02 + +**Breaking Changes**: None (patch version) + +**Fixes**: +- Fixed SessionStart hooks running on session resume (plugin/hooks/hooks.json:4) +- Added matcher configuration to only run SessionStart hooks on startup, clear, or compact events +- Prevents unnecessary hook execution and improves performance on session resume + +**Technical Details**: +- Modified: plugin/hooks/hooks.json:4 (added `"matcher": "startup|clear|compact"`) +- Impact: Hooks now skip execution when resuming existing sessions + +## [4.3.3] - 2025-10-27 + +**Breaking Changes**: None (patch version) + +**Improvements**: +- Made session display count configurable via constant (DISPLAY_SESSION_COUNT = 8) in src/hooks/context-hook.ts:11 +- Added first-time setup detection with helpful user messaging in src/hooks/user-message-hook.ts:12-39 +- Improved user experience: First install message clarifies why it appears under "Plugin Hook Error" + +**Fixes**: +- Cleaned up profanity in code comments (src/hooks/context-hook.ts:3) +- Fixed first-time setup UX by detecting missing node_modules and showing informative message + +**Technical Details**: +- Modified: src/hooks/context-hook.ts:11 (configurable DISPLAY_SESSION_COUNT constant) +- Modified: src/hooks/user-message-hook.ts:12-39 (first-time setup detection and messaging) +- Modified: plugin/scripts/context-hook.js (rebuilt) +- Modified: plugin/scripts/user-message-hook.js (rebuilt) + +## [4.3.2] - 2025-10-27 + +**Breaking Changes**: None (patch version) + +**Improvements**: +- Added user-message-hook for displaying context to users via stderr mechanism +- Enhanced context visibility: Hook fires simultaneously with context injection, sending duplicate message as "error" so Claude Code displays it to users +- Added comprehensive documentation (4 new MDX files covering architecture evolution, context engineering, hooks architecture, and progressive disclosure) +- Improved cross-platform path handling in context-hook + +**Technical Details**: +- New files: + - src/hooks/user-message-hook.ts (stderr-based user-facing context display) + - plugin/scripts/user-message-hook.js (built hook executable) + - docs/architecture-evolution.mdx (801 lines) + - docs/context-engineering.mdx (222 lines) + - docs/hooks-architecture.mdx (784 lines) + - docs/progressive-disclosure.mdx (655 lines) +- Modified: + - plugin/hooks/hooks.json (added user-message-hook configuration) + - src/hooks/context-hook.ts (improved path handling) + - scripts/build-hooks.js (build support for new hook) +- Design rationale: Error messages don't get added to context, so we intentionally duplicate context output via stderr for user visibility. This is a temporary workaround until Claude Code potentially adds ability to share messages with both user and context simultaneously. + +## [4.3.1] - 2025-10-26 + +## Fixes + +- **Fixed SessionStart hook context injection** by silencing npm install output (`plugin/hooks/hooks.json:25`) +- Changed npm loglevel from `--loglevel=error` to `--loglevel=silent` to ensure clean JSON output +- **Consolidated hooks architecture** by removing bin/hooks wrapper layer (`src/hooks/*-hook.ts`) +- Fixed double shebang issues in hook executables (esbuild now adds shebang during build) + +## Technical Details + +- **Modified**: `plugin/hooks/hooks.json` (npm install verbosity) +- **Removed**: `src/bin/hooks/*` (wrapper layer no longer needed) +- **Consolidated**: Hook logic moved directly into `src/hooks/*-hook.ts` files +- **Root cause**: npm install stderr/stdout was polluting hook JSON output, preventing context injection + +## Breaking Changes + +None (patch version) + +--- + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v4.3.0...v4.3.1 + +## [4.3.0] - 2025-10-25 + +## What's Changed +* feat: Enhanced context hook with session observations and cross-platform improvements by @thedotmack in https://github.com/thedotmack/claude-mem/pull/25 + +## New Contributors +* @thedotmack made their first contribution in https://github.com/thedotmack/claude-mem/pull/25 + +**Full Changelog**: https://github.com/thedotmack/claude-mem/compare/v4.2.11...v4.3.0 + +## [4.2.10] - 2025-10-25 + +## Fixed +- **Windows compatibility**: Removed hardcoded macOS-specific Claude executable path that prevented worker service from running on Windows + +## Changes +- Removed hardcoded path: `/Users/alexnewman/.nvm/versions/node/v24.5.0/bin/claude` +- Removed `pathToClaudeCodeExecutable` parameter from SDK query() calls +- SDK now automatically detects Claude Code executable path on all platforms +- Improved cross-platform compatibility (Windows, macOS, Linux) + +## Technical Details +- Updated `src/sdk/worker.ts` to remove hardcoded Claude path and `pathToClaudeCodeExecutable` parameter +- Updated `src/services/worker-service.ts` to remove hardcoded Claude path and parameter +- Built `plugin/scripts/worker-service.cjs` reflects changes +- Affects all SDK agent initialization in worker service + +## Impact +- **Before**: Worker service failed on Windows due to hardcoded macOS path +- **After**: Worker service works correctly on all platforms + +## Files Changed +- `src/sdk/worker.ts` +- `src/services/worker-service.ts` +- `plugin/scripts/worker-service.cjs` (rebuilt) + +## [4.2.3] - 2025-10-24 + +## [4.2.1] - 2025-10-23 + +## [3.9.16] - 2025-10-07 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.9.16 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.9.14] - 2025-10-04 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.9.14 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.9.13] - 2025-10-04 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.9.13 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.9.12] - 2025-10-04 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.9.12 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.9.11] - 2025-10-04 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.9.11 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.9.10] - 2025-10-03 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.9.10 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.9.9] - 2025-10-03 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.9.9 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.7.2] - 2025-09-22 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.7.2 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.7.1] - 2025-09-18 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.7.1 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.7.0] - 2025-09-18 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.7.0 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.10] - 2025-09-17 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.10 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.9] - 2025-09-15 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.9 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.8] - 2025-09-14 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.8 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.6] - 2025-09-14 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.6 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.5] - 2025-09-14 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.5 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.4] - 2025-09-14 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.4 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.3] - 2025-09-11 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.3 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.2] - 2025-09-11 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.2 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.1] - 2025-09-10 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.1 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.6.0] - 2025-09-10 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.6.0 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.5.9] - 2025-09-10 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.5.9 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.5.8] - 2025-09-10 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.5.8 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.5.7] - 2025-09-10 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.5.7 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.5.6] - 2025-09-09 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.5.6 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.5.5] - 2025-09-09 + +## What's New + +This release includes the latest updates from the npm package. + +### Installation +```bash +npm install -g claude-mem@3.5.5 +``` + +### Quick Start +```bash +claude-mem install +``` + +For full documentation, visit the [README](https://github.com/thedotmack/claude-mem#readme). + +## [3.5.4] - 2025-09-09 + +## 🎉 claude-mem v3.5.4 + +### Installation +```bash +npm install -g claude-mem +claude-mem install +``` + +### What's New +- Enhanced memory compression and loading +- Improved hook system reliability +- Better error handling and logging +- Updated dependencies +- Bug fixes and performance improvements + +### Key Features +- 🧠 **Intelligent Memory Compression** - Automatically extracts key learnings from Claude Code conversations +- 🔄 **Seamless Integration** - Works invisibly in the background with /compact and /clear commands +- 🎯 **Smart Context Loading** - Loads relevant memories when starting new sessions +- 📚 **Comprehensive Knowledge Base** - Stores solutions, patterns, and decisions +- 🔍 **Powerful Search** - Vector-based semantic search across all memories + +### Files Included +- `dist/claude-mem.min.js` - Minified CLI executable +- `hooks/` - Claude Code integration hooks +- `commands/` - Claude Code custom commands +- `package.json` - Package configuration + +### Requirements +- Node.js 18+ +- Claude Code CLI +- uv (automatically installed if missing) + +For documentation and support, visit the [GitHub repository](https://github.com/thedotmack/claude-mem). diff --git a/README.md b/README.md index 8635463c..5098df40 100644 --- a/README.md +++ b/README.md @@ -127,17 +127,29 @@ ## Quick Start -Start a new Claude Code session in the terminal and enter the following commands: +Install with a single command: +```bash +npx claude-mem install ``` + +Or install for Gemini CLI (auto-detects `~/.gemini`): + +```bash +npx claude-mem install --ide gemini-cli +``` + +Or install from the plugin marketplace inside Claude Code: + +```bash /plugin marketplace add thedotmack/claude-mem /plugin install claude-mem ``` -Restart Claude Code. Context from previous sessions will automatically appear in new sessions. +Restart Claude Code or Gemini CLI. Context from previous sessions will automatically appear in new sessions. -> **Note:** Claude-Mem is also published on npm, but `npm install -g claude-mem` installs the **SDK/library only** — it does not register the plugin hooks or set up the worker service. To use Claude-Mem as a plugin, always install via the `/plugin` commands above. +> **Note:** Claude-Mem is also published on npm, but `npm install -g claude-mem` installs the **SDK/library only** — it does not register the plugin hooks or set up the worker service. Always install via `npx claude-mem install` or the `/plugin` commands above. ### 🦞 OpenClaw Gateway @@ -171,6 +183,7 @@ The installer handles dependencies, plugin setup, AI provider configuration, wor ### Getting Started - **[Installation Guide](https://docs.claude-mem.ai/installation)** - Quick start & advanced installation +- **[Gemini CLI Setup](https://docs.claude-mem.ai/gemini-cli/setup)** - Dedicated guide for Google's Gemini CLI integration - **[Usage Guide](https://docs.claude-mem.ai/usage/getting-started)** - How Claude-Mem works automatically - **[Search Tools](https://docs.claude-mem.ai/usage/search-tools)** - Query your project history with natural language - **[Beta Features](https://docs.claude-mem.ai/beta-features)** - Try experimental features like Endless Mode diff --git a/WARP.md b/WARP.md new file mode 100644 index 00000000..66d02575 --- /dev/null +++ b/WARP.md @@ -0,0 +1,7 @@ + +# claude-mem: Cross-Session Memory + +*No context yet. Complete your first session and context will appear here.* + +Use claude-mem's MCP search tools for manual memory queries. + diff --git a/docs/architecture-overview.md b/docs/architecture-overview.md new file mode 100644 index 00000000..2882780a --- /dev/null +++ b/docs/architecture-overview.md @@ -0,0 +1,140 @@ +# claude-mem Architecture Overview + +## System Layers + +```text ++-----------------------------------------------------------+ +| Claude Code (host) | +| +-- Hook System (5 events) | +| +-- MCP Client (search tools) | ++-----------------------------------------------------------+ +| CLI Layer (Bun) | +| +-- bun-runner.js (Node->Bun bridge) | +| +-- hook-command.ts (orchestrator) | +| +-- handlers/ (context, session-init, observation, | +| summarize, session-complete) | ++-----------------------------------------------------------+ +| Worker Daemon (Express, port 37777) | +| +-- SessionManager (session lifecycle) | +| +-- SDKAgent (Claude Agent SDK) | +| +-- SearchManager (search orchestration) | +| +-- ProcessRegistry (subprocess management) | +| +-- ChromaSync (embedding synchronization) | ++-----------------------------------------------------------+ +| Storage Layer | +| +-- SQLite (claude-mem.db) -- structured data | +| +-- ChromaDB (chroma.sqlite3) -- vector embeddings | +| +-- MCP Server (interface for Claude Code) | ++-----------------------------------------------------------+ +``` + +## Hook Lifecycle + +| Event | Handler | What it does | Timeout | +|-------|---------|-------------|---------| +| Setup | setup.sh | Install system dependencies | 300s | +| SessionStart | smart-install.js + context | Install deps + start worker + inject context | 60s | +| UserPromptSubmit | session-init | Register session + start SDK agent + semantic injection | 60s | +| PostToolUse | observation | Capture tool usage -> enqueue in worker | 120s | +| Summary | summarize | Request session summary from SDK agent | 120s | +| SessionEnd | session-complete | End session + drain pending messages | 30s | + +## Data Flow + +```text +User prompt -> session-init -> /api/sessions/init + /api/context/semantic + | +Tool use -> observation -> /api/sessions/observations + | | + | PendingMessageStore.enqueue() + | | + | SDKAgent.startSession() + | | + | Claude Agent SDK -> ResponseProcessor + | | + | +-- storeObservations() -> SQLite + | +-- chromaSync.sync() -> ChromaDB + | +-- broadcastObservation() -> SSE/UI + | +Stop -> summarize -> /api/sessions/summarize + -> session-complete -> /api/sessions/complete + drain +``` + +## Key Patterns + +### CLAIM-CONFIRM (PendingMessageStore) + +```text +enqueue() -> INSERT status='pending' +claimNextMessage() -> UPDATE status='processing' (atomic) +confirmProcessed() -> DELETE (success) +markFailed() -> UPDATE status='failed' (retry < 3) + +Self-healing: messages in 'processing' for >60s reset to 'pending' +``` + +### Circuit-Breaker (SessionRoutes) + +```text +Generator crash -> retry 1 (1s) -> retry 2 (2s) -> retry 3 (4s) + -> consecutiveRestarts > 3 -> CIRCUIT-BREAKER + -> markAllSessionMessagesAbandoned(sessionDbId) + -> Stop. No infinite loop. +``` + +Counter resets to 0 when generator completes work naturally. + +### Graceful Degradation (hook-command.ts) + +```text +Transport errors (ECONNREFUSED, timeout, 5xx) -> exit 0 (never block Claude Code) +Client bugs (4xx, TypeError, ReferenceError) -> exit 2 (blocking, needs fix) +``` + +The worker being unavailable NEVER blocks the user's Claude Code session. + +### Deduplication (observations) + +```text +SHA256(memory_session_id + title + narrative)[:16] -> content_hash (16 hex chars) +If hash exists within 30s window -> return existing ID (no insert) +``` + +### Two Types of Session ID + +- `contentSessionId` — from Claude Code, invariant during the session +- `memorySessionId` — from SDK Agent, changes on each worker restart + +The conversion between them is handled by SessionStore and is critical for FK constraints. + +## Storage + +### SQLite (claude-mem.db) + +| Table | Key fields | Purpose | +|-------|-----------|---------| +| sdk_sessions | content_session_id, memory_session_id, status | Session lifecycle | +| observations | memory_session_id, type, title, narrative, content_hash | Tool usage observations | +| session_summaries | memory_session_id, request, learned, completed | Session summaries | +| user_prompts | content_session_id, prompt_text | User prompt history | +| pending_messages | session_db_id, status, message_type | CLAIM-CONFIRM queue | +| observation_feedback | observation_id, signal_type | Usage tracking | + +### ChromaDB (chroma.sqlite3) + +Vector embeddings for semantic search. Each observation generates multiple documents: + +```text +obs_{id}_narrative -> main text +obs_{id}_fact_0 -> first fact +obs_{id}_fact_1 -> second fact +... +``` + +Accessed via chroma-mcp (MCP process), communication over stdio. + +## Process Management + +- **ProcessRegistry:** Tracks all Claude SDK subprocesses, manages PID lifecycle +- **Orphan Reaper (5min):** Kills processes with no active session +- **GracefulShutdown:** 7-step shutdown (PID file, children, HTTP server, sessions, MCP, DB, force-kill) diff --git a/docs/production-guide.md b/docs/production-guide.md new file mode 100644 index 00000000..2c049b38 --- /dev/null +++ b/docs/production-guide.md @@ -0,0 +1,111 @@ +# claude-mem Production Guide + +Practical guide based on 23 days of production usage with 3,400+ observations across two physical servers and 8 projects. + +## Recommended Settings + +| Setting | Default | Recommended | Why | +|---------|---------|-------------|-----| +| CLAUDE_MEM_MAX_CONCURRENT_AGENTS | 2 | 3 | Better throughput without overload | +| CLAUDE_MEM_SEMANTIC_INJECT | true | true | Relevant context >> recent context | +| CLAUDE_MEM_SEMANTIC_INJECT_LIMIT | 5 | 5 | Sweet spot for token cost vs coverage | +| CLAUDE_MEM_TIER_ROUTING_ENABLED | true | true | ~52% cost savings, no quality loss | + +## Health Monitoring + +### Key metrics to watch + +| Metric | Healthy | Warning | Action | +|--------|---------|---------|--------| +| pending_messages (pending) | 0-5 | >10 | Check worker logs, may need restart | +| pending_messages (failed) | 0 | >0 growing | Circuit-breaker may be tripping | +| sdk_sessions (active) | 0-3 | >5 stuck | Orphan sessions, worker restart | +| WAL size | <10 MB | >20 MB | Run `PRAGMA wal_checkpoint(TRUNCATE)` | +| Chroma size | Growing slowly | Sudden jump | Check for sync loops | +| Errors/day in logs | 0-2 | >10 | Investigate log patterns | + +### Quick health check + +```bash +# Check worker status +curl -s http://127.0.0.1:37777/api/health | python3 -m json.tool + +# Check database stats +sqlite3 ~/.claude-mem/claude-mem.db " + SELECT 'observations' as metric, COUNT(*) as value FROM observations + UNION ALL SELECT 'summaries', COUNT(*) FROM session_summaries + UNION ALL SELECT 'pending', COUNT(*) FROM pending_messages WHERE status='pending' + UNION ALL SELECT 'active_sessions', COUNT(*) FROM sdk_sessions WHERE status='active'; +" +``` + +## Multi-Machine Setup + +If running claude-mem on multiple machines, use `claude-mem-sync` to keep observations in sync: + +```bash +claude-mem-sync push # local -> remote +claude-mem-sync pull # remote -> local +claude-mem-sync sync # bidirectional +claude-mem-sync status # compare counts +``` + +Deduplication is by `(created_at, title)` — safe to run repeatedly. + +## Growth Expectations + +Based on active daily development usage: + +| Metric | Per day | Per month | Notes | +|--------|---------|-----------|-------| +| Observations | ~120 | ~3,600 | Varies with coding activity | +| Summaries | ~40 | ~1,200 | One per session | +| SQLite | ~0.8 MB | ~24 MB | ~5 KB per observation | +| Chroma | ~4 MB | ~120 MB | ~50 KB per observation (embeddings) | + +## Common Issues and Solutions + +### Summarize error loop + +**Symptom:** Repeated `[ERROR] Missing last_assistant_message` in logs. +**Cause:** Transcript with no assistant messages triggers summary attempt that fails repeatedly. +**Fix:** PR #1566 — skip summary when transcript is empty. + +### Chroma sync failures + +**Symptom:** `[ERROR] Batch add failed... IDs already exist` +**Cause:** MCP timeout during add leaves partial writes; retry fails on existing IDs. +**Fix:** PR #1566 — fallback to delete+add reconciliation. + +### Port conflict on startup + +**Symptom:** `Worker failed to start... Is port 37777 in use?` +**Cause:** Two sessions starting simultaneously — HTTP check is non-atomic (TOCTOU race). +**Fix:** PR #1566 — atomic socket bind on Unix. + +### Orphaned pending messages + +**Symptom:** `pending_messages` table growing with old entries for completed sessions. +**Cause:** SIGTERM kills generator before queue is drained. +**Fix:** PR #1567 — drain after deleteSession(). + +### Context not relevant to current topic + +**Symptom:** Claude receives observations about CSS when you're asking about authentication. +**Cause:** Default recency-based injection selects most recent, not most relevant. +**Fix:** PR #1568 — semantic injection via Chroma on every prompt. + +## Log Analysis Tips + +```bash +# Count errors by day +grep '\[ERROR\]' ~/.claude-mem/logs/claude-mem-*.log | \ + sed 's/\[20[0-9][0-9]-[0-9][0-9]-/\n&/g' | \ + grep -oP '^\[20\d{2}-\d{2}-\d{2}' | sort | uniq -c + +# Find circuit-breaker trips +grep 'circuit\|Circuit\|ABANDONED\|abandoned' ~/.claude-mem/logs/claude-mem-*.log + +# Check pending message health +grep 'CLAIMED\|CONFIRMED\|FAILED\|ABANDONED' ~/.claude-mem/logs/claude-mem-$(date +%Y-%m-%d).log | tail -20 +``` diff --git a/docs/public/docs.json b/docs/public/docs.json index a1a36ad7..7170bcce 100644 --- a/docs/public/docs.json +++ b/docs/public/docs.json @@ -57,6 +57,13 @@ "cursor/openrouter-setup" ] }, + { + "group": "Gemini CLI Integration", + "icon": "terminal", + "pages": [ + "gemini-cli/setup" + ] + }, { "group": "Best Practices", "icon": "lightbulb", diff --git a/docs/public/gemini-cli/setup.mdx b/docs/public/gemini-cli/setup.mdx new file mode 100644 index 00000000..f79573f1 --- /dev/null +++ b/docs/public/gemini-cli/setup.mdx @@ -0,0 +1,192 @@ +--- +title: "Gemini CLI Setup" +description: "Add persistent memory to Gemini CLI with claude-mem" +--- + +# Gemini CLI Setup + +> **Give Gemini CLI persistent memory across sessions.** + +Gemini CLI starts every session from scratch. Claude-mem changes that by capturing observations, decisions, and patterns — then injecting relevant context into each new session. + + +**How it works:** Claude-mem installs lifecycle hooks into Gemini CLI that capture tool usage, agent responses, and session events. A local worker service extracts semantic observations and injects relevant history at session start. + + +## Prerequisites + +- [Gemini CLI](https://github.com/google-gemini/gemini-cli) installed and configured +- [Node.js](https://nodejs.org/) 18+ +- The `~/.gemini` directory must exist (created by Gemini CLI on first run) + +## Installation + +### Step 1: Install claude-mem + +```bash +npx claude-mem install +``` + +The installer will: +1. Auto-detect Gemini CLI (checks for `~/.gemini` directory) +2. Prompt you to select **Gemini CLI** from the IDE picker +3. Install 8 lifecycle hooks into `~/.gemini/settings.json` +4. Inject context configuration into `~/.gemini/GEMINI.md` +5. Start the worker service + +### Step 2: Configure an AI provider + +Claude-mem needs an AI provider to extract observations from your sessions. Choose one: + + + + The simplest option — use Gemini's own API for observation extraction: + + 1. Get a free API key from [Google AI Studio](https://aistudio.google.com/apikey) + 2. Add it to your settings: + + ```bash + mkdir -p ~/.claude-mem + cat > ~/.claude-mem/settings.json << 'EOF' + { + "CLAUDE_MEM_PROVIDER": "gemini", + "CLAUDE_MEM_GEMINI_API_KEY": "YOUR_API_KEY" + } + EOF + ``` + + + **Free tier:** 1,500 requests/day with `gemini-2.5-flash-lite`. Enable billing on Google Cloud for 4,000 RPM without charges. + + + + If you have a Claude API key: + + ```bash + mkdir -p ~/.claude-mem + cat > ~/.claude-mem/settings.json << 'EOF' + { + "CLAUDE_MEM_PROVIDER": "claude" + } + EOF + ``` + + Set your API key via environment variable: + ```bash + export ANTHROPIC_API_KEY="your-key" + ``` + + + For access to 100+ models: + + ```bash + mkdir -p ~/.claude-mem + cat > ~/.claude-mem/settings.json << 'EOF' + { + "CLAUDE_MEM_PROVIDER": "openrouter", + "CLAUDE_MEM_OPENROUTER_API_KEY": "YOUR_KEY" + } + EOF + ``` + + + +### Step 3: Verify installation + +```bash +# Check worker is running +npx claude-mem status + +# Check hooks are installed — look for claude-mem entries +cat ~/.gemini/settings.json | grep claude-mem +``` + +Open http://localhost:37777 to see the memory viewer. + +### Step 4: Start using Gemini CLI + +Launch Gemini CLI normally. Claude-mem works in the background: + +```bash +gemini +``` + +On session start, you'll see claude-mem context injected with your recent observations and project history. + +## What gets captured + +Claude-mem registers 8 of Gemini CLI's 11 lifecycle hooks: + +| Hook | Purpose | +|------|---------| +| **SessionStart** | Injects memory context into the session | +| **SessionEnd** | Marks session complete, triggers summary | +| **PreCompress** | Captures session summary before compression | +| **Notification** | Records system events (permissions, etc.) | +| **BeforeAgent** | Captures user prompts | +| **AfterAgent** | Records full agent responses | +| **BeforeTool** | Logs tool invocations before execution | +| **AfterTool** | Captures tool results after execution | + +Three model-level hooks (BeforeModel, AfterModel, BeforeToolSelection) are intentionally skipped — they fire per-LLM-call and are too noisy for memory capture. + +## Troubleshooting + +### Hooks not firing + +1. Verify hooks exist in settings: + ```bash + cat ~/.gemini/settings.json + ``` + You should see entries like `"SessionStart"`, `"AfterTool"`, etc. with claude-mem commands. + +2. Restart Gemini CLI after installation. + +3. Re-run the installer: + ```bash + npx claude-mem install + ``` + +### Worker not running + +```bash +# Check status +npx claude-mem status + +# View logs +npx claude-mem logs + +# Restart worker +npx claude-mem restart +``` + +### No context appearing at session start + +1. Ensure the worker is running (check http://localhost:37777) +2. You need at least one previous session with observations for context to appear +3. Check your AI provider is configured in `~/.claude-mem/settings.json` + +### Raw escape codes in output + +If you see characters like `[31m` or `[0m` in the session context, your claude-mem version may need updating: + +```bash +npx claude-mem install +``` + +This was fixed in v10.6.3+ — the Gemini CLI adapter now strips ANSI color codes automatically. + +## Uninstalling + +```bash +npx claude-mem uninstall +``` + +This removes hooks from `~/.gemini/settings.json` and cleans up `~/.gemini/GEMINI.md`. + +## Next Steps + +- [Gemini Provider](/usage/gemini-provider) — Configure the Gemini AI provider for observation extraction +- [Configuration](/configuration) — All settings options +- [Search Tools](/usage/search-tools) — Search your memory from within sessions +- [Troubleshooting](/troubleshooting) — Common issues and solutions diff --git a/docs/public/installation.mdx b/docs/public/installation.mdx index 9d8a8ada..0db50280 100644 --- a/docs/public/installation.mdx +++ b/docs/public/installation.mdx @@ -7,24 +7,35 @@ description: "Install Claude-Mem plugin for persistent memory across sessions" ## Quick Start -Install Claude-Mem directly from the plugin marketplace: +### Option 1: npx (Recommended) + +Install and configure Claude-Mem with a single command: + +```bash +npx claude-mem install +``` + +The interactive installer will: +- Detect your installed IDEs (Claude Code, Cursor, Gemini CLI, Windsurf, etc.) +- Copy plugin files to the correct locations +- Register the plugin with Claude Code +- Install all dependencies (including Bun and uv) +- Auto-start the worker service + +### Option 2: Plugin Marketplace + +Install Claude-Mem directly from the plugin marketplace inside Claude Code: ```bash /plugin marketplace add thedotmack/claude-mem /plugin install claude-mem ``` -That's it! The plugin will automatically: -- Download prebuilt binaries (no compilation needed) -- Install all dependencies (including SQLite binaries) -- Configure hooks for session lifecycle management -- Auto-start the worker service on first session - -Start a new Claude Code session and you'll see context from previous sessions automatically loaded. +Both methods will automatically configure hooks and start the worker service. Start a new Claude Code session and you'll see context from previous sessions automatically loaded. > **Important:** Claude-Mem is published on npm, but running `npm install -g claude-mem` installs the > **SDK/library only**. It does **not** register plugin hooks or start the worker service. -> To use Claude-Mem as a persistent memory plugin, always install via the `/plugin` commands above. +> Always install via `npx claude-mem install` or the `/plugin` commands above. ## System Requirements diff --git a/docs/public/introduction.mdx b/docs/public/introduction.mdx index ff0d2eed..e4605c0a 100644 --- a/docs/public/introduction.mdx +++ b/docs/public/introduction.mdx @@ -11,7 +11,13 @@ Claude-Mem seamlessly preserves context across sessions by automatically capturi ## Quick Start -Start a new Claude Code session in the terminal and enter the following commands: +Install with a single command: + +```bash +npx claude-mem install +``` + +Or install from the plugin marketplace inside Claude Code: ```bash /plugin marketplace add thedotmack/claude-mem diff --git a/install/public/install.sh b/install/public/install.sh index 76238647..d3be8cfa 100644 --- a/install/public/install.sh +++ b/install/public/install.sh @@ -1,59 +1,25 @@ #!/bin/bash set -euo pipefail -# claude-mem installer bootstrap -# Usage: curl -fsSL https://install.cmem.ai | bash -# or: curl -fsSL https://install.cmem.ai | bash -s -- --provider=gemini --api-key=YOUR_KEY - -INSTALLER_URL="https://install.cmem.ai/installer.js" +# claude-mem installer redirect +# The old curl-pipe-bash installer has been replaced by npx claude-mem. +# This script now redirects users to the new install method. # Colors RED='\033[0;31m' GREEN='\033[0;32m' CYAN='\033[0;36m' +YELLOW='\033[0;33m' NC='\033[0m' # No Color -error() { echo -e "${RED}Error: $1${NC}" >&2; exit 1; } -info() { echo -e "${CYAN}$1${NC}"; } - -# Check Node.js -if ! command -v node &> /dev/null; then - error "Node.js is required but not found. Install from https://nodejs.org" -fi - -NODE_VERSION=$(node -v | sed 's/v//') -NODE_MAJOR=$(echo "$NODE_VERSION" | cut -d. -f1) -if [ "$NODE_MAJOR" -lt 18 ]; then - error "Node.js >= 18 required. Current: v${NODE_VERSION}" -fi - -info "claude-mem installer (Node.js v${NODE_VERSION})" - -# Create temp file for installer -TMPFILE=$(mktemp "${TMPDIR:-/tmp}/claude-mem-installer.XXXXXX.mjs") - -# Cleanup on exit -cleanup() { - rm -f "$TMPFILE" -} -trap cleanup EXIT INT TERM - -# Download installer -info "Downloading installer..." -if command -v curl &> /dev/null; then - curl -fsSL "$INSTALLER_URL" -o "$TMPFILE" -elif command -v wget &> /dev/null; then - wget -q "$INSTALLER_URL" -O "$TMPFILE" -else - error "curl or wget required to download installer" -fi - -# Run installer with TTY access -# When piped (curl | bash), stdin is the script. We need to reconnect to the terminal. -if [ -t 0 ]; then - # Already have TTY (script was downloaded and run directly) - node "$TMPFILE" "$@" -else - # Piped execution -- reconnect stdin to terminal - node "$TMPFILE" "$@" = 18. Get it from ${CYAN}https://nodejs.org${NC}" +echo "" +echo -e "For more info, visit: ${CYAN}https://docs.claude-mem.ai/installation${NC}" +echo "" diff --git a/install/public/installer.js b/install/public/installer.js index 73929299..3f31d299 100644 --- a/install/public/installer.js +++ b/install/public/installer.js @@ -1,2107 +1,17 @@ #!/usr/bin/env node -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -// node_modules/picocolors/picocolors.js -var require_picocolors = __commonJS({ - "node_modules/picocolors/picocolors.js"(exports, module) { - var p = process || {}; - var argv = p.argv || []; - var env = p.env || {}; - var isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI); - var formatter = (open, close, replace = open) => (input) => { - let string = "" + input, index = string.indexOf(close, open.length); - return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close; - }; - var replaceClose = (string, close, replace, index) => { - let result = "", cursor = 0; - do { - result += string.substring(cursor, index) + replace; - cursor = index + close.length; - index = string.indexOf(close, cursor); - } while (~index); - return result + string.substring(cursor); - }; - var createColors = (enabled = isColorSupported) => { - let f = enabled ? formatter : () => String; - return { - isColorSupported: enabled, - reset: f("\x1B[0m", "\x1B[0m"), - bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), - dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), - italic: f("\x1B[3m", "\x1B[23m"), - underline: f("\x1B[4m", "\x1B[24m"), - inverse: f("\x1B[7m", "\x1B[27m"), - hidden: f("\x1B[8m", "\x1B[28m"), - strikethrough: f("\x1B[9m", "\x1B[29m"), - black: f("\x1B[30m", "\x1B[39m"), - red: f("\x1B[31m", "\x1B[39m"), - green: f("\x1B[32m", "\x1B[39m"), - yellow: f("\x1B[33m", "\x1B[39m"), - blue: f("\x1B[34m", "\x1B[39m"), - magenta: f("\x1B[35m", "\x1B[39m"), - cyan: f("\x1B[36m", "\x1B[39m"), - white: f("\x1B[37m", "\x1B[39m"), - gray: f("\x1B[90m", "\x1B[39m"), - bgBlack: f("\x1B[40m", "\x1B[49m"), - bgRed: f("\x1B[41m", "\x1B[49m"), - bgGreen: f("\x1B[42m", "\x1B[49m"), - bgYellow: f("\x1B[43m", "\x1B[49m"), - bgBlue: f("\x1B[44m", "\x1B[49m"), - bgMagenta: f("\x1B[45m", "\x1B[49m"), - bgCyan: f("\x1B[46m", "\x1B[49m"), - bgWhite: f("\x1B[47m", "\x1B[49m"), - blackBright: f("\x1B[90m", "\x1B[39m"), - redBright: f("\x1B[91m", "\x1B[39m"), - greenBright: f("\x1B[92m", "\x1B[39m"), - yellowBright: f("\x1B[93m", "\x1B[39m"), - blueBright: f("\x1B[94m", "\x1B[39m"), - magentaBright: f("\x1B[95m", "\x1B[39m"), - cyanBright: f("\x1B[96m", "\x1B[39m"), - whiteBright: f("\x1B[97m", "\x1B[39m"), - bgBlackBright: f("\x1B[100m", "\x1B[49m"), - bgRedBright: f("\x1B[101m", "\x1B[49m"), - bgGreenBright: f("\x1B[102m", "\x1B[49m"), - bgYellowBright: f("\x1B[103m", "\x1B[49m"), - bgBlueBright: f("\x1B[104m", "\x1B[49m"), - bgMagentaBright: f("\x1B[105m", "\x1B[49m"), - bgCyanBright: f("\x1B[106m", "\x1B[49m"), - bgWhiteBright: f("\x1B[107m", "\x1B[49m") - }; - }; - module.exports = createColors(); - module.exports.createColors = createColors; - } -}); +// claude-mem installer redirect +// The old bundled installer has been replaced by npx claude-mem. +// This script now redirects users to the new install method. -// node_modules/sisteransi/src/index.js -var require_src = __commonJS({ - "node_modules/sisteransi/src/index.js"(exports, module) { - "use strict"; - var ESC = "\x1B"; - var CSI = `${ESC}[`; - var beep = "\x07"; - var cursor = { - to(x3, y2) { - if (!y2) return `${CSI}${x3 + 1}G`; - return `${CSI}${y2 + 1};${x3 + 1}H`; - }, - move(x3, y2) { - let ret = ""; - if (x3 < 0) ret += `${CSI}${-x3}D`; - else if (x3 > 0) ret += `${CSI}${x3}C`; - if (y2 < 0) ret += `${CSI}${-y2}A`; - else if (y2 > 0) ret += `${CSI}${y2}B`; - return ret; - }, - up: (count = 1) => `${CSI}${count}A`, - down: (count = 1) => `${CSI}${count}B`, - forward: (count = 1) => `${CSI}${count}C`, - backward: (count = 1) => `${CSI}${count}D`, - nextLine: (count = 1) => `${CSI}E`.repeat(count), - prevLine: (count = 1) => `${CSI}F`.repeat(count), - left: `${CSI}G`, - hide: `${CSI}?25l`, - show: `${CSI}?25h`, - save: `${ESC}7`, - restore: `${ESC}8` - }; - var scroll = { - up: (count = 1) => `${CSI}S`.repeat(count), - down: (count = 1) => `${CSI}T`.repeat(count) - }; - var erase = { - screen: `${CSI}2J`, - up: (count = 1) => `${CSI}1J`.repeat(count), - down: (count = 1) => `${CSI}J`.repeat(count), - line: `${CSI}2K`, - lineEnd: `${CSI}K`, - lineStart: `${CSI}1K`, - lines(count) { - let clear = ""; - for (let i = 0; i < count; i++) - clear += this.line + (i < count - 1 ? cursor.up() : ""); - if (count) - clear += cursor.left; - return clear; - } - }; - module.exports = { cursor, scroll, erase, beep }; - } -}); +console.log(''); +console.log('\x1b[33mThe bundled installer has been replaced.\x1b[0m'); +console.log(''); +console.log('\x1b[32mInstall claude-mem with:\x1b[0m'); +console.log(''); +console.log(' \x1b[36mnpx claude-mem install\x1b[0m'); +console.log(''); +console.log('For more info, visit: \x1b[36mhttps://docs.claude-mem.ai/installation\x1b[0m'); +console.log(''); -// node_modules/@clack/core/dist/index.mjs -var import_picocolors = __toESM(require_picocolors(), 1); -var import_sisteransi = __toESM(require_src(), 1); -import { stdout as R, stdin as q } from "node:process"; -import * as k from "node:readline"; -import ot from "node:readline"; -import { ReadStream as J } from "node:tty"; -function B(t, e2, s) { - if (!s.some((u) => !u.disabled)) return t; - const i = t + e2, r = Math.max(s.length - 1, 0), n = i < 0 ? r : i > r ? 0 : i; - return s[n].disabled ? B(n, e2 < 0 ? -1 : 1, s) : n; -} -var at = (t) => t === 161 || t === 164 || t === 167 || t === 168 || t === 170 || t === 173 || t === 174 || t >= 176 && t <= 180 || t >= 182 && t <= 186 || t >= 188 && t <= 191 || t === 198 || t === 208 || t === 215 || t === 216 || t >= 222 && t <= 225 || t === 230 || t >= 232 && t <= 234 || t === 236 || t === 237 || t === 240 || t === 242 || t === 243 || t >= 247 && t <= 250 || t === 252 || t === 254 || t === 257 || t === 273 || t === 275 || t === 283 || t === 294 || t === 295 || t === 299 || t >= 305 && t <= 307 || t === 312 || t >= 319 && t <= 322 || t === 324 || t >= 328 && t <= 331 || t === 333 || t === 338 || t === 339 || t === 358 || t === 359 || t === 363 || t === 462 || t === 464 || t === 466 || t === 468 || t === 470 || t === 472 || t === 474 || t === 476 || t === 593 || t === 609 || t === 708 || t === 711 || t >= 713 && t <= 715 || t === 717 || t === 720 || t >= 728 && t <= 731 || t === 733 || t === 735 || t >= 768 && t <= 879 || t >= 913 && t <= 929 || t >= 931 && t <= 937 || t >= 945 && t <= 961 || t >= 963 && t <= 969 || t === 1025 || t >= 1040 && t <= 1103 || t === 1105 || t === 8208 || t >= 8211 && t <= 8214 || t === 8216 || t === 8217 || t === 8220 || t === 8221 || t >= 8224 && t <= 8226 || t >= 8228 && t <= 8231 || t === 8240 || t === 8242 || t === 8243 || t === 8245 || t === 8251 || t === 8254 || t === 8308 || t === 8319 || t >= 8321 && t <= 8324 || t === 8364 || t === 8451 || t === 8453 || t === 8457 || t === 8467 || t === 8470 || t === 8481 || t === 8482 || t === 8486 || t === 8491 || t === 8531 || t === 8532 || t >= 8539 && t <= 8542 || t >= 8544 && t <= 8555 || t >= 8560 && t <= 8569 || t === 8585 || t >= 8592 && t <= 8601 || t === 8632 || t === 8633 || t === 8658 || t === 8660 || t === 8679 || t === 8704 || t === 8706 || t === 8707 || t === 8711 || t === 8712 || t === 8715 || t === 8719 || t === 8721 || t === 8725 || t === 8730 || t >= 8733 && t <= 8736 || t === 8739 || t === 8741 || t >= 8743 && t <= 8748 || t === 8750 || t >= 8756 && t <= 8759 || t === 8764 || t === 8765 || t === 8776 || t === 8780 || t === 8786 || t === 8800 || t === 8801 || t >= 8804 && t <= 8807 || t === 8810 || t === 8811 || t === 8814 || t === 8815 || t === 8834 || t === 8835 || t === 8838 || t === 8839 || t === 8853 || t === 8857 || t === 8869 || t === 8895 || t === 8978 || t >= 9312 && t <= 9449 || t >= 9451 && t <= 9547 || t >= 9552 && t <= 9587 || t >= 9600 && t <= 9615 || t >= 9618 && t <= 9621 || t === 9632 || t === 9633 || t >= 9635 && t <= 9641 || t === 9650 || t === 9651 || t === 9654 || t === 9655 || t === 9660 || t === 9661 || t === 9664 || t === 9665 || t >= 9670 && t <= 9672 || t === 9675 || t >= 9678 && t <= 9681 || t >= 9698 && t <= 9701 || t === 9711 || t === 9733 || t === 9734 || t === 9737 || t === 9742 || t === 9743 || t === 9756 || t === 9758 || t === 9792 || t === 9794 || t === 9824 || t === 9825 || t >= 9827 && t <= 9829 || t >= 9831 && t <= 9834 || t === 9836 || t === 9837 || t === 9839 || t === 9886 || t === 9887 || t === 9919 || t >= 9926 && t <= 9933 || t >= 9935 && t <= 9939 || t >= 9941 && t <= 9953 || t === 9955 || t === 9960 || t === 9961 || t >= 9963 && t <= 9969 || t === 9972 || t >= 9974 && t <= 9977 || t === 9979 || t === 9980 || t === 9982 || t === 9983 || t === 10045 || t >= 10102 && t <= 10111 || t >= 11094 && t <= 11097 || t >= 12872 && t <= 12879 || t >= 57344 && t <= 63743 || t >= 65024 && t <= 65039 || t === 65533 || t >= 127232 && t <= 127242 || t >= 127248 && t <= 127277 || t >= 127280 && t <= 127337 || t >= 127344 && t <= 127373 || t === 127375 || t === 127376 || t >= 127387 && t <= 127404 || t >= 917760 && t <= 917999 || t >= 983040 && t <= 1048573 || t >= 1048576 && t <= 1114109; -var lt = (t) => t === 12288 || t >= 65281 && t <= 65376 || t >= 65504 && t <= 65510; -var ht = (t) => t >= 4352 && t <= 4447 || t === 8986 || t === 8987 || t === 9001 || t === 9002 || t >= 9193 && t <= 9196 || t === 9200 || t === 9203 || t === 9725 || t === 9726 || t === 9748 || t === 9749 || t >= 9800 && t <= 9811 || t === 9855 || t === 9875 || t === 9889 || t === 9898 || t === 9899 || t === 9917 || t === 9918 || t === 9924 || t === 9925 || t === 9934 || t === 9940 || t === 9962 || t === 9970 || t === 9971 || t === 9973 || t === 9978 || t === 9981 || t === 9989 || t === 9994 || t === 9995 || t === 10024 || t === 10060 || t === 10062 || t >= 10067 && t <= 10069 || t === 10071 || t >= 10133 && t <= 10135 || t === 10160 || t === 10175 || t === 11035 || t === 11036 || t === 11088 || t === 11093 || t >= 11904 && t <= 11929 || t >= 11931 && t <= 12019 || t >= 12032 && t <= 12245 || t >= 12272 && t <= 12287 || t >= 12289 && t <= 12350 || t >= 12353 && t <= 12438 || t >= 12441 && t <= 12543 || t >= 12549 && t <= 12591 || t >= 12593 && t <= 12686 || t >= 12688 && t <= 12771 || t >= 12783 && t <= 12830 || t >= 12832 && t <= 12871 || t >= 12880 && t <= 19903 || t >= 19968 && t <= 42124 || t >= 42128 && t <= 42182 || t >= 43360 && t <= 43388 || t >= 44032 && t <= 55203 || t >= 63744 && t <= 64255 || t >= 65040 && t <= 65049 || t >= 65072 && t <= 65106 || t >= 65108 && t <= 65126 || t >= 65128 && t <= 65131 || t >= 94176 && t <= 94180 || t === 94192 || t === 94193 || t >= 94208 && t <= 100343 || t >= 100352 && t <= 101589 || t >= 101632 && t <= 101640 || t >= 110576 && t <= 110579 || t >= 110581 && t <= 110587 || t === 110589 || t === 110590 || t >= 110592 && t <= 110882 || t === 110898 || t >= 110928 && t <= 110930 || t === 110933 || t >= 110948 && t <= 110951 || t >= 110960 && t <= 111355 || t === 126980 || t === 127183 || t === 127374 || t >= 127377 && t <= 127386 || t >= 127488 && t <= 127490 || t >= 127504 && t <= 127547 || t >= 127552 && t <= 127560 || t === 127568 || t === 127569 || t >= 127584 && t <= 127589 || t >= 127744 && t <= 127776 || t >= 127789 && t <= 127797 || t >= 127799 && t <= 127868 || t >= 127870 && t <= 127891 || t >= 127904 && t <= 127946 || t >= 127951 && t <= 127955 || t >= 127968 && t <= 127984 || t === 127988 || t >= 127992 && t <= 128062 || t === 128064 || t >= 128066 && t <= 128252 || t >= 128255 && t <= 128317 || t >= 128331 && t <= 128334 || t >= 128336 && t <= 128359 || t === 128378 || t === 128405 || t === 128406 || t === 128420 || t >= 128507 && t <= 128591 || t >= 128640 && t <= 128709 || t === 128716 || t >= 128720 && t <= 128722 || t >= 128725 && t <= 128727 || t >= 128732 && t <= 128735 || t === 128747 || t === 128748 || t >= 128756 && t <= 128764 || t >= 128992 && t <= 129003 || t === 129008 || t >= 129292 && t <= 129338 || t >= 129340 && t <= 129349 || t >= 129351 && t <= 129535 || t >= 129648 && t <= 129660 || t >= 129664 && t <= 129672 || t >= 129680 && t <= 129725 || t >= 129727 && t <= 129733 || t >= 129742 && t <= 129755 || t >= 129760 && t <= 129768 || t >= 129776 && t <= 129784 || t >= 131072 && t <= 196605 || t >= 196608 && t <= 262141; -var O = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y; -var y = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y; -var L = /\t{1,1000}/y; -var P = new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*", "yu"); -var M = /(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y; -var ct = new RegExp("\\p{M}+", "gu"); -var ft = { limit: 1 / 0, ellipsis: "" }; -var X = (t, e2 = {}, s = {}) => { - const i = e2.limit ?? 1 / 0, r = e2.ellipsis ?? "", n = e2?.ellipsisWidth ?? (r ? X(r, ft, s).width : 0), u = s.ansiWidth ?? 0, a = s.controlWidth ?? 0, l = s.tabWidth ?? 8, E = s.ambiguousWidth ?? 1, g = s.emojiWidth ?? 2, m = s.fullWidthWidth ?? 2, A = s.regularWidth ?? 1, V2 = s.wideWidth ?? 2; - let h = 0, o = 0, p = t.length, v = 0, F = false, d2 = p, b = Math.max(0, i - n), C2 = 0, w = 0, c = 0, f = 0; - t: for (; ; ) { - if (w > C2 || o >= p && o > h) { - const ut = t.slice(C2, w) || t.slice(h, o); - v = 0; - for (const Y of ut.replaceAll(ct, "")) { - const $ = Y.codePointAt(0) || 0; - if (lt($) ? f = m : ht($) ? f = V2 : E !== A && at($) ? f = E : f = A, c + f > b && (d2 = Math.min(d2, Math.max(C2, h) + v)), c + f > i) { - F = true; - break t; - } - v += Y.length, c += f; - } - C2 = w = 0; - } - if (o >= p) break; - if (M.lastIndex = o, M.test(t)) { - if (v = M.lastIndex - o, f = v * A, c + f > b && (d2 = Math.min(d2, o + Math.floor((b - c) / A))), c + f > i) { - F = true; - break; - } - c += f, C2 = h, w = o, o = h = M.lastIndex; - continue; - } - if (O.lastIndex = o, O.test(t)) { - if (c + u > b && (d2 = Math.min(d2, o)), c + u > i) { - F = true; - break; - } - c += u, C2 = h, w = o, o = h = O.lastIndex; - continue; - } - if (y.lastIndex = o, y.test(t)) { - if (v = y.lastIndex - o, f = v * a, c + f > b && (d2 = Math.min(d2, o + Math.floor((b - c) / a))), c + f > i) { - F = true; - break; - } - c += f, C2 = h, w = o, o = h = y.lastIndex; - continue; - } - if (L.lastIndex = o, L.test(t)) { - if (v = L.lastIndex - o, f = v * l, c + f > b && (d2 = Math.min(d2, o + Math.floor((b - c) / l))), c + f > i) { - F = true; - break; - } - c += f, C2 = h, w = o, o = h = L.lastIndex; - continue; - } - if (P.lastIndex = o, P.test(t)) { - if (c + g > b && (d2 = Math.min(d2, o)), c + g > i) { - F = true; - break; - } - c += g, C2 = h, w = o, o = h = P.lastIndex; - continue; - } - o += 1; - } - return { width: F ? b : c, index: F ? d2 : p, truncated: F, ellipsed: F && i >= n }; -}; -var pt = { limit: 1 / 0, ellipsis: "", ellipsisWidth: 0 }; -var S = (t, e2 = {}) => X(t, pt, e2).width; -var W = "\x1B"; -var Z = "\x9B"; -var Ft = 39; -var j = "\x07"; -var Q = "["; -var dt = "]"; -var tt = "m"; -var U = `${dt}8;;`; -var et = new RegExp(`(?:\\${Q}(?\\d+)m|\\${U}(?.*)${j})`, "y"); -var mt = (t) => { - if (t >= 30 && t <= 37 || t >= 90 && t <= 97) return 39; - if (t >= 40 && t <= 47 || t >= 100 && t <= 107) return 49; - if (t === 1 || t === 2) return 22; - if (t === 3) return 23; - if (t === 4) return 24; - if (t === 7) return 27; - if (t === 8) return 28; - if (t === 9) return 29; - if (t === 0) return 0; -}; -var st = (t) => `${W}${Q}${t}${tt}`; -var it = (t) => `${W}${U}${t}${j}`; -var gt = (t) => t.map((e2) => S(e2)); -var G = (t, e2, s) => { - const i = e2[Symbol.iterator](); - let r = false, n = false, u = t.at(-1), a = u === void 0 ? 0 : S(u), l = i.next(), E = i.next(), g = 0; - for (; !l.done; ) { - const m = l.value, A = S(m); - a + A <= s ? t[t.length - 1] += m : (t.push(m), a = 0), (m === W || m === Z) && (r = true, n = e2.startsWith(U, g + 1)), r ? n ? m === j && (r = false, n = false) : m === tt && (r = false) : (a += A, a === s && !E.done && (t.push(""), a = 0)), l = E, E = i.next(), g += m.length; - } - u = t.at(-1), !a && u !== void 0 && u.length > 0 && t.length > 1 && (t[t.length - 2] += t.pop()); -}; -var vt = (t) => { - const e2 = t.split(" "); - let s = e2.length; - for (; s > 0 && !(S(e2[s - 1]) > 0); ) s--; - return s === e2.length ? t : e2.slice(0, s).join(" ") + e2.slice(s).join(""); -}; -var Et = (t, e2, s = {}) => { - if (s.trim !== false && t.trim() === "") return ""; - let i = "", r, n; - const u = t.split(" "), a = gt(u); - let l = [""]; - for (const [h, o] of u.entries()) { - s.trim !== false && (l[l.length - 1] = (l.at(-1) ?? "").trimStart()); - let p = S(l.at(-1) ?? ""); - if (h !== 0 && (p >= e2 && (s.wordWrap === false || s.trim === false) && (l.push(""), p = 0), (p > 0 || s.trim === false) && (l[l.length - 1] += " ", p++)), s.hard && a[h] > e2) { - const v = e2 - p, F = 1 + Math.floor((a[h] - v - 1) / e2); - Math.floor((a[h] - 1) / e2) < F && l.push(""), G(l, o, e2); - continue; - } - if (p + a[h] > e2 && p > 0 && a[h] > 0) { - if (s.wordWrap === false && p < e2) { - G(l, o, e2); - continue; - } - l.push(""); - } - if (p + a[h] > e2 && s.wordWrap === false) { - G(l, o, e2); - continue; - } - l[l.length - 1] += o; - } - s.trim !== false && (l = l.map((h) => vt(h))); - const E = l.join(` -`), g = E[Symbol.iterator](); - let m = g.next(), A = g.next(), V2 = 0; - for (; !m.done; ) { - const h = m.value, o = A.value; - if (i += h, h === W || h === Z) { - et.lastIndex = V2 + 1; - const F = et.exec(E)?.groups; - if (F?.code !== void 0) { - const d2 = Number.parseFloat(F.code); - r = d2 === Ft ? void 0 : d2; - } else F?.uri !== void 0 && (n = F.uri.length === 0 ? void 0 : F.uri); - } - const p = r ? mt(r) : void 0; - o === ` -` ? (n && (i += it("")), r && p && (i += st(p))) : h === ` -` && (r && p && (i += st(r)), n && (i += it(n))), V2 += h.length, m = A, A = g.next(); - } - return i; -}; -function K(t, e2, s) { - return String(t).normalize().replaceAll(`\r -`, ` -`).split(` -`).map((i) => Et(i, e2, s)).join(` -`); -} -var At = ["up", "down", "left", "right", "space", "enter", "cancel"]; -var _ = { actions: new Set(At), aliases: /* @__PURE__ */ new Map([["k", "up"], ["j", "down"], ["h", "left"], ["l", "right"], ["", "cancel"], ["escape", "cancel"]]), messages: { cancel: "Canceled", error: "Something went wrong" }, withGuide: true }; -function H(t, e2) { - if (typeof t == "string") return _.aliases.get(t) === e2; - for (const s of t) if (s !== void 0 && H(s, e2)) return true; - return false; -} -function _t(t, e2) { - if (t === e2) return; - const s = t.split(` -`), i = e2.split(` -`), r = Math.max(s.length, i.length), n = []; - for (let u = 0; u < r; u++) s[u] !== i[u] && n.push(u); - return { lines: n, numLinesBefore: s.length, numLinesAfter: i.length, numLines: r }; -} -var bt = globalThis.process.platform.startsWith("win"); -var z = Symbol("clack:cancel"); -function Ct(t) { - return t === z; -} -function T(t, e2) { - const s = t; - s.isTTY && s.setRawMode(e2); -} -function Bt({ input: t = q, output: e2 = R, overwrite: s = true, hideCursor: i = true } = {}) { - const r = k.createInterface({ input: t, output: e2, prompt: "", tabSize: 1 }); - k.emitKeypressEvents(t, r), t instanceof J && t.isTTY && t.setRawMode(true); - const n = (u, { name: a, sequence: l }) => { - const E = String(u); - if (H([E, a, l], "cancel")) { - i && e2.write(import_sisteransi.cursor.show), process.exit(0); - return; - } - if (!s) return; - const g = a === "return" ? 0 : -1, m = a === "return" ? -1 : 0; - k.moveCursor(e2, g, m, () => { - k.clearLine(e2, 1, () => { - t.once("keypress", n); - }); - }); - }; - return i && e2.write(import_sisteransi.cursor.hide), t.once("keypress", n), () => { - t.off("keypress", n), i && e2.write(import_sisteransi.cursor.show), t instanceof J && t.isTTY && !bt && t.setRawMode(false), r.terminal = false, r.close(); - }; -} -var rt = (t) => "columns" in t && typeof t.columns == "number" ? t.columns : 80; -var nt = (t) => "rows" in t && typeof t.rows == "number" ? t.rows : 20; -function xt(t, e2, s, i = s) { - const r = rt(t ?? R); - return K(e2, r - s.length, { hard: true, trim: false }).split(` -`).map((n, u) => `${u === 0 ? i : s}${n}`).join(` -`); -} -var x = class { - input; - output; - _abortSignal; - rl; - opts; - _render; - _track = false; - _prevFrame = ""; - _subscribers = /* @__PURE__ */ new Map(); - _cursor = 0; - state = "initial"; - error = ""; - value; - userInput = ""; - constructor(e2, s = true) { - const { input: i = q, output: r = R, render: n, signal: u, ...a } = e2; - this.opts = a, this.onKeypress = this.onKeypress.bind(this), this.close = this.close.bind(this), this.render = this.render.bind(this), this._render = n.bind(this), this._track = s, this._abortSignal = u, this.input = i, this.output = r; - } - unsubscribe() { - this._subscribers.clear(); - } - setSubscriber(e2, s) { - const i = this._subscribers.get(e2) ?? []; - i.push(s), this._subscribers.set(e2, i); - } - on(e2, s) { - this.setSubscriber(e2, { cb: s }); - } - once(e2, s) { - this.setSubscriber(e2, { cb: s, once: true }); - } - emit(e2, ...s) { - const i = this._subscribers.get(e2) ?? [], r = []; - for (const n of i) n.cb(...s), n.once && r.push(() => i.splice(i.indexOf(n), 1)); - for (const n of r) n(); - } - prompt() { - return new Promise((e2) => { - if (this._abortSignal) { - if (this._abortSignal.aborted) return this.state = "cancel", this.close(), e2(z); - this._abortSignal.addEventListener("abort", () => { - this.state = "cancel", this.close(); - }, { once: true }); - } - this.rl = ot.createInterface({ input: this.input, tabSize: 2, prompt: "", escapeCodeTimeout: 50, terminal: true }), this.rl.prompt(), this.opts.initialUserInput !== void 0 && this._setUserInput(this.opts.initialUserInput, true), this.input.on("keypress", this.onKeypress), T(this.input, true), this.output.on("resize", this.render), this.render(), this.once("submit", () => { - this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), T(this.input, false), e2(this.value); - }), this.once("cancel", () => { - this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), T(this.input, false), e2(z); - }); - }); - } - _isActionKey(e2, s) { - return e2 === " "; - } - _setValue(e2) { - this.value = e2, this.emit("value", this.value); - } - _setUserInput(e2, s) { - this.userInput = e2 ?? "", this.emit("userInput", this.userInput), s && this._track && this.rl && (this.rl.write(this.userInput), this._cursor = this.rl.cursor); - } - _clearUserInput() { - this.rl?.write(null, { ctrl: true, name: "u" }), this._setUserInput(""); - } - onKeypress(e2, s) { - if (this._track && s.name !== "return" && (s.name && this._isActionKey(e2, s) && this.rl?.write(null, { ctrl: true, name: "h" }), this._cursor = this.rl?.cursor ?? 0, this._setUserInput(this.rl?.line)), this.state === "error" && (this.state = "active"), s?.name && (!this._track && _.aliases.has(s.name) && this.emit("cursor", _.aliases.get(s.name)), _.actions.has(s.name) && this.emit("cursor", s.name)), e2 && (e2.toLowerCase() === "y" || e2.toLowerCase() === "n") && this.emit("confirm", e2.toLowerCase() === "y"), this.emit("key", e2?.toLowerCase(), s), s?.name === "return") { - if (this.opts.validate) { - const i = this.opts.validate(this.value); - i && (this.error = i instanceof Error ? i.message : i, this.state = "error", this.rl?.write(this.userInput)); - } - this.state !== "error" && (this.state = "submit"); - } - H([e2, s?.name, s?.sequence], "cancel") && (this.state = "cancel"), (this.state === "submit" || this.state === "cancel") && this.emit("finalize"), this.render(), (this.state === "submit" || this.state === "cancel") && this.close(); - } - close() { - this.input.unpipe(), this.input.removeListener("keypress", this.onKeypress), this.output.write(` -`), T(this.input, false), this.rl?.close(), this.rl = void 0, this.emit(`${this.state}`, this.value), this.unsubscribe(); - } - restoreCursor() { - const e2 = K(this._prevFrame, process.stdout.columns, { hard: true, trim: false }).split(` -`).length - 1; - this.output.write(import_sisteransi.cursor.move(-999, e2 * -1)); - } - render() { - const e2 = K(this._render(this) ?? "", process.stdout.columns, { hard: true, trim: false }); - if (e2 !== this._prevFrame) { - if (this.state === "initial") this.output.write(import_sisteransi.cursor.hide); - else { - const s = _t(this._prevFrame, e2), i = nt(this.output); - if (this.restoreCursor(), s) { - const r = Math.max(0, s.numLinesAfter - i), n = Math.max(0, s.numLinesBefore - i); - let u = s.lines.find((a) => a >= r); - if (u === void 0) { - this._prevFrame = e2; - return; - } - if (s.lines.length === 1) { - this.output.write(import_sisteransi.cursor.move(0, u - n)), this.output.write(import_sisteransi.erase.lines(1)); - const a = e2.split(` -`); - this.output.write(a[u]), this._prevFrame = e2, this.output.write(import_sisteransi.cursor.move(0, a.length - u - 1)); - return; - } else if (s.lines.length > 1) { - if (r < n) u = r; - else { - const l = u - n; - l > 0 && this.output.write(import_sisteransi.cursor.move(0, l)); - } - this.output.write(import_sisteransi.erase.down()); - const a = e2.split(` -`).slice(u); - this.output.write(a.join(` -`)), this._prevFrame = e2; - return; - } - } - this.output.write(import_sisteransi.erase.down()); - } - this.output.write(e2), this.state === "initial" && (this.state = "active"), this._prevFrame = e2; - } - } -}; -var kt = class extends x { - get cursor() { - return this.value ? 0 : 1; - } - get _value() { - return this.cursor === 0; - } - constructor(e2) { - super(e2, false), this.value = !!e2.initialValue, this.on("userInput", () => { - this.value = this._value; - }), this.on("confirm", (s) => { - this.output.write(import_sisteransi.cursor.move(0, -1)), this.value = s, this.state = "submit", this.close(); - }), this.on("cursor", () => { - this.value = !this.value; - }); - } -}; -var Lt = class extends x { - options; - cursor = 0; - get _value() { - return this.options[this.cursor].value; - } - get _enabledOptions() { - return this.options.filter((e2) => e2.disabled !== true); - } - toggleAll() { - const e2 = this._enabledOptions, s = this.value !== void 0 && this.value.length === e2.length; - this.value = s ? [] : e2.map((i) => i.value); - } - toggleInvert() { - const e2 = this.value; - if (!e2) return; - const s = this._enabledOptions.filter((i) => !e2.includes(i.value)); - this.value = s.map((i) => i.value); - } - toggleValue() { - this.value === void 0 && (this.value = []); - const e2 = this.value.includes(this._value); - this.value = e2 ? this.value.filter((s) => s !== this._value) : [...this.value, this._value]; - } - constructor(e2) { - super(e2, false), this.options = e2.options, this.value = [...e2.initialValues ?? []]; - const s = Math.max(this.options.findIndex(({ value: i }) => i === e2.cursorAt), 0); - this.cursor = this.options[s].disabled ? B(s, 1, this.options) : s, this.on("key", (i) => { - i === "a" && this.toggleAll(), i === "i" && this.toggleInvert(); - }), this.on("cursor", (i) => { - switch (i) { - case "left": - case "up": - this.cursor = B(this.cursor, -1, this.options); - break; - case "down": - case "right": - this.cursor = B(this.cursor, 1, this.options); - break; - case "space": - this.toggleValue(); - break; - } - }); - } -}; -var Mt = class extends x { - _mask = "\u2022"; - get cursor() { - return this._cursor; - } - get masked() { - return this.userInput.replaceAll(/./g, this._mask); - } - get userInputWithCursor() { - if (this.state === "submit" || this.state === "cancel") return this.masked; - const e2 = this.userInput; - if (this.cursor >= e2.length) return `${this.masked}${import_picocolors.default.inverse(import_picocolors.default.hidden("_"))}`; - const s = this.masked, i = s.slice(0, this.cursor), r = s.slice(this.cursor); - return `${i}${import_picocolors.default.inverse(r[0])}${r.slice(1)}`; - } - clear() { - this._clearUserInput(); - } - constructor({ mask: e2, ...s }) { - super(s), this._mask = e2 ?? "\u2022", this.on("userInput", (i) => { - this._setValue(i); - }); - } -}; -var Wt = class extends x { - options; - cursor = 0; - get _selectedValue() { - return this.options[this.cursor]; - } - changeValue() { - this.value = this._selectedValue.value; - } - constructor(e2) { - super(e2, false), this.options = e2.options; - const s = this.options.findIndex(({ value: r }) => r === e2.initialValue), i = s === -1 ? 0 : s; - this.cursor = this.options[i].disabled ? B(i, 1, this.options) : i, this.changeValue(), this.on("cursor", (r) => { - switch (r) { - case "left": - case "up": - this.cursor = B(this.cursor, -1, this.options); - break; - case "down": - case "right": - this.cursor = B(this.cursor, 1, this.options); - break; - } - this.changeValue(); - }); - } -}; -var $t = class extends x { - get userInputWithCursor() { - if (this.state === "submit") return this.userInput; - const e2 = this.userInput; - if (this.cursor >= e2.length) return `${this.userInput}\u2588`; - const s = e2.slice(0, this.cursor), [i, ...r] = e2.slice(this.cursor); - return `${s}${import_picocolors.default.inverse(i)}${r.join("")}`; - } - get cursor() { - return this._cursor; - } - constructor(e2) { - super({ ...e2, initialUserInput: e2.initialUserInput ?? e2.initialValue }), this.on("userInput", (s) => { - this._setValue(s); - }), this.on("finalize", () => { - this.value || (this.value = e2.defaultValue), this.value === void 0 && (this.value = ""); - }); - } -}; - -// node_modules/@clack/prompts/dist/index.mjs -var import_picocolors2 = __toESM(require_picocolors(), 1); -import N2 from "node:process"; -var import_sisteransi2 = __toESM(require_src(), 1); -function me() { - return N2.platform !== "win32" ? N2.env.TERM !== "linux" : !!N2.env.CI || !!N2.env.WT_SESSION || !!N2.env.TERMINUS_SUBLIME || N2.env.ConEmuTask === "{cmd::Cmder}" || N2.env.TERM_PROGRAM === "Terminus-Sublime" || N2.env.TERM_PROGRAM === "vscode" || N2.env.TERM === "xterm-256color" || N2.env.TERM === "alacritty" || N2.env.TERMINAL_EMULATOR === "JetBrains-JediTerm"; -} -var et2 = me(); -var ct2 = () => process.env.CI === "true"; -var C = (t, r) => et2 ? t : r; -var Rt = C("\u25C6", "*"); -var dt2 = C("\u25A0", "x"); -var $t2 = C("\u25B2", "x"); -var V = C("\u25C7", "o"); -var ht2 = C("\u250C", "T"); -var d = C("\u2502", "|"); -var x2 = C("\u2514", "\u2014"); -var Ot = C("\u2510", "T"); -var Pt = C("\u2518", "\u2014"); -var Q2 = C("\u25CF", ">"); -var H2 = C("\u25CB", " "); -var st2 = C("\u25FB", "[\u2022]"); -var U2 = C("\u25FC", "[+]"); -var q2 = C("\u25FB", "[ ]"); -var Nt = C("\u25AA", "\u2022"); -var rt2 = C("\u2500", "-"); -var mt2 = C("\u256E", "+"); -var Wt2 = C("\u251C", "+"); -var pt2 = C("\u256F", "+"); -var gt2 = C("\u2570", "+"); -var Lt2 = C("\u256D", "+"); -var ft2 = C("\u25CF", "\u2022"); -var Ft2 = C("\u25C6", "*"); -var yt2 = C("\u25B2", "!"); -var Et2 = C("\u25A0", "x"); -var W2 = (t) => { - switch (t) { - case "initial": - case "active": - return import_picocolors2.default.cyan(Rt); - case "cancel": - return import_picocolors2.default.red(dt2); - case "error": - return import_picocolors2.default.yellow($t2); - case "submit": - return import_picocolors2.default.green(V); - } -}; -var vt2 = (t) => { - switch (t) { - case "initial": - case "active": - return import_picocolors2.default.cyan(d); - case "cancel": - return import_picocolors2.default.red(d); - case "error": - return import_picocolors2.default.yellow(d); - case "submit": - return import_picocolors2.default.green(d); - } -}; -var pe = (t) => t === 161 || t === 164 || t === 167 || t === 168 || t === 170 || t === 173 || t === 174 || t >= 176 && t <= 180 || t >= 182 && t <= 186 || t >= 188 && t <= 191 || t === 198 || t === 208 || t === 215 || t === 216 || t >= 222 && t <= 225 || t === 230 || t >= 232 && t <= 234 || t === 236 || t === 237 || t === 240 || t === 242 || t === 243 || t >= 247 && t <= 250 || t === 252 || t === 254 || t === 257 || t === 273 || t === 275 || t === 283 || t === 294 || t === 295 || t === 299 || t >= 305 && t <= 307 || t === 312 || t >= 319 && t <= 322 || t === 324 || t >= 328 && t <= 331 || t === 333 || t === 338 || t === 339 || t === 358 || t === 359 || t === 363 || t === 462 || t === 464 || t === 466 || t === 468 || t === 470 || t === 472 || t === 474 || t === 476 || t === 593 || t === 609 || t === 708 || t === 711 || t >= 713 && t <= 715 || t === 717 || t === 720 || t >= 728 && t <= 731 || t === 733 || t === 735 || t >= 768 && t <= 879 || t >= 913 && t <= 929 || t >= 931 && t <= 937 || t >= 945 && t <= 961 || t >= 963 && t <= 969 || t === 1025 || t >= 1040 && t <= 1103 || t === 1105 || t === 8208 || t >= 8211 && t <= 8214 || t === 8216 || t === 8217 || t === 8220 || t === 8221 || t >= 8224 && t <= 8226 || t >= 8228 && t <= 8231 || t === 8240 || t === 8242 || t === 8243 || t === 8245 || t === 8251 || t === 8254 || t === 8308 || t === 8319 || t >= 8321 && t <= 8324 || t === 8364 || t === 8451 || t === 8453 || t === 8457 || t === 8467 || t === 8470 || t === 8481 || t === 8482 || t === 8486 || t === 8491 || t === 8531 || t === 8532 || t >= 8539 && t <= 8542 || t >= 8544 && t <= 8555 || t >= 8560 && t <= 8569 || t === 8585 || t >= 8592 && t <= 8601 || t === 8632 || t === 8633 || t === 8658 || t === 8660 || t === 8679 || t === 8704 || t === 8706 || t === 8707 || t === 8711 || t === 8712 || t === 8715 || t === 8719 || t === 8721 || t === 8725 || t === 8730 || t >= 8733 && t <= 8736 || t === 8739 || t === 8741 || t >= 8743 && t <= 8748 || t === 8750 || t >= 8756 && t <= 8759 || t === 8764 || t === 8765 || t === 8776 || t === 8780 || t === 8786 || t === 8800 || t === 8801 || t >= 8804 && t <= 8807 || t === 8810 || t === 8811 || t === 8814 || t === 8815 || t === 8834 || t === 8835 || t === 8838 || t === 8839 || t === 8853 || t === 8857 || t === 8869 || t === 8895 || t === 8978 || t >= 9312 && t <= 9449 || t >= 9451 && t <= 9547 || t >= 9552 && t <= 9587 || t >= 9600 && t <= 9615 || t >= 9618 && t <= 9621 || t === 9632 || t === 9633 || t >= 9635 && t <= 9641 || t === 9650 || t === 9651 || t === 9654 || t === 9655 || t === 9660 || t === 9661 || t === 9664 || t === 9665 || t >= 9670 && t <= 9672 || t === 9675 || t >= 9678 && t <= 9681 || t >= 9698 && t <= 9701 || t === 9711 || t === 9733 || t === 9734 || t === 9737 || t === 9742 || t === 9743 || t === 9756 || t === 9758 || t === 9792 || t === 9794 || t === 9824 || t === 9825 || t >= 9827 && t <= 9829 || t >= 9831 && t <= 9834 || t === 9836 || t === 9837 || t === 9839 || t === 9886 || t === 9887 || t === 9919 || t >= 9926 && t <= 9933 || t >= 9935 && t <= 9939 || t >= 9941 && t <= 9953 || t === 9955 || t === 9960 || t === 9961 || t >= 9963 && t <= 9969 || t === 9972 || t >= 9974 && t <= 9977 || t === 9979 || t === 9980 || t === 9982 || t === 9983 || t === 10045 || t >= 10102 && t <= 10111 || t >= 11094 && t <= 11097 || t >= 12872 && t <= 12879 || t >= 57344 && t <= 63743 || t >= 65024 && t <= 65039 || t === 65533 || t >= 127232 && t <= 127242 || t >= 127248 && t <= 127277 || t >= 127280 && t <= 127337 || t >= 127344 && t <= 127373 || t === 127375 || t === 127376 || t >= 127387 && t <= 127404 || t >= 917760 && t <= 917999 || t >= 983040 && t <= 1048573 || t >= 1048576 && t <= 1114109; -var ge = (t) => t === 12288 || t >= 65281 && t <= 65376 || t >= 65504 && t <= 65510; -var fe = (t) => t >= 4352 && t <= 4447 || t === 8986 || t === 8987 || t === 9001 || t === 9002 || t >= 9193 && t <= 9196 || t === 9200 || t === 9203 || t === 9725 || t === 9726 || t === 9748 || t === 9749 || t >= 9800 && t <= 9811 || t === 9855 || t === 9875 || t === 9889 || t === 9898 || t === 9899 || t === 9917 || t === 9918 || t === 9924 || t === 9925 || t === 9934 || t === 9940 || t === 9962 || t === 9970 || t === 9971 || t === 9973 || t === 9978 || t === 9981 || t === 9989 || t === 9994 || t === 9995 || t === 10024 || t === 10060 || t === 10062 || t >= 10067 && t <= 10069 || t === 10071 || t >= 10133 && t <= 10135 || t === 10160 || t === 10175 || t === 11035 || t === 11036 || t === 11088 || t === 11093 || t >= 11904 && t <= 11929 || t >= 11931 && t <= 12019 || t >= 12032 && t <= 12245 || t >= 12272 && t <= 12287 || t >= 12289 && t <= 12350 || t >= 12353 && t <= 12438 || t >= 12441 && t <= 12543 || t >= 12549 && t <= 12591 || t >= 12593 && t <= 12686 || t >= 12688 && t <= 12771 || t >= 12783 && t <= 12830 || t >= 12832 && t <= 12871 || t >= 12880 && t <= 19903 || t >= 19968 && t <= 42124 || t >= 42128 && t <= 42182 || t >= 43360 && t <= 43388 || t >= 44032 && t <= 55203 || t >= 63744 && t <= 64255 || t >= 65040 && t <= 65049 || t >= 65072 && t <= 65106 || t >= 65108 && t <= 65126 || t >= 65128 && t <= 65131 || t >= 94176 && t <= 94180 || t === 94192 || t === 94193 || t >= 94208 && t <= 100343 || t >= 100352 && t <= 101589 || t >= 101632 && t <= 101640 || t >= 110576 && t <= 110579 || t >= 110581 && t <= 110587 || t === 110589 || t === 110590 || t >= 110592 && t <= 110882 || t === 110898 || t >= 110928 && t <= 110930 || t === 110933 || t >= 110948 && t <= 110951 || t >= 110960 && t <= 111355 || t === 126980 || t === 127183 || t === 127374 || t >= 127377 && t <= 127386 || t >= 127488 && t <= 127490 || t >= 127504 && t <= 127547 || t >= 127552 && t <= 127560 || t === 127568 || t === 127569 || t >= 127584 && t <= 127589 || t >= 127744 && t <= 127776 || t >= 127789 && t <= 127797 || t >= 127799 && t <= 127868 || t >= 127870 && t <= 127891 || t >= 127904 && t <= 127946 || t >= 127951 && t <= 127955 || t >= 127968 && t <= 127984 || t === 127988 || t >= 127992 && t <= 128062 || t === 128064 || t >= 128066 && t <= 128252 || t >= 128255 && t <= 128317 || t >= 128331 && t <= 128334 || t >= 128336 && t <= 128359 || t === 128378 || t === 128405 || t === 128406 || t === 128420 || t >= 128507 && t <= 128591 || t >= 128640 && t <= 128709 || t === 128716 || t >= 128720 && t <= 128722 || t >= 128725 && t <= 128727 || t >= 128732 && t <= 128735 || t === 128747 || t === 128748 || t >= 128756 && t <= 128764 || t >= 128992 && t <= 129003 || t === 129008 || t >= 129292 && t <= 129338 || t >= 129340 && t <= 129349 || t >= 129351 && t <= 129535 || t >= 129648 && t <= 129660 || t >= 129664 && t <= 129672 || t >= 129680 && t <= 129725 || t >= 129727 && t <= 129733 || t >= 129742 && t <= 129755 || t >= 129760 && t <= 129768 || t >= 129776 && t <= 129784 || t >= 131072 && t <= 196605 || t >= 196608 && t <= 262141; -var At2 = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y; -var it2 = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y; -var nt2 = /\t{1,1000}/y; -var wt = new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*", "yu"); -var at2 = /(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y; -var Fe = new RegExp("\\p{M}+", "gu"); -var ye = { limit: 1 / 0, ellipsis: "" }; -var jt = (t, r = {}, s = {}) => { - const i = r.limit ?? 1 / 0, a = r.ellipsis ?? "", o = r?.ellipsisWidth ?? (a ? jt(a, ye, s).width : 0), u = s.ansiWidth ?? 0, l = s.controlWidth ?? 0, n = s.tabWidth ?? 8, c = s.ambiguousWidth ?? 1, g = s.emojiWidth ?? 2, F = s.fullWidthWidth ?? 2, p = s.regularWidth ?? 1, E = s.wideWidth ?? 2; - let $ = 0, m = 0, h = t.length, y2 = 0, f = false, v = h, S2 = Math.max(0, i - o), I2 = 0, B2 = 0, A = 0, w = 0; - t: for (; ; ) { - if (B2 > I2 || m >= h && m > $) { - const _2 = t.slice(I2, B2) || t.slice($, m); - y2 = 0; - for (const D2 of _2.replaceAll(Fe, "")) { - const T2 = D2.codePointAt(0) || 0; - if (ge(T2) ? w = F : fe(T2) ? w = E : c !== p && pe(T2) ? w = c : w = p, A + w > S2 && (v = Math.min(v, Math.max(I2, $) + y2)), A + w > i) { - f = true; - break t; - } - y2 += D2.length, A += w; - } - I2 = B2 = 0; - } - if (m >= h) break; - if (at2.lastIndex = m, at2.test(t)) { - if (y2 = at2.lastIndex - m, w = y2 * p, A + w > S2 && (v = Math.min(v, m + Math.floor((S2 - A) / p))), A + w > i) { - f = true; - break; - } - A += w, I2 = $, B2 = m, m = $ = at2.lastIndex; - continue; - } - if (At2.lastIndex = m, At2.test(t)) { - if (A + u > S2 && (v = Math.min(v, m)), A + u > i) { - f = true; - break; - } - A += u, I2 = $, B2 = m, m = $ = At2.lastIndex; - continue; - } - if (it2.lastIndex = m, it2.test(t)) { - if (y2 = it2.lastIndex - m, w = y2 * l, A + w > S2 && (v = Math.min(v, m + Math.floor((S2 - A) / l))), A + w > i) { - f = true; - break; - } - A += w, I2 = $, B2 = m, m = $ = it2.lastIndex; - continue; - } - if (nt2.lastIndex = m, nt2.test(t)) { - if (y2 = nt2.lastIndex - m, w = y2 * n, A + w > S2 && (v = Math.min(v, m + Math.floor((S2 - A) / n))), A + w > i) { - f = true; - break; - } - A += w, I2 = $, B2 = m, m = $ = nt2.lastIndex; - continue; - } - if (wt.lastIndex = m, wt.test(t)) { - if (A + g > S2 && (v = Math.min(v, m)), A + g > i) { - f = true; - break; - } - A += g, I2 = $, B2 = m, m = $ = wt.lastIndex; - continue; - } - m += 1; - } - return { width: f ? S2 : A, index: f ? v : h, truncated: f, ellipsed: f && i >= o }; -}; -var Ee = { limit: 1 / 0, ellipsis: "", ellipsisWidth: 0 }; -var M2 = (t, r = {}) => jt(t, Ee, r).width; -var ot2 = "\x1B"; -var Gt = "\x9B"; -var ve = 39; -var Ct2 = "\x07"; -var kt2 = "["; -var Ae = "]"; -var Vt2 = "m"; -var St = `${Ae}8;;`; -var Ht = new RegExp(`(?:\\${kt2}(?\\d+)m|\\${St}(?.*)${Ct2})`, "y"); -var we = (t) => { - if (t >= 30 && t <= 37 || t >= 90 && t <= 97) return 39; - if (t >= 40 && t <= 47 || t >= 100 && t <= 107) return 49; - if (t === 1 || t === 2) return 22; - if (t === 3) return 23; - if (t === 4) return 24; - if (t === 7) return 27; - if (t === 8) return 28; - if (t === 9) return 29; - if (t === 0) return 0; -}; -var Ut = (t) => `${ot2}${kt2}${t}${Vt2}`; -var Kt = (t) => `${ot2}${St}${t}${Ct2}`; -var Ce = (t) => t.map((r) => M2(r)); -var It2 = (t, r, s) => { - const i = r[Symbol.iterator](); - let a = false, o = false, u = t.at(-1), l = u === void 0 ? 0 : M2(u), n = i.next(), c = i.next(), g = 0; - for (; !n.done; ) { - const F = n.value, p = M2(F); - l + p <= s ? t[t.length - 1] += F : (t.push(F), l = 0), (F === ot2 || F === Gt) && (a = true, o = r.startsWith(St, g + 1)), a ? o ? F === Ct2 && (a = false, o = false) : F === Vt2 && (a = false) : (l += p, l === s && !c.done && (t.push(""), l = 0)), n = c, c = i.next(), g += F.length; - } - u = t.at(-1), !l && u !== void 0 && u.length > 0 && t.length > 1 && (t[t.length - 2] += t.pop()); -}; -var Se = (t) => { - const r = t.split(" "); - let s = r.length; - for (; s > 0 && !(M2(r[s - 1]) > 0); ) s--; - return s === r.length ? t : r.slice(0, s).join(" ") + r.slice(s).join(""); -}; -var Ie = (t, r, s = {}) => { - if (s.trim !== false && t.trim() === "") return ""; - let i = "", a, o; - const u = t.split(" "), l = Ce(u); - let n = [""]; - for (const [$, m] of u.entries()) { - s.trim !== false && (n[n.length - 1] = (n.at(-1) ?? "").trimStart()); - let h = M2(n.at(-1) ?? ""); - if ($ !== 0 && (h >= r && (s.wordWrap === false || s.trim === false) && (n.push(""), h = 0), (h > 0 || s.trim === false) && (n[n.length - 1] += " ", h++)), s.hard && l[$] > r) { - const y2 = r - h, f = 1 + Math.floor((l[$] - y2 - 1) / r); - Math.floor((l[$] - 1) / r) < f && n.push(""), It2(n, m, r); - continue; - } - if (h + l[$] > r && h > 0 && l[$] > 0) { - if (s.wordWrap === false && h < r) { - It2(n, m, r); - continue; - } - n.push(""); - } - if (h + l[$] > r && s.wordWrap === false) { - It2(n, m, r); - continue; - } - n[n.length - 1] += m; - } - s.trim !== false && (n = n.map(($) => Se($))); - const c = n.join(` -`), g = c[Symbol.iterator](); - let F = g.next(), p = g.next(), E = 0; - for (; !F.done; ) { - const $ = F.value, m = p.value; - if (i += $, $ === ot2 || $ === Gt) { - Ht.lastIndex = E + 1; - const f = Ht.exec(c)?.groups; - if (f?.code !== void 0) { - const v = Number.parseFloat(f.code); - a = v === ve ? void 0 : v; - } else f?.uri !== void 0 && (o = f.uri.length === 0 ? void 0 : f.uri); - } - const h = a ? we(a) : void 0; - m === ` -` ? (o && (i += Kt("")), a && h && (i += Ut(h))) : $ === ` -` && (a && h && (i += Ut(a)), o && (i += Kt(o))), E += $.length, F = p, p = g.next(); - } - return i; -}; -function J2(t, r, s) { - return String(t).normalize().replaceAll(`\r -`, ` -`).split(` -`).map((i) => Ie(i, r, s)).join(` -`); -} -var be = (t, r, s, i, a) => { - let o = r, u = 0; - for (let l = s; l < i; l++) { - const n = t[l]; - if (o = o - n.length, u++, o <= a) break; - } - return { lineCount: o, removals: u }; -}; -var X2 = (t) => { - const { cursor: r, options: s, style: i } = t, a = t.output ?? process.stdout, o = rt(a), u = t.columnPadding ?? 0, l = t.rowPadding ?? 4, n = o - u, c = nt(a), g = import_picocolors2.default.dim("..."), F = t.maxItems ?? Number.POSITIVE_INFINITY, p = Math.max(c - l, 0), E = Math.max(Math.min(F, p), 5); - let $ = 0; - r >= E - 3 && ($ = Math.max(Math.min(r - E + 3, s.length - E), 0)); - let m = E < s.length && $ > 0, h = E < s.length && $ + E < s.length; - const y2 = Math.min($ + E, s.length), f = []; - let v = 0; - m && v++, h && v++; - const S2 = $ + (m ? 1 : 0), I2 = y2 - (h ? 1 : 0); - for (let A = S2; A < I2; A++) { - const w = J2(i(s[A], A === r), n, { hard: true, trim: false }).split(` -`); - f.push(w), v += w.length; - } - if (v > p) { - let A = 0, w = 0, _2 = v; - const D2 = r - S2, T2 = (Y, L2) => be(f, _2, Y, L2, p); - m ? ({ lineCount: _2, removals: A } = T2(0, D2), _2 > p && ({ lineCount: _2, removals: w } = T2(D2 + 1, f.length))) : ({ lineCount: _2, removals: w } = T2(D2 + 1, f.length), _2 > p && ({ lineCount: _2, removals: A } = T2(0, D2))), A > 0 && (m = true, f.splice(0, A)), w > 0 && (h = true, f.splice(f.length - w, w)); - } - const B2 = []; - m && B2.push(g); - for (const A of f) for (const w of A) B2.push(w); - return h && B2.push(g), B2; -}; -var Re = (t) => { - const r = t.active ?? "Yes", s = t.inactive ?? "No"; - return new kt({ active: r, inactive: s, signal: t.signal, input: t.input, output: t.output, initialValue: t.initialValue ?? true, render() { - const i = t.withGuide ?? _.withGuide, a = `${i ? `${import_picocolors2.default.gray(d)} -` : ""}${W2(this.state)} ${t.message} -`, o = this.value ? r : s; - switch (this.state) { - case "submit": { - const u = i ? `${import_picocolors2.default.gray(d)} ` : ""; - return `${a}${u}${import_picocolors2.default.dim(o)}`; - } - case "cancel": { - const u = i ? `${import_picocolors2.default.gray(d)} ` : ""; - return `${a}${u}${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(o))}${i ? ` -${import_picocolors2.default.gray(d)}` : ""}`; - } - default: { - const u = i ? `${import_picocolors2.default.cyan(d)} ` : "", l = i ? import_picocolors2.default.cyan(x2) : ""; - return `${a}${u}${this.value ? `${import_picocolors2.default.green(Q2)} ${r}` : `${import_picocolors2.default.dim(H2)} ${import_picocolors2.default.dim(r)}`}${t.vertical ? i ? ` -${import_picocolors2.default.cyan(d)} ` : ` -` : ` ${import_picocolors2.default.dim("/")} `}${this.value ? `${import_picocolors2.default.dim(H2)} ${import_picocolors2.default.dim(s)}` : `${import_picocolors2.default.green(Q2)} ${s}`} -${l} -`; - } - } - } }).prompt(); -}; -var R2 = { message: (t = [], { symbol: r = import_picocolors2.default.gray(d), secondarySymbol: s = import_picocolors2.default.gray(d), output: i = process.stdout, spacing: a = 1, withGuide: o } = {}) => { - const u = [], l = o ?? _.withGuide, n = l ? s : "", c = l ? `${r} ` : "", g = l ? `${s} ` : ""; - for (let p = 0; p < a; p++) u.push(n); - const F = Array.isArray(t) ? t : t.split(` -`); - if (F.length > 0) { - const [p, ...E] = F; - p.length > 0 ? u.push(`${c}${p}`) : u.push(l ? r : ""); - for (const $ of E) $.length > 0 ? u.push(`${g}${$}`) : u.push(l ? s : ""); - } - i.write(`${u.join(` -`)} -`); -}, info: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.blue(ft2) }); -}, success: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.green(Ft2) }); -}, step: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.green(V) }); -}, warn: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.yellow(yt2) }); -}, warning: (t, r) => { - R2.warn(t, r); -}, error: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.red(Et2) }); -} }; -var Ne = (t = "", r) => { - (r?.output ?? process.stdout).write(`${import_picocolors2.default.gray(x2)} ${import_picocolors2.default.red(t)} - -`); -}; -var We = (t = "", r) => { - (r?.output ?? process.stdout).write(`${import_picocolors2.default.gray(ht2)} ${t} -`); -}; -var Le = (t = "", r) => { - (r?.output ?? process.stdout).write(`${import_picocolors2.default.gray(d)} -${import_picocolors2.default.gray(x2)} ${t} - -`); -}; -var Z2 = (t, r) => t.split(` -`).map((s) => r(s)).join(` -`); -var je = (t) => { - const r = (i, a) => { - const o = i.label ?? String(i.value); - return a === "disabled" ? `${import_picocolors2.default.gray(q2)} ${Z2(o, (u) => import_picocolors2.default.strikethrough(import_picocolors2.default.gray(u)))}${i.hint ? ` ${import_picocolors2.default.dim(`(${i.hint ?? "disabled"})`)}` : ""}` : a === "active" ? `${import_picocolors2.default.cyan(st2)} ${o}${i.hint ? ` ${import_picocolors2.default.dim(`(${i.hint})`)}` : ""}` : a === "selected" ? `${import_picocolors2.default.green(U2)} ${Z2(o, import_picocolors2.default.dim)}${i.hint ? ` ${import_picocolors2.default.dim(`(${i.hint})`)}` : ""}` : a === "cancelled" ? `${Z2(o, (u) => import_picocolors2.default.strikethrough(import_picocolors2.default.dim(u)))}` : a === "active-selected" ? `${import_picocolors2.default.green(U2)} ${o}${i.hint ? ` ${import_picocolors2.default.dim(`(${i.hint})`)}` : ""}` : a === "submitted" ? `${Z2(o, import_picocolors2.default.dim)}` : `${import_picocolors2.default.dim(q2)} ${Z2(o, import_picocolors2.default.dim)}`; - }, s = t.required ?? true; - return new Lt({ options: t.options, signal: t.signal, input: t.input, output: t.output, initialValues: t.initialValues, required: s, cursorAt: t.cursorAt, validate(i) { - if (s && (i === void 0 || i.length === 0)) return `Please select at least one option. -${import_picocolors2.default.reset(import_picocolors2.default.dim(`Press ${import_picocolors2.default.gray(import_picocolors2.default.bgWhite(import_picocolors2.default.inverse(" space ")))} to select, ${import_picocolors2.default.gray(import_picocolors2.default.bgWhite(import_picocolors2.default.inverse(" enter ")))} to submit`))}`; - }, render() { - const i = xt(t.output, t.message, `${vt2(this.state)} `, `${W2(this.state)} `), a = `${import_picocolors2.default.gray(d)} -${i} -`, o = this.value ?? [], u = (l, n) => { - if (l.disabled) return r(l, "disabled"); - const c = o.includes(l.value); - return n && c ? r(l, "active-selected") : c ? r(l, "selected") : r(l, n ? "active" : "inactive"); - }; - switch (this.state) { - case "submit": { - const l = this.options.filter(({ value: c }) => o.includes(c)).map((c) => r(c, "submitted")).join(import_picocolors2.default.dim(", ")) || import_picocolors2.default.dim("none"), n = xt(t.output, l, `${import_picocolors2.default.gray(d)} `); - return `${a}${n}`; - } - case "cancel": { - const l = this.options.filter(({ value: c }) => o.includes(c)).map((c) => r(c, "cancelled")).join(import_picocolors2.default.dim(", ")); - if (l.trim() === "") return `${a}${import_picocolors2.default.gray(d)}`; - const n = xt(t.output, l, `${import_picocolors2.default.gray(d)} `); - return `${a}${n} -${import_picocolors2.default.gray(d)}`; - } - case "error": { - const l = `${import_picocolors2.default.yellow(d)} `, n = this.error.split(` -`).map((F, p) => p === 0 ? `${import_picocolors2.default.yellow(x2)} ${import_picocolors2.default.yellow(F)}` : ` ${F}`).join(` -`), c = a.split(` -`).length, g = n.split(` -`).length + 1; - return `${a}${l}${X2({ output: t.output, options: this.options, cursor: this.cursor, maxItems: t.maxItems, columnPadding: l.length, rowPadding: c + g, style: u }).join(` -${l}`)} -${n} -`; - } - default: { - const l = `${import_picocolors2.default.cyan(d)} `, n = a.split(` -`).length; - return `${a}${l}${X2({ output: t.output, options: this.options, cursor: this.cursor, maxItems: t.maxItems, columnPadding: l.length, rowPadding: n + 2, style: u }).join(` -${l}`)} -${import_picocolors2.default.cyan(x2)} -`; - } - } - } }).prompt(); -}; -var Ge = (t) => import_picocolors2.default.dim(t); -var ke = (t, r, s) => { - const i = { hard: true, trim: false }, a = J2(t, r, i).split(` -`), o = a.reduce((n, c) => Math.max(M2(c), n), 0), u = a.map(s).reduce((n, c) => Math.max(M2(c), n), 0), l = r - (u - o); - return J2(t, l, i); -}; -var Ve = (t = "", r = "", s) => { - const i = s?.output ?? N2.stdout, a = s?.withGuide ?? _.withGuide, o = s?.format ?? Ge, u = ["", ...ke(t, rt(i) - 6, o).split(` -`).map(o), ""], l = M2(r), n = Math.max(u.reduce((p, E) => { - const $ = M2(E); - return $ > p ? $ : p; - }, 0), l) + 2, c = u.map((p) => `${import_picocolors2.default.gray(d)} ${p}${" ".repeat(n - M2(p))}${import_picocolors2.default.gray(d)}`).join(` -`), g = a ? `${import_picocolors2.default.gray(d)} -` : "", F = a ? Wt2 : gt2; - i.write(`${g}${import_picocolors2.default.green(V)} ${import_picocolors2.default.reset(r)} ${import_picocolors2.default.gray(rt2.repeat(Math.max(n - l - 1, 1)) + mt2)} -${c} -${import_picocolors2.default.gray(F + rt2.repeat(n + 2) + pt2)} -`); -}; -var He = (t) => new Mt({ validate: t.validate, mask: t.mask ?? Nt, signal: t.signal, input: t.input, output: t.output, render() { - const r = t.withGuide ?? _.withGuide, s = `${r ? `${import_picocolors2.default.gray(d)} -` : ""}${W2(this.state)} ${t.message} -`, i = this.userInputWithCursor, a = this.masked; - switch (this.state) { - case "error": { - const o = r ? `${import_picocolors2.default.yellow(d)} ` : "", u = r ? `${import_picocolors2.default.yellow(x2)} ` : "", l = a ?? ""; - return t.clearOnError && this.clear(), `${s.trim()} -${o}${l} -${u}${import_picocolors2.default.yellow(this.error)} -`; - } - case "submit": { - const o = r ? `${import_picocolors2.default.gray(d)} ` : "", u = a ? import_picocolors2.default.dim(a) : ""; - return `${s}${o}${u}`; - } - case "cancel": { - const o = r ? `${import_picocolors2.default.gray(d)} ` : "", u = a ? import_picocolors2.default.strikethrough(import_picocolors2.default.dim(a)) : ""; - return `${s}${o}${u}${a && r ? ` -${import_picocolors2.default.gray(d)}` : ""}`; - } - default: { - const o = r ? `${import_picocolors2.default.cyan(d)} ` : "", u = r ? import_picocolors2.default.cyan(x2) : ""; - return `${s}${o}${i} -${u} -`; - } - } -} }).prompt(); -var Ke = import_picocolors2.default.magenta; -var bt2 = ({ indicator: t = "dots", onCancel: r, output: s = process.stdout, cancelMessage: i, errorMessage: a, frames: o = et2 ? ["\u25D2", "\u25D0", "\u25D3", "\u25D1"] : ["\u2022", "o", "O", "0"], delay: u = et2 ? 80 : 120, signal: l, ...n } = {}) => { - const c = ct2(); - let g, F, p = false, E = false, $ = "", m, h = performance.now(); - const y2 = rt(s), f = n?.styleFrame ?? Ke, v = (b) => { - const O2 = b > 1 ? a ?? _.messages.error : i ?? _.messages.cancel; - E = b === 1, p && (L2(O2, b), E && typeof r == "function" && r()); - }, S2 = () => v(2), I2 = () => v(1), B2 = () => { - process.on("uncaughtExceptionMonitor", S2), process.on("unhandledRejection", S2), process.on("SIGINT", I2), process.on("SIGTERM", I2), process.on("exit", v), l && l.addEventListener("abort", I2); - }, A = () => { - process.removeListener("uncaughtExceptionMonitor", S2), process.removeListener("unhandledRejection", S2), process.removeListener("SIGINT", I2), process.removeListener("SIGTERM", I2), process.removeListener("exit", v), l && l.removeEventListener("abort", I2); - }, w = () => { - if (m === void 0) return; - c && s.write(` -`); - const b = J2(m, y2, { hard: true, trim: false }).split(` -`); - b.length > 1 && s.write(import_sisteransi2.cursor.up(b.length - 1)), s.write(import_sisteransi2.cursor.to(0)), s.write(import_sisteransi2.erase.down()); - }, _2 = (b) => b.replace(/\.+$/, ""), D2 = (b) => { - const O2 = (performance.now() - b) / 1e3, j2 = Math.floor(O2 / 60), G2 = Math.floor(O2 % 60); - return j2 > 0 ? `[${j2}m ${G2}s]` : `[${G2}s]`; - }, T2 = n.withGuide ?? _.withGuide, Y = (b = "") => { - p = true, g = Bt({ output: s }), $ = _2(b), h = performance.now(), T2 && s.write(`${import_picocolors2.default.gray(d)} -`); - let O2 = 0, j2 = 0; - B2(), F = setInterval(() => { - if (c && $ === m) return; - w(), m = $; - const G2 = f(o[O2]); - let tt2; - if (c) tt2 = `${G2} ${$}...`; - else if (t === "timer") tt2 = `${G2} ${$} ${D2(h)}`; - else { - const te = ".".repeat(Math.floor(j2)).slice(0, 3); - tt2 = `${G2} ${$}${te}`; - } - const Zt = J2(tt2, y2, { hard: true, trim: false }); - s.write(Zt), O2 = O2 + 1 < o.length ? O2 + 1 : 0, j2 = j2 < 4 ? j2 + 0.125 : 0; - }, u); - }, L2 = (b = "", O2 = 0, j2 = false) => { - if (!p) return; - p = false, clearInterval(F), w(); - const G2 = O2 === 0 ? import_picocolors2.default.green(V) : O2 === 1 ? import_picocolors2.default.red(dt2) : import_picocolors2.default.red($t2); - $ = b ?? $, j2 || (t === "timer" ? s.write(`${G2} ${$} ${D2(h)} -`) : s.write(`${G2} ${$} -`)), A(), g(); - }; - return { start: Y, stop: (b = "") => L2(b, 0), message: (b = "") => { - $ = _2(b ?? $); - }, cancel: (b = "") => L2(b, 1), error: (b = "") => L2(b, 2), clear: () => L2("", 0, true), get isCancelled() { - return E; - } }; -}; -var zt = { light: C("\u2500", "-"), heavy: C("\u2501", "="), block: C("\u2588", "#") }; -var lt2 = (t, r) => t.includes(` -`) ? t.split(` -`).map((s) => r(s)).join(` -`) : r(t); -var Je = (t) => { - const r = (s, i) => { - const a = s.label ?? String(s.value); - switch (i) { - case "disabled": - return `${import_picocolors2.default.gray(H2)} ${lt2(a, import_picocolors2.default.gray)}${s.hint ? ` ${import_picocolors2.default.dim(`(${s.hint ?? "disabled"})`)}` : ""}`; - case "selected": - return `${lt2(a, import_picocolors2.default.dim)}`; - case "active": - return `${import_picocolors2.default.green(Q2)} ${a}${s.hint ? ` ${import_picocolors2.default.dim(`(${s.hint})`)}` : ""}`; - case "cancelled": - return `${lt2(a, (o) => import_picocolors2.default.strikethrough(import_picocolors2.default.dim(o)))}`; - default: - return `${import_picocolors2.default.dim(H2)} ${lt2(a, import_picocolors2.default.dim)}`; - } - }; - return new Wt({ options: t.options, signal: t.signal, input: t.input, output: t.output, initialValue: t.initialValue, render() { - const s = t.withGuide ?? _.withGuide, i = `${W2(this.state)} `, a = `${vt2(this.state)} `, o = xt(t.output, t.message, a, i), u = `${s ? `${import_picocolors2.default.gray(d)} -` : ""}${o} -`; - switch (this.state) { - case "submit": { - const l = s ? `${import_picocolors2.default.gray(d)} ` : "", n = xt(t.output, r(this.options[this.cursor], "selected"), l); - return `${u}${n}`; - } - case "cancel": { - const l = s ? `${import_picocolors2.default.gray(d)} ` : "", n = xt(t.output, r(this.options[this.cursor], "cancelled"), l); - return `${u}${n}${s ? ` -${import_picocolors2.default.gray(d)}` : ""}`; - } - default: { - const l = s ? `${import_picocolors2.default.cyan(d)} ` : "", n = s ? import_picocolors2.default.cyan(x2) : "", c = u.split(` -`).length, g = s ? 2 : 1; - return `${u}${l}${X2({ output: t.output, cursor: this.cursor, options: this.options, maxItems: t.maxItems, columnPadding: l.length, rowPadding: c + g, style: (F, p) => r(F, F.disabled ? "disabled" : p ? "active" : "inactive") }).join(` -${l}`)} -${n} -`; - } - } - } }).prompt(); -}; -var Qt = `${import_picocolors2.default.gray(d)} `; -var Ye = async (t, r) => { - for (const s of t) { - if (s.enabled === false) continue; - const i = bt2(r); - i.start(s.title); - const a = await s.task(i.message); - i.stop(a || s.title); - } -}; -var Ze = (t) => new $t({ validate: t.validate, placeholder: t.placeholder, defaultValue: t.defaultValue, initialValue: t.initialValue, output: t.output, signal: t.signal, input: t.input, render() { - const r = t?.withGuide ?? _.withGuide, s = `${`${r ? `${import_picocolors2.default.gray(d)} -` : ""}${W2(this.state)} `}${t.message} -`, i = t.placeholder ? import_picocolors2.default.inverse(t.placeholder[0]) + import_picocolors2.default.dim(t.placeholder.slice(1)) : import_picocolors2.default.inverse(import_picocolors2.default.hidden("_")), a = this.userInput ? this.userInputWithCursor : i, o = this.value ?? ""; - switch (this.state) { - case "error": { - const u = this.error ? ` ${import_picocolors2.default.yellow(this.error)}` : "", l = r ? `${import_picocolors2.default.yellow(d)} ` : "", n = r ? import_picocolors2.default.yellow(x2) : ""; - return `${s.trim()} -${l}${a} -${n}${u} -`; - } - case "submit": { - const u = o ? ` ${import_picocolors2.default.dim(o)}` : "", l = r ? import_picocolors2.default.gray(d) : ""; - return `${s}${l}${u}`; - } - case "cancel": { - const u = o ? ` ${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(o))}` : "", l = r ? import_picocolors2.default.gray(d) : ""; - return `${s}${l}${u}${o.trim() ? ` -${l}` : ""}`; - } - default: { - const u = r ? `${import_picocolors2.default.cyan(d)} ` : "", l = r ? import_picocolors2.default.cyan(x2) : ""; - return `${s}${u}${a} -${l} -`; - } - } -} }).prompt(); - -// src/steps/welcome.ts -var import_picocolors3 = __toESM(require_picocolors(), 1); -import { existsSync } from "fs"; - -// src/utils/system.ts -import { execSync } from "child_process"; -import { homedir } from "os"; -import { join } from "path"; -function detectOS() { - switch (process.platform) { - case "darwin": - return "macos"; - case "win32": - return "windows"; - default: - return "linux"; - } -} -function commandExists(command) { - try { - execSync(`which ${command}`, { stdio: "pipe" }); - return true; - } catch { - return false; - } -} -function runCommand(command, args = []) { - try { - const fullCommand = [command, ...args].join(" "); - const stdout = execSync(fullCommand, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }); - return { stdout: stdout.trim(), stderr: "", exitCode: 0 }; - } catch (error) { - return { - stdout: error.stdout?.toString().trim() ?? "", - stderr: error.stderr?.toString().trim() ?? "", - exitCode: error.status ?? 1 - }; - } -} -function expandHome(filepath) { - if (filepath.startsWith("~")) { - return join(homedir(), filepath.slice(1)); - } - return filepath; -} - -// src/steps/welcome.ts -async function runWelcome() { - We(import_picocolors3.default.bgCyan(import_picocolors3.default.black(" claude-mem installer "))); - R2.info(`Version: 1.0.0`); - R2.info(`Platform: ${process.platform} (${process.arch})`); - const settingsExist = existsSync(expandHome("~/.claude-mem/settings.json")); - const pluginExist = existsSync(expandHome("~/.claude/plugins/marketplaces/thedotmack/")); - const alreadyInstalled = settingsExist && pluginExist; - if (alreadyInstalled) { - R2.warn("Existing claude-mem installation detected."); - } - const installMode = await Je({ - message: "What would you like to do?", - options: alreadyInstalled ? [ - { value: "upgrade", label: "Upgrade", hint: "update to latest version" }, - { value: "configure", label: "Configure", hint: "change settings only" }, - { value: "fresh", label: "Fresh Install", hint: "reinstall from scratch" } - ] : [ - { value: "fresh", label: "Fresh Install", hint: "recommended" }, - { value: "configure", label: "Configure Only", hint: "set up settings without installing" } - ] - }); - if (Ct(installMode)) { - Ne("Installation cancelled."); - process.exit(0); - } - return installMode; -} - -// src/steps/dependencies.ts -var import_picocolors4 = __toESM(require_picocolors(), 1); - -// src/utils/dependencies.ts -import { existsSync as existsSync2 } from "fs"; -import { execSync as execSync2 } from "child_process"; -function findBinary(name, extraPaths = []) { - if (commandExists(name)) { - const result = runCommand("which", [name]); - const versionResult = runCommand(name, ["--version"]); - return { - found: true, - path: result.stdout, - version: parseVersion(versionResult.stdout) || parseVersion(versionResult.stderr) - }; - } - for (const extraPath of extraPaths) { - const fullPath = expandHome(extraPath); - if (existsSync2(fullPath)) { - const versionResult = runCommand(fullPath, ["--version"]); - return { - found: true, - path: fullPath, - version: parseVersion(versionResult.stdout) || parseVersion(versionResult.stderr) - }; - } - } - return { found: false, path: null, version: null }; -} -function parseVersion(output) { - if (!output) return null; - const match = output.match(/(\d+\.\d+(\.\d+)?)/); - return match ? match[1] : null; -} -function compareVersions(current, minimum) { - const currentParts = current.split(".").map(Number); - const minimumParts = minimum.split(".").map(Number); - for (let i = 0; i < Math.max(currentParts.length, minimumParts.length); i++) { - const a = currentParts[i] || 0; - const b = minimumParts[i] || 0; - if (a > b) return true; - if (a < b) return false; - } - return true; -} -function installBun() { - const os = detectOS(); - if (os === "windows") { - execSync2('powershell -c "irm bun.sh/install.ps1 | iex"', { stdio: "inherit" }); - } else { - execSync2("curl -fsSL https://bun.sh/install | bash", { stdio: "inherit" }); - } -} -function installUv() { - const os = detectOS(); - if (os === "windows") { - execSync2('powershell -c "irm https://astral.sh/uv/install.ps1 | iex"', { stdio: "inherit" }); - } else { - execSync2("curl -fsSL https://astral.sh/uv/install.sh | sh", { stdio: "inherit" }); - } -} - -// src/steps/dependencies.ts -var BUN_EXTRA_PATHS = ["~/.bun/bin/bun", "/usr/local/bin/bun", "/opt/homebrew/bin/bun"]; -var UV_EXTRA_PATHS = ["~/.local/bin/uv", "~/.cargo/bin/uv"]; -async function runDependencyChecks() { - const status = { - nodeOk: false, - gitOk: false, - bunOk: false, - uvOk: false, - bunPath: null, - uvPath: null - }; - await Ye([ - { - title: "Checking Node.js", - task: async () => { - const version = process.version.slice(1); - if (compareVersions(version, "18.0.0")) { - status.nodeOk = true; - return `Node.js ${process.version} ${import_picocolors4.default.green("\u2713")}`; - } - return `Node.js ${process.version} \u2014 requires >= 18.0.0 ${import_picocolors4.default.red("\u2717")}`; - } - }, - { - title: "Checking git", - task: async () => { - const info = findBinary("git"); - if (info.found) { - status.gitOk = true; - return `git ${info.version ?? ""} ${import_picocolors4.default.green("\u2713")}`; - } - return `git not found ${import_picocolors4.default.red("\u2717")}`; - } - }, - { - title: "Checking Bun", - task: async () => { - const info = findBinary("bun", BUN_EXTRA_PATHS); - if (info.found && info.version && compareVersions(info.version, "1.1.14")) { - status.bunOk = true; - status.bunPath = info.path; - return `Bun ${info.version} ${import_picocolors4.default.green("\u2713")}`; - } - if (info.found && info.version) { - return `Bun ${info.version} \u2014 requires >= 1.1.14 ${import_picocolors4.default.yellow("\u26A0")}`; - } - return `Bun not found ${import_picocolors4.default.yellow("\u26A0")}`; - } - }, - { - title: "Checking uv", - task: async () => { - const info = findBinary("uv", UV_EXTRA_PATHS); - if (info.found) { - status.uvOk = true; - status.uvPath = info.path; - return `uv ${info.version ?? ""} ${import_picocolors4.default.green("\u2713")}`; - } - return `uv not found ${import_picocolors4.default.yellow("\u26A0")}`; - } - } - ]); - if (!status.gitOk) { - const os = detectOS(); - R2.error("git is required but not found."); - if (os === "macos") { - R2.info("Install with: xcode-select --install"); - } else if (os === "linux") { - R2.info("Install with: sudo apt install git (or your distro equivalent)"); - } else { - R2.info("Download from: https://git-scm.com/downloads"); - } - Ne("Please install git and try again."); - process.exit(1); - } - if (!status.nodeOk) { - R2.error(`Node.js >= 18.0.0 is required. Current: ${process.version}`); - Ne("Please upgrade Node.js and try again."); - process.exit(1); - } - if (!status.bunOk) { - const shouldInstall = await Re({ - message: "Bun is required but not found. Install it now?", - initialValue: true - }); - if (Ct(shouldInstall)) { - Ne("Installation cancelled."); - process.exit(0); - } - if (shouldInstall) { - const s = bt2(); - s.start("Installing Bun..."); - try { - installBun(); - const recheck = findBinary("bun", BUN_EXTRA_PATHS); - if (recheck.found) { - status.bunOk = true; - status.bunPath = recheck.path; - s.stop(`Bun installed ${import_picocolors4.default.green("\u2713")}`); - } else { - s.stop(`Bun installed but not found in PATH. You may need to restart your shell.`); - } - } catch { - s.stop(`Bun installation failed. Install manually: curl -fsSL https://bun.sh/install | bash`); - } - } else { - R2.warn("Bun is required for claude-mem. Install manually: curl -fsSL https://bun.sh/install | bash"); - Ne("Cannot continue without Bun."); - process.exit(1); - } - } - if (!status.uvOk) { - const shouldInstall = await Re({ - message: "uv (Python package manager) is recommended for Chroma. Install it now?", - initialValue: true - }); - if (Ct(shouldInstall)) { - Ne("Installation cancelled."); - process.exit(0); - } - if (shouldInstall) { - const s = bt2(); - s.start("Installing uv..."); - try { - installUv(); - const recheck = findBinary("uv", UV_EXTRA_PATHS); - if (recheck.found) { - status.uvOk = true; - status.uvPath = recheck.path; - s.stop(`uv installed ${import_picocolors4.default.green("\u2713")}`); - } else { - s.stop("uv installed but not found in PATH. You may need to restart your shell."); - } - } catch { - s.stop("uv installation failed. Install manually: curl -fsSL https://astral.sh/uv/install.sh | sh"); - } - } else { - R2.warn("Skipping uv \u2014 Chroma vector search will not be available."); - } - } - return status; -} - -// src/steps/ide-selection.ts -async function runIdeSelection() { - const result = await je({ - message: "Which IDEs do you use?", - options: [ - { value: "claude-code", label: "Claude Code", hint: "recommended" }, - { value: "cursor", label: "Cursor" } - // Windsurf coming soon - not yet selectable - ], - initialValues: ["claude-code"], - required: true - }); - if (Ct(result)) { - Ne("Installation cancelled."); - process.exit(0); - } - const selectedIDEs = result; - if (selectedIDEs.includes("claude-code")) { - R2.info("Claude Code: Plugin will be registered via marketplace."); - } - if (selectedIDEs.includes("cursor")) { - R2.info("Cursor: Hooks will be configured for your projects."); - } - return selectedIDEs; -} - -// src/steps/provider.ts -async function runProviderConfiguration() { - const provider = await Je({ - message: "Which AI provider should claude-mem use for memory compression?", - options: [ - { value: "claude", label: "Claude", hint: "uses your Claude subscription" }, - { value: "gemini", label: "Gemini", hint: "free tier available" }, - { value: "openrouter", label: "OpenRouter", hint: "free models available" } - ] - }); - if (Ct(provider)) { - Ne("Installation cancelled."); - process.exit(0); - } - const config = { provider }; - if (provider === "claude") { - const authMethod = await Je({ - message: "How should Claude authenticate?", - options: [ - { value: "cli", label: "CLI (Max Plan subscription)", hint: "no API key needed" }, - { value: "api", label: "API Key", hint: "uses Anthropic API credits" } - ] - }); - if (Ct(authMethod)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.claudeAuthMethod = authMethod; - if (authMethod === "api") { - const apiKey = await He({ - message: "Enter your Anthropic API key:", - validate: (value) => { - if (!value || value.trim().length === 0) return "API key is required"; - if (!value.startsWith("sk-ant-")) return "Anthropic API keys start with sk-ant-"; - } - }); - if (Ct(apiKey)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.apiKey = apiKey; - } - } - if (provider === "gemini") { - const apiKey = await He({ - message: "Enter your Gemini API key:", - validate: (value) => { - if (!value || value.trim().length === 0) return "API key is required"; - } - }); - if (Ct(apiKey)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.apiKey = apiKey; - const model = await Je({ - message: "Which Gemini model?", - options: [ - { value: "gemini-2.5-flash-lite", label: "Gemini 2.5 Flash Lite", hint: "fastest, highest free RPM" }, - { value: "gemini-2.5-flash", label: "Gemini 2.5 Flash", hint: "balanced" }, - { value: "gemini-3-flash-preview", label: "Gemini 3 Flash Preview", hint: "latest" } - ] - }); - if (Ct(model)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.model = model; - const rateLimiting = await Re({ - message: "Enable rate limiting? (recommended for free tier)", - initialValue: true - }); - if (Ct(rateLimiting)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.rateLimitingEnabled = rateLimiting; - } - if (provider === "openrouter") { - const apiKey = await He({ - message: "Enter your OpenRouter API key:", - validate: (value) => { - if (!value || value.trim().length === 0) return "API key is required"; - } - }); - if (Ct(apiKey)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.apiKey = apiKey; - const model = await Ze({ - message: "Which OpenRouter model?", - defaultValue: "xiaomi/mimo-v2-flash:free", - placeholder: "xiaomi/mimo-v2-flash:free" - }); - if (Ct(model)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.model = model; - } - return config; -} - -// src/steps/settings.ts -var import_picocolors5 = __toESM(require_picocolors(), 1); -async function runSettingsConfiguration() { - const useDefaults = await Re({ - message: "Use default settings? (recommended for most users)", - initialValue: true - }); - if (Ct(useDefaults)) { - Ne("Installation cancelled."); - process.exit(0); - } - if (useDefaults) { - return { - workerPort: "37777", - dataDir: "~/.claude-mem", - contextObservations: "50", - logLevel: "INFO", - pythonVersion: "3.13", - chromaEnabled: true, - chromaMode: "local" - }; - } - const workerPort = await Ze({ - message: "Worker service port:", - defaultValue: "37777", - placeholder: "37777", - validate: (value = "") => { - const port = parseInt(value, 10); - if (isNaN(port) || port < 1024 || port > 65535) { - return "Port must be between 1024 and 65535"; - } - } - }); - if (Ct(workerPort)) { - Ne("Installation cancelled."); - process.exit(0); - } - const dataDir = await Ze({ - message: "Data directory:", - defaultValue: "~/.claude-mem", - placeholder: "~/.claude-mem" - }); - if (Ct(dataDir)) { - Ne("Installation cancelled."); - process.exit(0); - } - const contextObservations = await Ze({ - message: "Number of context observations per session:", - defaultValue: "50", - placeholder: "50", - validate: (value = "") => { - const num = parseInt(value, 10); - if (isNaN(num) || num < 1 || num > 200) { - return "Must be between 1 and 200"; - } - } - }); - if (Ct(contextObservations)) { - Ne("Installation cancelled."); - process.exit(0); - } - const logLevel = await Je({ - message: "Log level:", - options: [ - { value: "DEBUG", label: "DEBUG", hint: "verbose" }, - { value: "INFO", label: "INFO", hint: "default" }, - { value: "WARN", label: "WARN" }, - { value: "ERROR", label: "ERROR", hint: "errors only" } - ], - initialValue: "INFO" - }); - if (Ct(logLevel)) { - Ne("Installation cancelled."); - process.exit(0); - } - const pythonVersion = await Ze({ - message: "Python version (for Chroma):", - defaultValue: "3.13", - placeholder: "3.13" - }); - if (Ct(pythonVersion)) { - Ne("Installation cancelled."); - process.exit(0); - } - const chromaEnabled = await Re({ - message: "Enable Chroma vector search?", - initialValue: true - }); - if (Ct(chromaEnabled)) { - Ne("Installation cancelled."); - process.exit(0); - } - let chromaMode; - let chromaHost; - let chromaPort; - let chromaSsl; - if (chromaEnabled) { - const mode = await Je({ - message: "Chroma mode:", - options: [ - { value: "local", label: "Local", hint: "starts local Chroma server" }, - { value: "remote", label: "Remote", hint: "connect to existing server" } - ] - }); - if (Ct(mode)) { - Ne("Installation cancelled."); - process.exit(0); - } - chromaMode = mode; - if (mode === "remote") { - const host = await Ze({ - message: "Chroma host:", - defaultValue: "127.0.0.1", - placeholder: "127.0.0.1" - }); - if (Ct(host)) { - Ne("Installation cancelled."); - process.exit(0); - } - chromaHost = host; - const port = await Ze({ - message: "Chroma port:", - defaultValue: "8000", - placeholder: "8000", - validate: (value = "") => { - const portNum = parseInt(value, 10); - if (isNaN(portNum) || portNum < 1 || portNum > 65535) return "Port must be between 1 and 65535"; - } - }); - if (Ct(port)) { - Ne("Installation cancelled."); - process.exit(0); - } - chromaPort = port; - const ssl = await Re({ - message: "Use SSL for Chroma connection?", - initialValue: false - }); - if (Ct(ssl)) { - Ne("Installation cancelled."); - process.exit(0); - } - chromaSsl = ssl; - } - } - const config = { - workerPort, - dataDir, - contextObservations, - logLevel, - pythonVersion, - chromaEnabled, - chromaMode, - chromaHost, - chromaPort, - chromaSsl - }; - const summaryLines = [ - `Worker port: ${import_picocolors5.default.cyan(workerPort)}`, - `Data directory: ${import_picocolors5.default.cyan(dataDir)}`, - `Context observations: ${import_picocolors5.default.cyan(contextObservations)}`, - `Log level: ${import_picocolors5.default.cyan(logLevel)}`, - `Python version: ${import_picocolors5.default.cyan(pythonVersion)}`, - `Chroma: ${chromaEnabled ? import_picocolors5.default.green("enabled") : import_picocolors5.default.dim("disabled")}` - ]; - if (chromaEnabled && chromaMode) { - summaryLines.push(`Chroma mode: ${import_picocolors5.default.cyan(chromaMode)}`); - } - Ve(summaryLines.join("\n"), "Settings Summary"); - return config; -} - -// src/utils/settings-writer.ts -import { existsSync as existsSync3, mkdirSync, readFileSync, writeFileSync } from "fs"; -import { join as join2 } from "path"; -import { homedir as homedir2 } from "os"; -function expandDataDir(dataDir) { - if (dataDir.startsWith("~")) { - return join2(homedir2(), dataDir.slice(1)); - } - return dataDir; -} -function buildSettingsObject(providerConfig, settingsConfig) { - const settings = { - CLAUDE_MEM_WORKER_PORT: settingsConfig.workerPort, - CLAUDE_MEM_WORKER_HOST: "127.0.0.1", - CLAUDE_MEM_DATA_DIR: expandDataDir(settingsConfig.dataDir), - CLAUDE_MEM_CONTEXT_OBSERVATIONS: settingsConfig.contextObservations, - CLAUDE_MEM_LOG_LEVEL: settingsConfig.logLevel, - CLAUDE_MEM_PYTHON_VERSION: settingsConfig.pythonVersion, - CLAUDE_MEM_PROVIDER: providerConfig.provider - }; - if (providerConfig.provider === "claude") { - settings.CLAUDE_MEM_CLAUDE_AUTH_METHOD = providerConfig.claudeAuthMethod ?? "cli"; - } - if (providerConfig.provider === "gemini") { - if (providerConfig.apiKey) settings.CLAUDE_MEM_GEMINI_API_KEY = providerConfig.apiKey; - if (providerConfig.model) settings.CLAUDE_MEM_GEMINI_MODEL = providerConfig.model; - settings.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED = providerConfig.rateLimitingEnabled !== false ? "true" : "false"; - } - if (providerConfig.provider === "openrouter") { - if (providerConfig.apiKey) settings.CLAUDE_MEM_OPENROUTER_API_KEY = providerConfig.apiKey; - if (providerConfig.model) settings.CLAUDE_MEM_OPENROUTER_MODEL = providerConfig.model; - } - if (settingsConfig.chromaEnabled) { - settings.CLAUDE_MEM_CHROMA_MODE = settingsConfig.chromaMode ?? "local"; - if (settingsConfig.chromaMode === "remote") { - if (settingsConfig.chromaHost) settings.CLAUDE_MEM_CHROMA_HOST = settingsConfig.chromaHost; - if (settingsConfig.chromaPort) settings.CLAUDE_MEM_CHROMA_PORT = settingsConfig.chromaPort; - if (settingsConfig.chromaSsl !== void 0) settings.CLAUDE_MEM_CHROMA_SSL = String(settingsConfig.chromaSsl); - } - } - return settings; -} -function writeSettings(providerConfig, settingsConfig) { - const dataDir = expandDataDir(settingsConfig.dataDir); - const settingsPath = join2(dataDir, "settings.json"); - if (!existsSync3(dataDir)) { - mkdirSync(dataDir, { recursive: true }); - } - let existingSettings = {}; - if (existsSync3(settingsPath)) { - const raw = readFileSync(settingsPath, "utf-8"); - existingSettings = JSON.parse(raw); - } - const newSettings = buildSettingsObject(providerConfig, settingsConfig); - const merged = { ...existingSettings, ...newSettings }; - writeFileSync(settingsPath, JSON.stringify(merged, null, 2) + "\n", "utf-8"); -} - -// src/steps/install.ts -var import_picocolors6 = __toESM(require_picocolors(), 1); -import { execSync as execSync3 } from "child_process"; -import { existsSync as existsSync4, mkdirSync as mkdirSync2, readFileSync as readFileSync2, writeFileSync as writeFileSync2, cpSync } from "fs"; -import { join as join3 } from "path"; -import { homedir as homedir3, tmpdir } from "os"; -var MARKETPLACE_DIR = join3(homedir3(), ".claude", "plugins", "marketplaces", "thedotmack"); -var PLUGINS_DIR = join3(homedir3(), ".claude", "plugins"); -var CLAUDE_SETTINGS_PATH = join3(homedir3(), ".claude", "settings.json"); -function ensureDir(directoryPath) { - if (!existsSync4(directoryPath)) { - mkdirSync2(directoryPath, { recursive: true }); - } -} -function readJsonFile(filepath) { - if (!existsSync4(filepath)) return {}; - return JSON.parse(readFileSync2(filepath, "utf-8")); -} -function writeJsonFile(filepath, data) { - ensureDir(join3(filepath, "..")); - writeFileSync2(filepath, JSON.stringify(data, null, 2) + "\n", "utf-8"); -} -function registerMarketplace() { - const knownMarketplacesPath = join3(PLUGINS_DIR, "known_marketplaces.json"); - const knownMarketplaces = readJsonFile(knownMarketplacesPath); - knownMarketplaces["thedotmack"] = { - source: { - source: "github", - repo: "thedotmack/claude-mem" - }, - installLocation: MARKETPLACE_DIR, - lastUpdated: (/* @__PURE__ */ new Date()).toISOString(), - autoUpdate: true - }; - ensureDir(PLUGINS_DIR); - writeJsonFile(knownMarketplacesPath, knownMarketplaces); -} -function registerPlugin(version) { - const installedPluginsPath = join3(PLUGINS_DIR, "installed_plugins.json"); - const installedPlugins = readJsonFile(installedPluginsPath); - if (!installedPlugins.version) installedPlugins.version = 2; - if (!installedPlugins.plugins) installedPlugins.plugins = {}; - const pluginCachePath = join3(PLUGINS_DIR, "cache", "thedotmack", "claude-mem", version); - const now = (/* @__PURE__ */ new Date()).toISOString(); - installedPlugins.plugins["claude-mem@thedotmack"] = [ - { - scope: "user", - installPath: pluginCachePath, - version, - installedAt: now, - lastUpdated: now - } - ]; - writeJsonFile(installedPluginsPath, installedPlugins); - ensureDir(pluginCachePath); - const pluginSourceDir = join3(MARKETPLACE_DIR, "plugin"); - if (existsSync4(pluginSourceDir)) { - cpSync(pluginSourceDir, pluginCachePath, { recursive: true }); - } -} -function enablePluginInClaudeSettings() { - const settings = readJsonFile(CLAUDE_SETTINGS_PATH); - if (!settings.enabledPlugins) settings.enabledPlugins = {}; - settings.enabledPlugins["claude-mem@thedotmack"] = true; - writeJsonFile(CLAUDE_SETTINGS_PATH, settings); -} -function getPluginVersion() { - const pluginJsonPath = join3(MARKETPLACE_DIR, "plugin", ".claude-plugin", "plugin.json"); - if (existsSync4(pluginJsonPath)) { - const pluginJson = JSON.parse(readFileSync2(pluginJsonPath, "utf-8")); - return pluginJson.version ?? "1.0.0"; - } - return "1.0.0"; -} -async function runInstallation(selectedIDEs) { - const tempDir = join3(tmpdir(), `claude-mem-install-${Date.now()}`); - await Ye([ - { - title: "Cloning claude-mem repository", - task: async (message) => { - message("Downloading latest release..."); - execSync3( - `git clone --depth 1 https://github.com/thedotmack/claude-mem.git "${tempDir}"`, - { stdio: "pipe" } - ); - return `Repository cloned ${import_picocolors6.default.green("OK")}`; - } - }, - { - title: "Installing dependencies", - task: async (message) => { - message("Running npm install..."); - execSync3("npm install", { cwd: tempDir, stdio: "pipe" }); - return `Dependencies installed ${import_picocolors6.default.green("OK")}`; - } - }, - { - title: "Building plugin", - task: async (message) => { - message("Compiling TypeScript and bundling..."); - execSync3("npm run build", { cwd: tempDir, stdio: "pipe" }); - return `Plugin built ${import_picocolors6.default.green("OK")}`; - } - }, - { - title: "Registering plugin", - task: async (message) => { - message("Copying files to marketplace directory..."); - ensureDir(MARKETPLACE_DIR); - execSync3( - `rsync -a --delete --exclude=.git --exclude=package-lock.json --exclude=bun.lock "${tempDir}/" "${MARKETPLACE_DIR}/"`, - { stdio: "pipe" } - ); - message("Registering marketplace..."); - registerMarketplace(); - message("Installing marketplace dependencies..."); - execSync3("npm install", { cwd: MARKETPLACE_DIR, stdio: "pipe" }); - message("Registering plugin in Claude Code..."); - const version = getPluginVersion(); - registerPlugin(version); - message("Enabling plugin..."); - enablePluginInClaudeSettings(); - return `Plugin registered (v${getPluginVersion()}) ${import_picocolors6.default.green("OK")}`; - } - } - ]); - try { - execSync3(`rm -rf "${tempDir}"`, { stdio: "pipe" }); - } catch { - } - if (selectedIDEs.includes("cursor")) { - R2.info("Cursor hook configuration will be available after first launch."); - R2.info("Run: claude-mem cursor-setup (coming soon)"); - } -} - -// src/steps/worker.ts -var import_picocolors7 = __toESM(require_picocolors(), 1); -import { spawn } from "child_process"; -import { join as join4 } from "path"; -import { homedir as homedir4 } from "os"; -var MARKETPLACE_DIR2 = join4(homedir4(), ".claude", "plugins", "marketplaces", "thedotmack"); -var HEALTH_CHECK_INTERVAL_MS = 1e3; -var HEALTH_CHECK_MAX_ATTEMPTS = 30; -async function pollHealthEndpoint(port, maxAttempts = HEALTH_CHECK_MAX_ATTEMPTS) { - for (let attempt = 0; attempt < maxAttempts; attempt++) { - try { - const response = await fetch(`http://127.0.0.1:${port}/api/health`); - if (response.ok) return true; - } catch { - } - await new Promise((resolve) => setTimeout(resolve, HEALTH_CHECK_INTERVAL_MS)); - } - return false; -} -async function runWorkerStartup(workerPort, dataDir) { - const bunInfo = findBinary("bun", ["~/.bun/bin/bun", "/usr/local/bin/bun", "/opt/homebrew/bin/bun"]); - if (!bunInfo.found || !bunInfo.path) { - R2.error("Bun is required to start the worker but was not found."); - R2.info("Install Bun: curl -fsSL https://bun.sh/install | bash"); - return; - } - const workerScript = join4(MARKETPLACE_DIR2, "plugin", "scripts", "worker-service.cjs"); - const expandedDataDir = expandHome(dataDir); - const logPath = join4(expandedDataDir, "logs"); - const s = bt2(); - s.start("Starting worker service..."); - const child = spawn(bunInfo.path, [workerScript], { - cwd: MARKETPLACE_DIR2, - detached: true, - stdio: "ignore", - env: { - ...process.env, - CLAUDE_MEM_WORKER_PORT: workerPort, - CLAUDE_MEM_DATA_DIR: expandedDataDir - } - }); - child.unref(); - const workerIsHealthy = await pollHealthEndpoint(workerPort); - if (workerIsHealthy) { - s.stop(`Worker running on port ${import_picocolors7.default.cyan(workerPort)} ${import_picocolors7.default.green("OK")}`); - } else { - s.stop(`Worker may still be starting. Check logs at: ${logPath}`); - R2.warn("Health check timed out. The worker might need more time to initialize."); - R2.info(`Check status: curl http://127.0.0.1:${workerPort}/api/health`); - } -} - -// src/steps/complete.ts -var import_picocolors8 = __toESM(require_picocolors(), 1); -function getProviderLabel(config) { - switch (config.provider) { - case "claude": - return config.claudeAuthMethod === "api" ? "Claude (API Key)" : "Claude (CLI subscription)"; - case "gemini": - return `Gemini (${config.model ?? "gemini-2.5-flash-lite"})`; - case "openrouter": - return `OpenRouter (${config.model ?? "xiaomi/mimo-v2-flash:free"})`; - } -} -function getIDELabels(ides) { - return ides.map((ide) => { - switch (ide) { - case "claude-code": - return "Claude Code"; - case "cursor": - return "Cursor"; - } - }).join(", "); -} -function runCompletion(providerConfig, settingsConfig, selectedIDEs) { - const summaryLines = [ - `Provider: ${import_picocolors8.default.cyan(getProviderLabel(providerConfig))}`, - `IDEs: ${import_picocolors8.default.cyan(getIDELabels(selectedIDEs))}`, - `Data dir: ${import_picocolors8.default.cyan(settingsConfig.dataDir)}`, - `Port: ${import_picocolors8.default.cyan(settingsConfig.workerPort)}`, - `Chroma: ${settingsConfig.chromaEnabled ? import_picocolors8.default.green("enabled") : import_picocolors8.default.dim("disabled")}` - ]; - Ve(summaryLines.join("\n"), "Configuration Summary"); - const nextStepsLines = []; - if (selectedIDEs.includes("claude-code")) { - nextStepsLines.push("Open Claude Code and start a conversation \u2014 memory is automatic!"); - } - if (selectedIDEs.includes("cursor")) { - nextStepsLines.push("Open Cursor \u2014 hooks are active in your projects."); - } - nextStepsLines.push(`View your memories: ${import_picocolors8.default.underline(`http://localhost:${settingsConfig.workerPort}`)}`); - nextStepsLines.push(`Search past work: use ${import_picocolors8.default.bold("/mem-search")} in Claude Code`); - Ve(nextStepsLines.join("\n"), "Next Steps"); - Le(import_picocolors8.default.green("claude-mem installed successfully!")); -} - -// src/index.ts -async function runInstaller() { - if (!process.stdin.isTTY) { - console.error("Error: This installer requires an interactive terminal."); - console.error("Run directly: npx claude-mem-installer"); - process.exit(1); - } - const installMode = await runWelcome(); - await runDependencyChecks(); - const selectedIDEs = await runIdeSelection(); - const providerConfig = await runProviderConfiguration(); - const settingsConfig = await runSettingsConfiguration(); - writeSettings(providerConfig, settingsConfig); - R2.success("Settings saved."); - if (installMode !== "configure") { - await runInstallation(selectedIDEs); - await runWorkerStartup(settingsConfig.workerPort, settingsConfig.dataDir); - } - runCompletion(providerConfig, settingsConfig, selectedIDEs); -} -runInstaller().catch((error) => { - Ne("Installation failed."); - console.error(error); - process.exit(1); -}); +process.exit(0); diff --git a/installer/build.mjs b/installer/build.mjs deleted file mode 100644 index 6af63d50..00000000 --- a/installer/build.mjs +++ /dev/null @@ -1,16 +0,0 @@ -import { build } from 'esbuild'; - -await build({ - entryPoints: ['src/index.ts'], - bundle: true, - format: 'esm', - platform: 'node', - target: 'node18', - outfile: 'dist/index.js', - banner: { - js: '#!/usr/bin/env node', - }, - external: [], -}); - -console.log('Build complete: dist/index.js'); diff --git a/installer/dist/index.js b/installer/dist/index.js deleted file mode 100644 index 73929299..00000000 --- a/installer/dist/index.js +++ /dev/null @@ -1,2107 +0,0 @@ -#!/usr/bin/env node -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); - -// node_modules/picocolors/picocolors.js -var require_picocolors = __commonJS({ - "node_modules/picocolors/picocolors.js"(exports, module) { - var p = process || {}; - var argv = p.argv || []; - var env = p.env || {}; - var isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI); - var formatter = (open, close, replace = open) => (input) => { - let string = "" + input, index = string.indexOf(close, open.length); - return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close; - }; - var replaceClose = (string, close, replace, index) => { - let result = "", cursor = 0; - do { - result += string.substring(cursor, index) + replace; - cursor = index + close.length; - index = string.indexOf(close, cursor); - } while (~index); - return result + string.substring(cursor); - }; - var createColors = (enabled = isColorSupported) => { - let f = enabled ? formatter : () => String; - return { - isColorSupported: enabled, - reset: f("\x1B[0m", "\x1B[0m"), - bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), - dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), - italic: f("\x1B[3m", "\x1B[23m"), - underline: f("\x1B[4m", "\x1B[24m"), - inverse: f("\x1B[7m", "\x1B[27m"), - hidden: f("\x1B[8m", "\x1B[28m"), - strikethrough: f("\x1B[9m", "\x1B[29m"), - black: f("\x1B[30m", "\x1B[39m"), - red: f("\x1B[31m", "\x1B[39m"), - green: f("\x1B[32m", "\x1B[39m"), - yellow: f("\x1B[33m", "\x1B[39m"), - blue: f("\x1B[34m", "\x1B[39m"), - magenta: f("\x1B[35m", "\x1B[39m"), - cyan: f("\x1B[36m", "\x1B[39m"), - white: f("\x1B[37m", "\x1B[39m"), - gray: f("\x1B[90m", "\x1B[39m"), - bgBlack: f("\x1B[40m", "\x1B[49m"), - bgRed: f("\x1B[41m", "\x1B[49m"), - bgGreen: f("\x1B[42m", "\x1B[49m"), - bgYellow: f("\x1B[43m", "\x1B[49m"), - bgBlue: f("\x1B[44m", "\x1B[49m"), - bgMagenta: f("\x1B[45m", "\x1B[49m"), - bgCyan: f("\x1B[46m", "\x1B[49m"), - bgWhite: f("\x1B[47m", "\x1B[49m"), - blackBright: f("\x1B[90m", "\x1B[39m"), - redBright: f("\x1B[91m", "\x1B[39m"), - greenBright: f("\x1B[92m", "\x1B[39m"), - yellowBright: f("\x1B[93m", "\x1B[39m"), - blueBright: f("\x1B[94m", "\x1B[39m"), - magentaBright: f("\x1B[95m", "\x1B[39m"), - cyanBright: f("\x1B[96m", "\x1B[39m"), - whiteBright: f("\x1B[97m", "\x1B[39m"), - bgBlackBright: f("\x1B[100m", "\x1B[49m"), - bgRedBright: f("\x1B[101m", "\x1B[49m"), - bgGreenBright: f("\x1B[102m", "\x1B[49m"), - bgYellowBright: f("\x1B[103m", "\x1B[49m"), - bgBlueBright: f("\x1B[104m", "\x1B[49m"), - bgMagentaBright: f("\x1B[105m", "\x1B[49m"), - bgCyanBright: f("\x1B[106m", "\x1B[49m"), - bgWhiteBright: f("\x1B[107m", "\x1B[49m") - }; - }; - module.exports = createColors(); - module.exports.createColors = createColors; - } -}); - -// node_modules/sisteransi/src/index.js -var require_src = __commonJS({ - "node_modules/sisteransi/src/index.js"(exports, module) { - "use strict"; - var ESC = "\x1B"; - var CSI = `${ESC}[`; - var beep = "\x07"; - var cursor = { - to(x3, y2) { - if (!y2) return `${CSI}${x3 + 1}G`; - return `${CSI}${y2 + 1};${x3 + 1}H`; - }, - move(x3, y2) { - let ret = ""; - if (x3 < 0) ret += `${CSI}${-x3}D`; - else if (x3 > 0) ret += `${CSI}${x3}C`; - if (y2 < 0) ret += `${CSI}${-y2}A`; - else if (y2 > 0) ret += `${CSI}${y2}B`; - return ret; - }, - up: (count = 1) => `${CSI}${count}A`, - down: (count = 1) => `${CSI}${count}B`, - forward: (count = 1) => `${CSI}${count}C`, - backward: (count = 1) => `${CSI}${count}D`, - nextLine: (count = 1) => `${CSI}E`.repeat(count), - prevLine: (count = 1) => `${CSI}F`.repeat(count), - left: `${CSI}G`, - hide: `${CSI}?25l`, - show: `${CSI}?25h`, - save: `${ESC}7`, - restore: `${ESC}8` - }; - var scroll = { - up: (count = 1) => `${CSI}S`.repeat(count), - down: (count = 1) => `${CSI}T`.repeat(count) - }; - var erase = { - screen: `${CSI}2J`, - up: (count = 1) => `${CSI}1J`.repeat(count), - down: (count = 1) => `${CSI}J`.repeat(count), - line: `${CSI}2K`, - lineEnd: `${CSI}K`, - lineStart: `${CSI}1K`, - lines(count) { - let clear = ""; - for (let i = 0; i < count; i++) - clear += this.line + (i < count - 1 ? cursor.up() : ""); - if (count) - clear += cursor.left; - return clear; - } - }; - module.exports = { cursor, scroll, erase, beep }; - } -}); - -// node_modules/@clack/core/dist/index.mjs -var import_picocolors = __toESM(require_picocolors(), 1); -var import_sisteransi = __toESM(require_src(), 1); -import { stdout as R, stdin as q } from "node:process"; -import * as k from "node:readline"; -import ot from "node:readline"; -import { ReadStream as J } from "node:tty"; -function B(t, e2, s) { - if (!s.some((u) => !u.disabled)) return t; - const i = t + e2, r = Math.max(s.length - 1, 0), n = i < 0 ? r : i > r ? 0 : i; - return s[n].disabled ? B(n, e2 < 0 ? -1 : 1, s) : n; -} -var at = (t) => t === 161 || t === 164 || t === 167 || t === 168 || t === 170 || t === 173 || t === 174 || t >= 176 && t <= 180 || t >= 182 && t <= 186 || t >= 188 && t <= 191 || t === 198 || t === 208 || t === 215 || t === 216 || t >= 222 && t <= 225 || t === 230 || t >= 232 && t <= 234 || t === 236 || t === 237 || t === 240 || t === 242 || t === 243 || t >= 247 && t <= 250 || t === 252 || t === 254 || t === 257 || t === 273 || t === 275 || t === 283 || t === 294 || t === 295 || t === 299 || t >= 305 && t <= 307 || t === 312 || t >= 319 && t <= 322 || t === 324 || t >= 328 && t <= 331 || t === 333 || t === 338 || t === 339 || t === 358 || t === 359 || t === 363 || t === 462 || t === 464 || t === 466 || t === 468 || t === 470 || t === 472 || t === 474 || t === 476 || t === 593 || t === 609 || t === 708 || t === 711 || t >= 713 && t <= 715 || t === 717 || t === 720 || t >= 728 && t <= 731 || t === 733 || t === 735 || t >= 768 && t <= 879 || t >= 913 && t <= 929 || t >= 931 && t <= 937 || t >= 945 && t <= 961 || t >= 963 && t <= 969 || t === 1025 || t >= 1040 && t <= 1103 || t === 1105 || t === 8208 || t >= 8211 && t <= 8214 || t === 8216 || t === 8217 || t === 8220 || t === 8221 || t >= 8224 && t <= 8226 || t >= 8228 && t <= 8231 || t === 8240 || t === 8242 || t === 8243 || t === 8245 || t === 8251 || t === 8254 || t === 8308 || t === 8319 || t >= 8321 && t <= 8324 || t === 8364 || t === 8451 || t === 8453 || t === 8457 || t === 8467 || t === 8470 || t === 8481 || t === 8482 || t === 8486 || t === 8491 || t === 8531 || t === 8532 || t >= 8539 && t <= 8542 || t >= 8544 && t <= 8555 || t >= 8560 && t <= 8569 || t === 8585 || t >= 8592 && t <= 8601 || t === 8632 || t === 8633 || t === 8658 || t === 8660 || t === 8679 || t === 8704 || t === 8706 || t === 8707 || t === 8711 || t === 8712 || t === 8715 || t === 8719 || t === 8721 || t === 8725 || t === 8730 || t >= 8733 && t <= 8736 || t === 8739 || t === 8741 || t >= 8743 && t <= 8748 || t === 8750 || t >= 8756 && t <= 8759 || t === 8764 || t === 8765 || t === 8776 || t === 8780 || t === 8786 || t === 8800 || t === 8801 || t >= 8804 && t <= 8807 || t === 8810 || t === 8811 || t === 8814 || t === 8815 || t === 8834 || t === 8835 || t === 8838 || t === 8839 || t === 8853 || t === 8857 || t === 8869 || t === 8895 || t === 8978 || t >= 9312 && t <= 9449 || t >= 9451 && t <= 9547 || t >= 9552 && t <= 9587 || t >= 9600 && t <= 9615 || t >= 9618 && t <= 9621 || t === 9632 || t === 9633 || t >= 9635 && t <= 9641 || t === 9650 || t === 9651 || t === 9654 || t === 9655 || t === 9660 || t === 9661 || t === 9664 || t === 9665 || t >= 9670 && t <= 9672 || t === 9675 || t >= 9678 && t <= 9681 || t >= 9698 && t <= 9701 || t === 9711 || t === 9733 || t === 9734 || t === 9737 || t === 9742 || t === 9743 || t === 9756 || t === 9758 || t === 9792 || t === 9794 || t === 9824 || t === 9825 || t >= 9827 && t <= 9829 || t >= 9831 && t <= 9834 || t === 9836 || t === 9837 || t === 9839 || t === 9886 || t === 9887 || t === 9919 || t >= 9926 && t <= 9933 || t >= 9935 && t <= 9939 || t >= 9941 && t <= 9953 || t === 9955 || t === 9960 || t === 9961 || t >= 9963 && t <= 9969 || t === 9972 || t >= 9974 && t <= 9977 || t === 9979 || t === 9980 || t === 9982 || t === 9983 || t === 10045 || t >= 10102 && t <= 10111 || t >= 11094 && t <= 11097 || t >= 12872 && t <= 12879 || t >= 57344 && t <= 63743 || t >= 65024 && t <= 65039 || t === 65533 || t >= 127232 && t <= 127242 || t >= 127248 && t <= 127277 || t >= 127280 && t <= 127337 || t >= 127344 && t <= 127373 || t === 127375 || t === 127376 || t >= 127387 && t <= 127404 || t >= 917760 && t <= 917999 || t >= 983040 && t <= 1048573 || t >= 1048576 && t <= 1114109; -var lt = (t) => t === 12288 || t >= 65281 && t <= 65376 || t >= 65504 && t <= 65510; -var ht = (t) => t >= 4352 && t <= 4447 || t === 8986 || t === 8987 || t === 9001 || t === 9002 || t >= 9193 && t <= 9196 || t === 9200 || t === 9203 || t === 9725 || t === 9726 || t === 9748 || t === 9749 || t >= 9800 && t <= 9811 || t === 9855 || t === 9875 || t === 9889 || t === 9898 || t === 9899 || t === 9917 || t === 9918 || t === 9924 || t === 9925 || t === 9934 || t === 9940 || t === 9962 || t === 9970 || t === 9971 || t === 9973 || t === 9978 || t === 9981 || t === 9989 || t === 9994 || t === 9995 || t === 10024 || t === 10060 || t === 10062 || t >= 10067 && t <= 10069 || t === 10071 || t >= 10133 && t <= 10135 || t === 10160 || t === 10175 || t === 11035 || t === 11036 || t === 11088 || t === 11093 || t >= 11904 && t <= 11929 || t >= 11931 && t <= 12019 || t >= 12032 && t <= 12245 || t >= 12272 && t <= 12287 || t >= 12289 && t <= 12350 || t >= 12353 && t <= 12438 || t >= 12441 && t <= 12543 || t >= 12549 && t <= 12591 || t >= 12593 && t <= 12686 || t >= 12688 && t <= 12771 || t >= 12783 && t <= 12830 || t >= 12832 && t <= 12871 || t >= 12880 && t <= 19903 || t >= 19968 && t <= 42124 || t >= 42128 && t <= 42182 || t >= 43360 && t <= 43388 || t >= 44032 && t <= 55203 || t >= 63744 && t <= 64255 || t >= 65040 && t <= 65049 || t >= 65072 && t <= 65106 || t >= 65108 && t <= 65126 || t >= 65128 && t <= 65131 || t >= 94176 && t <= 94180 || t === 94192 || t === 94193 || t >= 94208 && t <= 100343 || t >= 100352 && t <= 101589 || t >= 101632 && t <= 101640 || t >= 110576 && t <= 110579 || t >= 110581 && t <= 110587 || t === 110589 || t === 110590 || t >= 110592 && t <= 110882 || t === 110898 || t >= 110928 && t <= 110930 || t === 110933 || t >= 110948 && t <= 110951 || t >= 110960 && t <= 111355 || t === 126980 || t === 127183 || t === 127374 || t >= 127377 && t <= 127386 || t >= 127488 && t <= 127490 || t >= 127504 && t <= 127547 || t >= 127552 && t <= 127560 || t === 127568 || t === 127569 || t >= 127584 && t <= 127589 || t >= 127744 && t <= 127776 || t >= 127789 && t <= 127797 || t >= 127799 && t <= 127868 || t >= 127870 && t <= 127891 || t >= 127904 && t <= 127946 || t >= 127951 && t <= 127955 || t >= 127968 && t <= 127984 || t === 127988 || t >= 127992 && t <= 128062 || t === 128064 || t >= 128066 && t <= 128252 || t >= 128255 && t <= 128317 || t >= 128331 && t <= 128334 || t >= 128336 && t <= 128359 || t === 128378 || t === 128405 || t === 128406 || t === 128420 || t >= 128507 && t <= 128591 || t >= 128640 && t <= 128709 || t === 128716 || t >= 128720 && t <= 128722 || t >= 128725 && t <= 128727 || t >= 128732 && t <= 128735 || t === 128747 || t === 128748 || t >= 128756 && t <= 128764 || t >= 128992 && t <= 129003 || t === 129008 || t >= 129292 && t <= 129338 || t >= 129340 && t <= 129349 || t >= 129351 && t <= 129535 || t >= 129648 && t <= 129660 || t >= 129664 && t <= 129672 || t >= 129680 && t <= 129725 || t >= 129727 && t <= 129733 || t >= 129742 && t <= 129755 || t >= 129760 && t <= 129768 || t >= 129776 && t <= 129784 || t >= 131072 && t <= 196605 || t >= 196608 && t <= 262141; -var O = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y; -var y = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y; -var L = /\t{1,1000}/y; -var P = new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*", "yu"); -var M = /(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y; -var ct = new RegExp("\\p{M}+", "gu"); -var ft = { limit: 1 / 0, ellipsis: "" }; -var X = (t, e2 = {}, s = {}) => { - const i = e2.limit ?? 1 / 0, r = e2.ellipsis ?? "", n = e2?.ellipsisWidth ?? (r ? X(r, ft, s).width : 0), u = s.ansiWidth ?? 0, a = s.controlWidth ?? 0, l = s.tabWidth ?? 8, E = s.ambiguousWidth ?? 1, g = s.emojiWidth ?? 2, m = s.fullWidthWidth ?? 2, A = s.regularWidth ?? 1, V2 = s.wideWidth ?? 2; - let h = 0, o = 0, p = t.length, v = 0, F = false, d2 = p, b = Math.max(0, i - n), C2 = 0, w = 0, c = 0, f = 0; - t: for (; ; ) { - if (w > C2 || o >= p && o > h) { - const ut = t.slice(C2, w) || t.slice(h, o); - v = 0; - for (const Y of ut.replaceAll(ct, "")) { - const $ = Y.codePointAt(0) || 0; - if (lt($) ? f = m : ht($) ? f = V2 : E !== A && at($) ? f = E : f = A, c + f > b && (d2 = Math.min(d2, Math.max(C2, h) + v)), c + f > i) { - F = true; - break t; - } - v += Y.length, c += f; - } - C2 = w = 0; - } - if (o >= p) break; - if (M.lastIndex = o, M.test(t)) { - if (v = M.lastIndex - o, f = v * A, c + f > b && (d2 = Math.min(d2, o + Math.floor((b - c) / A))), c + f > i) { - F = true; - break; - } - c += f, C2 = h, w = o, o = h = M.lastIndex; - continue; - } - if (O.lastIndex = o, O.test(t)) { - if (c + u > b && (d2 = Math.min(d2, o)), c + u > i) { - F = true; - break; - } - c += u, C2 = h, w = o, o = h = O.lastIndex; - continue; - } - if (y.lastIndex = o, y.test(t)) { - if (v = y.lastIndex - o, f = v * a, c + f > b && (d2 = Math.min(d2, o + Math.floor((b - c) / a))), c + f > i) { - F = true; - break; - } - c += f, C2 = h, w = o, o = h = y.lastIndex; - continue; - } - if (L.lastIndex = o, L.test(t)) { - if (v = L.lastIndex - o, f = v * l, c + f > b && (d2 = Math.min(d2, o + Math.floor((b - c) / l))), c + f > i) { - F = true; - break; - } - c += f, C2 = h, w = o, o = h = L.lastIndex; - continue; - } - if (P.lastIndex = o, P.test(t)) { - if (c + g > b && (d2 = Math.min(d2, o)), c + g > i) { - F = true; - break; - } - c += g, C2 = h, w = o, o = h = P.lastIndex; - continue; - } - o += 1; - } - return { width: F ? b : c, index: F ? d2 : p, truncated: F, ellipsed: F && i >= n }; -}; -var pt = { limit: 1 / 0, ellipsis: "", ellipsisWidth: 0 }; -var S = (t, e2 = {}) => X(t, pt, e2).width; -var W = "\x1B"; -var Z = "\x9B"; -var Ft = 39; -var j = "\x07"; -var Q = "["; -var dt = "]"; -var tt = "m"; -var U = `${dt}8;;`; -var et = new RegExp(`(?:\\${Q}(?\\d+)m|\\${U}(?.*)${j})`, "y"); -var mt = (t) => { - if (t >= 30 && t <= 37 || t >= 90 && t <= 97) return 39; - if (t >= 40 && t <= 47 || t >= 100 && t <= 107) return 49; - if (t === 1 || t === 2) return 22; - if (t === 3) return 23; - if (t === 4) return 24; - if (t === 7) return 27; - if (t === 8) return 28; - if (t === 9) return 29; - if (t === 0) return 0; -}; -var st = (t) => `${W}${Q}${t}${tt}`; -var it = (t) => `${W}${U}${t}${j}`; -var gt = (t) => t.map((e2) => S(e2)); -var G = (t, e2, s) => { - const i = e2[Symbol.iterator](); - let r = false, n = false, u = t.at(-1), a = u === void 0 ? 0 : S(u), l = i.next(), E = i.next(), g = 0; - for (; !l.done; ) { - const m = l.value, A = S(m); - a + A <= s ? t[t.length - 1] += m : (t.push(m), a = 0), (m === W || m === Z) && (r = true, n = e2.startsWith(U, g + 1)), r ? n ? m === j && (r = false, n = false) : m === tt && (r = false) : (a += A, a === s && !E.done && (t.push(""), a = 0)), l = E, E = i.next(), g += m.length; - } - u = t.at(-1), !a && u !== void 0 && u.length > 0 && t.length > 1 && (t[t.length - 2] += t.pop()); -}; -var vt = (t) => { - const e2 = t.split(" "); - let s = e2.length; - for (; s > 0 && !(S(e2[s - 1]) > 0); ) s--; - return s === e2.length ? t : e2.slice(0, s).join(" ") + e2.slice(s).join(""); -}; -var Et = (t, e2, s = {}) => { - if (s.trim !== false && t.trim() === "") return ""; - let i = "", r, n; - const u = t.split(" "), a = gt(u); - let l = [""]; - for (const [h, o] of u.entries()) { - s.trim !== false && (l[l.length - 1] = (l.at(-1) ?? "").trimStart()); - let p = S(l.at(-1) ?? ""); - if (h !== 0 && (p >= e2 && (s.wordWrap === false || s.trim === false) && (l.push(""), p = 0), (p > 0 || s.trim === false) && (l[l.length - 1] += " ", p++)), s.hard && a[h] > e2) { - const v = e2 - p, F = 1 + Math.floor((a[h] - v - 1) / e2); - Math.floor((a[h] - 1) / e2) < F && l.push(""), G(l, o, e2); - continue; - } - if (p + a[h] > e2 && p > 0 && a[h] > 0) { - if (s.wordWrap === false && p < e2) { - G(l, o, e2); - continue; - } - l.push(""); - } - if (p + a[h] > e2 && s.wordWrap === false) { - G(l, o, e2); - continue; - } - l[l.length - 1] += o; - } - s.trim !== false && (l = l.map((h) => vt(h))); - const E = l.join(` -`), g = E[Symbol.iterator](); - let m = g.next(), A = g.next(), V2 = 0; - for (; !m.done; ) { - const h = m.value, o = A.value; - if (i += h, h === W || h === Z) { - et.lastIndex = V2 + 1; - const F = et.exec(E)?.groups; - if (F?.code !== void 0) { - const d2 = Number.parseFloat(F.code); - r = d2 === Ft ? void 0 : d2; - } else F?.uri !== void 0 && (n = F.uri.length === 0 ? void 0 : F.uri); - } - const p = r ? mt(r) : void 0; - o === ` -` ? (n && (i += it("")), r && p && (i += st(p))) : h === ` -` && (r && p && (i += st(r)), n && (i += it(n))), V2 += h.length, m = A, A = g.next(); - } - return i; -}; -function K(t, e2, s) { - return String(t).normalize().replaceAll(`\r -`, ` -`).split(` -`).map((i) => Et(i, e2, s)).join(` -`); -} -var At = ["up", "down", "left", "right", "space", "enter", "cancel"]; -var _ = { actions: new Set(At), aliases: /* @__PURE__ */ new Map([["k", "up"], ["j", "down"], ["h", "left"], ["l", "right"], ["", "cancel"], ["escape", "cancel"]]), messages: { cancel: "Canceled", error: "Something went wrong" }, withGuide: true }; -function H(t, e2) { - if (typeof t == "string") return _.aliases.get(t) === e2; - for (const s of t) if (s !== void 0 && H(s, e2)) return true; - return false; -} -function _t(t, e2) { - if (t === e2) return; - const s = t.split(` -`), i = e2.split(` -`), r = Math.max(s.length, i.length), n = []; - for (let u = 0; u < r; u++) s[u] !== i[u] && n.push(u); - return { lines: n, numLinesBefore: s.length, numLinesAfter: i.length, numLines: r }; -} -var bt = globalThis.process.platform.startsWith("win"); -var z = Symbol("clack:cancel"); -function Ct(t) { - return t === z; -} -function T(t, e2) { - const s = t; - s.isTTY && s.setRawMode(e2); -} -function Bt({ input: t = q, output: e2 = R, overwrite: s = true, hideCursor: i = true } = {}) { - const r = k.createInterface({ input: t, output: e2, prompt: "", tabSize: 1 }); - k.emitKeypressEvents(t, r), t instanceof J && t.isTTY && t.setRawMode(true); - const n = (u, { name: a, sequence: l }) => { - const E = String(u); - if (H([E, a, l], "cancel")) { - i && e2.write(import_sisteransi.cursor.show), process.exit(0); - return; - } - if (!s) return; - const g = a === "return" ? 0 : -1, m = a === "return" ? -1 : 0; - k.moveCursor(e2, g, m, () => { - k.clearLine(e2, 1, () => { - t.once("keypress", n); - }); - }); - }; - return i && e2.write(import_sisteransi.cursor.hide), t.once("keypress", n), () => { - t.off("keypress", n), i && e2.write(import_sisteransi.cursor.show), t instanceof J && t.isTTY && !bt && t.setRawMode(false), r.terminal = false, r.close(); - }; -} -var rt = (t) => "columns" in t && typeof t.columns == "number" ? t.columns : 80; -var nt = (t) => "rows" in t && typeof t.rows == "number" ? t.rows : 20; -function xt(t, e2, s, i = s) { - const r = rt(t ?? R); - return K(e2, r - s.length, { hard: true, trim: false }).split(` -`).map((n, u) => `${u === 0 ? i : s}${n}`).join(` -`); -} -var x = class { - input; - output; - _abortSignal; - rl; - opts; - _render; - _track = false; - _prevFrame = ""; - _subscribers = /* @__PURE__ */ new Map(); - _cursor = 0; - state = "initial"; - error = ""; - value; - userInput = ""; - constructor(e2, s = true) { - const { input: i = q, output: r = R, render: n, signal: u, ...a } = e2; - this.opts = a, this.onKeypress = this.onKeypress.bind(this), this.close = this.close.bind(this), this.render = this.render.bind(this), this._render = n.bind(this), this._track = s, this._abortSignal = u, this.input = i, this.output = r; - } - unsubscribe() { - this._subscribers.clear(); - } - setSubscriber(e2, s) { - const i = this._subscribers.get(e2) ?? []; - i.push(s), this._subscribers.set(e2, i); - } - on(e2, s) { - this.setSubscriber(e2, { cb: s }); - } - once(e2, s) { - this.setSubscriber(e2, { cb: s, once: true }); - } - emit(e2, ...s) { - const i = this._subscribers.get(e2) ?? [], r = []; - for (const n of i) n.cb(...s), n.once && r.push(() => i.splice(i.indexOf(n), 1)); - for (const n of r) n(); - } - prompt() { - return new Promise((e2) => { - if (this._abortSignal) { - if (this._abortSignal.aborted) return this.state = "cancel", this.close(), e2(z); - this._abortSignal.addEventListener("abort", () => { - this.state = "cancel", this.close(); - }, { once: true }); - } - this.rl = ot.createInterface({ input: this.input, tabSize: 2, prompt: "", escapeCodeTimeout: 50, terminal: true }), this.rl.prompt(), this.opts.initialUserInput !== void 0 && this._setUserInput(this.opts.initialUserInput, true), this.input.on("keypress", this.onKeypress), T(this.input, true), this.output.on("resize", this.render), this.render(), this.once("submit", () => { - this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), T(this.input, false), e2(this.value); - }), this.once("cancel", () => { - this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), T(this.input, false), e2(z); - }); - }); - } - _isActionKey(e2, s) { - return e2 === " "; - } - _setValue(e2) { - this.value = e2, this.emit("value", this.value); - } - _setUserInput(e2, s) { - this.userInput = e2 ?? "", this.emit("userInput", this.userInput), s && this._track && this.rl && (this.rl.write(this.userInput), this._cursor = this.rl.cursor); - } - _clearUserInput() { - this.rl?.write(null, { ctrl: true, name: "u" }), this._setUserInput(""); - } - onKeypress(e2, s) { - if (this._track && s.name !== "return" && (s.name && this._isActionKey(e2, s) && this.rl?.write(null, { ctrl: true, name: "h" }), this._cursor = this.rl?.cursor ?? 0, this._setUserInput(this.rl?.line)), this.state === "error" && (this.state = "active"), s?.name && (!this._track && _.aliases.has(s.name) && this.emit("cursor", _.aliases.get(s.name)), _.actions.has(s.name) && this.emit("cursor", s.name)), e2 && (e2.toLowerCase() === "y" || e2.toLowerCase() === "n") && this.emit("confirm", e2.toLowerCase() === "y"), this.emit("key", e2?.toLowerCase(), s), s?.name === "return") { - if (this.opts.validate) { - const i = this.opts.validate(this.value); - i && (this.error = i instanceof Error ? i.message : i, this.state = "error", this.rl?.write(this.userInput)); - } - this.state !== "error" && (this.state = "submit"); - } - H([e2, s?.name, s?.sequence], "cancel") && (this.state = "cancel"), (this.state === "submit" || this.state === "cancel") && this.emit("finalize"), this.render(), (this.state === "submit" || this.state === "cancel") && this.close(); - } - close() { - this.input.unpipe(), this.input.removeListener("keypress", this.onKeypress), this.output.write(` -`), T(this.input, false), this.rl?.close(), this.rl = void 0, this.emit(`${this.state}`, this.value), this.unsubscribe(); - } - restoreCursor() { - const e2 = K(this._prevFrame, process.stdout.columns, { hard: true, trim: false }).split(` -`).length - 1; - this.output.write(import_sisteransi.cursor.move(-999, e2 * -1)); - } - render() { - const e2 = K(this._render(this) ?? "", process.stdout.columns, { hard: true, trim: false }); - if (e2 !== this._prevFrame) { - if (this.state === "initial") this.output.write(import_sisteransi.cursor.hide); - else { - const s = _t(this._prevFrame, e2), i = nt(this.output); - if (this.restoreCursor(), s) { - const r = Math.max(0, s.numLinesAfter - i), n = Math.max(0, s.numLinesBefore - i); - let u = s.lines.find((a) => a >= r); - if (u === void 0) { - this._prevFrame = e2; - return; - } - if (s.lines.length === 1) { - this.output.write(import_sisteransi.cursor.move(0, u - n)), this.output.write(import_sisteransi.erase.lines(1)); - const a = e2.split(` -`); - this.output.write(a[u]), this._prevFrame = e2, this.output.write(import_sisteransi.cursor.move(0, a.length - u - 1)); - return; - } else if (s.lines.length > 1) { - if (r < n) u = r; - else { - const l = u - n; - l > 0 && this.output.write(import_sisteransi.cursor.move(0, l)); - } - this.output.write(import_sisteransi.erase.down()); - const a = e2.split(` -`).slice(u); - this.output.write(a.join(` -`)), this._prevFrame = e2; - return; - } - } - this.output.write(import_sisteransi.erase.down()); - } - this.output.write(e2), this.state === "initial" && (this.state = "active"), this._prevFrame = e2; - } - } -}; -var kt = class extends x { - get cursor() { - return this.value ? 0 : 1; - } - get _value() { - return this.cursor === 0; - } - constructor(e2) { - super(e2, false), this.value = !!e2.initialValue, this.on("userInput", () => { - this.value = this._value; - }), this.on("confirm", (s) => { - this.output.write(import_sisteransi.cursor.move(0, -1)), this.value = s, this.state = "submit", this.close(); - }), this.on("cursor", () => { - this.value = !this.value; - }); - } -}; -var Lt = class extends x { - options; - cursor = 0; - get _value() { - return this.options[this.cursor].value; - } - get _enabledOptions() { - return this.options.filter((e2) => e2.disabled !== true); - } - toggleAll() { - const e2 = this._enabledOptions, s = this.value !== void 0 && this.value.length === e2.length; - this.value = s ? [] : e2.map((i) => i.value); - } - toggleInvert() { - const e2 = this.value; - if (!e2) return; - const s = this._enabledOptions.filter((i) => !e2.includes(i.value)); - this.value = s.map((i) => i.value); - } - toggleValue() { - this.value === void 0 && (this.value = []); - const e2 = this.value.includes(this._value); - this.value = e2 ? this.value.filter((s) => s !== this._value) : [...this.value, this._value]; - } - constructor(e2) { - super(e2, false), this.options = e2.options, this.value = [...e2.initialValues ?? []]; - const s = Math.max(this.options.findIndex(({ value: i }) => i === e2.cursorAt), 0); - this.cursor = this.options[s].disabled ? B(s, 1, this.options) : s, this.on("key", (i) => { - i === "a" && this.toggleAll(), i === "i" && this.toggleInvert(); - }), this.on("cursor", (i) => { - switch (i) { - case "left": - case "up": - this.cursor = B(this.cursor, -1, this.options); - break; - case "down": - case "right": - this.cursor = B(this.cursor, 1, this.options); - break; - case "space": - this.toggleValue(); - break; - } - }); - } -}; -var Mt = class extends x { - _mask = "\u2022"; - get cursor() { - return this._cursor; - } - get masked() { - return this.userInput.replaceAll(/./g, this._mask); - } - get userInputWithCursor() { - if (this.state === "submit" || this.state === "cancel") return this.masked; - const e2 = this.userInput; - if (this.cursor >= e2.length) return `${this.masked}${import_picocolors.default.inverse(import_picocolors.default.hidden("_"))}`; - const s = this.masked, i = s.slice(0, this.cursor), r = s.slice(this.cursor); - return `${i}${import_picocolors.default.inverse(r[0])}${r.slice(1)}`; - } - clear() { - this._clearUserInput(); - } - constructor({ mask: e2, ...s }) { - super(s), this._mask = e2 ?? "\u2022", this.on("userInput", (i) => { - this._setValue(i); - }); - } -}; -var Wt = class extends x { - options; - cursor = 0; - get _selectedValue() { - return this.options[this.cursor]; - } - changeValue() { - this.value = this._selectedValue.value; - } - constructor(e2) { - super(e2, false), this.options = e2.options; - const s = this.options.findIndex(({ value: r }) => r === e2.initialValue), i = s === -1 ? 0 : s; - this.cursor = this.options[i].disabled ? B(i, 1, this.options) : i, this.changeValue(), this.on("cursor", (r) => { - switch (r) { - case "left": - case "up": - this.cursor = B(this.cursor, -1, this.options); - break; - case "down": - case "right": - this.cursor = B(this.cursor, 1, this.options); - break; - } - this.changeValue(); - }); - } -}; -var $t = class extends x { - get userInputWithCursor() { - if (this.state === "submit") return this.userInput; - const e2 = this.userInput; - if (this.cursor >= e2.length) return `${this.userInput}\u2588`; - const s = e2.slice(0, this.cursor), [i, ...r] = e2.slice(this.cursor); - return `${s}${import_picocolors.default.inverse(i)}${r.join("")}`; - } - get cursor() { - return this._cursor; - } - constructor(e2) { - super({ ...e2, initialUserInput: e2.initialUserInput ?? e2.initialValue }), this.on("userInput", (s) => { - this._setValue(s); - }), this.on("finalize", () => { - this.value || (this.value = e2.defaultValue), this.value === void 0 && (this.value = ""); - }); - } -}; - -// node_modules/@clack/prompts/dist/index.mjs -var import_picocolors2 = __toESM(require_picocolors(), 1); -import N2 from "node:process"; -var import_sisteransi2 = __toESM(require_src(), 1); -function me() { - return N2.platform !== "win32" ? N2.env.TERM !== "linux" : !!N2.env.CI || !!N2.env.WT_SESSION || !!N2.env.TERMINUS_SUBLIME || N2.env.ConEmuTask === "{cmd::Cmder}" || N2.env.TERM_PROGRAM === "Terminus-Sublime" || N2.env.TERM_PROGRAM === "vscode" || N2.env.TERM === "xterm-256color" || N2.env.TERM === "alacritty" || N2.env.TERMINAL_EMULATOR === "JetBrains-JediTerm"; -} -var et2 = me(); -var ct2 = () => process.env.CI === "true"; -var C = (t, r) => et2 ? t : r; -var Rt = C("\u25C6", "*"); -var dt2 = C("\u25A0", "x"); -var $t2 = C("\u25B2", "x"); -var V = C("\u25C7", "o"); -var ht2 = C("\u250C", "T"); -var d = C("\u2502", "|"); -var x2 = C("\u2514", "\u2014"); -var Ot = C("\u2510", "T"); -var Pt = C("\u2518", "\u2014"); -var Q2 = C("\u25CF", ">"); -var H2 = C("\u25CB", " "); -var st2 = C("\u25FB", "[\u2022]"); -var U2 = C("\u25FC", "[+]"); -var q2 = C("\u25FB", "[ ]"); -var Nt = C("\u25AA", "\u2022"); -var rt2 = C("\u2500", "-"); -var mt2 = C("\u256E", "+"); -var Wt2 = C("\u251C", "+"); -var pt2 = C("\u256F", "+"); -var gt2 = C("\u2570", "+"); -var Lt2 = C("\u256D", "+"); -var ft2 = C("\u25CF", "\u2022"); -var Ft2 = C("\u25C6", "*"); -var yt2 = C("\u25B2", "!"); -var Et2 = C("\u25A0", "x"); -var W2 = (t) => { - switch (t) { - case "initial": - case "active": - return import_picocolors2.default.cyan(Rt); - case "cancel": - return import_picocolors2.default.red(dt2); - case "error": - return import_picocolors2.default.yellow($t2); - case "submit": - return import_picocolors2.default.green(V); - } -}; -var vt2 = (t) => { - switch (t) { - case "initial": - case "active": - return import_picocolors2.default.cyan(d); - case "cancel": - return import_picocolors2.default.red(d); - case "error": - return import_picocolors2.default.yellow(d); - case "submit": - return import_picocolors2.default.green(d); - } -}; -var pe = (t) => t === 161 || t === 164 || t === 167 || t === 168 || t === 170 || t === 173 || t === 174 || t >= 176 && t <= 180 || t >= 182 && t <= 186 || t >= 188 && t <= 191 || t === 198 || t === 208 || t === 215 || t === 216 || t >= 222 && t <= 225 || t === 230 || t >= 232 && t <= 234 || t === 236 || t === 237 || t === 240 || t === 242 || t === 243 || t >= 247 && t <= 250 || t === 252 || t === 254 || t === 257 || t === 273 || t === 275 || t === 283 || t === 294 || t === 295 || t === 299 || t >= 305 && t <= 307 || t === 312 || t >= 319 && t <= 322 || t === 324 || t >= 328 && t <= 331 || t === 333 || t === 338 || t === 339 || t === 358 || t === 359 || t === 363 || t === 462 || t === 464 || t === 466 || t === 468 || t === 470 || t === 472 || t === 474 || t === 476 || t === 593 || t === 609 || t === 708 || t === 711 || t >= 713 && t <= 715 || t === 717 || t === 720 || t >= 728 && t <= 731 || t === 733 || t === 735 || t >= 768 && t <= 879 || t >= 913 && t <= 929 || t >= 931 && t <= 937 || t >= 945 && t <= 961 || t >= 963 && t <= 969 || t === 1025 || t >= 1040 && t <= 1103 || t === 1105 || t === 8208 || t >= 8211 && t <= 8214 || t === 8216 || t === 8217 || t === 8220 || t === 8221 || t >= 8224 && t <= 8226 || t >= 8228 && t <= 8231 || t === 8240 || t === 8242 || t === 8243 || t === 8245 || t === 8251 || t === 8254 || t === 8308 || t === 8319 || t >= 8321 && t <= 8324 || t === 8364 || t === 8451 || t === 8453 || t === 8457 || t === 8467 || t === 8470 || t === 8481 || t === 8482 || t === 8486 || t === 8491 || t === 8531 || t === 8532 || t >= 8539 && t <= 8542 || t >= 8544 && t <= 8555 || t >= 8560 && t <= 8569 || t === 8585 || t >= 8592 && t <= 8601 || t === 8632 || t === 8633 || t === 8658 || t === 8660 || t === 8679 || t === 8704 || t === 8706 || t === 8707 || t === 8711 || t === 8712 || t === 8715 || t === 8719 || t === 8721 || t === 8725 || t === 8730 || t >= 8733 && t <= 8736 || t === 8739 || t === 8741 || t >= 8743 && t <= 8748 || t === 8750 || t >= 8756 && t <= 8759 || t === 8764 || t === 8765 || t === 8776 || t === 8780 || t === 8786 || t === 8800 || t === 8801 || t >= 8804 && t <= 8807 || t === 8810 || t === 8811 || t === 8814 || t === 8815 || t === 8834 || t === 8835 || t === 8838 || t === 8839 || t === 8853 || t === 8857 || t === 8869 || t === 8895 || t === 8978 || t >= 9312 && t <= 9449 || t >= 9451 && t <= 9547 || t >= 9552 && t <= 9587 || t >= 9600 && t <= 9615 || t >= 9618 && t <= 9621 || t === 9632 || t === 9633 || t >= 9635 && t <= 9641 || t === 9650 || t === 9651 || t === 9654 || t === 9655 || t === 9660 || t === 9661 || t === 9664 || t === 9665 || t >= 9670 && t <= 9672 || t === 9675 || t >= 9678 && t <= 9681 || t >= 9698 && t <= 9701 || t === 9711 || t === 9733 || t === 9734 || t === 9737 || t === 9742 || t === 9743 || t === 9756 || t === 9758 || t === 9792 || t === 9794 || t === 9824 || t === 9825 || t >= 9827 && t <= 9829 || t >= 9831 && t <= 9834 || t === 9836 || t === 9837 || t === 9839 || t === 9886 || t === 9887 || t === 9919 || t >= 9926 && t <= 9933 || t >= 9935 && t <= 9939 || t >= 9941 && t <= 9953 || t === 9955 || t === 9960 || t === 9961 || t >= 9963 && t <= 9969 || t === 9972 || t >= 9974 && t <= 9977 || t === 9979 || t === 9980 || t === 9982 || t === 9983 || t === 10045 || t >= 10102 && t <= 10111 || t >= 11094 && t <= 11097 || t >= 12872 && t <= 12879 || t >= 57344 && t <= 63743 || t >= 65024 && t <= 65039 || t === 65533 || t >= 127232 && t <= 127242 || t >= 127248 && t <= 127277 || t >= 127280 && t <= 127337 || t >= 127344 && t <= 127373 || t === 127375 || t === 127376 || t >= 127387 && t <= 127404 || t >= 917760 && t <= 917999 || t >= 983040 && t <= 1048573 || t >= 1048576 && t <= 1114109; -var ge = (t) => t === 12288 || t >= 65281 && t <= 65376 || t >= 65504 && t <= 65510; -var fe = (t) => t >= 4352 && t <= 4447 || t === 8986 || t === 8987 || t === 9001 || t === 9002 || t >= 9193 && t <= 9196 || t === 9200 || t === 9203 || t === 9725 || t === 9726 || t === 9748 || t === 9749 || t >= 9800 && t <= 9811 || t === 9855 || t === 9875 || t === 9889 || t === 9898 || t === 9899 || t === 9917 || t === 9918 || t === 9924 || t === 9925 || t === 9934 || t === 9940 || t === 9962 || t === 9970 || t === 9971 || t === 9973 || t === 9978 || t === 9981 || t === 9989 || t === 9994 || t === 9995 || t === 10024 || t === 10060 || t === 10062 || t >= 10067 && t <= 10069 || t === 10071 || t >= 10133 && t <= 10135 || t === 10160 || t === 10175 || t === 11035 || t === 11036 || t === 11088 || t === 11093 || t >= 11904 && t <= 11929 || t >= 11931 && t <= 12019 || t >= 12032 && t <= 12245 || t >= 12272 && t <= 12287 || t >= 12289 && t <= 12350 || t >= 12353 && t <= 12438 || t >= 12441 && t <= 12543 || t >= 12549 && t <= 12591 || t >= 12593 && t <= 12686 || t >= 12688 && t <= 12771 || t >= 12783 && t <= 12830 || t >= 12832 && t <= 12871 || t >= 12880 && t <= 19903 || t >= 19968 && t <= 42124 || t >= 42128 && t <= 42182 || t >= 43360 && t <= 43388 || t >= 44032 && t <= 55203 || t >= 63744 && t <= 64255 || t >= 65040 && t <= 65049 || t >= 65072 && t <= 65106 || t >= 65108 && t <= 65126 || t >= 65128 && t <= 65131 || t >= 94176 && t <= 94180 || t === 94192 || t === 94193 || t >= 94208 && t <= 100343 || t >= 100352 && t <= 101589 || t >= 101632 && t <= 101640 || t >= 110576 && t <= 110579 || t >= 110581 && t <= 110587 || t === 110589 || t === 110590 || t >= 110592 && t <= 110882 || t === 110898 || t >= 110928 && t <= 110930 || t === 110933 || t >= 110948 && t <= 110951 || t >= 110960 && t <= 111355 || t === 126980 || t === 127183 || t === 127374 || t >= 127377 && t <= 127386 || t >= 127488 && t <= 127490 || t >= 127504 && t <= 127547 || t >= 127552 && t <= 127560 || t === 127568 || t === 127569 || t >= 127584 && t <= 127589 || t >= 127744 && t <= 127776 || t >= 127789 && t <= 127797 || t >= 127799 && t <= 127868 || t >= 127870 && t <= 127891 || t >= 127904 && t <= 127946 || t >= 127951 && t <= 127955 || t >= 127968 && t <= 127984 || t === 127988 || t >= 127992 && t <= 128062 || t === 128064 || t >= 128066 && t <= 128252 || t >= 128255 && t <= 128317 || t >= 128331 && t <= 128334 || t >= 128336 && t <= 128359 || t === 128378 || t === 128405 || t === 128406 || t === 128420 || t >= 128507 && t <= 128591 || t >= 128640 && t <= 128709 || t === 128716 || t >= 128720 && t <= 128722 || t >= 128725 && t <= 128727 || t >= 128732 && t <= 128735 || t === 128747 || t === 128748 || t >= 128756 && t <= 128764 || t >= 128992 && t <= 129003 || t === 129008 || t >= 129292 && t <= 129338 || t >= 129340 && t <= 129349 || t >= 129351 && t <= 129535 || t >= 129648 && t <= 129660 || t >= 129664 && t <= 129672 || t >= 129680 && t <= 129725 || t >= 129727 && t <= 129733 || t >= 129742 && t <= 129755 || t >= 129760 && t <= 129768 || t >= 129776 && t <= 129784 || t >= 131072 && t <= 196605 || t >= 196608 && t <= 262141; -var At2 = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y; -var it2 = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y; -var nt2 = /\t{1,1000}/y; -var wt = new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*", "yu"); -var at2 = /(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y; -var Fe = new RegExp("\\p{M}+", "gu"); -var ye = { limit: 1 / 0, ellipsis: "" }; -var jt = (t, r = {}, s = {}) => { - const i = r.limit ?? 1 / 0, a = r.ellipsis ?? "", o = r?.ellipsisWidth ?? (a ? jt(a, ye, s).width : 0), u = s.ansiWidth ?? 0, l = s.controlWidth ?? 0, n = s.tabWidth ?? 8, c = s.ambiguousWidth ?? 1, g = s.emojiWidth ?? 2, F = s.fullWidthWidth ?? 2, p = s.regularWidth ?? 1, E = s.wideWidth ?? 2; - let $ = 0, m = 0, h = t.length, y2 = 0, f = false, v = h, S2 = Math.max(0, i - o), I2 = 0, B2 = 0, A = 0, w = 0; - t: for (; ; ) { - if (B2 > I2 || m >= h && m > $) { - const _2 = t.slice(I2, B2) || t.slice($, m); - y2 = 0; - for (const D2 of _2.replaceAll(Fe, "")) { - const T2 = D2.codePointAt(0) || 0; - if (ge(T2) ? w = F : fe(T2) ? w = E : c !== p && pe(T2) ? w = c : w = p, A + w > S2 && (v = Math.min(v, Math.max(I2, $) + y2)), A + w > i) { - f = true; - break t; - } - y2 += D2.length, A += w; - } - I2 = B2 = 0; - } - if (m >= h) break; - if (at2.lastIndex = m, at2.test(t)) { - if (y2 = at2.lastIndex - m, w = y2 * p, A + w > S2 && (v = Math.min(v, m + Math.floor((S2 - A) / p))), A + w > i) { - f = true; - break; - } - A += w, I2 = $, B2 = m, m = $ = at2.lastIndex; - continue; - } - if (At2.lastIndex = m, At2.test(t)) { - if (A + u > S2 && (v = Math.min(v, m)), A + u > i) { - f = true; - break; - } - A += u, I2 = $, B2 = m, m = $ = At2.lastIndex; - continue; - } - if (it2.lastIndex = m, it2.test(t)) { - if (y2 = it2.lastIndex - m, w = y2 * l, A + w > S2 && (v = Math.min(v, m + Math.floor((S2 - A) / l))), A + w > i) { - f = true; - break; - } - A += w, I2 = $, B2 = m, m = $ = it2.lastIndex; - continue; - } - if (nt2.lastIndex = m, nt2.test(t)) { - if (y2 = nt2.lastIndex - m, w = y2 * n, A + w > S2 && (v = Math.min(v, m + Math.floor((S2 - A) / n))), A + w > i) { - f = true; - break; - } - A += w, I2 = $, B2 = m, m = $ = nt2.lastIndex; - continue; - } - if (wt.lastIndex = m, wt.test(t)) { - if (A + g > S2 && (v = Math.min(v, m)), A + g > i) { - f = true; - break; - } - A += g, I2 = $, B2 = m, m = $ = wt.lastIndex; - continue; - } - m += 1; - } - return { width: f ? S2 : A, index: f ? v : h, truncated: f, ellipsed: f && i >= o }; -}; -var Ee = { limit: 1 / 0, ellipsis: "", ellipsisWidth: 0 }; -var M2 = (t, r = {}) => jt(t, Ee, r).width; -var ot2 = "\x1B"; -var Gt = "\x9B"; -var ve = 39; -var Ct2 = "\x07"; -var kt2 = "["; -var Ae = "]"; -var Vt2 = "m"; -var St = `${Ae}8;;`; -var Ht = new RegExp(`(?:\\${kt2}(?\\d+)m|\\${St}(?.*)${Ct2})`, "y"); -var we = (t) => { - if (t >= 30 && t <= 37 || t >= 90 && t <= 97) return 39; - if (t >= 40 && t <= 47 || t >= 100 && t <= 107) return 49; - if (t === 1 || t === 2) return 22; - if (t === 3) return 23; - if (t === 4) return 24; - if (t === 7) return 27; - if (t === 8) return 28; - if (t === 9) return 29; - if (t === 0) return 0; -}; -var Ut = (t) => `${ot2}${kt2}${t}${Vt2}`; -var Kt = (t) => `${ot2}${St}${t}${Ct2}`; -var Ce = (t) => t.map((r) => M2(r)); -var It2 = (t, r, s) => { - const i = r[Symbol.iterator](); - let a = false, o = false, u = t.at(-1), l = u === void 0 ? 0 : M2(u), n = i.next(), c = i.next(), g = 0; - for (; !n.done; ) { - const F = n.value, p = M2(F); - l + p <= s ? t[t.length - 1] += F : (t.push(F), l = 0), (F === ot2 || F === Gt) && (a = true, o = r.startsWith(St, g + 1)), a ? o ? F === Ct2 && (a = false, o = false) : F === Vt2 && (a = false) : (l += p, l === s && !c.done && (t.push(""), l = 0)), n = c, c = i.next(), g += F.length; - } - u = t.at(-1), !l && u !== void 0 && u.length > 0 && t.length > 1 && (t[t.length - 2] += t.pop()); -}; -var Se = (t) => { - const r = t.split(" "); - let s = r.length; - for (; s > 0 && !(M2(r[s - 1]) > 0); ) s--; - return s === r.length ? t : r.slice(0, s).join(" ") + r.slice(s).join(""); -}; -var Ie = (t, r, s = {}) => { - if (s.trim !== false && t.trim() === "") return ""; - let i = "", a, o; - const u = t.split(" "), l = Ce(u); - let n = [""]; - for (const [$, m] of u.entries()) { - s.trim !== false && (n[n.length - 1] = (n.at(-1) ?? "").trimStart()); - let h = M2(n.at(-1) ?? ""); - if ($ !== 0 && (h >= r && (s.wordWrap === false || s.trim === false) && (n.push(""), h = 0), (h > 0 || s.trim === false) && (n[n.length - 1] += " ", h++)), s.hard && l[$] > r) { - const y2 = r - h, f = 1 + Math.floor((l[$] - y2 - 1) / r); - Math.floor((l[$] - 1) / r) < f && n.push(""), It2(n, m, r); - continue; - } - if (h + l[$] > r && h > 0 && l[$] > 0) { - if (s.wordWrap === false && h < r) { - It2(n, m, r); - continue; - } - n.push(""); - } - if (h + l[$] > r && s.wordWrap === false) { - It2(n, m, r); - continue; - } - n[n.length - 1] += m; - } - s.trim !== false && (n = n.map(($) => Se($))); - const c = n.join(` -`), g = c[Symbol.iterator](); - let F = g.next(), p = g.next(), E = 0; - for (; !F.done; ) { - const $ = F.value, m = p.value; - if (i += $, $ === ot2 || $ === Gt) { - Ht.lastIndex = E + 1; - const f = Ht.exec(c)?.groups; - if (f?.code !== void 0) { - const v = Number.parseFloat(f.code); - a = v === ve ? void 0 : v; - } else f?.uri !== void 0 && (o = f.uri.length === 0 ? void 0 : f.uri); - } - const h = a ? we(a) : void 0; - m === ` -` ? (o && (i += Kt("")), a && h && (i += Ut(h))) : $ === ` -` && (a && h && (i += Ut(a)), o && (i += Kt(o))), E += $.length, F = p, p = g.next(); - } - return i; -}; -function J2(t, r, s) { - return String(t).normalize().replaceAll(`\r -`, ` -`).split(` -`).map((i) => Ie(i, r, s)).join(` -`); -} -var be = (t, r, s, i, a) => { - let o = r, u = 0; - for (let l = s; l < i; l++) { - const n = t[l]; - if (o = o - n.length, u++, o <= a) break; - } - return { lineCount: o, removals: u }; -}; -var X2 = (t) => { - const { cursor: r, options: s, style: i } = t, a = t.output ?? process.stdout, o = rt(a), u = t.columnPadding ?? 0, l = t.rowPadding ?? 4, n = o - u, c = nt(a), g = import_picocolors2.default.dim("..."), F = t.maxItems ?? Number.POSITIVE_INFINITY, p = Math.max(c - l, 0), E = Math.max(Math.min(F, p), 5); - let $ = 0; - r >= E - 3 && ($ = Math.max(Math.min(r - E + 3, s.length - E), 0)); - let m = E < s.length && $ > 0, h = E < s.length && $ + E < s.length; - const y2 = Math.min($ + E, s.length), f = []; - let v = 0; - m && v++, h && v++; - const S2 = $ + (m ? 1 : 0), I2 = y2 - (h ? 1 : 0); - for (let A = S2; A < I2; A++) { - const w = J2(i(s[A], A === r), n, { hard: true, trim: false }).split(` -`); - f.push(w), v += w.length; - } - if (v > p) { - let A = 0, w = 0, _2 = v; - const D2 = r - S2, T2 = (Y, L2) => be(f, _2, Y, L2, p); - m ? ({ lineCount: _2, removals: A } = T2(0, D2), _2 > p && ({ lineCount: _2, removals: w } = T2(D2 + 1, f.length))) : ({ lineCount: _2, removals: w } = T2(D2 + 1, f.length), _2 > p && ({ lineCount: _2, removals: A } = T2(0, D2))), A > 0 && (m = true, f.splice(0, A)), w > 0 && (h = true, f.splice(f.length - w, w)); - } - const B2 = []; - m && B2.push(g); - for (const A of f) for (const w of A) B2.push(w); - return h && B2.push(g), B2; -}; -var Re = (t) => { - const r = t.active ?? "Yes", s = t.inactive ?? "No"; - return new kt({ active: r, inactive: s, signal: t.signal, input: t.input, output: t.output, initialValue: t.initialValue ?? true, render() { - const i = t.withGuide ?? _.withGuide, a = `${i ? `${import_picocolors2.default.gray(d)} -` : ""}${W2(this.state)} ${t.message} -`, o = this.value ? r : s; - switch (this.state) { - case "submit": { - const u = i ? `${import_picocolors2.default.gray(d)} ` : ""; - return `${a}${u}${import_picocolors2.default.dim(o)}`; - } - case "cancel": { - const u = i ? `${import_picocolors2.default.gray(d)} ` : ""; - return `${a}${u}${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(o))}${i ? ` -${import_picocolors2.default.gray(d)}` : ""}`; - } - default: { - const u = i ? `${import_picocolors2.default.cyan(d)} ` : "", l = i ? import_picocolors2.default.cyan(x2) : ""; - return `${a}${u}${this.value ? `${import_picocolors2.default.green(Q2)} ${r}` : `${import_picocolors2.default.dim(H2)} ${import_picocolors2.default.dim(r)}`}${t.vertical ? i ? ` -${import_picocolors2.default.cyan(d)} ` : ` -` : ` ${import_picocolors2.default.dim("/")} `}${this.value ? `${import_picocolors2.default.dim(H2)} ${import_picocolors2.default.dim(s)}` : `${import_picocolors2.default.green(Q2)} ${s}`} -${l} -`; - } - } - } }).prompt(); -}; -var R2 = { message: (t = [], { symbol: r = import_picocolors2.default.gray(d), secondarySymbol: s = import_picocolors2.default.gray(d), output: i = process.stdout, spacing: a = 1, withGuide: o } = {}) => { - const u = [], l = o ?? _.withGuide, n = l ? s : "", c = l ? `${r} ` : "", g = l ? `${s} ` : ""; - for (let p = 0; p < a; p++) u.push(n); - const F = Array.isArray(t) ? t : t.split(` -`); - if (F.length > 0) { - const [p, ...E] = F; - p.length > 0 ? u.push(`${c}${p}`) : u.push(l ? r : ""); - for (const $ of E) $.length > 0 ? u.push(`${g}${$}`) : u.push(l ? s : ""); - } - i.write(`${u.join(` -`)} -`); -}, info: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.blue(ft2) }); -}, success: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.green(Ft2) }); -}, step: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.green(V) }); -}, warn: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.yellow(yt2) }); -}, warning: (t, r) => { - R2.warn(t, r); -}, error: (t, r) => { - R2.message(t, { ...r, symbol: import_picocolors2.default.red(Et2) }); -} }; -var Ne = (t = "", r) => { - (r?.output ?? process.stdout).write(`${import_picocolors2.default.gray(x2)} ${import_picocolors2.default.red(t)} - -`); -}; -var We = (t = "", r) => { - (r?.output ?? process.stdout).write(`${import_picocolors2.default.gray(ht2)} ${t} -`); -}; -var Le = (t = "", r) => { - (r?.output ?? process.stdout).write(`${import_picocolors2.default.gray(d)} -${import_picocolors2.default.gray(x2)} ${t} - -`); -}; -var Z2 = (t, r) => t.split(` -`).map((s) => r(s)).join(` -`); -var je = (t) => { - const r = (i, a) => { - const o = i.label ?? String(i.value); - return a === "disabled" ? `${import_picocolors2.default.gray(q2)} ${Z2(o, (u) => import_picocolors2.default.strikethrough(import_picocolors2.default.gray(u)))}${i.hint ? ` ${import_picocolors2.default.dim(`(${i.hint ?? "disabled"})`)}` : ""}` : a === "active" ? `${import_picocolors2.default.cyan(st2)} ${o}${i.hint ? ` ${import_picocolors2.default.dim(`(${i.hint})`)}` : ""}` : a === "selected" ? `${import_picocolors2.default.green(U2)} ${Z2(o, import_picocolors2.default.dim)}${i.hint ? ` ${import_picocolors2.default.dim(`(${i.hint})`)}` : ""}` : a === "cancelled" ? `${Z2(o, (u) => import_picocolors2.default.strikethrough(import_picocolors2.default.dim(u)))}` : a === "active-selected" ? `${import_picocolors2.default.green(U2)} ${o}${i.hint ? ` ${import_picocolors2.default.dim(`(${i.hint})`)}` : ""}` : a === "submitted" ? `${Z2(o, import_picocolors2.default.dim)}` : `${import_picocolors2.default.dim(q2)} ${Z2(o, import_picocolors2.default.dim)}`; - }, s = t.required ?? true; - return new Lt({ options: t.options, signal: t.signal, input: t.input, output: t.output, initialValues: t.initialValues, required: s, cursorAt: t.cursorAt, validate(i) { - if (s && (i === void 0 || i.length === 0)) return `Please select at least one option. -${import_picocolors2.default.reset(import_picocolors2.default.dim(`Press ${import_picocolors2.default.gray(import_picocolors2.default.bgWhite(import_picocolors2.default.inverse(" space ")))} to select, ${import_picocolors2.default.gray(import_picocolors2.default.bgWhite(import_picocolors2.default.inverse(" enter ")))} to submit`))}`; - }, render() { - const i = xt(t.output, t.message, `${vt2(this.state)} `, `${W2(this.state)} `), a = `${import_picocolors2.default.gray(d)} -${i} -`, o = this.value ?? [], u = (l, n) => { - if (l.disabled) return r(l, "disabled"); - const c = o.includes(l.value); - return n && c ? r(l, "active-selected") : c ? r(l, "selected") : r(l, n ? "active" : "inactive"); - }; - switch (this.state) { - case "submit": { - const l = this.options.filter(({ value: c }) => o.includes(c)).map((c) => r(c, "submitted")).join(import_picocolors2.default.dim(", ")) || import_picocolors2.default.dim("none"), n = xt(t.output, l, `${import_picocolors2.default.gray(d)} `); - return `${a}${n}`; - } - case "cancel": { - const l = this.options.filter(({ value: c }) => o.includes(c)).map((c) => r(c, "cancelled")).join(import_picocolors2.default.dim(", ")); - if (l.trim() === "") return `${a}${import_picocolors2.default.gray(d)}`; - const n = xt(t.output, l, `${import_picocolors2.default.gray(d)} `); - return `${a}${n} -${import_picocolors2.default.gray(d)}`; - } - case "error": { - const l = `${import_picocolors2.default.yellow(d)} `, n = this.error.split(` -`).map((F, p) => p === 0 ? `${import_picocolors2.default.yellow(x2)} ${import_picocolors2.default.yellow(F)}` : ` ${F}`).join(` -`), c = a.split(` -`).length, g = n.split(` -`).length + 1; - return `${a}${l}${X2({ output: t.output, options: this.options, cursor: this.cursor, maxItems: t.maxItems, columnPadding: l.length, rowPadding: c + g, style: u }).join(` -${l}`)} -${n} -`; - } - default: { - const l = `${import_picocolors2.default.cyan(d)} `, n = a.split(` -`).length; - return `${a}${l}${X2({ output: t.output, options: this.options, cursor: this.cursor, maxItems: t.maxItems, columnPadding: l.length, rowPadding: n + 2, style: u }).join(` -${l}`)} -${import_picocolors2.default.cyan(x2)} -`; - } - } - } }).prompt(); -}; -var Ge = (t) => import_picocolors2.default.dim(t); -var ke = (t, r, s) => { - const i = { hard: true, trim: false }, a = J2(t, r, i).split(` -`), o = a.reduce((n, c) => Math.max(M2(c), n), 0), u = a.map(s).reduce((n, c) => Math.max(M2(c), n), 0), l = r - (u - o); - return J2(t, l, i); -}; -var Ve = (t = "", r = "", s) => { - const i = s?.output ?? N2.stdout, a = s?.withGuide ?? _.withGuide, o = s?.format ?? Ge, u = ["", ...ke(t, rt(i) - 6, o).split(` -`).map(o), ""], l = M2(r), n = Math.max(u.reduce((p, E) => { - const $ = M2(E); - return $ > p ? $ : p; - }, 0), l) + 2, c = u.map((p) => `${import_picocolors2.default.gray(d)} ${p}${" ".repeat(n - M2(p))}${import_picocolors2.default.gray(d)}`).join(` -`), g = a ? `${import_picocolors2.default.gray(d)} -` : "", F = a ? Wt2 : gt2; - i.write(`${g}${import_picocolors2.default.green(V)} ${import_picocolors2.default.reset(r)} ${import_picocolors2.default.gray(rt2.repeat(Math.max(n - l - 1, 1)) + mt2)} -${c} -${import_picocolors2.default.gray(F + rt2.repeat(n + 2) + pt2)} -`); -}; -var He = (t) => new Mt({ validate: t.validate, mask: t.mask ?? Nt, signal: t.signal, input: t.input, output: t.output, render() { - const r = t.withGuide ?? _.withGuide, s = `${r ? `${import_picocolors2.default.gray(d)} -` : ""}${W2(this.state)} ${t.message} -`, i = this.userInputWithCursor, a = this.masked; - switch (this.state) { - case "error": { - const o = r ? `${import_picocolors2.default.yellow(d)} ` : "", u = r ? `${import_picocolors2.default.yellow(x2)} ` : "", l = a ?? ""; - return t.clearOnError && this.clear(), `${s.trim()} -${o}${l} -${u}${import_picocolors2.default.yellow(this.error)} -`; - } - case "submit": { - const o = r ? `${import_picocolors2.default.gray(d)} ` : "", u = a ? import_picocolors2.default.dim(a) : ""; - return `${s}${o}${u}`; - } - case "cancel": { - const o = r ? `${import_picocolors2.default.gray(d)} ` : "", u = a ? import_picocolors2.default.strikethrough(import_picocolors2.default.dim(a)) : ""; - return `${s}${o}${u}${a && r ? ` -${import_picocolors2.default.gray(d)}` : ""}`; - } - default: { - const o = r ? `${import_picocolors2.default.cyan(d)} ` : "", u = r ? import_picocolors2.default.cyan(x2) : ""; - return `${s}${o}${i} -${u} -`; - } - } -} }).prompt(); -var Ke = import_picocolors2.default.magenta; -var bt2 = ({ indicator: t = "dots", onCancel: r, output: s = process.stdout, cancelMessage: i, errorMessage: a, frames: o = et2 ? ["\u25D2", "\u25D0", "\u25D3", "\u25D1"] : ["\u2022", "o", "O", "0"], delay: u = et2 ? 80 : 120, signal: l, ...n } = {}) => { - const c = ct2(); - let g, F, p = false, E = false, $ = "", m, h = performance.now(); - const y2 = rt(s), f = n?.styleFrame ?? Ke, v = (b) => { - const O2 = b > 1 ? a ?? _.messages.error : i ?? _.messages.cancel; - E = b === 1, p && (L2(O2, b), E && typeof r == "function" && r()); - }, S2 = () => v(2), I2 = () => v(1), B2 = () => { - process.on("uncaughtExceptionMonitor", S2), process.on("unhandledRejection", S2), process.on("SIGINT", I2), process.on("SIGTERM", I2), process.on("exit", v), l && l.addEventListener("abort", I2); - }, A = () => { - process.removeListener("uncaughtExceptionMonitor", S2), process.removeListener("unhandledRejection", S2), process.removeListener("SIGINT", I2), process.removeListener("SIGTERM", I2), process.removeListener("exit", v), l && l.removeEventListener("abort", I2); - }, w = () => { - if (m === void 0) return; - c && s.write(` -`); - const b = J2(m, y2, { hard: true, trim: false }).split(` -`); - b.length > 1 && s.write(import_sisteransi2.cursor.up(b.length - 1)), s.write(import_sisteransi2.cursor.to(0)), s.write(import_sisteransi2.erase.down()); - }, _2 = (b) => b.replace(/\.+$/, ""), D2 = (b) => { - const O2 = (performance.now() - b) / 1e3, j2 = Math.floor(O2 / 60), G2 = Math.floor(O2 % 60); - return j2 > 0 ? `[${j2}m ${G2}s]` : `[${G2}s]`; - }, T2 = n.withGuide ?? _.withGuide, Y = (b = "") => { - p = true, g = Bt({ output: s }), $ = _2(b), h = performance.now(), T2 && s.write(`${import_picocolors2.default.gray(d)} -`); - let O2 = 0, j2 = 0; - B2(), F = setInterval(() => { - if (c && $ === m) return; - w(), m = $; - const G2 = f(o[O2]); - let tt2; - if (c) tt2 = `${G2} ${$}...`; - else if (t === "timer") tt2 = `${G2} ${$} ${D2(h)}`; - else { - const te = ".".repeat(Math.floor(j2)).slice(0, 3); - tt2 = `${G2} ${$}${te}`; - } - const Zt = J2(tt2, y2, { hard: true, trim: false }); - s.write(Zt), O2 = O2 + 1 < o.length ? O2 + 1 : 0, j2 = j2 < 4 ? j2 + 0.125 : 0; - }, u); - }, L2 = (b = "", O2 = 0, j2 = false) => { - if (!p) return; - p = false, clearInterval(F), w(); - const G2 = O2 === 0 ? import_picocolors2.default.green(V) : O2 === 1 ? import_picocolors2.default.red(dt2) : import_picocolors2.default.red($t2); - $ = b ?? $, j2 || (t === "timer" ? s.write(`${G2} ${$} ${D2(h)} -`) : s.write(`${G2} ${$} -`)), A(), g(); - }; - return { start: Y, stop: (b = "") => L2(b, 0), message: (b = "") => { - $ = _2(b ?? $); - }, cancel: (b = "") => L2(b, 1), error: (b = "") => L2(b, 2), clear: () => L2("", 0, true), get isCancelled() { - return E; - } }; -}; -var zt = { light: C("\u2500", "-"), heavy: C("\u2501", "="), block: C("\u2588", "#") }; -var lt2 = (t, r) => t.includes(` -`) ? t.split(` -`).map((s) => r(s)).join(` -`) : r(t); -var Je = (t) => { - const r = (s, i) => { - const a = s.label ?? String(s.value); - switch (i) { - case "disabled": - return `${import_picocolors2.default.gray(H2)} ${lt2(a, import_picocolors2.default.gray)}${s.hint ? ` ${import_picocolors2.default.dim(`(${s.hint ?? "disabled"})`)}` : ""}`; - case "selected": - return `${lt2(a, import_picocolors2.default.dim)}`; - case "active": - return `${import_picocolors2.default.green(Q2)} ${a}${s.hint ? ` ${import_picocolors2.default.dim(`(${s.hint})`)}` : ""}`; - case "cancelled": - return `${lt2(a, (o) => import_picocolors2.default.strikethrough(import_picocolors2.default.dim(o)))}`; - default: - return `${import_picocolors2.default.dim(H2)} ${lt2(a, import_picocolors2.default.dim)}`; - } - }; - return new Wt({ options: t.options, signal: t.signal, input: t.input, output: t.output, initialValue: t.initialValue, render() { - const s = t.withGuide ?? _.withGuide, i = `${W2(this.state)} `, a = `${vt2(this.state)} `, o = xt(t.output, t.message, a, i), u = `${s ? `${import_picocolors2.default.gray(d)} -` : ""}${o} -`; - switch (this.state) { - case "submit": { - const l = s ? `${import_picocolors2.default.gray(d)} ` : "", n = xt(t.output, r(this.options[this.cursor], "selected"), l); - return `${u}${n}`; - } - case "cancel": { - const l = s ? `${import_picocolors2.default.gray(d)} ` : "", n = xt(t.output, r(this.options[this.cursor], "cancelled"), l); - return `${u}${n}${s ? ` -${import_picocolors2.default.gray(d)}` : ""}`; - } - default: { - const l = s ? `${import_picocolors2.default.cyan(d)} ` : "", n = s ? import_picocolors2.default.cyan(x2) : "", c = u.split(` -`).length, g = s ? 2 : 1; - return `${u}${l}${X2({ output: t.output, cursor: this.cursor, options: this.options, maxItems: t.maxItems, columnPadding: l.length, rowPadding: c + g, style: (F, p) => r(F, F.disabled ? "disabled" : p ? "active" : "inactive") }).join(` -${l}`)} -${n} -`; - } - } - } }).prompt(); -}; -var Qt = `${import_picocolors2.default.gray(d)} `; -var Ye = async (t, r) => { - for (const s of t) { - if (s.enabled === false) continue; - const i = bt2(r); - i.start(s.title); - const a = await s.task(i.message); - i.stop(a || s.title); - } -}; -var Ze = (t) => new $t({ validate: t.validate, placeholder: t.placeholder, defaultValue: t.defaultValue, initialValue: t.initialValue, output: t.output, signal: t.signal, input: t.input, render() { - const r = t?.withGuide ?? _.withGuide, s = `${`${r ? `${import_picocolors2.default.gray(d)} -` : ""}${W2(this.state)} `}${t.message} -`, i = t.placeholder ? import_picocolors2.default.inverse(t.placeholder[0]) + import_picocolors2.default.dim(t.placeholder.slice(1)) : import_picocolors2.default.inverse(import_picocolors2.default.hidden("_")), a = this.userInput ? this.userInputWithCursor : i, o = this.value ?? ""; - switch (this.state) { - case "error": { - const u = this.error ? ` ${import_picocolors2.default.yellow(this.error)}` : "", l = r ? `${import_picocolors2.default.yellow(d)} ` : "", n = r ? import_picocolors2.default.yellow(x2) : ""; - return `${s.trim()} -${l}${a} -${n}${u} -`; - } - case "submit": { - const u = o ? ` ${import_picocolors2.default.dim(o)}` : "", l = r ? import_picocolors2.default.gray(d) : ""; - return `${s}${l}${u}`; - } - case "cancel": { - const u = o ? ` ${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(o))}` : "", l = r ? import_picocolors2.default.gray(d) : ""; - return `${s}${l}${u}${o.trim() ? ` -${l}` : ""}`; - } - default: { - const u = r ? `${import_picocolors2.default.cyan(d)} ` : "", l = r ? import_picocolors2.default.cyan(x2) : ""; - return `${s}${u}${a} -${l} -`; - } - } -} }).prompt(); - -// src/steps/welcome.ts -var import_picocolors3 = __toESM(require_picocolors(), 1); -import { existsSync } from "fs"; - -// src/utils/system.ts -import { execSync } from "child_process"; -import { homedir } from "os"; -import { join } from "path"; -function detectOS() { - switch (process.platform) { - case "darwin": - return "macos"; - case "win32": - return "windows"; - default: - return "linux"; - } -} -function commandExists(command) { - try { - execSync(`which ${command}`, { stdio: "pipe" }); - return true; - } catch { - return false; - } -} -function runCommand(command, args = []) { - try { - const fullCommand = [command, ...args].join(" "); - const stdout = execSync(fullCommand, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }); - return { stdout: stdout.trim(), stderr: "", exitCode: 0 }; - } catch (error) { - return { - stdout: error.stdout?.toString().trim() ?? "", - stderr: error.stderr?.toString().trim() ?? "", - exitCode: error.status ?? 1 - }; - } -} -function expandHome(filepath) { - if (filepath.startsWith("~")) { - return join(homedir(), filepath.slice(1)); - } - return filepath; -} - -// src/steps/welcome.ts -async function runWelcome() { - We(import_picocolors3.default.bgCyan(import_picocolors3.default.black(" claude-mem installer "))); - R2.info(`Version: 1.0.0`); - R2.info(`Platform: ${process.platform} (${process.arch})`); - const settingsExist = existsSync(expandHome("~/.claude-mem/settings.json")); - const pluginExist = existsSync(expandHome("~/.claude/plugins/marketplaces/thedotmack/")); - const alreadyInstalled = settingsExist && pluginExist; - if (alreadyInstalled) { - R2.warn("Existing claude-mem installation detected."); - } - const installMode = await Je({ - message: "What would you like to do?", - options: alreadyInstalled ? [ - { value: "upgrade", label: "Upgrade", hint: "update to latest version" }, - { value: "configure", label: "Configure", hint: "change settings only" }, - { value: "fresh", label: "Fresh Install", hint: "reinstall from scratch" } - ] : [ - { value: "fresh", label: "Fresh Install", hint: "recommended" }, - { value: "configure", label: "Configure Only", hint: "set up settings without installing" } - ] - }); - if (Ct(installMode)) { - Ne("Installation cancelled."); - process.exit(0); - } - return installMode; -} - -// src/steps/dependencies.ts -var import_picocolors4 = __toESM(require_picocolors(), 1); - -// src/utils/dependencies.ts -import { existsSync as existsSync2 } from "fs"; -import { execSync as execSync2 } from "child_process"; -function findBinary(name, extraPaths = []) { - if (commandExists(name)) { - const result = runCommand("which", [name]); - const versionResult = runCommand(name, ["--version"]); - return { - found: true, - path: result.stdout, - version: parseVersion(versionResult.stdout) || parseVersion(versionResult.stderr) - }; - } - for (const extraPath of extraPaths) { - const fullPath = expandHome(extraPath); - if (existsSync2(fullPath)) { - const versionResult = runCommand(fullPath, ["--version"]); - return { - found: true, - path: fullPath, - version: parseVersion(versionResult.stdout) || parseVersion(versionResult.stderr) - }; - } - } - return { found: false, path: null, version: null }; -} -function parseVersion(output) { - if (!output) return null; - const match = output.match(/(\d+\.\d+(\.\d+)?)/); - return match ? match[1] : null; -} -function compareVersions(current, minimum) { - const currentParts = current.split(".").map(Number); - const minimumParts = minimum.split(".").map(Number); - for (let i = 0; i < Math.max(currentParts.length, minimumParts.length); i++) { - const a = currentParts[i] || 0; - const b = minimumParts[i] || 0; - if (a > b) return true; - if (a < b) return false; - } - return true; -} -function installBun() { - const os = detectOS(); - if (os === "windows") { - execSync2('powershell -c "irm bun.sh/install.ps1 | iex"', { stdio: "inherit" }); - } else { - execSync2("curl -fsSL https://bun.sh/install | bash", { stdio: "inherit" }); - } -} -function installUv() { - const os = detectOS(); - if (os === "windows") { - execSync2('powershell -c "irm https://astral.sh/uv/install.ps1 | iex"', { stdio: "inherit" }); - } else { - execSync2("curl -fsSL https://astral.sh/uv/install.sh | sh", { stdio: "inherit" }); - } -} - -// src/steps/dependencies.ts -var BUN_EXTRA_PATHS = ["~/.bun/bin/bun", "/usr/local/bin/bun", "/opt/homebrew/bin/bun"]; -var UV_EXTRA_PATHS = ["~/.local/bin/uv", "~/.cargo/bin/uv"]; -async function runDependencyChecks() { - const status = { - nodeOk: false, - gitOk: false, - bunOk: false, - uvOk: false, - bunPath: null, - uvPath: null - }; - await Ye([ - { - title: "Checking Node.js", - task: async () => { - const version = process.version.slice(1); - if (compareVersions(version, "18.0.0")) { - status.nodeOk = true; - return `Node.js ${process.version} ${import_picocolors4.default.green("\u2713")}`; - } - return `Node.js ${process.version} \u2014 requires >= 18.0.0 ${import_picocolors4.default.red("\u2717")}`; - } - }, - { - title: "Checking git", - task: async () => { - const info = findBinary("git"); - if (info.found) { - status.gitOk = true; - return `git ${info.version ?? ""} ${import_picocolors4.default.green("\u2713")}`; - } - return `git not found ${import_picocolors4.default.red("\u2717")}`; - } - }, - { - title: "Checking Bun", - task: async () => { - const info = findBinary("bun", BUN_EXTRA_PATHS); - if (info.found && info.version && compareVersions(info.version, "1.1.14")) { - status.bunOk = true; - status.bunPath = info.path; - return `Bun ${info.version} ${import_picocolors4.default.green("\u2713")}`; - } - if (info.found && info.version) { - return `Bun ${info.version} \u2014 requires >= 1.1.14 ${import_picocolors4.default.yellow("\u26A0")}`; - } - return `Bun not found ${import_picocolors4.default.yellow("\u26A0")}`; - } - }, - { - title: "Checking uv", - task: async () => { - const info = findBinary("uv", UV_EXTRA_PATHS); - if (info.found) { - status.uvOk = true; - status.uvPath = info.path; - return `uv ${info.version ?? ""} ${import_picocolors4.default.green("\u2713")}`; - } - return `uv not found ${import_picocolors4.default.yellow("\u26A0")}`; - } - } - ]); - if (!status.gitOk) { - const os = detectOS(); - R2.error("git is required but not found."); - if (os === "macos") { - R2.info("Install with: xcode-select --install"); - } else if (os === "linux") { - R2.info("Install with: sudo apt install git (or your distro equivalent)"); - } else { - R2.info("Download from: https://git-scm.com/downloads"); - } - Ne("Please install git and try again."); - process.exit(1); - } - if (!status.nodeOk) { - R2.error(`Node.js >= 18.0.0 is required. Current: ${process.version}`); - Ne("Please upgrade Node.js and try again."); - process.exit(1); - } - if (!status.bunOk) { - const shouldInstall = await Re({ - message: "Bun is required but not found. Install it now?", - initialValue: true - }); - if (Ct(shouldInstall)) { - Ne("Installation cancelled."); - process.exit(0); - } - if (shouldInstall) { - const s = bt2(); - s.start("Installing Bun..."); - try { - installBun(); - const recheck = findBinary("bun", BUN_EXTRA_PATHS); - if (recheck.found) { - status.bunOk = true; - status.bunPath = recheck.path; - s.stop(`Bun installed ${import_picocolors4.default.green("\u2713")}`); - } else { - s.stop(`Bun installed but not found in PATH. You may need to restart your shell.`); - } - } catch { - s.stop(`Bun installation failed. Install manually: curl -fsSL https://bun.sh/install | bash`); - } - } else { - R2.warn("Bun is required for claude-mem. Install manually: curl -fsSL https://bun.sh/install | bash"); - Ne("Cannot continue without Bun."); - process.exit(1); - } - } - if (!status.uvOk) { - const shouldInstall = await Re({ - message: "uv (Python package manager) is recommended for Chroma. Install it now?", - initialValue: true - }); - if (Ct(shouldInstall)) { - Ne("Installation cancelled."); - process.exit(0); - } - if (shouldInstall) { - const s = bt2(); - s.start("Installing uv..."); - try { - installUv(); - const recheck = findBinary("uv", UV_EXTRA_PATHS); - if (recheck.found) { - status.uvOk = true; - status.uvPath = recheck.path; - s.stop(`uv installed ${import_picocolors4.default.green("\u2713")}`); - } else { - s.stop("uv installed but not found in PATH. You may need to restart your shell."); - } - } catch { - s.stop("uv installation failed. Install manually: curl -fsSL https://astral.sh/uv/install.sh | sh"); - } - } else { - R2.warn("Skipping uv \u2014 Chroma vector search will not be available."); - } - } - return status; -} - -// src/steps/ide-selection.ts -async function runIdeSelection() { - const result = await je({ - message: "Which IDEs do you use?", - options: [ - { value: "claude-code", label: "Claude Code", hint: "recommended" }, - { value: "cursor", label: "Cursor" } - // Windsurf coming soon - not yet selectable - ], - initialValues: ["claude-code"], - required: true - }); - if (Ct(result)) { - Ne("Installation cancelled."); - process.exit(0); - } - const selectedIDEs = result; - if (selectedIDEs.includes("claude-code")) { - R2.info("Claude Code: Plugin will be registered via marketplace."); - } - if (selectedIDEs.includes("cursor")) { - R2.info("Cursor: Hooks will be configured for your projects."); - } - return selectedIDEs; -} - -// src/steps/provider.ts -async function runProviderConfiguration() { - const provider = await Je({ - message: "Which AI provider should claude-mem use for memory compression?", - options: [ - { value: "claude", label: "Claude", hint: "uses your Claude subscription" }, - { value: "gemini", label: "Gemini", hint: "free tier available" }, - { value: "openrouter", label: "OpenRouter", hint: "free models available" } - ] - }); - if (Ct(provider)) { - Ne("Installation cancelled."); - process.exit(0); - } - const config = { provider }; - if (provider === "claude") { - const authMethod = await Je({ - message: "How should Claude authenticate?", - options: [ - { value: "cli", label: "CLI (Max Plan subscription)", hint: "no API key needed" }, - { value: "api", label: "API Key", hint: "uses Anthropic API credits" } - ] - }); - if (Ct(authMethod)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.claudeAuthMethod = authMethod; - if (authMethod === "api") { - const apiKey = await He({ - message: "Enter your Anthropic API key:", - validate: (value) => { - if (!value || value.trim().length === 0) return "API key is required"; - if (!value.startsWith("sk-ant-")) return "Anthropic API keys start with sk-ant-"; - } - }); - if (Ct(apiKey)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.apiKey = apiKey; - } - } - if (provider === "gemini") { - const apiKey = await He({ - message: "Enter your Gemini API key:", - validate: (value) => { - if (!value || value.trim().length === 0) return "API key is required"; - } - }); - if (Ct(apiKey)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.apiKey = apiKey; - const model = await Je({ - message: "Which Gemini model?", - options: [ - { value: "gemini-2.5-flash-lite", label: "Gemini 2.5 Flash Lite", hint: "fastest, highest free RPM" }, - { value: "gemini-2.5-flash", label: "Gemini 2.5 Flash", hint: "balanced" }, - { value: "gemini-3-flash-preview", label: "Gemini 3 Flash Preview", hint: "latest" } - ] - }); - if (Ct(model)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.model = model; - const rateLimiting = await Re({ - message: "Enable rate limiting? (recommended for free tier)", - initialValue: true - }); - if (Ct(rateLimiting)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.rateLimitingEnabled = rateLimiting; - } - if (provider === "openrouter") { - const apiKey = await He({ - message: "Enter your OpenRouter API key:", - validate: (value) => { - if (!value || value.trim().length === 0) return "API key is required"; - } - }); - if (Ct(apiKey)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.apiKey = apiKey; - const model = await Ze({ - message: "Which OpenRouter model?", - defaultValue: "xiaomi/mimo-v2-flash:free", - placeholder: "xiaomi/mimo-v2-flash:free" - }); - if (Ct(model)) { - Ne("Installation cancelled."); - process.exit(0); - } - config.model = model; - } - return config; -} - -// src/steps/settings.ts -var import_picocolors5 = __toESM(require_picocolors(), 1); -async function runSettingsConfiguration() { - const useDefaults = await Re({ - message: "Use default settings? (recommended for most users)", - initialValue: true - }); - if (Ct(useDefaults)) { - Ne("Installation cancelled."); - process.exit(0); - } - if (useDefaults) { - return { - workerPort: "37777", - dataDir: "~/.claude-mem", - contextObservations: "50", - logLevel: "INFO", - pythonVersion: "3.13", - chromaEnabled: true, - chromaMode: "local" - }; - } - const workerPort = await Ze({ - message: "Worker service port:", - defaultValue: "37777", - placeholder: "37777", - validate: (value = "") => { - const port = parseInt(value, 10); - if (isNaN(port) || port < 1024 || port > 65535) { - return "Port must be between 1024 and 65535"; - } - } - }); - if (Ct(workerPort)) { - Ne("Installation cancelled."); - process.exit(0); - } - const dataDir = await Ze({ - message: "Data directory:", - defaultValue: "~/.claude-mem", - placeholder: "~/.claude-mem" - }); - if (Ct(dataDir)) { - Ne("Installation cancelled."); - process.exit(0); - } - const contextObservations = await Ze({ - message: "Number of context observations per session:", - defaultValue: "50", - placeholder: "50", - validate: (value = "") => { - const num = parseInt(value, 10); - if (isNaN(num) || num < 1 || num > 200) { - return "Must be between 1 and 200"; - } - } - }); - if (Ct(contextObservations)) { - Ne("Installation cancelled."); - process.exit(0); - } - const logLevel = await Je({ - message: "Log level:", - options: [ - { value: "DEBUG", label: "DEBUG", hint: "verbose" }, - { value: "INFO", label: "INFO", hint: "default" }, - { value: "WARN", label: "WARN" }, - { value: "ERROR", label: "ERROR", hint: "errors only" } - ], - initialValue: "INFO" - }); - if (Ct(logLevel)) { - Ne("Installation cancelled."); - process.exit(0); - } - const pythonVersion = await Ze({ - message: "Python version (for Chroma):", - defaultValue: "3.13", - placeholder: "3.13" - }); - if (Ct(pythonVersion)) { - Ne("Installation cancelled."); - process.exit(0); - } - const chromaEnabled = await Re({ - message: "Enable Chroma vector search?", - initialValue: true - }); - if (Ct(chromaEnabled)) { - Ne("Installation cancelled."); - process.exit(0); - } - let chromaMode; - let chromaHost; - let chromaPort; - let chromaSsl; - if (chromaEnabled) { - const mode = await Je({ - message: "Chroma mode:", - options: [ - { value: "local", label: "Local", hint: "starts local Chroma server" }, - { value: "remote", label: "Remote", hint: "connect to existing server" } - ] - }); - if (Ct(mode)) { - Ne("Installation cancelled."); - process.exit(0); - } - chromaMode = mode; - if (mode === "remote") { - const host = await Ze({ - message: "Chroma host:", - defaultValue: "127.0.0.1", - placeholder: "127.0.0.1" - }); - if (Ct(host)) { - Ne("Installation cancelled."); - process.exit(0); - } - chromaHost = host; - const port = await Ze({ - message: "Chroma port:", - defaultValue: "8000", - placeholder: "8000", - validate: (value = "") => { - const portNum = parseInt(value, 10); - if (isNaN(portNum) || portNum < 1 || portNum > 65535) return "Port must be between 1 and 65535"; - } - }); - if (Ct(port)) { - Ne("Installation cancelled."); - process.exit(0); - } - chromaPort = port; - const ssl = await Re({ - message: "Use SSL for Chroma connection?", - initialValue: false - }); - if (Ct(ssl)) { - Ne("Installation cancelled."); - process.exit(0); - } - chromaSsl = ssl; - } - } - const config = { - workerPort, - dataDir, - contextObservations, - logLevel, - pythonVersion, - chromaEnabled, - chromaMode, - chromaHost, - chromaPort, - chromaSsl - }; - const summaryLines = [ - `Worker port: ${import_picocolors5.default.cyan(workerPort)}`, - `Data directory: ${import_picocolors5.default.cyan(dataDir)}`, - `Context observations: ${import_picocolors5.default.cyan(contextObservations)}`, - `Log level: ${import_picocolors5.default.cyan(logLevel)}`, - `Python version: ${import_picocolors5.default.cyan(pythonVersion)}`, - `Chroma: ${chromaEnabled ? import_picocolors5.default.green("enabled") : import_picocolors5.default.dim("disabled")}` - ]; - if (chromaEnabled && chromaMode) { - summaryLines.push(`Chroma mode: ${import_picocolors5.default.cyan(chromaMode)}`); - } - Ve(summaryLines.join("\n"), "Settings Summary"); - return config; -} - -// src/utils/settings-writer.ts -import { existsSync as existsSync3, mkdirSync, readFileSync, writeFileSync } from "fs"; -import { join as join2 } from "path"; -import { homedir as homedir2 } from "os"; -function expandDataDir(dataDir) { - if (dataDir.startsWith("~")) { - return join2(homedir2(), dataDir.slice(1)); - } - return dataDir; -} -function buildSettingsObject(providerConfig, settingsConfig) { - const settings = { - CLAUDE_MEM_WORKER_PORT: settingsConfig.workerPort, - CLAUDE_MEM_WORKER_HOST: "127.0.0.1", - CLAUDE_MEM_DATA_DIR: expandDataDir(settingsConfig.dataDir), - CLAUDE_MEM_CONTEXT_OBSERVATIONS: settingsConfig.contextObservations, - CLAUDE_MEM_LOG_LEVEL: settingsConfig.logLevel, - CLAUDE_MEM_PYTHON_VERSION: settingsConfig.pythonVersion, - CLAUDE_MEM_PROVIDER: providerConfig.provider - }; - if (providerConfig.provider === "claude") { - settings.CLAUDE_MEM_CLAUDE_AUTH_METHOD = providerConfig.claudeAuthMethod ?? "cli"; - } - if (providerConfig.provider === "gemini") { - if (providerConfig.apiKey) settings.CLAUDE_MEM_GEMINI_API_KEY = providerConfig.apiKey; - if (providerConfig.model) settings.CLAUDE_MEM_GEMINI_MODEL = providerConfig.model; - settings.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED = providerConfig.rateLimitingEnabled !== false ? "true" : "false"; - } - if (providerConfig.provider === "openrouter") { - if (providerConfig.apiKey) settings.CLAUDE_MEM_OPENROUTER_API_KEY = providerConfig.apiKey; - if (providerConfig.model) settings.CLAUDE_MEM_OPENROUTER_MODEL = providerConfig.model; - } - if (settingsConfig.chromaEnabled) { - settings.CLAUDE_MEM_CHROMA_MODE = settingsConfig.chromaMode ?? "local"; - if (settingsConfig.chromaMode === "remote") { - if (settingsConfig.chromaHost) settings.CLAUDE_MEM_CHROMA_HOST = settingsConfig.chromaHost; - if (settingsConfig.chromaPort) settings.CLAUDE_MEM_CHROMA_PORT = settingsConfig.chromaPort; - if (settingsConfig.chromaSsl !== void 0) settings.CLAUDE_MEM_CHROMA_SSL = String(settingsConfig.chromaSsl); - } - } - return settings; -} -function writeSettings(providerConfig, settingsConfig) { - const dataDir = expandDataDir(settingsConfig.dataDir); - const settingsPath = join2(dataDir, "settings.json"); - if (!existsSync3(dataDir)) { - mkdirSync(dataDir, { recursive: true }); - } - let existingSettings = {}; - if (existsSync3(settingsPath)) { - const raw = readFileSync(settingsPath, "utf-8"); - existingSettings = JSON.parse(raw); - } - const newSettings = buildSettingsObject(providerConfig, settingsConfig); - const merged = { ...existingSettings, ...newSettings }; - writeFileSync(settingsPath, JSON.stringify(merged, null, 2) + "\n", "utf-8"); -} - -// src/steps/install.ts -var import_picocolors6 = __toESM(require_picocolors(), 1); -import { execSync as execSync3 } from "child_process"; -import { existsSync as existsSync4, mkdirSync as mkdirSync2, readFileSync as readFileSync2, writeFileSync as writeFileSync2, cpSync } from "fs"; -import { join as join3 } from "path"; -import { homedir as homedir3, tmpdir } from "os"; -var MARKETPLACE_DIR = join3(homedir3(), ".claude", "plugins", "marketplaces", "thedotmack"); -var PLUGINS_DIR = join3(homedir3(), ".claude", "plugins"); -var CLAUDE_SETTINGS_PATH = join3(homedir3(), ".claude", "settings.json"); -function ensureDir(directoryPath) { - if (!existsSync4(directoryPath)) { - mkdirSync2(directoryPath, { recursive: true }); - } -} -function readJsonFile(filepath) { - if (!existsSync4(filepath)) return {}; - return JSON.parse(readFileSync2(filepath, "utf-8")); -} -function writeJsonFile(filepath, data) { - ensureDir(join3(filepath, "..")); - writeFileSync2(filepath, JSON.stringify(data, null, 2) + "\n", "utf-8"); -} -function registerMarketplace() { - const knownMarketplacesPath = join3(PLUGINS_DIR, "known_marketplaces.json"); - const knownMarketplaces = readJsonFile(knownMarketplacesPath); - knownMarketplaces["thedotmack"] = { - source: { - source: "github", - repo: "thedotmack/claude-mem" - }, - installLocation: MARKETPLACE_DIR, - lastUpdated: (/* @__PURE__ */ new Date()).toISOString(), - autoUpdate: true - }; - ensureDir(PLUGINS_DIR); - writeJsonFile(knownMarketplacesPath, knownMarketplaces); -} -function registerPlugin(version) { - const installedPluginsPath = join3(PLUGINS_DIR, "installed_plugins.json"); - const installedPlugins = readJsonFile(installedPluginsPath); - if (!installedPlugins.version) installedPlugins.version = 2; - if (!installedPlugins.plugins) installedPlugins.plugins = {}; - const pluginCachePath = join3(PLUGINS_DIR, "cache", "thedotmack", "claude-mem", version); - const now = (/* @__PURE__ */ new Date()).toISOString(); - installedPlugins.plugins["claude-mem@thedotmack"] = [ - { - scope: "user", - installPath: pluginCachePath, - version, - installedAt: now, - lastUpdated: now - } - ]; - writeJsonFile(installedPluginsPath, installedPlugins); - ensureDir(pluginCachePath); - const pluginSourceDir = join3(MARKETPLACE_DIR, "plugin"); - if (existsSync4(pluginSourceDir)) { - cpSync(pluginSourceDir, pluginCachePath, { recursive: true }); - } -} -function enablePluginInClaudeSettings() { - const settings = readJsonFile(CLAUDE_SETTINGS_PATH); - if (!settings.enabledPlugins) settings.enabledPlugins = {}; - settings.enabledPlugins["claude-mem@thedotmack"] = true; - writeJsonFile(CLAUDE_SETTINGS_PATH, settings); -} -function getPluginVersion() { - const pluginJsonPath = join3(MARKETPLACE_DIR, "plugin", ".claude-plugin", "plugin.json"); - if (existsSync4(pluginJsonPath)) { - const pluginJson = JSON.parse(readFileSync2(pluginJsonPath, "utf-8")); - return pluginJson.version ?? "1.0.0"; - } - return "1.0.0"; -} -async function runInstallation(selectedIDEs) { - const tempDir = join3(tmpdir(), `claude-mem-install-${Date.now()}`); - await Ye([ - { - title: "Cloning claude-mem repository", - task: async (message) => { - message("Downloading latest release..."); - execSync3( - `git clone --depth 1 https://github.com/thedotmack/claude-mem.git "${tempDir}"`, - { stdio: "pipe" } - ); - return `Repository cloned ${import_picocolors6.default.green("OK")}`; - } - }, - { - title: "Installing dependencies", - task: async (message) => { - message("Running npm install..."); - execSync3("npm install", { cwd: tempDir, stdio: "pipe" }); - return `Dependencies installed ${import_picocolors6.default.green("OK")}`; - } - }, - { - title: "Building plugin", - task: async (message) => { - message("Compiling TypeScript and bundling..."); - execSync3("npm run build", { cwd: tempDir, stdio: "pipe" }); - return `Plugin built ${import_picocolors6.default.green("OK")}`; - } - }, - { - title: "Registering plugin", - task: async (message) => { - message("Copying files to marketplace directory..."); - ensureDir(MARKETPLACE_DIR); - execSync3( - `rsync -a --delete --exclude=.git --exclude=package-lock.json --exclude=bun.lock "${tempDir}/" "${MARKETPLACE_DIR}/"`, - { stdio: "pipe" } - ); - message("Registering marketplace..."); - registerMarketplace(); - message("Installing marketplace dependencies..."); - execSync3("npm install", { cwd: MARKETPLACE_DIR, stdio: "pipe" }); - message("Registering plugin in Claude Code..."); - const version = getPluginVersion(); - registerPlugin(version); - message("Enabling plugin..."); - enablePluginInClaudeSettings(); - return `Plugin registered (v${getPluginVersion()}) ${import_picocolors6.default.green("OK")}`; - } - } - ]); - try { - execSync3(`rm -rf "${tempDir}"`, { stdio: "pipe" }); - } catch { - } - if (selectedIDEs.includes("cursor")) { - R2.info("Cursor hook configuration will be available after first launch."); - R2.info("Run: claude-mem cursor-setup (coming soon)"); - } -} - -// src/steps/worker.ts -var import_picocolors7 = __toESM(require_picocolors(), 1); -import { spawn } from "child_process"; -import { join as join4 } from "path"; -import { homedir as homedir4 } from "os"; -var MARKETPLACE_DIR2 = join4(homedir4(), ".claude", "plugins", "marketplaces", "thedotmack"); -var HEALTH_CHECK_INTERVAL_MS = 1e3; -var HEALTH_CHECK_MAX_ATTEMPTS = 30; -async function pollHealthEndpoint(port, maxAttempts = HEALTH_CHECK_MAX_ATTEMPTS) { - for (let attempt = 0; attempt < maxAttempts; attempt++) { - try { - const response = await fetch(`http://127.0.0.1:${port}/api/health`); - if (response.ok) return true; - } catch { - } - await new Promise((resolve) => setTimeout(resolve, HEALTH_CHECK_INTERVAL_MS)); - } - return false; -} -async function runWorkerStartup(workerPort, dataDir) { - const bunInfo = findBinary("bun", ["~/.bun/bin/bun", "/usr/local/bin/bun", "/opt/homebrew/bin/bun"]); - if (!bunInfo.found || !bunInfo.path) { - R2.error("Bun is required to start the worker but was not found."); - R2.info("Install Bun: curl -fsSL https://bun.sh/install | bash"); - return; - } - const workerScript = join4(MARKETPLACE_DIR2, "plugin", "scripts", "worker-service.cjs"); - const expandedDataDir = expandHome(dataDir); - const logPath = join4(expandedDataDir, "logs"); - const s = bt2(); - s.start("Starting worker service..."); - const child = spawn(bunInfo.path, [workerScript], { - cwd: MARKETPLACE_DIR2, - detached: true, - stdio: "ignore", - env: { - ...process.env, - CLAUDE_MEM_WORKER_PORT: workerPort, - CLAUDE_MEM_DATA_DIR: expandedDataDir - } - }); - child.unref(); - const workerIsHealthy = await pollHealthEndpoint(workerPort); - if (workerIsHealthy) { - s.stop(`Worker running on port ${import_picocolors7.default.cyan(workerPort)} ${import_picocolors7.default.green("OK")}`); - } else { - s.stop(`Worker may still be starting. Check logs at: ${logPath}`); - R2.warn("Health check timed out. The worker might need more time to initialize."); - R2.info(`Check status: curl http://127.0.0.1:${workerPort}/api/health`); - } -} - -// src/steps/complete.ts -var import_picocolors8 = __toESM(require_picocolors(), 1); -function getProviderLabel(config) { - switch (config.provider) { - case "claude": - return config.claudeAuthMethod === "api" ? "Claude (API Key)" : "Claude (CLI subscription)"; - case "gemini": - return `Gemini (${config.model ?? "gemini-2.5-flash-lite"})`; - case "openrouter": - return `OpenRouter (${config.model ?? "xiaomi/mimo-v2-flash:free"})`; - } -} -function getIDELabels(ides) { - return ides.map((ide) => { - switch (ide) { - case "claude-code": - return "Claude Code"; - case "cursor": - return "Cursor"; - } - }).join(", "); -} -function runCompletion(providerConfig, settingsConfig, selectedIDEs) { - const summaryLines = [ - `Provider: ${import_picocolors8.default.cyan(getProviderLabel(providerConfig))}`, - `IDEs: ${import_picocolors8.default.cyan(getIDELabels(selectedIDEs))}`, - `Data dir: ${import_picocolors8.default.cyan(settingsConfig.dataDir)}`, - `Port: ${import_picocolors8.default.cyan(settingsConfig.workerPort)}`, - `Chroma: ${settingsConfig.chromaEnabled ? import_picocolors8.default.green("enabled") : import_picocolors8.default.dim("disabled")}` - ]; - Ve(summaryLines.join("\n"), "Configuration Summary"); - const nextStepsLines = []; - if (selectedIDEs.includes("claude-code")) { - nextStepsLines.push("Open Claude Code and start a conversation \u2014 memory is automatic!"); - } - if (selectedIDEs.includes("cursor")) { - nextStepsLines.push("Open Cursor \u2014 hooks are active in your projects."); - } - nextStepsLines.push(`View your memories: ${import_picocolors8.default.underline(`http://localhost:${settingsConfig.workerPort}`)}`); - nextStepsLines.push(`Search past work: use ${import_picocolors8.default.bold("/mem-search")} in Claude Code`); - Ve(nextStepsLines.join("\n"), "Next Steps"); - Le(import_picocolors8.default.green("claude-mem installed successfully!")); -} - -// src/index.ts -async function runInstaller() { - if (!process.stdin.isTTY) { - console.error("Error: This installer requires an interactive terminal."); - console.error("Run directly: npx claude-mem-installer"); - process.exit(1); - } - const installMode = await runWelcome(); - await runDependencyChecks(); - const selectedIDEs = await runIdeSelection(); - const providerConfig = await runProviderConfiguration(); - const settingsConfig = await runSettingsConfiguration(); - writeSettings(providerConfig, settingsConfig); - R2.success("Settings saved."); - if (installMode !== "configure") { - await runInstallation(selectedIDEs); - await runWorkerStartup(settingsConfig.workerPort, settingsConfig.dataDir); - } - runCompletion(providerConfig, settingsConfig, selectedIDEs); -} -runInstaller().catch((error) => { - Ne("Installation failed."); - console.error(error); - process.exit(1); -}); diff --git a/installer/package.json b/installer/package.json deleted file mode 100644 index 963c76a4..00000000 --- a/installer/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "claude-mem-installer", - "version": "1.0.0", - "type": "module", - "bin": { "claude-mem-installer": "./dist/index.js" }, - "files": ["dist"], - "scripts": { - "build": "node build.mjs", - "dev": "node build.mjs && node dist/index.js" - }, - "dependencies": { - "@clack/prompts": "^1.0.1", - "picocolors": "^1.1.1" - }, - "devDependencies": { - "esbuild": "^0.24.0", - "typescript": "^5.7.0", - "@types/node": "^22.0.0" - }, - "engines": { "node": ">=18.0.0" } -} diff --git a/installer/src/index.ts b/installer/src/index.ts deleted file mode 100644 index 509a5bac..00000000 --- a/installer/src/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import * as p from '@clack/prompts'; -import { runWelcome } from './steps/welcome.js'; -import { runDependencyChecks } from './steps/dependencies.js'; -import { runIdeSelection } from './steps/ide-selection.js'; -import { runProviderConfiguration } from './steps/provider.js'; -import { runSettingsConfiguration } from './steps/settings.js'; -import { writeSettings } from './utils/settings-writer.js'; -import { runInstallation } from './steps/install.js'; -import { runWorkerStartup } from './steps/worker.js'; -import { runCompletion } from './steps/complete.js'; - -async function runInstaller(): Promise { - if (!process.stdin.isTTY) { - console.error('Error: This installer requires an interactive terminal.'); - console.error('Run directly: npx claude-mem-installer'); - process.exit(1); - } - - const installMode = await runWelcome(); - - // Dependency checks (all modes) - await runDependencyChecks(); - - // IDE and provider selection - const selectedIDEs = await runIdeSelection(); - const providerConfig = await runProviderConfiguration(); - - // Settings configuration - const settingsConfig = await runSettingsConfiguration(); - - // Write settings file - writeSettings(providerConfig, settingsConfig); - p.log.success('Settings saved.'); - - // Installation (fresh or upgrade) - if (installMode !== 'configure') { - await runInstallation(selectedIDEs); - await runWorkerStartup(settingsConfig.workerPort, settingsConfig.dataDir); - } - - // Completion summary - runCompletion(providerConfig, settingsConfig, selectedIDEs); -} - -runInstaller().catch((error) => { - p.cancel('Installation failed.'); - console.error(error); - process.exit(1); -}); diff --git a/installer/src/steps/complete.ts b/installer/src/steps/complete.ts deleted file mode 100644 index ca32bb8c..00000000 --- a/installer/src/steps/complete.ts +++ /dev/null @@ -1,56 +0,0 @@ -import * as p from '@clack/prompts'; -import pc from 'picocolors'; -import type { ProviderConfig } from './provider.js'; -import type { SettingsConfig } from './settings.js'; -import type { IDE } from './ide-selection.js'; - -function getProviderLabel(config: ProviderConfig): string { - switch (config.provider) { - case 'claude': - return config.claudeAuthMethod === 'api' ? 'Claude (API Key)' : 'Claude (CLI subscription)'; - case 'gemini': - return `Gemini (${config.model ?? 'gemini-2.5-flash-lite'})`; - case 'openrouter': - return `OpenRouter (${config.model ?? 'xiaomi/mimo-v2-flash:free'})`; - } -} - -function getIDELabels(ides: IDE[]): string { - return ides.map((ide) => { - switch (ide) { - case 'claude-code': return 'Claude Code'; - case 'cursor': return 'Cursor'; - } - }).join(', '); -} - -export function runCompletion( - providerConfig: ProviderConfig, - settingsConfig: SettingsConfig, - selectedIDEs: IDE[], -): void { - const summaryLines = [ - `Provider: ${pc.cyan(getProviderLabel(providerConfig))}`, - `IDEs: ${pc.cyan(getIDELabels(selectedIDEs))}`, - `Data dir: ${pc.cyan(settingsConfig.dataDir)}`, - `Port: ${pc.cyan(settingsConfig.workerPort)}`, - `Chroma: ${settingsConfig.chromaEnabled ? pc.green('enabled') : pc.dim('disabled')}`, - ]; - - p.note(summaryLines.join('\n'), 'Configuration Summary'); - - const nextStepsLines: string[] = []; - - if (selectedIDEs.includes('claude-code')) { - nextStepsLines.push('Open Claude Code and start a conversation — memory is automatic!'); - } - if (selectedIDEs.includes('cursor')) { - nextStepsLines.push('Open Cursor — hooks are active in your projects.'); - } - nextStepsLines.push(`View your memories: ${pc.underline(`http://localhost:${settingsConfig.workerPort}`)}`); - nextStepsLines.push(`Search past work: use ${pc.bold('/mem-search')} in Claude Code`); - - p.note(nextStepsLines.join('\n'), 'Next Steps'); - - p.outro(pc.green('claude-mem installed successfully!')); -} diff --git a/installer/src/steps/dependencies.ts b/installer/src/steps/dependencies.ts deleted file mode 100644 index 242c7a99..00000000 --- a/installer/src/steps/dependencies.ts +++ /dev/null @@ -1,168 +0,0 @@ -import * as p from '@clack/prompts'; -import pc from 'picocolors'; -import { findBinary, compareVersions, installBun, installUv } from '../utils/dependencies.js'; -import { detectOS } from '../utils/system.js'; - -const BUN_EXTRA_PATHS = ['~/.bun/bin/bun', '/usr/local/bin/bun', '/opt/homebrew/bin/bun']; -const UV_EXTRA_PATHS = ['~/.local/bin/uv', '~/.cargo/bin/uv']; - -interface DependencyStatus { - nodeOk: boolean; - gitOk: boolean; - bunOk: boolean; - uvOk: boolean; - bunPath: string | null; - uvPath: string | null; -} - -export async function runDependencyChecks(): Promise { - const status: DependencyStatus = { - nodeOk: false, - gitOk: false, - bunOk: false, - uvOk: false, - bunPath: null, - uvPath: null, - }; - - await p.tasks([ - { - title: 'Checking Node.js', - task: async () => { - const version = process.version.slice(1); // remove 'v' - if (compareVersions(version, '18.0.0')) { - status.nodeOk = true; - return `Node.js ${process.version} ${pc.green('✓')}`; - } - return `Node.js ${process.version} — requires >= 18.0.0 ${pc.red('✗')}`; - }, - }, - { - title: 'Checking git', - task: async () => { - const info = findBinary('git'); - if (info.found) { - status.gitOk = true; - return `git ${info.version ?? ''} ${pc.green('✓')}`; - } - return `git not found ${pc.red('✗')}`; - }, - }, - { - title: 'Checking Bun', - task: async () => { - const info = findBinary('bun', BUN_EXTRA_PATHS); - if (info.found && info.version && compareVersions(info.version, '1.1.14')) { - status.bunOk = true; - status.bunPath = info.path; - return `Bun ${info.version} ${pc.green('✓')}`; - } - if (info.found && info.version) { - return `Bun ${info.version} — requires >= 1.1.14 ${pc.yellow('⚠')}`; - } - return `Bun not found ${pc.yellow('⚠')}`; - }, - }, - { - title: 'Checking uv', - task: async () => { - const info = findBinary('uv', UV_EXTRA_PATHS); - if (info.found) { - status.uvOk = true; - status.uvPath = info.path; - return `uv ${info.version ?? ''} ${pc.green('✓')}`; - } - return `uv not found ${pc.yellow('⚠')}`; - }, - }, - ]); - - // Handle missing dependencies - if (!status.gitOk) { - const os = detectOS(); - p.log.error('git is required but not found.'); - if (os === 'macos') { - p.log.info('Install with: xcode-select --install'); - } else if (os === 'linux') { - p.log.info('Install with: sudo apt install git (or your distro equivalent)'); - } else { - p.log.info('Download from: https://git-scm.com/downloads'); - } - p.cancel('Please install git and try again.'); - process.exit(1); - } - - if (!status.nodeOk) { - p.log.error(`Node.js >= 18.0.0 is required. Current: ${process.version}`); - p.cancel('Please upgrade Node.js and try again.'); - process.exit(1); - } - - if (!status.bunOk) { - const shouldInstall = await p.confirm({ - message: 'Bun is required but not found. Install it now?', - initialValue: true, - }); - - if (p.isCancel(shouldInstall)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - if (shouldInstall) { - const s = p.spinner(); - s.start('Installing Bun...'); - try { - installBun(); - const recheck = findBinary('bun', BUN_EXTRA_PATHS); - if (recheck.found) { - status.bunOk = true; - status.bunPath = recheck.path; - s.stop(`Bun installed ${pc.green('✓')}`); - } else { - s.stop(`Bun installed but not found in PATH. You may need to restart your shell.`); - } - } catch { - s.stop(`Bun installation failed. Install manually: curl -fsSL https://bun.sh/install | bash`); - } - } else { - p.log.warn('Bun is required for claude-mem. Install manually: curl -fsSL https://bun.sh/install | bash'); - p.cancel('Cannot continue without Bun.'); - process.exit(1); - } - } - - if (!status.uvOk) { - const shouldInstall = await p.confirm({ - message: 'uv (Python package manager) is recommended for Chroma. Install it now?', - initialValue: true, - }); - - if (p.isCancel(shouldInstall)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - if (shouldInstall) { - const s = p.spinner(); - s.start('Installing uv...'); - try { - installUv(); - const recheck = findBinary('uv', UV_EXTRA_PATHS); - if (recheck.found) { - status.uvOk = true; - status.uvPath = recheck.path; - s.stop(`uv installed ${pc.green('✓')}`); - } else { - s.stop('uv installed but not found in PATH. You may need to restart your shell.'); - } - } catch { - s.stop('uv installation failed. Install manually: curl -fsSL https://astral.sh/uv/install.sh | sh'); - } - } else { - p.log.warn('Skipping uv — Chroma vector search will not be available.'); - } - } - - return status; -} diff --git a/installer/src/steps/ide-selection.ts b/installer/src/steps/ide-selection.ts deleted file mode 100644 index eefad6dd..00000000 --- a/installer/src/steps/ide-selection.ts +++ /dev/null @@ -1,32 +0,0 @@ -import * as p from '@clack/prompts'; - -export type IDE = 'claude-code' | 'cursor'; - -export async function runIdeSelection(): Promise { - const result = await p.multiselect({ - message: 'Which IDEs do you use?', - options: [ - { value: 'claude-code' as const, label: 'Claude Code', hint: 'recommended' }, - { value: 'cursor' as const, label: 'Cursor' }, - // Windsurf coming soon - not yet selectable - ], - initialValues: ['claude-code'], - required: true, - }); - - if (p.isCancel(result)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - const selectedIDEs = result as IDE[]; - - if (selectedIDEs.includes('claude-code')) { - p.log.info('Claude Code: Plugin will be registered via marketplace.'); - } - if (selectedIDEs.includes('cursor')) { - p.log.info('Cursor: Hooks will be configured for your projects.'); - } - - return selectedIDEs; -} diff --git a/installer/src/steps/install.ts b/installer/src/steps/install.ts deleted file mode 100644 index 88311f8b..00000000 --- a/installer/src/steps/install.ts +++ /dev/null @@ -1,167 +0,0 @@ -import * as p from '@clack/prompts'; -import pc from 'picocolors'; -import { execSync } from 'child_process'; -import { existsSync, mkdirSync, readFileSync, writeFileSync, cpSync } from 'fs'; -import { join } from 'path'; -import { homedir, tmpdir } from 'os'; -import type { IDE } from './ide-selection.js'; - -const MARKETPLACE_DIR = join(homedir(), '.claude', 'plugins', 'marketplaces', 'thedotmack'); -const PLUGINS_DIR = join(homedir(), '.claude', 'plugins'); -const CLAUDE_SETTINGS_PATH = join(homedir(), '.claude', 'settings.json'); - -function ensureDir(directoryPath: string): void { - if (!existsSync(directoryPath)) { - mkdirSync(directoryPath, { recursive: true }); - } -} - -function readJsonFile(filepath: string): any { - if (!existsSync(filepath)) return {}; - return JSON.parse(readFileSync(filepath, 'utf-8')); -} - -function writeJsonFile(filepath: string, data: any): void { - ensureDir(join(filepath, '..')); - writeFileSync(filepath, JSON.stringify(data, null, 2) + '\n', 'utf-8'); -} - -function registerMarketplace(): void { - const knownMarketplacesPath = join(PLUGINS_DIR, 'known_marketplaces.json'); - const knownMarketplaces = readJsonFile(knownMarketplacesPath); - - knownMarketplaces['thedotmack'] = { - source: { - source: 'github', - repo: 'thedotmack/claude-mem', - }, - installLocation: MARKETPLACE_DIR, - lastUpdated: new Date().toISOString(), - autoUpdate: true, - }; - - ensureDir(PLUGINS_DIR); - writeJsonFile(knownMarketplacesPath, knownMarketplaces); -} - -function registerPlugin(version: string): void { - const installedPluginsPath = join(PLUGINS_DIR, 'installed_plugins.json'); - const installedPlugins = readJsonFile(installedPluginsPath); - - if (!installedPlugins.version) installedPlugins.version = 2; - if (!installedPlugins.plugins) installedPlugins.plugins = {}; - - const pluginCachePath = join(PLUGINS_DIR, 'cache', 'thedotmack', 'claude-mem', version); - const now = new Date().toISOString(); - - installedPlugins.plugins['claude-mem@thedotmack'] = [ - { - scope: 'user', - installPath: pluginCachePath, - version, - installedAt: now, - lastUpdated: now, - }, - ]; - - writeJsonFile(installedPluginsPath, installedPlugins); - - // Copy built plugin to cache directory - ensureDir(pluginCachePath); - const pluginSourceDir = join(MARKETPLACE_DIR, 'plugin'); - if (existsSync(pluginSourceDir)) { - cpSync(pluginSourceDir, pluginCachePath, { recursive: true }); - } -} - -function enablePluginInClaudeSettings(): void { - const settings = readJsonFile(CLAUDE_SETTINGS_PATH); - - if (!settings.enabledPlugins) settings.enabledPlugins = {}; - settings.enabledPlugins['claude-mem@thedotmack'] = true; - - writeJsonFile(CLAUDE_SETTINGS_PATH, settings); -} - -function getPluginVersion(): string { - const pluginJsonPath = join(MARKETPLACE_DIR, 'plugin', '.claude-plugin', 'plugin.json'); - if (existsSync(pluginJsonPath)) { - const pluginJson = JSON.parse(readFileSync(pluginJsonPath, 'utf-8')); - return pluginJson.version ?? '1.0.0'; - } - return '1.0.0'; -} - -export async function runInstallation(selectedIDEs: IDE[]): Promise { - const tempDir = join(tmpdir(), `claude-mem-install-${Date.now()}`); - - await p.tasks([ - { - title: 'Cloning claude-mem repository', - task: async (message) => { - message('Downloading latest release...'); - execSync( - `git clone --depth 1 https://github.com/thedotmack/claude-mem.git "${tempDir}"`, - { stdio: 'pipe' }, - ); - return `Repository cloned ${pc.green('OK')}`; - }, - }, - { - title: 'Installing dependencies', - task: async (message) => { - message('Running npm install...'); - execSync('npm install', { cwd: tempDir, stdio: 'pipe' }); - return `Dependencies installed ${pc.green('OK')}`; - }, - }, - { - title: 'Building plugin', - task: async (message) => { - message('Compiling TypeScript and bundling...'); - execSync('npm run build', { cwd: tempDir, stdio: 'pipe' }); - return `Plugin built ${pc.green('OK')}`; - }, - }, - { - title: 'Registering plugin', - task: async (message) => { - message('Copying files to marketplace directory...'); - ensureDir(MARKETPLACE_DIR); - - // Sync from cloned repo to marketplace dir, excluding .git and lock files - execSync( - `rsync -a --delete --exclude=.git --exclude=package-lock.json --exclude=bun.lock "${tempDir}/" "${MARKETPLACE_DIR}/"`, - { stdio: 'pipe' }, - ); - - message('Registering marketplace...'); - registerMarketplace(); - - message('Installing marketplace dependencies...'); - execSync('npm install', { cwd: MARKETPLACE_DIR, stdio: 'pipe' }); - - message('Registering plugin in Claude Code...'); - const version = getPluginVersion(); - registerPlugin(version); - - message('Enabling plugin...'); - enablePluginInClaudeSettings(); - - return `Plugin registered (v${getPluginVersion()}) ${pc.green('OK')}`; - }, - }, - ]); - - // Cleanup temp directory (non-critical if it fails) - try { - execSync(`rm -rf "${tempDir}"`, { stdio: 'pipe' }); - } catch { - // Temp dir will be cleaned by OS eventually - } - - if (selectedIDEs.includes('cursor')) { - p.log.info('Cursor hook configuration will be available after first launch.'); - p.log.info('Run: claude-mem cursor-setup (coming soon)'); - } -} diff --git a/installer/src/steps/provider.ts b/installer/src/steps/provider.ts deleted file mode 100644 index 6fcb6bfa..00000000 --- a/installer/src/steps/provider.ts +++ /dev/null @@ -1,140 +0,0 @@ -import * as p from '@clack/prompts'; -import pc from 'picocolors'; - -export type ProviderType = 'claude' | 'gemini' | 'openrouter'; -export type ClaudeAuthMethod = 'cli' | 'api'; - -export interface ProviderConfig { - provider: ProviderType; - claudeAuthMethod?: ClaudeAuthMethod; - apiKey?: string; - model?: string; - rateLimitingEnabled?: boolean; -} - -export async function runProviderConfiguration(): Promise { - const provider = await p.select({ - message: 'Which AI provider should claude-mem use for memory compression?', - options: [ - { value: 'claude' as const, label: 'Claude', hint: 'uses your Claude subscription' }, - { value: 'gemini' as const, label: 'Gemini', hint: 'free tier available' }, - { value: 'openrouter' as const, label: 'OpenRouter', hint: 'free models available' }, - ], - }); - - if (p.isCancel(provider)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - const config: ProviderConfig = { provider }; - - if (provider === 'claude') { - const authMethod = await p.select({ - message: 'How should Claude authenticate?', - options: [ - { value: 'cli' as const, label: 'CLI (Max Plan subscription)', hint: 'no API key needed' }, - { value: 'api' as const, label: 'API Key', hint: 'uses Anthropic API credits' }, - ], - }); - - if (p.isCancel(authMethod)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - config.claudeAuthMethod = authMethod; - - if (authMethod === 'api') { - const apiKey = await p.password({ - message: 'Enter your Anthropic API key:', - validate: (value) => { - if (!value || value.trim().length === 0) return 'API key is required'; - if (!value.startsWith('sk-ant-')) return 'Anthropic API keys start with sk-ant-'; - }, - }); - - if (p.isCancel(apiKey)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - config.apiKey = apiKey; - } - } - - if (provider === 'gemini') { - const apiKey = await p.password({ - message: 'Enter your Gemini API key:', - validate: (value) => { - if (!value || value.trim().length === 0) return 'API key is required'; - }, - }); - - if (p.isCancel(apiKey)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - config.apiKey = apiKey; - - const model = await p.select({ - message: 'Which Gemini model?', - options: [ - { value: 'gemini-2.5-flash-lite' as const, label: 'Gemini 2.5 Flash Lite', hint: 'fastest, highest free RPM' }, - { value: 'gemini-2.5-flash' as const, label: 'Gemini 2.5 Flash', hint: 'balanced' }, - { value: 'gemini-3-flash-preview' as const, label: 'Gemini 3 Flash Preview', hint: 'latest' }, - ], - }); - - if (p.isCancel(model)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - config.model = model; - - const rateLimiting = await p.confirm({ - message: 'Enable rate limiting? (recommended for free tier)', - initialValue: true, - }); - - if (p.isCancel(rateLimiting)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - config.rateLimitingEnabled = rateLimiting; - } - - if (provider === 'openrouter') { - const apiKey = await p.password({ - message: 'Enter your OpenRouter API key:', - validate: (value) => { - if (!value || value.trim().length === 0) return 'API key is required'; - }, - }); - - if (p.isCancel(apiKey)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - config.apiKey = apiKey; - - const model = await p.text({ - message: 'Which OpenRouter model?', - defaultValue: 'xiaomi/mimo-v2-flash:free', - placeholder: 'xiaomi/mimo-v2-flash:free', - }); - - if (p.isCancel(model)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - config.model = model; - } - - return config; -} diff --git a/installer/src/steps/settings.ts b/installer/src/steps/settings.ts deleted file mode 100644 index 547da927..00000000 --- a/installer/src/steps/settings.ts +++ /dev/null @@ -1,174 +0,0 @@ -import * as p from '@clack/prompts'; -import pc from 'picocolors'; - -export interface SettingsConfig { - workerPort: string; - dataDir: string; - contextObservations: string; - logLevel: string; - pythonVersion: string; - chromaEnabled: boolean; - chromaMode?: 'local' | 'remote'; - chromaHost?: string; - chromaPort?: string; - chromaSsl?: boolean; -} - -export async function runSettingsConfiguration(): Promise { - const useDefaults = await p.confirm({ - message: 'Use default settings? (recommended for most users)', - initialValue: true, - }); - - if (p.isCancel(useDefaults)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - if (useDefaults) { - return { - workerPort: '37777', - dataDir: '~/.claude-mem', - contextObservations: '50', - logLevel: 'INFO', - pythonVersion: '3.13', - chromaEnabled: true, - chromaMode: 'local', - }; - } - - // Custom settings - const workerPort = await p.text({ - message: 'Worker service port:', - defaultValue: '37777', - placeholder: '37777', - validate: (value = '') => { - const port = parseInt(value, 10); - if (isNaN(port) || port < 1024 || port > 65535) { - return 'Port must be between 1024 and 65535'; - } - }, - }); - if (p.isCancel(workerPort)) { p.cancel('Installation cancelled.'); process.exit(0); } - - const dataDir = await p.text({ - message: 'Data directory:', - defaultValue: '~/.claude-mem', - placeholder: '~/.claude-mem', - }); - if (p.isCancel(dataDir)) { p.cancel('Installation cancelled.'); process.exit(0); } - - const contextObservations = await p.text({ - message: 'Number of context observations per session:', - defaultValue: '50', - placeholder: '50', - validate: (value = '') => { - const num = parseInt(value, 10); - if (isNaN(num) || num < 1 || num > 200) { - return 'Must be between 1 and 200'; - } - }, - }); - if (p.isCancel(contextObservations)) { p.cancel('Installation cancelled.'); process.exit(0); } - - const logLevel = await p.select({ - message: 'Log level:', - options: [ - { value: 'DEBUG', label: 'DEBUG', hint: 'verbose' }, - { value: 'INFO', label: 'INFO', hint: 'default' }, - { value: 'WARN', label: 'WARN' }, - { value: 'ERROR', label: 'ERROR', hint: 'errors only' }, - ], - initialValue: 'INFO', - }); - if (p.isCancel(logLevel)) { p.cancel('Installation cancelled.'); process.exit(0); } - - const pythonVersion = await p.text({ - message: 'Python version (for Chroma):', - defaultValue: '3.13', - placeholder: '3.13', - }); - if (p.isCancel(pythonVersion)) { p.cancel('Installation cancelled.'); process.exit(0); } - - const chromaEnabled = await p.confirm({ - message: 'Enable Chroma vector search?', - initialValue: true, - }); - if (p.isCancel(chromaEnabled)) { p.cancel('Installation cancelled.'); process.exit(0); } - - let chromaMode: 'local' | 'remote' | undefined; - let chromaHost: string | undefined; - let chromaPort: string | undefined; - let chromaSsl: boolean | undefined; - - if (chromaEnabled) { - const mode = await p.select({ - message: 'Chroma mode:', - options: [ - { value: 'local' as const, label: 'Local', hint: 'starts local Chroma server' }, - { value: 'remote' as const, label: 'Remote', hint: 'connect to existing server' }, - ], - }); - if (p.isCancel(mode)) { p.cancel('Installation cancelled.'); process.exit(0); } - chromaMode = mode; - - if (mode === 'remote') { - const host = await p.text({ - message: 'Chroma host:', - defaultValue: '127.0.0.1', - placeholder: '127.0.0.1', - }); - if (p.isCancel(host)) { p.cancel('Installation cancelled.'); process.exit(0); } - chromaHost = host; - - const port = await p.text({ - message: 'Chroma port:', - defaultValue: '8000', - placeholder: '8000', - validate: (value = '') => { - const portNum = parseInt(value, 10); - if (isNaN(portNum) || portNum < 1 || portNum > 65535) return 'Port must be between 1 and 65535'; - }, - }); - if (p.isCancel(port)) { p.cancel('Installation cancelled.'); process.exit(0); } - chromaPort = port; - - const ssl = await p.confirm({ - message: 'Use SSL for Chroma connection?', - initialValue: false, - }); - if (p.isCancel(ssl)) { p.cancel('Installation cancelled.'); process.exit(0); } - chromaSsl = ssl; - } - } - - const config: SettingsConfig = { - workerPort, - dataDir, - contextObservations, - logLevel, - pythonVersion, - chromaEnabled, - chromaMode, - chromaHost, - chromaPort, - chromaSsl, - }; - - // Show summary - const summaryLines = [ - `Worker port: ${pc.cyan(workerPort)}`, - `Data directory: ${pc.cyan(dataDir)}`, - `Context observations: ${pc.cyan(contextObservations)}`, - `Log level: ${pc.cyan(logLevel)}`, - `Python version: ${pc.cyan(pythonVersion)}`, - `Chroma: ${chromaEnabled ? pc.green('enabled') : pc.dim('disabled')}`, - ]; - if (chromaEnabled && chromaMode) { - summaryLines.push(`Chroma mode: ${pc.cyan(chromaMode)}`); - } - - p.note(summaryLines.join('\n'), 'Settings Summary'); - - return config; -} diff --git a/installer/src/steps/welcome.ts b/installer/src/steps/welcome.ts deleted file mode 100644 index 221a51bb..00000000 --- a/installer/src/steps/welcome.ts +++ /dev/null @@ -1,43 +0,0 @@ -import * as p from '@clack/prompts'; -import pc from 'picocolors'; -import { existsSync } from 'fs'; -import { expandHome } from '../utils/system.js'; - -export type InstallMode = 'fresh' | 'upgrade' | 'configure'; - -export async function runWelcome(): Promise { - p.intro(pc.bgCyan(pc.black(' claude-mem installer '))); - - p.log.info(`Version: 1.0.0`); - p.log.info(`Platform: ${process.platform} (${process.arch})`); - - const settingsExist = existsSync(expandHome('~/.claude-mem/settings.json')); - const pluginExist = existsSync(expandHome('~/.claude/plugins/marketplaces/thedotmack/')); - - const alreadyInstalled = settingsExist && pluginExist; - - if (alreadyInstalled) { - p.log.warn('Existing claude-mem installation detected.'); - } - - const installMode = await p.select({ - message: 'What would you like to do?', - options: alreadyInstalled - ? [ - { value: 'upgrade' as const, label: 'Upgrade', hint: 'update to latest version' }, - { value: 'configure' as const, label: 'Configure', hint: 'change settings only' }, - { value: 'fresh' as const, label: 'Fresh Install', hint: 'reinstall from scratch' }, - ] - : [ - { value: 'fresh' as const, label: 'Fresh Install', hint: 'recommended' }, - { value: 'configure' as const, label: 'Configure Only', hint: 'set up settings without installing' }, - ], - }); - - if (p.isCancel(installMode)) { - p.cancel('Installation cancelled.'); - process.exit(0); - } - - return installMode; -} diff --git a/installer/src/steps/worker.ts b/installer/src/steps/worker.ts deleted file mode 100644 index 595cb678..00000000 --- a/installer/src/steps/worker.ts +++ /dev/null @@ -1,67 +0,0 @@ -import * as p from '@clack/prompts'; -import pc from 'picocolors'; -import { spawn } from 'child_process'; -import { join } from 'path'; -import { homedir } from 'os'; -import { expandHome } from '../utils/system.js'; -import { findBinary } from '../utils/dependencies.js'; - -const MARKETPLACE_DIR = join(homedir(), '.claude', 'plugins', 'marketplaces', 'thedotmack'); - -const HEALTH_CHECK_INTERVAL_MS = 1000; -const HEALTH_CHECK_MAX_ATTEMPTS = 30; - -async function pollHealthEndpoint(port: string, maxAttempts: number = HEALTH_CHECK_MAX_ATTEMPTS): Promise { - for (let attempt = 0; attempt < maxAttempts; attempt++) { - try { - const response = await fetch(`http://127.0.0.1:${port}/api/health`); - if (response.ok) return true; - } catch { - // Expected during startup — worker not listening yet - } - await new Promise((resolve) => setTimeout(resolve, HEALTH_CHECK_INTERVAL_MS)); - } - return false; -} - -export async function runWorkerStartup(workerPort: string, dataDir: string): Promise { - const bunInfo = findBinary('bun', ['~/.bun/bin/bun', '/usr/local/bin/bun', '/opt/homebrew/bin/bun']); - - if (!bunInfo.found || !bunInfo.path) { - p.log.error('Bun is required to start the worker but was not found.'); - p.log.info('Install Bun: curl -fsSL https://bun.sh/install | bash'); - return; - } - - const workerScript = join(MARKETPLACE_DIR, 'plugin', 'scripts', 'worker-service.cjs'); - const expandedDataDir = expandHome(dataDir); - const logPath = join(expandedDataDir, 'logs'); - - const s = p.spinner(); - s.start('Starting worker service...'); - - // Start worker as a detached background process - const child = spawn(bunInfo.path, [workerScript], { - cwd: MARKETPLACE_DIR, - detached: true, - stdio: 'ignore', - env: { - ...process.env, - CLAUDE_MEM_WORKER_PORT: workerPort, - CLAUDE_MEM_DATA_DIR: expandedDataDir, - }, - }); - - child.unref(); - - // Poll the health endpoint until the worker is responsive - const workerIsHealthy = await pollHealthEndpoint(workerPort); - - if (workerIsHealthy) { - s.stop(`Worker running on port ${pc.cyan(workerPort)} ${pc.green('OK')}`); - } else { - s.stop(`Worker may still be starting. Check logs at: ${logPath}`); - p.log.warn('Health check timed out. The worker might need more time to initialize.'); - p.log.info(`Check status: curl http://127.0.0.1:${workerPort}/api/health`); - } -} diff --git a/installer/src/utils/dependencies.ts b/installer/src/utils/dependencies.ts deleted file mode 100644 index 74d1af9c..00000000 --- a/installer/src/utils/dependencies.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { existsSync } from 'fs'; -import { execSync } from 'child_process'; -import { commandExists, runCommand, expandHome, detectOS } from './system.js'; - -export interface BinaryInfo { - found: boolean; - path: string | null; - version: string | null; -} - -export function findBinary(name: string, extraPaths: string[] = []): BinaryInfo { - // Check PATH first - if (commandExists(name)) { - const result = runCommand('which', [name]); - const versionResult = runCommand(name, ['--version']); - return { - found: true, - path: result.stdout, - version: parseVersion(versionResult.stdout) || parseVersion(versionResult.stderr), - }; - } - - // Check extra known locations - for (const extraPath of extraPaths) { - const fullPath = expandHome(extraPath); - if (existsSync(fullPath)) { - const versionResult = runCommand(fullPath, ['--version']); - return { - found: true, - path: fullPath, - version: parseVersion(versionResult.stdout) || parseVersion(versionResult.stderr), - }; - } - } - - return { found: false, path: null, version: null }; -} - -function parseVersion(output: string): string | null { - if (!output) return null; - const match = output.match(/(\d+\.\d+(\.\d+)?)/); - return match ? match[1] : null; -} - -export function compareVersions(current: string, minimum: string): boolean { - const currentParts = current.split('.').map(Number); - const minimumParts = minimum.split('.').map(Number); - - for (let i = 0; i < Math.max(currentParts.length, minimumParts.length); i++) { - const a = currentParts[i] || 0; - const b = minimumParts[i] || 0; - if (a > b) return true; - if (a < b) return false; - } - return true; // equal -} - -export function installBun(): void { - const os = detectOS(); - if (os === 'windows') { - execSync('powershell -c "irm bun.sh/install.ps1 | iex"', { stdio: 'inherit' }); - } else { - execSync('curl -fsSL https://bun.sh/install | bash', { stdio: 'inherit' }); - } -} - -export function installUv(): void { - const os = detectOS(); - if (os === 'windows') { - execSync('powershell -c "irm https://astral.sh/uv/install.ps1 | iex"', { stdio: 'inherit' }); - } else { - execSync('curl -fsSL https://astral.sh/uv/install.sh | sh', { stdio: 'inherit' }); - } -} diff --git a/installer/src/utils/settings-writer.ts b/installer/src/utils/settings-writer.ts deleted file mode 100644 index 8aca67d4..00000000 --- a/installer/src/utils/settings-writer.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs'; -import { join } from 'path'; -import { homedir } from 'os'; -import type { ProviderConfig } from '../steps/provider.js'; -import type { SettingsConfig } from '../steps/settings.js'; - -export function expandDataDir(dataDir: string): string { - if (dataDir.startsWith('~')) { - return join(homedir(), dataDir.slice(1)); - } - return dataDir; -} - -export function buildSettingsObject( - providerConfig: ProviderConfig, - settingsConfig: SettingsConfig, -): Record { - const settings: Record = { - CLAUDE_MEM_WORKER_PORT: settingsConfig.workerPort, - CLAUDE_MEM_WORKER_HOST: '127.0.0.1', - CLAUDE_MEM_DATA_DIR: expandDataDir(settingsConfig.dataDir), - CLAUDE_MEM_CONTEXT_OBSERVATIONS: settingsConfig.contextObservations, - CLAUDE_MEM_LOG_LEVEL: settingsConfig.logLevel, - CLAUDE_MEM_PYTHON_VERSION: settingsConfig.pythonVersion, - CLAUDE_MEM_PROVIDER: providerConfig.provider, - }; - - // Provider-specific settings - if (providerConfig.provider === 'claude') { - settings.CLAUDE_MEM_CLAUDE_AUTH_METHOD = providerConfig.claudeAuthMethod ?? 'cli'; - } - - if (providerConfig.provider === 'gemini') { - if (providerConfig.apiKey) settings.CLAUDE_MEM_GEMINI_API_KEY = providerConfig.apiKey; - if (providerConfig.model) settings.CLAUDE_MEM_GEMINI_MODEL = providerConfig.model; - settings.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED = providerConfig.rateLimitingEnabled !== false ? 'true' : 'false'; - } - - if (providerConfig.provider === 'openrouter') { - if (providerConfig.apiKey) settings.CLAUDE_MEM_OPENROUTER_API_KEY = providerConfig.apiKey; - if (providerConfig.model) settings.CLAUDE_MEM_OPENROUTER_MODEL = providerConfig.model; - } - - // Chroma settings - if (settingsConfig.chromaEnabled) { - settings.CLAUDE_MEM_CHROMA_MODE = settingsConfig.chromaMode ?? 'local'; - if (settingsConfig.chromaMode === 'remote') { - if (settingsConfig.chromaHost) settings.CLAUDE_MEM_CHROMA_HOST = settingsConfig.chromaHost; - if (settingsConfig.chromaPort) settings.CLAUDE_MEM_CHROMA_PORT = settingsConfig.chromaPort; - if (settingsConfig.chromaSsl !== undefined) settings.CLAUDE_MEM_CHROMA_SSL = String(settingsConfig.chromaSsl); - } - } - - return settings; -} - -export function writeSettings( - providerConfig: ProviderConfig, - settingsConfig: SettingsConfig, -): void { - const dataDir = expandDataDir(settingsConfig.dataDir); - const settingsPath = join(dataDir, 'settings.json'); - - // Ensure data directory exists - if (!existsSync(dataDir)) { - mkdirSync(dataDir, { recursive: true }); - } - - // Merge with existing settings if upgrading - let existingSettings: Record = {}; - if (existsSync(settingsPath)) { - const raw = readFileSync(settingsPath, 'utf-8'); - existingSettings = JSON.parse(raw); - } - - const newSettings = buildSettingsObject(providerConfig, settingsConfig); - - // Merge: new settings override existing ones - const merged = { ...existingSettings, ...newSettings }; - - writeFileSync(settingsPath, JSON.stringify(merged, null, 2) + '\n', 'utf-8'); -} diff --git a/installer/src/utils/system.ts b/installer/src/utils/system.ts deleted file mode 100644 index 2c5ddcfc..00000000 --- a/installer/src/utils/system.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { execSync } from 'child_process'; -import { homedir } from 'os'; -import { join } from 'path'; - -export type OSType = 'macos' | 'linux' | 'windows'; - -export function detectOS(): OSType { - switch (process.platform) { - case 'darwin': return 'macos'; - case 'win32': return 'windows'; - default: return 'linux'; - } -} - -export function commandExists(command: string): boolean { - try { - execSync(`which ${command}`, { stdio: 'pipe' }); - return true; - } catch { - return false; - } -} - -export interface CommandResult { - stdout: string; - stderr: string; - exitCode: number; -} - -export function runCommand(command: string, args: string[] = []): CommandResult { - try { - const fullCommand = [command, ...args].join(' '); - const stdout = execSync(fullCommand, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }); - return { stdout: stdout.trim(), stderr: '', exitCode: 0 }; - } catch (error: any) { - return { - stdout: error.stdout?.toString().trim() ?? '', - stderr: error.stderr?.toString().trim() ?? '', - exitCode: error.status ?? 1, - }; - } -} - -export function expandHome(filepath: string): string { - if (filepath.startsWith('~')) { - return join(homedir(), filepath.slice(1)); - } - return filepath; -} diff --git a/installer/tsconfig.json b/installer/tsconfig.json deleted file mode 100644 index 69662ae0..00000000 --- a/installer/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "compilerOptions": { - "module": "ESNext", - "target": "ES2022", - "moduleResolution": "bundler", - "esModuleInterop": true, - "strict": true, - "outDir": "dist", - "rootDir": "src", - "declaration": false, - "skipLibCheck": true, - "resolveJsonModule": true, - "forceConsistentCasingInFileNames": true - }, - "include": ["src/**/*.ts"], - "exclude": ["node_modules", "dist"] -} diff --git a/openclaw/.npmignore b/openclaw/.npmignore new file mode 100644 index 00000000..c2658d7d --- /dev/null +++ b/openclaw/.npmignore @@ -0,0 +1 @@ +node_modules/ diff --git a/package.json b/package.json index 94989bfb..889c073c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "claude-mem", - "version": "10.6.3", + "version": "11.0.0", "description": "Memory compression system for Claude Code - persist context across sessions", "keywords": [ "claude", @@ -26,6 +26,9 @@ "url": "https://github.com/thedotmack/claude-mem/issues" }, "type": "module", + "bin": { + "claude-mem": "./dist/npx-cli/index.js" + }, "exports": { ".": { "types": "./dist/index.d.ts", @@ -39,7 +42,17 @@ }, "files": [ "dist", - "plugin" + "plugin/.claude-plugin", + "plugin/CLAUDE.md", + "plugin/package.json", + "plugin/hooks", + "plugin/modes", + "plugin/scripts/*.js", + "plugin/scripts/*.cjs", + "plugin/scripts/CLAUDE.md", + "plugin/skills", + "plugin/ui", + "openclaw" ], "engines": { "node": ">=18.0.0", @@ -97,12 +110,14 @@ }, "dependencies": { "@anthropic-ai/claude-agent-sdk": "^0.1.76", + "@clack/prompts": "^0.9.1", "@modelcontextprotocol/sdk": "^1.25.1", "ansi-to-html": "^0.7.2", "dompurify": "^3.3.1", "express": "^4.18.2", "glob": "^11.0.3", "handlebars": "^4.7.8", + "picocolors": "^1.1.1", "react": "^18.3.1", "react-dom": "^18.3.1", "yaml": "^2.8.2", diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index dd46118e..5fae59f3 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "claude-mem", - "version": "10.6.3", + "version": "11.0.0", "description": "Persistent memory system for Claude Code - seamlessly preserve context across sessions", "author": { "name": "Alex Newman" diff --git a/plugin/hooks/hooks.json b/plugin/hooks/hooks.json index 2f31d48a..d8328ca7 100644 --- a/plugin/hooks/hooks.json +++ b/plugin/hooks/hooks.json @@ -86,8 +86,8 @@ "hooks": [ { "type": "command", - "command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const{sessionId:s}=JSON.parse(d);if(!s){process.exit(0)}const r=require('http').request({hostname:'127.0.0.1',port:37777,path:'/api/sessions/complete',method:'POST',headers:{'Content-Type':'application/json'}},()=>process.exit(0));r.on('error',()=>process.exit(0));r.end(JSON.stringify({contentSessionId:s}));setTimeout(()=>process.exit(0),3000)}catch{process.exit(0)}})\"", - "timeout": 5 + "command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const{sessionId:s}=JSON.parse(d);if(!s){process.exit(0)}const r=require('http').request({hostname:'127.0.0.1',port:37777,path:'/api/sessions/complete',method:'POST',headers:{'Content-Type':'application/json'}});r.on('error',()=>{});r.end(JSON.stringify({contentSessionId:s}));process.exit(0)}catch{process.exit(0)}})\"", + "timeout": 2 } ] } diff --git a/plugin/modes/code.json b/plugin/modes/code.json index 9ec033c8..47f76886 100644 --- a/plugin/modes/code.json +++ b/plugin/modes/code.json @@ -87,8 +87,8 @@ "system_identity": "You are a Claude-Mem, a specialized observer tool for creating searchable memory FOR FUTURE SESSIONS.\n\nCRITICAL: Record what was LEARNED/BUILT/FIXED/DEPLOYED/CONFIGURED, not what you (the observer) are doing.\n\nYou do not have access to tools. All information you need is provided in messages. Create observations from what you observe - no investigation needed.", "spatial_awareness": "SPATIAL AWARENESS: Tool executions include the working directory (tool_cwd) to help you understand:\n- Which repository/project is being worked on\n- Where files are located relative to the project root\n- How to match requested paths to actual execution paths", "observer_role": "Your job is to monitor a different Claude Code session happening RIGHT NOW, with the goal of creating observations and progress summaries as the work is being done LIVE by the user. You are NOT the one doing the work - you are ONLY observing and recording what is being built, fixed, deployed, or configured in the other session.", - "recording_focus": "WHAT TO RECORD\n--------------\nFocus on deliverables and capabilities:\n- What the system NOW DOES differently (new capabilities)\n- What shipped to users/production (features, fixes, configs, docs)\n- Changes in technical domains (auth, data, UI, infra, DevOps, docs)\n\nUse verbs like: implemented, fixed, deployed, configured, migrated, optimized, added, refactored\n\n✅ GOOD EXAMPLES (describes what was built):\n- \"Authentication now supports OAuth2 with PKCE flow\"\n- \"Deployment pipeline runs canary releases with auto-rollback\"\n- \"Database indexes optimized for common query patterns\"\n\n❌ BAD EXAMPLES (describes observation process - DO NOT DO THIS):\n- \"Analyzed authentication implementation and stored findings\"\n- \"Tracked deployment steps and logged outcomes\"\n- \"Monitored database performance and recorded metrics\"", - "skip_guidance": "WHEN TO SKIP\n------------\nSkip routine operations:\n- Empty status checks\n- Package installations with no errors\n- Simple file listings\n- Repetitive operations you've already documented\n- If file related research comes back as empty or not found\n- **No output necessary if skipping.**", + "recording_focus": "WHAT TO RECORD\n--------------\nFocus on durable technical signal:\n- What the system NOW DOES differently (new capabilities)\n- What shipped to users/production (features, fixes, configs, docs)\n- Changes in technical domains (auth, data, UI, infra, DevOps, docs)\n- Concrete debugging or investigative findings from logs, traces, queue state, database rows, and code-path inspection\n\nUse verbs like: implemented, fixed, deployed, configured, migrated, optimized, added, refactored, discovered, confirmed, traced\n\n✅ GOOD EXAMPLES (describes what was built or learned):\n- \"Authentication now supports OAuth2 with PKCE flow\"\n- \"Deployment pipeline runs canary releases with auto-rollback\"\n- \"Database indexes optimized for common query patterns\"\n- \"Observation queue for claude-mem session timed out waiting for an agent pool slot\"\n- \"Fallback processing abandoned pending messages after Gemini and OpenRouter returned 404\"\n\n❌ BAD EXAMPLES (describes observation process - DO NOT DO THIS):\n- \"Analyzed authentication implementation and stored findings\"\n- \"Tracked deployment steps and logged outcomes\"\n- \"Monitored database performance and recorded metrics\"", + "skip_guidance": "WHEN TO SKIP\n------------\nSkip routine operations:\n- Empty status checks\n- Package installations with no errors\n- Simple file listings with no follow-on finding\n- Repetitive operations you've already documented\n- File related research that comes back empty or not found\n\nIf skipping, return an empty response only. Do not explain the skip in prose.", "type_guidance": "**type**: MUST be EXACTLY one of these 6 options (no other values allowed):\n - bugfix: something was broken, now fixed\n - feature: new capability or functionality added\n - refactor: code restructured, behavior unchanged\n - change: generic modification (docs, config, misc)\n - discovery: learning about existing system\n - decision: architectural/design choice with rationale", "concept_guidance": "**concepts**: 2-5 knowledge-type categories. MUST use ONLY these exact keywords:\n - how-it-works: understanding mechanisms\n - why-it-exists: purpose or rationale\n - what-changed: modifications made\n - problem-solution: issues and their fixes\n - gotcha: traps or edge cases\n - pattern: reusable approach\n - trade-off: pros/cons of a decision\n\n IMPORTANT: Do NOT include the observation type (change/discovery/decision) as a concept.\n Types and concepts are separate dimensions.", "field_guidance": "**facts**: Concise, self-contained statements\nEach fact is ONE piece of information\n No pronouns - each fact must stand alone\n Include specific details: filenames, functions, values\n\n**files**: All files touched (full paths from project root)", @@ -122,4 +122,4 @@ "summary_format_instruction": "Respond in this XML format:", "summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!" } -} \ No newline at end of file +} diff --git a/plugin/package.json b/plugin/package.json index 86f8d58c..2f4ada6f 100644 --- a/plugin/package.json +++ b/plugin/package.json @@ -1,6 +1,6 @@ { "name": "claude-mem-plugin", - "version": "10.6.3", + "version": "11.0.0", "private": true, "description": "Runtime dependencies for claude-mem bundled hooks", "type": "module", diff --git a/plugin/scripts/context-generator.cjs b/plugin/scripts/context-generator.cjs index 9071ec61..fbbe8f1b 100644 --- a/plugin/scripts/context-generator.cjs +++ b/plugin/scripts/context-generator.cjs @@ -1,12 +1,12 @@ -"use strict";var Tt=Object.create;var U=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var ft=Object.getOwnPropertyNames;var bt=Object.getPrototypeOf,St=Object.prototype.hasOwnProperty;var ht=(r,e)=>{for(var t in e)U(r,t,{get:e[t],enumerable:!0})},de=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ft(e))!St.call(r,n)&&n!==t&&U(r,n,{get:()=>e[n],enumerable:!(s=gt(e,n))||s.enumerable});return r};var y=(r,e,t)=>(t=r!=null?Tt(bt(r)):{},de(e||!r||!r.__esModule?U(t,"default",{value:r,enumerable:!0}):t,r)),Ot=r=>de(U({},"__esModule",{value:!0}),r);var Pt={};ht(Pt,{generateContext:()=>ae});module.exports=Ot(Pt);var _t=y(require("path"),1),ut=require("os"),lt=require("fs");var Te=require("bun:sqlite");var S=require("path"),K=require("os"),k=require("fs");var me=require("url");var A=require("fs"),v=require("path"),pe=require("os"),q=(o=>(o[o.DEBUG=0]="DEBUG",o[o.INFO=1]="INFO",o[o.WARN=2]="WARN",o[o.ERROR=3]="ERROR",o[o.SILENT=4]="SILENT",o))(q||{}),ce=(0,v.join)((0,pe.homedir)(),".claude-mem"),V=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,v.join)(ce,"logs");(0,A.existsSync)(e)||(0,A.mkdirSync)(e,{recursive:!0});let t=new Date().toISOString().split("T")[0];this.logFilePath=(0,v.join)(e,`claude-mem-${t}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let e=(0,v.join)(ce,"settings.json");if((0,A.existsSync)(e)){let t=(0,A.readFileSync)(e,"utf-8"),n=(JSON.parse(t).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=q[n]??1}else this.level=1}catch{this.level=1}return this.level}correlationId(e,t){return`obs-${e}-${t}`}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 t=Object.keys(e);return t.length===0?"{}":t.length<=3?JSON.stringify(e):`{${t.length} keys: ${t.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,t){if(!t)return e;let s=t;if(typeof t=="string")try{s=JSON.parse(t)}catch{s=t}if(e==="Bash"&&s.command)return`${e}(${s.command})`;if(s.file_path)return`${e}(${s.file_path})`;if(s.notebook_path)return`${e}(${s.notebook_path})`;if(e==="Glob"&&s.pattern)return`${e}(${s.pattern})`;if(e==="Grep"&&s.pattern)return`${e}(${s.pattern})`;if(s.url)return`${e}(${s.url})`;if(s.query)return`${e}(${s.query})`;if(e==="Task"){if(s.subagent_type)return`${e}(${s.subagent_type})`;if(s.description)return`${e}(${s.description})`}return e==="Skill"&&s.skill?`${e}(${s.skill})`:e==="LSP"&&s.operation?`${e}(${s.operation})`:e}formatTimestamp(e){let t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0"),o=String(e.getHours()).padStart(2,"0"),i=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),d=String(e.getMilliseconds()).padStart(3,"0");return`${t}-${s}-${n} ${o}:${i}:${a}.${d}`}log(e,t,s,n,o){if(e{for(var t in e)x(r,t,{get:e[t],enumerable:!0})},de=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ft(e))!bt.call(r,n)&&n!==t&&x(r,n,{get:()=>e[n],enumerable:!(s=gt(e,n))||s.enumerable});return r};var M=(r,e,t)=>(t=r!=null?Tt(St(r)):{},de(e||!r||!r.__esModule?x(t,"default",{value:r,enumerable:!0}):t,r)),Ot=r=>de(x({},"__esModule",{value:!0}),r);var Pt={};ht(Pt,{generateContext:()=>ae});module.exports=Ot(Pt);var mt=M(require("path"),1),ut=require("os"),lt=require("fs");var Te=require("bun:sqlite");var b=require("path"),K=require("os"),k=require("fs");var pe=require("url");var I=require("fs"),L=require("path"),ce=require("os"),q=(o=>(o[o.DEBUG=0]="DEBUG",o[o.INFO=1]="INFO",o[o.WARN=2]="WARN",o[o.ERROR=3]="ERROR",o[o.SILENT=4]="SILENT",o))(q||{}),_e=(0,L.join)((0,ce.homedir)(),".claude-mem"),V=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,L.join)(_e,"logs");(0,I.existsSync)(e)||(0,I.mkdirSync)(e,{recursive:!0});let t=new Date().toISOString().split("T")[0];this.logFilePath=(0,L.join)(e,`claude-mem-${t}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let e=(0,L.join)(_e,"settings.json");if((0,I.existsSync)(e)){let t=(0,I.readFileSync)(e,"utf-8"),n=(JSON.parse(t).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=q[n]??1}else this.level=1}catch{this.level=1}return this.level}correlationId(e,t){return`obs-${e}-${t}`}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 t=Object.keys(e);return t.length===0?"{}":t.length<=3?JSON.stringify(e):`{${t.length} keys: ${t.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,t){if(!t)return e;let s=t;if(typeof t=="string")try{s=JSON.parse(t)}catch{s=t}if(e==="Bash"&&s.command)return`${e}(${s.command})`;if(s.file_path)return`${e}(${s.file_path})`;if(s.notebook_path)return`${e}(${s.notebook_path})`;if(e==="Glob"&&s.pattern)return`${e}(${s.pattern})`;if(e==="Grep"&&s.pattern)return`${e}(${s.pattern})`;if(s.url)return`${e}(${s.url})`;if(s.query)return`${e}(${s.query})`;if(e==="Task"){if(s.subagent_type)return`${e}(${s.subagent_type})`;if(s.description)return`${e}(${s.description})`}return e==="Skill"&&s.skill?`${e}(${s.skill})`:e==="LSP"&&s.operation?`${e}(${s.operation})`:e}formatTimestamp(e){let t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0"),o=String(e.getHours()).padStart(2,"0"),i=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),d=String(e.getMilliseconds()).padStart(3,"0");return`${t}-${s}-${n} ${o}:${i}:${a}.${d}`}log(e,t,s,n,o){if(e0&&(l=` {${Object.entries(u).map(([g,h])=>`${g}=${h}`).join(", ")}}`)}let T=`[${i}] [${a}] [${d}] ${p}${s}${l}${_}`;if(this.logFilePath)try{(0,A.appendFileSync)(this.logFilePath,T+` +${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?m=` +`+JSON.stringify(o,null,2):m=" "+this.formatData(o));let l="";if(n){let{sessionId:E,memorySessionId:f,correlationId:R,...u}=n;Object.keys(u).length>0&&(l=` {${Object.entries(u).map(([g,h])=>`${g}=${h}`).join(", ")}}`)}let T=`[${i}] [${a}] [${d}] ${c}${s}${l}${m}`;if(this.logFilePath)try{(0,I.appendFileSync)(this.logFilePath,T+` `,"utf8")}catch(E){process.stderr.write(`[LOGGER] Failed to write to log file: ${E} `)}else process.stderr.write(T+` -`)}debug(e,t,s,n){this.log(0,e,t,s,n)}info(e,t,s,n){this.log(1,e,t,s,n)}warn(e,t,s,n){this.log(2,e,t,s,n)}error(e,t,s,n){this.log(3,e,t,s,n)}dataIn(e,t,s,n){this.info(e,`\u2192 ${t}`,s,n)}dataOut(e,t,s,n){this.info(e,`\u2190 ${t}`,s,n)}success(e,t,s,n){this.info(e,`\u2713 ${t}`,s,n)}failure(e,t,s,n){this.error(e,`\u2717 ${t}`,s,n)}timing(e,t,s,n){this.info(e,`\u23F1 ${t}`,n,{duration:`${s}ms`})}happyPathError(e,t,s,n,o=""){let p=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),_=p?`${p[1].split("/").pop()}:${p[2]}`:"unknown",l={...s,location:_};return this.warn(e,`[HAPPY-PATH] ${t}`,l,n),o}},m=new V;var At={};function Rt(){return typeof __dirname<"u"?__dirname:(0,S.dirname)((0,me.fileURLToPath)(At.url))}var Ct=Rt();function Nt(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let r=(0,S.join)((0,K.homedir)(),".claude-mem"),e=(0,S.join)(r,"settings.json");try{if((0,k.existsSync)(e)){let{readFileSync:t}=require("fs"),s=JSON.parse(t(e,"utf-8")),n=s.env??s;if(n.CLAUDE_MEM_DATA_DIR)return n.CLAUDE_MEM_DATA_DIR}}catch{}return r}var C=Nt(),I=process.env.CLAUDE_CONFIG_DIR||(0,S.join)((0,K.homedir)(),".claude"),Bt=(0,S.join)(I,"plugins","marketplaces","thedotmack"),Wt=(0,S.join)(C,"archives"),Yt=(0,S.join)(C,"logs"),qt=(0,S.join)(C,"trash"),Vt=(0,S.join)(C,"backups"),Kt=(0,S.join)(C,"modes"),Jt=(0,S.join)(C,"settings.json"),_e=(0,S.join)(C,"claude-mem.db"),Qt=(0,S.join)(C,"vector-db"),zt=(0,S.join)(C,"observer-sessions"),Zt=(0,S.join)(I,"settings.json"),es=(0,S.join)(I,"commands"),ts=(0,S.join)(I,"CLAUDE.md");function ue(r){(0,k.mkdirSync)(r,{recursive:!0})}function le(){return(0,S.join)(Ct,"..")}var Ee=require("crypto");var It=3e4;function w(r,e,t){return(0,Ee.createHash)("sha256").update((r||"")+(e||"")+(t||"")).digest("hex").slice(0,16)}function $(r,e,t){let s=t-It;return r.prepare("SELECT id, created_at_epoch FROM observations WHERE content_hash = ? AND created_at_epoch > ?").get(e,s)}var F=class{db;constructor(e=_e){e!==":memory:"&&ue(C),this.db=new Te.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.addOnUpdateCascadeToForeignKeys(),this.addObservationContentHashColumn(),this.addSessionCustomTitleColumn()}initializeSchema(){this.db.run(` +`)}debug(e,t,s,n){this.log(0,e,t,s,n)}info(e,t,s,n){this.log(1,e,t,s,n)}warn(e,t,s,n){this.log(2,e,t,s,n)}error(e,t,s,n){this.log(3,e,t,s,n)}dataIn(e,t,s,n){this.info(e,`\u2192 ${t}`,s,n)}dataOut(e,t,s,n){this.info(e,`\u2190 ${t}`,s,n)}success(e,t,s,n){this.info(e,`\u2713 ${t}`,s,n)}failure(e,t,s,n){this.error(e,`\u2717 ${t}`,s,n)}timing(e,t,s,n){this.info(e,`\u23F1 ${t}`,n,{duration:`${s}ms`})}happyPathError(e,t,s,n,o=""){let c=((new Error().stack||"").split(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),m=c?`${c[1].split("/").pop()}:${c[2]}`:"unknown",l={...s,location:m};return this.warn(e,`[HAPPY-PATH] ${t}`,l,n),o}},p=new V;var It={};function Rt(){return typeof __dirname<"u"?__dirname:(0,b.dirname)((0,pe.fileURLToPath)(It.url))}var Ct=Rt();function Nt(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let r=(0,b.join)((0,K.homedir)(),".claude-mem"),e=(0,b.join)(r,"settings.json");try{if((0,k.existsSync)(e)){let{readFileSync:t}=require("fs"),s=JSON.parse(t(e,"utf-8")),n=s.env??s;if(n.CLAUDE_MEM_DATA_DIR)return n.CLAUDE_MEM_DATA_DIR}}catch{}return r}var C=Nt(),A=process.env.CLAUDE_CONFIG_DIR||(0,b.join)((0,K.homedir)(),".claude"),Bt=(0,b.join)(A,"plugins","marketplaces","thedotmack"),Wt=(0,b.join)(C,"archives"),Yt=(0,b.join)(C,"logs"),qt=(0,b.join)(C,"trash"),Vt=(0,b.join)(C,"backups"),Kt=(0,b.join)(C,"modes"),Jt=(0,b.join)(C,"settings.json"),me=(0,b.join)(C,"claude-mem.db"),Qt=(0,b.join)(C,"vector-db"),zt=(0,b.join)(C,"observer-sessions"),Zt=(0,b.join)(A,"settings.json"),es=(0,b.join)(A,"commands"),ts=(0,b.join)(A,"CLAUDE.md");function ue(r){(0,k.mkdirSync)(r,{recursive:!0})}function le(){return(0,b.join)(Ct,"..")}var Ee=require("crypto");var At=3e4;function w(r,e,t){return(0,Ee.createHash)("sha256").update((r||"")+(e||"")+(t||"")).digest("hex").slice(0,16)}function $(r,e,t){let s=t-At;return r.prepare("SELECT id, created_at_epoch FROM observations WHERE content_hash = ? AND created_at_epoch > ?").get(e,s)}var F=class{db;constructor(e=me){e!==":memory:"&&ue(C),this.db=new Te.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.addOnUpdateCascadeToForeignKeys(),this.addObservationContentHashColumn(),this.addSessionCustomTitleColumn()}initializeSchema(){this.db.run(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, @@ -68,7 +68,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` CREATE INDEX IF NOT EXISTS idx_session_summaries_sdk_session ON session_summaries(memory_session_id); CREATE INDEX IF NOT EXISTS idx_session_summaries_project ON session_summaries(project); CREATE INDEX IF NOT EXISTS idx_session_summaries_created ON session_summaries(created_at_epoch DESC); - `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString())}ensureWorkerPortColumn(){this.db.query("PRAGMA table_info(sdk_sessions)").all().some(s=>s.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),m.debug("DB","Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}ensurePromptTrackingColumns(){this.db.query("PRAGMA table_info(sdk_sessions)").all().some(a=>a.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),m.debug("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(a=>a.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),m.debug("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(a=>a.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),m.debug("DB","Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}removeSessionSummariesUniqueConstraint(){if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(s=>s.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}m.debug("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run("DROP TABLE IF EXISTS session_summaries_new"),this.db.run(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString())}ensureWorkerPortColumn(){this.db.query("PRAGMA table_info(sdk_sessions)").all().some(s=>s.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),p.debug("DB","Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}ensurePromptTrackingColumns(){this.db.query("PRAGMA table_info(sdk_sessions)").all().some(a=>a.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),p.debug("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(a=>a.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),p.debug("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(a=>a.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),p.debug("DB","Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}removeSessionSummariesUniqueConstraint(){if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(s=>s.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}p.debug("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run("DROP TABLE IF EXISTS session_summaries_new"),this.db.run(` CREATE TABLE session_summaries_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -96,7 +96,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` CREATE INDEX idx_session_summaries_sdk_session ON session_summaries(memory_session_id); CREATE INDEX idx_session_summaries_project ON session_summaries(project); CREATE INDEX idx_session_summaries_created ON session_summaries(created_at_epoch DESC); - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString()),m.debug("DB","Successfully removed UNIQUE constraint from session_summaries.memory_session_id")}addObservationHierarchicalFields(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(8))return;if(this.db.query("PRAGMA table_info(observations)").all().some(n=>n.name==="title")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString());return}m.debug("DB","Adding hierarchical fields to observations table"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString()),p.debug("DB","Successfully removed UNIQUE constraint from session_summaries.memory_session_id")}addObservationHierarchicalFields(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(8))return;if(this.db.query("PRAGMA table_info(observations)").all().some(n=>n.name==="title")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString());return}p.debug("DB","Adding hierarchical fields to observations table"),this.db.run(` ALTER TABLE observations ADD COLUMN title TEXT; ALTER TABLE observations ADD COLUMN subtitle TEXT; ALTER TABLE observations ADD COLUMN facts TEXT; @@ -104,7 +104,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` ALTER TABLE observations ADD COLUMN concepts TEXT; ALTER TABLE observations ADD COLUMN files_read TEXT; ALTER TABLE observations ADD COLUMN files_modified TEXT; - `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),m.debug("DB","Successfully added hierarchical fields to observations table")}makeObservationsTextNullable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let s=this.db.query("PRAGMA table_info(observations)").all().find(n=>n.name==="text");if(!s||s.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}m.debug("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run("DROP TABLE IF EXISTS observations_new"),this.db.run(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),p.debug("DB","Successfully added hierarchical fields to observations table")}makeObservationsTextNullable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let s=this.db.query("PRAGMA table_info(observations)").all().find(n=>n.name==="text");if(!s||s.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}p.debug("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run("DROP TABLE IF EXISTS observations_new"),this.db.run(` CREATE TABLE observations_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -134,7 +134,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` CREATE INDEX idx_observations_project ON observations(project); CREATE INDEX idx_observations_type ON observations(type); CREATE INDEX idx_observations_created ON observations(created_at_epoch DESC); - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString()),m.debug("DB","Successfully made observations.text nullable")}createUserPromptsTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(10))return;if(this.db.query("PRAGMA table_info(user_prompts)").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString());return}m.debug("DB","Creating user_prompts table with FTS5 support"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString()),p.debug("DB","Successfully made observations.text nullable")}createUserPromptsTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(10))return;if(this.db.query("PRAGMA table_info(user_prompts)").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString());return}p.debug("DB","Creating user_prompts table with FTS5 support"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE user_prompts ( id INTEGER PRIMARY KEY AUTOINCREMENT, content_session_id TEXT NOT NULL, @@ -172,7 +172,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` INSERT INTO user_prompts_fts(rowid, prompt_text) VALUES (new.id, new.prompt_text); END; - `)}catch(s){m.warn("DB","FTS5 not available \u2014 user_prompts_fts skipped (search uses ChromaDB)",{},s)}this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),m.debug("DB","Successfully created user_prompts table")}ensureDiscoveryTokensColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.query("PRAGMA table_info(observations)").all().some(i=>i.name==="discovery_tokens")||(this.db.run("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),m.debug("DB","Added discovery_tokens column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(i=>i.name==="discovery_tokens")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),m.debug("DB","Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}createPendingMessagesTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(16))return;if(this.db.query("SELECT name FROM sqlite_master WHERE type='table' AND name='pending_messages'").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString());return}m.debug("DB","Creating pending_messages table"),this.db.run(` + `)}catch(s){p.warn("DB","FTS5 not available \u2014 user_prompts_fts skipped (search uses ChromaDB)",{},s)}this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),p.debug("DB","Successfully created user_prompts table")}ensureDiscoveryTokensColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.query("PRAGMA table_info(observations)").all().some(i=>i.name==="discovery_tokens")||(this.db.run("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),p.debug("DB","Added discovery_tokens column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(i=>i.name==="discovery_tokens")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),p.debug("DB","Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}createPendingMessagesTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(16))return;if(this.db.query("SELECT name FROM sqlite_master WHERE type='table' AND name='pending_messages'").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString());return}p.debug("DB","Creating pending_messages table"),this.db.run(` CREATE TABLE pending_messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, session_db_id INTEGER NOT NULL, @@ -192,7 +192,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` completed_at_epoch INTEGER, FOREIGN KEY (session_db_id) REFERENCES sdk_sessions(id) ON DELETE CASCADE ) - `),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_session ON pending_messages(session_db_id)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_status ON pending_messages(status)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_claude_session ON pending_messages(content_session_id)"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString()),m.debug("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;m.debug("DB","Checking session ID columns for semantic clarity rename");let t=0,s=(n,o,i)=>{let a=this.db.query(`PRAGMA table_info(${n})`).all(),d=a.some(_=>_.name===o);return a.some(_=>_.name===i)?!1:d?(this.db.run(`ALTER TABLE ${n} RENAME COLUMN ${o} TO ${i}`),m.debug("DB",`Renamed ${n}.${o} to ${i}`),!0):(m.warn("DB",`Column ${o} not found in ${n}, skipping rename`),!1)};s("sdk_sessions","claude_session_id","content_session_id")&&t++,s("sdk_sessions","sdk_session_id","memory_session_id")&&t++,s("pending_messages","claude_session_id","content_session_id")&&t++,s("observations","sdk_session_id","memory_session_id")&&t++,s("session_summaries","sdk_session_id","memory_session_id")&&t++,s("user_prompts","claude_session_id","content_session_id")&&t++,this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(17,new Date().toISOString()),t>0?m.debug("DB",`Successfully renamed ${t} session ID columns`):m.debug("DB","No session ID column renames needed (already up to date)")}repairSessionIdColumnRename(){this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(19)||this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(19,new Date().toISOString())}addFailedAtEpochColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(20))return;this.db.query("PRAGMA table_info(pending_messages)").all().some(n=>n.name==="failed_at_epoch")||(this.db.run("ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER"),m.debug("DB","Added failed_at_epoch column to pending_messages table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(20,new Date().toISOString())}addOnUpdateCascadeToForeignKeys(){if(!this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(21)){m.debug("DB","Adding ON UPDATE CASCADE to FK constraints on observations and session_summaries"),this.db.run("PRAGMA foreign_keys = OFF"),this.db.run("BEGIN TRANSACTION");try{this.db.run("DROP TRIGGER IF EXISTS observations_ai"),this.db.run("DROP TRIGGER IF EXISTS observations_ad"),this.db.run("DROP TRIGGER IF EXISTS observations_au"),this.db.run("DROP TABLE IF EXISTS observations_new"),this.db.run(` + `),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_session ON pending_messages(session_db_id)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_status ON pending_messages(status)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_claude_session ON pending_messages(content_session_id)"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString()),p.debug("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;p.debug("DB","Checking session ID columns for semantic clarity rename");let t=0,s=(n,o,i)=>{let a=this.db.query(`PRAGMA table_info(${n})`).all(),d=a.some(m=>m.name===o);return a.some(m=>m.name===i)?!1:d?(this.db.run(`ALTER TABLE ${n} RENAME COLUMN ${o} TO ${i}`),p.debug("DB",`Renamed ${n}.${o} to ${i}`),!0):(p.warn("DB",`Column ${o} not found in ${n}, skipping rename`),!1)};s("sdk_sessions","claude_session_id","content_session_id")&&t++,s("sdk_sessions","sdk_session_id","memory_session_id")&&t++,s("pending_messages","claude_session_id","content_session_id")&&t++,s("observations","sdk_session_id","memory_session_id")&&t++,s("session_summaries","sdk_session_id","memory_session_id")&&t++,s("user_prompts","claude_session_id","content_session_id")&&t++,this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(17,new Date().toISOString()),t>0?p.debug("DB",`Successfully renamed ${t} session ID columns`):p.debug("DB","No session ID column renames needed (already up to date)")}repairSessionIdColumnRename(){this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(19)||this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(19,new Date().toISOString())}addFailedAtEpochColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(20))return;this.db.query("PRAGMA table_info(pending_messages)").all().some(n=>n.name==="failed_at_epoch")||(this.db.run("ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER"),p.debug("DB","Added failed_at_epoch column to pending_messages table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(20,new Date().toISOString())}addOnUpdateCascadeToForeignKeys(){if(!this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(21)){p.debug("DB","Adding ON UPDATE CASCADE to FK constraints on observations and session_summaries"),this.db.run("PRAGMA foreign_keys = OFF"),this.db.run("BEGIN TRANSACTION");try{this.db.run("DROP TRIGGER IF EXISTS observations_ai"),this.db.run("DROP TRIGGER IF EXISTS observations_ad"),this.db.run("DROP TRIGGER IF EXISTS observations_au"),this.db.run("DROP TABLE IF EXISTS observations_new"),this.db.run(` CREATE TABLE observations_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -286,7 +286,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` INSERT INTO session_summaries_fts(rowid, request, investigated, learned, completed, next_steps, notes) VALUES (new.id, new.request, new.investigated, new.learned, new.completed, new.next_steps, new.notes); END; - `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(21,new Date().toISOString()),this.db.run("COMMIT"),this.db.run("PRAGMA foreign_keys = ON"),m.debug("DB","Successfully added ON UPDATE CASCADE to FK constraints")}catch(t){throw this.db.run("ROLLBACK"),this.db.run("PRAGMA foreign_keys = ON"),t}}}addObservationContentHashColumn(){if(this.db.query("PRAGMA table_info(observations)").all().some(s=>s.name==="content_hash")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(22,new Date().toISOString());return}this.db.run("ALTER TABLE observations ADD COLUMN content_hash TEXT"),this.db.run("UPDATE observations SET content_hash = substr(hex(randomblob(8)), 1, 16) WHERE content_hash IS NULL"),this.db.run("CREATE INDEX IF NOT EXISTS idx_observations_content_hash ON observations(content_hash, created_at_epoch)"),m.debug("DB","Added content_hash column to observations table with backfill and index"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(22,new Date().toISOString())}addSessionCustomTitleColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(23))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(n=>n.name==="custom_title")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN custom_title TEXT"),m.debug("DB","Added custom_title column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(23,new Date().toISOString())}updateMemorySessionId(e,t){this.db.prepare(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(21,new Date().toISOString()),this.db.run("COMMIT"),this.db.run("PRAGMA foreign_keys = ON"),p.debug("DB","Successfully added ON UPDATE CASCADE to FK constraints")}catch(t){throw this.db.run("ROLLBACK"),this.db.run("PRAGMA foreign_keys = ON"),t}}}addObservationContentHashColumn(){if(this.db.query("PRAGMA table_info(observations)").all().some(s=>s.name==="content_hash")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(22,new Date().toISOString());return}this.db.run("ALTER TABLE observations ADD COLUMN content_hash TEXT"),this.db.run("UPDATE observations SET content_hash = substr(hex(randomblob(8)), 1, 16) WHERE content_hash IS NULL"),this.db.run("CREATE INDEX IF NOT EXISTS idx_observations_content_hash ON observations(content_hash, created_at_epoch)"),p.debug("DB","Added content_hash column to observations table with backfill and index"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(22,new Date().toISOString())}addSessionCustomTitleColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(23))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(n=>n.name==="custom_title")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN custom_title TEXT"),p.debug("DB","Added custom_title column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(23,new Date().toISOString())}updateMemorySessionId(e,t){this.db.prepare(` UPDATE sdk_sessions SET memory_session_id = ? WHERE id = ? @@ -294,7 +294,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` SELECT id, memory_session_id FROM sdk_sessions WHERE id = ? `).get(e);if(!s)throw new Error(`Session ${e} not found in sdk_sessions`);s.memory_session_id!==t&&(this.db.prepare(` UPDATE sdk_sessions SET memory_session_id = ? WHERE id = ? - `).run(t,e),m.info("DB","Registered memory_session_id before storage (FK fix)",{sessionDbId:e,oldId:s.memory_session_id,newId:t}))}getRecentSummaries(e,t=10){return this.db.prepare(` + `).run(t,e),p.info("DB","Registered memory_session_id before storage (FK fix)",{sessionDbId:e,oldId:s.memory_session_id,newId:t}))}getRecentSummaries(e,t=10){return this.db.prepare(` SELECT request, investigated, learned, completed, next_steps, files_read, files_edited, notes, prompt_number, created_at @@ -382,12 +382,12 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` SELECT * FROM observations WHERE id = ? - `).get(e)||null}getObservationsByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:n,project:o,type:i,concepts:a,files:d}=t,p=s==="date_asc"?"ASC":"DESC",_=n?`LIMIT ${n}`:"",l=e.map(()=>"?").join(","),T=[...e],E=[];if(o&&(E.push("project = ?"),T.push(o)),i)if(Array.isArray(i)){let u=i.map(()=>"?").join(",");E.push(`type IN (${u})`),T.push(...i)}else E.push("type = ?"),T.push(i);if(a){let u=Array.isArray(a)?a:[a],b=u.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");T.push(...u),E.push(`(${b.join(" OR ")})`)}if(d){let u=Array.isArray(d)?d:[d],b=u.map(()=>"(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))");u.forEach(g=>{T.push(`%${g}%`,`%${g}%`)}),E.push(`(${b.join(" OR ")})`)}let f=E.length>0?`WHERE id IN (${l}) AND ${E.join(" AND ")}`:`WHERE id IN (${l})`;return this.db.prepare(` + `).get(e)||null}getObservationsByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:n,project:o,type:i,concepts:a,files:d}=t,c=s==="date_asc"?"ASC":"DESC",m=n?`LIMIT ${n}`:"",l=e.map(()=>"?").join(","),T=[...e],E=[];if(o&&(E.push("project = ?"),T.push(o)),i)if(Array.isArray(i)){let u=i.map(()=>"?").join(",");E.push(`type IN (${u})`),T.push(...i)}else E.push("type = ?"),T.push(i);if(a){let u=Array.isArray(a)?a:[a],S=u.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");T.push(...u),E.push(`(${S.join(" OR ")})`)}if(d){let u=Array.isArray(d)?d:[d],S=u.map(()=>"(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))");u.forEach(g=>{T.push(`%${g}%`,`%${g}%`)}),E.push(`(${S.join(" OR ")})`)}let f=E.length>0?`WHERE id IN (${l}) AND ${E.join(" AND ")}`:`WHERE id IN (${l})`;return this.db.prepare(` SELECT * FROM observations ${f} - ORDER BY created_at_epoch ${p} - ${_} + ORDER BY created_at_epoch ${c} + ${m} `).all(...T)}getSummaryForSession(e){return this.db.prepare(` SELECT request, investigated, learned, completed, next_steps, @@ -435,37 +435,37 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` FROM user_prompts WHERE content_session_id = ? AND prompt_number = ? LIMIT 1 - `).get(e,t)?.prompt_text??null}storeObservation(e,t,s,n,o=0,i){let a=i??Date.now(),d=new Date(a).toISOString(),p=w(e,s.title,s.narrative),_=$(this.db,p,a);if(_)return{id:_.id,createdAtEpoch:_.created_at_epoch};let T=this.db.prepare(` + `).get(e,t)?.prompt_text??null}storeObservation(e,t,s,n,o=0,i){let a=i??Date.now(),d=new Date(a).toISOString(),c=w(e,s.title,s.narrative),m=$(this.db,c,a);if(m)return{id:m.id,createdAtEpoch:m.created_at_epoch};let T=this.db.prepare(` INSERT INTO observations (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, content_hash, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,t,s.type,s.title,s.subtitle,JSON.stringify(s.facts),s.narrative,JSON.stringify(s.concepts),JSON.stringify(s.files_read),JSON.stringify(s.files_modified),n||null,o,p,d,a);return{id:Number(T.lastInsertRowid),createdAtEpoch:a}}storeSummary(e,t,s,n,o=0,i){let a=i??Date.now(),d=new Date(a).toISOString(),_=this.db.prepare(` + `).run(e,t,s.type,s.title,s.subtitle,JSON.stringify(s.facts),s.narrative,JSON.stringify(s.concepts),JSON.stringify(s.files_read),JSON.stringify(s.files_modified),n||null,o,c,d,a);return{id:Number(T.lastInsertRowid),createdAtEpoch:a}}storeSummary(e,t,s,n,o=0,i){let a=i??Date.now(),d=new Date(a).toISOString(),m=this.db.prepare(` INSERT INTO session_summaries (memory_session_id, project, request, investigated, learned, completed, next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,t,s.request,s.investigated,s.learned,s.completed,s.next_steps,s.notes,n||null,o,d,a);return{id:Number(_.lastInsertRowid),createdAtEpoch:a}}storeObservations(e,t,s,n,o,i=0,a){let d=a??Date.now(),p=new Date(d).toISOString();return this.db.transaction(()=>{let l=[],T=this.db.prepare(` + `).run(e,t,s.request,s.investigated,s.learned,s.completed,s.next_steps,s.notes,n||null,o,d,a);return{id:Number(m.lastInsertRowid),createdAtEpoch:a}}storeObservations(e,t,s,n,o,i=0,a){let d=a??Date.now(),c=new Date(d).toISOString();return this.db.transaction(()=>{let l=[],T=this.db.prepare(` INSERT INTO observations (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, content_hash, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `);for(let f of s){let R=w(e,f.title,f.narrative),u=$(this.db,R,d);if(u){l.push(u.id);continue}let b=T.run(e,t,f.type,f.title,f.subtitle,JSON.stringify(f.facts),f.narrative,JSON.stringify(f.concepts),JSON.stringify(f.files_read),JSON.stringify(f.files_modified),o||null,i,R,p,d);l.push(Number(b.lastInsertRowid))}let E=null;if(n){let R=this.db.prepare(` + `);for(let f of s){let R=w(e,f.title,f.narrative),u=$(this.db,R,d);if(u){l.push(u.id);continue}let S=T.run(e,t,f.type,f.title,f.subtitle,JSON.stringify(f.facts),f.narrative,JSON.stringify(f.concepts),JSON.stringify(f.files_read),JSON.stringify(f.files_modified),o||null,i,R,c,d);l.push(Number(S.lastInsertRowid))}let E=null;if(n){let R=this.db.prepare(` INSERT INTO session_summaries (memory_session_id, project, request, investigated, learned, completed, next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,t,n.request,n.investigated,n.learned,n.completed,n.next_steps,n.notes,o||null,i,p,d);E=Number(R.lastInsertRowid)}return{observationIds:l,summaryId:E,createdAtEpoch:d}})()}storeObservationsAndMarkComplete(e,t,s,n,o,i,a,d=0,p){let _=p??Date.now(),l=new Date(_).toISOString();return this.db.transaction(()=>{let E=[],f=this.db.prepare(` + `).run(e,t,n.request,n.investigated,n.learned,n.completed,n.next_steps,n.notes,o||null,i,c,d);E=Number(R.lastInsertRowid)}return{observationIds:l,summaryId:E,createdAtEpoch:d}})()}storeObservationsAndMarkComplete(e,t,s,n,o,i,a,d=0,c){let m=c??Date.now(),l=new Date(m).toISOString();return this.db.transaction(()=>{let E=[],f=this.db.prepare(` INSERT INTO observations (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, content_hash, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `);for(let b of s){let g=w(e,b.title,b.narrative),h=$(this.db,g,_);if(h){E.push(h.id);continue}let Et=f.run(e,t,b.type,b.title,b.subtitle,JSON.stringify(b.facts),b.narrative,JSON.stringify(b.concepts),JSON.stringify(b.files_read),JSON.stringify(b.files_modified),a||null,d,g,l,_);E.push(Number(Et.lastInsertRowid))}let R;if(n){let g=this.db.prepare(` + `);for(let S of s){let g=w(e,S.title,S.narrative),h=$(this.db,g,m);if(h){E.push(h.id);continue}let Et=f.run(e,t,S.type,S.title,S.subtitle,JSON.stringify(S.facts),S.narrative,JSON.stringify(S.concepts),JSON.stringify(S.files_read),JSON.stringify(S.files_modified),a||null,d,g,l,m);E.push(Number(Et.lastInsertRowid))}let R;if(n){let g=this.db.prepare(` INSERT INTO session_summaries (memory_session_id, project, request, investigated, learned, completed, next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,t,n.request,n.investigated,n.learned,n.completed,n.next_steps,n.notes,a||null,d,l,_);R=Number(g.lastInsertRowid)}return this.db.prepare(` + `).run(e,t,n.request,n.investigated,n.learned,n.completed,n.next_steps,n.notes,a||null,d,l,m);R=Number(g.lastInsertRowid)}return this.db.prepare(` UPDATE pending_messages SET status = 'processed', @@ -473,46 +473,46 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` tool_input = NULL, tool_response = NULL WHERE id = ? AND status = 'processing' - `).run(_,o),{observationIds:E,summaryId:R,createdAtEpoch:_}})()}getSessionSummariesByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:n,project:o}=t,i=s==="date_asc"?"ASC":"DESC",a=n?`LIMIT ${n}`:"",d=e.map(()=>"?").join(","),p=[...e],_=o?`WHERE id IN (${d}) AND project = ?`:`WHERE id IN (${d})`;return o&&p.push(o),this.db.prepare(` + `).run(m,o),{observationIds:E,summaryId:R,createdAtEpoch:m}})()}getSessionSummariesByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:n,project:o}=t,i=s==="date_asc"?"ASC":"DESC",a=n?`LIMIT ${n}`:"",d=e.map(()=>"?").join(","),c=[...e],m=o?`WHERE id IN (${d}) AND project = ?`:`WHERE id IN (${d})`;return o&&c.push(o),this.db.prepare(` SELECT * FROM session_summaries - ${_} + ${m} ORDER BY created_at_epoch ${i} ${a} - `).all(...p)}getUserPromptsByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:n,project:o}=t,i=s==="date_asc"?"ASC":"DESC",a=n?`LIMIT ${n}`:"",d=e.map(()=>"?").join(","),p=[...e],_=o?"AND s.project = ?":"";return o&&p.push(o),this.db.prepare(` + `).all(...c)}getUserPromptsByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:n,project:o}=t,i=s==="date_asc"?"ASC":"DESC",a=n?`LIMIT ${n}`:"",d=e.map(()=>"?").join(","),c=[...e],m=o?"AND s.project = ?":"";return o&&c.push(o),this.db.prepare(` SELECT up.*, s.project, s.memory_session_id FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id - WHERE up.id IN (${d}) ${_} + WHERE up.id IN (${d}) ${m} ORDER BY up.created_at_epoch ${i} ${a} - `).all(...p)}getTimelineAroundTimestamp(e,t=10,s=10,n){return this.getTimelineAroundObservation(null,e,t,s,n)}getTimelineAroundObservation(e,t,s=10,n=10,o){let i=o?"AND project = ?":"",a=o?[o]:[],d,p;if(e!==null){let u=` + `).all(...c)}getTimelineAroundTimestamp(e,t=10,s=10,n){return this.getTimelineAroundObservation(null,e,t,s,n)}getTimelineAroundObservation(e,t,s=10,n=10,o){let i=o?"AND project = ?":"",a=o?[o]:[],d,c;if(e!==null){let u=` SELECT id, created_at_epoch FROM observations WHERE id <= ? ${i} ORDER BY id DESC LIMIT ? - `,b=` + `,S=` SELECT id, created_at_epoch FROM observations WHERE id >= ? ${i} ORDER BY id ASC LIMIT ? - `;try{let g=this.db.prepare(u).all(e,...a,s+1),h=this.db.prepare(b).all(e,...a,n+1);if(g.length===0&&h.length===0)return{observations:[],sessions:[],prompts:[]};d=g.length>0?g[g.length-1].created_at_epoch:t,p=h.length>0?h[h.length-1].created_at_epoch:t}catch(g){return m.error("DB","Error getting boundary observations",void 0,{error:g,project:o}),{observations:[],sessions:[],prompts:[]}}}else{let u=` + `;try{let g=this.db.prepare(u).all(e,...a,s+1),h=this.db.prepare(S).all(e,...a,n+1);if(g.length===0&&h.length===0)return{observations:[],sessions:[],prompts:[]};d=g.length>0?g[g.length-1].created_at_epoch:t,c=h.length>0?h[h.length-1].created_at_epoch:t}catch(g){return p.error("DB","Error getting boundary observations",void 0,{error:g,project:o}),{observations:[],sessions:[],prompts:[]}}}else{let u=` SELECT created_at_epoch FROM observations WHERE created_at_epoch <= ? ${i} ORDER BY created_at_epoch DESC LIMIT ? - `,b=` + `,S=` SELECT created_at_epoch FROM observations WHERE created_at_epoch >= ? ${i} ORDER BY created_at_epoch ASC LIMIT ? - `;try{let g=this.db.prepare(u).all(t,...a,s),h=this.db.prepare(b).all(t,...a,n+1);if(g.length===0&&h.length===0)return{observations:[],sessions:[],prompts:[]};d=g.length>0?g[g.length-1].created_at_epoch:t,p=h.length>0?h[h.length-1].created_at_epoch:t}catch(g){return m.error("DB","Error getting boundary timestamps",void 0,{error:g,project:o}),{observations:[],sessions:[],prompts:[]}}}let _=` + `;try{let g=this.db.prepare(u).all(t,...a,s),h=this.db.prepare(S).all(t,...a,n+1);if(g.length===0&&h.length===0)return{observations:[],sessions:[],prompts:[]};d=g.length>0?g[g.length-1].created_at_epoch:t,c=h.length>0?h[h.length-1].created_at_epoch:t}catch(g){return p.error("DB","Error getting boundary timestamps",void 0,{error:g,project:o}),{observations:[],sessions:[],prompts:[]}}}let m=` SELECT * FROM observations WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${i} @@ -528,7 +528,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` JOIN sdk_sessions s ON up.content_session_id = s.content_session_id WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${i.replace("project","s.project")} ORDER BY up.created_at_epoch ASC - `,E=this.db.prepare(_).all(d,p,...a),f=this.db.prepare(l).all(d,p,...a),R=this.db.prepare(T).all(d,p,...a);return{observations:E,sessions:f.map(u=>({id:u.id,memory_session_id:u.memory_session_id,project:u.project,request:u.request,completed:u.completed,next_steps:u.next_steps,created_at:u.created_at,created_at_epoch:u.created_at_epoch})),prompts:R.map(u=>({id:u.id,content_session_id:u.content_session_id,prompt_number:u.prompt_number,prompt_text:u.prompt_text,project:u.project,created_at:u.created_at,created_at_epoch:u.created_at_epoch}))}}getPromptById(e){return this.db.prepare(` + `,E=this.db.prepare(m).all(d,c,...a),f=this.db.prepare(l).all(d,c,...a),R=this.db.prepare(T).all(d,c,...a);return{observations:E,sessions:f.map(u=>({id:u.id,memory_session_id:u.memory_session_id,project:u.project,request:u.request,completed:u.completed,next_steps:u.next_steps,created_at:u.created_at,created_at_epoch:u.created_at_epoch})),prompts:R.map(u=>({id:u.id,content_session_id:u.content_session_id,prompt_number:u.prompt_number,prompt_text:u.prompt_text,project:u.project,created_at:u.created_at,created_at_epoch:u.created_at_epoch}))}}getPromptById(e){return this.db.prepare(` SELECT p.id, p.content_session_id, @@ -572,7 +572,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` `).get(e)||null}getOrCreateManualSession(e){let t=`manual-${e}`,s=`manual-content-${e}`;if(this.db.prepare("SELECT memory_session_id FROM sdk_sessions WHERE memory_session_id = ?").get(t))return t;let o=new Date;return this.db.prepare(` INSERT INTO sdk_sessions (memory_session_id, content_session_id, project, started_at, started_at_epoch, status) VALUES (?, ?, ?, ?, ?, 'active') - `).run(t,s,e,o.toISOString(),o.getTime()),m.info("SESSION","Created manual session",{memorySessionId:t,project:e}),t}close(){this.db.close()}importSdkSession(e){let t=this.db.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(e.content_session_id);return t?{imported:!1,id:t.id}:{imported:!0,id:this.db.prepare(` + `).run(t,s,e,o.toISOString(),o.getTime()),p.info("SESSION","Created manual session",{memorySessionId:t,project:e}),t}close(){this.db.close()}importSdkSession(e){let t=this.db.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(e.content_session_id);return t?{imported:!1,id:t.id}:{imported:!0,id:this.db.prepare(` INSERT INTO sdk_sessions ( content_session_id, memory_session_id, project, user_prompt, started_at, started_at_epoch, completed_at, completed_at_epoch, status @@ -600,7 +600,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` content_session_id, prompt_number, prompt_text, created_at, created_at_epoch ) VALUES (?, ?, ?, ?, ?) - `).run(e.content_session_id,e.prompt_number,e.prompt_text,e.created_at,e.created_at_epoch).lastInsertRowid}}};var ge=y(require("path"),1);function fe(r){if(!r||r.trim()==="")return m.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:r}),"unknown-project";let e=ge.default.basename(r);if(e===""){if(process.platform==="win32"){let s=r.match(/^([A-Z]):\\/i);if(s){let o=`drive-${s[1].toUpperCase()}`;return m.info("PROJECT_NAME","Drive root detected",{cwd:r,projectName:o}),o}}return m.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:r}),"unknown-project"}return e}var Se=y(require("path"),1),he=require("os");var N=require("fs"),X=require("path"),be=require("os"),P=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:"cli",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,X.join)((0,be.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT:"true",CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]",CLAUDE_MEM_CHROMA_ENABLED:"true",CLAUDE_MEM_CHROMA_MODE:"local",CLAUDE_MEM_CHROMA_HOST:"127.0.0.1",CLAUDE_MEM_CHROMA_PORT:"8000",CLAUDE_MEM_CHROMA_SSL:"false",CLAUDE_MEM_CHROMA_API_KEY:"",CLAUDE_MEM_CHROMA_TENANT:"default_tenant",CLAUDE_MEM_CHROMA_DATABASE:"default_database"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return process.env[e]??this.DEFAULTS[e]}static getInt(e){let t=this.get(e);return parseInt(t,10)}static getBool(e){let t=this.get(e);return t==="true"||t===!0}static applyEnvOverrides(e){let t={...e};for(let s of Object.keys(this.DEFAULTS))process.env[s]!==void 0&&(t[s]=process.env[s]);return t}static loadFromFile(e){try{if(!(0,N.existsSync)(e)){let i=this.getAllDefaults();try{let a=(0,X.dirname)(e);(0,N.existsSync)(a)||(0,N.mkdirSync)(a,{recursive:!0}),(0,N.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(a){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,a)}return this.applyEnvOverrides(i)}let t=(0,N.readFileSync)(e,"utf-8"),s=JSON.parse(t),n=s;if(s.env&&typeof s.env=="object"){n=s.env;try{(0,N.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(i){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,i)}}let o={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(o[i]=n[i]);return this.applyEnvOverrides(o)}catch(t){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,t),this.applyEnvOverrides(this.getAllDefaults())}}};var L=require("fs"),j=require("path");var O=class r{static instance=null;activeMode=null;modesDir;constructor(){let e=le(),t=[(0,j.join)(e,"modes"),(0,j.join)(e,"..","plugin","modes")],s=t.find(n=>(0,L.existsSync)(n));this.modesDir=s||t[0]}static getInstance(){return r.instance||(r.instance=new r),r.instance}parseInheritance(e){let t=e.split("--");if(t.length===1)return{hasParent:!1,parentId:"",overrideId:""};if(t.length>2)throw new Error(`Invalid mode inheritance: ${e}. Only one level of inheritance supported (parent--override)`);return{hasParent:!0,parentId:t[0],overrideId:e}}isPlainObject(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}deepMerge(e,t){let s={...e};for(let n in t){let o=t[n],i=e[n];this.isPlainObject(o)&&this.isPlainObject(i)?s[n]=this.deepMerge(i,o):s[n]=o}return s}loadModeFile(e){let t=(0,j.join)(this.modesDir,`${e}.json`);if(!(0,L.existsSync)(t))throw new Error(`Mode file not found: ${t}`);let s=(0,L.readFileSync)(t,"utf-8");return JSON.parse(s)}loadMode(e){let t=this.parseInheritance(e);if(!t.hasParent)try{let d=this.loadModeFile(e);return this.activeMode=d,m.debug("SYSTEM",`Loaded mode: ${d.name} (${e})`,void 0,{types:d.observation_types.map(p=>p.id),concepts:d.observation_concepts.map(p=>p.id)}),d}catch{if(m.warn("SYSTEM",`Mode file not found: ${e}, falling back to 'code'`),e==="code")throw new Error("Critical: code.json mode file missing");return this.loadMode("code")}let{parentId:s,overrideId:n}=t,o;try{o=this.loadMode(s)}catch{m.warn("SYSTEM",`Parent mode '${s}' not found for ${e}, falling back to 'code'`),o=this.loadMode("code")}let i;try{i=this.loadModeFile(n),m.debug("SYSTEM",`Loaded override file: ${n} for parent ${s}`)}catch{return m.warn("SYSTEM",`Override file '${n}' not found, using parent mode '${s}' only`),this.activeMode=o,o}if(!i)return m.warn("SYSTEM",`Invalid override file: ${n}, using parent mode '${s}' only`),this.activeMode=o,o;let a=this.deepMerge(o,i);return this.activeMode=a,m.debug("SYSTEM",`Loaded mode with inheritance: ${a.name} (${e} = ${s} + ${n})`,void 0,{parent:s,override:n,types:a.observation_types.map(d=>d.id),concepts:a.observation_concepts.map(d=>d.id)}),a}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(s=>s.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(s=>s.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(t=>t.id===e)}getTypeLabel(e){return this.getObservationTypes().find(s=>s.id===e)?.label||e}};function J(){let r=Se.default.join((0,he.homedir)(),".claude-mem","settings.json"),e=P.loadFromFile(r),t=O.getInstance().getActiveMode(),s=new Set(t.observation_types.map(o=>o.id)),n=new Set(t.observation_concepts.map(o=>o.id));return{totalObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",showWorkTokens:e.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",showSavingsAmount:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",showSavingsPercent:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT==="true",observationTypes:s,observationConcepts:n,fullObservationField:e.CLAUDE_MEM_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",showLastMessage:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true"}}var c={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"},Oe=4,Q=1;function z(r){let e=(r.title?.length||0)+(r.subtitle?.length||0)+(r.narrative?.length||0)+JSON.stringify(r.facts||[]).length;return Math.ceil(e/Oe)}function Z(r){let e=r.length,t=r.reduce((i,a)=>i+z(a),0),s=r.reduce((i,a)=>i+(a.discovery_tokens||0),0),n=s-t,o=s>0?Math.round(n/s*100):0;return{totalObservations:e,totalReadTokens:t,totalDiscoveryTokens:s,savings:n,savingsPercent:o}}function yt(r){return O.getInstance().getWorkEmoji(r)}function M(r,e){let t=z(r),s=r.discovery_tokens||0,n=yt(r.type),o=s>0?`${n} ${s.toLocaleString()}`:"-";return{readTokens:t,discoveryTokens:s,discoveryDisplay:o,workEmoji:n}}function G(r){return r.showReadTokens||r.showWorkTokens||r.showSavingsAmount||r.showSavingsPercent}var Re=y(require("path"),1),H=require("fs");function ee(r,e,t){let s=Array.from(t.observationTypes),n=s.map(()=>"?").join(","),o=Array.from(t.observationConcepts),i=o.map(()=>"?").join(",");return r.db.prepare(` + `).run(e.content_session_id,e.prompt_number,e.prompt_text,e.created_at,e.created_at_epoch).lastInsertRowid}}};var ge=M(require("path"),1);function fe(r){if(!r||r.trim()==="")return p.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:r}),"unknown-project";let e=ge.default.basename(r);if(e===""){if(process.platform==="win32"){let s=r.match(/^([A-Z]):\\/i);if(s){let o=`drive-${s[1].toUpperCase()}`;return p.info("PROJECT_NAME","Drive root detected",{cwd:r,projectName:o}),o}}return p.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:r}),"unknown-project"}return e}var be=M(require("path"),1),he=require("os");var N=require("fs"),X=require("path"),Se=require("os"),P=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:"cli",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,X.join)((0,Se.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT:"true",CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]",CLAUDE_MEM_SEMANTIC_INJECT:"true",CLAUDE_MEM_SEMANTIC_INJECT_LIMIT:"5",CLAUDE_MEM_TIER_ROUTING_ENABLED:"true",CLAUDE_MEM_TIER_SIMPLE_MODEL:"haiku",CLAUDE_MEM_TIER_SUMMARY_MODEL:"",CLAUDE_MEM_CHROMA_ENABLED:"true",CLAUDE_MEM_CHROMA_MODE:"local",CLAUDE_MEM_CHROMA_HOST:"127.0.0.1",CLAUDE_MEM_CHROMA_PORT:"8000",CLAUDE_MEM_CHROMA_SSL:"false",CLAUDE_MEM_CHROMA_API_KEY:"",CLAUDE_MEM_CHROMA_TENANT:"default_tenant",CLAUDE_MEM_CHROMA_DATABASE:"default_database"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return process.env[e]??this.DEFAULTS[e]}static getInt(e){let t=this.get(e);return parseInt(t,10)}static getBool(e){let t=this.get(e);return t==="true"||t===!0}static applyEnvOverrides(e){let t={...e};for(let s of Object.keys(this.DEFAULTS))process.env[s]!==void 0&&(t[s]=process.env[s]);return t}static loadFromFile(e){try{if(!(0,N.existsSync)(e)){let i=this.getAllDefaults();try{let a=(0,X.dirname)(e);(0,N.existsSync)(a)||(0,N.mkdirSync)(a,{recursive:!0}),(0,N.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(a){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,a)}return this.applyEnvOverrides(i)}let t=(0,N.readFileSync)(e,"utf-8"),s=JSON.parse(t),n=s;if(s.env&&typeof s.env=="object"){n=s.env;try{(0,N.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(i){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,i)}}let o={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(o[i]=n[i]);return this.applyEnvOverrides(o)}catch(t){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,t),this.applyEnvOverrides(this.getAllDefaults())}}};var y=require("fs"),j=require("path");var O=class r{static instance=null;activeMode=null;modesDir;constructor(){let e=le(),t=[(0,j.join)(e,"modes"),(0,j.join)(e,"..","plugin","modes")],s=t.find(n=>(0,y.existsSync)(n));this.modesDir=s||t[0]}static getInstance(){return r.instance||(r.instance=new r),r.instance}parseInheritance(e){let t=e.split("--");if(t.length===1)return{hasParent:!1,parentId:"",overrideId:""};if(t.length>2)throw new Error(`Invalid mode inheritance: ${e}. Only one level of inheritance supported (parent--override)`);return{hasParent:!0,parentId:t[0],overrideId:e}}isPlainObject(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}deepMerge(e,t){let s={...e};for(let n in t){let o=t[n],i=e[n];this.isPlainObject(o)&&this.isPlainObject(i)?s[n]=this.deepMerge(i,o):s[n]=o}return s}loadModeFile(e){let t=(0,j.join)(this.modesDir,`${e}.json`);if(!(0,y.existsSync)(t))throw new Error(`Mode file not found: ${t}`);let s=(0,y.readFileSync)(t,"utf-8");return JSON.parse(s)}loadMode(e){let t=this.parseInheritance(e);if(!t.hasParent)try{let d=this.loadModeFile(e);return this.activeMode=d,p.debug("SYSTEM",`Loaded mode: ${d.name} (${e})`,void 0,{types:d.observation_types.map(c=>c.id),concepts:d.observation_concepts.map(c=>c.id)}),d}catch{if(p.warn("SYSTEM",`Mode file not found: ${e}, falling back to 'code'`),e==="code")throw new Error("Critical: code.json mode file missing");return this.loadMode("code")}let{parentId:s,overrideId:n}=t,o;try{o=this.loadMode(s)}catch{p.warn("SYSTEM",`Parent mode '${s}' not found for ${e}, falling back to 'code'`),o=this.loadMode("code")}let i;try{i=this.loadModeFile(n),p.debug("SYSTEM",`Loaded override file: ${n} for parent ${s}`)}catch{return p.warn("SYSTEM",`Override file '${n}' not found, using parent mode '${s}' only`),this.activeMode=o,o}if(!i)return p.warn("SYSTEM",`Invalid override file: ${n}, using parent mode '${s}' only`),this.activeMode=o,o;let a=this.deepMerge(o,i);return this.activeMode=a,p.debug("SYSTEM",`Loaded mode with inheritance: ${a.name} (${e} = ${s} + ${n})`,void 0,{parent:s,override:n,types:a.observation_types.map(d=>d.id),concepts:a.observation_concepts.map(d=>d.id)}),a}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(s=>s.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(s=>s.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(t=>t.id===e)}getTypeLabel(e){return this.getObservationTypes().find(s=>s.id===e)?.label||e}};function J(){let r=be.default.join((0,he.homedir)(),".claude-mem","settings.json"),e=P.loadFromFile(r),t=O.getInstance().getActiveMode(),s=new Set(t.observation_types.map(o=>o.id)),n=new Set(t.observation_concepts.map(o=>o.id));return{totalObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",showWorkTokens:e.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",showSavingsAmount:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",showSavingsPercent:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT==="true",observationTypes:s,observationConcepts:n,fullObservationField:e.CLAUDE_MEM_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",showLastMessage:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true"}}var _={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"},Oe=4,Q=1;function z(r){let e=(r.title?.length||0)+(r.subtitle?.length||0)+(r.narrative?.length||0)+JSON.stringify(r.facts||[]).length;return Math.ceil(e/Oe)}function Z(r){let e=r.length,t=r.reduce((i,a)=>i+z(a),0),s=r.reduce((i,a)=>i+(a.discovery_tokens||0),0),n=s-t,o=s>0?Math.round(n/s*100):0;return{totalObservations:e,totalReadTokens:t,totalDiscoveryTokens:s,savings:n,savingsPercent:o}}function Mt(r){return O.getInstance().getWorkEmoji(r)}function v(r,e){let t=z(r),s=r.discovery_tokens||0,n=Mt(r.type),o=s>0?`${n} ${s.toLocaleString()}`:"-";return{readTokens:t,discoveryTokens:s,discoveryDisplay:o,workEmoji:n}}function G(r){return r.showReadTokens||r.showWorkTokens||r.showSavingsAmount||r.showSavingsPercent}var Re=M(require("path"),1),H=require("fs");function ee(r,e,t){let s=Array.from(t.observationTypes),n=s.map(()=>"?").join(","),o=Array.from(t.observationConcepts),i=o.map(()=>"?").join(",");return r.db.prepare(` SELECT id, memory_session_id, type, title, subtitle, narrative, facts, concepts, files_read, files_modified, discovery_tokens, @@ -640,14 +640,14 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?_=` WHERE project IN (${s}) ORDER BY created_at_epoch DESC LIMIT ? - `).all(...e,t.sessionCount+Q)}function vt(r){return r.replace(/\//g,"-")}function Lt(r){try{if(!(0,H.existsSync)(r))return{userMessage:"",assistantMessage:""};let e=(0,H.readFileSync)(r,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let t=e.split(` -`).filter(n=>n.trim()),s="";for(let n=t.length-1;n>=0;n--)try{let o=t[n];if(!o.includes('"type":"assistant"'))continue;let i=JSON.parse(o);if(i.type==="assistant"&&i.message?.content&&Array.isArray(i.message.content)){let a="";for(let d of i.message.content)d.type==="text"&&(a+=d.text);if(a=a.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),a){s=a;break}}}catch(o){m.debug("PARSER","Skipping malformed transcript line",{lineIndex:n},o);continue}return{userMessage:"",assistantMessage:s}}catch(e){return m.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:r},e),{userMessage:"",assistantMessage:""}}}function se(r,e,t,s){if(!e.showLastMessage||r.length===0)return{userMessage:"",assistantMessage:""};let n=r.find(d=>d.memory_session_id!==t);if(!n)return{userMessage:"",assistantMessage:""};let o=n.memory_session_id,i=vt(s),a=Re.default.join(I,"projects",i,`${o}.jsonl`);return Lt(a)}function Ae(r,e){let t=e[0]?.id;return r.map((s,n)=>{let o=n===0?null:e[n+1];return{...s,displayEpoch:o?o.created_at_epoch:s.created_at_epoch,displayTime:o?o.created_at:s.created_at,shouldShowLink:s.id!==t}})}function re(r,e){let t=[...r.map(s=>({type:"observation",data:s})),...e.map(s=>({type:"summary",data:s}))];return t.sort((s,n)=>{let o=s.type==="observation"?s.data.created_at_epoch:s.data.displayEpoch,i=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch;return o-i}),t}function Ie(r,e){return new Set(r.slice(0,e).map(t=>t.id))}function ye(){let r=new Date,e=r.toLocaleDateString("en-CA"),t=r.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),s=r.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${t} ${s}`}function ve(r){return[`# $CMEM ${r} ${ye()}`,""]}function Le(){return[`Legend: \u{1F3AF}session ${O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji}${t.id}`).join(" ")}`,"Format: ID TIME TYPE TITLE","Fetch details: get_observations([IDs]) | Search: mem-search skill",""]}function Me(){return[]}function De(){return[]}function xe(r,e){let t=[],s=[`${r.totalObservations} obs (${r.totalReadTokens.toLocaleString()}t read)`,`${r.totalDiscoveryTokens.toLocaleString()}t work`];return r.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)&&(e.showSavingsPercent?s.push(`${r.savingsPercent}% savings`):e.showSavingsAmount&&s.push(`${r.savings.toLocaleString()}t saved`)),t.push(`Stats: ${s.join(" | ")}`),t.push(""),t}function Ue(r){return[`### ${r}`]}function ke(r){return r.toLowerCase().replace(" am","a").replace(" pm","p")}function we(r,e,t){let s=r.title||"Untitled",n=O.getInstance().getTypeIcon(r.type),o=e?ke(e):'"';return`${r.id} ${o} ${n} ${s}`}function $e(r,e,t,s){let n=[],o=r.title||"Untitled",i=O.getInstance().getTypeIcon(r.type),a=e?ke(e):'"',{readTokens:d,discoveryDisplay:p}=M(r,s);n.push(`**${r.id}** ${a} ${i} **${o}**`),t&&n.push(t);let _=[];return s.showReadTokens&&_.push(`~${d}t`),s.showWorkTokens&&_.push(p),_.length>0&&n.push(_.join(" ")),n.push(""),n}function Fe(r,e){return[`S${r.id} ${r.request||"Session started"} (${e})`]}function D(r,e){return e?[`**${r}**: ${e}`,""]:[]}function Pe(r){return r.assistantMessage?["","---","","**Previously**","",`A: ${r.assistantMessage}`,""]:[]}function Xe(r,e){return["",`Access ${Math.round(r/1e3)}k tokens of past work via get_observations([IDs]) or mem-search skill.`]}function je(r){return`# $CMEM ${r} ${ye()} + `).all(...e,t.sessionCount+Q)}function Lt(r){return r.replace(/\//g,"-")}function yt(r){try{if(!(0,H.existsSync)(r))return{userMessage:"",assistantMessage:""};let e=(0,H.readFileSync)(r,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let t=e.split(` +`).filter(n=>n.trim()),s="";for(let n=t.length-1;n>=0;n--)try{let o=t[n];if(!o.includes('"type":"assistant"'))continue;let i=JSON.parse(o);if(i.type==="assistant"&&i.message?.content&&Array.isArray(i.message.content)){let a="";for(let d of i.message.content)d.type==="text"&&(a+=d.text);if(a=a.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),a){s=a;break}}}catch(o){p.debug("PARSER","Skipping malformed transcript line",{lineIndex:n},o);continue}return{userMessage:"",assistantMessage:s}}catch(e){return p.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:r},e),{userMessage:"",assistantMessage:""}}}function se(r,e,t,s){if(!e.showLastMessage||r.length===0)return{userMessage:"",assistantMessage:""};let n=r.find(d=>d.memory_session_id!==t);if(!n)return{userMessage:"",assistantMessage:""};let o=n.memory_session_id,i=Lt(s),a=Re.default.join(A,"projects",i,`${o}.jsonl`);return yt(a)}function Ie(r,e){let t=e[0]?.id;return r.map((s,n)=>{let o=n===0?null:e[n+1];return{...s,displayEpoch:o?o.created_at_epoch:s.created_at_epoch,displayTime:o?o.created_at:s.created_at,shouldShowLink:s.id!==t}})}function re(r,e){let t=[...r.map(s=>({type:"observation",data:s})),...e.map(s=>({type:"summary",data:s}))];return t.sort((s,n)=>{let o=s.type==="observation"?s.data.created_at_epoch:s.data.displayEpoch,i=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch;return o-i}),t}function Ae(r,e){return new Set(r.slice(0,e).map(t=>t.id))}function Me(){let r=new Date,e=r.toLocaleDateString("en-CA"),t=r.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),s=r.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${t} ${s}`}function Le(r){return[`# $CMEM ${r} ${Me()}`,""]}function ye(){return[`Legend: \u{1F3AF}session ${O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji}${t.id}`).join(" ")}`,"Format: ID TIME TYPE TITLE","Fetch details: get_observations([IDs]) | Search: mem-search skill",""]}function ve(){return[]}function De(){return[]}function Ue(r,e){let t=[],s=[`${r.totalObservations} obs (${r.totalReadTokens.toLocaleString()}t read)`,`${r.totalDiscoveryTokens.toLocaleString()}t work`];return r.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)&&(e.showSavingsPercent?s.push(`${r.savingsPercent}% savings`):e.showSavingsAmount&&s.push(`${r.savings.toLocaleString()}t saved`)),t.push(`Stats: ${s.join(" | ")}`),t.push(""),t}function xe(r){return[`### ${r}`]}function ke(r){return r.toLowerCase().replace(" am","a").replace(" pm","p")}function we(r,e,t){let s=r.title||"Untitled",n=O.getInstance().getTypeIcon(r.type),o=e?ke(e):'"';return`${r.id} ${o} ${n} ${s}`}function $e(r,e,t,s){let n=[],o=r.title||"Untitled",i=O.getInstance().getTypeIcon(r.type),a=e?ke(e):'"',{readTokens:d,discoveryDisplay:c}=v(r,s);n.push(`**${r.id}** ${a} ${i} **${o}**`),t&&n.push(t);let m=[];return s.showReadTokens&&m.push(`~${d}t`),s.showWorkTokens&&m.push(c),m.length>0&&n.push(m.join(" ")),n.push(""),n}function Fe(r,e){return[`S${r.id} ${r.request||"Session started"} (${e})`]}function D(r,e){return e?[`**${r}**: ${e}`,""]:[]}function Pe(r){return r.assistantMessage?["","---","","**Previously**","",`A: ${r.assistantMessage}`,""]:[]}function Xe(r,e){return["",`Access ${Math.round(r/1e3)}k tokens of past work via get_observations([IDs]) or mem-search skill.`]}function je(r){return`# $CMEM ${r} ${Me()} -No previous sessions found.`}function Ge(){let r=new Date,e=r.toLocaleDateString("en-CA"),t=r.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),s=r.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${t} ${s}`}function He(r){return["",`${c.bright}${c.cyan}[${r}] recent context, ${Ge()}${c.reset}`,`${c.gray}${"\u2500".repeat(60)}${c.reset}`,""]}function Be(){let e=O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji} ${t.id}`).join(" | ");return[`${c.dim}Legend: session-request | ${e}${c.reset}`,""]}function We(){return[`${c.bright}Column Key${c.reset}`,`${c.dim} Read: Tokens to read this observation (cost to learn it now)${c.reset}`,`${c.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${c.reset}`,""]}function Ye(){return[`${c.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${c.reset}`,"",`${c.dim}When you need implementation details, rationale, or debugging context:${c.reset}`,`${c.dim} - Fetch by ID: get_observations([IDs]) for observations visible in this index${c.reset}`,`${c.dim} - Search history: Use the mem-search skill for past decisions, bugs, and deeper research${c.reset}`,`${c.dim} - Trust this index over re-reading code for past decisions and learnings${c.reset}`,""]}function qe(r,e){let t=[];if(t.push(`${c.bright}${c.cyan}Context Economics${c.reset}`),t.push(`${c.dim} Loading: ${r.totalObservations} observations (${r.totalReadTokens.toLocaleString()} tokens to read)${c.reset}`),t.push(`${c.dim} Work investment: ${r.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${c.reset}`),r.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let s=" Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?s+=`${r.savings.toLocaleString()} tokens (${r.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?s+=`${r.savings.toLocaleString()} tokens`:s+=`${r.savingsPercent}% reduction from reuse`,t.push(`${c.green}${s}${c.reset}`)}return t.push(""),t}function Ve(r){return[`${c.bright}${c.cyan}${r}${c.reset}`,""]}function Ke(r){return[`${c.dim}${r}${c.reset}`]}function Je(r,e,t,s){let n=r.title||"Untitled",o=O.getInstance().getTypeIcon(r.type),{readTokens:i,discoveryTokens:a,workEmoji:d}=M(r,s),p=t?`${c.dim}${e}${c.reset}`:" ".repeat(e.length),_=s.showReadTokens&&i>0?`${c.dim}(~${i}t)${c.reset}`:"",l=s.showWorkTokens&&a>0?`${c.dim}(${d} ${a.toLocaleString()}t)${c.reset}`:"";return` ${c.dim}#${r.id}${c.reset} ${p} ${o} ${n} ${_} ${l}`}function Qe(r,e,t,s,n){let o=[],i=r.title||"Untitled",a=O.getInstance().getTypeIcon(r.type),{readTokens:d,discoveryTokens:p,workEmoji:_}=M(r,n),l=t?`${c.dim}${e}${c.reset}`:" ".repeat(e.length),T=n.showReadTokens&&d>0?`${c.dim}(~${d}t)${c.reset}`:"",E=n.showWorkTokens&&p>0?`${c.dim}(${_} ${p.toLocaleString()}t)${c.reset}`:"";return o.push(` ${c.dim}#${r.id}${c.reset} ${l} ${a} ${c.bright}${i}${c.reset}`),s&&o.push(` ${c.dim}${s}${c.reset}`),(T||E)&&o.push(` ${T} ${E}`),o.push(""),o}function ze(r,e){let t=`${r.request||"Session started"} (${e})`;return[`${c.yellow}#S${r.id}${c.reset} ${t}`,""]}function x(r,e,t){return e?[`${t}${r}:${c.reset} ${e}`,""]:[]}function Ze(r){return r.assistantMessage?["","---","",`${c.bright}${c.magenta}Previously${c.reset}`,"",`${c.dim}A: ${r.assistantMessage}${c.reset}`,""]:[]}function et(r,e){let t=Math.round(r/1e3);return["",`${c.dim}Access ${t}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the claude-mem skill to access memories by ID.${c.reset}`]}function tt(r){return` -${c.bright}${c.cyan}[${r}] recent context, ${Ge()}${c.reset} -${c.gray}${"\u2500".repeat(60)}${c.reset} +No previous sessions found.`}function Ge(){let r=new Date,e=r.toLocaleDateString("en-CA"),t=r.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),s=r.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${t} ${s}`}function He(r){return["",`${_.bright}${_.cyan}[${r}] recent context, ${Ge()}${_.reset}`,`${_.gray}${"\u2500".repeat(60)}${_.reset}`,""]}function Be(){let e=O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji} ${t.id}`).join(" | ");return[`${_.dim}Legend: session-request | ${e}${_.reset}`,""]}function We(){return[`${_.bright}Column Key${_.reset}`,`${_.dim} Read: Tokens to read this observation (cost to learn it now)${_.reset}`,`${_.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${_.reset}`,""]}function Ye(){return[`${_.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${_.reset}`,"",`${_.dim}When you need implementation details, rationale, or debugging context:${_.reset}`,`${_.dim} - Fetch by ID: get_observations([IDs]) for observations visible in this index${_.reset}`,`${_.dim} - Search history: Use the mem-search skill for past decisions, bugs, and deeper research${_.reset}`,`${_.dim} - Trust this index over re-reading code for past decisions and learnings${_.reset}`,""]}function qe(r,e){let t=[];if(t.push(`${_.bright}${_.cyan}Context Economics${_.reset}`),t.push(`${_.dim} Loading: ${r.totalObservations} observations (${r.totalReadTokens.toLocaleString()} tokens to read)${_.reset}`),t.push(`${_.dim} Work investment: ${r.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${_.reset}`),r.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let s=" Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?s+=`${r.savings.toLocaleString()} tokens (${r.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?s+=`${r.savings.toLocaleString()} tokens`:s+=`${r.savingsPercent}% reduction from reuse`,t.push(`${_.green}${s}${_.reset}`)}return t.push(""),t}function Ve(r){return[`${_.bright}${_.cyan}${r}${_.reset}`,""]}function Ke(r){return[`${_.dim}${r}${_.reset}`]}function Je(r,e,t,s){let n=r.title||"Untitled",o=O.getInstance().getTypeIcon(r.type),{readTokens:i,discoveryTokens:a,workEmoji:d}=v(r,s),c=t?`${_.dim}${e}${_.reset}`:" ".repeat(e.length),m=s.showReadTokens&&i>0?`${_.dim}(~${i}t)${_.reset}`:"",l=s.showWorkTokens&&a>0?`${_.dim}(${d} ${a.toLocaleString()}t)${_.reset}`:"";return` ${_.dim}#${r.id}${_.reset} ${c} ${o} ${n} ${m} ${l}`}function Qe(r,e,t,s,n){let o=[],i=r.title||"Untitled",a=O.getInstance().getTypeIcon(r.type),{readTokens:d,discoveryTokens:c,workEmoji:m}=v(r,n),l=t?`${_.dim}${e}${_.reset}`:" ".repeat(e.length),T=n.showReadTokens&&d>0?`${_.dim}(~${d}t)${_.reset}`:"",E=n.showWorkTokens&&c>0?`${_.dim}(${m} ${c.toLocaleString()}t)${_.reset}`:"";return o.push(` ${_.dim}#${r.id}${_.reset} ${l} ${a} ${_.bright}${i}${_.reset}`),s&&o.push(` ${_.dim}${s}${_.reset}`),(T||E)&&o.push(` ${T} ${E}`),o.push(""),o}function ze(r,e){let t=`${r.request||"Session started"} (${e})`;return[`${_.yellow}#S${r.id}${_.reset} ${t}`,""]}function U(r,e,t){return e?[`${t}${r}:${_.reset} ${e}`,""]:[]}function Ze(r){return r.assistantMessage?["","---","",`${_.bright}${_.magenta}Previously${_.reset}`,"",`${_.dim}A: ${r.assistantMessage}${_.reset}`,""]:[]}function et(r,e){let t=Math.round(r/1e3);return["",`${_.dim}Access ${t}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the claude-mem skill to access memories by ID.${_.reset}`]}function tt(r){return` +${_.bright}${_.cyan}[${r}] recent context, ${Ge()}${_.reset} +${_.gray}${"\u2500".repeat(60)}${_.reset} -${c.dim}No previous sessions found for this project yet.${c.reset} -`}function st(r,e,t,s){let n=[];return s?n.push(...He(r)):n.push(...ve(r)),s?n.push(...Be()):n.push(...Le()),s?n.push(...We()):n.push(...Me()),s?n.push(...Ye()):n.push(...De()),G(t)&&(s?n.push(...qe(e,t)):n.push(...xe(e,t))),n}var ne=y(require("path"),1);function Y(r){if(!r)return[];try{let e=JSON.parse(r);return Array.isArray(e)?e:[]}catch(e){return m.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:r?.substring(0,50)},e),[]}}function oe(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function ie(r){return new Date(r).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function nt(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function rt(r,e){return ne.default.isAbsolute(r)?ne.default.relative(e,r):r}function ot(r,e,t){let s=Y(r);if(s.length>0)return rt(s[0],e);if(t){let n=Y(t);if(n.length>0)return rt(n[0],e)}return"General"}function Mt(r){let e=new Map;for(let s of r){let n=s.type==="observation"?s.data.created_at:s.data.displayTime,o=nt(n);e.has(o)||e.set(o,[]),e.get(o).push(s)}let t=Array.from(e.entries()).sort((s,n)=>{let o=new Date(s[0]).getTime(),i=new Date(n[0]).getTime();return o-i});return new Map(t)}function it(r,e){return e.fullObservationField==="narrative"?r.narrative:r.facts?Y(r.facts).join(` -`):null}function Dt(r,e,t,s){let n=[];n.push(...Ue(r));let o="";for(let i of e)if(i.type==="summary"){o="";let a=i.data,d=oe(a.displayTime);n.push(...Fe(a,d))}else{let a=i.data,d=ie(a.created_at),_=d!==o?d:"";if(o=d,t.has(a.id)){let T=it(a,s);n.push(...$e(a,_,T,s))}else n.push(we(a,_,s))}return n}function xt(r,e,t,s,n){let o=[];o.push(...Ve(r));let i=null,a="";for(let d of e)if(d.type==="summary"){i=null,a="";let p=d.data,_=oe(p.displayTime);o.push(...ze(p,_))}else{let p=d.data,_=ot(p.files_modified,n,p.files_read),l=ie(p.created_at),T=l!==a;a=l;let E=t.has(p.id);if(_!==i&&(o.push(...Ke(_)),i=_),E){let f=it(p,s);o.push(...Qe(p,l,T,f,s))}else o.push(Je(p,l,T,s))}return o.push(""),o}function Ut(r,e,t,s,n,o){return o?xt(r,e,t,s,n):Dt(r,e,t,s)}function at(r,e,t,s,n){let o=[],i=Mt(r);for(let[a,d]of i)o.push(...Ut(a,d,e,t,s,n));return o}function dt(r,e,t){return!(!r.showLastSummary||!e||!!!(e.investigated||e.learned||e.completed||e.next_steps)||t&&e.created_at_epoch<=t.created_at_epoch)}function ct(r,e){let t=[];return e?(t.push(...x("Investigated",r.investigated,c.blue)),t.push(...x("Learned",r.learned,c.yellow)),t.push(...x("Completed",r.completed,c.green)),t.push(...x("Next Steps",r.next_steps,c.magenta))):(t.push(...D("Investigated",r.investigated)),t.push(...D("Learned",r.learned)),t.push(...D("Completed",r.completed)),t.push(...D("Next Steps",r.next_steps))),t}function pt(r,e){return e?Ze(r):Pe(r)}function mt(r,e,t){return!G(e)||r.totalDiscoveryTokens<=0||r.savings<=0?[]:t?et(r.totalDiscoveryTokens,r.totalReadTokens):Xe(r.totalDiscoveryTokens,r.totalReadTokens)}var kt=_t.default.join((0,ut.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version");function wt(){try{return new F}catch(r){if(r.code==="ERR_DLOPEN_FAILED"){try{(0,lt.unlinkSync)(kt)}catch(e){m.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return m.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw r}}function $t(r,e){return e?tt(r):je(r)}function Ft(r,e,t,s,n,o,i){let a=[],d=Z(e);a.push(...st(r,d,s,i));let p=t.slice(0,s.sessionCount),_=Ae(p,t),l=re(e,_),T=Ie(e,s.fullObservationCount);a.push(...at(l,T,s,n,i));let E=t[0],f=e[0];dt(s,E,f)&&a.push(...ct(E,i));let R=se(e,s,o,n);return a.push(...pt(R,i)),a.push(...mt(d,s,i)),a.join(` +${_.dim}No previous sessions found for this project yet.${_.reset} +`}function st(r,e,t,s){let n=[];return s?n.push(...He(r)):n.push(...Le(r)),s?n.push(...Be()):n.push(...ye()),s?n.push(...We()):n.push(...ve()),s?n.push(...Ye()):n.push(...De()),G(t)&&(s?n.push(...qe(e,t)):n.push(...Ue(e,t))),n}var ne=M(require("path"),1);function Y(r){if(!r)return[];try{let e=JSON.parse(r);return Array.isArray(e)?e:[]}catch(e){return p.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:r?.substring(0,50)},e),[]}}function oe(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function ie(r){return new Date(r).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function nt(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function rt(r,e){return ne.default.isAbsolute(r)?ne.default.relative(e,r):r}function ot(r,e,t){let s=Y(r);if(s.length>0)return rt(s[0],e);if(t){let n=Y(t);if(n.length>0)return rt(n[0],e)}return"General"}function vt(r){let e=new Map;for(let s of r){let n=s.type==="observation"?s.data.created_at:s.data.displayTime,o=nt(n);e.has(o)||e.set(o,[]),e.get(o).push(s)}let t=Array.from(e.entries()).sort((s,n)=>{let o=new Date(s[0]).getTime(),i=new Date(n[0]).getTime();return o-i});return new Map(t)}function it(r,e){return e.fullObservationField==="narrative"?r.narrative:r.facts?Y(r.facts).join(` +`):null}function Dt(r,e,t,s){let n=[];n.push(...xe(r));let o="";for(let i of e)if(i.type==="summary"){o="";let a=i.data,d=oe(a.displayTime);n.push(...Fe(a,d))}else{let a=i.data,d=ie(a.created_at),m=d!==o?d:"";if(o=d,t.has(a.id)){let T=it(a,s);n.push(...$e(a,m,T,s))}else n.push(we(a,m,s))}return n}function Ut(r,e,t,s,n){let o=[];o.push(...Ve(r));let i=null,a="";for(let d of e)if(d.type==="summary"){i=null,a="";let c=d.data,m=oe(c.displayTime);o.push(...ze(c,m))}else{let c=d.data,m=ot(c.files_modified,n,c.files_read),l=ie(c.created_at),T=l!==a;a=l;let E=t.has(c.id);if(m!==i&&(o.push(...Ke(m)),i=m),E){let f=it(c,s);o.push(...Qe(c,l,T,f,s))}else o.push(Je(c,l,T,s))}return o.push(""),o}function xt(r,e,t,s,n,o){return o?Ut(r,e,t,s,n):Dt(r,e,t,s)}function at(r,e,t,s,n){let o=[],i=vt(r);for(let[a,d]of i)o.push(...xt(a,d,e,t,s,n));return o}function dt(r,e,t){return!(!r.showLastSummary||!e||!!!(e.investigated||e.learned||e.completed||e.next_steps)||t&&e.created_at_epoch<=t.created_at_epoch)}function _t(r,e){let t=[];return e?(t.push(...U("Investigated",r.investigated,_.blue)),t.push(...U("Learned",r.learned,_.yellow)),t.push(...U("Completed",r.completed,_.green)),t.push(...U("Next Steps",r.next_steps,_.magenta))):(t.push(...D("Investigated",r.investigated)),t.push(...D("Learned",r.learned)),t.push(...D("Completed",r.completed)),t.push(...D("Next Steps",r.next_steps))),t}function ct(r,e){return e?Ze(r):Pe(r)}function pt(r,e,t){return!G(e)||r.totalDiscoveryTokens<=0||r.savings<=0?[]:t?et(r.totalDiscoveryTokens,r.totalReadTokens):Xe(r.totalDiscoveryTokens,r.totalReadTokens)}var kt=mt.default.join((0,ut.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version");function wt(){try{return new F}catch(r){if(r.code==="ERR_DLOPEN_FAILED"){try{(0,lt.unlinkSync)(kt)}catch(e){p.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return p.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw r}}function $t(r,e){return e?tt(r):je(r)}function Ft(r,e,t,s,n,o,i){let a=[],d=Z(e);a.push(...st(r,d,s,i));let c=t.slice(0,s.sessionCount),m=Ie(c,t),l=re(e,m),T=Ae(e,s.fullObservationCount);a.push(...at(l,T,s,n,i));let E=t[0],f=e[0];dt(s,E,f)&&a.push(..._t(E,i));let R=se(e,s,o,n);return a.push(...ct(R,i)),a.push(...pt(d,s,i)),a.join(` `).trimEnd()}async function ae(r,e=!1){let t=J(),s=r?.cwd??process.cwd(),n=fe(s),o=r?.projects||[n];r?.full&&(t.totalObservationCount=999999,t.sessionCount=999999);let i=wt();if(!i)return"";try{let a=o.length>1?Ce(i,o,t):ee(i,n,t),d=o.length>1?Ne(i,o,t):te(i,n,t);return a.length===0&&d.length===0?$t(n,e):Ft(n,a,d,t,s,r?.session_id,e)}finally{i.close()}}0&&(module.exports={generateContext}); diff --git a/plugin/scripts/mcp-server.cjs b/plugin/scripts/mcp-server.cjs index ac2bb893..b037b59b 100755 --- a/plugin/scripts/mcp-server.cjs +++ b/plugin/scripts/mcp-server.cjs @@ -1,22 +1,22 @@ #!/usr/bin/env node -"use strict";var g$=Object.create;var Rs=Object.defineProperty;var v$=Object.getOwnPropertyDescriptor;var _$=Object.getOwnPropertyNames;var y$=Object.getPrototypeOf,$$=Object.prototype.hasOwnProperty;var S=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),In=(t,e)=>{for(var r in e)Rs(t,r,{get:e[r],enumerable:!0})},b$=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of _$(e))!$$.call(t,o)&&o!==r&&Rs(t,o,{get:()=>e[o],enumerable:!(n=v$(e,o))||n.enumerable});return t};var vi=(t,e,r)=>(r=t!=null?g$(y$(t)):{},b$(e||!t||!t.__esModule?Rs(r,"default",{value:t,enumerable:!0}):r,t));var Lo=S(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.regexpCode=re.getEsmExportName=re.getProperty=re.safeStringify=re.stringify=re.strConcat=re.addCodeArg=re.str=re._=re.nil=re._Code=re.Name=re.IDENTIFIER=re._CodeOrName=void 0;var Uo=class{};re._CodeOrName=Uo;re.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var xr=class extends Uo{constructor(e){if(super(),!re.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}}};re.Name=xr;var it=class extends Uo{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 xr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};re._Code=it;re.nil=new it("");function ov(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.ValueScope=Ve.ValueScopeName=Ve.Scope=Ve.varKinds=Ve.UsedValueState=void 0;var Fe=Lo(),jd=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},Za;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(Za||(Ve.UsedValueState=Za={}));Ve.varKinds={const:new Fe.Name("const"),let:new Fe.Name("let"),var:new Fe.Name("var")};var La=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Fe.Name?e:this.name(e)}name(e){return new Fe.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}}};Ve.Scope=La;var qa=class extends Fe.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Fe._)`.${new Fe.Name(r)}[${n}]`}};Ve.ValueScopeName=qa;var gw=(0,Fe._)`\n`,Dd=class extends La{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?gw:Fe.nil}}get(){return this._scope}name(e){return new qa(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 o=this.toName(e),{prefix:i}=o,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[i];if(s){let l=s.get(a);if(l)return l}else s=this._values[i]=new Map;s.set(a,o);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:i,itemIndex:u}),o}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,Fe._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(e,r,n={},o){let i=Fe.nil;for(let a in e){let s=e[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(u=>{if(c.has(u))return;c.set(u,Za.Started);let l=r(u);if(l){let d=this.opts.es5?Ve.varKinds.var:Ve.varKinds.const;i=(0,Fe._)`${i}${d} ${u} = ${l};${this.opts._n}`}else if(l=o?.(u))i=(0,Fe._)`${i}${l}${this.opts._n}`;else throw new jd(u);c.set(u,Za.Completed)})}return i}};Ve.ValueScope=Dd});var W=S(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.or=H.and=H.not=H.CodeGen=H.operators=H.varKinds=H.ValueScopeName=H.ValueScope=H.Scope=H.Name=H.regexpCode=H.stringify=H.getProperty=H.nil=H.strConcat=H.str=H._=void 0;var Q=Lo(),pt=Nd(),ir=Lo();Object.defineProperty(H,"_",{enumerable:!0,get:function(){return ir._}});Object.defineProperty(H,"str",{enumerable:!0,get:function(){return ir.str}});Object.defineProperty(H,"strConcat",{enumerable:!0,get:function(){return ir.strConcat}});Object.defineProperty(H,"nil",{enumerable:!0,get:function(){return ir.nil}});Object.defineProperty(H,"getProperty",{enumerable:!0,get:function(){return ir.getProperty}});Object.defineProperty(H,"stringify",{enumerable:!0,get:function(){return ir.stringify}});Object.defineProperty(H,"regexpCode",{enumerable:!0,get:function(){return ir.regexpCode}});Object.defineProperty(H,"Name",{enumerable:!0,get:function(){return ir.Name}});var Wa=Nd();Object.defineProperty(H,"Scope",{enumerable:!0,get:function(){return Wa.Scope}});Object.defineProperty(H,"ValueScope",{enumerable:!0,get:function(){return Wa.ValueScope}});Object.defineProperty(H,"ValueScopeName",{enumerable:!0,get:function(){return Wa.ValueScopeName}});Object.defineProperty(H,"varKinds",{enumerable:!0,get:function(){return Wa.varKinds}});H.operators={GT:new Q._Code(">"),GTE:new Q._Code(">="),LT:new Q._Code("<"),LTE:new Q._Code("<="),EQ:new Q._Code("==="),NEQ:new Q._Code("!=="),NOT:new Q._Code("!"),OR:new Q._Code("||"),AND:new Q._Code("&&"),ADD:new Q._Code("+")};var Ut=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Rd=class extends Ut{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?pt.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=un(this.rhs,e,r)),this}get names(){return this.rhs instanceof Q._CodeOrName?this.rhs.names:{}}},Fa=class extends Ut{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 Q.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=un(this.rhs,e,r),this}get names(){let e=this.lhs instanceof Q.Name?{}:{...this.lhs.names};return Ja(e,this.rhs)}},Ad=class extends Fa{constructor(e,r,n,o){super(e,n,o),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Md=class extends Ut{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Cd=class extends Ut{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Ud=class extends Ut{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Zd=class extends Ut{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=un(this.code,e,r),this}get names(){return this.code instanceof Q._CodeOrName?this.code.names:{}}},qo=class extends Ut{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,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(e,r)||(vw(e,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>wr(e,r.names),{})}},Zt=class extends qo{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Ld=class extends qo{},cn=class extends Zt{};cn.kind="else";var kr=class t extends Zt{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 cn(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(av(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=un(this.condition,e,r),this}get names(){let e=super.names;return Ja(e,this.condition),this.else&&wr(e,this.else.names),e}};kr.kind="if";var Sr=class extends Zt{};Sr.kind="for";var qd=class extends Sr{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=un(this.iteration,e,r),this}get names(){return wr(super.names,this.iteration.names)}},Fd=class extends Sr{constructor(e,r,n,o){super(),this.varKind=e,this.name=r,this.from=n,this.to=o}render(e){let r=e.es5?pt.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=Ja(super.names,this.from);return Ja(e,this.to)}},Va=class extends Sr{constructor(e,r,n,o){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=o}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=un(this.iterable,e,r),this}get names(){return wr(super.names,this.iterable.names)}},Fo=class extends Zt{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)}};Fo.kind="func";var Vo=class extends qo{render(e){return"return "+super.render(e)}};Vo.kind="return";var Vd=class extends Zt{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,o;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(o=this.finally)===null||o===void 0||o.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&wr(e,this.catch.names),this.finally&&wr(e,this.finally.names),e}},Jo=class extends Zt{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};Jo.kind="catch";var Wo=class extends Zt{render(e){return"finally"+super.render(e)}};Wo.kind="finally";var Jd=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` -`:""},this._extScope=e,this._scope=new pt.Scope({parent:e}),this._nodes=[new Ld]}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,o){let i=this._scope.toName(r);return n!==void 0&&o&&(this._constants[i.str]=n),this._leafNode(new Rd(e,i,n)),i}const(e,r,n){return this._def(pt.varKinds.const,e,r,n)}let(e,r,n){return this._def(pt.varKinds.let,e,r,n)}var(e,r,n){return this._def(pt.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new Fa(e,r,n))}add(e,r){return this._leafNode(new Ad(e,H.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==Q.nil&&this._leafNode(new Zd(e)),this}object(...e){let r=["{"];for(let[n,o]of e)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,Q.addCodeArg)(r,o));return r.push("}"),new Q._Code(r)}if(e,r,n){if(this._blockNode(new kr(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 kr(e))}else(){return this._elseNode(new cn)}endIf(){return this._endBlockNode(kr,cn)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new qd(e),r)}forRange(e,r,n,o,i=this.opts.es5?pt.varKinds.var:pt.varKinds.let){let a=this._scope.toName(e);return this._for(new Fd(i,a,r,n),()=>o(a))}forOf(e,r,n,o=pt.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let a=r instanceof Q.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,Q._)`${a}.length`,s=>{this.var(i,(0,Q._)`${a}[${s}]`),n(i)})}return this._for(new Va("of",o,i,r),()=>n(i))}forIn(e,r,n,o=this.opts.es5?pt.varKinds.var:pt.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,Q._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new Va("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(Sr)}label(e){return this._leafNode(new Md(e))}break(e){return this._leafNode(new Cd(e))}return(e){let r=new Vo;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Vo)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Vd;if(this._blockNode(o),this.code(e),r){let i=this.name("e");this._currNode=o.catch=new Jo(i),r(i)}return n&&(this._currNode=o.finally=new Wo,this.code(n)),this._endBlockNode(Jo,Wo)}throw(e){return this._leafNode(new Ud(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=Q.nil,n,o){return this._blockNode(new Fo(e,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Fo)}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 kr))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}};H.CodeGen=Jd;function wr(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function Ja(t,e){return e instanceof Q._CodeOrName?wr(t,e.names):t}function un(t,e,r){if(t instanceof Q.Name)return n(t);if(!o(t))return t;return new Q._Code(t._items.reduce((i,a)=>(a instanceof Q.Name&&(a=n(a)),a instanceof Q._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 o(i){return i instanceof Q._Code&&i._items.some(a=>a instanceof Q.Name&&e[a.str]===1&&r[a.str]!==void 0)}}function vw(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function av(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,Q._)`!${Wd(t)}`}H.not=av;var _w=sv(H.operators.AND);function yw(...t){return t.reduce(_w)}H.and=yw;var $w=sv(H.operators.OR);function bw(...t){return t.reduce($w)}H.or=bw;function sv(t){return(e,r)=>e===Q.nil?r:r===Q.nil?e:(0,Q._)`${Wd(e)} ${t} ${Wd(r)}`}function Wd(t){return t instanceof Q.Name?t:(0,Q._)`(${t})`}});var ee=S(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.checkStrictMode=B.getErrorPath=B.Type=B.useFunc=B.setEvaluated=B.evaluatedPropsToName=B.mergeEvaluated=B.eachItem=B.unescapeJsonPointer=B.escapeJsonPointer=B.escapeFragment=B.unescapeFragment=B.schemaRefOrVal=B.schemaHasRulesButRef=B.schemaHasRules=B.checkUnknownRules=B.alwaysValidSchema=B.toHash=void 0;var le=W(),xw=Lo();function kw(t){let e={};for(let r of t)e[r]=!0;return e}B.toHash=kw;function Sw(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(lv(t,e),!dv(e,t.self.RULES.all))}B.alwaysValidSchema=Sw;function lv(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let o=n.RULES.keywords;for(let i in e)o[i]||mv(t,`unknown keyword: "${i}"`)}B.checkUnknownRules=lv;function dv(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}B.schemaHasRules=dv;function ww(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}B.schemaHasRulesButRef=ww;function zw({topSchemaRef:t,schemaPath:e},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,le._)`${r}`}return(0,le._)`${t}${e}${(0,le.getProperty)(n)}`}B.schemaRefOrVal=zw;function Iw(t){return pv(decodeURIComponent(t))}B.unescapeFragment=Iw;function Ew(t){return encodeURIComponent(Hd(t))}B.escapeFragment=Ew;function Hd(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}B.escapeJsonPointer=Hd;function pv(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}B.unescapeJsonPointer=pv;function Tw(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}B.eachItem=Tw;function cv({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(o,i,a,s)=>{let c=a===void 0?i:a instanceof le.Name?(i instanceof le.Name?t(o,i,a):e(o,i,a),a):i instanceof le.Name?(e(o,a,i),i):r(i,a);return s===le.Name&&!(c instanceof le.Name)?n(o,c):c}}B.mergeEvaluated={props:cv({mergeNames:(t,e,r)=>t.if((0,le._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,le._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,le._)`${r} || {}`).code((0,le._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,le._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,le._)`${r} || {}`),Gd(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:fv}),items:cv({mergeNames:(t,e,r)=>t.if((0,le._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,le._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,le._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,le._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function fv(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,le._)`{}`);return e!==void 0&&Gd(t,r,e),r}B.evaluatedPropsToName=fv;function Gd(t,e,r){Object.keys(r).forEach(n=>t.assign((0,le._)`${e}${(0,le.getProperty)(n)}`,!0))}B.setEvaluated=Gd;var uv={};function Pw(t,e){return t.scopeValue("func",{ref:e,code:uv[e.code]||(uv[e.code]=new xw._Code(e.code))})}B.useFunc=Pw;var Kd;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Kd||(B.Type=Kd={}));function Ow(t,e,r){if(t instanceof le.Name){let n=e===Kd.Num;return r?n?(0,le._)`"[" + ${t} + "]"`:(0,le._)`"['" + ${t} + "']"`:n?(0,le._)`"/" + ${t}`:(0,le._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,le.getProperty)(t).toString():"/"+Hd(t)}B.getErrorPath=Ow;function mv(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}B.checkStrictMode=mv});var Lt=S(Bd=>{"use strict";Object.defineProperty(Bd,"__esModule",{value:!0});var Oe=W(),jw={data:new Oe.Name("data"),valCxt:new Oe.Name("valCxt"),instancePath:new Oe.Name("instancePath"),parentData:new Oe.Name("parentData"),parentDataProperty:new Oe.Name("parentDataProperty"),rootData:new Oe.Name("rootData"),dynamicAnchors:new Oe.Name("dynamicAnchors"),vErrors:new Oe.Name("vErrors"),errors:new Oe.Name("errors"),this:new Oe.Name("this"),self:new Oe.Name("self"),scope:new Oe.Name("scope"),json:new Oe.Name("json"),jsonPos:new Oe.Name("jsonPos"),jsonLen:new Oe.Name("jsonLen"),jsonPart:new Oe.Name("jsonPart")};Bd.default=jw});var Ko=S(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.extendErrors=je.resetErrorsCount=je.reportExtraError=je.reportError=je.keyword$DataError=je.keywordError=void 0;var te=W(),Ka=ee(),Ue=Lt();je.keywordError={message:({keyword:t})=>(0,te.str)`must pass "${t}" keyword validation`};je.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,te.str)`"${t}" keyword must be ${e} ($data)`:(0,te.str)`"${t}" keyword is invalid ($data)`};function Dw(t,e=je.keywordError,r,n){let{it:o}=t,{gen:i,compositeRule:a,allErrors:s}=o,c=vv(t,e,r);n??(a||s)?hv(i,c):gv(o,(0,te._)`[${c}]`)}je.reportError=Dw;function Nw(t,e=je.keywordError,r){let{it:n}=t,{gen:o,compositeRule:i,allErrors:a}=n,s=vv(t,e,r);hv(o,s),i||a||gv(n,Ue.default.vErrors)}je.reportExtraError=Nw;function Rw(t,e){t.assign(Ue.default.errors,e),t.if((0,te._)`${Ue.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,te._)`${Ue.default.vErrors}.length`,e),()=>t.assign(Ue.default.vErrors,null)))}je.resetErrorsCount=Rw;function Aw({gen:t,keyword:e,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let a=t.name("err");t.forRange("i",o,Ue.default.errors,s=>{t.const(a,(0,te._)`${Ue.default.vErrors}[${s}]`),t.if((0,te._)`${a}.instancePath === undefined`,()=>t.assign((0,te._)`${a}.instancePath`,(0,te.strConcat)(Ue.default.instancePath,i.errorPath))),t.assign((0,te._)`${a}.schemaPath`,(0,te.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,te._)`${a}.schema`,r),t.assign((0,te._)`${a}.data`,n))})}je.extendErrors=Aw;function hv(t,e){let r=t.const("err",e);t.if((0,te._)`${Ue.default.vErrors} === null`,()=>t.assign(Ue.default.vErrors,(0,te._)`[${r}]`),(0,te._)`${Ue.default.vErrors}.push(${r})`),t.code((0,te._)`${Ue.default.errors}++`)}function gv(t,e){let{gen:r,validateName:n,schemaEnv:o}=t;o.$async?r.throw((0,te._)`new ${t.ValidationError}(${e})`):(r.assign((0,te._)`${n}.errors`,e),r.return(!1))}var zr={keyword:new te.Name("keyword"),schemaPath:new te.Name("schemaPath"),params:new te.Name("params"),propertyName:new te.Name("propertyName"),message:new te.Name("message"),schema:new te.Name("schema"),parentSchema:new te.Name("parentSchema")};function vv(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,te._)`{}`:Mw(t,e,r)}function Mw(t,e,r={}){let{gen:n,it:o}=t,i=[Cw(o,r),Uw(t,r)];return Zw(t,e,i),n.object(...i)}function Cw({errorPath:t},{instancePath:e}){let r=e?(0,te.str)`${t}${(0,Ka.getErrorPath)(e,Ka.Type.Str)}`:t;return[Ue.default.instancePath,(0,te.strConcat)(Ue.default.instancePath,r)]}function Uw({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let o=n?e:(0,te.str)`${e}/${t}`;return r&&(o=(0,te.str)`${o}${(0,Ka.getErrorPath)(r,Ka.Type.Str)}`),[zr.schemaPath,o]}function Zw(t,{params:e,message:r},n){let{keyword:o,data:i,schemaValue:a,it:s}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=s;n.push([zr.keyword,o],[zr.params,typeof e=="function"?e(t):e||(0,te._)`{}`]),c.messages&&n.push([zr.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([zr.schema,a],[zr.parentSchema,(0,te._)`${l}${d}`],[Ue.default.data,i]),u&&n.push([zr.propertyName,u])}});var yv=S(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.boolOrEmptySchema=ln.topBoolOrEmptySchema=void 0;var Lw=Ko(),qw=W(),Fw=Lt(),Vw={message:"boolean schema is false"};function Jw(t){let{gen:e,schema:r,validateName:n}=t;r===!1?_v(t,!1):typeof r=="object"&&r.$async===!0?e.return(Fw.default.data):(e.assign((0,qw._)`${n}.errors`,null),e.return(!0))}ln.topBoolOrEmptySchema=Jw;function Ww(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),_v(t)):r.var(e,!0)}ln.boolOrEmptySchema=Ww;function _v(t,e){let{gen:r,data:n}=t,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,Lw.reportError)(o,Vw,void 0,e)}});var Xd=S(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});dn.getRules=dn.isJSONType=void 0;var Kw=["string","number","integer","boolean","null","object","array"],Hw=new Set(Kw);function Gw(t){return typeof t=="string"&&Hw.has(t)}dn.isJSONType=Gw;function Bw(){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:{}}}dn.getRules=Bw});var Yd=S(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});ar.shouldUseRule=ar.shouldUseGroup=ar.schemaHasRulesForType=void 0;function Xw({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&$v(t,n)}ar.schemaHasRulesForType=Xw;function $v(t,e){return e.rules.some(r=>bv(t,r))}ar.shouldUseGroup=$v;function bv(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))}ar.shouldUseRule=bv});var Ho=S(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.reportTypeError=De.checkDataTypes=De.checkDataType=De.coerceAndCheckDataType=De.getJSONTypes=De.getSchemaTypes=De.DataType=void 0;var Yw=Xd(),Qw=Yd(),e0=Ko(),J=W(),xv=ee(),pn;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(pn||(De.DataType=pn={}));function t0(t){let e=kv(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}De.getSchemaTypes=t0;function kv(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(Yw.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}De.getJSONTypes=kv;function r0(t,e){let{gen:r,data:n,opts:o}=t,i=n0(e,o.coerceTypes),a=e.length>0&&!(i.length===0&&e.length===1&&(0,Qw.schemaHasRulesForType)(t,e[0]));if(a){let s=ep(e,n,o.strictNumbers,pn.Wrong);r.if(s,()=>{i.length?o0(t,e,i):tp(t)})}return a}De.coerceAndCheckDataType=r0;var Sv=new Set(["string","number","integer","boolean","null"]);function n0(t,e){return e?t.filter(r=>Sv.has(r)||e==="array"&&r==="array"):[]}function o0(t,e,r){let{gen:n,data:o,opts:i}=t,a=n.let("dataType",(0,J._)`typeof ${o}`),s=n.let("coerced",(0,J._)`undefined`);i.coerceTypes==="array"&&n.if((0,J._)`${a} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,J._)`${o}[0]`).assign(a,(0,J._)`typeof ${o}`).if(ep(e,o,i.strictNumbers),()=>n.assign(s,o))),n.if((0,J._)`${s} !== undefined`);for(let u of r)(Sv.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),tp(t),n.endIf(),n.if((0,J._)`${s} !== undefined`,()=>{n.assign(o,s),i0(t,s)});function c(u){switch(u){case"string":n.elseIf((0,J._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,J._)`"" + ${o}`).elseIf((0,J._)`${o} === null`).assign(s,(0,J._)`""`);return;case"number":n.elseIf((0,J._)`${a} == "boolean" || ${o} === null - || (${a} == "string" && ${o} && ${o} == +${o})`).assign(s,(0,J._)`+${o}`);return;case"integer":n.elseIf((0,J._)`${a} === "boolean" || ${o} === null - || (${a} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(s,(0,J._)`+${o}`);return;case"boolean":n.elseIf((0,J._)`${o} === "false" || ${o} === 0 || ${o} === null`).assign(s,!1).elseIf((0,J._)`${o} === "true" || ${o} === 1`).assign(s,!0);return;case"null":n.elseIf((0,J._)`${o} === "" || ${o} === 0 || ${o} === false`),n.assign(s,null);return;case"array":n.elseIf((0,J._)`${a} === "string" || ${a} === "number" - || ${a} === "boolean" || ${o} === null`).assign(s,(0,J._)`[${o}]`)}}}function i0({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,J._)`${e} !== undefined`,()=>t.assign((0,J._)`${e}[${r}]`,n))}function Qd(t,e,r,n=pn.Correct){let o=n===pn.Correct?J.operators.EQ:J.operators.NEQ,i;switch(t){case"null":return(0,J._)`${e} ${o} null`;case"array":i=(0,J._)`Array.isArray(${e})`;break;case"object":i=(0,J._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=a((0,J._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=a();break;default:return(0,J._)`typeof ${e} ${o} ${t}`}return n===pn.Correct?i:(0,J.not)(i);function a(s=J.nil){return(0,J.and)((0,J._)`typeof ${e} == "number"`,s,r?(0,J._)`isFinite(${e})`:J.nil)}}De.checkDataType=Qd;function ep(t,e,r,n){if(t.length===1)return Qd(t[0],e,r,n);let o,i=(0,xv.toHash)(t);if(i.array&&i.object){let a=(0,J._)`typeof ${e} != "object"`;o=i.null?a:(0,J._)`!${e} || ${a}`,delete i.null,delete i.array,delete i.object}else o=J.nil;i.number&&delete i.integer;for(let a in i)o=(0,J.and)(o,Qd(a,e,r,n));return o}De.checkDataTypes=ep;var a0={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,J._)`{type: ${t}}`:(0,J._)`{type: ${e}}`};function tp(t){let e=s0(t);(0,e0.reportError)(e,a0)}De.reportTypeError=tp;function s0(t){let{gen:e,data:r,schema:n}=t,o=(0,xv.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:t}}});var zv=S(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.assignDefaults=void 0;var fn=W(),c0=ee();function u0(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let o in r)wv(t,o,r[o].default);else e==="array"&&Array.isArray(n)&&n.forEach((o,i)=>wv(t,i,o.default))}Ha.assignDefaults=u0;function wv(t,e,r){let{gen:n,compositeRule:o,data:i,opts:a}=t;if(r===void 0)return;let s=(0,fn._)`${i}${(0,fn.getProperty)(e)}`;if(o){(0,c0.checkStrictMode)(t,`default is ignored for: ${s}`);return}let c=(0,fn._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,fn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,fn._)`${s} = ${(0,fn.stringify)(r)}`)}});var at=S(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});ae.validateUnion=ae.validateArray=ae.usePattern=ae.callValidateCode=ae.schemaProperties=ae.allSchemaProperties=ae.noPropertyInData=ae.propertyInData=ae.isOwnProperty=ae.hasPropFunc=ae.reportMissingProp=ae.checkMissingProp=ae.checkReportMissingProp=void 0;var he=W(),rp=ee(),sr=Lt(),l0=ee();function d0(t,e){let{gen:r,data:n,it:o}=t;r.if(op(r,n,e,o.opts.ownProperties),()=>{t.setParams({missingProperty:(0,he._)`${e}`},!0),t.error()})}ae.checkReportMissingProp=d0;function p0({gen:t,data:e,it:{opts:r}},n,o){return(0,he.or)(...n.map(i=>(0,he.and)(op(t,e,i,r.ownProperties),(0,he._)`${o} = ${i}`)))}ae.checkMissingProp=p0;function f0(t,e){t.setParams({missingProperty:e},!0),t.error()}ae.reportMissingProp=f0;function Iv(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,he._)`Object.prototype.hasOwnProperty`})}ae.hasPropFunc=Iv;function np(t,e,r){return(0,he._)`${Iv(t)}.call(${e}, ${r})`}ae.isOwnProperty=np;function m0(t,e,r,n){let o=(0,he._)`${e}${(0,he.getProperty)(r)} !== undefined`;return n?(0,he._)`${o} && ${np(t,e,r)}`:o}ae.propertyInData=m0;function op(t,e,r,n){let o=(0,he._)`${e}${(0,he.getProperty)(r)} === undefined`;return n?(0,he.or)(o,(0,he.not)(np(t,e,r))):o}ae.noPropertyInData=op;function Ev(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ae.allSchemaProperties=Ev;function h0(t,e){return Ev(e).filter(r=>!(0,rp.alwaysValidSchema)(t,e[r]))}ae.schemaProperties=h0;function g0({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:a},s,c,u){let l=u?(0,he._)`${t}, ${e}, ${n}${o}`:e,d=[[sr.default.instancePath,(0,he.strConcat)(sr.default.instancePath,i)],[sr.default.parentData,a.parentData],[sr.default.parentDataProperty,a.parentDataProperty],[sr.default.rootData,sr.default.rootData]];a.opts.dynamicRef&&d.push([sr.default.dynamicAnchors,sr.default.dynamicAnchors]);let p=(0,he._)`${l}, ${r.object(...d)}`;return c!==he.nil?(0,he._)`${s}.call(${c}, ${p})`:(0,he._)`${s}(${p})`}ae.callValidateCode=g0;var v0=(0,he._)`new RegExp`;function _0({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:o}=e.code,i=o(r,n);return t.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,he._)`${o.code==="new RegExp"?v0:(0,l0.useFunc)(t,o)}(${r}, ${n})`})}ae.usePattern=_0;function y0(t){let{gen:e,data:r,keyword:n,it:o}=t,i=e.name("valid");if(o.allErrors){let s=e.let("valid",!0);return a(()=>e.assign(s,!1)),s}return e.var(i,!0),a(()=>e.break()),i;function a(s){let c=e.const("len",(0,he._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:rp.Type.Num},i),e.if((0,he.not)(i),s)})}}ae.validateArray=y0;function $0(t){let{gen:e,schema:r,keyword:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,rp.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let a=e.let("valid",!1),s=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let l=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},s);e.assign(a,(0,he._)`${a} || ${s}`),t.mergeValidEvaluated(l,s)||e.if((0,he.not)(a))})),t.result(a,()=>t.reset(),()=>t.error(!0))}ae.validateUnion=$0});var Ov=S($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});$t.validateKeywordUsage=$t.validSchemaType=$t.funcKeywordCode=$t.macroKeywordCode=void 0;var Ze=W(),Ir=Lt(),b0=at(),x0=Ko();function k0(t,e){let{gen:r,keyword:n,schema:o,parentSchema:i,it:a}=t,s=e.macro.call(a.self,o,i,a),c=Pv(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let u=r.name("valid");t.subschema({schema:s,schemaPath:Ze.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}$t.macroKeywordCode=k0;function S0(t,e){var r;let{gen:n,keyword:o,schema:i,parentSchema:a,$data:s,it:c}=t;z0(c,e);let u=!s&&e.compile?e.compile.call(c.self,i,a,c):e.validate,l=Pv(n,o,u),d=n.let("valid");t.block$data(d,p),t.ok((r=e.valid)!==null&&r!==void 0?r:d);function p(){if(e.errors===!1)h(),e.modifying&&Tv(t),_(()=>t.error());else{let b=e.async?f():g();e.modifying&&Tv(t),_(()=>w0(t,b))}}function f(){let b=n.let("ruleErrs",null);return n.try(()=>h((0,Ze._)`await `),E=>n.assign(d,!1).if((0,Ze._)`${E} instanceof ${c.ValidationError}`,()=>n.assign(b,(0,Ze._)`${E}.errors`),()=>n.throw(E))),b}function g(){let b=(0,Ze._)`${l}.errors`;return n.assign(b,null),h(Ze.nil),b}function h(b=e.async?(0,Ze._)`await `:Ze.nil){let E=c.opts.passContext?Ir.default.this:Ir.default.self,I=!("compile"in e&&!s||e.schema===!1);n.assign(d,(0,Ze._)`${b}${(0,b0.callValidateCode)(t,l,E,I)}`,e.modifying)}function _(b){var E;n.if((0,Ze.not)((E=e.valid)!==null&&E!==void 0?E:d),b)}}$t.funcKeywordCode=S0;function Tv(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ze._)`${n.parentData}[${n.parentDataProperty}]`))}function w0(t,e){let{gen:r}=t;r.if((0,Ze._)`Array.isArray(${e})`,()=>{r.assign(Ir.default.vErrors,(0,Ze._)`${Ir.default.vErrors} === null ? ${e} : ${Ir.default.vErrors}.concat(${e})`).assign(Ir.default.errors,(0,Ze._)`${Ir.default.vErrors}.length`),(0,x0.extendErrors)(t)},()=>t.error())}function z0({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function Pv(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,Ze.stringify)(r)})}function I0(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")}$t.validSchemaType=I0;function E0({schema:t,opts:e,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let a=o.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(o.validateSchema&&!o.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}$t.validateKeywordUsage=E0});var Dv=S(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});cr.extendSubschemaMode=cr.extendSubschemaData=cr.getSubschema=void 0;var bt=W(),jv=ee();function T0(t,{keyword:e,schemaProp:r,schema:n,schemaPath:o,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 s=t.schema[e];return r===void 0?{schema:s,schemaPath:(0,bt._)`${t.schemaPath}${(0,bt.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[r],schemaPath:(0,bt._)`${t.schemaPath}${(0,bt.getProperty)(e)}${(0,bt.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,jv.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}cr.getSubschema=T0;function P0(t,e,{dataProp:r,dataPropType:n,data:o,dataTypes:i,propertyName:a}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=e;if(r!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=e,p=s.let("data",(0,bt._)`${e.data}${(0,bt.getProperty)(r)}`,!0);c(p),t.errorPath=(0,bt.str)`${u}${(0,jv.getErrorPath)(r,n,d.jsPropertySyntax)}`,t.parentDataProperty=(0,bt._)`${r}`,t.dataPathArr=[...l,t.parentDataProperty]}if(o!==void 0){let u=o instanceof bt.Name?o:s.let("data",o,!0);c(u),a!==void 0&&(t.propertyName=a)}i&&(t.dataTypes=i);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}cr.extendSubschemaData=P0;function O0(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(t.compositeRule=n),o!==void 0&&(t.createErrors=o),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}cr.extendSubschemaMode=O0});var ip=S((dC,Nv)=>{"use strict";Nv.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,o,i;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!t(e[o],r[o]))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(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=n;o--!==0;){var a=i[o];if(!t(e[a],r[a]))return!1}return!0}return e!==e&&r!==r}});var Av=S((pC,Rv)=>{"use strict";var ur=Rv.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};Ga(e,n,o,t,"",t)};ur.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ur.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ur.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ur.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 Ga(t,e,r,n,o,i,a,s,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,o,i,a,s,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in ur.arrayKeywords)for(var p=0;p{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.getSchemaRefs=Je.resolveUrl=Je.normalizeId=Je._getFullPath=Je.getFullPath=Je.inlineRef=void 0;var D0=ee(),N0=ip(),R0=Av(),A0=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function M0(t,e=!0){return typeof t=="boolean"?!0:e===!0?!ap(t):e?Mv(t)<=e:!1}Je.inlineRef=M0;var C0=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ap(t){for(let e in t){if(C0.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(ap)||typeof r=="object"&&ap(r))return!0}return!1}function Mv(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!A0.has(r)&&(typeof t[r]=="object"&&(0,D0.eachItem)(t[r],n=>e+=Mv(n)),e===1/0))return 1/0}return e}function Cv(t,e="",r){r!==!1&&(e=mn(e));let n=t.parse(e);return Uv(t,n)}Je.getFullPath=Cv;function Uv(t,e){return t.serialize(e).split("#")[0]+"#"}Je._getFullPath=Uv;var U0=/#\/?$/;function mn(t){return t?t.replace(U0,""):""}Je.normalizeId=mn;function Z0(t,e,r){return r=mn(r),t.resolve(e,r)}Je.resolveUrl=Z0;var L0=/^[a-z_][-a-z0-9._]*$/i;function q0(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=mn(t[r]||e),i={"":o},a=Cv(n,o,!1),s={},c=new Set;return R0(t,{allKeys:!0},(d,p,f,g)=>{if(g===void 0)return;let h=a+p,_=i[g];typeof d[r]=="string"&&(_=b.call(this,d[r])),E.call(this,d.$anchor),E.call(this,d.$dynamicAnchor),i[p]=_;function b(I){let A=this.opts.uriResolver.resolve;if(I=mn(_?A(_,I):I),c.has(I))throw l(I);c.add(I);let j=this.refs[I];return typeof j=="string"&&(j=this.refs[j]),typeof j=="object"?u(d,j.schema,I):I!==mn(h)&&(I[0]==="#"?(u(d,s[I],I),s[I]=d):this.refs[I]=h),I}function E(I){if(typeof I=="string"){if(!L0.test(I))throw new Error(`invalid anchor "${I}"`);b.call(this,`#${I}`)}}}),s;function u(d,p,f){if(p!==void 0&&!N0(d,p))throw l(f)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Je.getSchemaRefs=q0});var Yo=S(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});lr.getData=lr.KeywordCxt=lr.validateFunctionCode=void 0;var Vv=yv(),Zv=Ho(),cp=Yd(),Ba=Ho(),F0=zv(),Xo=Ov(),sp=Dv(),O=W(),U=Lt(),V0=Go(),qt=ee(),Bo=Ko();function J0(t){if(Kv(t)&&(Hv(t),Wv(t))){H0(t);return}Jv(t,()=>(0,Vv.topBoolOrEmptySchema)(t))}lr.validateFunctionCode=J0;function Jv({gen:t,validateName:e,schema:r,schemaEnv:n,opts:o},i){o.code.es5?t.func(e,(0,O._)`${U.default.data}, ${U.default.valCxt}`,n.$async,()=>{t.code((0,O._)`"use strict"; ${Lv(r,o)}`),K0(t,o),t.code(i)}):t.func(e,(0,O._)`${U.default.data}, ${W0(o)}`,n.$async,()=>t.code(Lv(r,o)).code(i))}function W0(t){return(0,O._)`{${U.default.instancePath}="", ${U.default.parentData}, ${U.default.parentDataProperty}, ${U.default.rootData}=${U.default.data}${t.dynamicRef?(0,O._)`, ${U.default.dynamicAnchors}={}`:O.nil}}={}`}function K0(t,e){t.if(U.default.valCxt,()=>{t.var(U.default.instancePath,(0,O._)`${U.default.valCxt}.${U.default.instancePath}`),t.var(U.default.parentData,(0,O._)`${U.default.valCxt}.${U.default.parentData}`),t.var(U.default.parentDataProperty,(0,O._)`${U.default.valCxt}.${U.default.parentDataProperty}`),t.var(U.default.rootData,(0,O._)`${U.default.valCxt}.${U.default.rootData}`),e.dynamicRef&&t.var(U.default.dynamicAnchors,(0,O._)`${U.default.valCxt}.${U.default.dynamicAnchors}`)},()=>{t.var(U.default.instancePath,(0,O._)`""`),t.var(U.default.parentData,(0,O._)`undefined`),t.var(U.default.parentDataProperty,(0,O._)`undefined`),t.var(U.default.rootData,U.default.data),e.dynamicRef&&t.var(U.default.dynamicAnchors,(0,O._)`{}`)})}function H0(t){let{schema:e,opts:r,gen:n}=t;Jv(t,()=>{r.$comment&&e.$comment&&Bv(t),Q0(t),n.let(U.default.vErrors,null),n.let(U.default.errors,0),r.unevaluated&&G0(t),Gv(t),rz(t)})}function G0(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,O._)`${r}.evaluated`),e.if((0,O._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,O._)`${t.evaluated}.props`,(0,O._)`undefined`)),e.if((0,O._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,O._)`${t.evaluated}.items`,(0,O._)`undefined`))}function Lv(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,O._)`/*# sourceURL=${r} */`:O.nil}function B0(t,e){if(Kv(t)&&(Hv(t),Wv(t))){X0(t,e);return}(0,Vv.boolOrEmptySchema)(t,e)}function Wv({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 Kv(t){return typeof t.schema!="boolean"}function X0(t,e){let{schema:r,gen:n,opts:o}=t;o.$comment&&r.$comment&&Bv(t),ez(t),tz(t);let i=n.const("_errs",U.default.errors);Gv(t,i),n.var(e,(0,O._)`${i} === ${U.default.errors}`)}function Hv(t){(0,qt.checkUnknownRules)(t),Y0(t)}function Gv(t,e){if(t.opts.jtd)return qv(t,[],!1,e);let r=(0,Zv.getSchemaTypes)(t.schema),n=(0,Zv.coerceAndCheckDataType)(t,r);qv(t,r,!n,e)}function Y0(t){let{schema:e,errSchemaPath:r,opts:n,self:o}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,qt.schemaHasRulesButRef)(e,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function Q0(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,qt.checkStrictMode)(t,"default is ignored in the schema root")}function ez(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,V0.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function tz(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function Bv({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)t.code((0,O._)`${U.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let a=(0,O.str)`${n}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,O._)`${U.default.self}.opts.$comment(${i}, ${a}, ${s}.schema)`)}}function rz(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=t;r.$async?e.if((0,O._)`${U.default.errors} === 0`,()=>e.return(U.default.data),()=>e.throw((0,O._)`new ${o}(${U.default.vErrors})`)):(e.assign((0,O._)`${n}.errors`,U.default.vErrors),i.unevaluated&&nz(t),e.return((0,O._)`${U.default.errors} === 0`))}function nz({gen:t,evaluated:e,props:r,items:n}){r instanceof O.Name&&t.assign((0,O._)`${e}.props`,r),n instanceof O.Name&&t.assign((0,O._)`${e}.items`,n)}function qv(t,e,r,n){let{gen:o,schema:i,data:a,allErrors:s,opts:c,self:u}=t,{RULES:l}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,qt.schemaHasRulesButRef)(i,l))){o.block(()=>Yv(t,"$ref",l.all.$ref.definition));return}c.jtd||oz(t,e),o.block(()=>{for(let p of l.rules)d(p);d(l.post)});function d(p){(0,cp.shouldUseGroup)(i,p)&&(p.type?(o.if((0,Ba.checkDataType)(p.type,a,c.strictNumbers)),Fv(t,p),e.length===1&&e[0]===p.type&&r&&(o.else(),(0,Ba.reportTypeError)(t)),o.endIf()):Fv(t,p),s||o.if((0,O._)`${U.default.errors} === ${n||0}`))}}function Fv(t,e){let{gen:r,schema:n,opts:{useDefaults:o}}=t;o&&(0,F0.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,cp.shouldUseRule)(n,i)&&Yv(t,i.keyword,i.definition,e.type)})}function oz(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(iz(t,e),t.opts.allowUnionTypes||az(t,e),sz(t,t.dataTypes))}function iz(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{Xv(t.dataTypes,r)||up(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),uz(t,e)}}function az(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&up(t,"use allowUnionTypes to allow union type keyword")}function sz(t,e){let r=t.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,cp.shouldUseRule)(t.schema,o)){let{type:i}=o.definition;i.length&&!i.some(a=>cz(e,a))&&up(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function cz(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function Xv(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function uz(t,e){let r=[];for(let n of t.dataTypes)Xv(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function up(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,qt.checkStrictMode)(t,e,t.opts.strictTypes)}var Xa=class{constructor(e,r,n){if((0,Xo.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,qt.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",Qv(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,Xo.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",U.default.errors))}result(e,r,n){this.failResult((0,O.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,O.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,O._)`${r} !== undefined && (${(0,O.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?Bo.reportExtraError:Bo.reportError)(this,this.def.error,r)}$dataError(){(0,Bo.reportError)(this,this.def.$dataError||Bo.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Bo.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=O.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=O.nil,r=O.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:a}=this;n.if((0,O.or)((0,O._)`${o} === undefined`,r)),e!==O.nil&&n.assign(e,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==O.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,O.or)(a(),s());function a(){if(n.length){if(!(r instanceof O.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,O._)`${(0,Ba.checkDataTypes)(c,r,i.opts.strictNumbers,Ba.DataType.Wrong)}`}return O.nil}function s(){if(o.validateSchema){let c=e.scopeValue("validate$data",{ref:o.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(e,r){let n=(0,sp.getSubschema)(this.it,e);(0,sp.extendSubschemaData)(n,this.it,e),(0,sp.extendSubschemaMode)(n,e);let o={...this.it,...n,items:void 0,props:void 0};return B0(o,r),o}mergeEvaluated(e,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=qt.mergeEvaluated.props(o,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=qt.mergeEvaluated.items(o,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(e,O.Name)),!0}};lr.KeywordCxt=Xa;function Yv(t,e,r,n){let o=new Xa(t,r,e);"code"in r?r.code(o,n):o.$data&&r.validate?(0,Xo.funcKeywordCode)(o,r):"macro"in r?(0,Xo.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,Xo.funcKeywordCode)(o,r)}var lz=/^\/(?:[^~]|~0|~1)*$/,dz=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Qv(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let o,i;if(t==="")return U.default.rootData;if(t[0]==="/"){if(!lz.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);o=t,i=U.default.rootData}else{let u=dz.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+u[1];if(o=u[2],o==="#"){if(l>=e)throw new Error(c("property/index",l));return n[e-l]}if(l>e)throw new Error(c("data",l));if(i=r[e-l],!o)return i}let a=i,s=o.split("/");for(let u of s)u&&(i=(0,O._)`${i}${(0,O.getProperty)((0,qt.unescapeJsonPointer)(u))}`,a=(0,O._)`${a} && ${i}`);return a;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${e}`}}lr.getData=Qv});var Ya=S(dp=>{"use strict";Object.defineProperty(dp,"__esModule",{value:!0});var lp=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};dp.default=lp});var Qo=S(mp=>{"use strict";Object.defineProperty(mp,"__esModule",{value:!0});var pp=Go(),fp=class extends Error{constructor(e,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,pp.resolveUrl)(e,r,n),this.missingSchema=(0,pp.normalizeId)((0,pp.getFullPath)(e,this.missingRef))}};mp.default=fp});var es=S(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.resolveSchema=st.getCompilingSchema=st.resolveRef=st.compileSchema=st.SchemaEnv=void 0;var ft=W(),pz=Ya(),Er=Lt(),mt=Go(),e_=ee(),fz=Yo(),hn=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,mt.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};st.SchemaEnv=hn;function gp(t){let e=t_.call(this,t);if(e)return e;let r=(0,mt.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,a=new ft.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),s;t.$async&&(s=a.scopeValue("Error",{ref:pz.default,code:(0,ft._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");t.validateName=c;let u={gen:a,allErrors:this.opts.allErrors,data:Er.default.data,parentData:Er.default.parentData,parentDataProperty:Er.default.parentDataProperty,dataNames:[Er.default.data],dataPathArr:[ft.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,ft.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:ft.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ft._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,fz.validateFunctionCode)(u),a.optimize(this.opts.code.optimize);let d=a.toString();l=`${a.scopeRefs(Er.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let f=new Function(`${Er.default.self}`,`${Er.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:f}),f.errors=null,f.schema=t.schema,f.schemaEnv=t,t.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:c,validateCode:d,scopeValues:a._values}),this.opts.unevaluated){let{props:g,items:h}=u;f.evaluated={props:g instanceof ft.Name?void 0:g,items:h instanceof ft.Name?void 0:h,dynamicProps:g instanceof ft.Name,dynamicItems:h instanceof ft.Name},f.source&&(f.source.evaluated=(0,ft.stringify)(f.evaluated))}return t.validate=f,t}catch(d){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(t)}}st.compileSchema=gp;function mz(t,e,r){var n;r=(0,mt.resolveUrl)(this.opts.uriResolver,e,r);let o=t.refs[r];if(o)return o;let i=vz.call(this,t,r);if(i===void 0){let a=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(i=new hn({schema:a,schemaId:s,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=hz.call(this,i)}st.resolveRef=mz;function hz(t){return(0,mt.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:gp.call(this,t)}function t_(t){for(let e of this._compilations)if(gz(e,t))return e}st.getCompilingSchema=t_;function gz(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function vz(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Qa.call(this,t,e)}function Qa(t,e){let r=this.opts.uriResolver.parse(e),n=(0,mt._getFullPath)(this.opts.uriResolver,r),o=(0,mt.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===o)return hp.call(this,r,t);let i=(0,mt.normalizeId)(n),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let s=Qa.call(this,t,a);return typeof s?.schema!="object"?void 0:hp.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||gp.call(this,a),i===(0,mt.normalizeId)(e)){let{schema:s}=a,{schemaId:c}=this.opts,u=s[c];return u&&(o=(0,mt.resolveUrl)(this.opts.uriResolver,o,u)),new hn({schema:s,schemaId:c,root:t,baseId:o})}return hp.call(this,r,a)}}st.resolveSchema=Qa;var _z=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function hp(t,{baseId:e,schema:r,root:n}){var o;if(((o=t.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,e_.unescapeFragment)(s)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!_z.has(s)&&u&&(e=(0,mt.resolveUrl)(this.opts.uriResolver,e,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,e_.schemaHasRulesButRef)(r,this.RULES)){let s=(0,mt.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Qa.call(this,n,s)}let{schemaId:a}=this.opts;if(i=i||new hn({schema:r,schemaId:a,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var r_=S((_C,yz)=>{yz.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 _p=S((yC,a_)=>{"use strict";var $z=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),o_=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);function vp(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 bz=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function n_(t){return t.length=0,!0}function xz(t,e,r){if(t.length){let n=vp(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function kz(t){let e=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,a=!1,s=xz;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(i=!0),n.push(":");continue}else if(u==="%"){if(!s(o,n,r))break;s=n_}else{o.push(u);continue}}return o.length&&(s===n_?r.zone=o.join(""):a?n.push(o.join("")):n.push(vp(o))),r.address=n.join(""),r}function i_(t){if(Sz(t,":")<2)return{host:t,isIPV6:!1};let e=kz(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 Sz(t,e){let r=0;for(let n=0;n{"use strict";var{isUUID:Ez}=_p(),Tz=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Pz=["http","https","ws","wss","urn","urn:uuid"];function Oz(t){return Pz.indexOf(t)!==-1}function yp(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 s_(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function c_(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 jz(t){return t.secure=yp(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function Dz(t){if((t.port===(yp(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 Nz(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(Tz);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let o=`${n}:${e.nid||t.nid}`,i=$p(o);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function Rz(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(),o=`${r}:${e.nid||n}`,i=$p(o);i&&(t=i.serialize(t,e));let a=t,s=t.nss;return a.path=`${n||e.nid}:${s}`,e.skipEscape=!0,a}function Az(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!Ez(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Mz(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var u_={scheme:"http",domainHost:!0,parse:s_,serialize:c_},Cz={scheme:"https",domainHost:u_.domainHost,parse:s_,serialize:c_},ts={scheme:"ws",domainHost:!0,parse:jz,serialize:Dz},Uz={scheme:"wss",domainHost:ts.domainHost,parse:ts.parse,serialize:ts.serialize},Zz={scheme:"urn",parse:Nz,serialize:Rz,skipNormalize:!0},Lz={scheme:"urn:uuid",parse:Az,serialize:Mz,skipNormalize:!0},rs={http:u_,https:Cz,ws:ts,wss:Uz,urn:Zz,"urn:uuid":Lz};Object.setPrototypeOf(rs,null);function $p(t){return t&&(rs[t]||rs[t.toLowerCase()])||void 0}l_.exports={wsIsSecure:yp,SCHEMES:rs,isValidSchemeName:Oz,getSchemeHandler:$p}});var m_=S((bC,os)=>{"use strict";var{normalizeIPv6:qz,removeDotSegments:ei,recomposeAuthority:Fz,normalizeComponentEncoding:ns,isIPv4:Vz,nonSimpleDomain:Jz}=_p(),{SCHEMES:Wz,getSchemeHandler:p_}=d_();function Kz(t,e){return typeof t=="string"?t=xt(Ft(t,e),e):typeof t=="object"&&(t=Ft(xt(t,e),e)),t}function Hz(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},o=f_(Ft(t,n),Ft(e,n),n,!0);return n.skipEscape=!0,xt(o,n)}function f_(t,e,r,n){let o={};return n||(t=Ft(xt(t,r),r),e=Ft(xt(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(o.scheme=e.scheme,o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ei(e.path||""),o.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(o.userinfo=e.userinfo,o.host=e.host,o.port=e.port,o.path=ei(e.path||""),o.query=e.query):(e.path?(e.path[0]==="/"?o.path=ei(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?o.path="/"+e.path:t.path?o.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:o.path=e.path,o.path=ei(o.path)),o.query=e.query):(o.path=t.path,e.query!==void 0?o.query=e.query:o.query=t.query),o.userinfo=t.userinfo,o.host=t.host,o.port=t.port),o.scheme=t.scheme),o.fragment=e.fragment,o}function Gz(t,e,r){return typeof t=="string"?(t=unescape(t),t=xt(ns(Ft(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=xt(ns(t,!0),{...r,skipEscape:!0})),typeof e=="string"?(e=unescape(e),e=xt(ns(Ft(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=xt(ns(e,!0),{...r,skipEscape:!0})),t.toLowerCase()===e.toLowerCase()}function xt(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),o=[],i=p_(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let a=Fz(r);if(a!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(a),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(s=ei(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),o.push(s)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var Bz=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Ft(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},o=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let i=t.match(Bz);if(i){if(n.scheme=i[1],n.userinfo=i[3],n.host=i[4],n.port=parseInt(i[5],10),n.path=i[6]||"",n.query=i[7],n.fragment=i[8],isNaN(n.port)&&(n.port=i[5]),n.host)if(Vz(n.host)===!1){let c=qz(n.host);n.host=c.host.toLowerCase(),o=c.isIPV6}else o=!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 a=p_(r.scheme||n.scheme);if(!r.unicodeSupport&&(!a||!a.unicodeSupport)&&n.host&&(r.domainHost||a&&a.domainHost)&&o===!1&&Jz(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(s){n.error=n.error||"Host's domain name can not be converted to ASCII: "+s}(!a||a&&!a.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=unescape(n.host))),n.path&&(n.path=escape(unescape(n.path))),n.fragment&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),a&&a.parse&&a.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var bp={SCHEMES:Wz,normalize:Kz,resolve:Hz,resolveComponent:f_,equal:Gz,serialize:xt,parse:Ft};os.exports=bp;os.exports.default=bp;os.exports.fastUri=bp});var g_=S(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var h_=m_();h_.code='require("ajv/dist/runtime/uri").default';xp.default=h_});var S_=S(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.CodeGen=ze.Name=ze.nil=ze.stringify=ze.str=ze._=ze.KeywordCxt=void 0;var Xz=Yo();Object.defineProperty(ze,"KeywordCxt",{enumerable:!0,get:function(){return Xz.KeywordCxt}});var gn=W();Object.defineProperty(ze,"_",{enumerable:!0,get:function(){return gn._}});Object.defineProperty(ze,"str",{enumerable:!0,get:function(){return gn.str}});Object.defineProperty(ze,"stringify",{enumerable:!0,get:function(){return gn.stringify}});Object.defineProperty(ze,"nil",{enumerable:!0,get:function(){return gn.nil}});Object.defineProperty(ze,"Name",{enumerable:!0,get:function(){return gn.Name}});Object.defineProperty(ze,"CodeGen",{enumerable:!0,get:function(){return gn.CodeGen}});var Yz=Ya(),b_=Qo(),Qz=Xd(),ti=es(),eI=W(),ri=Go(),is=Ho(),Sp=ee(),v_=r_(),tI=g_(),x_=(t,e)=>new RegExp(t,e);x_.code="new RegExp";var rI=["removeAdditional","useDefaults","coerceTypes"],nI=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),oI={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."},iI={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},__=200;function aI(t){var e,r,n,o,i,a,s,c,u,l,d,p,f,g,h,_,b,E,I,A,j,Le,de,Wt,Qe;let Kt=t.strict,Ns=(e=t.code)===null||e===void 0?void 0:e.optimize,Rf=Ns===!0||Ns===void 0?1:Ns||0,Af=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:x_,h$=(o=t.uriResolver)!==null&&o!==void 0?o:tI.default;return{strictSchema:(a=(i=t.strictSchema)!==null&&i!==void 0?i:Kt)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=t.strictNumbers)!==null&&s!==void 0?s:Kt)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=t.strictTypes)!==null&&u!==void 0?u:Kt)!==null&&l!==void 0?l:"log",strictTuples:(p=(d=t.strictTuples)!==null&&d!==void 0?d:Kt)!==null&&p!==void 0?p:"log",strictRequired:(g=(f=t.strictRequired)!==null&&f!==void 0?f:Kt)!==null&&g!==void 0?g:!1,code:t.code?{...t.code,optimize:Rf,regExp:Af}:{optimize:Rf,regExp:Af},loopRequired:(h=t.loopRequired)!==null&&h!==void 0?h:__,loopEnum:(_=t.loopEnum)!==null&&_!==void 0?_:__,meta:(b=t.meta)!==null&&b!==void 0?b:!0,messages:(E=t.messages)!==null&&E!==void 0?E:!0,inlineRefs:(I=t.inlineRefs)!==null&&I!==void 0?I:!0,schemaId:(A=t.schemaId)!==null&&A!==void 0?A:"$id",addUsedSchema:(j=t.addUsedSchema)!==null&&j!==void 0?j:!0,validateSchema:(Le=t.validateSchema)!==null&&Le!==void 0?Le:!0,validateFormats:(de=t.validateFormats)!==null&&de!==void 0?de:!0,unicodeRegExp:(Wt=t.unicodeRegExp)!==null&&Wt!==void 0?Wt:!0,int32range:(Qe=t.int32range)!==null&&Qe!==void 0?Qe:!0,uriResolver:h$}}var ni=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...aI(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new eI.ValueScope({scope:{},prefixes:nI,es5:r,lines:n}),this.logger=pI(e.logger);let o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,Qz.getRules)(),y_.call(this,oI,e,"NOT SUPPORTED"),y_.call(this,iI,e,"DEPRECATED","warn"),this._metaOpts=lI.call(this),e.formats&&cI.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&uI.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),sI.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,o=v_;n==="id"&&(o={...v_},o.id=o.$id,delete o.$id),r&&e&&this.addMetaSchema(o,o[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 o=n(r);return"$async"in n||(this.errors=n.errors),o}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 o.call(this,e,r);async function o(l,d){await i.call(this,l.$schema);let p=this._addSchema(l,d);return p.validate||a.call(this,p)}async function i(l){l&&!this.getSchema(l)&&await o.call(this,{$ref:l},!0)}async function a(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof b_.default))throw d;return s.call(this,d),await c.call(this,d.missingSchema),a.call(this,l)}}function s({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await i.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,r)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(e,r,n,o=this.opts.validateSchema){if(Array.isArray(e)){for(let a of e)this.addSchema(a,void 0,n,o);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,ri.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,o,!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 o=this.validate(n,e);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(e){let r;for(;typeof(r=$_.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,o=new ti.SchemaEnv({schema:{},schemaId:n});if(r=ti.resolveSchema.call(this,o,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=$_.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,ri.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(mI.call(this,n,r),!r)return(0,Sp.eachItem)(n,i=>kp.call(this,i)),this;gI.call(this,r);let o={...r,type:(0,is.getJSONTypes)(r.type),schemaType:(0,is.getJSONTypes)(r.schemaType)};return(0,Sp.eachItem)(n,o.type.length===0?i=>kp.call(this,i,o):i=>o.type.forEach(a=>kp.call(this,i,o,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 o=n.rules.findIndex(i=>i.keyword===e);o>=0&&n.rules.splice(o,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(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,i)=>o+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let o of r){let i=o.split("/").slice(1),a=e;for(let s of i)a=a[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:u}=c.definition,l=a[s];u&&l&&(a[s]=k_(l))}}return e}_removeAllSchemas(e,r){for(let n in e){let o=e[n];(!r||r.test(n))&&(typeof o=="string"?delete e[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete e[n]))}}_addSchema(e,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof e=="object")a=e[s];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,ri.normalizeId)(a||n);let u=ri.getSchemaRefs.call(this,e,n);return c=new ti.SchemaEnv({schema:e,schemaId:s,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&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):ti.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{ti.compileSchema.call(this,e)}finally{this.opts=r}}};ni.ValidationError=Yz.default;ni.MissingRefError=b_.default;ze.default=ni;function y_(t,e,r,n="error"){for(let o in t){let i=o;i in e&&this.logger[n](`${r}: option ${o}. ${t[i]}`)}}function $_(t){return t=(0,ri.normalizeId)(t),this.schemas[t]||this.refs[t]}function sI(){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 cI(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function uI(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 lI(){let t={...this.opts};for(let e of rI)delete t[e];return t}var dI={log(){},warn(){},error(){}};function pI(t){if(t===!1)return dI;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 fI=/^[a-z_$][a-z0-9_$:-]*$/i;function mI(t,e){let{RULES:r}=this;if((0,Sp.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!fI.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 kp(t,e,r){var n;let o=e?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=o?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 s={keyword:t,definition:{...e,type:(0,is.getJSONTypes)(e.type),schemaType:(0,is.getJSONTypes)(e.schemaType)}};e.before?hI.call(this,a,s,e.before):a.rules.push(s),i.all[t]=s,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function hI(t,e,r){let n=t.rules.findIndex(o=>o.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function gI(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=k_(e)),t.validateSchema=this.compile(e,!0))}var vI={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function k_(t){return{anyOf:[t,vI]}}});var w_=S(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var _I={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};wp.default=_I});var T_=S(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.callRef=Tr.getValidate=void 0;var yI=Qo(),z_=at(),We=W(),vn=Lt(),I_=es(),as=ee(),$I={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:o,schemaEnv:i,validateName:a,opts:s,self:c}=n,{root:u}=i;if((r==="#"||r==="#/")&&o===u.baseId)return d();let l=I_.resolveRef.call(c,u,o,r);if(l===void 0)throw new yI.default(n.opts.uriResolver,o,r);if(l instanceof I_.SchemaEnv)return p(l);return f(l);function d(){if(i===u)return ss(t,a,i,i.$async);let g=e.scopeValue("root",{ref:u});return ss(t,(0,We._)`${g}.validate`,u,u.$async)}function p(g){let h=E_(t,g);ss(t,h,g,g.$async)}function f(g){let h=e.scopeValue("schema",s.code.source===!0?{ref:g,code:(0,We.stringify)(g)}:{ref:g}),_=e.name("valid"),b=t.subschema({schema:g,dataTypes:[],schemaPath:We.nil,topSchemaRef:h,errSchemaPath:r},_);t.mergeEvaluated(b),t.ok(_)}}};function E_(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,We._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Tr.getValidate=E_;function ss(t,e,r,n){let{gen:o,it:i}=t,{allErrors:a,schemaEnv:s,opts:c}=i,u=c.passContext?vn.default.this:We.nil;n?l():d();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let g=o.let("valid");o.try(()=>{o.code((0,We._)`await ${(0,z_.callValidateCode)(t,e,u)}`),f(e),a||o.assign(g,!0)},h=>{o.if((0,We._)`!(${h} instanceof ${i.ValidationError})`,()=>o.throw(h)),p(h),a||o.assign(g,!1)}),t.ok(g)}function d(){t.result((0,z_.callValidateCode)(t,e,u),()=>f(e),()=>p(e))}function p(g){let h=(0,We._)`${g}.errors`;o.assign(vn.default.vErrors,(0,We._)`${vn.default.vErrors} === null ? ${h} : ${vn.default.vErrors}.concat(${h})`),o.assign(vn.default.errors,(0,We._)`${vn.default.vErrors}.length`)}function f(g){var h;if(!i.opts.unevaluated)return;let _=(h=r?.validate)===null||h===void 0?void 0:h.evaluated;if(i.props!==!0)if(_&&!_.dynamicProps)_.props!==void 0&&(i.props=as.mergeEvaluated.props(o,_.props,i.props));else{let b=o.var("props",(0,We._)`${g}.evaluated.props`);i.props=as.mergeEvaluated.props(o,b,i.props,We.Name)}if(i.items!==!0)if(_&&!_.dynamicItems)_.items!==void 0&&(i.items=as.mergeEvaluated.items(o,_.items,i.items));else{let b=o.var("items",(0,We._)`${g}.evaluated.items`);i.items=as.mergeEvaluated.items(o,b,i.items,We.Name)}}}Tr.callRef=ss;Tr.default=$I});var P_=S(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var bI=w_(),xI=T_(),kI=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",bI.default,xI.default];zp.default=kI});var O_=S(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var cs=W(),dr=cs.operators,us={maximum:{okStr:"<=",ok:dr.LTE,fail:dr.GT},minimum:{okStr:">=",ok:dr.GTE,fail:dr.LT},exclusiveMaximum:{okStr:"<",ok:dr.LT,fail:dr.GTE},exclusiveMinimum:{okStr:">",ok:dr.GT,fail:dr.LTE}},SI={message:({keyword:t,schemaCode:e})=>(0,cs.str)`must be ${us[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,cs._)`{comparison: ${us[t].okStr}, limit: ${e}}`},wI={keyword:Object.keys(us),type:"number",schemaType:"number",$data:!0,error:SI,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,cs._)`${r} ${us[e].fail} ${n} || isNaN(${r})`)}};Ip.default=wI});var j_=S(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var oi=W(),zI={message:({schemaCode:t})=>(0,oi.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,oi._)`{multipleOf: ${t}}`},II={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:zI,code(t){let{gen:e,data:r,schemaCode:n,it:o}=t,i=o.opts.multipleOfPrecision,a=e.let("res"),s=i?(0,oi._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,oi._)`${a} !== parseInt(${a})`;t.fail$data((0,oi._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};Ep.default=II});var N_=S(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});function D_(t){let e=t.length,r=0,n=0,o;for(;n=55296&&o<=56319&&n{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var Pr=W(),EI=ee(),TI=N_(),PI={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,Pr.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,Pr._)`{limit: ${t}}`},OI={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:PI,code(t){let{keyword:e,data:r,schemaCode:n,it:o}=t,i=e==="maxLength"?Pr.operators.GT:Pr.operators.LT,a=o.opts.unicode===!1?(0,Pr._)`${r}.length`:(0,Pr._)`${(0,EI.useFunc)(t.gen,TI.default)}(${r})`;t.fail$data((0,Pr._)`${a} ${i} ${n}`)}};Pp.default=OI});var A_=S(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var jI=at(),DI=ee(),_n=W(),NI={message:({schemaCode:t})=>(0,_n.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,_n._)`{pattern: ${t}}`},RI={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:NI,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:i,it:a}=t,s=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,u=c.code==="new RegExp"?(0,_n._)`new RegExp`:(0,DI.useFunc)(e,c),l=e.let("valid");e.try(()=>e.assign(l,(0,_n._)`${u}(${i}, ${s}).test(${r})`),()=>e.assign(l,!1)),t.fail$data((0,_n._)`!${l}`)}else{let c=(0,jI.usePattern)(t,o);t.fail$data((0,_n._)`!${c}.test(${r})`)}}};Op.default=RI});var M_=S(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var ii=W(),AI={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,ii.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,ii._)`{limit: ${t}}`},MI={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:AI,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxProperties"?ii.operators.GT:ii.operators.LT;t.fail$data((0,ii._)`Object.keys(${r}).length ${o} ${n}`)}};jp.default=MI});var C_=S(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var ai=at(),si=W(),CI=ee(),UI={message:({params:{missingProperty:t}})=>(0,si.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,si._)`{missingProperty: ${t}}`},ZI={keyword:"required",type:"object",schemaType:"array",$data:!0,error:UI,code(t){let{gen:e,schema:r,schemaCode:n,data:o,$data:i,it:a}=t,{opts:s}=a;if(!i&&r.length===0)return;let c=r.length>=s.loopRequired;if(a.allErrors?u():l(),s.strictRequired){let f=t.parentSchema.properties,{definedProperties:g}=t.it;for(let h of r)if(f?.[h]===void 0&&!g.has(h)){let _=a.schemaEnv.baseId+a.errSchemaPath,b=`required property "${h}" is not defined at "${_}" (strictRequired)`;(0,CI.checkStrictMode)(a,b,a.opts.strictRequired)}}function u(){if(c||i)t.block$data(si.nil,d);else for(let f of r)(0,ai.checkReportMissingProp)(t,f)}function l(){let f=e.let("missing");if(c||i){let g=e.let("valid",!0);t.block$data(g,()=>p(f,g)),t.ok(g)}else e.if((0,ai.checkMissingProp)(t,r,f)),(0,ai.reportMissingProp)(t,f),e.else()}function d(){e.forOf("prop",n,f=>{t.setParams({missingProperty:f}),e.if((0,ai.noPropertyInData)(e,o,f,s.ownProperties),()=>t.error())})}function p(f,g){t.setParams({missingProperty:f}),e.forOf(f,n,()=>{e.assign(g,(0,ai.propertyInData)(e,o,f,s.ownProperties)),e.if((0,si.not)(g),()=>{t.error(),e.break()})},si.nil)}}};Dp.default=ZI});var U_=S(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});var ci=W(),LI={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,ci.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,ci._)`{limit: ${t}}`},qI={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:LI,code(t){let{keyword:e,data:r,schemaCode:n}=t,o=e==="maxItems"?ci.operators.GT:ci.operators.LT;t.fail$data((0,ci._)`${r}.length ${o} ${n}`)}};Np.default=qI});var ls=S(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});var Z_=ip();Z_.code='require("ajv/dist/runtime/equal").default';Rp.default=Z_});var L_=S(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var Ap=Ho(),Ie=W(),FI=ee(),VI=ls(),JI={message:({params:{i:t,j:e}})=>(0,Ie.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,Ie._)`{i: ${t}, j: ${e}}`},WI={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:JI,code(t){let{gen:e,data:r,$data:n,schema:o,parentSchema:i,schemaCode:a,it:s}=t;if(!n&&!o)return;let c=e.let("valid"),u=i.items?(0,Ap.getSchemaTypes)(i.items):[];t.block$data(c,l,(0,Ie._)`${a} === false`),t.ok(c);function l(){let g=e.let("i",(0,Ie._)`${r}.length`),h=e.let("j");t.setParams({i:g,j:h}),e.assign(c,!0),e.if((0,Ie._)`${g} > 1`,()=>(d()?p:f)(g,h))}function d(){return u.length>0&&!u.some(g=>g==="object"||g==="array")}function p(g,h){let _=e.name("item"),b=(0,Ap.checkDataTypes)(u,_,s.opts.strictNumbers,Ap.DataType.Wrong),E=e.const("indices",(0,Ie._)`{}`);e.for((0,Ie._)`;${g}--;`,()=>{e.let(_,(0,Ie._)`${r}[${g}]`),e.if(b,(0,Ie._)`continue`),u.length>1&&e.if((0,Ie._)`typeof ${_} == "string"`,(0,Ie._)`${_} += "_"`),e.if((0,Ie._)`typeof ${E}[${_}] == "number"`,()=>{e.assign(h,(0,Ie._)`${E}[${_}]`),t.error(),e.assign(c,!1).break()}).code((0,Ie._)`${E}[${_}] = ${g}`)})}function f(g,h){let _=(0,FI.useFunc)(e,VI.default),b=e.name("outer");e.label(b).for((0,Ie._)`;${g}--;`,()=>e.for((0,Ie._)`${h} = ${g}; ${h}--;`,()=>e.if((0,Ie._)`${_}(${r}[${g}], ${r}[${h}])`,()=>{t.error(),e.assign(c,!1).break(b)})))}}};Mp.default=WI});var q_=S(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var Cp=W(),KI=ee(),HI=ls(),GI={message:"must be equal to constant",params:({schemaCode:t})=>(0,Cp._)`{allowedValue: ${t}}`},BI={keyword:"const",$data:!0,error:GI,code(t){let{gen:e,data:r,$data:n,schemaCode:o,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,Cp._)`!${(0,KI.useFunc)(e,HI.default)}(${r}, ${o})`):t.fail((0,Cp._)`${i} !== ${r}`)}};Up.default=BI});var F_=S(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var ui=W(),XI=ee(),YI=ls(),QI={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,ui._)`{allowedValues: ${t}}`},eE={keyword:"enum",schemaType:"array",$data:!0,error:QI,code(t){let{gen:e,data:r,$data:n,schema:o,schemaCode:i,it:a}=t;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let s=o.length>=a.opts.loopEnum,c,u=()=>c??(c=(0,XI.useFunc)(e,YI.default)),l;if(s||n)l=e.let("valid"),t.block$data(l,d);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let f=e.const("vSchema",i);l=(0,ui.or)(...o.map((g,h)=>p(f,h)))}t.pass(l);function d(){e.assign(l,!1),e.forOf("v",i,f=>e.if((0,ui._)`${u()}(${r}, ${f})`,()=>e.assign(l,!0).break()))}function p(f,g){let h=o[g];return typeof h=="object"&&h!==null?(0,ui._)`${u()}(${r}, ${f}[${g}])`:(0,ui._)`${r} === ${h}`}}};Zp.default=eE});var V_=S(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var tE=O_(),rE=j_(),nE=R_(),oE=A_(),iE=M_(),aE=C_(),sE=U_(),cE=L_(),uE=q_(),lE=F_(),dE=[tE.default,rE.default,nE.default,oE.default,iE.default,aE.default,sE.default,cE.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},uE.default,lE.default];Lp.default=dE});var Fp=S(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.validateAdditionalItems=void 0;var Or=W(),qp=ee(),pE={message:({params:{len:t}})=>(0,Or.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Or._)`{limit: ${t}}`},fE={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:pE,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,qp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}J_(t,n)}};function J_(t,e){let{gen:r,schema:n,data:o,keyword:i,it:a}=t;a.items=!0;let s=r.const("len",(0,Or._)`${o}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Or._)`${s} <= ${e.length}`);else if(typeof n=="object"&&!(0,qp.alwaysValidSchema)(a,n)){let u=r.var("valid",(0,Or._)`${s} <= ${e.length}`);r.if((0,Or.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,s,l=>{t.subschema({keyword:i,dataProp:l,dataPropType:qp.Type.Num},u),a.allErrors||r.if((0,Or.not)(u),()=>r.break())})}}li.validateAdditionalItems=J_;li.default=fE});var Vp=S(di=>{"use strict";Object.defineProperty(di,"__esModule",{value:!0});di.validateTuple=void 0;var W_=W(),ds=ee(),mE=at(),hE={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return K_(t,"additionalItems",e);r.items=!0,!(0,ds.alwaysValidSchema)(r,e)&&t.ok((0,mE.validateArray)(t))}};function K_(t,e,r=t.schema){let{gen:n,parentSchema:o,data:i,keyword:a,it:s}=t;l(o),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=ds.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),u=n.const("len",(0,W_._)`${i}.length`);r.forEach((d,p)=>{(0,ds.alwaysValidSchema)(s,d)||(n.if((0,W_._)`${u} > ${p}`,()=>t.subschema({keyword:a,schemaProp:p,dataProp:p},c)),t.ok(c))});function l(d){let{opts:p,errSchemaPath:f}=s,g=r.length,h=g===d.minItems&&(g===d.maxItems||d[e]===!1);if(p.strictTuples&&!h){let _=`"${a}" is ${g}-tuple, but minItems or maxItems/${e} are not specified or different at path "${f}"`;(0,ds.checkStrictMode)(s,_,p.strictTuples)}}}di.validateTuple=K_;di.default=hE});var H_=S(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var gE=Vp(),vE={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,gE.validateTuple)(t,"items")};Jp.default=vE});var B_=S(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var G_=W(),_E=ee(),yE=at(),$E=Fp(),bE={message:({params:{len:t}})=>(0,G_.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,G_._)`{limit: ${t}}`},xE={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:bE,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:o}=r;n.items=!0,!(0,_E.alwaysValidSchema)(n,e)&&(o?(0,$E.validateAdditionalItems)(t,o):t.ok((0,yE.validateArray)(t)))}};Wp.default=xE});var X_=S(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var ct=W(),ps=ee(),kE={message:({params:{min:t,max:e}})=>e===void 0?(0,ct.str)`must contain at least ${t} valid item(s)`:(0,ct.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,ct._)`{minContains: ${t}}`:(0,ct._)`{minContains: ${t}, maxContains: ${e}}`},SE={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:kE,code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:i}=t,a,s,{minContains:c,maxContains:u}=n;i.opts.next?(a=c===void 0?1:c,s=u):a=1;let l=e.const("len",(0,ct._)`${o}.length`);if(t.setParams({min:a,max:s}),s===void 0&&a===0){(0,ps.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,ps.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,ps.alwaysValidSchema)(i,r)){let h=(0,ct._)`${l} >= ${a}`;s!==void 0&&(h=(0,ct._)`${h} && ${l} <= ${s}`),t.pass(h);return}i.items=!0;let d=e.name("valid");s===void 0&&a===1?f(d,()=>e.if(d,()=>e.break())):a===0?(e.let(d,!0),s!==void 0&&e.if((0,ct._)`${o}.length > 0`,p)):(e.let(d,!1),p()),t.result(d,()=>t.reset());function p(){let h=e.name("_valid"),_=e.let("count",0);f(h,()=>e.if(h,()=>g(_)))}function f(h,_){e.forRange("i",0,l,b=>{t.subschema({keyword:"contains",dataProp:b,dataPropType:ps.Type.Num,compositeRule:!0},h),_()})}function g(h){e.code((0,ct._)`${h}++`),s===void 0?e.if((0,ct._)`${h} >= ${a}`,()=>e.assign(d,!0).break()):(e.if((0,ct._)`${h} > ${s}`,()=>e.assign(d,!1).break()),a===1?e.assign(d,!0):e.if((0,ct._)`${h} >= ${a}`,()=>e.assign(d,!0)))}}};Kp.default=SE});var ey=S(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.validateSchemaDeps=kt.validatePropertyDeps=kt.error=void 0;var Hp=W(),wE=ee(),pi=at();kt.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Hp.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Hp._)`{property: ${t}, +"use strict";var l$=Object.create;var Ns=Object.defineProperty;var d$=Object.getOwnPropertyDescriptor;var p$=Object.getOwnPropertyNames;var f$=Object.getPrototypeOf,m$=Object.prototype.hasOwnProperty;var S=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),wn=(e,t)=>{for(var r in t)Ns(e,r,{get:t[r],enumerable:!0})},h$=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of p$(t))!m$.call(e,o)&&o!==r&&Ns(e,o,{get:()=>t[o],enumerable:!(n=d$(t,o))||n.enumerable});return e};var mi=(e,t,r)=>(r=e!=null?l$(f$(e)):{},h$(t||!e||!e.__esModule?Ns(r,"default",{value:e,enumerable:!0}):r,e));var Co=S(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.regexpCode=te.getEsmExportName=te.getProperty=te.safeStringify=te.stringify=te.strConcat=te.addCodeArg=te.str=te._=te.nil=te._Code=te.Name=te.IDENTIFIER=te._CodeOrName=void 0;var Ao=class{};te._CodeOrName=Ao;te.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var xr=class extends Ao{constructor(t){if(super(),!te.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};te.Name=xr;var it=class extends Ao{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof xr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};te._Code=it;te.nil=new it("");function Yg(e,...t){let r=[e[0]],n=0;for(;n{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.ValueScope=Ve.ValueScopeName=Ve.Scope=Ve.varKinds=Ve.UsedValueState=void 0;var Fe=Co(),Od=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Ca;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Ca||(Ve.UsedValueState=Ca={}));Ve.varKinds={const:new Fe.Name("const"),let:new Fe.Name("let"),var:new Fe.Name("var")};var Ua=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Fe.Name?t:this.name(t)}name(t){return new Fe.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Ve.Scope=Ua;var Za=class extends Fe.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Fe._)`.${new Fe.Name(r)}[${n}]`}};Ve.ValueScopeName=Za;var gw=(0,Fe._)`\n`,jd=class extends Ua{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?gw:Fe.nil}}get(){return this._scope}name(t){return new Za(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(t),{prefix:i}=o,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[i];if(s){let l=s.get(a);if(l)return l}else s=this._values[i]=new Map;s.set(a,o);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:i,itemIndex:u}),o}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Fe._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(t,r,n={},o){let i=Fe.nil;for(let a in t){let s=t[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(u=>{if(c.has(u))return;c.set(u,Ca.Started);let l=r(u);if(l){let d=this.opts.es5?Ve.varKinds.var:Ve.varKinds.const;i=(0,Fe._)`${i}${d} ${u} = ${l};${this.opts._n}`}else if(l=o?.(u))i=(0,Fe._)`${i}${l}${this.opts._n}`;else throw new Od(u);c.set(u,Ca.Completed)})}return i}};Ve.ValueScope=jd});var W=S(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.or=H.and=H.not=H.CodeGen=H.operators=H.varKinds=H.ValueScopeName=H.ValueScope=H.Scope=H.Name=H.regexpCode=H.stringify=H.getProperty=H.nil=H.strConcat=H.str=H._=void 0;var Q=Co(),pt=Dd(),ir=Co();Object.defineProperty(H,"_",{enumerable:!0,get:function(){return ir._}});Object.defineProperty(H,"str",{enumerable:!0,get:function(){return ir.str}});Object.defineProperty(H,"strConcat",{enumerable:!0,get:function(){return ir.strConcat}});Object.defineProperty(H,"nil",{enumerable:!0,get:function(){return ir.nil}});Object.defineProperty(H,"getProperty",{enumerable:!0,get:function(){return ir.getProperty}});Object.defineProperty(H,"stringify",{enumerable:!0,get:function(){return ir.stringify}});Object.defineProperty(H,"regexpCode",{enumerable:!0,get:function(){return ir.regexpCode}});Object.defineProperty(H,"Name",{enumerable:!0,get:function(){return ir.Name}});var Va=Dd();Object.defineProperty(H,"Scope",{enumerable:!0,get:function(){return Va.Scope}});Object.defineProperty(H,"ValueScope",{enumerable:!0,get:function(){return Va.ValueScope}});Object.defineProperty(H,"ValueScopeName",{enumerable:!0,get:function(){return Va.ValueScopeName}});Object.defineProperty(H,"varKinds",{enumerable:!0,get:function(){return Va.varKinds}});H.operators={GT:new Q._Code(">"),GTE:new Q._Code(">="),LT:new Q._Code("<"),LTE:new Q._Code("<="),EQ:new Q._Code("==="),NEQ:new Q._Code("!=="),NOT:new Q._Code("!"),OR:new Q._Code("||"),AND:new Q._Code("&&"),ADD:new Q._Code("+")};var Ut=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},Nd=class extends Ut{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?pt.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=cn(this.rhs,t,r)),this}get names(){return this.rhs instanceof Q._CodeOrName?this.rhs.names:{}}},La=class extends Ut{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof Q.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=cn(this.rhs,t,r),this}get names(){let t=this.lhs instanceof Q.Name?{}:{...this.lhs.names};return Fa(t,this.rhs)}},Rd=class extends La{constructor(t,r,n,o){super(t,n,o),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Ad=class extends Ut{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Md=class extends Ut{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Cd=class extends Ut{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Ud=class extends Ut{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=cn(this.code,t,r),this}get names(){return this.code instanceof Q._CodeOrName?this.code.names:{}}},Uo=class extends Ut{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(t,r)||(vw(t,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>wr(t,r.names),{})}},Zt=class extends Uo{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Zd=class extends Uo{},sn=class extends Zt{};sn.kind="else";var kr=class e extends Zt{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new sn(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(ev(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=cn(this.condition,t,r),this}get names(){let t=super.names;return Fa(t,this.condition),this.else&&wr(t,this.else.names),t}};kr.kind="if";var Sr=class extends Zt{};Sr.kind="for";var Ld=class extends Sr{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=cn(this.iteration,t,r),this}get names(){return wr(super.names,this.iteration.names)}},qd=class extends Sr{constructor(t,r,n,o){super(),this.varKind=t,this.name=r,this.from=n,this.to=o}render(t){let r=t.es5?pt.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(t)}get names(){let t=Fa(super.names,this.from);return Fa(t,this.to)}},qa=class extends Sr{constructor(t,r,n,o){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=o}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=cn(this.iterable,t,r),this}get names(){return wr(super.names,this.iterable.names)}},Zo=class extends Zt{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};Zo.kind="func";var Lo=class extends Uo{render(t){return"return "+super.render(t)}};Lo.kind="return";var Fd=class extends Zt{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,o;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(o=this.finally)===null||o===void 0||o.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&wr(t,this.catch.names),this.finally&&wr(t,this.finally.names),t}},qo=class extends Zt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};qo.kind="catch";var Fo=class extends Zt{render(t){return"finally"+super.render(t)}};Fo.kind="finally";var Vd=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` +`:""},this._extScope=t,this._scope=new pt.Scope({parent:t}),this._nodes=[new Zd]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,o){let i=this._scope.toName(r);return n!==void 0&&o&&(this._constants[i.str]=n),this._leafNode(new Nd(t,i,n)),i}const(t,r,n){return this._def(pt.varKinds.const,t,r,n)}let(t,r,n){return this._def(pt.varKinds.let,t,r,n)}var(t,r,n){return this._def(pt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new La(t,r,n))}add(t,r){return this._leafNode(new Rd(t,H.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==Q.nil&&this._leafNode(new Ud(t)),this}object(...t){let r=["{"];for(let[n,o]of t)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,Q.addCodeArg)(r,o));return r.push("}"),new Q._Code(r)}if(t,r,n){if(this._blockNode(new kr(t)),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(t){return this._elseNode(new kr(t))}else(){return this._elseNode(new sn)}endIf(){return this._endBlockNode(kr,sn)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Ld(t),r)}forRange(t,r,n,o,i=this.opts.es5?pt.varKinds.var:pt.varKinds.let){let a=this._scope.toName(t);return this._for(new qd(i,a,r,n),()=>o(a))}forOf(t,r,n,o=pt.varKinds.const){let i=this._scope.toName(t);if(this.opts.es5){let a=r instanceof Q.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,Q._)`${a}.length`,s=>{this.var(i,(0,Q._)`${a}[${s}]`),n(i)})}return this._for(new qa("of",o,i,r),()=>n(i))}forIn(t,r,n,o=this.opts.es5?pt.varKinds.var:pt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,Q._)`Object.keys(${r})`,n);let i=this._scope.toName(t);return this._for(new qa("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(Sr)}label(t){return this._leafNode(new Ad(t))}break(t){return this._leafNode(new Md(t))}return(t){let r=new Lo;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Lo)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Fd;if(this._blockNode(o),this.code(t),r){let i=this.name("e");this._currNode=o.catch=new qo(i),r(i)}return n&&(this._currNode=o.finally=new Fo,this.code(n)),this._endBlockNode(qo,Fo)}throw(t){return this._leafNode(new Cd(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){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||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=Q.nil,n,o){return this._blockNode(new Zo(t,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Zo)}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,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof kr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};H.CodeGen=Vd;function wr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function Fa(e,t){return t instanceof Q._CodeOrName?wr(e,t.names):e}function cn(e,t,r){if(e instanceof Q.Name)return n(e);if(!o(e))return e;return new Q._Code(e._items.reduce((i,a)=>(a instanceof Q.Name&&(a=n(a)),a instanceof Q._Code?i.push(...a._items):i.push(a),i),[]));function n(i){let a=r[i.str];return a===void 0||t[i.str]!==1?i:(delete t[i.str],a)}function o(i){return i instanceof Q._Code&&i._items.some(a=>a instanceof Q.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function vw(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function ev(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Q._)`!${Jd(e)}`}H.not=ev;var _w=tv(H.operators.AND);function yw(...e){return e.reduce(_w)}H.and=yw;var $w=tv(H.operators.OR);function bw(...e){return e.reduce($w)}H.or=bw;function tv(e){return(t,r)=>t===Q.nil?r:r===Q.nil?t:(0,Q._)`${Jd(t)} ${e} ${Jd(r)}`}function Jd(e){return e instanceof Q.Name?e:(0,Q._)`(${e})`}});var re=S(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.checkStrictMode=B.getErrorPath=B.Type=B.useFunc=B.setEvaluated=B.evaluatedPropsToName=B.mergeEvaluated=B.eachItem=B.unescapeJsonPointer=B.escapeJsonPointer=B.escapeFragment=B.unescapeFragment=B.schemaRefOrVal=B.schemaHasRulesButRef=B.schemaHasRules=B.checkUnknownRules=B.alwaysValidSchema=B.toHash=void 0;var le=W(),xw=Co();function kw(e){let t={};for(let r of e)t[r]=!0;return t}B.toHash=kw;function Sw(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(ov(e,t),!iv(t,e.self.RULES.all))}B.alwaysValidSchema=Sw;function ov(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let o=n.RULES.keywords;for(let i in t)o[i]||cv(e,`unknown keyword: "${i}"`)}B.checkUnknownRules=ov;function iv(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}B.schemaHasRules=iv;function ww(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}B.schemaHasRulesButRef=ww;function zw({topSchemaRef:e,schemaPath:t},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,le._)`${r}`}return(0,le._)`${e}${t}${(0,le.getProperty)(n)}`}B.schemaRefOrVal=zw;function Iw(e){return av(decodeURIComponent(e))}B.unescapeFragment=Iw;function Ew(e){return encodeURIComponent(Kd(e))}B.escapeFragment=Ew;function Kd(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}B.escapeJsonPointer=Kd;function av(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}B.unescapeJsonPointer=av;function Tw(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}B.eachItem=Tw;function rv({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(o,i,a,s)=>{let c=a===void 0?i:a instanceof le.Name?(i instanceof le.Name?e(o,i,a):t(o,i,a),a):i instanceof le.Name?(t(o,a,i),i):r(i,a);return s===le.Name&&!(c instanceof le.Name)?n(o,c):c}}B.mergeEvaluated={props:rv({mergeNames:(e,t,r)=>e.if((0,le._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,le._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,le._)`${r} || {}`).code((0,le._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,le._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,le._)`${r} || {}`),Hd(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:sv}),items:rv({mergeNames:(e,t,r)=>e.if((0,le._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,le._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,le._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,le._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function sv(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,le._)`{}`);return t!==void 0&&Hd(e,r,t),r}B.evaluatedPropsToName=sv;function Hd(e,t,r){Object.keys(r).forEach(n=>e.assign((0,le._)`${t}${(0,le.getProperty)(n)}`,!0))}B.setEvaluated=Hd;var nv={};function Pw(e,t){return e.scopeValue("func",{ref:t,code:nv[t.code]||(nv[t.code]=new xw._Code(t.code))})}B.useFunc=Pw;var Wd;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Wd||(B.Type=Wd={}));function Ow(e,t,r){if(e instanceof le.Name){let n=t===Wd.Num;return r?n?(0,le._)`"[" + ${e} + "]"`:(0,le._)`"['" + ${e} + "']"`:n?(0,le._)`"/" + ${e}`:(0,le._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,le.getProperty)(e).toString():"/"+Kd(e)}B.getErrorPath=Ow;function cv(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}B.checkStrictMode=cv});var Lt=S(Gd=>{"use strict";Object.defineProperty(Gd,"__esModule",{value:!0});var Oe=W(),jw={data:new Oe.Name("data"),valCxt:new Oe.Name("valCxt"),instancePath:new Oe.Name("instancePath"),parentData:new Oe.Name("parentData"),parentDataProperty:new Oe.Name("parentDataProperty"),rootData:new Oe.Name("rootData"),dynamicAnchors:new Oe.Name("dynamicAnchors"),vErrors:new Oe.Name("vErrors"),errors:new Oe.Name("errors"),this:new Oe.Name("this"),self:new Oe.Name("self"),scope:new Oe.Name("scope"),json:new Oe.Name("json"),jsonPos:new Oe.Name("jsonPos"),jsonLen:new Oe.Name("jsonLen"),jsonPart:new Oe.Name("jsonPart")};Gd.default=jw});var Vo=S(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.extendErrors=je.resetErrorsCount=je.reportExtraError=je.reportError=je.keyword$DataError=je.keywordError=void 0;var ee=W(),Ja=re(),Ue=Lt();je.keywordError={message:({keyword:e})=>(0,ee.str)`must pass "${e}" keyword validation`};je.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,ee.str)`"${e}" keyword must be ${t} ($data)`:(0,ee.str)`"${e}" keyword is invalid ($data)`};function Dw(e,t=je.keywordError,r,n){let{it:o}=e,{gen:i,compositeRule:a,allErrors:s}=o,c=dv(e,t,r);n??(a||s)?uv(i,c):lv(o,(0,ee._)`[${c}]`)}je.reportError=Dw;function Nw(e,t=je.keywordError,r){let{it:n}=e,{gen:o,compositeRule:i,allErrors:a}=n,s=dv(e,t,r);uv(o,s),i||a||lv(n,Ue.default.vErrors)}je.reportExtraError=Nw;function Rw(e,t){e.assign(Ue.default.errors,t),e.if((0,ee._)`${Ue.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,ee._)`${Ue.default.vErrors}.length`,t),()=>e.assign(Ue.default.vErrors,null)))}je.resetErrorsCount=Rw;function Aw({gen:e,keyword:t,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let a=e.name("err");e.forRange("i",o,Ue.default.errors,s=>{e.const(a,(0,ee._)`${Ue.default.vErrors}[${s}]`),e.if((0,ee._)`${a}.instancePath === undefined`,()=>e.assign((0,ee._)`${a}.instancePath`,(0,ee.strConcat)(Ue.default.instancePath,i.errorPath))),e.assign((0,ee._)`${a}.schemaPath`,(0,ee.str)`${i.errSchemaPath}/${t}`),i.opts.verbose&&(e.assign((0,ee._)`${a}.schema`,r),e.assign((0,ee._)`${a}.data`,n))})}je.extendErrors=Aw;function uv(e,t){let r=e.const("err",t);e.if((0,ee._)`${Ue.default.vErrors} === null`,()=>e.assign(Ue.default.vErrors,(0,ee._)`[${r}]`),(0,ee._)`${Ue.default.vErrors}.push(${r})`),e.code((0,ee._)`${Ue.default.errors}++`)}function lv(e,t){let{gen:r,validateName:n,schemaEnv:o}=e;o.$async?r.throw((0,ee._)`new ${e.ValidationError}(${t})`):(r.assign((0,ee._)`${n}.errors`,t),r.return(!1))}var zr={keyword:new ee.Name("keyword"),schemaPath:new ee.Name("schemaPath"),params:new ee.Name("params"),propertyName:new ee.Name("propertyName"),message:new ee.Name("message"),schema:new ee.Name("schema"),parentSchema:new ee.Name("parentSchema")};function dv(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,ee._)`{}`:Mw(e,t,r)}function Mw(e,t,r={}){let{gen:n,it:o}=e,i=[Cw(o,r),Uw(e,r)];return Zw(e,t,i),n.object(...i)}function Cw({errorPath:e},{instancePath:t}){let r=t?(0,ee.str)`${e}${(0,Ja.getErrorPath)(t,Ja.Type.Str)}`:e;return[Ue.default.instancePath,(0,ee.strConcat)(Ue.default.instancePath,r)]}function Uw({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let o=n?t:(0,ee.str)`${t}/${e}`;return r&&(o=(0,ee.str)`${o}${(0,Ja.getErrorPath)(r,Ja.Type.Str)}`),[zr.schemaPath,o]}function Zw(e,{params:t,message:r},n){let{keyword:o,data:i,schemaValue:a,it:s}=e,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=s;n.push([zr.keyword,o],[zr.params,typeof t=="function"?t(e):t||(0,ee._)`{}`]),c.messages&&n.push([zr.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([zr.schema,a],[zr.parentSchema,(0,ee._)`${l}${d}`],[Ue.default.data,i]),u&&n.push([zr.propertyName,u])}});var fv=S(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.boolOrEmptySchema=un.topBoolOrEmptySchema=void 0;var Lw=Vo(),qw=W(),Fw=Lt(),Vw={message:"boolean schema is false"};function Jw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?pv(e,!1):typeof r=="object"&&r.$async===!0?t.return(Fw.default.data):(t.assign((0,qw._)`${n}.errors`,null),t.return(!0))}un.topBoolOrEmptySchema=Jw;function Ww(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),pv(e)):r.var(t,!0)}un.boolOrEmptySchema=Ww;function pv(e,t){let{gen:r,data:n}=e,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Lw.reportError)(o,Vw,void 0,t)}});var Bd=S(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.getRules=ln.isJSONType=void 0;var Kw=["string","number","integer","boolean","null","object","array"],Hw=new Set(Kw);function Gw(e){return typeof e=="string"&&Hw.has(e)}ln.isJSONType=Gw;function Bw(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}ln.getRules=Bw});var Xd=S(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});ar.shouldUseRule=ar.shouldUseGroup=ar.schemaHasRulesForType=void 0;function Xw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&mv(e,n)}ar.schemaHasRulesForType=Xw;function mv(e,t){return t.rules.some(r=>hv(e,r))}ar.shouldUseGroup=mv;function hv(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}ar.shouldUseRule=hv});var Jo=S(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.reportTypeError=De.checkDataTypes=De.checkDataType=De.coerceAndCheckDataType=De.getJSONTypes=De.getSchemaTypes=De.DataType=void 0;var Yw=Bd(),Qw=Xd(),e0=Vo(),F=W(),gv=re(),dn;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(dn||(De.DataType=dn={}));function t0(e){let t=vv(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}De.getSchemaTypes=t0;function vv(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(Yw.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}De.getJSONTypes=vv;function r0(e,t){let{gen:r,data:n,opts:o}=e,i=n0(t,o.coerceTypes),a=t.length>0&&!(i.length===0&&t.length===1&&(0,Qw.schemaHasRulesForType)(e,t[0]));if(a){let s=Qd(t,n,o.strictNumbers,dn.Wrong);r.if(s,()=>{i.length?o0(e,t,i):ep(e)})}return a}De.coerceAndCheckDataType=r0;var _v=new Set(["string","number","integer","boolean","null"]);function n0(e,t){return t?e.filter(r=>_v.has(r)||t==="array"&&r==="array"):[]}function o0(e,t,r){let{gen:n,data:o,opts:i}=e,a=n.let("dataType",(0,F._)`typeof ${o}`),s=n.let("coerced",(0,F._)`undefined`);i.coerceTypes==="array"&&n.if((0,F._)`${a} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,F._)`${o}[0]`).assign(a,(0,F._)`typeof ${o}`).if(Qd(t,o,i.strictNumbers),()=>n.assign(s,o))),n.if((0,F._)`${s} !== undefined`);for(let u of r)(_v.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),ep(e),n.endIf(),n.if((0,F._)`${s} !== undefined`,()=>{n.assign(o,s),i0(e,s)});function c(u){switch(u){case"string":n.elseIf((0,F._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,F._)`"" + ${o}`).elseIf((0,F._)`${o} === null`).assign(s,(0,F._)`""`);return;case"number":n.elseIf((0,F._)`${a} == "boolean" || ${o} === null + || (${a} == "string" && ${o} && ${o} == +${o})`).assign(s,(0,F._)`+${o}`);return;case"integer":n.elseIf((0,F._)`${a} === "boolean" || ${o} === null + || (${a} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(s,(0,F._)`+${o}`);return;case"boolean":n.elseIf((0,F._)`${o} === "false" || ${o} === 0 || ${o} === null`).assign(s,!1).elseIf((0,F._)`${o} === "true" || ${o} === 1`).assign(s,!0);return;case"null":n.elseIf((0,F._)`${o} === "" || ${o} === 0 || ${o} === false`),n.assign(s,null);return;case"array":n.elseIf((0,F._)`${a} === "string" || ${a} === "number" + || ${a} === "boolean" || ${o} === null`).assign(s,(0,F._)`[${o}]`)}}}function i0({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,F._)`${t} !== undefined`,()=>e.assign((0,F._)`${t}[${r}]`,n))}function Yd(e,t,r,n=dn.Correct){let o=n===dn.Correct?F.operators.EQ:F.operators.NEQ,i;switch(e){case"null":return(0,F._)`${t} ${o} null`;case"array":i=(0,F._)`Array.isArray(${t})`;break;case"object":i=(0,F._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":i=a((0,F._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=a();break;default:return(0,F._)`typeof ${t} ${o} ${e}`}return n===dn.Correct?i:(0,F.not)(i);function a(s=F.nil){return(0,F.and)((0,F._)`typeof ${t} == "number"`,s,r?(0,F._)`isFinite(${t})`:F.nil)}}De.checkDataType=Yd;function Qd(e,t,r,n){if(e.length===1)return Yd(e[0],t,r,n);let o,i=(0,gv.toHash)(e);if(i.array&&i.object){let a=(0,F._)`typeof ${t} != "object"`;o=i.null?a:(0,F._)`!${t} || ${a}`,delete i.null,delete i.array,delete i.object}else o=F.nil;i.number&&delete i.integer;for(let a in i)o=(0,F.and)(o,Yd(a,t,r,n));return o}De.checkDataTypes=Qd;var a0={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,F._)`{type: ${e}}`:(0,F._)`{type: ${t}}`};function ep(e){let t=s0(e);(0,e0.reportError)(t,a0)}De.reportTypeError=ep;function s0(e){let{gen:t,data:r,schema:n}=e,o=(0,gv.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:e}}});var $v=S(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});Wa.assignDefaults=void 0;var pn=W(),c0=re();function u0(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let o in r)yv(e,o,r[o].default);else t==="array"&&Array.isArray(n)&&n.forEach((o,i)=>yv(e,i,o.default))}Wa.assignDefaults=u0;function yv(e,t,r){let{gen:n,compositeRule:o,data:i,opts:a}=e;if(r===void 0)return;let s=(0,pn._)`${i}${(0,pn.getProperty)(t)}`;if(o){(0,c0.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,pn._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,pn._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,pn._)`${s} = ${(0,pn.stringify)(r)}`)}});var at=S(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});ae.validateUnion=ae.validateArray=ae.usePattern=ae.callValidateCode=ae.schemaProperties=ae.allSchemaProperties=ae.noPropertyInData=ae.propertyInData=ae.isOwnProperty=ae.hasPropFunc=ae.reportMissingProp=ae.checkMissingProp=ae.checkReportMissingProp=void 0;var he=W(),tp=re(),sr=Lt(),l0=re();function d0(e,t){let{gen:r,data:n,it:o}=e;r.if(np(r,n,t,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,he._)`${t}`},!0),e.error()})}ae.checkReportMissingProp=d0;function p0({gen:e,data:t,it:{opts:r}},n,o){return(0,he.or)(...n.map(i=>(0,he.and)(np(e,t,i,r.ownProperties),(0,he._)`${o} = ${i}`)))}ae.checkMissingProp=p0;function f0(e,t){e.setParams({missingProperty:t},!0),e.error()}ae.reportMissingProp=f0;function bv(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,he._)`Object.prototype.hasOwnProperty`})}ae.hasPropFunc=bv;function rp(e,t,r){return(0,he._)`${bv(e)}.call(${t}, ${r})`}ae.isOwnProperty=rp;function m0(e,t,r,n){let o=(0,he._)`${t}${(0,he.getProperty)(r)} !== undefined`;return n?(0,he._)`${o} && ${rp(e,t,r)}`:o}ae.propertyInData=m0;function np(e,t,r,n){let o=(0,he._)`${t}${(0,he.getProperty)(r)} === undefined`;return n?(0,he.or)(o,(0,he.not)(rp(e,t,r))):o}ae.noPropertyInData=np;function xv(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ae.allSchemaProperties=xv;function h0(e,t){return xv(t).filter(r=>!(0,tp.alwaysValidSchema)(e,t[r]))}ae.schemaProperties=h0;function g0({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:a},s,c,u){let l=u?(0,he._)`${e}, ${t}, ${n}${o}`:t,d=[[sr.default.instancePath,(0,he.strConcat)(sr.default.instancePath,i)],[sr.default.parentData,a.parentData],[sr.default.parentDataProperty,a.parentDataProperty],[sr.default.rootData,sr.default.rootData]];a.opts.dynamicRef&&d.push([sr.default.dynamicAnchors,sr.default.dynamicAnchors]);let m=(0,he._)`${l}, ${r.object(...d)}`;return c!==he.nil?(0,he._)`${s}.call(${c}, ${m})`:(0,he._)`${s}(${m})`}ae.callValidateCode=g0;var v0=(0,he._)`new RegExp`;function _0({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:o}=t.code,i=o(r,n);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,he._)`${o.code==="new RegExp"?v0:(0,l0.useFunc)(e,o)}(${r}, ${n})`})}ae.usePattern=_0;function y0(e){let{gen:t,data:r,keyword:n,it:o}=e,i=t.name("valid");if(o.allErrors){let s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(i,!0),a(()=>t.break()),i;function a(s){let c=t.const("len",(0,he._)`${r}.length`);t.forRange("i",0,c,u=>{e.subschema({keyword:n,dataProp:u,dataPropType:tp.Type.Num},i),t.if((0,he.not)(i),s)})}}ae.validateArray=y0;function $0(e){let{gen:t,schema:r,keyword:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,tp.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let a=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,u)=>{let l=e.subschema({keyword:n,schemaProp:u,compositeRule:!0},s);t.assign(a,(0,he._)`${a} || ${s}`),e.mergeValidEvaluated(l,s)||t.if((0,he.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}ae.validateUnion=$0});var wv=S($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});$t.validateKeywordUsage=$t.validSchemaType=$t.funcKeywordCode=$t.macroKeywordCode=void 0;var Ze=W(),Ir=Lt(),b0=at(),x0=Vo();function k0(e,t){let{gen:r,keyword:n,schema:o,parentSchema:i,it:a}=e,s=t.macro.call(a.self,o,i,a),c=Sv(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let u=r.name("valid");e.subschema({schema:s,schemaPath:Ze.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),e.pass(u,()=>e.error(!0))}$t.macroKeywordCode=k0;function S0(e,t){var r;let{gen:n,keyword:o,schema:i,parentSchema:a,$data:s,it:c}=e;z0(c,t);let u=!s&&t.compile?t.compile.call(c.self,i,a,c):t.validate,l=Sv(n,o,u),d=n.let("valid");e.block$data(d,m),e.ok((r=t.valid)!==null&&r!==void 0?r:d);function m(){if(t.errors===!1)h(),t.modifying&&kv(e),_(()=>e.error());else{let b=t.async?p():g();t.modifying&&kv(e),_(()=>w0(e,b))}}function p(){let b=n.let("ruleErrs",null);return n.try(()=>h((0,Ze._)`await `),E=>n.assign(d,!1).if((0,Ze._)`${E} instanceof ${c.ValidationError}`,()=>n.assign(b,(0,Ze._)`${E}.errors`),()=>n.throw(E))),b}function g(){let b=(0,Ze._)`${l}.errors`;return n.assign(b,null),h(Ze.nil),b}function h(b=t.async?(0,Ze._)`await `:Ze.nil){let E=c.opts.passContext?Ir.default.this:Ir.default.self,I=!("compile"in t&&!s||t.schema===!1);n.assign(d,(0,Ze._)`${b}${(0,b0.callValidateCode)(e,l,E,I)}`,t.modifying)}function _(b){var E;n.if((0,Ze.not)((E=t.valid)!==null&&E!==void 0?E:d),b)}}$t.funcKeywordCode=S0;function kv(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,Ze._)`${n.parentData}[${n.parentDataProperty}]`))}function w0(e,t){let{gen:r}=e;r.if((0,Ze._)`Array.isArray(${t})`,()=>{r.assign(Ir.default.vErrors,(0,Ze._)`${Ir.default.vErrors} === null ? ${t} : ${Ir.default.vErrors}.concat(${t})`).assign(Ir.default.errors,(0,Ze._)`${Ir.default.vErrors}.length`),(0,x0.extendErrors)(e)},()=>e.error())}function z0({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Sv(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Ze.stringify)(r)})}function I0(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}$t.validSchemaType=I0;function E0({schema:e,opts:t,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let a=o.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}$t.validateKeywordUsage=E0});var Iv=S(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});cr.extendSubschemaMode=cr.extendSubschemaData=cr.getSubschema=void 0;var bt=W(),zv=re();function T0(e,{keyword:t,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:i,topSchemaRef:a}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return r===void 0?{schema:s,schemaPath:(0,bt._)`${e.schemaPath}${(0,bt.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,bt._)`${e.schemaPath}${(0,bt.getProperty)(t)}${(0,bt.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,zv.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}cr.getSubschema=T0;function P0(e,t,{dataProp:r,dataPropType:n,data:o,dataTypes:i,propertyName:a}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=t,m=s.let("data",(0,bt._)`${t.data}${(0,bt.getProperty)(r)}`,!0);c(m),e.errorPath=(0,bt.str)`${u}${(0,zv.getErrorPath)(r,n,d.jsPropertySyntax)}`,e.parentDataProperty=(0,bt._)`${r}`,e.dataPathArr=[...l,e.parentDataProperty]}if(o!==void 0){let u=o instanceof bt.Name?o:s.let("data",o,!0);c(u),a!==void 0&&(e.propertyName=a)}i&&(e.dataTypes=i);function c(u){e.data=u,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,u]}}cr.extendSubschemaData=P0;function O0(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(e.compositeRule=n),o!==void 0&&(e.createErrors=o),i!==void 0&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=r}cr.extendSubschemaMode=O0});var op=S((fC,Ev)=>{"use strict";Ev.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,o,i;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(i=Object.keys(t),n=i.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=n;o--!==0;){var a=i[o];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}});var Pv=S((mC,Tv)=>{"use strict";var ur=Tv.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};Ka(t,n,o,e,"",e)};ur.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ur.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ur.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ur.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 Ka(e,t,r,n,o,i,a,s,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,o,i,a,s,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in ur.arrayKeywords)for(var m=0;m{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.getSchemaRefs=Je.resolveUrl=Je.normalizeId=Je._getFullPath=Je.getFullPath=Je.inlineRef=void 0;var D0=re(),N0=op(),R0=Pv(),A0=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function M0(e,t=!0){return typeof e=="boolean"?!0:t===!0?!ip(e):t?Ov(e)<=t:!1}Je.inlineRef=M0;var C0=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ip(e){for(let t in e){if(C0.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(ip)||typeof r=="object"&&ip(r))return!0}return!1}function Ov(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!A0.has(r)&&(typeof e[r]=="object"&&(0,D0.eachItem)(e[r],n=>t+=Ov(n)),t===1/0))return 1/0}return t}function jv(e,t="",r){r!==!1&&(t=fn(t));let n=e.parse(t);return Dv(e,n)}Je.getFullPath=jv;function Dv(e,t){return e.serialize(t).split("#")[0]+"#"}Je._getFullPath=Dv;var U0=/#\/?$/;function fn(e){return e?e.replace(U0,""):""}Je.normalizeId=fn;function Z0(e,t,r){return r=fn(r),e.resolve(t,r)}Je.resolveUrl=Z0;var L0=/^[a-z_][-a-z0-9._]*$/i;function q0(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=fn(e[r]||t),i={"":o},a=jv(n,o,!1),s={},c=new Set;return R0(e,{allKeys:!0},(d,m,p,g)=>{if(g===void 0)return;let h=a+m,_=i[g];typeof d[r]=="string"&&(_=b.call(this,d[r])),E.call(this,d.$anchor),E.call(this,d.$dynamicAnchor),i[m]=_;function b(I){let A=this.opts.uriResolver.resolve;if(I=fn(_?A(_,I):I),c.has(I))throw l(I);c.add(I);let j=this.refs[I];return typeof j=="string"&&(j=this.refs[j]),typeof j=="object"?u(d,j.schema,I):I!==fn(h)&&(I[0]==="#"?(u(d,s[I],I),s[I]=d):this.refs[I]=h),I}function E(I){if(typeof I=="string"){if(!L0.test(I))throw new Error(`invalid anchor "${I}"`);b.call(this,`#${I}`)}}}),s;function u(d,m,p){if(m!==void 0&&!N0(d,m))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Je.getSchemaRefs=q0});var Go=S(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});lr.getData=lr.KeywordCxt=lr.validateFunctionCode=void 0;var Cv=fv(),Nv=Jo(),sp=Xd(),Ha=Jo(),F0=$v(),Ho=wv(),ap=Iv(),O=W(),U=Lt(),V0=Wo(),qt=re(),Ko=Vo();function J0(e){if(Lv(e)&&(qv(e),Zv(e))){H0(e);return}Uv(e,()=>(0,Cv.topBoolOrEmptySchema)(e))}lr.validateFunctionCode=J0;function Uv({gen:e,validateName:t,schema:r,schemaEnv:n,opts:o},i){o.code.es5?e.func(t,(0,O._)`${U.default.data}, ${U.default.valCxt}`,n.$async,()=>{e.code((0,O._)`"use strict"; ${Rv(r,o)}`),K0(e,o),e.code(i)}):e.func(t,(0,O._)`${U.default.data}, ${W0(o)}`,n.$async,()=>e.code(Rv(r,o)).code(i))}function W0(e){return(0,O._)`{${U.default.instancePath}="", ${U.default.parentData}, ${U.default.parentDataProperty}, ${U.default.rootData}=${U.default.data}${e.dynamicRef?(0,O._)`, ${U.default.dynamicAnchors}={}`:O.nil}}={}`}function K0(e,t){e.if(U.default.valCxt,()=>{e.var(U.default.instancePath,(0,O._)`${U.default.valCxt}.${U.default.instancePath}`),e.var(U.default.parentData,(0,O._)`${U.default.valCxt}.${U.default.parentData}`),e.var(U.default.parentDataProperty,(0,O._)`${U.default.valCxt}.${U.default.parentDataProperty}`),e.var(U.default.rootData,(0,O._)`${U.default.valCxt}.${U.default.rootData}`),t.dynamicRef&&e.var(U.default.dynamicAnchors,(0,O._)`${U.default.valCxt}.${U.default.dynamicAnchors}`)},()=>{e.var(U.default.instancePath,(0,O._)`""`),e.var(U.default.parentData,(0,O._)`undefined`),e.var(U.default.parentDataProperty,(0,O._)`undefined`),e.var(U.default.rootData,U.default.data),t.dynamicRef&&e.var(U.default.dynamicAnchors,(0,O._)`{}`)})}function H0(e){let{schema:t,opts:r,gen:n}=e;Uv(e,()=>{r.$comment&&t.$comment&&Vv(e),Q0(e),n.let(U.default.vErrors,null),n.let(U.default.errors,0),r.unevaluated&&G0(e),Fv(e),rz(e)})}function G0(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,O._)`${r}.evaluated`),t.if((0,O._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,O._)`${e.evaluated}.props`,(0,O._)`undefined`)),t.if((0,O._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,O._)`${e.evaluated}.items`,(0,O._)`undefined`))}function Rv(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,O._)`/*# sourceURL=${r} */`:O.nil}function B0(e,t){if(Lv(e)&&(qv(e),Zv(e))){X0(e,t);return}(0,Cv.boolOrEmptySchema)(e,t)}function Zv({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function Lv(e){return typeof e.schema!="boolean"}function X0(e,t){let{schema:r,gen:n,opts:o}=e;o.$comment&&r.$comment&&Vv(e),ez(e),tz(e);let i=n.const("_errs",U.default.errors);Fv(e,i),n.var(t,(0,O._)`${i} === ${U.default.errors}`)}function qv(e){(0,qt.checkUnknownRules)(e),Y0(e)}function Fv(e,t){if(e.opts.jtd)return Av(e,[],!1,t);let r=(0,Nv.getSchemaTypes)(e.schema),n=(0,Nv.coerceAndCheckDataType)(e,r);Av(e,r,!n,t)}function Y0(e){let{schema:t,errSchemaPath:r,opts:n,self:o}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,qt.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function Q0(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,qt.checkStrictMode)(e,"default is ignored in the schema root")}function ez(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,V0.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function tz(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Vv({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)e.code((0,O._)`${U.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let a=(0,O.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,O._)`${U.default.self}.opts.$comment(${i}, ${a}, ${s}.schema)`)}}function rz(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=e;r.$async?t.if((0,O._)`${U.default.errors} === 0`,()=>t.return(U.default.data),()=>t.throw((0,O._)`new ${o}(${U.default.vErrors})`)):(t.assign((0,O._)`${n}.errors`,U.default.vErrors),i.unevaluated&&nz(e),t.return((0,O._)`${U.default.errors} === 0`))}function nz({gen:e,evaluated:t,props:r,items:n}){r instanceof O.Name&&e.assign((0,O._)`${t}.props`,r),n instanceof O.Name&&e.assign((0,O._)`${t}.items`,n)}function Av(e,t,r,n){let{gen:o,schema:i,data:a,allErrors:s,opts:c,self:u}=e,{RULES:l}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,qt.schemaHasRulesButRef)(i,l))){o.block(()=>Wv(e,"$ref",l.all.$ref.definition));return}c.jtd||oz(e,t),o.block(()=>{for(let m of l.rules)d(m);d(l.post)});function d(m){(0,sp.shouldUseGroup)(i,m)&&(m.type?(o.if((0,Ha.checkDataType)(m.type,a,c.strictNumbers)),Mv(e,m),t.length===1&&t[0]===m.type&&r&&(o.else(),(0,Ha.reportTypeError)(e)),o.endIf()):Mv(e,m),s||o.if((0,O._)`${U.default.errors} === ${n||0}`))}}function Mv(e,t){let{gen:r,schema:n,opts:{useDefaults:o}}=e;o&&(0,F0.assignDefaults)(e,t.type),r.block(()=>{for(let i of t.rules)(0,sp.shouldUseRule)(n,i)&&Wv(e,i.keyword,i.definition,t.type)})}function oz(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(iz(e,t),e.opts.allowUnionTypes||az(e,t),sz(e,e.dataTypes))}function iz(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Jv(e.dataTypes,r)||cp(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),uz(e,t)}}function az(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&cp(e,"use allowUnionTypes to allow union type keyword")}function sz(e,t){let r=e.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,sp.shouldUseRule)(e.schema,o)){let{type:i}=o.definition;i.length&&!i.some(a=>cz(t,a))&&cp(e,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function cz(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Jv(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function uz(e,t){let r=[];for(let n of e.dataTypes)Jv(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function cp(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,qt.checkStrictMode)(e,t,e.opts.strictTypes)}var Ga=class{constructor(t,r,n){if((0,Ho.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,qt.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",Kv(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Ho.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=t.gen.const("_errs",U.default.errors))}result(t,r,n){this.failResult((0,O.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,O.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,O._)`${r} !== undefined && (${(0,O.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?Ko.reportExtraError:Ko.reportError)(this,this.def.error,r)}$dataError(){(0,Ko.reportError)(this,this.def.$dataError||Ko.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Ko.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=O.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=O.nil,r=O.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:a}=this;n.if((0,O.or)((0,O._)`${o} === undefined`,r)),t!==O.nil&&n.assign(t,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==O.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,O.or)(a(),s());function a(){if(n.length){if(!(r instanceof O.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,O._)`${(0,Ha.checkDataTypes)(c,r,i.opts.strictNumbers,Ha.DataType.Wrong)}`}return O.nil}function s(){if(o.validateSchema){let c=t.scopeValue("validate$data",{ref:o.validateSchema});return(0,O._)`!${c}(${r})`}return O.nil}}subschema(t,r){let n=(0,ap.getSubschema)(this.it,t);(0,ap.extendSubschemaData)(n,this.it,t),(0,ap.extendSubschemaMode)(n,t);let o={...this.it,...n,items:void 0,props:void 0};return B0(o,r),o}mergeEvaluated(t,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=qt.mergeEvaluated.props(o,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=qt.mergeEvaluated.items(o,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(t,O.Name)),!0}};lr.KeywordCxt=Ga;function Wv(e,t,r,n){let o=new Ga(e,r,t);"code"in r?r.code(o,n):o.$data&&r.validate?(0,Ho.funcKeywordCode)(o,r):"macro"in r?(0,Ho.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,Ho.funcKeywordCode)(o,r)}var lz=/^\/(?:[^~]|~0|~1)*$/,dz=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Kv(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let o,i;if(e==="")return U.default.rootData;if(e[0]==="/"){if(!lz.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,i=U.default.rootData}else{let u=dz.exec(e);if(!u)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+u[1];if(o=u[2],o==="#"){if(l>=t)throw new Error(c("property/index",l));return n[t-l]}if(l>t)throw new Error(c("data",l));if(i=r[t-l],!o)return i}let a=i,s=o.split("/");for(let u of s)u&&(i=(0,O._)`${i}${(0,O.getProperty)((0,qt.unescapeJsonPointer)(u))}`,a=(0,O._)`${a} && ${i}`);return a;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}lr.getData=Kv});var Ba=S(lp=>{"use strict";Object.defineProperty(lp,"__esModule",{value:!0});var up=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};lp.default=up});var Bo=S(fp=>{"use strict";Object.defineProperty(fp,"__esModule",{value:!0});var dp=Wo(),pp=class extends Error{constructor(t,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,dp.resolveUrl)(t,r,n),this.missingSchema=(0,dp.normalizeId)((0,dp.getFullPath)(t,this.missingRef))}};fp.default=pp});var Ya=S(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.resolveSchema=st.getCompilingSchema=st.resolveRef=st.compileSchema=st.SchemaEnv=void 0;var ft=W(),pz=Ba(),Er=Lt(),mt=Wo(),Hv=re(),fz=Go(),mn=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,mt.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};st.SchemaEnv=mn;function hp(e){let t=Gv.call(this,e);if(t)return t;let r=(0,mt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,a=new ft.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),s;e.$async&&(s=a.scopeValue("Error",{ref:pz.default,code:(0,ft._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let u={gen:a,allErrors:this.opts.allErrors,data:Er.default.data,parentData:Er.default.parentData,parentDataProperty:Er.default.parentDataProperty,dataNames:[Er.default.data],dataPathArr:[ft.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,ft.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:ft.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ft._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,fz.validateFunctionCode)(u),a.optimize(this.opts.code.optimize);let d=a.toString();l=`${a.scopeRefs(Er.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${Er.default.self}`,`${Er.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=e.schema,p.schemaEnv=e,e.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:d,scopeValues:a._values}),this.opts.unevaluated){let{props:g,items:h}=u;p.evaluated={props:g instanceof ft.Name?void 0:g,items:h instanceof ft.Name?void 0:h,dynamicProps:g instanceof ft.Name,dynamicItems:h instanceof ft.Name},p.source&&(p.source.evaluated=(0,ft.stringify)(p.evaluated))}return e.validate=p,e}catch(d){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(e)}}st.compileSchema=hp;function mz(e,t,r){var n;r=(0,mt.resolveUrl)(this.opts.uriResolver,t,r);let o=e.refs[r];if(o)return o;let i=vz.call(this,e,r);if(i===void 0){let a=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(i=new mn({schema:a,schemaId:s,root:e,baseId:t}))}if(i!==void 0)return e.refs[r]=hz.call(this,i)}st.resolveRef=mz;function hz(e){return(0,mt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:hp.call(this,e)}function Gv(e){for(let t of this._compilations)if(gz(t,e))return t}st.getCompilingSchema=Gv;function gz(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function vz(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||Xa.call(this,e,t)}function Xa(e,t){let r=this.opts.uriResolver.parse(t),n=(0,mt._getFullPath)(this.opts.uriResolver,r),o=(0,mt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===o)return mp.call(this,r,e);let i=(0,mt.normalizeId)(n),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let s=Xa.call(this,e,a);return typeof s?.schema!="object"?void 0:mp.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||hp.call(this,a),i===(0,mt.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,u=s[c];return u&&(o=(0,mt.resolveUrl)(this.opts.uriResolver,o,u)),new mn({schema:s,schemaId:c,root:e,baseId:o})}return mp.call(this,r,a)}}st.resolveSchema=Xa;var _z=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function mp(e,{baseId:t,schema:r,root:n}){var o;if(((o=e.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Hv.unescapeFragment)(s)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!_z.has(s)&&u&&(t=(0,mt.resolveUrl)(this.opts.uriResolver,t,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,Hv.schemaHasRulesButRef)(r,this.RULES)){let s=(0,mt.resolveUrl)(this.opts.uriResolver,t,r.$ref);i=Xa.call(this,n,s)}let{schemaId:a}=this.opts;if(i=i||new mn({schema:r,schemaId:a,root:n,baseId:t}),i.schema!==i.root.schema)return i}});var Bv=S(($C,yz)=>{yz.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 vp=S((bC,e_)=>{"use strict";var $z=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Yv=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);function gp(e){let t="",r=0,n=0;for(n=0;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n];break}for(n+=1;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n]}return t}var bz=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Xv(e){return e.length=0,!0}function xz(e,t,r){if(e.length){let n=gp(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function kz(e){let t=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,a=!1,s=xz;for(let c=0;c7){r.error=!0;break}c>0&&e[c-1]===":"&&(i=!0),n.push(":");continue}else if(u==="%"){if(!s(o,n,r))break;s=Xv}else{o.push(u);continue}}return o.length&&(s===Xv?r.zone=o.join(""):a?n.push(o.join("")):n.push(gp(o))),r.address=n.join(""),r}function Qv(e){if(Sz(e,":")<2)return{host:e,isIPV6:!1};let t=kz(e);if(t.error)return{host:e,isIPV6:!1};{let r=t.address,n=t.address;return t.zone&&(r+="%"+t.zone,n+="%25"+t.zone),{host:r,isIPV6:!0,escapedHost:n}}}function Sz(e,t){let r=0;for(let n=0;n{"use strict";var{isUUID:Ez}=vp(),Tz=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Pz=["http","https","ws","wss","urn","urn:uuid"];function Oz(e){return Pz.indexOf(e)!==-1}function _p(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function t_(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function r_(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function jz(e){return e.secure=_p(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Dz(e){if((e.port===(_p(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function Nz(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(Tz);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let o=`${n}:${t.nid||e.nid}`,i=yp(o);e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Rz(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),o=`${r}:${t.nid||n}`,i=yp(o);i&&(e=i.serialize(e,t));let a=e,s=e.nss;return a.path=`${n||t.nid}:${s}`,t.skipEscape=!0,a}function Az(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!Ez(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Mz(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var n_={scheme:"http",domainHost:!0,parse:t_,serialize:r_},Cz={scheme:"https",domainHost:n_.domainHost,parse:t_,serialize:r_},Qa={scheme:"ws",domainHost:!0,parse:jz,serialize:Dz},Uz={scheme:"wss",domainHost:Qa.domainHost,parse:Qa.parse,serialize:Qa.serialize},Zz={scheme:"urn",parse:Nz,serialize:Rz,skipNormalize:!0},Lz={scheme:"urn:uuid",parse:Az,serialize:Mz,skipNormalize:!0},es={http:n_,https:Cz,ws:Qa,wss:Uz,urn:Zz,"urn:uuid":Lz};Object.setPrototypeOf(es,null);function yp(e){return e&&(es[e]||es[e.toLowerCase()])||void 0}o_.exports={wsIsSecure:_p,SCHEMES:es,isValidSchemeName:Oz,getSchemeHandler:yp}});var c_=S((kC,rs)=>{"use strict";var{normalizeIPv6:qz,removeDotSegments:Xo,recomposeAuthority:Fz,normalizeComponentEncoding:ts,isIPv4:Vz,nonSimpleDomain:Jz}=vp(),{SCHEMES:Wz,getSchemeHandler:a_}=i_();function Kz(e,t){return typeof e=="string"?e=xt(Ft(e,t),t):typeof e=="object"&&(e=Ft(xt(e,t),t)),e}function Hz(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},o=s_(Ft(e,n),Ft(t,n),n,!0);return n.skipEscape=!0,xt(o,n)}function s_(e,t,r,n){let o={};return n||(e=Ft(xt(e,r),r),t=Ft(xt(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=Xo(t.path||""),o.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=Xo(t.path||""),o.query=t.query):(t.path?(t.path[0]==="/"?o.path=Xo(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?o.path="/"+t.path:e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path,o.path=Xo(o.path)),o.query=t.query):(o.path=e.path,t.query!==void 0?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function Gz(e,t,r){return typeof e=="string"?(e=unescape(e),e=xt(ts(Ft(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=xt(ts(e,!0),{...r,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=xt(ts(Ft(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=xt(ts(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function xt(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),o=[],i=a_(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let a=Fz(r);if(a!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(a),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(s=Xo(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),o.push(s)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var Bz=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Ft(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let i=e.match(Bz);if(i){if(n.scheme=i[1],n.userinfo=i[3],n.host=i[4],n.port=parseInt(i[5],10),n.path=i[6]||"",n.query=i[7],n.fragment=i[8],isNaN(n.port)&&(n.port=i[5]),n.host)if(Vz(n.host)===!1){let c=qz(n.host);n.host=c.host.toLowerCase(),o=c.isIPV6}else o=!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 a=a_(r.scheme||n.scheme);if(!r.unicodeSupport&&(!a||!a.unicodeSupport)&&n.host&&(r.domainHost||a&&a.domainHost)&&o===!1&&Jz(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(s){n.error=n.error||"Host's domain name can not be converted to ASCII: "+s}(!a||a&&!a.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=unescape(n.host))),n.path&&(n.path=escape(unescape(n.path))),n.fragment&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),a&&a.parse&&a.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var $p={SCHEMES:Wz,normalize:Kz,resolve:Hz,resolveComponent:s_,equal:Gz,serialize:xt,parse:Ft};rs.exports=$p;rs.exports.default=$p;rs.exports.fastUri=$p});var l_=S(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var u_=c_();u_.code='require("ajv/dist/runtime/uri").default';bp.default=u_});var __=S(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.CodeGen=ze.Name=ze.nil=ze.stringify=ze.str=ze._=ze.KeywordCxt=void 0;var Xz=Go();Object.defineProperty(ze,"KeywordCxt",{enumerable:!0,get:function(){return Xz.KeywordCxt}});var hn=W();Object.defineProperty(ze,"_",{enumerable:!0,get:function(){return hn._}});Object.defineProperty(ze,"str",{enumerable:!0,get:function(){return hn.str}});Object.defineProperty(ze,"stringify",{enumerable:!0,get:function(){return hn.stringify}});Object.defineProperty(ze,"nil",{enumerable:!0,get:function(){return hn.nil}});Object.defineProperty(ze,"Name",{enumerable:!0,get:function(){return hn.Name}});Object.defineProperty(ze,"CodeGen",{enumerable:!0,get:function(){return hn.CodeGen}});var Yz=Ba(),h_=Bo(),Qz=Bd(),Yo=Ya(),eI=W(),Qo=Wo(),ns=Jo(),kp=re(),d_=Bv(),tI=l_(),g_=(e,t)=>new RegExp(e,t);g_.code="new RegExp";var rI=["removeAdditional","useDefaults","coerceTypes"],nI=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),oI={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."},iI={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},p_=200;function aI(e){var t,r,n,o,i,a,s,c,u,l,d,m,p,g,h,_,b,E,I,A,j,Le,de,Wt,Qe;let Kt=e.strict,Ds=(t=e.code)===null||t===void 0?void 0:t.optimize,Nf=Ds===!0||Ds===void 0?1:Ds||0,Rf=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:g_,u$=(o=e.uriResolver)!==null&&o!==void 0?o:tI.default;return{strictSchema:(a=(i=e.strictSchema)!==null&&i!==void 0?i:Kt)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:Kt)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=e.strictTypes)!==null&&u!==void 0?u:Kt)!==null&&l!==void 0?l:"log",strictTuples:(m=(d=e.strictTuples)!==null&&d!==void 0?d:Kt)!==null&&m!==void 0?m:"log",strictRequired:(g=(p=e.strictRequired)!==null&&p!==void 0?p:Kt)!==null&&g!==void 0?g:!1,code:e.code?{...e.code,optimize:Nf,regExp:Rf}:{optimize:Nf,regExp:Rf},loopRequired:(h=e.loopRequired)!==null&&h!==void 0?h:p_,loopEnum:(_=e.loopEnum)!==null&&_!==void 0?_:p_,meta:(b=e.meta)!==null&&b!==void 0?b:!0,messages:(E=e.messages)!==null&&E!==void 0?E:!0,inlineRefs:(I=e.inlineRefs)!==null&&I!==void 0?I:!0,schemaId:(A=e.schemaId)!==null&&A!==void 0?A:"$id",addUsedSchema:(j=e.addUsedSchema)!==null&&j!==void 0?j:!0,validateSchema:(Le=e.validateSchema)!==null&&Le!==void 0?Le:!0,validateFormats:(de=e.validateFormats)!==null&&de!==void 0?de:!0,unicodeRegExp:(Wt=e.unicodeRegExp)!==null&&Wt!==void 0?Wt:!0,int32range:(Qe=e.int32range)!==null&&Qe!==void 0?Qe:!0,uriResolver:u$}}var ei=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...aI(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new eI.ValueScope({scope:{},prefixes:nI,es5:r,lines:n}),this.logger=pI(t.logger);let o=t.validateFormats;t.validateFormats=!1,this.RULES=(0,Qz.getRules)(),f_.call(this,oI,t,"NOT SUPPORTED"),f_.call(this,iI,t,"DEPRECATED","warn"),this._metaOpts=lI.call(this),t.formats&&cI.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&uI.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),sI.call(this),t.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,o=d_;n==="id"&&(o={...d_},o.id=o.$id,delete o.$id),r&&t&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,t,r);async function o(l,d){await i.call(this,l.$schema);let m=this._addSchema(l,d);return m.validate||a.call(this,m)}async function i(l){l&&!this.getSchema(l)&&await o.call(this,{$ref:l},!0)}async function a(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof h_.default))throw d;return s.call(this,d),await c.call(this,d.missingSchema),a.call(this,l)}}function s({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await i.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,r)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(t,r,n,o=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,n,o);return this}let i;if(typeof t=="object"){let{schemaId:a}=this.opts;if(i=t[a],i!==void 0&&typeof i!="string")throw new Error(`schema ${a} must be string`)}return r=(0,Qo.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,o,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$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 o=this.validate(n,t);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(t){let r;for(;typeof(r=m_.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,o=new Yo.SchemaEnv({schema:{},schemaId:n});if(r=Yo.resolveSchema.call(this,o,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=m_.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,Qo.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,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(mI.call(this,n,r),!r)return(0,kp.eachItem)(n,i=>xp.call(this,i)),this;gI.call(this,r);let o={...r,type:(0,ns.getJSONTypes)(r.type),schemaType:(0,ns.getJSONTypes)(r.schemaType)};return(0,kp.eachItem)(n,o.type.length===0?i=>xp.call(this,i,o):i=>o.type.forEach(a=>xp.call(this,i,o,a))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let o=n.rules.findIndex(i=>i.keyword===t);o>=0&&n.rules.splice(o,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,i)=>o+r+i)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let o of r){let i=o.split("/").slice(1),a=t;for(let s of i)a=a[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:u}=c.definition,l=a[s];u&&l&&(a[s]=v_(l))}}return t}_removeAllSchemas(t,r){for(let n in t){let o=t[n];(!r||r.test(n))&&(typeof o=="string"?delete t[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete t[n]))}}_addSchema(t,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof t=="object")a=t[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;n=(0,Qo.normalizeId)(a||n);let u=Qo.getSchemaRefs.call(this,t,n);return c=new Yo.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):Yo.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{Yo.compileSchema.call(this,t)}finally{this.opts=r}}};ei.ValidationError=Yz.default;ei.MissingRefError=h_.default;ze.default=ei;function f_(e,t,r,n="error"){for(let o in e){let i=o;i in t&&this.logger[n](`${r}: option ${o}. ${e[i]}`)}}function m_(e){return e=(0,Qo.normalizeId)(e),this.schemas[e]||this.refs[e]}function sI(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function cI(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function uI(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function lI(){let e={...this.opts};for(let t of rI)delete e[t];return e}var dI={log(){},warn(){},error(){}};function pI(e){if(e===!1)return dI;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var fI=/^[a-z_$][a-z0-9_$:-]*$/i;function mI(e,t){let{RULES:r}=this;if((0,kp.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!fI.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function xp(e,t,r){var n;let o=t?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=o?i.post:i.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},i.rules.push(a)),i.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,ns.getJSONTypes)(t.type),schemaType:(0,ns.getJSONTypes)(t.schemaType)}};t.before?hI.call(this,a,s,t.before):a.rules.push(s),i.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function hI(e,t,r){let n=e.rules.findIndex(o=>o.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function gI(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=v_(t)),e.validateSchema=this.compile(t,!0))}var vI={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function v_(e){return{anyOf:[e,vI]}}});var y_=S(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var _I={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Sp.default=_I});var k_=S(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.callRef=Tr.getValidate=void 0;var yI=Bo(),$_=at(),We=W(),gn=Lt(),b_=Ya(),os=re(),$I={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:o,schemaEnv:i,validateName:a,opts:s,self:c}=n,{root:u}=i;if((r==="#"||r==="#/")&&o===u.baseId)return d();let l=b_.resolveRef.call(c,u,o,r);if(l===void 0)throw new yI.default(n.opts.uriResolver,o,r);if(l instanceof b_.SchemaEnv)return m(l);return p(l);function d(){if(i===u)return is(e,a,i,i.$async);let g=t.scopeValue("root",{ref:u});return is(e,(0,We._)`${g}.validate`,u,u.$async)}function m(g){let h=x_(e,g);is(e,h,g,g.$async)}function p(g){let h=t.scopeValue("schema",s.code.source===!0?{ref:g,code:(0,We.stringify)(g)}:{ref:g}),_=t.name("valid"),b=e.subschema({schema:g,dataTypes:[],schemaPath:We.nil,topSchemaRef:h,errSchemaPath:r},_);e.mergeEvaluated(b),e.ok(_)}}};function x_(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,We._)`${r.scopeValue("wrapper",{ref:t})}.validate`}Tr.getValidate=x_;function is(e,t,r,n){let{gen:o,it:i}=e,{allErrors:a,schemaEnv:s,opts:c}=i,u=c.passContext?gn.default.this:We.nil;n?l():d();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let g=o.let("valid");o.try(()=>{o.code((0,We._)`await ${(0,$_.callValidateCode)(e,t,u)}`),p(t),a||o.assign(g,!0)},h=>{o.if((0,We._)`!(${h} instanceof ${i.ValidationError})`,()=>o.throw(h)),m(h),a||o.assign(g,!1)}),e.ok(g)}function d(){e.result((0,$_.callValidateCode)(e,t,u),()=>p(t),()=>m(t))}function m(g){let h=(0,We._)`${g}.errors`;o.assign(gn.default.vErrors,(0,We._)`${gn.default.vErrors} === null ? ${h} : ${gn.default.vErrors}.concat(${h})`),o.assign(gn.default.errors,(0,We._)`${gn.default.vErrors}.length`)}function p(g){var h;if(!i.opts.unevaluated)return;let _=(h=r?.validate)===null||h===void 0?void 0:h.evaluated;if(i.props!==!0)if(_&&!_.dynamicProps)_.props!==void 0&&(i.props=os.mergeEvaluated.props(o,_.props,i.props));else{let b=o.var("props",(0,We._)`${g}.evaluated.props`);i.props=os.mergeEvaluated.props(o,b,i.props,We.Name)}if(i.items!==!0)if(_&&!_.dynamicItems)_.items!==void 0&&(i.items=os.mergeEvaluated.items(o,_.items,i.items));else{let b=o.var("items",(0,We._)`${g}.evaluated.items`);i.items=os.mergeEvaluated.items(o,b,i.items,We.Name)}}}Tr.callRef=is;Tr.default=$I});var S_=S(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});var bI=y_(),xI=k_(),kI=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",bI.default,xI.default];wp.default=kI});var w_=S(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var as=W(),dr=as.operators,ss={maximum:{okStr:"<=",ok:dr.LTE,fail:dr.GT},minimum:{okStr:">=",ok:dr.GTE,fail:dr.LT},exclusiveMaximum:{okStr:"<",ok:dr.LT,fail:dr.GTE},exclusiveMinimum:{okStr:">",ok:dr.GT,fail:dr.LTE}},SI={message:({keyword:e,schemaCode:t})=>(0,as.str)`must be ${ss[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,as._)`{comparison: ${ss[e].okStr}, limit: ${t}}`},wI={keyword:Object.keys(ss),type:"number",schemaType:"number",$data:!0,error:SI,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,as._)`${r} ${ss[t].fail} ${n} || isNaN(${r})`)}};zp.default=wI});var z_=S(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var ti=W(),zI={message:({schemaCode:e})=>(0,ti.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,ti._)`{multipleOf: ${e}}`},II={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:zI,code(e){let{gen:t,data:r,schemaCode:n,it:o}=e,i=o.opts.multipleOfPrecision,a=t.let("res"),s=i?(0,ti._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,ti._)`${a} !== parseInt(${a})`;e.fail$data((0,ti._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};Ip.default=II});var E_=S(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});function I_(e){let t=e.length,r=0,n=0,o;for(;n=55296&&o<=56319&&n{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var Pr=W(),EI=re(),TI=E_(),PI={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Pr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Pr._)`{limit: ${e}}`},OI={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:PI,code(e){let{keyword:t,data:r,schemaCode:n,it:o}=e,i=t==="maxLength"?Pr.operators.GT:Pr.operators.LT,a=o.opts.unicode===!1?(0,Pr._)`${r}.length`:(0,Pr._)`${(0,EI.useFunc)(e.gen,TI.default)}(${r})`;e.fail$data((0,Pr._)`${a} ${i} ${n}`)}};Tp.default=OI});var P_=S(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});var jI=at(),cs=W(),DI={message:({schemaCode:e})=>(0,cs.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,cs._)`{pattern: ${e}}`},NI={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:DI,code(e){let{data:t,$data:r,schema:n,schemaCode:o,it:i}=e,a=i.opts.unicodeRegExp?"u":"",s=r?(0,cs._)`(new RegExp(${o}, ${a}))`:(0,jI.usePattern)(e,n);e.fail$data((0,cs._)`!${s}.test(${t})`)}};Pp.default=NI});var O_=S(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var ri=W(),RI={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,ri.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,ri._)`{limit: ${e}}`},AI={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:RI,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxProperties"?ri.operators.GT:ri.operators.LT;e.fail$data((0,ri._)`Object.keys(${r}).length ${o} ${n}`)}};Op.default=AI});var j_=S(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var ni=at(),oi=W(),MI=re(),CI={message:({params:{missingProperty:e}})=>(0,oi.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,oi._)`{missingProperty: ${e}}`},UI={keyword:"required",type:"object",schemaType:"array",$data:!0,error:CI,code(e){let{gen:t,schema:r,schemaCode:n,data:o,$data:i,it:a}=e,{opts:s}=a;if(!i&&r.length===0)return;let c=r.length>=s.loopRequired;if(a.allErrors?u():l(),s.strictRequired){let p=e.parentSchema.properties,{definedProperties:g}=e.it;for(let h of r)if(p?.[h]===void 0&&!g.has(h)){let _=a.schemaEnv.baseId+a.errSchemaPath,b=`required property "${h}" is not defined at "${_}" (strictRequired)`;(0,MI.checkStrictMode)(a,b,a.opts.strictRequired)}}function u(){if(c||i)e.block$data(oi.nil,d);else for(let p of r)(0,ni.checkReportMissingProp)(e,p)}function l(){let p=t.let("missing");if(c||i){let g=t.let("valid",!0);e.block$data(g,()=>m(p,g)),e.ok(g)}else t.if((0,ni.checkMissingProp)(e,r,p)),(0,ni.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",n,p=>{e.setParams({missingProperty:p}),t.if((0,ni.noPropertyInData)(t,o,p,s.ownProperties),()=>e.error())})}function m(p,g){e.setParams({missingProperty:p}),t.forOf(p,n,()=>{t.assign(g,(0,ni.propertyInData)(t,o,p,s.ownProperties)),t.if((0,oi.not)(g),()=>{e.error(),t.break()})},oi.nil)}}};jp.default=UI});var D_=S(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var ii=W(),ZI={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,ii.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,ii._)`{limit: ${e}}`},LI={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:ZI,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxItems"?ii.operators.GT:ii.operators.LT;e.fail$data((0,ii._)`${r}.length ${o} ${n}`)}};Dp.default=LI});var us=S(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});var N_=op();N_.code='require("ajv/dist/runtime/equal").default';Np.default=N_});var R_=S(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var Rp=Jo(),Ie=W(),qI=re(),FI=us(),VI={message:({params:{i:e,j:t}})=>(0,Ie.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ie._)`{i: ${e}, j: ${t}}`},JI={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:VI,code(e){let{gen:t,data:r,$data:n,schema:o,parentSchema:i,schemaCode:a,it:s}=e;if(!n&&!o)return;let c=t.let("valid"),u=i.items?(0,Rp.getSchemaTypes)(i.items):[];e.block$data(c,l,(0,Ie._)`${a} === false`),e.ok(c);function l(){let g=t.let("i",(0,Ie._)`${r}.length`),h=t.let("j");e.setParams({i:g,j:h}),t.assign(c,!0),t.if((0,Ie._)`${g} > 1`,()=>(d()?m:p)(g,h))}function d(){return u.length>0&&!u.some(g=>g==="object"||g==="array")}function m(g,h){let _=t.name("item"),b=(0,Rp.checkDataTypes)(u,_,s.opts.strictNumbers,Rp.DataType.Wrong),E=t.const("indices",(0,Ie._)`{}`);t.for((0,Ie._)`;${g}--;`,()=>{t.let(_,(0,Ie._)`${r}[${g}]`),t.if(b,(0,Ie._)`continue`),u.length>1&&t.if((0,Ie._)`typeof ${_} == "string"`,(0,Ie._)`${_} += "_"`),t.if((0,Ie._)`typeof ${E}[${_}] == "number"`,()=>{t.assign(h,(0,Ie._)`${E}[${_}]`),e.error(),t.assign(c,!1).break()}).code((0,Ie._)`${E}[${_}] = ${g}`)})}function p(g,h){let _=(0,qI.useFunc)(t,FI.default),b=t.name("outer");t.label(b).for((0,Ie._)`;${g}--;`,()=>t.for((0,Ie._)`${h} = ${g}; ${h}--;`,()=>t.if((0,Ie._)`${_}(${r}[${g}], ${r}[${h}])`,()=>{e.error(),t.assign(c,!1).break(b)})))}}};Ap.default=JI});var A_=S(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});var Mp=W(),WI=re(),KI=us(),HI={message:"must be equal to constant",params:({schemaCode:e})=>(0,Mp._)`{allowedValue: ${e}}`},GI={keyword:"const",$data:!0,error:HI,code(e){let{gen:t,data:r,$data:n,schemaCode:o,schema:i}=e;n||i&&typeof i=="object"?e.fail$data((0,Mp._)`!${(0,WI.useFunc)(t,KI.default)}(${r}, ${o})`):e.fail((0,Mp._)`${i} !== ${r}`)}};Cp.default=GI});var M_=S(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});var ai=W(),BI=re(),XI=us(),YI={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,ai._)`{allowedValues: ${e}}`},QI={keyword:"enum",schemaType:"array",$data:!0,error:YI,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:i,it:a}=e;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let s=o.length>=a.opts.loopEnum,c,u=()=>c??(c=(0,BI.useFunc)(t,XI.default)),l;if(s||n)l=t.let("valid"),e.block$data(l,d);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let p=t.const("vSchema",i);l=(0,ai.or)(...o.map((g,h)=>m(p,h)))}e.pass(l);function d(){t.assign(l,!1),t.forOf("v",i,p=>t.if((0,ai._)`${u()}(${r}, ${p})`,()=>t.assign(l,!0).break()))}function m(p,g){let h=o[g];return typeof h=="object"&&h!==null?(0,ai._)`${u()}(${r}, ${p}[${g}])`:(0,ai._)`${r} === ${h}`}}};Up.default=QI});var C_=S(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var eE=w_(),tE=z_(),rE=T_(),nE=P_(),oE=O_(),iE=j_(),aE=D_(),sE=R_(),cE=A_(),uE=M_(),lE=[eE.default,tE.default,rE.default,nE.default,oE.default,iE.default,aE.default,sE.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},cE.default,uE.default];Zp.default=lE});var qp=S(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.validateAdditionalItems=void 0;var Or=W(),Lp=re(),dE={message:({params:{len:e}})=>(0,Or.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Or._)`{limit: ${e}}`},pE={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:dE,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Lp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}U_(e,n)}};function U_(e,t){let{gen:r,schema:n,data:o,keyword:i,it:a}=e;a.items=!0;let s=r.const("len",(0,Or._)`${o}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,Or._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Lp.alwaysValidSchema)(a,n)){let u=r.var("valid",(0,Or._)`${s} <= ${t.length}`);r.if((0,Or.not)(u),()=>c(u)),e.ok(u)}function c(u){r.forRange("i",t.length,s,l=>{e.subschema({keyword:i,dataProp:l,dataPropType:Lp.Type.Num},u),a.allErrors||r.if((0,Or.not)(u),()=>r.break())})}}si.validateAdditionalItems=U_;si.default=pE});var Fp=S(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.validateTuple=void 0;var Z_=W(),ls=re(),fE=at(),mE={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return L_(e,"additionalItems",t);r.items=!0,!(0,ls.alwaysValidSchema)(r,t)&&e.ok((0,fE.validateArray)(e))}};function L_(e,t,r=e.schema){let{gen:n,parentSchema:o,data:i,keyword:a,it:s}=e;l(o),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=ls.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),u=n.const("len",(0,Z_._)`${i}.length`);r.forEach((d,m)=>{(0,ls.alwaysValidSchema)(s,d)||(n.if((0,Z_._)`${u} > ${m}`,()=>e.subschema({keyword:a,schemaProp:m,dataProp:m},c)),e.ok(c))});function l(d){let{opts:m,errSchemaPath:p}=s,g=r.length,h=g===d.minItems&&(g===d.maxItems||d[t]===!1);if(m.strictTuples&&!h){let _=`"${a}" is ${g}-tuple, but minItems or maxItems/${t} are not specified or different at path "${p}"`;(0,ls.checkStrictMode)(s,_,m.strictTuples)}}}ci.validateTuple=L_;ci.default=mE});var q_=S(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var hE=Fp(),gE={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,hE.validateTuple)(e,"items")};Vp.default=gE});var V_=S(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var F_=W(),vE=re(),_E=at(),yE=qp(),$E={message:({params:{len:e}})=>(0,F_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,F_._)`{limit: ${e}}`},bE={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:$E,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:o}=r;n.items=!0,!(0,vE.alwaysValidSchema)(n,t)&&(o?(0,yE.validateAdditionalItems)(e,o):e.ok((0,_E.validateArray)(e)))}};Jp.default=bE});var J_=S(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var ct=W(),ds=re(),xE={message:({params:{min:e,max:t}})=>t===void 0?(0,ct.str)`must contain at least ${e} valid item(s)`:(0,ct.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,ct._)`{minContains: ${e}}`:(0,ct._)`{minContains: ${e}, maxContains: ${t}}`},kE={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:xE,code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:i}=e,a,s,{minContains:c,maxContains:u}=n;i.opts.next?(a=c===void 0?1:c,s=u):a=1;let l=t.const("len",(0,ct._)`${o}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,ds.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,ds.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,ds.alwaysValidSchema)(i,r)){let h=(0,ct._)`${l} >= ${a}`;s!==void 0&&(h=(0,ct._)`${h} && ${l} <= ${s}`),e.pass(h);return}i.items=!0;let d=t.name("valid");s===void 0&&a===1?p(d,()=>t.if(d,()=>t.break())):a===0?(t.let(d,!0),s!==void 0&&t.if((0,ct._)`${o}.length > 0`,m)):(t.let(d,!1),m()),e.result(d,()=>e.reset());function m(){let h=t.name("_valid"),_=t.let("count",0);p(h,()=>t.if(h,()=>g(_)))}function p(h,_){t.forRange("i",0,l,b=>{e.subschema({keyword:"contains",dataProp:b,dataPropType:ds.Type.Num,compositeRule:!0},h),_()})}function g(h){t.code((0,ct._)`${h}++`),s===void 0?t.if((0,ct._)`${h} >= ${a}`,()=>t.assign(d,!0).break()):(t.if((0,ct._)`${h} > ${s}`,()=>t.assign(d,!1).break()),a===1?t.assign(d,!0):t.if((0,ct._)`${h} >= ${a}`,()=>t.assign(d,!0)))}}};Wp.default=kE});var H_=S(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.validateSchemaDeps=kt.validatePropertyDeps=kt.error=void 0;var Kp=W(),SE=re(),ui=at();kt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,Kp.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,Kp._)`{property: ${e}, missingProperty: ${n}, - depsCount: ${e}, - deps: ${r}}`};var zE={keyword:"dependencies",type:"object",schemaType:"object",error:kt.error,code(t){let[e,r]=IE(t);Y_(t,e),Q_(t,r)}};function IE({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let o=Array.isArray(t[n])?e:r;o[n]=t[n]}return[e,r]}function Y_(t,e=t.schema){let{gen:r,data:n,it:o}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let a in e){let s=e[a];if(s.length===0)continue;let c=(0,pi.propertyInData)(r,n,a,o.opts.ownProperties);t.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of s)(0,pi.checkReportMissingProp)(t,u)}):(r.if((0,Hp._)`${c} && (${(0,pi.checkMissingProp)(t,s,i)})`),(0,pi.reportMissingProp)(t,i),r.else())}}kt.validatePropertyDeps=Y_;function Q_(t,e=t.schema){let{gen:r,data:n,keyword:o,it:i}=t,a=r.name("valid");for(let s in e)(0,wE.alwaysValidSchema)(i,e[s])||(r.if((0,pi.propertyInData)(r,n,s,i.opts.ownProperties),()=>{let c=t.subschema({keyword:o,schemaProp:s},a);t.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),t.ok(a))}kt.validateSchemaDeps=Q_;kt.default=zE});var ry=S(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var ty=W(),EE=ee(),TE={message:"property name must be valid",params:({params:t})=>(0,ty._)`{propertyName: ${t.propertyName}}`},PE={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:TE,code(t){let{gen:e,schema:r,data:n,it:o}=t;if((0,EE.alwaysValidSchema)(o,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,ty.not)(i),()=>{t.error(!0),o.allErrors||e.break()})}),t.ok(i)}};Gp.default=PE});var Xp=S(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var fs=at(),ht=W(),OE=Lt(),ms=ee(),jE={message:"must NOT have additional properties",params:({params:t})=>(0,ht._)`{additionalProperty: ${t.additionalProperty}}`},DE={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:jE,code(t){let{gen:e,schema:r,parentSchema:n,data:o,errsCount:i,it:a}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,ms.alwaysValidSchema)(a,r))return;let u=(0,fs.allSchemaProperties)(n.properties),l=(0,fs.allSchemaProperties)(n.patternProperties);d(),t.ok((0,ht._)`${i} === ${OE.default.errors}`);function d(){e.forIn("key",o,_=>{!u.length&&!l.length?g(_):e.if(p(_),()=>g(_))})}function p(_){let b;if(u.length>8){let E=(0,ms.schemaRefOrVal)(a,n.properties,"properties");b=(0,fs.isOwnProperty)(e,E,_)}else u.length?b=(0,ht.or)(...u.map(E=>(0,ht._)`${_} === ${E}`)):b=ht.nil;return l.length&&(b=(0,ht.or)(b,...l.map(E=>(0,ht._)`${(0,fs.usePattern)(t,E)}.test(${_})`))),(0,ht.not)(b)}function f(_){e.code((0,ht._)`delete ${o}[${_}]`)}function g(_){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){f(_);return}if(r===!1){t.setParams({additionalProperty:_}),t.error(),s||e.break();return}if(typeof r=="object"&&!(0,ms.alwaysValidSchema)(a,r)){let b=e.name("valid");c.removeAdditional==="failing"?(h(_,b,!1),e.if((0,ht.not)(b),()=>{t.reset(),f(_)})):(h(_,b),s||e.if((0,ht.not)(b),()=>e.break()))}}function h(_,b,E){let I={keyword:"additionalProperties",dataProp:_,dataPropType:ms.Type.Str};E===!1&&Object.assign(I,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(I,b)}}};Bp.default=DE});var iy=S(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var NE=Yo(),ny=at(),Yp=ee(),oy=Xp(),RE={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:o,it:i}=t;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&oy.default.code(new NE.KeywordCxt(i,oy.default,"additionalProperties"));let a=(0,ny.allSchemaProperties)(r);for(let d of a)i.definedProperties.add(d);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=Yp.mergeEvaluated.props(e,(0,Yp.toHash)(a),i.props));let s=a.filter(d=>!(0,Yp.alwaysValidSchema)(i,r[d]));if(s.length===0)return;let c=e.name("valid");for(let d of s)u(d)?l(d):(e.if((0,ny.propertyInData)(e,o,d,i.opts.ownProperties)),l(d),i.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(d),t.ok(c);function u(d){return i.opts.useDefaults&&!i.compositeRule&&r[d].default!==void 0}function l(d){t.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};Qp.default=RE});var uy=S(ef=>{"use strict";Object.defineProperty(ef,"__esModule",{value:!0});var ay=at(),hs=W(),sy=ee(),cy=ee(),AE={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:o,it:i}=t,{opts:a}=i,s=(0,ay.allSchemaProperties)(r),c=s.filter(h=>(0,sy.alwaysValidSchema)(i,r[h]));if(s.length===0||c.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let u=a.strictSchema&&!a.allowMatchingProperties&&o.properties,l=e.name("valid");i.props!==!0&&!(i.props instanceof hs.Name)&&(i.props=(0,cy.evaluatedPropsToName)(e,i.props));let{props:d}=i;p();function p(){for(let h of s)u&&f(h),i.allErrors?g(h):(e.var(l,!0),g(h),e.if(l))}function f(h){for(let _ in u)new RegExp(h).test(_)&&(0,sy.checkStrictMode)(i,`property ${_} matches pattern ${h} (use allowMatchingProperties)`)}function g(h){e.forIn("key",n,_=>{e.if((0,hs._)`${(0,ay.usePattern)(t,h)}.test(${_})`,()=>{let b=c.includes(h);b||t.subschema({keyword:"patternProperties",schemaProp:h,dataProp:_,dataPropType:cy.Type.Str},l),i.opts.unevaluated&&d!==!0?e.assign((0,hs._)`${d}[${_}]`,!0):!b&&!i.allErrors&&e.if((0,hs.not)(l),()=>e.break())})})}}};ef.default=AE});var ly=S(tf=>{"use strict";Object.defineProperty(tf,"__esModule",{value:!0});var ME=ee(),CE={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,ME.alwaysValidSchema)(n,r)){t.fail();return}let o=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),t.failResult(o,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};tf.default=CE});var dy=S(rf=>{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});var UE=at(),ZE={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:UE.validateUnion,error:{message:"must match a schema in anyOf"}};rf.default=ZE});var py=S(nf=>{"use strict";Object.defineProperty(nf,"__esModule",{value:!0});var gs=W(),LE=ee(),qE={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,gs._)`{passingSchemas: ${t.passing}}`},FE={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:qE,code(t){let{gen:e,schema:r,parentSchema:n,it:o}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let i=r,a=e.let("valid",!1),s=e.let("passing",null),c=e.name("_valid");t.setParams({passing:s}),e.block(u),t.result(a,()=>t.reset(),()=>t.error(!0));function u(){i.forEach((l,d)=>{let p;(0,LE.alwaysValidSchema)(o,l)?e.var(c,!0):p=t.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&e.if((0,gs._)`${c} && ${a}`).assign(a,!1).assign(s,(0,gs._)`[${s}, ${d}]`).else(),e.if(c,()=>{e.assign(a,!0),e.assign(s,d),p&&t.mergeEvaluated(p,gs.Name)})})}}};nf.default=FE});var fy=S(of=>{"use strict";Object.defineProperty(of,"__esModule",{value:!0});var VE=ee(),JE={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 o=e.name("valid");r.forEach((i,a)=>{if((0,VE.alwaysValidSchema)(n,i))return;let s=t.subschema({keyword:"allOf",schemaProp:a},o);t.ok(o),t.mergeEvaluated(s)})}};of.default=JE});var gy=S(af=>{"use strict";Object.defineProperty(af,"__esModule",{value:!0});var vs=W(),hy=ee(),WE={message:({params:t})=>(0,vs.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,vs._)`{failingKeyword: ${t.ifClause}}`},KE={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:WE,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,hy.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=my(n,"then"),i=my(n,"else");if(!o&&!i)return;let a=e.let("valid",!0),s=e.name("_valid");if(c(),t.reset(),o&&i){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(s,u("then",l),u("else",l))}else o?e.if(s,u("then")):e.if((0,vs.not)(s),u("else"));t.pass(a,()=>t.error(!0));function c(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(l)}function u(l,d){return()=>{let p=t.subschema({keyword:l},s);e.assign(a,s),t.mergeValidEvaluated(p,a),d?e.assign(d,(0,vs._)`${l}`):t.setParams({ifClause:l})}}}};function my(t,e){let r=t.schema[e];return r!==void 0&&!(0,hy.alwaysValidSchema)(t,r)}af.default=KE});var vy=S(sf=>{"use strict";Object.defineProperty(sf,"__esModule",{value:!0});var HE=ee(),GE={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,HE.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};sf.default=GE});var _y=S(cf=>{"use strict";Object.defineProperty(cf,"__esModule",{value:!0});var BE=Fp(),XE=H_(),YE=Vp(),QE=B_(),eT=X_(),tT=ey(),rT=ry(),nT=Xp(),oT=iy(),iT=uy(),aT=ly(),sT=dy(),cT=py(),uT=fy(),lT=gy(),dT=vy();function pT(t=!1){let e=[aT.default,sT.default,cT.default,uT.default,lT.default,dT.default,rT.default,nT.default,tT.default,oT.default,iT.default];return t?e.push(XE.default,QE.default):e.push(BE.default,YE.default),e.push(eT.default),e}cf.default=pT});var yy=S(uf=>{"use strict";Object.defineProperty(uf,"__esModule",{value:!0});var _e=W(),fT={message:({schemaCode:t})=>(0,_e.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,_e._)`{format: ${t}}`},mT={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:fT,code(t,e){let{gen:r,data:n,$data:o,schema:i,schemaCode:a,it:s}=t,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=s;if(!c.validateFormats)return;o?p():f();function p(){let g=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),h=r.const("fDef",(0,_e._)`${g}[${a}]`),_=r.let("fType"),b=r.let("format");r.if((0,_e._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>r.assign(_,(0,_e._)`${h}.type || "string"`).assign(b,(0,_e._)`${h}.validate`),()=>r.assign(_,(0,_e._)`"string"`).assign(b,h)),t.fail$data((0,_e.or)(E(),I()));function E(){return c.strictSchema===!1?_e.nil:(0,_e._)`${a} && !${b}`}function I(){let A=l.$async?(0,_e._)`(${h}.async ? await ${b}(${n}) : ${b}(${n}))`:(0,_e._)`${b}(${n})`,j=(0,_e._)`(typeof ${b} == "function" ? ${A} : ${b}.test(${n}))`;return(0,_e._)`${b} && ${b} !== true && ${_} === ${e} && !${j}`}}function f(){let g=d.formats[i];if(!g){E();return}if(g===!0)return;let[h,_,b]=I(g);h===e&&t.pass(A());function E(){if(c.strictSchema===!1){d.logger.warn(j());return}throw new Error(j());function j(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function I(j){let Le=j instanceof RegExp?(0,_e.regexpCode)(j):c.code.formats?(0,_e._)`${c.code.formats}${(0,_e.getProperty)(i)}`:void 0,de=r.scopeValue("formats",{key:i,ref:j,code:Le});return typeof j=="object"&&!(j instanceof RegExp)?[j.type||"string",j.validate,(0,_e._)`${de}.validate`]:["string",j,de]}function A(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!l.$async)throw new Error("async format in sync schema");return(0,_e._)`await ${b}(${n})`}return typeof _=="function"?(0,_e._)`${b}(${n})`:(0,_e._)`${b}.test(${n})`}}}};uf.default=mT});var $y=S(lf=>{"use strict";Object.defineProperty(lf,"__esModule",{value:!0});var hT=yy(),gT=[hT.default];lf.default=gT});var by=S(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.contentVocabulary=yn.metadataVocabulary=void 0;yn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];yn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var ky=S(df=>{"use strict";Object.defineProperty(df,"__esModule",{value:!0});var vT=P_(),_T=V_(),yT=_y(),$T=$y(),xy=by(),bT=[vT.default,_T.default,(0,yT.default)(),$T.default,xy.metadataVocabulary,xy.contentVocabulary];df.default=bT});var wy=S(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.DiscrError=void 0;var Sy;(function(t){t.Tag="tag",t.Mapping="mapping"})(Sy||(_s.DiscrError=Sy={}))});var Iy=S(ff=>{"use strict";Object.defineProperty(ff,"__esModule",{value:!0});var $n=W(),pf=wy(),zy=es(),xT=Qo(),kT=ee(),ST={message:({params:{discrError:t,tagName:e}})=>t===pf.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,$n._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},wT={keyword:"discriminator",type:"object",schemaType:"object",error:ST,code(t){let{gen:e,data:r,schema:n,parentSchema:o,it:i}=t,{oneOf:a}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="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),u=e.const("tag",(0,$n._)`${r}${(0,$n.getProperty)(s)}`);e.if((0,$n._)`typeof ${u} == "string"`,()=>l(),()=>t.error(!1,{discrError:pf.DiscrError.Tag,tag:u,tagName:s})),t.ok(c);function l(){let f=p();e.if(!1);for(let g in f)e.elseIf((0,$n._)`${u} === ${g}`),e.assign(c,d(f[g]));e.else(),t.error(!1,{discrError:pf.DiscrError.Mapping,tag:u,tagName:s}),e.endIf()}function d(f){let g=e.name("valid"),h=t.subschema({keyword:"oneOf",schemaProp:f},g);return t.mergeEvaluated(h,$n.Name),g}function p(){var f;let g={},h=b(o),_=!0;for(let A=0;A{zT.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 hf=S((ge,mf)=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});ge.MissingRefError=ge.ValidationError=ge.CodeGen=ge.Name=ge.nil=ge.stringify=ge.str=ge._=ge.KeywordCxt=ge.Ajv=void 0;var IT=S_(),ET=ky(),TT=Iy(),Ty=Ey(),PT=["/properties"],ys="http://json-schema.org/draft-07/schema",bn=class extends IT.default{_addVocabularies(){super._addVocabularies(),ET.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(TT.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(Ty,PT):Ty;this.addMetaSchema(e,ys,!1),this.refs["http://json-schema.org/schema"]=ys}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(ys)?ys:void 0)}};ge.Ajv=bn;mf.exports=ge=bn;mf.exports.Ajv=bn;Object.defineProperty(ge,"__esModule",{value:!0});ge.default=bn;var OT=Yo();Object.defineProperty(ge,"KeywordCxt",{enumerable:!0,get:function(){return OT.KeywordCxt}});var xn=W();Object.defineProperty(ge,"_",{enumerable:!0,get:function(){return xn._}});Object.defineProperty(ge,"str",{enumerable:!0,get:function(){return xn.str}});Object.defineProperty(ge,"stringify",{enumerable:!0,get:function(){return xn.stringify}});Object.defineProperty(ge,"nil",{enumerable:!0,get:function(){return xn.nil}});Object.defineProperty(ge,"Name",{enumerable:!0,get:function(){return xn.Name}});Object.defineProperty(ge,"CodeGen",{enumerable:!0,get:function(){return xn.CodeGen}});var jT=Ya();Object.defineProperty(ge,"ValidationError",{enumerable:!0,get:function(){return jT.default}});var DT=Qo();Object.defineProperty(ge,"MissingRefError",{enumerable:!0,get:function(){return DT.default}})});var My=S(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.formatNames=wt.fastFormats=wt.fullFormats=void 0;function St(t,e){return{validate:t,compare:e}}wt.fullFormats={date:St(Dy,yf),time:St(vf(!0),$f),"date-time":St(Py(!0),Ry),"iso-time":St(vf(),Ny),"iso-date-time":St(Py(),Ay),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:UT,"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:WT,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:ZT,int32:{type:"number",validate:FT},int64:{type:"number",validate:VT},float:{type:"number",validate:jy},double:{type:"number",validate:jy},password:!0,binary:!0};wt.fastFormats={...wt.fullFormats,date:St(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,yf),time:St(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,$f),"date-time":St(/^\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,Ry),"iso-time":St(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Ny),"iso-date-time":St(/^\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,Ay),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};wt.formatNames=Object.keys(wt.fullFormats);function NT(t){return t%4===0&&(t%100!==0||t%400===0)}var RT=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,AT=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Dy(t){let e=RT.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],o=+e[3];return n>=1&&n<=12&&o>=1&&o<=(n===2&&NT(r)?29:AT[n])}function yf(t,e){if(t&&e)return t>e?1:t23||l>59||t&&!s)return!1;if(o<=23&&i<=59&&a<60)return!0;let d=i-l*c,p=o-u*c-(d<0?1:0);return(p===23||p===-1)&&(d===59||d===-1)&&a<61}}function $f(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 Ny(t,e){if(!(t&&e))return;let r=gf.exec(t),n=gf.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=LT}function VT(t){return Number.isInteger(t)}function jy(){return!0}var JT=/[^\\]\\Z/;function WT(t){if(JT.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var Cy=S(kn=>{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});kn.formatLimitDefinition=void 0;var KT=hf(),gt=W(),pr=gt.operators,$s={formatMaximum:{okStr:"<=",ok:pr.LTE,fail:pr.GT},formatMinimum:{okStr:">=",ok:pr.GTE,fail:pr.LT},formatExclusiveMaximum:{okStr:"<",ok:pr.LT,fail:pr.GTE},formatExclusiveMinimum:{okStr:">",ok:pr.GT,fail:pr.LTE}},HT={message:({keyword:t,schemaCode:e})=>(0,gt.str)`should be ${$s[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,gt._)`{comparison: ${$s[t].okStr}, limit: ${e}}`};kn.formatLimitDefinition={keyword:Object.keys($s),type:"string",schemaType:"string",$data:!0,error:HT,code(t){let{gen:e,data:r,schemaCode:n,keyword:o,it:i}=t,{opts:a,self:s}=i;if(!a.validateFormats)return;let c=new KT.KeywordCxt(i,s.RULES.all.format.definition,"format");c.$data?u():l();function u(){let p=e.scopeValue("formats",{ref:s.formats,code:a.code.formats}),f=e.const("fmt",(0,gt._)`${p}[${c.schemaCode}]`);t.fail$data((0,gt.or)((0,gt._)`typeof ${f} != "object"`,(0,gt._)`${f} instanceof RegExp`,(0,gt._)`typeof ${f}.compare != "function"`,d(f)))}function l(){let p=c.schema,f=s.formats[p];if(!f||f===!0)return;if(typeof f!="object"||f instanceof RegExp||typeof f.compare!="function")throw new Error(`"${o}": format "${p}" does not define "compare" function`);let g=e.scopeValue("formats",{key:p,ref:f,code:a.code.formats?(0,gt._)`${a.code.formats}${(0,gt.getProperty)(p)}`:void 0});t.fail$data(d(g))}function d(p){return(0,gt._)`${p}.compare(${r}, ${n}) ${$s[o].fail} 0`}},dependencies:["format"]};var GT=t=>(t.addKeyword(kn.formatLimitDefinition),t);kn.default=GT});var qy=S((fi,Ly)=>{"use strict";Object.defineProperty(fi,"__esModule",{value:!0});var Sn=My(),BT=Cy(),bf=W(),Uy=new bf.Name("fullFormats"),XT=new bf.Name("fastFormats"),xf=(t,e={keywords:!0})=>{if(Array.isArray(e))return Zy(t,e,Sn.fullFormats,Uy),t;let[r,n]=e.mode==="fast"?[Sn.fastFormats,XT]:[Sn.fullFormats,Uy],o=e.formats||Sn.formatNames;return Zy(t,o,r,n),e.keywords&&(0,BT.default)(t),t};xf.get=(t,e="full")=>{let n=(e==="fast"?Sn.fastFormats:Sn.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function Zy(t,e,r,n){var o,i;(o=(i=t.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,bf._)`require("ajv-formats/dist/formats").${n}`);for(let a of e)t.addFormat(a,r[a])}Ly.exports=fi=xf;Object.defineProperty(fi,"__esModule",{value:!0});fi.default=xf});var Et=require("fs"),En=require("path"),Cf=require("os"),As=(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))(As||{}),Mf=(0,En.join)((0,Cf.homedir)(),".claude-mem"),Ms=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,En.join)(Mf,"logs");(0,Et.existsSync)(e)||(0,Et.mkdirSync)(e,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=(0,En.join)(e,`claude-mem-${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,En.join)(Mf,"settings.json");if((0,Et.existsSync)(e)){let r=(0,Et.readFileSync)(e,"utf-8"),o=(JSON.parse(r).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=As[o]??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"),o=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),s=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${o} ${i}:${a}:${s}.${c}`}log(e,r,n,o,i){if(e{for(let u of s)(0,ui.checkReportMissingProp)(e,u)}):(r.if((0,Kp._)`${c} && (${(0,ui.checkMissingProp)(e,s,i)})`),(0,ui.reportMissingProp)(e,i),r.else())}}kt.validatePropertyDeps=W_;function K_(e,t=e.schema){let{gen:r,data:n,keyword:o,it:i}=e,a=r.name("valid");for(let s in t)(0,SE.alwaysValidSchema)(i,t[s])||(r.if((0,ui.propertyInData)(r,n,s,i.opts.ownProperties),()=>{let c=e.subschema({keyword:o,schemaProp:s},a);e.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),e.ok(a))}kt.validateSchemaDeps=K_;kt.default=wE});var B_=S(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var G_=W(),IE=re(),EE={message:"property name must be valid",params:({params:e})=>(0,G_._)`{propertyName: ${e.propertyName}}`},TE={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:EE,code(e){let{gen:t,schema:r,data:n,it:o}=e;if((0,IE.alwaysValidSchema)(o,r))return;let i=t.name("valid");t.forIn("key",n,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,G_.not)(i),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(i)}};Hp.default=TE});var Bp=S(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var ps=at(),ht=W(),PE=Lt(),fs=re(),OE={message:"must NOT have additional properties",params:({params:e})=>(0,ht._)`{additionalProperty: ${e.additionalProperty}}`},jE={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:OE,code(e){let{gen:t,schema:r,parentSchema:n,data:o,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,fs.alwaysValidSchema)(a,r))return;let u=(0,ps.allSchemaProperties)(n.properties),l=(0,ps.allSchemaProperties)(n.patternProperties);d(),e.ok((0,ht._)`${i} === ${PE.default.errors}`);function d(){t.forIn("key",o,_=>{!u.length&&!l.length?g(_):t.if(m(_),()=>g(_))})}function m(_){let b;if(u.length>8){let E=(0,fs.schemaRefOrVal)(a,n.properties,"properties");b=(0,ps.isOwnProperty)(t,E,_)}else u.length?b=(0,ht.or)(...u.map(E=>(0,ht._)`${_} === ${E}`)):b=ht.nil;return l.length&&(b=(0,ht.or)(b,...l.map(E=>(0,ht._)`${(0,ps.usePattern)(e,E)}.test(${_})`))),(0,ht.not)(b)}function p(_){t.code((0,ht._)`delete ${o}[${_}]`)}function g(_){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){p(_);return}if(r===!1){e.setParams({additionalProperty:_}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,fs.alwaysValidSchema)(a,r)){let b=t.name("valid");c.removeAdditional==="failing"?(h(_,b,!1),t.if((0,ht.not)(b),()=>{e.reset(),p(_)})):(h(_,b),s||t.if((0,ht.not)(b),()=>t.break()))}}function h(_,b,E){let I={keyword:"additionalProperties",dataProp:_,dataPropType:fs.Type.Str};E===!1&&Object.assign(I,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(I,b)}}};Gp.default=jE});var Q_=S(Yp=>{"use strict";Object.defineProperty(Yp,"__esModule",{value:!0});var DE=Go(),X_=at(),Xp=re(),Y_=Bp(),NE={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:i}=e;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&Y_.default.code(new DE.KeywordCxt(i,Y_.default,"additionalProperties"));let a=(0,X_.allSchemaProperties)(r);for(let d of a)i.definedProperties.add(d);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=Xp.mergeEvaluated.props(t,(0,Xp.toHash)(a),i.props));let s=a.filter(d=>!(0,Xp.alwaysValidSchema)(i,r[d]));if(s.length===0)return;let c=t.name("valid");for(let d of s)u(d)?l(d):(t.if((0,X_.propertyInData)(t,o,d,i.opts.ownProperties)),l(d),i.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function u(d){return i.opts.useDefaults&&!i.compositeRule&&r[d].default!==void 0}function l(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};Yp.default=NE});var ny=S(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var ey=at(),ms=W(),ty=re(),ry=re(),RE={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:o,it:i}=e,{opts:a}=i,s=(0,ey.allSchemaProperties)(r),c=s.filter(h=>(0,ty.alwaysValidSchema)(i,r[h]));if(s.length===0||c.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let u=a.strictSchema&&!a.allowMatchingProperties&&o.properties,l=t.name("valid");i.props!==!0&&!(i.props instanceof ms.Name)&&(i.props=(0,ry.evaluatedPropsToName)(t,i.props));let{props:d}=i;m();function m(){for(let h of s)u&&p(h),i.allErrors?g(h):(t.var(l,!0),g(h),t.if(l))}function p(h){for(let _ in u)new RegExp(h).test(_)&&(0,ty.checkStrictMode)(i,`property ${_} matches pattern ${h} (use allowMatchingProperties)`)}function g(h){t.forIn("key",n,_=>{t.if((0,ms._)`${(0,ey.usePattern)(e,h)}.test(${_})`,()=>{let b=c.includes(h);b||e.subschema({keyword:"patternProperties",schemaProp:h,dataProp:_,dataPropType:ry.Type.Str},l),i.opts.unevaluated&&d!==!0?t.assign((0,ms._)`${d}[${_}]`,!0):!b&&!i.allErrors&&t.if((0,ms.not)(l),()=>t.break())})})}}};Qp.default=RE});var oy=S(ef=>{"use strict";Object.defineProperty(ef,"__esModule",{value:!0});var AE=re(),ME={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,AE.alwaysValidSchema)(n,r)){e.fail();return}let o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};ef.default=ME});var iy=S(tf=>{"use strict";Object.defineProperty(tf,"__esModule",{value:!0});var CE=at(),UE={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:CE.validateUnion,error:{message:"must match a schema in anyOf"}};tf.default=UE});var ay=S(rf=>{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});var hs=W(),ZE=re(),LE={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,hs._)`{passingSchemas: ${e.passing}}`},qE={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:LE,code(e){let{gen:t,schema:r,parentSchema:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let i=r,a=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(u),e.result(a,()=>e.reset(),()=>e.error(!0));function u(){i.forEach((l,d)=>{let m;(0,ZE.alwaysValidSchema)(o,l)?t.var(c,!0):m=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,hs._)`${c} && ${a}`).assign(a,!1).assign(s,(0,hs._)`[${s}, ${d}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,d),m&&e.mergeEvaluated(m,hs.Name)})})}}};rf.default=qE});var sy=S(nf=>{"use strict";Object.defineProperty(nf,"__esModule",{value:!0});var FE=re(),VE={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=t.name("valid");r.forEach((i,a)=>{if((0,FE.alwaysValidSchema)(n,i))return;let s=e.subschema({keyword:"allOf",schemaProp:a},o);e.ok(o),e.mergeEvaluated(s)})}};nf.default=VE});var ly=S(of=>{"use strict";Object.defineProperty(of,"__esModule",{value:!0});var gs=W(),uy=re(),JE={message:({params:e})=>(0,gs.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,gs._)`{failingKeyword: ${e.ifClause}}`},WE={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:JE,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,uy.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=cy(n,"then"),i=cy(n,"else");if(!o&&!i)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),o&&i){let l=t.let("ifClause");e.setParams({ifClause:l}),t.if(s,u("then",l),u("else",l))}else o?t.if(s,u("then")):t.if((0,gs.not)(s),u("else"));e.pass(a,()=>e.error(!0));function c(){let l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(l)}function u(l,d){return()=>{let m=e.subschema({keyword:l},s);t.assign(a,s),e.mergeValidEvaluated(m,a),d?t.assign(d,(0,gs._)`${l}`):e.setParams({ifClause:l})}}}};function cy(e,t){let r=e.schema[t];return r!==void 0&&!(0,uy.alwaysValidSchema)(e,r)}of.default=WE});var dy=S(af=>{"use strict";Object.defineProperty(af,"__esModule",{value:!0});var KE=re(),HE={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,KE.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};af.default=HE});var py=S(sf=>{"use strict";Object.defineProperty(sf,"__esModule",{value:!0});var GE=qp(),BE=q_(),XE=Fp(),YE=V_(),QE=J_(),eT=H_(),tT=B_(),rT=Bp(),nT=Q_(),oT=ny(),iT=oy(),aT=iy(),sT=ay(),cT=sy(),uT=ly(),lT=dy();function dT(e=!1){let t=[iT.default,aT.default,sT.default,cT.default,uT.default,lT.default,tT.default,rT.default,eT.default,nT.default,oT.default];return e?t.push(BE.default,YE.default):t.push(GE.default,XE.default),t.push(QE.default),t}sf.default=dT});var fy=S(cf=>{"use strict";Object.defineProperty(cf,"__esModule",{value:!0});var _e=W(),pT={message:({schemaCode:e})=>(0,_e.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,_e._)`{format: ${e}}`},fT={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:pT,code(e,t){let{gen:r,data:n,$data:o,schema:i,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=s;if(!c.validateFormats)return;o?m():p();function m(){let g=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),h=r.const("fDef",(0,_e._)`${g}[${a}]`),_=r.let("fType"),b=r.let("format");r.if((0,_e._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>r.assign(_,(0,_e._)`${h}.type || "string"`).assign(b,(0,_e._)`${h}.validate`),()=>r.assign(_,(0,_e._)`"string"`).assign(b,h)),e.fail$data((0,_e.or)(E(),I()));function E(){return c.strictSchema===!1?_e.nil:(0,_e._)`${a} && !${b}`}function I(){let A=l.$async?(0,_e._)`(${h}.async ? await ${b}(${n}) : ${b}(${n}))`:(0,_e._)`${b}(${n})`,j=(0,_e._)`(typeof ${b} == "function" ? ${A} : ${b}.test(${n}))`;return(0,_e._)`${b} && ${b} !== true && ${_} === ${t} && !${j}`}}function p(){let g=d.formats[i];if(!g){E();return}if(g===!0)return;let[h,_,b]=I(g);h===t&&e.pass(A());function E(){if(c.strictSchema===!1){d.logger.warn(j());return}throw new Error(j());function j(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function I(j){let Le=j instanceof RegExp?(0,_e.regexpCode)(j):c.code.formats?(0,_e._)`${c.code.formats}${(0,_e.getProperty)(i)}`:void 0,de=r.scopeValue("formats",{key:i,ref:j,code:Le});return typeof j=="object"&&!(j instanceof RegExp)?[j.type||"string",j.validate,(0,_e._)`${de}.validate`]:["string",j,de]}function A(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!l.$async)throw new Error("async format in sync schema");return(0,_e._)`await ${b}(${n})`}return typeof _=="function"?(0,_e._)`${b}(${n})`:(0,_e._)`${b}.test(${n})`}}}};cf.default=fT});var my=S(uf=>{"use strict";Object.defineProperty(uf,"__esModule",{value:!0});var mT=fy(),hT=[mT.default];uf.default=hT});var hy=S(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.contentVocabulary=vn.metadataVocabulary=void 0;vn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];vn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var vy=S(lf=>{"use strict";Object.defineProperty(lf,"__esModule",{value:!0});var gT=S_(),vT=C_(),_T=py(),yT=my(),gy=hy(),$T=[gT.default,vT.default,(0,_T.default)(),yT.default,gy.metadataVocabulary,gy.contentVocabulary];lf.default=$T});var yy=S(vs=>{"use strict";Object.defineProperty(vs,"__esModule",{value:!0});vs.DiscrError=void 0;var _y;(function(e){e.Tag="tag",e.Mapping="mapping"})(_y||(vs.DiscrError=_y={}))});var by=S(pf=>{"use strict";Object.defineProperty(pf,"__esModule",{value:!0});var _n=W(),df=yy(),$y=Ya(),bT=Bo(),xT=re(),kT={message:({params:{discrError:e,tagName:t}})=>e===df.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,_n._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},ST={keyword:"discriminator",type:"object",schemaType:"object",error:kT,code(e){let{gen:t,data:r,schema:n,parentSchema:o,it:i}=e,{oneOf:a}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="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=t.let("valid",!1),u=t.const("tag",(0,_n._)`${r}${(0,_n.getProperty)(s)}`);t.if((0,_n._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:df.DiscrError.Tag,tag:u,tagName:s})),e.ok(c);function l(){let p=m();t.if(!1);for(let g in p)t.elseIf((0,_n._)`${u} === ${g}`),t.assign(c,d(p[g]));t.else(),e.error(!1,{discrError:df.DiscrError.Mapping,tag:u,tagName:s}),t.endIf()}function d(p){let g=t.name("valid"),h=e.subschema({keyword:"oneOf",schemaProp:p},g);return e.mergeEvaluated(h,_n.Name),g}function m(){var p;let g={},h=b(o),_=!0;for(let A=0;A{wT.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 mf=S((ge,ff)=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});ge.MissingRefError=ge.ValidationError=ge.CodeGen=ge.Name=ge.nil=ge.stringify=ge.str=ge._=ge.KeywordCxt=ge.Ajv=void 0;var zT=__(),IT=vy(),ET=by(),ky=xy(),TT=["/properties"],_s="http://json-schema.org/draft-07/schema",yn=class extends zT.default{_addVocabularies(){super._addVocabularies(),IT.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(ET.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(ky,TT):ky;this.addMetaSchema(t,_s,!1),this.refs["http://json-schema.org/schema"]=_s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(_s)?_s:void 0)}};ge.Ajv=yn;ff.exports=ge=yn;ff.exports.Ajv=yn;Object.defineProperty(ge,"__esModule",{value:!0});ge.default=yn;var PT=Go();Object.defineProperty(ge,"KeywordCxt",{enumerable:!0,get:function(){return PT.KeywordCxt}});var $n=W();Object.defineProperty(ge,"_",{enumerable:!0,get:function(){return $n._}});Object.defineProperty(ge,"str",{enumerable:!0,get:function(){return $n.str}});Object.defineProperty(ge,"stringify",{enumerable:!0,get:function(){return $n.stringify}});Object.defineProperty(ge,"nil",{enumerable:!0,get:function(){return $n.nil}});Object.defineProperty(ge,"Name",{enumerable:!0,get:function(){return $n.Name}});Object.defineProperty(ge,"CodeGen",{enumerable:!0,get:function(){return $n.CodeGen}});var OT=Ba();Object.defineProperty(ge,"ValidationError",{enumerable:!0,get:function(){return OT.default}});var jT=Bo();Object.defineProperty(ge,"MissingRefError",{enumerable:!0,get:function(){return jT.default}})});var Oy=S(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.formatNames=wt.fastFormats=wt.fullFormats=void 0;function St(e,t){return{validate:e,compare:t}}wt.fullFormats={date:St(Iy,_f),time:St(gf(!0),yf),"date-time":St(Sy(!0),Ty),"iso-time":St(gf(),Ey),"iso-date-time":St(Sy(),Py),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:CT,"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:JT,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:UT,int32:{type:"number",validate:qT},int64:{type:"number",validate:FT},float:{type:"number",validate:zy},double:{type:"number",validate:zy},password:!0,binary:!0};wt.fastFormats={...wt.fullFormats,date:St(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,_f),time:St(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,yf),"date-time":St(/^\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,Ty),"iso-time":St(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Ey),"iso-date-time":St(/^\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,Py),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};wt.formatNames=Object.keys(wt.fullFormats);function DT(e){return e%4===0&&(e%100!==0||e%400===0)}var NT=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,RT=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Iy(e){let t=NT.exec(e);if(!t)return!1;let r=+t[1],n=+t[2],o=+t[3];return n>=1&&n<=12&&o>=1&&o<=(n===2&&DT(r)?29:RT[n])}function _f(e,t){if(e&&t)return e>t?1:e23||l>59||e&&!s)return!1;if(o<=23&&i<=59&&a<60)return!0;let d=i-l*c,m=o-u*c-(d<0?1:0);return(m===23||m===-1)&&(d===59||d===-1)&&a<61}}function yf(e,t){if(!(e&&t))return;let r=new Date("2020-01-01T"+e).valueOf(),n=new Date("2020-01-01T"+t).valueOf();if(r&&n)return r-n}function Ey(e,t){if(!(e&&t))return;let r=hf.exec(e),n=hf.exec(t);if(r&&n)return e=r[1]+r[2]+r[3],t=n[1]+n[2]+n[3],e>t?1:e=ZT}function FT(e){return Number.isInteger(e)}function zy(){return!0}var VT=/[^\\]\\Z/;function JT(e){if(VT.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var jy=S(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.formatLimitDefinition=void 0;var WT=mf(),gt=W(),pr=gt.operators,ys={formatMaximum:{okStr:"<=",ok:pr.LTE,fail:pr.GT},formatMinimum:{okStr:">=",ok:pr.GTE,fail:pr.LT},formatExclusiveMaximum:{okStr:"<",ok:pr.LT,fail:pr.GTE},formatExclusiveMinimum:{okStr:">",ok:pr.GT,fail:pr.LTE}},KT={message:({keyword:e,schemaCode:t})=>(0,gt.str)`should be ${ys[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,gt._)`{comparison: ${ys[e].okStr}, limit: ${t}}`};bn.formatLimitDefinition={keyword:Object.keys(ys),type:"string",schemaType:"string",$data:!0,error:KT,code(e){let{gen:t,data:r,schemaCode:n,keyword:o,it:i}=e,{opts:a,self:s}=i;if(!a.validateFormats)return;let c=new WT.KeywordCxt(i,s.RULES.all.format.definition,"format");c.$data?u():l();function u(){let m=t.scopeValue("formats",{ref:s.formats,code:a.code.formats}),p=t.const("fmt",(0,gt._)`${m}[${c.schemaCode}]`);e.fail$data((0,gt.or)((0,gt._)`typeof ${p} != "object"`,(0,gt._)`${p} instanceof RegExp`,(0,gt._)`typeof ${p}.compare != "function"`,d(p)))}function l(){let m=c.schema,p=s.formats[m];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${o}": format "${m}" does not define "compare" function`);let g=t.scopeValue("formats",{key:m,ref:p,code:a.code.formats?(0,gt._)`${a.code.formats}${(0,gt.getProperty)(m)}`:void 0});e.fail$data(d(g))}function d(m){return(0,gt._)`${m}.compare(${r}, ${n}) ${ys[o].fail} 0`}},dependencies:["format"]};var HT=e=>(e.addKeyword(bn.formatLimitDefinition),e);bn.default=HT});var Ay=S((li,Ry)=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});var xn=Oy(),GT=jy(),$f=W(),Dy=new $f.Name("fullFormats"),BT=new $f.Name("fastFormats"),bf=(e,t={keywords:!0})=>{if(Array.isArray(t))return Ny(e,t,xn.fullFormats,Dy),e;let[r,n]=t.mode==="fast"?[xn.fastFormats,BT]:[xn.fullFormats,Dy],o=t.formats||xn.formatNames;return Ny(e,o,r,n),t.keywords&&(0,GT.default)(e),e};bf.get=(e,t="full")=>{let n=(t==="fast"?xn.fastFormats:xn.fullFormats)[e];if(!n)throw new Error(`Unknown format "${e}"`);return n};function Ny(e,t,r,n){var o,i;(o=(i=e.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,$f._)`require("ajv-formats/dist/formats").${n}`);for(let a of t)e.addFormat(a,r[a])}Ry.exports=li=bf;Object.defineProperty(li,"__esModule",{value:!0});li.default=bf});var Et=require("fs"),zn=require("path"),Mf=require("os"),Rs=(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))(Rs||{}),Af=(0,zn.join)((0,Mf.homedir)(),".claude-mem"),As=class{level=null;useColor;logFilePath=null;logFileInitialized=!1;constructor(){this.useColor=process.stdout.isTTY??!1}ensureLogFileInitialized(){if(!this.logFileInitialized){this.logFileInitialized=!0;try{let t=(0,zn.join)(Af,"logs");(0,Et.existsSync)(t)||(0,Et.mkdirSync)(t,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=(0,zn.join)(t,`claude-mem-${r}.log`)}catch(t){console.error("[LOGGER] Failed to initialize log file:",t),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let t=(0,zn.join)(Af,"settings.json");if((0,Et.existsSync)(t)){let r=(0,Et.readFileSync)(t,"utf-8"),o=(JSON.parse(r).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=Rs[o]??1}else this.level=1}catch{this.level=1}return this.level}correlationId(t,r){return`obs-${t}-${r}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} +${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let r=Object.keys(t);return r.length===0?"{}":r.length<=3?JSON.stringify(t):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,r){if(!r)return t;let n=r;if(typeof r=="string")try{n=JSON.parse(r)}catch{n=r}if(t==="Bash"&&n.command)return`${t}(${n.command})`;if(n.file_path)return`${t}(${n.file_path})`;if(n.notebook_path)return`${t}(${n.notebook_path})`;if(t==="Glob"&&n.pattern)return`${t}(${n.pattern})`;if(t==="Grep"&&n.pattern)return`${t}(${n.pattern})`;if(n.url)return`${t}(${n.url})`;if(n.query)return`${t}(${n.query})`;if(t==="Task"){if(n.subagent_type)return`${t}(${n.subagent_type})`;if(n.description)return`${t}(${n.description})`}return t==="Skill"&&n.skill?`${t}(${n.skill})`:t==="LSP"&&n.operation?`${t}(${n.operation})`:t}formatTimestamp(t){let r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),s=String(t.getSeconds()).padStart(2,"0"),c=String(t.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${o} ${i}:${a}:${s}.${c}`}log(t,r,n,o,i){if(t0&&(d=` {${Object.entries(_).map(([E,I])=>`${E}=${I}`).join(", ")}}`)}let p=`[${a}] [${s}] [${c}] ${u}${n}${d}${l}`;if(this.logFilePath)try{(0,Et.appendFileSync)(this.logFilePath,p+` -`,"utf8")}catch(f){process.stderr.write(`[LOGGER] Failed to write to log file: ${f} -`)}else process.stderr.write(p+` -`)}debug(e,r,n,o){this.log(0,e,r,n,o)}info(e,r,n,o){this.log(1,e,r,n,o)}warn(e,r,n,o){this.log(2,e,r,n,o)}error(e,r,n,o){this.log(3,e,r,n,o)}dataIn(e,r,n,o){this.info(e,`\u2192 ${r}`,n,o)}dataOut(e,r,n,o){this.info(e,`\u2190 ${r}`,n,o)}success(e,r,n,o){this.info(e,`\u2713 ${r}`,n,o)}failure(e,r,n,o){this.error(e,`\u2717 ${r}`,n,o)}timing(e,r,n,o){this.info(e,`\u23F1 ${r}`,o,{duration:`${n}ms`})}happyPathError(e,r,n,o,i=""){let u=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",d={...n,location:l};return this.warn(e,`[HAPPY-PATH] ${r}`,d,o),i}},ve=new Ms;var X;(function(t){t.assertEqual=o=>{};function e(o){}t.assertIs=e;function r(o){throw new Error}t.assertNever=r,t.arrayToEnum=o=>{let i={};for(let a of o)i[a]=a;return i},t.getValidEnumValues=o=>{let i=t.objectKeys(o).filter(s=>typeof o[o[s]]!="number"),a={};for(let s of i)a[s]=o[s];return t.objectValues(a)},t.objectValues=o=>t.objectKeys(o).map(function(i){return o[i]}),t.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{let i=[];for(let a in o)Object.prototype.hasOwnProperty.call(o,a)&&i.push(a);return i},t.find=(o,i)=>{for(let a of o)if(i(a))return a},t.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function n(o,i=" | "){return o.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}t.joinValues=n,t.jsonStringifyReplacer=(o,i)=>typeof i=="bigint"?i.toString():i})(X||(X={}));var Uf;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Uf||(Uf={}));var w=X.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Tt=t=>{switch(typeof t){case"undefined":return w.undefined;case"string":return w.string;case"number":return Number.isNaN(t)?w.nan:w.number;case"boolean":return w.boolean;case"function":return w.function;case"bigint":return w.bigint;case"symbol":return w.symbol;case"object":return Array.isArray(t)?w.array:t===null?w.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?w.promise:typeof Map<"u"&&t instanceof Map?w.map:typeof Set<"u"&&t instanceof Set?w.set:typeof Date<"u"&&t instanceof Date?w.date:w.object;default:return w.unknown}};var y=X.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"]);var Ke=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:[]},o=i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(o);else if(a.code==="invalid_return_type")o(a.returnTypeError);else if(a.code==="invalid_arguments")o(a.argumentsError);else if(a.path.length===0)n._errors.push(r(a));else{let s=n,c=0;for(;cr.message){let r=Object.create(null),n=[];for(let o of this.issues)if(o.path.length>0){let i=o.path[0];r[i]=r[i]||[],r[i].push(e(o))}else n.push(e(o));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Ke.create=t=>new Ke(t);var x$=(t,e)=>{let r;switch(t.code){case y.invalid_type:t.received===w.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case y.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,X.jsonStringifyReplacer)}`;break;case y.unrecognized_keys:r=`Unrecognized key(s) in object: ${X.joinValues(t.keys,", ")}`;break;case y.invalid_union:r="Invalid input";break;case y.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${X.joinValues(t.options)}`;break;case y.invalid_enum_value:r=`Invalid enum value. Expected ${X.joinValues(t.options)}, received '${t.received}'`;break;case y.invalid_arguments:r="Invalid function arguments";break;case y.invalid_return_type:r="Invalid function return type";break;case y.invalid_date:r="Invalid date";break;case y.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}"`:X.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case y.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 y.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 y.custom:r="Invalid input";break;case y.invalid_intersection_types:r="Intersection results could not be merged";break;case y.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case y.not_finite:r="Number must be finite";break;default:r=e.defaultError,X.assertNever(t)}return{message:r}},Ht=x$;var k$=Ht;function Tn(){return k$}var _i=t=>{let{data:e,path:r,errorMaps:n,issueData:o}=t,i=[...r,...o.path||[]],a={...o,path:i};if(o.message!==void 0)return{...o,path:i,message:o.message};let s="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)s=u(a,{data:e,defaultError:s}).message;return{...o,path:i,message:s}};function x(t,e){let r=Tn(),n=_i({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ht?void 0:Ht].filter(o=>!!o)});t.common.issues.push(n)}var Ee=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 o of r){if(o.status==="aborted")return M;o.status==="dirty"&&e.dirty(),n.push(o.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let o of r){let i=await o.key,a=await o.value;n.push({key:i,value:a})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let o of r){let{key:i,value:a}=o;if(i.status==="aborted"||a.status==="aborted")return M;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||o.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}},M=Object.freeze({status:"aborted"}),Dr=t=>({status:"dirty",value:t}),Ne=t=>({status:"valid",value:t}),Cs=t=>t.status==="aborted",Us=t=>t.status==="dirty",fr=t=>t.status==="valid",Pn=t=>typeof Promise<"u"&&t instanceof Promise;var T;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(T||(T={}));var et=class{constructor(e,r,n,o){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=o}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}},Zf=(t,e)=>{if(fr(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Ke(t.common.issues);return this._error=r,this._error}}};function L(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:o}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:o}:{errorMap:(a,s)=>{let{message:c}=t;return a.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:c??n??s.defaultError}:a.code!=="invalid_type"?{message:s.defaultError}:{message:c??r??s.defaultError}},description:o}}var K=class{get description(){return this._def.description}_getType(e){return Tt(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Tt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Ee,ctx:{common:e.parent.common,data:e.data,parsedType:Tt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Pn(r))throw new 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:Tt(e)},o=this._parseSync({data:e,path:n.path,parent:n});return Zf(n,o)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Tt(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return fr(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=>fr(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:Tt(e)},o=this._parse({data:e,path:n.path,parent:n}),i=await(Pn(o)?o:Promise.resolve(o));return Zf(n,i)}refine(e,r){let n=o=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(o):r;return this._refinement((o,i)=>{let a=e(o),s=()=>i.addIssue({code:y.custom,...n(o)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(s(),!1)):a?!0:(s(),!1)})}refinement(e,r){return this._refinement((n,o)=>e(n)?!0:(o.addIssue(typeof r=="function"?r(n,o):r),!1))}_refinement(e){return new lt({schema:this,typeName:D.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 ut.create(this,this._def)}nullable(){return jt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Bt.create(this)}promise(){return mr.create(this,this._def)}or(e){return Cr.create([this,e],this._def)}and(e){return Ur.create(this,e,this._def)}transform(e){return new lt({...L(this._def),schema:this,typeName:D.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Vr({...L(this._def),innerType:this,defaultValue:r,typeName:D.ZodDefault})}brand(){return new yi({typeName:D.ZodBranded,type:this,...L(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Jr({...L(this._def),innerType:this,catchValue:r,typeName:D.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return $i.create(this,e)}readonly(){return Wr.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},S$=/^c[^\s-]{8,}$/i,w$=/^[0-9a-z]+$/,z$=/^[0-9A-HJKMNP-TV-Z]{26}$/i,I$=/^[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,E$=/^[a-z0-9_-]{21}$/i,T$=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,P$=/^[-+]?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)?)??$/,O$=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,j$="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Zs,D$=/^(?:(?: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])$/,N$=/^(?:(?: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])$/,R$=/^(([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]))$/,A$=/^(([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])$/,M$=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,C$=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Lf="((\\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])))",U$=new RegExp(`^${Lf}$`);function qf(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 Z$(t){return new RegExp(`^${qf(t)}$`)}function L$(t){let e=`${Lf}T${qf(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 q$(t,e){return!!((e==="v4"||!e)&&D$.test(t)||(e==="v6"||!e)&&R$.test(t))}function F$(t,e){if(!T$.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,"="),o=JSON.parse(atob(n));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||e&&o.alg!==e)}catch{return!1}}function V$(t,e){return!!((e==="v4"||!e)&&N$.test(t)||(e==="v6"||!e)&&A$.test(t))}var Rr=class t extends K{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==w.string){let i=this._getOrReturnCtx(e);return x(i,{code:y.invalid_type,expected:w.string,received:i.parsedType}),M}let n=new Ee,o;for(let i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(o=this._getOrReturnCtx(e,o),x(o,{code:y.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){let a=e.data.length>i.value,s=e.data.lengthe.test(o),{validation:r,code:y.invalid_string,...T.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...T.errToObj(e)})}url(e){return this._addCheck({kind:"url",...T.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...T.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...T.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...T.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...T.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...T.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...T.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...T.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...T.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...T.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...T.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...T.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,...T.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,...T.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...T.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...T.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...T.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...T.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...T.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...T.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...T.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...T.errToObj(r)})}nonempty(e){return this.min(1,T.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 Rr({checks:[],typeName:D.ZodString,coerce:t?.coerce??!1,...L(t)});function J$(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,o=r>n?r:n,i=Number.parseInt(t.toFixed(o).replace(".","")),a=Number.parseInt(e.toFixed(o).replace(".",""));return i%a/10**o}var On=class t extends K{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)!==w.number){let i=this._getOrReturnCtx(e);return x(i,{code:y.invalid_type,expected:w.number,received:i.parsedType}),M}let n,o=new Ee;for(let i of this._def.checks)i.kind==="int"?X.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{code:y.invalid_type,expected:"integer",received:"float",message:i.message}),o.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),x(n,{code:y.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),o.dirty()):i.kind==="multipleOf"?J$(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),x(n,{code:y.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{code:y.not_finite,message:i.message}),o.dirty()):X.assertNever(i);return{status:o.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,T.toString(r))}gt(e,r){return this.setLimit("min",e,!1,T.toString(r))}lte(e,r){return this.setLimit("max",e,!0,T.toString(r))}lt(e,r){return this.setLimit("max",e,!1,T.toString(r))}setLimit(e,r,n,o){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:T.toString(o)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:T.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:T.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:T.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:T.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:T.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:T.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:T.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:T.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:T.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"&&X.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 On({checks:[],typeName:D.ZodNumber,coerce:t?.coerce||!1,...L(t)});var jn=class t extends K{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)!==w.bigint)return this._getInvalidInput(e);let n,o=new Ee;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),x(n,{code:y.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),o.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),x(n,{code:y.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):X.assertNever(i);return{status:o.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return x(r,{code:y.invalid_type,expected:w.bigint,received:r.parsedType}),M}gte(e,r){return this.setLimit("min",e,!0,T.toString(r))}gt(e,r){return this.setLimit("min",e,!1,T.toString(r))}lte(e,r){return this.setLimit("max",e,!0,T.toString(r))}lt(e,r){return this.setLimit("max",e,!1,T.toString(r))}setLimit(e,r,n,o){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:T.toString(o)}]})}_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:T.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:T.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:T.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:T.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:T.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 jn({checks:[],typeName:D.ZodBigInt,coerce:t?.coerce??!1,...L(t)});var Dn=class extends K{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==w.boolean){let n=this._getOrReturnCtx(e);return x(n,{code:y.invalid_type,expected:w.boolean,received:n.parsedType}),M}return Ne(e.data)}};Dn.create=t=>new Dn({typeName:D.ZodBoolean,coerce:t?.coerce||!1,...L(t)});var Nn=class t extends K{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==w.date){let i=this._getOrReturnCtx(e);return x(i,{code:y.invalid_type,expected:w.date,received:i.parsedType}),M}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return x(i,{code:y.invalid_date}),M}let n=new Ee,o;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(o=this._getOrReturnCtx(e,o),x(o,{code:y.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):X.assertNever(i);return{status:n.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:T.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:T.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 Nn({checks:[],coerce:t?.coerce||!1,typeName:D.ZodDate,...L(t)});var Rn=class extends K{_parse(e){if(this._getType(e)!==w.symbol){let n=this._getOrReturnCtx(e);return x(n,{code:y.invalid_type,expected:w.symbol,received:n.parsedType}),M}return Ne(e.data)}};Rn.create=t=>new Rn({typeName:D.ZodSymbol,...L(t)});var Ar=class extends K{_parse(e){if(this._getType(e)!==w.undefined){let n=this._getOrReturnCtx(e);return x(n,{code:y.invalid_type,expected:w.undefined,received:n.parsedType}),M}return Ne(e.data)}};Ar.create=t=>new Ar({typeName:D.ZodUndefined,...L(t)});var Mr=class extends K{_parse(e){if(this._getType(e)!==w.null){let n=this._getOrReturnCtx(e);return x(n,{code:y.invalid_type,expected:w.null,received:n.parsedType}),M}return Ne(e.data)}};Mr.create=t=>new Mr({typeName:D.ZodNull,...L(t)});var An=class extends K{constructor(){super(...arguments),this._any=!0}_parse(e){return Ne(e.data)}};An.create=t=>new An({typeName:D.ZodAny,...L(t)});var Gt=class extends K{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ne(e.data)}};Gt.create=t=>new Gt({typeName:D.ZodUnknown,...L(t)});var vt=class extends K{_parse(e){let r=this._getOrReturnCtx(e);return x(r,{code:y.invalid_type,expected:w.never,received:r.parsedType}),M}};vt.create=t=>new vt({typeName:D.ZodNever,...L(t)});var Mn=class extends K{_parse(e){if(this._getType(e)!==w.undefined){let n=this._getOrReturnCtx(e);return x(n,{code:y.invalid_type,expected:w.void,received:n.parsedType}),M}return Ne(e.data)}};Mn.create=t=>new Mn({typeName:D.ZodVoid,...L(t)});var Bt=class t extends K{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),o=this._def;if(r.parsedType!==w.array)return x(r,{code:y.invalid_type,expected:w.array,received:r.parsedType}),M;if(o.exactLength!==null){let a=r.data.length>o.exactLength.value,s=r.data.lengtho.maxLength.value&&(x(r,{code:y.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((a,s)=>o.type._parseAsync(new et(r,a,r.path,s)))).then(a=>Ee.mergeArray(n,a));let i=[...r.data].map((a,s)=>o.type._parseSync(new et(r,a,r.path,s)));return Ee.mergeArray(n,i)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:T.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:T.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:T.toString(r)}})}nonempty(e){return this.min(1,e)}};Bt.create=(t,e)=>new Bt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:D.ZodArray,...L(e)});function Nr(t){if(t instanceof He){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=ut.create(Nr(n))}return new He({...t._def,shape:()=>e})}else return t instanceof Bt?new Bt({...t._def,type:Nr(t.element)}):t instanceof ut?ut.create(Nr(t.unwrap())):t instanceof jt?jt.create(Nr(t.unwrap())):t instanceof Ot?Ot.create(t.items.map(e=>Nr(e))):t}var He=class t extends K{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=X.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==w.object){let u=this._getOrReturnCtx(e);return x(u,{code:y.invalid_type,expected:w.object,received:u.parsedType}),M}let{status:n,ctx:o}=this._processInputParams(e),{shape:i,keys:a}=this._getCached(),s=[];if(!(this._def.catchall instanceof vt&&this._def.unknownKeys==="strip"))for(let u in o.data)a.includes(u)||s.push(u);let c=[];for(let u of a){let l=i[u],d=o.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new et(o,d,o.path,u)),alwaysSet:u in o.data})}if(this._def.catchall instanceof vt){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of s)c.push({key:{status:"valid",value:l},value:{status:"valid",value:o.data[l]}});else if(u==="strict")s.length>0&&(x(o,{code:y.unrecognized_keys,keys:s}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of s){let d=o.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new et(o,d,o.path,l)),alwaysSet:l in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,p=await l.value;u.push({key:d,value:p,alwaysSet:l.alwaysSet})}return u}).then(u=>Ee.mergeObjectSync(n,u)):Ee.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return T.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let o=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:T.errToObj(e).message??o}:{message:o}}}:{}})}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:D.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 X.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 X.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Nr(this)}partial(e){let r={};for(let n of X.objectKeys(this.shape)){let o=this.shape[n];e&&!e[n]?r[n]=o:r[n]=o.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of X.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof ut;)i=i._def.innerType;r[n]=i}return new t({...this._def,shape:()=>r})}keyof(){return Ff(X.objectKeys(this.shape))}};He.create=(t,e)=>new He({shape:()=>t,unknownKeys:"strip",catchall:vt.create(),typeName:D.ZodObject,...L(e)});He.strictCreate=(t,e)=>new He({shape:()=>t,unknownKeys:"strict",catchall:vt.create(),typeName:D.ZodObject,...L(e)});He.lazycreate=(t,e)=>new He({shape:t,unknownKeys:"strip",catchall:vt.create(),typeName:D.ZodObject,...L(e)});var Cr=class extends K{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function o(i){for(let s of i)if(s.result.status==="valid")return s.result;for(let s of i)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let a=i.map(s=>new Ke(s.ctx.common.issues));return x(r,{code:y.invalid_union,unionErrors:a}),M}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(o);{let i,a=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!i&&(i={result:l,ctx:u}),u.common.issues.length&&a.push(u.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let s=a.map(c=>new Ke(c));return x(r,{code:y.invalid_union,unionErrors:s}),M}}get options(){return this._def.options}};Cr.create=(t,e)=>new Cr({options:t,typeName:D.ZodUnion,...L(e)});var Pt=t=>t instanceof Zr?Pt(t.schema):t instanceof lt?Pt(t.innerType()):t instanceof Lr?[t.value]:t instanceof qr?t.options:t instanceof Fr?X.objectValues(t.enum):t instanceof Vr?Pt(t._def.innerType):t instanceof Ar?[void 0]:t instanceof Mr?[null]:t instanceof ut?[void 0,...Pt(t.unwrap())]:t instanceof jt?[null,...Pt(t.unwrap())]:t instanceof yi||t instanceof Wr?Pt(t.unwrap()):t instanceof Jr?Pt(t._def.innerType):[],Ls=class t extends K{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==w.object)return x(r,{code:y.invalid_type,expected:w.object,received:r.parsedType}),M;let n=this.discriminator,o=r.data[n],i=this.optionsMap.get(o);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}):(x(r,{code:y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),M)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let o=new Map;for(let i of r){let a=Pt(i.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of a){if(o.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);o.set(s,i)}}return new t({typeName:D.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:o,...L(n)})}};function qs(t,e){let r=Tt(t),n=Tt(e);if(t===e)return{valid:!0,data:t};if(r===w.object&&n===w.object){let o=X.objectKeys(e),i=X.objectKeys(t).filter(s=>o.indexOf(s)!==-1),a={...t,...e};for(let s of i){let c=qs(t[s],e[s]);if(!c.valid)return{valid:!1};a[s]=c.data}return{valid:!0,data:a}}else if(r===w.array&&n===w.array){if(t.length!==e.length)return{valid:!1};let o=[];for(let i=0;i{if(Cs(i)||Cs(a))return M;let s=qs(i.value,a.value);return s.valid?((Us(i)||Us(a))&&r.dirty(),{status:r.value,value:s.data}):(x(n,{code:y.invalid_intersection_types}),M)};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])=>o(i,a)):o(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Ur.create=(t,e,r)=>new Ur({left:t,right:e,typeName:D.ZodIntersection,...L(r)});var Ot=class t extends K{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==w.array)return x(n,{code:y.invalid_type,expected:w.array,received:n.parsedType}),M;if(n.data.lengththis._def.items.length&&(x(n,{code:y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let i=[...n.data].map((a,s)=>{let c=this._def.items[s]||this._def.rest;return c?c._parse(new et(n,a,n.path,s)):null}).filter(a=>!!a);return n.common.async?Promise.all(i).then(a=>Ee.mergeArray(r,a)):Ee.mergeArray(r,i)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Ot.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ot({items:t,typeName:D.ZodTuple,rest:null,...L(e)})};var Fs=class t extends K{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!==w.object)return x(n,{code:y.invalid_type,expected:w.object,received:n.parsedType}),M;let o=[],i=this._def.keyType,a=this._def.valueType;for(let s in n.data)o.push({key:i._parse(new et(n,s,n.path,s)),value:a._parse(new et(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?Ee.mergeObjectAsync(r,o):Ee.mergeObjectSync(r,o)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof K?new t({keyType:e,valueType:r,typeName:D.ZodRecord,...L(n)}):new t({keyType:Rr.create(),valueType:e,typeName:D.ZodRecord,...L(r)})}},Cn=class extends K{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!==w.map)return x(n,{code:y.invalid_type,expected:w.map,received:n.parsedType}),M;let o=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([s,c],u)=>({key:o._parse(new et(n,s,n.path,[u,"key"])),value:i._parse(new et(n,c,n.path,[u,"value"]))}));if(n.common.async){let s=new Map;return Promise.resolve().then(async()=>{for(let c of a){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return M;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}})}else{let s=new Map;for(let c of a){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return M;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}}}};Cn.create=(t,e,r)=>new Cn({valueType:e,keyType:t,typeName:D.ZodMap,...L(r)});var Un=class t extends K{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==w.set)return x(n,{code:y.invalid_type,expected:w.set,received:n.parsedType}),M;let o=this._def;o.minSize!==null&&n.data.sizeo.maxSize.value&&(x(n,{code:y.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),r.dirty());let i=this._def.valueType;function a(c){let u=new Set;for(let l of c){if(l.status==="aborted")return M;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let s=[...n.data.values()].map((c,u)=>i._parse(new et(n,c,n.path,u)));return n.common.async?Promise.all(s).then(c=>a(c)):a(s)}min(e,r){return new t({...this._def,minSize:{value:e,message:T.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:T.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Un.create=(t,e)=>new Un({valueType:t,minSize:null,maxSize:null,typeName:D.ZodSet,...L(e)});var Vs=class t extends K{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==w.function)return x(r,{code:y.invalid_type,expected:w.function,received:r.parsedType}),M;function n(s,c){return _i({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Tn(),Ht].filter(u=>!!u),issueData:{code:y.invalid_arguments,argumentsError:c}})}function o(s,c){return _i({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Tn(),Ht].filter(u=>!!u),issueData:{code:y.invalid_return_type,returnTypeError:c}})}let i={errorMap:r.common.contextualErrorMap},a=r.data;if(this._def.returns instanceof mr){let s=this;return Ne(async function(...c){let u=new Ke([]),l=await s._def.args.parseAsync(c,i).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(a,this,l);return await s._def.returns._def.type.parseAsync(d,i).catch(f=>{throw u.addIssue(o(d,f)),u})})}else{let s=this;return Ne(function(...c){let u=s._def.args.safeParse(c,i);if(!u.success)throw new Ke([n(c,u.error)]);let l=Reflect.apply(a,this,u.data),d=s._def.returns.safeParse(l,i);if(!d.success)throw new Ke([o(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Ot.create(e).rest(Gt.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||Ot.create([]).rest(Gt.create()),returns:r||Gt.create(),typeName:D.ZodFunction,...L(n)})}},Zr=class extends K{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})}};Zr.create=(t,e)=>new Zr({getter:t,typeName:D.ZodLazy,...L(e)});var Lr=class extends K{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return x(r,{received:r.data,code:y.invalid_literal,expected:this._def.value}),M}return{status:"valid",value:e.data}}get value(){return this._def.value}};Lr.create=(t,e)=>new Lr({value:t,typeName:D.ZodLiteral,...L(e)});function Ff(t,e){return new qr({values:t,typeName:D.ZodEnum,...L(e)})}var qr=class t extends K{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return x(r,{expected:X.joinValues(n),received:r.parsedType,code:y.invalid_type}),M}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 x(r,{received:r.data,code:y.invalid_enum_value,options:n}),M}return Ne(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})}};qr.create=Ff;var Fr=class extends K{_parse(e){let r=X.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==w.string&&n.parsedType!==w.number){let o=X.objectValues(r);return x(n,{expected:X.joinValues(o),received:n.parsedType,code:y.invalid_type}),M}if(this._cache||(this._cache=new Set(X.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let o=X.objectValues(r);return x(n,{received:n.data,code:y.invalid_enum_value,options:o}),M}return Ne(e.data)}get enum(){return this._def.values}};Fr.create=(t,e)=>new Fr({values:t,typeName:D.ZodNativeEnum,...L(e)});var mr=class extends K{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==w.promise&&r.common.async===!1)return x(r,{code:y.invalid_type,expected:w.promise,received:r.parsedType}),M;let n=r.parsedType===w.promise?r.data:Promise.resolve(r.data);return Ne(n.then(o=>this._def.type.parseAsync(o,{path:r.path,errorMap:r.common.contextualErrorMap})))}};mr.create=(t,e)=>new mr({type:t,typeName:D.ZodPromise,...L(e)});var lt=class extends K{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===D.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),o=this._def.effect||null,i={addIssue:a=>{x(n,a),a.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),o.type==="preprocess"){let a=o.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async s=>{if(r.value==="aborted")return M;let c=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return c.status==="aborted"?M:c.status==="dirty"?Dr(c.value):r.value==="dirty"?Dr(c.value):c});{if(r.value==="aborted")return M;let s=this._def.schema._parseSync({data:a,path:n.path,parent:n});return s.status==="aborted"?M:s.status==="dirty"?Dr(s.value):r.value==="dirty"?Dr(s.value):s}}if(o.type==="refinement"){let a=s=>{let c=o.refinement(s,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?M:(s.status==="dirty"&&r.dirty(),a(s.value),{status:r.value,value:s.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>s.status==="aborted"?M:(s.status==="dirty"&&r.dirty(),a(s.value).then(()=>({status:r.value,value:s.value}))))}if(o.type==="transform")if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!fr(a))return M;let s=o.transform(a.value,i);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:s}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>fr(a)?Promise.resolve(o.transform(a.value,i)).then(s=>({status:r.value,value:s})):M);X.assertNever(o)}};lt.create=(t,e,r)=>new lt({schema:t,typeName:D.ZodEffects,effect:e,...L(r)});lt.createWithPreprocess=(t,e,r)=>new lt({schema:e,effect:{type:"preprocess",transform:t},typeName:D.ZodEffects,...L(r)});var ut=class extends K{_parse(e){return this._getType(e)===w.undefined?Ne(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ut.create=(t,e)=>new ut({innerType:t,typeName:D.ZodOptional,...L(e)});var jt=class extends K{_parse(e){return this._getType(e)===w.null?Ne(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};jt.create=(t,e)=>new jt({innerType:t,typeName:D.ZodNullable,...L(e)});var Vr=class extends K{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===w.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Vr.create=(t,e)=>new Vr({innerType:t,typeName:D.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...L(e)});var Jr=class extends K{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},o=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Pn(o)?o.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Ke(n.common.issues)},input:n.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Ke(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Jr.create=(t,e)=>new Jr({innerType:t,typeName:D.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...L(e)});var Zn=class extends K{_parse(e){if(this._getType(e)!==w.nan){let n=this._getOrReturnCtx(e);return x(n,{code:y.invalid_type,expected:w.nan,received:n.parsedType}),M}return{status:"valid",value:e.data}}};Zn.create=t=>new Zn({typeName:D.ZodNaN,...L(t)});var yi=class extends K{_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}},$i=class t extends K{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?M:i.status==="dirty"?(r.dirty(),Dr(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{let o=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?M:o.status==="dirty"?(r.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:D.ZodPipeline})}},Wr=class extends K{_parse(e){let r=this._def.innerType._parse(e),n=o=>(fr(o)&&(o.value=Object.freeze(o.value)),o);return Pn(r)?r.then(o=>n(o)):n(r)}unwrap(){return this._def.innerType}};Wr.create=(t,e)=>new Wr({innerType:t,typeName:D.ZodReadonly,...L(e)});var YP={object:He.lazycreate},D;(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"})(D||(D={}));var QP=Rr.create,eO=On.create,tO=Zn.create,rO=jn.create,nO=Dn.create,oO=Nn.create,iO=Rn.create,aO=Ar.create,sO=Mr.create,cO=An.create,uO=Gt.create,lO=vt.create,dO=Mn.create,pO=Bt.create,W$=He.create,fO=He.strictCreate,mO=Cr.create,hO=Ls.create,gO=Ur.create,vO=Ot.create,_O=Fs.create,yO=Cn.create,$O=Un.create,bO=Vs.create,xO=Zr.create,kO=Lr.create,SO=qr.create,wO=Fr.create,zO=mr.create,IO=lt.create,EO=ut.create,TO=jt.create,PO=lt.createWithPreprocess,OO=$i.create;var Vf=Object.freeze({status:"aborted"});function m(t,e,r){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(t))return;s._zod.traits.add(t),e(s,c);let u=a.prototype,l=Object.keys(u);for(let d=0;dr?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(t)}),Object.defineProperty(a,"name",{value:t}),a}var _t=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},hr=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},bi={};function be(t){return t&&Object.assign(bi,t),bi}var $={};In($,{BIGINT_FORMAT_RANGES:()=>ec,Class:()=>Ws,NUMBER_FORMAT_RANGES:()=>Qs,aborted:()=>er,allowsEval:()=>Gs,assert:()=>Q$,assertEqual:()=>G$,assertIs:()=>X$,assertNever:()=>Y$,assertNotEqual:()=>B$,assignProp:()=>Yt,base64ToUint8Array:()=>Yf,base64urlToUint8Array:()=>lb,cached:()=>Hr,captureStackTrace:()=>ki,cleanEnum:()=>ub,cleanRegex:()=>Fn,clone:()=>Re,cloneDef:()=>tb,createTransparentProxy:()=>sb,defineLazy:()=>q,esc:()=>xi,escapeRegex:()=>tt,extend:()=>Hf,finalizeIssue:()=>qe,floatSafeRemainder:()=>Ks,getElementAtPath:()=>rb,getEnumValues:()=>qn,getLengthableOrigin:()=>Wn,getParsedType:()=>ab,getSizableOrigin:()=>Jn,hexToUint8Array:()=>pb,isObject:()=>gr,isPlainObject:()=>Qt,issue:()=>Gr,joinValues:()=>N,jsonStringifyReplacer:()=>Kr,merge:()=>cb,mergeDefs:()=>Dt,normalizeParams:()=>k,nullish:()=>Xt,numKeys:()=>ib,objectClone:()=>eb,omit:()=>Kf,optionalKeys:()=>Ys,parsedType:()=>C,partial:()=>Bf,pick:()=>Wf,prefixIssues:()=>Ge,primitiveTypes:()=>Xs,promiseAllObject:()=>nb,propertyKeyTypes:()=>Vn,randomString:()=>ob,required:()=>Xf,safeExtend:()=>Gf,shallowClone:()=>Bs,slugify:()=>Hs,stringifyPrimitive:()=>R,uint8ArrayToBase64:()=>Qf,uint8ArrayToBase64url:()=>db,uint8ArrayToHex:()=>fb,unwrapMessage:()=>Ln});function G$(t){return t}function B$(t){return t}function X$(t){}function Y$(t){throw new Error("Unexpected value in exhaustive check")}function Q$(t){}function qn(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,o])=>e.indexOf(+n)===-1).map(([n,o])=>o)}function N(t,e="|"){return t.map(r=>R(r)).join(e)}function Kr(t,e){return typeof e=="bigint"?e.toString():e}function Hr(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Xt(t){return t==null}function Fn(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Ks(t,e){let r=(t.toString().split(".")[1]||"").length,n=e.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let c=n.match(/\d?e-(\d?)/);c?.[1]&&(o=Number.parseInt(c[1]))}let i=r>o?r:o,a=Number.parseInt(t.toFixed(i).replace(".","")),s=Number.parseInt(e.toFixed(i).replace(".",""));return a%s/10**i}var Jf=Symbol("evaluating");function q(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Jf)return n===void 0&&(n=Jf,n=r()),n},set(o){Object.defineProperty(t,e,{value:o})},configurable:!0})}function eb(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Yt(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Dt(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function tb(t){return Dt(t._zod.def)}function rb(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function nb(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i{};function gr(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Gs=Hr(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Qt(t){if(gr(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(gr(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Bs(t){return Qt(t)?{...t}:Array.isArray(t)?[...t]:t}function ib(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var ab=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}`)}},Vn=new Set(["string","number","symbol"]),Xs=new Set(["string","number","bigint","boolean","symbol","undefined"]);function tt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Re(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function k(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 sb(t){let e;return new Proxy({},{get(r,n,o){return e??(e=t()),Reflect.get(e,n,o)},set(r,n,o,i){return e??(e=t()),Reflect.set(e,n,o,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,o){return e??(e=t()),Reflect.defineProperty(e,n,o)}})}function R(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function Ys(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var Qs={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]},ec={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Wf(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=Dt(t._zod.def,{get shape(){let a={};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(a[s]=r.shape[s])}return Yt(this,"shape",a),a},checks:[]});return Re(t,i)}function Kf(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=Dt(t._zod.def,{get shape(){let a={...t._zod.def.shape};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete a[s]}return Yt(this,"shape",a),a},checks:[]});return Re(t,i)}function Hf(t,e){if(!Qt(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let i=t._zod.def.shape;for(let a in e)if(Object.getOwnPropertyDescriptor(i,a)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=Dt(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return Yt(this,"shape",i),i}});return Re(t,o)}function Gf(t,e){if(!Qt(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=Dt(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Yt(this,"shape",n),n}});return Re(t,r)}function cb(t,e){let r=Dt(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Yt(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:[]});return Re(t,r)}function Bf(t,e,r){let o=e._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let a=Dt(e._zod.def,{get shape(){let s=e._zod.def.shape,c={...s};if(r)for(let u in r){if(!(u in s))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=t?new t({type:"optional",innerType:s[u]}):s[u])}else for(let u in s)c[u]=t?new t({type:"optional",innerType:s[u]}):s[u];return Yt(this,"shape",c),c},checks:[]});return Re(e,a)}function Xf(t,e,r){let n=Dt(e._zod.def,{get shape(){let o=e._zod.def.shape,i={...o};if(r)for(let a in r){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=new t({type:"nonoptional",innerType:o[a]}))}else for(let a in o)i[a]=new t({type:"nonoptional",innerType:o[a]});return Yt(this,"shape",i),i}});return Re(e,n)}function er(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ln(t){return typeof t=="string"?t:t?.message}function qe(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let o=Ln(t.inst?._zod.def?.error?.(t))??Ln(e?.error?.(t))??Ln(r.customError?.(t))??Ln(r.localeError?.(t))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Jn(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Wn(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function C(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let r=t;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return e}function Gr(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function ub(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Yf(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;ne.toString(16).padStart(2,"0")).join("")}var Ws=class{constructor(...e){}};var em=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,Kr,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Si=m("$ZodError",em),Kn=m("$ZodError",em,{Parent:Error});function wi(t,e=r=>r.message){let r={},n=[];for(let o of t.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(e(o))):n.push(e(o));return{formErrors:n,fieldErrors:r}}function zi(t,e=r=>r.message){let r={_errors:[]},n=o=>{for(let i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(a=>n({issues:a}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)r._errors.push(e(i));else{let a=r,s=0;for(;s(e,r,n,o)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new _t;if(a.issues.length){let s=new(o?.Err??t)(a.issues.map(c=>qe(c,i,be())));throw ki(s,o?.callee),s}return a.value},Gn=Hn(Kn),Bn=t=>async(e,r,n,o)=>{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 s=new(o?.Err??t)(a.issues.map(c=>qe(c,i,be())));throw ki(s,o?.callee),s}return a.value},Xn=Bn(Kn),Yn=t=>(e,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new _t;return i.issues.length?{success:!1,error:new(t??Si)(i.issues.map(a=>qe(a,o,be())))}:{success:!0,data:i.value}},Br=Yn(Kn),Qn=t=>async(e,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>qe(a,o,be())))}:{success:!0,data:i.value}},eo=Qn(Kn),tm=t=>(e,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Hn(t)(e,r,o)};var rm=t=>(e,r,n)=>Hn(t)(e,r,n);var nm=t=>async(e,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Bn(t)(e,r,o)};var om=t=>async(e,r,n)=>Bn(t)(e,r,n);var im=t=>(e,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Yn(t)(e,r,o)};var am=t=>(e,r,n)=>Yn(t)(e,r,n);var sm=t=>async(e,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Qn(t)(e,r,o)};var cm=t=>async(e,r,n)=>Qn(t)(e,r,n);var rt={};In(rt,{base64:()=>gc,base64url:()=>Ii,bigint:()=>xc,boolean:()=>Sc,browserEmail:()=>xb,cidrv4:()=>mc,cidrv6:()=>hc,cuid:()=>tc,cuid2:()=>rc,date:()=>_c,datetime:()=>$c,domain:()=>wb,duration:()=>sc,e164:()=>vc,email:()=>uc,emoji:()=>lc,extendedDuration:()=>hb,guid:()=>cc,hex:()=>zb,hostname:()=>Sb,html5Email:()=>yb,idnEmail:()=>bb,integer:()=>kc,ipv4:()=>dc,ipv6:()=>pc,ksuid:()=>ic,lowercase:()=>Ic,mac:()=>fc,md5_base64:()=>Eb,md5_base64url:()=>Tb,md5_hex:()=>Ib,nanoid:()=>ac,null:()=>wc,number:()=>Ei,rfc5322Email:()=>$b,sha1_base64:()=>Ob,sha1_base64url:()=>jb,sha1_hex:()=>Pb,sha256_base64:()=>Nb,sha256_base64url:()=>Rb,sha256_hex:()=>Db,sha384_base64:()=>Mb,sha384_base64url:()=>Cb,sha384_hex:()=>Ab,sha512_base64:()=>Zb,sha512_base64url:()=>Lb,sha512_hex:()=>Ub,string:()=>bc,time:()=>yc,ulid:()=>nc,undefined:()=>zc,unicodeEmail:()=>um,uppercase:()=>Ec,uuid:()=>vr,uuid4:()=>gb,uuid6:()=>vb,uuid7:()=>_b,xid:()=>oc});var tc=/^[cC][^\s-]{8,}$/,rc=/^[0-9a-z]+$/,nc=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,oc=/^[0-9a-vA-V]{20}$/,ic=/^[A-Za-z0-9]{27}$/,ac=/^[a-zA-Z0-9_-]{21}$/,sc=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,hb=/^[-+]?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)?)??$/,cc=/^([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})$/,vr=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|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,gb=vr(4),vb=vr(6),_b=vr(7),uc=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,yb=/^[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])?)*$/,$b=/^(([^<>()\[\]\\.,;:\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,}))$/,um=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,bb=um,xb=/^[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])?)*$/,kb="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function lc(){return new RegExp(kb,"u")}var dc=/^(?:(?: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])$/,pc=/^(([0-9a-fA-F]{1,4}:){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}|:))$/,fc=t=>{let e=tt(t??":");return new RegExp(`^(?:[0-9A-F]{2}${e}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${e}){5}[0-9a-f]{2}$`)},mc=/^((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])$/,hc=/^(([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])$/,gc=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ii=/^[A-Za-z0-9_-]*$/,Sb=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,wb=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,vc=/^\+[1-9]\d{6,14}$/,lm="(?:(?:\\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])))",_c=new RegExp(`^${lm}$`);function dm(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 yc(t){return new RegExp(`^${dm(t)}$`)}function $c(t){let e=dm({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${lm}T(?:${n})$`)}var bc=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},xc=/^-?\d+n?$/,kc=/^-?\d+$/,Ei=/^-?\d+(?:\.\d+)?$/,Sc=/^(?:true|false)$/i,wc=/^null$/i;var zc=/^undefined$/i;var Ic=/^[^A-Z]*$/,Ec=/^[^a-z]*$/,zb=/^[0-9a-fA-F]*$/;function to(t,e){return new RegExp(`^[A-Za-z0-9+/]{${t}}${e}$`)}function ro(t){return new RegExp(`^[A-Za-z0-9_-]{${t}}$`)}var Ib=/^[0-9a-fA-F]{32}$/,Eb=to(22,"=="),Tb=ro(22),Pb=/^[0-9a-fA-F]{40}$/,Ob=to(27,"="),jb=ro(27),Db=/^[0-9a-fA-F]{64}$/,Nb=to(43,"="),Rb=ro(43),Ab=/^[0-9a-fA-F]{96}$/,Mb=to(64,""),Cb=ro(64),Ub=/^[0-9a-fA-F]{128}$/,Zb=to(86,"=="),Lb=ro(86);var se=m("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),fm={number:"number",bigint:"bigint",object:"date"},Tc=m("$ZodCheckLessThan",(t,e)=>{se.init(t,e);let r=fm[typeof e.value];t._zod.onattach.push(n=>{let o=n._zod.bag,i=(e.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{se.init(t,e);let r=fm[typeof e.value];t._zod.onattach.push(n=>{let o=n._zod.bag,i=(e.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?o.minimum=e.value:o.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:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),mm=m("$ZodCheckMultipleOf",(t,e)=>{se.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):Ks(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})}}),hm=m("$ZodCheckNumberFormat",(t,e)=>{se.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[o,i]=Qs[e.format];t._zod.onattach.push(a=>{let s=a._zod.bag;s.format=e.format,s.minimum=o,s.maximum=i,r&&(s.pattern=kc)}),t._zod.check=a=>{let s=a.value;if(r){if(!Number.isInteger(s)){a.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:s,inst:t});return}if(!Number.isSafeInteger(s)){s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}si&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:t,continue:!e.abort})}}),gm=m("$ZodCheckBigIntFormat",(t,e)=>{se.init(t,e);let[r,n]=ec[e.format];t._zod.onattach.push(o=>{let i=o._zod.bag;i.format=e.format,i.minimum=r,i.maximum=n}),t._zod.check=o=>{let i=o.value;in&&o.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inclusive:!0,inst:t,continue:!e.abort})}}),vm=m("$ZodCheckMaxSize",(t,e)=>{var r;se.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.size!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let o=n.value;o.size<=e.maximum||n.issues.push({origin:Jn(o),code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),_m=m("$ZodCheckMinSize",(t,e)=>{var r;se.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.size!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>o&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let o=n.value;o.size>=e.minimum||n.issues.push({origin:Jn(o),code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),ym=m("$ZodCheckSizeEquals",(t,e)=>{var r;se.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.size!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=e.size,o.maximum=e.size,o.size=e.size}),t._zod.check=n=>{let o=n.value,i=o.size;if(i===e.size)return;let a=i>e.size;n.issues.push({origin:Jn(o),...a?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),$m=m("$ZodCheckMaxLength",(t,e)=>{var r;se.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let o=n.value;if(o.length<=e.maximum)return;let a=Wn(o);n.issues.push({origin:a,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),bm=m("$ZodCheckMinLength",(t,e)=>{var r;se.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>o&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let o=n.value;if(o.length>=e.minimum)return;let a=Wn(o);n.issues.push({origin:a,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:t,continue:!e.abort})}}),xm=m("$ZodCheckLengthEquals",(t,e)=>{var r;se.init(t,e),(r=t._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.length!==void 0}),t._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=e.length,o.maximum=e.length,o.length=e.length}),t._zod.check=n=>{let o=n.value,i=o.length;if(i===e.length)return;let a=Wn(o),s=i>e.length;n.issues.push({origin:a,...s?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),no=m("$ZodCheckStringFormat",(t,e)=>{var r,n;se.init(t,e),t._zod.onattach.push(o=>{let i=o._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=o=>{e.pattern.lastIndex=0,!e.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:e.format,input:o.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),km=m("$ZodCheckRegex",(t,e)=>{no.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})}}),Sm=m("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Ic),no.init(t,e)}),wm=m("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Ec),no.init(t,e)}),zm=m("$ZodCheckIncludes",(t,e)=>{se.init(t,e);let r=tt(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=o=>{o.value.includes(e.includes,e.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:o.value,inst:t,continue:!e.abort})}}),Im=m("$ZodCheckStartsWith",(t,e)=>{se.init(t,e);let r=new RegExp(`^${tt(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.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})}}),Em=m("$ZodCheckEndsWith",(t,e)=>{se.init(t,e);let r=new RegExp(`.*${tt(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.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 pm(t,e,r){t.issues.length&&e.issues.push(...Ge(r,t.issues))}var Tm=m("$ZodCheckProperty",(t,e)=>{se.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(o=>pm(o,r,e.property));pm(n,r,e.property)}}),Pm=m("$ZodCheckMimeType",(t,e)=>{se.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,continue:!e.abort})}}),Om=m("$ZodCheckOverwrite",(t,e)=>{se.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Ti=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),o=Math.min(...n.map(a=>a.length-a.trimStart().length)),i=n.map(a=>a.slice(o)).map(a=>" ".repeat(this.indent*2)+a);for(let a of i)this.content.push(a)}compile(){let e=Function,r=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new e(...r,o.join(` -`))}};var Dm={major:4,minor:3,patch:6};var Z=m("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Dm;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let o of n)for(let i of o._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 o=(a,s,c)=>{let u=er(a),l;for(let d of s){if(d._zod.def.when){if(!d._zod.def.when(a))continue}else if(u)continue;let p=a.issues.length,f=d._zod.check(a);if(f instanceof Promise&&c?.async===!1)throw new _t;if(l||f instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await f,a.issues.length!==p&&(u||(u=er(a,p)))});else{if(a.issues.length===p)continue;u||(u=er(a,p))}}return l?l.then(()=>a):a},i=(a,s,c)=>{if(er(a))return a.aborted=!0,a;let u=o(s,n,c);if(u instanceof Promise){if(c.async===!1)throw new _t;return u.then(l=>t._zod.parse(l,c))}return t._zod.parse(u,c)};t._zod.run=(a,s)=>{if(s.skipChecks)return t._zod.parse(a,s);if(s.direction==="backward"){let u=t._zod.parse({value:a.value,issues:[]},{...s,skipChecks:!0});return u instanceof Promise?u.then(l=>i(l,a,s)):i(u,a,s)}let c=t._zod.parse(a,s);if(c instanceof Promise){if(s.async===!1)throw new _t;return c.then(u=>o(u,n,s))}return o(c,n,s)}}q(t,"~standard",()=>({validate:o=>{try{let i=Br(t,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return eo(t,o).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}))}),_r=m("$ZodString",(t,e)=>{Z.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??bc(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}}),oe=m("$ZodStringFormat",(t,e)=>{no.init(t,e),_r.init(t,e)}),jc=m("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=cc),oe.init(t,e)}),Dc=m("$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=vr(n))}else e.pattern??(e.pattern=vr());oe.init(t,e)}),Nc=m("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=uc),oe.init(t,e)}),Rc=m("$ZodURL",(t,e)=>{oe.init(t,e),t._zod.check=r=>{try{let n=r.value.trim(),o=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),Ac=m("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=lc()),oe.init(t,e)}),Mc=m("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=ac),oe.init(t,e)}),Cc=m("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=tc),oe.init(t,e)}),Uc=m("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=rc),oe.init(t,e)}),Zc=m("$ZodULID",(t,e)=>{e.pattern??(e.pattern=nc),oe.init(t,e)}),Lc=m("$ZodXID",(t,e)=>{e.pattern??(e.pattern=oc),oe.init(t,e)}),qc=m("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=ic),oe.init(t,e)}),Fc=m("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=$c(e)),oe.init(t,e)}),Vc=m("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=_c),oe.init(t,e)}),Jc=m("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=yc(e)),oe.init(t,e)}),Wc=m("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=sc),oe.init(t,e)}),Kc=m("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=dc),oe.init(t,e),t._zod.bag.format="ipv4"}),Hc=m("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=pc),oe.init(t,e),t._zod.bag.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})}}}),Gc=m("$ZodMAC",(t,e)=>{e.pattern??(e.pattern=fc(e.delimiter)),oe.init(t,e),t._zod.bag.format="mac"}),Bc=m("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=mc),oe.init(t,e)}),Xc=m("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=hc),oe.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let a=Number(i);if(`${a}`!==i)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function Jm(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var Yc=m("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=gc),oe.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{Jm(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function qb(t){if(!Ii.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return Jm(r)}var Qc=m("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Ii),oe.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{qb(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),eu=m("$ZodE164",(t,e)=>{e.pattern??(e.pattern=vc),oe.init(t,e)});function Fb(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||e&&(!("alg"in o)||o.alg!==e))}catch{return!1}}var tu=m("$ZodJWT",(t,e)=>{oe.init(t,e),t._zod.check=r=>{Fb(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),ru=m("$ZodCustomStringFormat",(t,e)=>{oe.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})}}),Ri=m("$ZodNumber",(t,e)=>{Z.init(t,e),t._zod.pattern=t._zod.bag.pattern??Ei,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:t,...i?{received:i}:{}}),r}}),nu=m("$ZodNumberFormat",(t,e)=>{hm.init(t,e),Ri.init(t,e)}),oo=m("$ZodBoolean",(t,e)=>{Z.init(t,e),t._zod.pattern=Sc,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:t}),r}}),Ai=m("$ZodBigInt",(t,e)=>{Z.init(t,e),t._zod.pattern=xc,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}}),ou=m("$ZodBigIntFormat",(t,e)=>{gm.init(t,e),Ai.init(t,e)}),iu=m("$ZodSymbol",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:t}),r}}),au=m("$ZodUndefined",(t,e)=>{Z.init(t,e),t._zod.pattern=zc,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:t}),r}}),su=m("$ZodNull",(t,e)=>{Z.init(t,e),t._zod.pattern=wc,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:t}),r}}),cu=m("$ZodAny",(t,e)=>{Z.init(t,e),t._zod.parse=r=>r}),uu=m("$ZodUnknown",(t,e)=>{Z.init(t,e),t._zod.parse=r=>r}),lu=m("$ZodNever",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),du=m("$ZodVoid",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:t}),r}}),pu=m("$ZodDate",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:t}),r}});function Nm(t,e,r){t.issues.length&&e.issues.push(...Ge(r,t.issues)),e.value[r]=t.value}var fu=m("$ZodArray",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:t}),r;r.value=Array(o.length);let i=[];for(let a=0;aNm(u,r,a))):Nm(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Ni(t,e,r,n,o){if(t.issues.length){if(o&&!(r in n))return;e.issues.push(...Ge(r,t.issues))}t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}function Wm(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=Ys(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function Km(t,e,r,n,o,i){let a=[],s=o.keySet,c=o.catchall._zod,u=c.def.type,l=c.optout==="optional";for(let d in e){if(s.has(d))continue;if(u==="never"){a.push(d);continue}let p=c.run({value:e[d],issues:[]},n);p instanceof Promise?t.push(p.then(f=>Ni(f,r,d,e,l))):Ni(p,r,d,e,l)}return a.length&&r.issues.push({code:"unrecognized_keys",keys:a,input:e,inst:i}),t.length?Promise.all(t).then(()=>r):r}var Hm=m("$ZodObject",(t,e)=>{if(Z.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let s=e.shape;Object.defineProperty(e,"shape",{get:()=>{let c={...s};return Object.defineProperty(e,"shape",{value:c}),c}})}let n=Hr(()=>Wm(e));q(t._zod,"propValues",()=>{let s=e.shape,c={};for(let u in s){let l=s[u]._zod;if(l.values){c[u]??(c[u]=new Set);for(let d of l.values)c[u].add(d)}}return c});let o=gr,i=e.catchall,a;t._zod.parse=(s,c)=>{a??(a=n.value);let u=s.value;if(!o(u))return s.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),s;s.value={};let l=[],d=a.shape;for(let p of a.keys){let f=d[p],g=f._zod.optout==="optional",h=f._zod.run({value:u[p],issues:[]},c);h instanceof Promise?l.push(h.then(_=>Ni(_,s,p,u,g))):Ni(h,s,p,u,g)}return i?Km(l,u,s,c,n.value,t):l.length?Promise.all(l).then(()=>s):s}}),Gm=m("$ZodObjectJIT",(t,e)=>{Hm.init(t,e);let r=t._zod.parse,n=Hr(()=>Wm(e)),o=p=>{let f=new Ti(["shape","payload","ctx"]),g=n.value,h=I=>{let A=xi(I);return`shape[${A}]._zod.run({ value: input[${A}], issues: [] }, ctx)`};f.write("const input = payload.value;");let _=Object.create(null),b=0;for(let I of g.keys)_[I]=`key_${b++}`;f.write("const newResult = {};");for(let I of g.keys){let A=_[I],j=xi(I),de=p[I]?._zod?.optout==="optional";f.write(`const ${A} = ${h(I)};`),de?f.write(` +`+JSON.stringify(i,null,2):l=" "+this.formatData(i));let d="";if(o){let{sessionId:p,memorySessionId:g,correlationId:h,..._}=o;Object.keys(_).length>0&&(d=` {${Object.entries(_).map(([E,I])=>`${E}=${I}`).join(", ")}}`)}let m=`[${a}] [${s}] [${c}] ${u}${n}${d}${l}`;if(this.logFilePath)try{(0,Et.appendFileSync)(this.logFilePath,m+` +`,"utf8")}catch(p){process.stderr.write(`[LOGGER] Failed to write to log file: ${p} +`)}else process.stderr.write(m+` +`)}debug(t,r,n,o){this.log(0,t,r,n,o)}info(t,r,n,o){this.log(1,t,r,n,o)}warn(t,r,n,o){this.log(2,t,r,n,o)}error(t,r,n,o){this.log(3,t,r,n,o)}dataIn(t,r,n,o){this.info(t,`\u2192 ${r}`,n,o)}dataOut(t,r,n,o){this.info(t,`\u2190 ${r}`,n,o)}success(t,r,n,o){this.info(t,`\u2713 ${r}`,n,o)}failure(t,r,n,o){this.error(t,`\u2717 ${r}`,n,o)}timing(t,r,n,o){this.info(t,`\u23F1 ${r}`,o,{duration:`${n}ms`})}happyPathError(t,r,n,o,i=""){let u=((new Error().stack||"").split(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",d={...n,location:l};return this.warn(t,`[HAPPY-PATH] ${r}`,d,o),i}},ve=new As;var X;(function(e){e.assertEqual=o=>{};function t(o){}e.assertIs=t;function r(o){throw new Error}e.assertNever=r,e.arrayToEnum=o=>{let i={};for(let a of o)i[a]=a;return i},e.getValidEnumValues=o=>{let i=e.objectKeys(o).filter(s=>typeof o[o[s]]!="number"),a={};for(let s of i)a[s]=o[s];return e.objectValues(a)},e.objectValues=o=>e.objectKeys(o).map(function(i){return o[i]}),e.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{let i=[];for(let a in o)Object.prototype.hasOwnProperty.call(o,a)&&i.push(a);return i},e.find=(o,i)=>{for(let a of o)if(i(a))return a},e.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function n(o,i=" | "){return o.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}e.joinValues=n,e.jsonStringifyReplacer=(o,i)=>typeof i=="bigint"?i.toString():i})(X||(X={}));var Cf;(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(Cf||(Cf={}));var w=X.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Tt=e=>{switch(typeof e){case"undefined":return w.undefined;case"string":return w.string;case"number":return Number.isNaN(e)?w.nan:w.number;case"boolean":return w.boolean;case"function":return w.function;case"bigint":return w.bigint;case"symbol":return w.symbol;case"object":return Array.isArray(e)?w.array:e===null?w.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?w.promise:typeof Map<"u"&&e instanceof Map?w.map:typeof Set<"u"&&e instanceof Set?w.set:typeof Date<"u"&&e instanceof Date?w.date:w.object;default:return w.unknown}};var y=X.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"]);var Ke=class e extends Error{get errors(){return this.issues}constructor(t){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=t}format(t){let r=t||function(i){return i.message},n={_errors:[]},o=i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(o);else if(a.code==="invalid_return_type")o(a.returnTypeError);else if(a.code==="invalid_arguments")o(a.argumentsError);else if(a.path.length===0)n._errors.push(r(a));else{let s=n,c=0;for(;cr.message){let r=Object.create(null),n=[];for(let o of this.issues)if(o.path.length>0){let i=o.path[0];r[i]=r[i]||[],r[i].push(t(o))}else n.push(t(o));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Ke.create=e=>new Ke(e);var g$=(e,t)=>{let r;switch(e.code){case y.invalid_type:e.received===w.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case y.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,X.jsonStringifyReplacer)}`;break;case y.unrecognized_keys:r=`Unrecognized key(s) in object: ${X.joinValues(e.keys,", ")}`;break;case y.invalid_union:r="Invalid input";break;case y.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${X.joinValues(e.options)}`;break;case y.invalid_enum_value:r=`Invalid enum value. Expected ${X.joinValues(e.options)}, received '${e.received}'`;break;case y.invalid_arguments:r="Invalid function arguments";break;case y.invalid_return_type:r="Invalid function return type";break;case y.invalid_date:r="Invalid date";break;case y.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:X.assertNever(e.validation):e.validation!=="regex"?r=`Invalid ${e.validation}`:r="Invalid";break;case y.too_small:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:r="Invalid input";break;case y.too_big:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?r=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:r="Invalid input";break;case y.custom:r="Invalid input";break;case y.invalid_intersection_types:r="Intersection results could not be merged";break;case y.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case y.not_finite:r="Number must be finite";break;default:r=t.defaultError,X.assertNever(e)}return{message:r}},Ht=g$;var v$=Ht;function In(){return v$}var hi=e=>{let{data:t,path:r,errorMaps:n,issueData:o}=e,i=[...r,...o.path||[]],a={...o,path:i};if(o.message!==void 0)return{...o,path:i,message:o.message};let s="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)s=u(a,{data:t,defaultError:s}).message;return{...o,path:i,message:s}};function x(e,t){let r=In(),n=hi({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===Ht?void 0:Ht].filter(o=>!!o)});e.common.issues.push(n)}var Ee=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,r){let n=[];for(let o of r){if(o.status==="aborted")return M;o.status==="dirty"&&t.dirty(),n.push(o.value)}return{status:t.value,value:n}}static async mergeObjectAsync(t,r){let n=[];for(let o of r){let i=await o.key,a=await o.value;n.push({key:i,value:a})}return e.mergeObjectSync(t,n)}static mergeObjectSync(t,r){let n={};for(let o of r){let{key:i,value:a}=o;if(i.status==="aborted"||a.status==="aborted")return M;i.status==="dirty"&&t.dirty(),a.status==="dirty"&&t.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||o.alwaysSet)&&(n[i.value]=a.value)}return{status:t.value,value:n}}},M=Object.freeze({status:"aborted"}),Dr=e=>({status:"dirty",value:e}),Ne=e=>({status:"valid",value:e}),Ms=e=>e.status==="aborted",Cs=e=>e.status==="dirty",fr=e=>e.status==="valid",En=e=>typeof Promise<"u"&&e instanceof Promise;var T;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(T||(T={}));var et=class{constructor(t,r,n,o){this._cachedPath=[],this.parent=t,this.data=r,this._path=n,this._key=o}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}},Uf=(e,t)=>{if(fr(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Ke(e.common.issues);return this._error=r,this._error}}};function L(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:n,description:o}=e;if(t&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:o}:{errorMap:(a,s)=>{let{message:c}=e;return a.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:c??n??s.defaultError}:a.code!=="invalid_type"?{message:s.defaultError}:{message:c??r??s.defaultError}},description:o}}var K=class{get description(){return this._def.description}_getType(t){return Tt(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:Tt(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Ee,ctx:{common:t.parent.common,data:t.data,parsedType:Tt(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if(En(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(t){let r=this._parse(t);return Promise.resolve(r)}parse(t,r){let n=this.safeParse(t,r);if(n.success)return n.data;throw n.error}safeParse(t,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Tt(t)},o=this._parseSync({data:t,path:n.path,parent:n});return Uf(n,o)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Tt(t)};if(!this["~standard"].async)try{let n=this._parseSync({data:t,path:[],parent:r});return fr(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:t,path:[],parent:r}).then(n=>fr(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(t,r){let n=await this.safeParseAsync(t,r);if(n.success)return n.data;throw n.error}async safeParseAsync(t,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Tt(t)},o=this._parse({data:t,path:n.path,parent:n}),i=await(En(o)?o:Promise.resolve(o));return Uf(n,i)}refine(t,r){let n=o=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(o):r;return this._refinement((o,i)=>{let a=t(o),s=()=>i.addIssue({code:y.custom,...n(o)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(s(),!1)):a?!0:(s(),!1)})}refinement(t,r){return this._refinement((n,o)=>t(n)?!0:(o.addIssue(typeof r=="function"?r(n,o):r),!1))}_refinement(t){return new lt({schema:this,typeName:D.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,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 ut.create(this,this._def)}nullable(){return jt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Bt.create(this)}promise(){return mr.create(this,this._def)}or(t){return Cr.create([this,t],this._def)}and(t){return Ur.create(this,t,this._def)}transform(t){return new lt({...L(this._def),schema:this,typeName:D.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new Vr({...L(this._def),innerType:this,defaultValue:r,typeName:D.ZodDefault})}brand(){return new gi({typeName:D.ZodBranded,type:this,...L(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new Jr({...L(this._def),innerType:this,catchValue:r,typeName:D.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return vi.create(this,t)}readonly(){return Wr.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},_$=/^c[^\s-]{8,}$/i,y$=/^[0-9a-z]+$/,$$=/^[0-9A-HJKMNP-TV-Z]{26}$/i,b$=/^[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,x$=/^[a-z0-9_-]{21}$/i,k$=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,S$=/^[-+]?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)?)??$/,w$=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,z$="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Us,I$=/^(?:(?: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])$/,E$=/^(?:(?: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])$/,T$=/^(([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]))$/,P$=/^(([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])$/,O$=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,j$=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Zf="((\\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])))",D$=new RegExp(`^${Zf}$`);function Lf(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}function N$(e){return new RegExp(`^${Lf(e)}$`)}function R$(e){let t=`${Zf}T${Lf(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,new RegExp(`^${t}$`)}function A$(e,t){return!!((t==="v4"||!t)&&I$.test(e)||(t==="v6"||!t)&&T$.test(e))}function M$(e,t){if(!k$.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),o=JSON.parse(atob(n));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||t&&o.alg!==t)}catch{return!1}}function C$(e,t){return!!((t==="v4"||!t)&&E$.test(e)||(t==="v6"||!t)&&P$.test(e))}var Rr=class e extends K{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==w.string){let i=this._getOrReturnCtx(t);return x(i,{code:y.invalid_type,expected:w.string,received:i.parsedType}),M}let n=new Ee,o;for(let i of this._def.checks)if(i.kind==="min")t.data.lengthi.value&&(o=this._getOrReturnCtx(t,o),x(o,{code:y.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){let a=t.data.length>i.value,s=t.data.lengtht.test(o),{validation:r,code:y.invalid_string,...T.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...T.errToObj(t)})}url(t){return this._addCheck({kind:"url",...T.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...T.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...T.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...T.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...T.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...T.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...T.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...T.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...T.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...T.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...T.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...T.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...T.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...T.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...T.errToObj(t)})}regex(t,r){return this._addCheck({kind:"regex",regex:t,...T.errToObj(r)})}includes(t,r){return this._addCheck({kind:"includes",value:t,position:r?.position,...T.errToObj(r?.message)})}startsWith(t,r){return this._addCheck({kind:"startsWith",value:t,...T.errToObj(r)})}endsWith(t,r){return this._addCheck({kind:"endsWith",value:t,...T.errToObj(r)})}min(t,r){return this._addCheck({kind:"min",value:t,...T.errToObj(r)})}max(t,r){return this._addCheck({kind:"max",value:t,...T.errToObj(r)})}length(t,r){return this._addCheck({kind:"length",value:t,...T.errToObj(r)})}nonempty(t){return this.min(1,T.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxLength(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.valuenew Rr({checks:[],typeName:D.ZodString,coerce:e?.coerce??!1,...L(e)});function U$(e,t){let r=(e.toString().split(".")[1]||"").length,n=(t.toString().split(".")[1]||"").length,o=r>n?r:n,i=Number.parseInt(e.toFixed(o).replace(".","")),a=Number.parseInt(t.toFixed(o).replace(".",""));return i%a/10**o}var Tn=class e extends K{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==w.number){let i=this._getOrReturnCtx(t);return x(i,{code:y.invalid_type,expected:w.number,received:i.parsedType}),M}let n,o=new Ee;for(let i of this._def.checks)i.kind==="int"?X.isInteger(t.data)||(n=this._getOrReturnCtx(t,n),x(n,{code:y.invalid_type,expected:"integer",received:"float",message:i.message}),o.dirty()):i.kind==="min"?(i.inclusive?t.datai.value:t.data>=i.value)&&(n=this._getOrReturnCtx(t,n),x(n,{code:y.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),o.dirty()):i.kind==="multipleOf"?U$(t.data,i.value)!==0&&(n=this._getOrReturnCtx(t,n),x(n,{code:y.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):i.kind==="finite"?Number.isFinite(t.data)||(n=this._getOrReturnCtx(t,n),x(n,{code:y.not_finite,message:i.message}),o.dirty()):X.assertNever(i);return{status:o.value,value:t.data}}gte(t,r){return this.setLimit("min",t,!0,T.toString(r))}gt(t,r){return this.setLimit("min",t,!1,T.toString(r))}lte(t,r){return this.setLimit("max",t,!0,T.toString(r))}lt(t,r){return this.setLimit("max",t,!1,T.toString(r))}setLimit(t,r,n,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:T.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:T.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:T.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:T.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:T.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:T.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:T.toString(r)})}finite(t){return this._addCheck({kind:"finite",message:T.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:T.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:T.toString(t)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.valuet.kind==="int"||t.kind==="multipleOf"&&X.isInteger(t.value))}get isFinite(){let t=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"&&(t===null||n.valuenew Tn({checks:[],typeName:D.ZodNumber,coerce:e?.coerce||!1,...L(e)});var Pn=class e extends K{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==w.bigint)return this._getInvalidInput(t);let n,o=new Ee;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?t.datai.value:t.data>=i.value)&&(n=this._getOrReturnCtx(t,n),x(n,{code:y.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),o.dirty()):i.kind==="multipleOf"?t.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(t,n),x(n,{code:y.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):X.assertNever(i);return{status:o.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return x(r,{code:y.invalid_type,expected:w.bigint,received:r.parsedType}),M}gte(t,r){return this.setLimit("min",t,!0,T.toString(r))}gt(t,r){return this.setLimit("min",t,!1,T.toString(r))}lte(t,r){return this.setLimit("max",t,!0,T.toString(r))}lt(t,r){return this.setLimit("max",t,!1,T.toString(r))}setLimit(t,r,n,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:T.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:T.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:T.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:T.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:T.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:T.toString(r)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.valuenew Pn({checks:[],typeName:D.ZodBigInt,coerce:e?.coerce??!1,...L(e)});var On=class extends K{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==w.boolean){let n=this._getOrReturnCtx(t);return x(n,{code:y.invalid_type,expected:w.boolean,received:n.parsedType}),M}return Ne(t.data)}};On.create=e=>new On({typeName:D.ZodBoolean,coerce:e?.coerce||!1,...L(e)});var jn=class e extends K{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==w.date){let i=this._getOrReturnCtx(t);return x(i,{code:y.invalid_type,expected:w.date,received:i.parsedType}),M}if(Number.isNaN(t.data.getTime())){let i=this._getOrReturnCtx(t);return x(i,{code:y.invalid_date}),M}let n=new Ee,o;for(let i of this._def.checks)i.kind==="min"?t.data.getTime()i.value&&(o=this._getOrReturnCtx(t,o),x(o,{code:y.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):X.assertNever(i);return{status:n.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,r){return this._addCheck({kind:"min",value:t.getTime(),message:T.toString(r)})}max(t,r){return this._addCheck({kind:"max",value:t.getTime(),message:T.toString(r)})}get minDate(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.valuenew jn({checks:[],coerce:e?.coerce||!1,typeName:D.ZodDate,...L(e)});var Dn=class extends K{_parse(t){if(this._getType(t)!==w.symbol){let n=this._getOrReturnCtx(t);return x(n,{code:y.invalid_type,expected:w.symbol,received:n.parsedType}),M}return Ne(t.data)}};Dn.create=e=>new Dn({typeName:D.ZodSymbol,...L(e)});var Ar=class extends K{_parse(t){if(this._getType(t)!==w.undefined){let n=this._getOrReturnCtx(t);return x(n,{code:y.invalid_type,expected:w.undefined,received:n.parsedType}),M}return Ne(t.data)}};Ar.create=e=>new Ar({typeName:D.ZodUndefined,...L(e)});var Mr=class extends K{_parse(t){if(this._getType(t)!==w.null){let n=this._getOrReturnCtx(t);return x(n,{code:y.invalid_type,expected:w.null,received:n.parsedType}),M}return Ne(t.data)}};Mr.create=e=>new Mr({typeName:D.ZodNull,...L(e)});var Nn=class extends K{constructor(){super(...arguments),this._any=!0}_parse(t){return Ne(t.data)}};Nn.create=e=>new Nn({typeName:D.ZodAny,...L(e)});var Gt=class extends K{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Ne(t.data)}};Gt.create=e=>new Gt({typeName:D.ZodUnknown,...L(e)});var vt=class extends K{_parse(t){let r=this._getOrReturnCtx(t);return x(r,{code:y.invalid_type,expected:w.never,received:r.parsedType}),M}};vt.create=e=>new vt({typeName:D.ZodNever,...L(e)});var Rn=class extends K{_parse(t){if(this._getType(t)!==w.undefined){let n=this._getOrReturnCtx(t);return x(n,{code:y.invalid_type,expected:w.void,received:n.parsedType}),M}return Ne(t.data)}};Rn.create=e=>new Rn({typeName:D.ZodVoid,...L(e)});var Bt=class e extends K{_parse(t){let{ctx:r,status:n}=this._processInputParams(t),o=this._def;if(r.parsedType!==w.array)return x(r,{code:y.invalid_type,expected:w.array,received:r.parsedType}),M;if(o.exactLength!==null){let a=r.data.length>o.exactLength.value,s=r.data.lengtho.maxLength.value&&(x(r,{code:y.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((a,s)=>o.type._parseAsync(new et(r,a,r.path,s)))).then(a=>Ee.mergeArray(n,a));let i=[...r.data].map((a,s)=>o.type._parseSync(new et(r,a,r.path,s)));return Ee.mergeArray(n,i)}get element(){return this._def.type}min(t,r){return new e({...this._def,minLength:{value:t,message:T.toString(r)}})}max(t,r){return new e({...this._def,maxLength:{value:t,message:T.toString(r)}})}length(t,r){return new e({...this._def,exactLength:{value:t,message:T.toString(r)}})}nonempty(t){return this.min(1,t)}};Bt.create=(e,t)=>new Bt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:D.ZodArray,...L(t)});function Nr(e){if(e instanceof He){let t={};for(let r in e.shape){let n=e.shape[r];t[r]=ut.create(Nr(n))}return new He({...e._def,shape:()=>t})}else return e instanceof Bt?new Bt({...e._def,type:Nr(e.element)}):e instanceof ut?ut.create(Nr(e.unwrap())):e instanceof jt?jt.create(Nr(e.unwrap())):e instanceof Ot?Ot.create(e.items.map(t=>Nr(t))):e}var He=class e extends K{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),r=X.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==w.object){let u=this._getOrReturnCtx(t);return x(u,{code:y.invalid_type,expected:w.object,received:u.parsedType}),M}let{status:n,ctx:o}=this._processInputParams(t),{shape:i,keys:a}=this._getCached(),s=[];if(!(this._def.catchall instanceof vt&&this._def.unknownKeys==="strip"))for(let u in o.data)a.includes(u)||s.push(u);let c=[];for(let u of a){let l=i[u],d=o.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new et(o,d,o.path,u)),alwaysSet:u in o.data})}if(this._def.catchall instanceof vt){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of s)c.push({key:{status:"valid",value:l},value:{status:"valid",value:o.data[l]}});else if(u==="strict")s.length>0&&(x(o,{code:y.unrecognized_keys,keys:s}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of s){let d=o.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new et(o,d,o.path,l)),alwaysSet:l in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,m=await l.value;u.push({key:d,value:m,alwaysSet:l.alwaysSet})}return u}).then(u=>Ee.mergeObjectSync(n,u)):Ee.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(t){return T.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(r,n)=>{let o=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:T.errToObj(t).message??o}:{message:o}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:D.ZodObject})}setKey(t,r){return this.augment({[t]:r})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let r={};for(let n of X.objectKeys(t))t[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}omit(t){let r={};for(let n of X.objectKeys(this.shape))t[n]||(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}deepPartial(){return Nr(this)}partial(t){let r={};for(let n of X.objectKeys(this.shape)){let o=this.shape[n];t&&!t[n]?r[n]=o:r[n]=o.optional()}return new e({...this._def,shape:()=>r})}required(t){let r={};for(let n of X.objectKeys(this.shape))if(t&&!t[n])r[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof ut;)i=i._def.innerType;r[n]=i}return new e({...this._def,shape:()=>r})}keyof(){return qf(X.objectKeys(this.shape))}};He.create=(e,t)=>new He({shape:()=>e,unknownKeys:"strip",catchall:vt.create(),typeName:D.ZodObject,...L(t)});He.strictCreate=(e,t)=>new He({shape:()=>e,unknownKeys:"strict",catchall:vt.create(),typeName:D.ZodObject,...L(t)});He.lazycreate=(e,t)=>new He({shape:e,unknownKeys:"strip",catchall:vt.create(),typeName:D.ZodObject,...L(t)});var Cr=class extends K{_parse(t){let{ctx:r}=this._processInputParams(t),n=this._def.options;function o(i){for(let s of i)if(s.result.status==="valid")return s.result;for(let s of i)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let a=i.map(s=>new Ke(s.ctx.common.issues));return x(r,{code:y.invalid_union,unionErrors:a}),M}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(o);{let i,a=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!i&&(i={result:l,ctx:u}),u.common.issues.length&&a.push(u.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let s=a.map(c=>new Ke(c));return x(r,{code:y.invalid_union,unionErrors:s}),M}}get options(){return this._def.options}};Cr.create=(e,t)=>new Cr({options:e,typeName:D.ZodUnion,...L(t)});var Pt=e=>e instanceof Zr?Pt(e.schema):e instanceof lt?Pt(e.innerType()):e instanceof Lr?[e.value]:e instanceof qr?e.options:e instanceof Fr?X.objectValues(e.enum):e instanceof Vr?Pt(e._def.innerType):e instanceof Ar?[void 0]:e instanceof Mr?[null]:e instanceof ut?[void 0,...Pt(e.unwrap())]:e instanceof jt?[null,...Pt(e.unwrap())]:e instanceof gi||e instanceof Wr?Pt(e.unwrap()):e instanceof Jr?Pt(e._def.innerType):[],Zs=class e extends K{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==w.object)return x(r,{code:y.invalid_type,expected:w.object,received:r.parsedType}),M;let n=this.discriminator,o=r.data[n],i=this.optionsMap.get(o);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}):(x(r,{code:y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),M)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,r,n){let o=new Map;for(let i of r){let a=Pt(i.shape[t]);if(!a.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let s of a){if(o.has(s))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(s)}`);o.set(s,i)}}return new e({typeName:D.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:o,...L(n)})}};function Ls(e,t){let r=Tt(e),n=Tt(t);if(e===t)return{valid:!0,data:e};if(r===w.object&&n===w.object){let o=X.objectKeys(t),i=X.objectKeys(e).filter(s=>o.indexOf(s)!==-1),a={...e,...t};for(let s of i){let c=Ls(e[s],t[s]);if(!c.valid)return{valid:!1};a[s]=c.data}return{valid:!0,data:a}}else if(r===w.array&&n===w.array){if(e.length!==t.length)return{valid:!1};let o=[];for(let i=0;i{if(Ms(i)||Ms(a))return M;let s=Ls(i.value,a.value);return s.valid?((Cs(i)||Cs(a))&&r.dirty(),{status:r.value,value:s.data}):(x(n,{code:y.invalid_intersection_types}),M)};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])=>o(i,a)):o(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Ur.create=(e,t,r)=>new Ur({left:e,right:t,typeName:D.ZodIntersection,...L(r)});var Ot=class e extends K{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==w.array)return x(n,{code:y.invalid_type,expected:w.array,received:n.parsedType}),M;if(n.data.lengththis._def.items.length&&(x(n,{code:y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let i=[...n.data].map((a,s)=>{let c=this._def.items[s]||this._def.rest;return c?c._parse(new et(n,a,n.path,s)):null}).filter(a=>!!a);return n.common.async?Promise.all(i).then(a=>Ee.mergeArray(r,a)):Ee.mergeArray(r,i)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Ot.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ot({items:e,typeName:D.ZodTuple,rest:null,...L(t)})};var qs=class e extends K{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==w.object)return x(n,{code:y.invalid_type,expected:w.object,received:n.parsedType}),M;let o=[],i=this._def.keyType,a=this._def.valueType;for(let s in n.data)o.push({key:i._parse(new et(n,s,n.path,s)),value:a._parse(new et(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?Ee.mergeObjectAsync(r,o):Ee.mergeObjectSync(r,o)}get element(){return this._def.valueType}static create(t,r,n){return r instanceof K?new e({keyType:t,valueType:r,typeName:D.ZodRecord,...L(n)}):new e({keyType:Rr.create(),valueType:t,typeName:D.ZodRecord,...L(r)})}},An=class extends K{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==w.map)return x(n,{code:y.invalid_type,expected:w.map,received:n.parsedType}),M;let o=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([s,c],u)=>({key:o._parse(new et(n,s,n.path,[u,"key"])),value:i._parse(new et(n,c,n.path,[u,"value"]))}));if(n.common.async){let s=new Map;return Promise.resolve().then(async()=>{for(let c of a){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return M;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}})}else{let s=new Map;for(let c of a){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return M;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}}}};An.create=(e,t,r)=>new An({valueType:t,keyType:e,typeName:D.ZodMap,...L(r)});var Mn=class e extends K{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==w.set)return x(n,{code:y.invalid_type,expected:w.set,received:n.parsedType}),M;let o=this._def;o.minSize!==null&&n.data.sizeo.maxSize.value&&(x(n,{code:y.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),r.dirty());let i=this._def.valueType;function a(c){let u=new Set;for(let l of c){if(l.status==="aborted")return M;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let s=[...n.data.values()].map((c,u)=>i._parse(new et(n,c,n.path,u)));return n.common.async?Promise.all(s).then(c=>a(c)):a(s)}min(t,r){return new e({...this._def,minSize:{value:t,message:T.toString(r)}})}max(t,r){return new e({...this._def,maxSize:{value:t,message:T.toString(r)}})}size(t,r){return this.min(t,r).max(t,r)}nonempty(t){return this.min(1,t)}};Mn.create=(e,t)=>new Mn({valueType:e,minSize:null,maxSize:null,typeName:D.ZodSet,...L(t)});var Fs=class e extends K{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==w.function)return x(r,{code:y.invalid_type,expected:w.function,received:r.parsedType}),M;function n(s,c){return hi({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,In(),Ht].filter(u=>!!u),issueData:{code:y.invalid_arguments,argumentsError:c}})}function o(s,c){return hi({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,In(),Ht].filter(u=>!!u),issueData:{code:y.invalid_return_type,returnTypeError:c}})}let i={errorMap:r.common.contextualErrorMap},a=r.data;if(this._def.returns instanceof mr){let s=this;return Ne(async function(...c){let u=new Ke([]),l=await s._def.args.parseAsync(c,i).catch(p=>{throw u.addIssue(n(c,p)),u}),d=await Reflect.apply(a,this,l);return await s._def.returns._def.type.parseAsync(d,i).catch(p=>{throw u.addIssue(o(d,p)),u})})}else{let s=this;return Ne(function(...c){let u=s._def.args.safeParse(c,i);if(!u.success)throw new Ke([n(c,u.error)]);let l=Reflect.apply(a,this,u.data),d=s._def.returns.safeParse(l,i);if(!d.success)throw new Ke([o(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Ot.create(t).rest(Gt.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,r,n){return new e({args:t||Ot.create([]).rest(Gt.create()),returns:r||Gt.create(),typeName:D.ZodFunction,...L(n)})}},Zr=class extends K{get schema(){return this._def.getter()}_parse(t){let{ctx:r}=this._processInputParams(t);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Zr.create=(e,t)=>new Zr({getter:e,typeName:D.ZodLazy,...L(t)});var Lr=class extends K{_parse(t){if(t.data!==this._def.value){let r=this._getOrReturnCtx(t);return x(r,{received:r.data,code:y.invalid_literal,expected:this._def.value}),M}return{status:"valid",value:t.data}}get value(){return this._def.value}};Lr.create=(e,t)=>new Lr({value:e,typeName:D.ZodLiteral,...L(t)});function qf(e,t){return new qr({values:e,typeName:D.ZodEnum,...L(t)})}var qr=class e extends K{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),n=this._def.values;return x(r,{expected:X.joinValues(n),received:r.parsedType,code:y.invalid_type}),M}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let r=this._getOrReturnCtx(t),n=this._def.values;return x(r,{received:r.data,code:y.invalid_enum_value,options:n}),M}return Ne(t.data)}get options(){return this._def.values}get enum(){let t={};for(let r of this._def.values)t[r]=r;return t}get Values(){let t={};for(let r of this._def.values)t[r]=r;return t}get Enum(){let t={};for(let r of this._def.values)t[r]=r;return t}extract(t,r=this._def){return e.create(t,{...this._def,...r})}exclude(t,r=this._def){return e.create(this.options.filter(n=>!t.includes(n)),{...this._def,...r})}};qr.create=qf;var Fr=class extends K{_parse(t){let r=X.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(t);if(n.parsedType!==w.string&&n.parsedType!==w.number){let o=X.objectValues(r);return x(n,{expected:X.joinValues(o),received:n.parsedType,code:y.invalid_type}),M}if(this._cache||(this._cache=new Set(X.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let o=X.objectValues(r);return x(n,{received:n.data,code:y.invalid_enum_value,options:o}),M}return Ne(t.data)}get enum(){return this._def.values}};Fr.create=(e,t)=>new Fr({values:e,typeName:D.ZodNativeEnum,...L(t)});var mr=class extends K{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==w.promise&&r.common.async===!1)return x(r,{code:y.invalid_type,expected:w.promise,received:r.parsedType}),M;let n=r.parsedType===w.promise?r.data:Promise.resolve(r.data);return Ne(n.then(o=>this._def.type.parseAsync(o,{path:r.path,errorMap:r.common.contextualErrorMap})))}};mr.create=(e,t)=>new mr({type:e,typeName:D.ZodPromise,...L(t)});var lt=class extends K{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===D.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:r,ctx:n}=this._processInputParams(t),o=this._def.effect||null,i={addIssue:a=>{x(n,a),a.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),o.type==="preprocess"){let a=o.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async s=>{if(r.value==="aborted")return M;let c=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return c.status==="aborted"?M:c.status==="dirty"?Dr(c.value):r.value==="dirty"?Dr(c.value):c});{if(r.value==="aborted")return M;let s=this._def.schema._parseSync({data:a,path:n.path,parent:n});return s.status==="aborted"?M:s.status==="dirty"?Dr(s.value):r.value==="dirty"?Dr(s.value):s}}if(o.type==="refinement"){let a=s=>{let c=o.refinement(s,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?M:(s.status==="dirty"&&r.dirty(),a(s.value),{status:r.value,value:s.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>s.status==="aborted"?M:(s.status==="dirty"&&r.dirty(),a(s.value).then(()=>({status:r.value,value:s.value}))))}if(o.type==="transform")if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!fr(a))return M;let s=o.transform(a.value,i);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:s}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>fr(a)?Promise.resolve(o.transform(a.value,i)).then(s=>({status:r.value,value:s})):M);X.assertNever(o)}};lt.create=(e,t,r)=>new lt({schema:e,typeName:D.ZodEffects,effect:t,...L(r)});lt.createWithPreprocess=(e,t,r)=>new lt({schema:t,effect:{type:"preprocess",transform:e},typeName:D.ZodEffects,...L(r)});var ut=class extends K{_parse(t){return this._getType(t)===w.undefined?Ne(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ut.create=(e,t)=>new ut({innerType:e,typeName:D.ZodOptional,...L(t)});var jt=class extends K{_parse(t){return this._getType(t)===w.null?Ne(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};jt.create=(e,t)=>new jt({innerType:e,typeName:D.ZodNullable,...L(t)});var Vr=class extends K{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return r.parsedType===w.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Vr.create=(e,t)=>new Vr({innerType:e,typeName:D.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...L(t)});var Jr=class extends K{_parse(t){let{ctx:r}=this._processInputParams(t),n={...r,common:{...r.common,issues:[]}},o=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return En(o)?o.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Ke(n.common.issues)},input:n.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Ke(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Jr.create=(e,t)=>new Jr({innerType:e,typeName:D.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...L(t)});var Cn=class extends K{_parse(t){if(this._getType(t)!==w.nan){let n=this._getOrReturnCtx(t);return x(n,{code:y.invalid_type,expected:w.nan,received:n.parsedType}),M}return{status:"valid",value:t.data}}};Cn.create=e=>new Cn({typeName:D.ZodNaN,...L(e)});var gi=class extends K{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},vi=class e extends K{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?M:i.status==="dirty"?(r.dirty(),Dr(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{let o=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?M:o.status==="dirty"?(r.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:n.path,parent:n})}}static create(t,r){return new e({in:t,out:r,typeName:D.ZodPipeline})}},Wr=class extends K{_parse(t){let r=this._def.innerType._parse(t),n=o=>(fr(o)&&(o.value=Object.freeze(o.value)),o);return En(r)?r.then(o=>n(o)):n(r)}unwrap(){return this._def.innerType}};Wr.create=(e,t)=>new Wr({innerType:e,typeName:D.ZodReadonly,...L(t)});var XP={object:He.lazycreate},D;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(D||(D={}));var YP=Rr.create,QP=Tn.create,eO=Cn.create,tO=Pn.create,rO=On.create,nO=jn.create,oO=Dn.create,iO=Ar.create,aO=Mr.create,sO=Nn.create,cO=Gt.create,uO=vt.create,lO=Rn.create,dO=Bt.create,Z$=He.create,pO=He.strictCreate,fO=Cr.create,mO=Zs.create,hO=Ur.create,gO=Ot.create,vO=qs.create,_O=An.create,yO=Mn.create,$O=Fs.create,bO=Zr.create,xO=Lr.create,kO=qr.create,SO=Fr.create,wO=mr.create,zO=lt.create,IO=ut.create,EO=jt.create,TO=lt.createWithPreprocess,PO=vi.create;var Ff=Object.freeze({status:"aborted"});function f(e,t,r){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,c);let u=a.prototype,l=Object.keys(u);for(let d=0;dr?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var _t=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},hr=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},_i={};function be(e){return e&&Object.assign(_i,e),_i}var $={};wn($,{BIGINT_FORMAT_RANGES:()=>Ys,Class:()=>Js,NUMBER_FORMAT_RANGES:()=>Xs,aborted:()=>er,allowsEval:()=>Hs,assert:()=>K$,assertEqual:()=>F$,assertIs:()=>J$,assertNever:()=>W$,assertNotEqual:()=>V$,assignProp:()=>Yt,base64ToUint8Array:()=>Wf,base64urlToUint8Array:()=>lb,cached:()=>Hr,captureStackTrace:()=>$i,cleanEnum:()=>ub,cleanRegex:()=>Ln,clone:()=>Re,cloneDef:()=>G$,createTransparentProxy:()=>tb,defineLazy:()=>V,esc:()=>yi,escapeRegex:()=>tt,extend:()=>ob,finalizeIssue:()=>qe,floatSafeRemainder:()=>Ws,getElementAtPath:()=>B$,getEnumValues:()=>Zn,getLengthableOrigin:()=>Vn,getParsedType:()=>eb,getSizableOrigin:()=>Fn,hexToUint8Array:()=>pb,isObject:()=>gr,isPlainObject:()=>Qt,issue:()=>Gr,joinValues:()=>N,jsonStringifyReplacer:()=>Kr,merge:()=>ab,mergeDefs:()=>Dt,normalizeParams:()=>k,nullish:()=>Xt,numKeys:()=>Q$,objectClone:()=>H$,omit:()=>nb,optionalKeys:()=>Bs,parsedType:()=>C,partial:()=>sb,pick:()=>rb,prefixIssues:()=>Ge,primitiveTypes:()=>Gs,promiseAllObject:()=>X$,propertyKeyTypes:()=>qn,randomString:()=>Y$,required:()=>cb,safeExtend:()=>ib,shallowClone:()=>Jf,slugify:()=>Ks,stringifyPrimitive:()=>R,uint8ArrayToBase64:()=>Kf,uint8ArrayToBase64url:()=>db,uint8ArrayToHex:()=>fb,unwrapMessage:()=>Un});function F$(e){return e}function V$(e){return e}function J$(e){}function W$(e){throw new Error("Unexpected value in exhaustive check")}function K$(e){}function Zn(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function N(e,t="|"){return e.map(r=>R(r)).join(t)}function Kr(e,t){return typeof t=="bigint"?t.toString():t}function Hr(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Xt(e){return e==null}function Ln(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Ws(e,t){let r=(e.toString().split(".")[1]||"").length,n=t.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let c=n.match(/\d?e-(\d?)/);c?.[1]&&(o=Number.parseInt(c[1]))}let i=r>o?r:o,a=Number.parseInt(e.toFixed(i).replace(".","")),s=Number.parseInt(t.toFixed(i).replace(".",""));return a%s/10**i}var Vf=Symbol("evaluating");function V(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==Vf)return n===void 0&&(n=Vf,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function H$(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Yt(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Dt(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function G$(e){return Dt(e._zod.def)}function B$(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function X$(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i{};function gr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Hs=Hr(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function Qt(e){if(gr(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(gr(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Jf(e){return Qt(e)?{...e}:Array.isArray(e)?[...e]:e}function Q$(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var eb=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},qn=new Set(["string","number","symbol"]),Gs=new Set(["string","number","bigint","boolean","symbol","undefined"]);function tt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Re(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function k(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function tb(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,i){return t??(t=e()),Reflect.set(t,n,o,i)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function R(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Bs(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Xs={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]},Ys={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function rb(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=Dt(e._zod.def,{get shape(){let a={};for(let s in t){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);t[s]&&(a[s]=r.shape[s])}return Yt(this,"shape",a),a},checks:[]});return Re(e,i)}function nb(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=Dt(e._zod.def,{get shape(){let a={...e._zod.def.shape};for(let s in t){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);t[s]&&delete a[s]}return Yt(this,"shape",a),a},checks:[]});return Re(e,i)}function ob(e,t){if(!Qt(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let i=e._zod.def.shape;for(let a in t)if(Object.getOwnPropertyDescriptor(i,a)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=Dt(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return Yt(this,"shape",i),i}});return Re(e,o)}function ib(e,t){if(!Qt(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=Dt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Yt(this,"shape",n),n}});return Re(e,r)}function ab(e,t){let r=Dt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Yt(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return Re(e,r)}function sb(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let a=Dt(t._zod.def,{get shape(){let s=t._zod.def.shape,c={...s};if(r)for(let u in r){if(!(u in s))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=e?new e({type:"optional",innerType:s[u]}):s[u])}else for(let u in s)c[u]=e?new e({type:"optional",innerType:s[u]}):s[u];return Yt(this,"shape",c),c},checks:[]});return Re(t,a)}function cb(e,t,r){let n=Dt(t._zod.def,{get shape(){let o=t._zod.def.shape,i={...o};if(r)for(let a in r){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=new e({type:"nonoptional",innerType:o[a]}))}else for(let a in o)i[a]=new e({type:"nonoptional",innerType:o[a]});return Yt(this,"shape",i),i}});return Re(t,n)}function er(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Un(e){return typeof e=="string"?e:e?.message}function qe(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=Un(e.inst?._zod.def?.error?.(e))??Un(t?.error?.(e))??Un(r.customError?.(e))??Un(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function Fn(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function Vn(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function C(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function Gr(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function ub(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Wf(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;nt.toString(16).padStart(2,"0")).join("")}var Js=class{constructor(...t){}};var Hf=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Kr,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},bi=f("$ZodError",Hf),Jn=f("$ZodError",Hf,{Parent:Error});function xi(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function ki(e,t=r=>r.message){let r={_errors:[]},n=o=>{for(let i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(a=>n({issues:a}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)r._errors.push(t(i));else{let a=r,s=0;for(;s(t,r,n,o)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new _t;if(a.issues.length){let s=new(o?.Err??e)(a.issues.map(c=>qe(c,i,be())));throw $i(s,o?.callee),s}return a.value},Kn=Wn(Jn),Hn=e=>async(t,r,n,o)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let s=new(o?.Err??e)(a.issues.map(c=>qe(c,i,be())));throw $i(s,o?.callee),s}return a.value},Gn=Hn(Jn),Bn=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new _t;return i.issues.length?{success:!1,error:new(e??bi)(i.issues.map(a=>qe(a,o,be())))}:{success:!0,data:i.value}},Br=Bn(Jn),Xn=e=>async(t,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(a=>qe(a,o,be())))}:{success:!0,data:i.value}},Yn=Xn(Jn),Gf=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Wn(e)(t,r,o)};var Bf=e=>(t,r,n)=>Wn(e)(t,r,n);var Xf=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Hn(e)(t,r,o)};var Yf=e=>async(t,r,n)=>Hn(e)(t,r,n);var Qf=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Bn(e)(t,r,o)};var em=e=>(t,r,n)=>Bn(e)(t,r,n);var tm=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Xn(e)(t,r,o)};var rm=e=>async(t,r,n)=>Xn(e)(t,r,n);var rt={};wn(rt,{base64:()=>mc,base64url:()=>Si,bigint:()=>$c,boolean:()=>xc,browserEmail:()=>xb,cidrv4:()=>pc,cidrv6:()=>fc,cuid:()=>Qs,cuid2:()=>ec,date:()=>gc,datetime:()=>_c,domain:()=>wb,duration:()=>ic,e164:()=>hc,email:()=>sc,emoji:()=>cc,extendedDuration:()=>hb,guid:()=>ac,hex:()=>zb,hostname:()=>Sb,html5Email:()=>yb,idnEmail:()=>bb,integer:()=>bc,ipv4:()=>uc,ipv6:()=>lc,ksuid:()=>nc,lowercase:()=>wc,mac:()=>dc,md5_base64:()=>Eb,md5_base64url:()=>Tb,md5_hex:()=>Ib,nanoid:()=>oc,null:()=>kc,number:()=>wi,rfc5322Email:()=>$b,sha1_base64:()=>Ob,sha1_base64url:()=>jb,sha1_hex:()=>Pb,sha256_base64:()=>Nb,sha256_base64url:()=>Rb,sha256_hex:()=>Db,sha384_base64:()=>Mb,sha384_base64url:()=>Cb,sha384_hex:()=>Ab,sha512_base64:()=>Zb,sha512_base64url:()=>Lb,sha512_hex:()=>Ub,string:()=>yc,time:()=>vc,ulid:()=>tc,undefined:()=>Sc,unicodeEmail:()=>nm,uppercase:()=>zc,uuid:()=>vr,uuid4:()=>gb,uuid6:()=>vb,uuid7:()=>_b,xid:()=>rc});var Qs=/^[cC][^\s-]{8,}$/,ec=/^[0-9a-z]+$/,tc=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,rc=/^[0-9a-vA-V]{20}$/,nc=/^[A-Za-z0-9]{27}$/,oc=/^[a-zA-Z0-9_-]{21}$/,ic=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,hb=/^[-+]?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)?)??$/,ac=/^([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})$/,vr=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[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|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,gb=vr(4),vb=vr(6),_b=vr(7),sc=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,yb=/^[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])?)*$/,$b=/^(([^<>()\[\]\\.,;:\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,}))$/,nm=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,bb=nm,xb=/^[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])?)*$/,kb="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function cc(){return new RegExp(kb,"u")}var uc=/^(?:(?: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])$/,lc=/^(([0-9a-fA-F]{1,4}:){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}|:))$/,dc=e=>{let t=tt(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},pc=/^((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])$/,fc=/^(([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])$/,mc=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Si=/^[A-Za-z0-9_-]*$/,Sb=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,wb=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,hc=/^\+[1-9]\d{6,14}$/,om="(?:(?:\\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])))",gc=new RegExp(`^${om}$`);function im(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function vc(e){return new RegExp(`^${im(e)}$`)}function _c(e){let t=im({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${om}T(?:${n})$`)}var yc=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},$c=/^-?\d+n?$/,bc=/^-?\d+$/,wi=/^-?\d+(?:\.\d+)?$/,xc=/^(?:true|false)$/i,kc=/^null$/i;var Sc=/^undefined$/i;var wc=/^[^A-Z]*$/,zc=/^[^a-z]*$/,zb=/^[0-9a-fA-F]*$/;function Qn(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function eo(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var Ib=/^[0-9a-fA-F]{32}$/,Eb=Qn(22,"=="),Tb=eo(22),Pb=/^[0-9a-fA-F]{40}$/,Ob=Qn(27,"="),jb=eo(27),Db=/^[0-9a-fA-F]{64}$/,Nb=Qn(43,"="),Rb=eo(43),Ab=/^[0-9a-fA-F]{96}$/,Mb=Qn(64,""),Cb=eo(64),Ub=/^[0-9a-fA-F]{128}$/,Zb=Qn(86,"=="),Lb=eo(86);var se=f("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),sm={number:"number",bigint:"bigint",object:"date"},Ic=f("$ZodCheckLessThan",(e,t)=>{se.init(e,t);let r=sm[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?n.value<=t.value:n.value{se.init(e,t);let r=sm[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),cm=f("$ZodCheckMultipleOf",(e,t)=>{se.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):Ws(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),um=f("$ZodCheckNumberFormat",(e,t)=>{se.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,i]=Xs[t.format];e._zod.onattach.push(a=>{let s=a._zod.bag;s.format=t.format,s.minimum=o,s.maximum=i,r&&(s.pattern=bc)}),e._zod.check=a=>{let s=a.value;if(r){if(!Number.isInteger(s)){a.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}si&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),lm=f("$ZodCheckBigIntFormat",(e,t)=>{se.init(e,t);let[r,n]=Ys[t.format];e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,i.minimum=r,i.maximum=n}),e._zod.check=o=>{let i=o.value;in&&o.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),dm=f("$ZodCheckMaxSize",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let o=n.value;o.size<=t.maximum||n.issues.push({origin:Fn(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),pm=f("$ZodCheckMinSize",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;o.size>=t.minimum||n.issues.push({origin:Fn(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),fm=f("$ZodCheckSizeEquals",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,i=o.size;if(i===t.size)return;let a=i>t.size;n.issues.push({origin:Fn(o),...a?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),mm=f("$ZodCheckMaxLength",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let o=n.value;if(o.length<=t.maximum)return;let a=Vn(o);n.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),hm=f("$ZodCheckMinLength",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let a=Vn(o);n.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),gm=f("$ZodCheckLengthEquals",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Xt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,i=o.length;if(i===t.length)return;let a=Vn(o),s=i>t.length;n.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),to=f("$ZodCheckStringFormat",(e,t)=>{var r,n;se.init(e,t),e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),vm=f("$ZodCheckRegex",(e,t)=>{to.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),_m=f("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=wc),to.init(e,t)}),ym=f("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=zc),to.init(e,t)}),$m=f("$ZodCheckIncludes",(e,t)=>{se.init(e,t);let r=tt(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),bm=f("$ZodCheckStartsWith",(e,t)=>{se.init(e,t);let r=new RegExp(`^${tt(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),xm=f("$ZodCheckEndsWith",(e,t)=>{se.init(e,t);let r=new RegExp(`.*${tt(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});function am(e,t,r){e.issues.length&&t.issues.push(...Ge(r,e.issues))}var km=f("$ZodCheckProperty",(e,t)=>{se.init(e,t),e._zod.check=r=>{let n=t.schema._zod.run({value:r.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(o=>am(o,r,t.property));am(n,r,t.property)}}),Sm=f("$ZodCheckMimeType",(e,t)=>{se.init(e,t);let r=new Set(t.mime);e._zod.onattach.push(n=>{n._zod.bag.mime=t.mime}),e._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:t.mime,input:n.value.type,inst:e,continue:!t.abort})}}),wm=f("$ZodCheckOverwrite",(e,t)=>{se.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var zi=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let n=t.split(` +`).filter(a=>a),o=Math.min(...n.map(a=>a.length-a.trimStart().length)),i=n.map(a=>a.slice(o)).map(a=>" ".repeat(this.indent*2)+a);for(let a of i)this.content.push(a)}compile(){let t=Function,r=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new t(...r,o.join(` +`))}};var Im={major:4,minor:3,patch:4};var Z=f("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Im;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(a,s,c)=>{let u=er(a),l;for(let d of s){if(d._zod.def.when){if(!d._zod.def.when(a))continue}else if(u)continue;let m=a.issues.length,p=d._zod.check(a);if(p instanceof Promise&&c?.async===!1)throw new _t;if(l||p instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await p,a.issues.length!==m&&(u||(u=er(a,m)))});else{if(a.issues.length===m)continue;u||(u=er(a,m))}}return l?l.then(()=>a):a},i=(a,s,c)=>{if(er(a))return a.aborted=!0,a;let u=o(s,n,c);if(u instanceof Promise){if(c.async===!1)throw new _t;return u.then(l=>e._zod.parse(l,c))}return e._zod.parse(u,c)};e._zod.run=(a,s)=>{if(s.skipChecks)return e._zod.parse(a,s);if(s.direction==="backward"){let u=e._zod.parse({value:a.value,issues:[]},{...s,skipChecks:!0});return u instanceof Promise?u.then(l=>i(l,a,s)):i(u,a,s)}let c=e._zod.parse(a,s);if(c instanceof Promise){if(s.async===!1)throw new _t;return c.then(u=>o(u,n,s))}return o(c,n,s)}}V(e,"~standard",()=>({validate:o=>{try{let i=Br(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Yn(e,o).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}))}),_r=f("$ZodString",(e,t)=>{Z.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??yc(e._zod.bag),e._zod.parse=(r,n)=>{if(t.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:e}),r}}),oe=f("$ZodStringFormat",(e,t)=>{to.init(e,t),_r.init(e,t)}),Pc=f("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=ac),oe.init(e,t)}),Oc=f("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=vr(n))}else t.pattern??(t.pattern=vr());oe.init(e,t)}),jc=f("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=sc),oe.init(e,t)}),Dc=f("$ZodURL",(e,t)=>{oe.init(e,t),e._zod.check=r=>{try{let n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),Nc=f("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=cc()),oe.init(e,t)}),Rc=f("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=oc),oe.init(e,t)}),Ac=f("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Qs),oe.init(e,t)}),Mc=f("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ec),oe.init(e,t)}),Cc=f("$ZodULID",(e,t)=>{t.pattern??(t.pattern=tc),oe.init(e,t)}),Uc=f("$ZodXID",(e,t)=>{t.pattern??(t.pattern=rc),oe.init(e,t)}),Zc=f("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=nc),oe.init(e,t)}),Lc=f("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=_c(t)),oe.init(e,t)}),qc=f("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=gc),oe.init(e,t)}),Fc=f("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=vc(t)),oe.init(e,t)}),Vc=f("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ic),oe.init(e,t)}),Jc=f("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=uc),oe.init(e,t),e._zod.bag.format="ipv4"}),Wc=f("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=lc),oe.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Kc=f("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=dc(t.delimiter)),oe.init(e,t),e._zod.bag.format="mac"}),Hc=f("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=pc),oe.init(e,t)}),Gc=f("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=fc),oe.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let a=Number(i);if(`${a}`!==i)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Um(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Bc=f("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=mc),oe.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Um(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function qb(e){if(!Si.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Um(r)}var Xc=f("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Si),oe.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{qb(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Yc=f("$ZodE164",(e,t)=>{t.pattern??(t.pattern=hc),oe.init(e,t)});function Fb(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Qc=f("$ZodJWT",(e,t)=>{oe.init(e,t),e._zod.check=r=>{Fb(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),eu=f("$ZodCustomStringFormat",(e,t)=>{oe.init(e,t),e._zod.check=r=>{t.fn(r.value)||r.issues.push({code:"invalid_format",format:t.format,input:r.value,inst:e,continue:!t.abort})}}),ji=f("$ZodNumber",(e,t)=>{Z.init(e,t),e._zod.pattern=e._zod.bag.pattern??wi,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),tu=f("$ZodNumberFormat",(e,t)=>{um.init(e,t),ji.init(e,t)}),ro=f("$ZodBoolean",(e,t)=>{Z.init(e,t),e._zod.pattern=xc,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),Di=f("$ZodBigInt",(e,t)=>{Z.init(e,t),e._zod.pattern=$c,e._zod.parse=(r,n)=>{if(t.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:e}),r}}),ru=f("$ZodBigIntFormat",(e,t)=>{lm.init(e,t),Di.init(e,t)}),nu=f("$ZodSymbol",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),r}}),ou=f("$ZodUndefined",(e,t)=>{Z.init(e,t),e._zod.pattern=Sc,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),r}}),iu=f("$ZodNull",(e,t)=>{Z.init(e,t),e._zod.pattern=kc,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),r}}),au=f("$ZodAny",(e,t)=>{Z.init(e,t),e._zod.parse=r=>r}),su=f("$ZodUnknown",(e,t)=>{Z.init(e,t),e._zod.parse=r=>r}),cu=f("$ZodNever",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),uu=f("$ZodVoid",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),lu=f("$ZodDate",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:e}),r}});function Em(e,t,r){e.issues.length&&t.issues.push(...Ge(r,e.issues)),t.value[r]=e.value}var du=f("$ZodArray",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let i=[];for(let a=0;aEm(u,r,a))):Em(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Oi(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...Ge(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Zm(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=Bs(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Lm(e,t,r,n,o,i){let a=[],s=o.keySet,c=o.catchall._zod,u=c.def.type,l=c.optout==="optional";for(let d in t){if(s.has(d))continue;if(u==="never"){a.push(d);continue}let m=c.run({value:t[d],issues:[]},n);m instanceof Promise?e.push(m.then(p=>Oi(p,r,d,t,l))):Oi(m,r,d,t,l)}return a.length&&r.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var qm=f("$ZodObject",(e,t)=>{if(Z.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let s=t.shape;Object.defineProperty(t,"shape",{get:()=>{let c={...s};return Object.defineProperty(t,"shape",{value:c}),c}})}let n=Hr(()=>Zm(t));V(e._zod,"propValues",()=>{let s=t.shape,c={};for(let u in s){let l=s[u]._zod;if(l.values){c[u]??(c[u]=new Set);for(let d of l.values)c[u].add(d)}}return c});let o=gr,i=t.catchall,a;e._zod.parse=(s,c)=>{a??(a=n.value);let u=s.value;if(!o(u))return s.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),s;s.value={};let l=[],d=a.shape;for(let m of a.keys){let p=d[m],g=p._zod.optout==="optional",h=p._zod.run({value:u[m],issues:[]},c);h instanceof Promise?l.push(h.then(_=>Oi(_,s,m,u,g))):Oi(h,s,m,u,g)}return i?Lm(l,u,s,c,n.value,e):l.length?Promise.all(l).then(()=>s):s}}),Fm=f("$ZodObjectJIT",(e,t)=>{qm.init(e,t);let r=e._zod.parse,n=Hr(()=>Zm(t)),o=m=>{let p=new zi(["shape","payload","ctx"]),g=n.value,h=I=>{let A=yi(I);return`shape[${A}]._zod.run({ value: input[${A}], issues: [] }, ctx)`};p.write("const input = payload.value;");let _=Object.create(null),b=0;for(let I of g.keys)_[I]=`key_${b++}`;p.write("const newResult = {};");for(let I of g.keys){let A=_[I],j=yi(I),de=m[I]?._zod?.optout==="optional";p.write(`const ${A} = ${h(I)};`),de?p.write(` if (${A}.issues.length) { if (${j} in input) { payload.issues = payload.issues.concat(${A}.issues.map(iss => ({ @@ -34,7 +34,7 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?l=` newResult[${j}] = ${A}.value; } - `):f.write(` + `):p.write(` if (${A}.issues.length) { payload.issues = payload.issues.concat(${A}.issues.map(iss => ({ ...iss, @@ -50,11 +50,11 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?l=` newResult[${j}] = ${A}.value; } - `)}f.write("payload.value = newResult;"),f.write("return payload;");let E=f.compile();return(I,A)=>E(p,I,A)},i,a=gr,s=!bi.jitless,u=s&&Gs.value,l=e.catchall,d;t._zod.parse=(p,f)=>{d??(d=n.value);let g=p.value;return a(g)?s&&u&&f?.async===!1&&f.jitless!==!0?(i||(i=o(e.shape)),p=i(p,f),l?Km([],g,p,f,d,t):p):r(p,f):(p.issues.push({expected:"object",code:"invalid_type",input:g,inst:t}),p)}});function Rm(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;let o=t.filter(i=>!er(i));return o.length===1?(e.value=o[0].value,o[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(a=>qe(a,n,be())))}),e)}var io=m("$ZodUnion",(t,e)=>{Z.init(t,e),q(t._zod,"optin",()=>e.options.some(o=>o._zod.optin==="optional")?"optional":void 0),q(t._zod,"optout",()=>e.options.some(o=>o._zod.optout==="optional")?"optional":void 0),q(t._zod,"values",()=>{if(e.options.every(o=>o._zod.values))return new Set(e.options.flatMap(o=>Array.from(o._zod.values)))}),q(t._zod,"pattern",()=>{if(e.options.every(o=>o._zod.pattern)){let o=e.options.map(i=>i._zod.pattern);return new RegExp(`^(${o.map(i=>Fn(i.source)).join("|")})$`)}});let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(o,i)=>{if(r)return n(o,i);let a=!1,s=[];for(let c of e.options){let u=c._zod.run({value:o.value,issues:[]},i);if(u instanceof Promise)s.push(u),a=!0;else{if(u.issues.length===0)return u;s.push(u)}}return a?Promise.all(s).then(c=>Rm(c,o,t,i)):Rm(s,o,t,i)}});function Am(t,e,r,n){let o=t.filter(i=>i.issues.length===0);return o.length===1?(e.value=o[0].value,e):(o.length===0?e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(a=>qe(a,n,be())))}):e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:[],inclusive:!1}),e)}var mu=m("$ZodXor",(t,e)=>{io.init(t,e),e.inclusive=!1;let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(o,i)=>{if(r)return n(o,i);let a=!1,s=[];for(let c of e.options){let u=c._zod.run({value:o.value,issues:[]},i);u instanceof Promise?(s.push(u),a=!0):s.push(u)}return a?Promise.all(s).then(c=>Am(c,o,t,i)):Am(s,o,t,i)}}),hu=m("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,io.init(t,e);let r=t._zod.parse;q(t._zod,"propValues",()=>{let o={};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[s,c]of Object.entries(a)){o[s]||(o[s]=new Set);for(let u of c)o[s].add(u)}}return o});let n=Hr(()=>{let o=e.options,i=new Map;for(let a of o){let s=a._zod.propValues?.[e.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let c of s){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(o,i)=>{let a=o.value;if(!gr(a))return o.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),o;let s=n.value.get(a?.[e.discriminator]);return s?s._zod.run(o,i):e.unionFallback?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:a,path:[e.discriminator],inst:t}),o)}}),gu=m("$ZodIntersection",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{let o=r.value,i=e.left._zod.run({value:o,issues:[]},n),a=e.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([c,u])=>Mm(r,c,u)):Mm(r,i,a)}});function Oc(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(Qt(t)&&Qt(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),o={...t,...e};for(let i of n){let a=Oc(t[i],e[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};o[i]=a.data}return{valid:!0,data:o}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;ns.l&&s.r).map(([s])=>s);if(i.length&&o&&t.issues.push({...o,keys:i}),er(t))return t;let a=Oc(e.value,r.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return t.value=a.data,t}var Mi=m("$ZodTuple",(t,e)=>{Z.init(t,e);let r=e.items;t._zod.parse=(n,o)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({input:i,inst:t,expected:"tuple",code:"invalid_type"}),n;n.value=[];let a=[],s=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),c=s===-1?0:r.length-s;if(!e.rest){let l=i.length>r.length,d=i.length=i.length&&u>=c)continue;let d=l._zod.run({value:i[u],issues:[]},o);d instanceof Promise?a.push(d.then(p=>Pi(p,n,u))):Pi(d,n,u)}if(e.rest){let l=i.slice(r.length);for(let d of l){u++;let p=e.rest._zod.run({value:d,issues:[]},o);p instanceof Promise?a.push(p.then(f=>Pi(f,n,u))):Pi(p,n,u)}}return a.length?Promise.all(a).then(()=>n):n}});function Pi(t,e,r){t.issues.length&&e.issues.push(...Ge(r,t.issues)),e.value[r]=t.value}var vu=m("$ZodRecord",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!Qt(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:t}),r;let i=[],a=e.keyType._zod.values;if(a){r.value={};let s=new Set;for(let u of a)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){s.add(typeof u=="number"?u.toString():u);let l=e.valueType._zod.run({value:o[u],issues:[]},n);l instanceof Promise?i.push(l.then(d=>{d.issues.length&&r.issues.push(...Ge(u,d.issues)),r.value[u]=d.value})):(l.issues.length&&r.issues.push(...Ge(u,l.issues)),r.value[u]=l.value)}let c;for(let u in o)s.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:t,keys:c})}else{r.value={};for(let s of Reflect.ownKeys(o)){if(s==="__proto__")continue;let c=e.keyType._zod.run({value:s,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof s=="string"&&Ei.test(s)&&c.issues.length){let d=e.keyType._zod.run({value:Number(s),issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(c=d)}if(c.issues.length){e.mode==="loose"?r.value[s]=o[s]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(d=>qe(d,n,be())),input:s,path:[s],inst:t});continue}let l=e.valueType._zod.run({value:o[s],issues:[]},n);l instanceof Promise?i.push(l.then(d=>{d.issues.length&&r.issues.push(...Ge(s,d.issues)),r.value[c.value]=d.value})):(l.issues.length&&r.issues.push(...Ge(s,l.issues)),r.value[c.value]=l.value)}}return i.length?Promise.all(i).then(()=>r):r}}),_u=m("$ZodMap",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:t}),r;let i=[];r.value=new Map;for(let[a,s]of o){let c=e.keyType._zod.run({value:a,issues:[]},n),u=e.valueType._zod.run({value:s,issues:[]},n);c instanceof Promise||u instanceof Promise?i.push(Promise.all([c,u]).then(([l,d])=>{Cm(l,d,r,a,o,t,n)})):Cm(c,u,r,a,o,t,n)}return i.length?Promise.all(i).then(()=>r):r}});function Cm(t,e,r,n,o,i,a){t.issues.length&&(Vn.has(typeof n)?r.issues.push(...Ge(n,t.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:i,issues:t.issues.map(s=>qe(s,a,be()))})),e.issues.length&&(Vn.has(typeof n)?r.issues.push(...Ge(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:i,key:n,issues:e.issues.map(s=>qe(s,a,be()))})),r.value.set(t.value,e.value)}var yu=m("$ZodSet",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:t,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let a of o){let s=e.valueType._zod.run({value:a,issues:[]},n);s instanceof Promise?i.push(s.then(c=>Um(c,r))):Um(s,r)}return i.length?Promise.all(i).then(()=>r):r}});function Um(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var $u=m("$ZodEnum",(t,e)=>{Z.init(t,e);let r=qn(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(o=>Vn.has(typeof o)).map(o=>typeof o=="string"?tt(o):o.toString()).join("|")})$`),t._zod.parse=(o,i)=>{let a=o.value;return n.has(a)||o.issues.push({code:"invalid_value",values:r,input:a,inst:t}),o}}),bu=m("$ZodLiteral",(t,e)=>{if(Z.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?tt(n):n?tt(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),n}}),xu=m("$ZodFile",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{let o=r.value;return o instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:o,inst:t}),r}}),ku=m("$ZodTransform",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new hr(t.constructor.name);let o=e.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(a=>(r.value=a,r));if(o instanceof Promise)throw new _t;return r.value=o,r}});function Zm(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var Ci=m("$ZodOptional",(t,e)=>{Z.init(t,e),t._zod.optin="optional",t._zod.optout="optional",q(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),q(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Fn(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Zm(i,r.value)):Zm(o,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),Su=m("$ZodExactOptional",(t,e)=>{Ci.init(t,e),q(t._zod,"values",()=>e.innerType._zod.values),q(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),wu=m("$ZodNullable",(t,e)=>{Z.init(t,e),q(t._zod,"optin",()=>e.innerType._zod.optin),q(t._zod,"optout",()=>e.innerType._zod.optout),q(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Fn(r.source)}|null)$`):void 0}),q(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)}),zu=m("$ZodDefault",(t,e)=>{Z.init(t,e),t._zod.optin="optional",q(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Lm(i,e)):Lm(o,e)}});function Lm(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var Iu=m("$ZodPrefault",(t,e)=>{Z.init(t,e),t._zod.optin="optional",q(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),Eu=m("$ZodNonOptional",(t,e)=>{Z.init(t,e),q(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 o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>qm(i,t)):qm(o,t)}});function qm(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 Tu=m("$ZodSuccess",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new hr("ZodSuccess");let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),Pu=m("$ZodCatch",(t,e)=>{Z.init(t,e),q(t._zod,"optin",()=>e.innerType._zod.optin),q(t._zod,"optout",()=>e.innerType._zod.optout),q(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>qe(a,n,be()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=e.catchValue({...r,error:{issues:o.issues.map(i=>qe(i,n,be()))},input:r.value}),r.issues=[]),r)}}),Ou=m("$ZodNaN",(t,e)=>{Z.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)}),ju=m("$ZodPipe",(t,e)=>{Z.init(t,e),q(t._zod,"values",()=>e.in._zod.values),q(t._zod,"optin",()=>e.in._zod.optin),q(t._zod,"optout",()=>e.out._zod.optout),q(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(a=>Oi(a,e.in,n)):Oi(i,e.in,n)}let o=e.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Oi(i,e.out,n)):Oi(o,e.out,n)}});function Oi(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},r)}var ao=m("$ZodCodec",(t,e)=>{Z.init(t,e),q(t._zod,"values",()=>e.in._zod.values),q(t._zod,"optin",()=>e.in._zod.optin),q(t._zod,"optout",()=>e.out._zod.optout),q(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let i=e.in._zod.run(r,n);return i instanceof Promise?i.then(a=>ji(a,e,n)):ji(i,e,n)}else{let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(a=>ji(a,e,n)):ji(i,e,n)}}});function ji(t,e,r){if(t.issues.length)return t.aborted=!0,t;if((r.direction||"forward")==="forward"){let o=e.transform(t.value,t);return o instanceof Promise?o.then(i=>Di(t,i,e.out,r)):Di(t,o,e.out,r)}else{let o=e.reverseTransform(t.value,t);return o instanceof Promise?o.then(i=>Di(t,i,e.in,r)):Di(t,o,e.in,r)}}function Di(t,e,r,n){return t.issues.length?(t.aborted=!0,t):r._zod.run({value:e,issues:t.issues},n)}var Du=m("$ZodReadonly",(t,e)=>{Z.init(t,e),q(t._zod,"propValues",()=>e.innerType._zod.propValues),q(t._zod,"values",()=>e.innerType._zod.values),q(t._zod,"optin",()=>e.innerType?._zod?.optin),q(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let o=e.innerType._zod.run(r,n);return o instanceof Promise?o.then(Fm):Fm(o)}});function Fm(t){return t.value=Object.freeze(t.value),t}var Nu=m("$ZodTemplateLiteral",(t,e)=>{Z.init(t,e);let r=[];for(let n of e.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let i=o.startsWith("^")?1:0,a=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(i,a))}else if(n===null||Xs.has(typeof n))r.push(tt(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(n,o)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:t,expected:"string",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:e.format??"template_literal",pattern:t._zod.pattern.source}),n)}),Ru=m("$ZodFunction",(t,e)=>(Z.init(t,e),t._def=e,t._zod.def=e,t.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let o=t._def.input?Gn(t._def.input,n):n,i=Reflect.apply(r,this,o);return t._def.output?Gn(t._def.output,i):i}},t.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=t._def.input?await Xn(t._def.input,n):n,i=await Reflect.apply(r,this,o);return t._def.output?await Xn(t._def.output,i):i}},t._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:t}),r):(t._def.output&&t._def.output._zod.def.type==="promise"?r.value=t.implementAsync(r.value):r.value=t.implement(r.value),r),t.input=(...r)=>{let n=t.constructor;return Array.isArray(r[0])?new n({type:"function",input:new Mi({type:"tuple",items:r[0],rest:r[1]}),output:t._def.output}):new n({type:"function",input:r[0],output:t._def.output})},t.output=r=>{let n=t.constructor;return new n({type:"function",input:t._def.input,output:r})},t)),Au=m("$ZodPromise",(t,e)=>{Z.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>e.innerType._zod.run({value:o,issues:[]},n))}),Mu=m("$ZodLazy",(t,e)=>{Z.init(t,e),q(t._zod,"innerType",()=>e.getter()),q(t._zod,"pattern",()=>t._zod.innerType?._zod?.pattern),q(t._zod,"propValues",()=>t._zod.innerType?._zod?.propValues),q(t._zod,"optin",()=>t._zod.innerType?._zod?.optin??void 0),q(t._zod,"optout",()=>t._zod.innerType?._zod?.optout??void 0),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),Cu=m("$ZodCustom",(t,e)=>{se.init(t,e),Z.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,o=e.fn(n);if(o instanceof Promise)return o.then(i=>Vm(i,r,n,t));Vm(o,r,n,t)}});function Vm(t,e,r,n){if(!t){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),e.issues.push(Gr(o))}}var Jb=()=>{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"},map:{unit:"entries",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",mac:"MAC 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"},n={nan:"NaN"};return o=>{switch(o.code){case"invalid_type":{let i=n[o.expected]??o.expected,a=C(o.input),s=n[a]??a;return`Invalid input: expected ${i}, received ${s}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${R(o.values[0])}`:`Invalid option: expected one of ${N(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",a=e(o.origin);return a?`Too big: expected ${o.origin??"value"} to have ${i}${o.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",a=e(o.origin);return a?`Too small: expected ${o.origin} to have ${i}${o.minimum.toString()} ${a.unit}`:`Too small: expected ${o.origin} to be ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.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":""}: ${N(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 Uu(){return{localeError:Jb()}}var Bm;var Lu=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,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)??{}};delete n.id;let o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function qu(){return new Lu}(Bm=globalThis).__zod_globalRegistry??(Bm.__zod_globalRegistry=qu());var Ae=globalThis.__zod_globalRegistry;function Fu(t,e){return new t({type:"string",...k(e)})}function Ui(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...k(e)})}function so(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...k(e)})}function Zi(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...k(e)})}function Li(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...k(e)})}function qi(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...k(e)})}function Fi(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...k(e)})}function co(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...k(e)})}function Vi(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...k(e)})}function Ji(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...k(e)})}function Wi(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...k(e)})}function Ki(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...k(e)})}function Hi(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...k(e)})}function Gi(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...k(e)})}function Bi(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...k(e)})}function Xi(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...k(e)})}function Yi(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...k(e)})}function Vu(t,e){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...k(e)})}function Qi(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...k(e)})}function ea(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...k(e)})}function ta(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...k(e)})}function ra(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...k(e)})}function na(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...k(e)})}function oa(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...k(e)})}function Ju(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...k(e)})}function Wu(t,e){return new t({type:"string",format:"date",check:"string_format",...k(e)})}function Ku(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...k(e)})}function Hu(t,e){return new t({type:"string",format:"duration",check:"string_format",...k(e)})}function Gu(t,e){return new t({type:"number",checks:[],...k(e)})}function Bu(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...k(e)})}function Xu(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...k(e)})}function Yu(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...k(e)})}function Qu(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...k(e)})}function el(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...k(e)})}function tl(t,e){return new t({type:"boolean",...k(e)})}function rl(t,e){return new t({type:"bigint",...k(e)})}function nl(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...k(e)})}function ol(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...k(e)})}function il(t,e){return new t({type:"symbol",...k(e)})}function al(t,e){return new t({type:"undefined",...k(e)})}function sl(t,e){return new t({type:"null",...k(e)})}function cl(t){return new t({type:"any"})}function ul(t){return new t({type:"unknown"})}function ll(t,e){return new t({type:"never",...k(e)})}function dl(t,e){return new t({type:"void",...k(e)})}function pl(t,e){return new t({type:"date",...k(e)})}function fl(t,e){return new t({type:"nan",...k(e)})}function Nt(t,e){return new Tc({check:"less_than",...k(e),value:t,inclusive:!1})}function Be(t,e){return new Tc({check:"less_than",...k(e),value:t,inclusive:!0})}function Rt(t,e){return new Pc({check:"greater_than",...k(e),value:t,inclusive:!1})}function Me(t,e){return new Pc({check:"greater_than",...k(e),value:t,inclusive:!0})}function ml(t){return Rt(0,t)}function hl(t){return Nt(0,t)}function gl(t){return Be(0,t)}function vl(t){return Me(0,t)}function yr(t,e){return new mm({check:"multiple_of",...k(e),value:t})}function $r(t,e){return new vm({check:"max_size",...k(e),maximum:t})}function At(t,e){return new _m({check:"min_size",...k(e),minimum:t})}function Xr(t,e){return new ym({check:"size_equals",...k(e),size:t})}function Yr(t,e){return new $m({check:"max_length",...k(e),maximum:t})}function tr(t,e){return new bm({check:"min_length",...k(e),minimum:t})}function Qr(t,e){return new xm({check:"length_equals",...k(e),length:t})}function uo(t,e){return new km({check:"string_format",format:"regex",...k(e),pattern:t})}function lo(t){return new Sm({check:"string_format",format:"lowercase",...k(t)})}function po(t){return new wm({check:"string_format",format:"uppercase",...k(t)})}function fo(t,e){return new zm({check:"string_format",format:"includes",...k(e),includes:t})}function mo(t,e){return new Im({check:"string_format",format:"starts_with",...k(e),prefix:t})}function ho(t,e){return new Em({check:"string_format",format:"ends_with",...k(e),suffix:t})}function _l(t,e,r){return new Tm({check:"property",property:t,schema:e,...k(r)})}function go(t,e){return new Pm({check:"mime_type",mime:t,...k(e)})}function yt(t){return new Om({check:"overwrite",tx:t})}function vo(t){return yt(e=>e.normalize(t))}function _o(){return yt(t=>t.trim())}function yo(){return yt(t=>t.toLowerCase())}function $o(){return yt(t=>t.toUpperCase())}function ia(){return yt(t=>Hs(t))}function Xm(t,e,r){return new t({type:"array",element:e,...k(r)})}function yl(t,e){return new t({type:"file",...k(e)})}function $l(t,e,r){let n=k(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function bl(t,e,r){return new t({type:"custom",check:"custom",fn:e,...k(r)})}function xl(t){let e=Gb(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Gr(n,r.value,e._zod.def));else{let o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=e),o.continue??(o.continue=!e._zod.def.abort),r.issues.push(Gr(o))}},t(r.value,r)));return e}function Gb(t,e){let r=new se({check:"custom",...k(e)});return r._zod.check=t,r}function kl(t){let e=new se({check:"describe"});return e._zod.onattach=[r=>{let n=Ae.get(r)??{};Ae.add(r,{...n,description:t})}],e._zod.check=()=>{},e}function Sl(t){let e=new se({check:"meta"});return e._zod.onattach=[r=>{let n=Ae.get(r)??{};Ae.add(r,{...n,...t})}],e._zod.check=()=>{},e}function wl(t,e){let r=k(e),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(f=>typeof f=="string"?f.toLowerCase():f),o=o.map(f=>typeof f=="string"?f.toLowerCase():f));let i=new Set(n),a=new Set(o),s=t.Codec??ao,c=t.Boolean??oo,u=t.String??_r,l=new u({type:"string",error:r.error}),d=new c({type:"boolean",error:r.error}),p=new s({type:"pipe",in:l,out:d,transform:((f,g)=>{let h=f;return r.case!=="sensitive"&&(h=h.toLowerCase()),i.has(h)?!0:a.has(h)?!1:(g.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...a],input:g.value,inst:p,continue:!1}),{})}),reverseTransform:((f,g)=>f===!0?n[0]||"true":o[0]||"false"),error:r.error});return p}function en(t,e,r,n={}){let o=k(n),i={...k(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:s=>r.test(s),...o};return r instanceof RegExp&&(i.pattern=r),new t(i)}function aa(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??Ae,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function pe(t,e,r={path:[],schemaPath:[]}){var n;let o=t._zod.def,i=e.seen.get(t);if(i)return i.count++,r.schemaPath.includes(t)&&(i.cycle=r.path),i.schema;let a={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,a);let s=t._zod.toJSONSchema?.();if(s)a.schema=s;else{let l={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,a.schema,l);else{let p=a.schema,f=e.processors[o.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);f(t,e,p,l)}let d=t._zod.parent;d&&(a.ref||(a.ref=d),pe(d,e,l),e.seen.get(d).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(a.schema,c),e.io==="input"&&Ce(t)&&(delete a.schema.examples,delete a.schema.default),e.io==="input"&&a.schema._prefault&&((n=a.schema).default??(n.default=a.schema._prefault)),delete a.schema._prefault,e.seen.get(t).schema}function sa(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let a of t.seen.entries()){let s=t.metadataRegistry.get(a[0])?.id;if(s){let c=n.get(s);if(c&&c!==a[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,a[0])}}let o=a=>{let s=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let d=t.external.registry.get(a[0])?.id,p=t.external.uri??(g=>g);if(d)return{ref:p(d)};let f=a[1].defId??a[1].schema.id??`schema${t.counter++}`;return a[1].defId=f,{defId:f,ref:`${p("__shared")}#/${s}/${f}`}}if(a[1]===r)return{ref:"#"};let u=`#/${s}/`,l=a[1].schema.id??`__schema${t.counter++}`;return{defId:l,ref:u+l}},i=a=>{if(a[1].schema.$ref)return;let s=a[1],{ref:c,defId:u}=o(a);s.def={...s.schema},u&&(s.defId=u);let l=s.schema;for(let d in l)delete l[d];l.$ref=c};if(t.cycles==="throw")for(let a of t.seen.entries()){let s=a[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/ + `)}p.write("payload.value = newResult;"),p.write("return payload;");let E=p.compile();return(I,A)=>E(m,I,A)},i,a=gr,s=!_i.jitless,u=s&&Hs.value,l=t.catchall,d;e._zod.parse=(m,p)=>{d??(d=n.value);let g=m.value;return a(g)?s&&u&&p?.async===!1&&p.jitless!==!0?(i||(i=o(t.shape)),m=i(m,p),l?Lm([],g,m,p,d,e):m):r(m,p):(m.issues.push({expected:"object",code:"invalid_type",input:g,inst:e}),m)}});function Tm(e,t,r,n){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter(i=>!er(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(a=>qe(a,n,be())))}),t)}var no=f("$ZodUnion",(e,t)=>{Z.init(e,t),V(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),V(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),V(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),V(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${o.map(i=>Ln(i.source)).join("|")})$`)}});let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let a=!1,s=[];for(let c of t.options){let u=c._zod.run({value:o.value,issues:[]},i);if(u instanceof Promise)s.push(u),a=!0;else{if(u.issues.length===0)return u;s.push(u)}}return a?Promise.all(s).then(c=>Tm(c,o,e,i)):Tm(s,o,e,i)}});function Pm(e,t,r,n){let o=e.filter(i=>i.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(a=>qe(a,n,be())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var pu=f("$ZodXor",(e,t)=>{no.init(e,t),t.inclusive=!1;let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let a=!1,s=[];for(let c of t.options){let u=c._zod.run({value:o.value,issues:[]},i);u instanceof Promise?(s.push(u),a=!0):s.push(u)}return a?Promise.all(s).then(c=>Pm(c,o,e,i)):Pm(s,o,e,i)}}),fu=f("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,no.init(e,t);let r=e._zod.parse;V(e._zod,"propValues",()=>{let o={};for(let i of t.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(let[s,c]of Object.entries(a)){o[s]||(o[s]=new Set);for(let u of c)o[s].add(u)}}return o});let n=Hr(()=>{let o=t.options,i=new Map;for(let a of o){let s=a._zod.propValues?.[t.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(a)}"`);for(let c of s){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});e._zod.parse=(o,i)=>{let a=o.value;if(!gr(a))return o.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),o;let s=n.value.get(a?.[t.discriminator]);return s?s._zod.run(o,i):t.unionFallback?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:a,path:[t.discriminator],inst:e}),o)}}),mu=f("$ZodIntersection",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,i=t.left._zod.run({value:o,issues:[]},n),a=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([c,u])=>Om(r,c,u)):Om(r,i,a)}});function Tc(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Qt(e)&&Qt(t)){let r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(let i of n){let a=Tc(e[i],t[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};o[i]=a.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;ns.l&&s.r).map(([s])=>s);if(i.length&&o&&e.issues.push({...o,keys:i}),er(e))return e;let a=Tc(t.value,r.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var Ni=f("$ZodTuple",(e,t)=>{Z.init(e,t);let r=t.items;e._zod.parse=(n,o)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({input:i,inst:e,expected:"tuple",code:"invalid_type"}),n;n.value=[];let a=[],s=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),c=s===-1?0:r.length-s;if(!t.rest){let l=i.length>r.length,d=i.length=i.length&&u>=c)continue;let d=l._zod.run({value:i[u],issues:[]},o);d instanceof Promise?a.push(d.then(m=>Ii(m,n,u))):Ii(d,n,u)}if(t.rest){let l=i.slice(r.length);for(let d of l){u++;let m=t.rest._zod.run({value:d,issues:[]},o);m instanceof Promise?a.push(m.then(p=>Ii(p,n,u))):Ii(m,n,u)}}return a.length?Promise.all(a).then(()=>n):n}});function Ii(e,t,r){e.issues.length&&t.issues.push(...Ge(r,e.issues)),t.value[r]=e.value}var hu=f("$ZodRecord",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Qt(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let i=[],a=t.keyType._zod.values;if(a){r.value={};let s=new Set;for(let u of a)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){s.add(typeof u=="number"?u.toString():u);let l=t.valueType._zod.run({value:o[u],issues:[]},n);l instanceof Promise?i.push(l.then(d=>{d.issues.length&&r.issues.push(...Ge(u,d.issues)),r.value[u]=d.value})):(l.issues.length&&r.issues.push(...Ge(u,l.issues)),r.value[u]=l.value)}let c;for(let u in o)s.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:c})}else{r.value={};for(let s of Reflect.ownKeys(o)){if(s==="__proto__")continue;let c=t.keyType._zod.run({value:s,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof s=="string"&&wi.test(s)&&c.issues.length&&c.issues.some(d=>d.code==="invalid_type"&&d.expected==="number")){let d=t.keyType._zod.run({value:Number(s),issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(c=d)}if(c.issues.length){t.mode==="loose"?r.value[s]=o[s]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(d=>qe(d,n,be())),input:s,path:[s],inst:e});continue}let l=t.valueType._zod.run({value:o[s],issues:[]},n);l instanceof Promise?i.push(l.then(d=>{d.issues.length&&r.issues.push(...Ge(s,d.issues)),r.value[c.value]=d.value})):(l.issues.length&&r.issues.push(...Ge(s,l.issues)),r.value[c.value]=l.value)}}return i.length?Promise.all(i).then(()=>r):r}}),gu=f("$ZodMap",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;let i=[];r.value=new Map;for(let[a,s]of o){let c=t.keyType._zod.run({value:a,issues:[]},n),u=t.valueType._zod.run({value:s,issues:[]},n);c instanceof Promise||u instanceof Promise?i.push(Promise.all([c,u]).then(([l,d])=>{jm(l,d,r,a,o,e,n)})):jm(c,u,r,a,o,e,n)}return i.length?Promise.all(i).then(()=>r):r}});function jm(e,t,r,n,o,i,a){e.issues.length&&(qn.has(typeof n)?r.issues.push(...Ge(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:i,issues:e.issues.map(s=>qe(s,a,be()))})),t.issues.length&&(qn.has(typeof n)?r.issues.push(...Ge(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:i,key:n,issues:t.issues.map(s=>qe(s,a,be()))})),r.value.set(e.value,t.value)}var vu=f("$ZodSet",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let a of o){let s=t.valueType._zod.run({value:a,issues:[]},n);s instanceof Promise?i.push(s.then(c=>Dm(c,r))):Dm(s,r)}return i.length?Promise.all(i).then(()=>r):r}});function Dm(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var _u=f("$ZodEnum",(e,t)=>{Z.init(e,t);let r=Zn(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>qn.has(typeof o)).map(o=>typeof o=="string"?tt(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{let a=o.value;return n.has(a)||o.issues.push({code:"invalid_value",values:r,input:a,inst:e}),o}}),yu=f("$ZodLiteral",(e,t)=>{if(Z.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?tt(n):n?tt(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),$u=f("$ZodFile",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return o instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),r}}),bu=f("$ZodTransform",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new hr(e.constructor.name);let o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(a=>(r.value=a,r));if(o instanceof Promise)throw new _t;return r.value=o,r}});function Nm(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var Ri=f("$ZodOptional",(e,t)=>{Z.init(e,t),e._zod.optin="optional",e._zod.optout="optional",V(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),V(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Ln(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Nm(i,r.value)):Nm(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),xu=f("$ZodExactOptional",(e,t)=>{Ri.init(e,t),V(e._zod,"values",()=>t.innerType._zod.values),V(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),ku=f("$ZodNullable",(e,t)=>{Z.init(e,t),V(e._zod,"optin",()=>t.innerType._zod.optin),V(e._zod,"optout",()=>t.innerType._zod.optout),V(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Ln(r.source)}|null)$`):void 0}),V(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),Su=f("$ZodDefault",(e,t)=>{Z.init(e,t),e._zod.optin="optional",V(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Rm(i,t)):Rm(o,t)}});function Rm(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var wu=f("$ZodPrefault",(e,t)=>{Z.init(e,t),e._zod.optin="optional",V(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),zu=f("$ZodNonOptional",(e,t)=>{Z.init(e,t),V(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Am(i,e)):Am(o,e)}});function Am(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var Iu=f("$ZodSuccess",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new hr("ZodSuccess");let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),Eu=f("$ZodCatch",(e,t)=>{Z.init(e,t),V(e._zod,"optin",()=>t.innerType._zod.optin),V(e._zod,"optout",()=>t.innerType._zod.optout),V(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(a=>qe(a,n,be()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>qe(i,n,be()))},input:r.value}),r.issues=[]),r)}}),Tu=f("$ZodNaN",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:e,expected:"nan",code:"invalid_type"}),r)}),Pu=f("$ZodPipe",(e,t)=>{Z.init(e,t),V(e._zod,"values",()=>t.in._zod.values),V(e._zod,"optin",()=>t.in._zod.optin),V(e._zod,"optout",()=>t.out._zod.optout),V(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(a=>Ei(a,t.in,n)):Ei(i,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Ei(i,t.out,n)):Ei(o,t.out,n)}});function Ei(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var oo=f("$ZodCodec",(e,t)=>{Z.init(e,t),V(e._zod,"values",()=>t.in._zod.values),V(e._zod,"optin",()=>t.in._zod.optin),V(e._zod,"optout",()=>t.out._zod.optout),V(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let i=t.in._zod.run(r,n);return i instanceof Promise?i.then(a=>Ti(a,t,n)):Ti(i,t,n)}else{let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(a=>Ti(a,t,n)):Ti(i,t,n)}}});function Ti(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(i=>Pi(e,i,t.out,r)):Pi(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(i=>Pi(e,i,t.in,r)):Pi(e,o,t.in,r)}}function Pi(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}var Ou=f("$ZodReadonly",(e,t)=>{Z.init(e,t),V(e._zod,"propValues",()=>t.innerType._zod.propValues),V(e._zod,"values",()=>t.innerType._zod.values),V(e._zod,"optin",()=>t.innerType?._zod?.optin),V(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(Mm):Mm(o)}});function Mm(e){return e.value=Object.freeze(e.value),e}var ju=f("$ZodTemplateLiteral",(e,t)=>{Z.init(e,t);let r=[];for(let n of t.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let i=o.startsWith("^")?1:0,a=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(i,a))}else if(n===null||Gs.has(typeof n))r.push(tt(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);e._zod.pattern=new RegExp(`^${r.join("")}$`),e._zod.parse=(n,o)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:e,expected:"string",code:"invalid_type"}),n):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),n)}),Du=f("$ZodFunction",(e,t)=>(Z.init(e,t),e._def=t,e._zod.def=t,e.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let o=e._def.input?Kn(e._def.input,n):n,i=Reflect.apply(r,this,o);return e._def.output?Kn(e._def.output,i):i}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=e._def.input?await Gn(e._def.input,n):n,i=await Reflect.apply(r,this,o);return e._def.output?await Gn(e._def.output,i):i}},e._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let n=e.constructor;return Array.isArray(r[0])?new n({type:"function",input:new Ni({type:"tuple",items:r[0],rest:r[1]}),output:e._def.output}):new n({type:"function",input:r[0],output:e._def.output})},e.output=r=>{let n=e.constructor;return new n({type:"function",input:e._def.input,output:r})},e)),Nu=f("$ZodPromise",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>t.innerType._zod.run({value:o,issues:[]},n))}),Ru=f("$ZodLazy",(e,t)=>{Z.init(e,t),V(e._zod,"innerType",()=>t.getter()),V(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),V(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),V(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),V(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,n)=>e._zod.innerType._zod.run(r,n)}),Au=f("$ZodCustom",(e,t)=>{se.init(e,t),Z.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>Cm(i,r,n,e));Cm(o,r,n,e)}});function Cm(e,t,r,n){if(!e){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(Gr(o))}}var Jb=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function t(o){return e[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",mac:"MAC 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"},n={nan:"NaN"};return o=>{switch(o.code){case"invalid_type":{let i=n[o.expected]??o.expected,a=C(o.input),s=n[a]??a;return`Invalid input: expected ${i}, received ${s}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${R(o.values[0])}`:`Invalid option: expected one of ${N(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",a=t(o.origin);return a?`Too big: expected ${o.origin??"value"} to have ${i}${o.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",a=t(o.origin);return a?`Too small: expected ${o.origin} to have ${i}${o.minimum.toString()} ${a.unit}`:`Too small: expected ${o.origin} to be ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.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":""}: ${N(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 Mu(){return{localeError:Jb()}}var Vm;var Uu=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){let n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){let r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){let r=t._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}};function Zu(){return new Uu}(Vm=globalThis).__zod_globalRegistry??(Vm.__zod_globalRegistry=Zu());var Ae=globalThis.__zod_globalRegistry;function Lu(e,t){return new e({type:"string",...k(t)})}function Ai(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...k(t)})}function io(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...k(t)})}function Mi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...k(t)})}function Ci(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...k(t)})}function Ui(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...k(t)})}function Zi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...k(t)})}function ao(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...k(t)})}function Li(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...k(t)})}function qi(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...k(t)})}function Fi(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...k(t)})}function Vi(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...k(t)})}function Ji(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...k(t)})}function Wi(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...k(t)})}function Ki(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...k(t)})}function Hi(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...k(t)})}function Gi(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...k(t)})}function qu(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...k(t)})}function Bi(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...k(t)})}function Xi(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...k(t)})}function Yi(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...k(t)})}function Qi(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...k(t)})}function ea(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...k(t)})}function ta(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...k(t)})}function Fu(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...k(t)})}function Vu(e,t){return new e({type:"string",format:"date",check:"string_format",...k(t)})}function Ju(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...k(t)})}function Wu(e,t){return new e({type:"string",format:"duration",check:"string_format",...k(t)})}function Ku(e,t){return new e({type:"number",checks:[],...k(t)})}function Hu(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...k(t)})}function Gu(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...k(t)})}function Bu(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...k(t)})}function Xu(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...k(t)})}function Yu(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...k(t)})}function Qu(e,t){return new e({type:"boolean",...k(t)})}function el(e,t){return new e({type:"bigint",...k(t)})}function tl(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...k(t)})}function rl(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...k(t)})}function nl(e,t){return new e({type:"symbol",...k(t)})}function ol(e,t){return new e({type:"undefined",...k(t)})}function il(e,t){return new e({type:"null",...k(t)})}function al(e){return new e({type:"any"})}function sl(e){return new e({type:"unknown"})}function cl(e,t){return new e({type:"never",...k(t)})}function ul(e,t){return new e({type:"void",...k(t)})}function ll(e,t){return new e({type:"date",...k(t)})}function dl(e,t){return new e({type:"nan",...k(t)})}function Nt(e,t){return new Ic({check:"less_than",...k(t),value:e,inclusive:!1})}function Be(e,t){return new Ic({check:"less_than",...k(t),value:e,inclusive:!0})}function Rt(e,t){return new Ec({check:"greater_than",...k(t),value:e,inclusive:!1})}function Me(e,t){return new Ec({check:"greater_than",...k(t),value:e,inclusive:!0})}function pl(e){return Rt(0,e)}function fl(e){return Nt(0,e)}function ml(e){return Be(0,e)}function hl(e){return Me(0,e)}function yr(e,t){return new cm({check:"multiple_of",...k(t),value:e})}function $r(e,t){return new dm({check:"max_size",...k(t),maximum:e})}function At(e,t){return new pm({check:"min_size",...k(t),minimum:e})}function Xr(e,t){return new fm({check:"size_equals",...k(t),size:e})}function Yr(e,t){return new mm({check:"max_length",...k(t),maximum:e})}function tr(e,t){return new hm({check:"min_length",...k(t),minimum:e})}function Qr(e,t){return new gm({check:"length_equals",...k(t),length:e})}function so(e,t){return new vm({check:"string_format",format:"regex",...k(t),pattern:e})}function co(e){return new _m({check:"string_format",format:"lowercase",...k(e)})}function uo(e){return new ym({check:"string_format",format:"uppercase",...k(e)})}function lo(e,t){return new $m({check:"string_format",format:"includes",...k(t),includes:e})}function po(e,t){return new bm({check:"string_format",format:"starts_with",...k(t),prefix:e})}function fo(e,t){return new xm({check:"string_format",format:"ends_with",...k(t),suffix:e})}function gl(e,t,r){return new km({check:"property",property:e,schema:t,...k(r)})}function mo(e,t){return new Sm({check:"mime_type",mime:e,...k(t)})}function yt(e){return new wm({check:"overwrite",tx:e})}function ho(e){return yt(t=>t.normalize(e))}function go(){return yt(e=>e.trim())}function vo(){return yt(e=>e.toLowerCase())}function _o(){return yt(e=>e.toUpperCase())}function ra(){return yt(e=>Ks(e))}function Jm(e,t,r){return new e({type:"array",element:t,...k(r)})}function vl(e,t){return new e({type:"file",...k(t)})}function _l(e,t,r){let n=k(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function yl(e,t,r){return new e({type:"custom",check:"custom",fn:t,...k(r)})}function $l(e){let t=Gb(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Gr(n,r.value,t._zod.def));else{let o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),r.issues.push(Gr(o))}},e(r.value,r)));return t}function Gb(e,t){let r=new se({check:"custom",...k(t)});return r._zod.check=e,r}function bl(e){let t=new se({check:"describe"});return t._zod.onattach=[r=>{let n=Ae.get(r)??{};Ae.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function xl(e){let t=new se({check:"meta"});return t._zod.onattach=[r=>{let n=Ae.get(r)??{};Ae.add(r,{...n,...e})}],t._zod.check=()=>{},t}function kl(e,t){let r=k(t),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(p=>typeof p=="string"?p.toLowerCase():p),o=o.map(p=>typeof p=="string"?p.toLowerCase():p));let i=new Set(n),a=new Set(o),s=e.Codec??oo,c=e.Boolean??ro,u=e.String??_r,l=new u({type:"string",error:r.error}),d=new c({type:"boolean",error:r.error}),m=new s({type:"pipe",in:l,out:d,transform:((p,g)=>{let h=p;return r.case!=="sensitive"&&(h=h.toLowerCase()),i.has(h)?!0:a.has(h)?!1:(g.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...a],input:g.value,inst:m,continue:!1}),{})}),reverseTransform:((p,g)=>p===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function en(e,t,r,n={}){let o=k(n),i={...k(n),check:"string_format",type:"string",format:t,fn:typeof r=="function"?r:s=>r.test(s),...o};return r instanceof RegExp&&(i.pattern=r),new e(i)}function na(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Ae,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function pe(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;let a={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,a);let s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{let l={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,l);else{let m=a.schema,p=t.processors[o.type];if(!p)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);p(e,t,m,l)}let d=e._zod.parent;d&&(a.ref||(a.ref=d),pe(d,t,l),t.seen.get(d).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(a.schema,c),t.io==="input"&&Ce(e)&&(delete a.schema.examples,delete a.schema.default),t.io==="input"&&a.schema._prefault&&((n=a.schema).default??(n.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function oa(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let a of e.seen.entries()){let s=e.metadataRegistry.get(a[0])?.id;if(s){let c=n.get(s);if(c&&c!==a[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,a[0])}}let o=a=>{let s=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let d=e.external.registry.get(a[0])?.id,m=e.external.uri??(g=>g);if(d)return{ref:m(d)};let p=a[1].defId??a[1].schema.id??`schema${e.counter++}`;return a[1].defId=p,{defId:p,ref:`${m("__shared")}#/${s}/${p}`}}if(a[1]===r)return{ref:"#"};let u=`#/${s}/`,l=a[1].schema.id??`__schema${e.counter++}`;return{defId:l,ref:u+l}},i=a=>{if(a[1].schema.$ref)return;let s=a[1],{ref:c,defId:u}=o(a);s.def={...s.schema},u&&(s.defId=u);let l=s.schema;for(let d in l)delete l[d];l.$ref=c};if(e.cycles==="throw")for(let a of e.seen.entries()){let s=a[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let a of t.seen.entries()){let s=a[1];if(e===a[0]){i(a);continue}if(t.external){let u=t.external.registry.get(a[0])?.id;if(e!==a[0]&&u){i(a);continue}}if(t.metadataRegistry.get(a[0])?.id){i(a);continue}if(s.cycle){i(a);continue}if(s.count>1&&t.reused==="ref"){i(a);continue}}}function ca(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let s=t.seen.get(a);if(s.ref===null)return;let c=s.def??s.schema,u={...c},l=s.ref;if(s.ref=null,l){n(l);let p=t.seen.get(l),f=p.schema;if(f.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(f)):Object.assign(c,f),Object.assign(c,u),a._zod.parent===l)for(let h in c)h==="$ref"||h==="allOf"||h in u||delete c[h];if(f.$ref&&p.def)for(let h in c)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(c[h])===JSON.stringify(p.def[h])&&delete c[h]}let d=a._zod.parent;if(d&&d!==l){n(d);let p=t.seen.get(d);if(p?.schema.$ref&&(c.$ref=p.schema.$ref,p.def))for(let f in c)f==="$ref"||f==="allOf"||f in p.def&&JSON.stringify(c[f])===JSON.stringify(p.def[f])&&delete c[f]}t.override({zodSchema:a,jsonSchema:c,path:s.path??[]})};for(let a of[...t.seen.entries()].reverse())n(a[0]);let o={};if(t.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let a=t.external.registry.get(e)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=t.external.uri(a)}Object.assign(o,r.def??r.schema);let i=t.external?.defs??{};for(let a of t.seen.entries()){let s=a[1];s.def&&s.defId&&(i[s.defId]=s.def)}t.external||Object.keys(i).length>0&&(t.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...e["~standard"],jsonSchema:{input:bo(e,"input",t.processors),output:bo(e,"output",t.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function Ce(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Ce(n.element,r);if(n.type==="set")return Ce(n.valueType,r);if(n.type==="lazy")return Ce(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Ce(n.innerType,r);if(n.type==="intersection")return Ce(n.left,r)||Ce(n.right,r);if(n.type==="record"||n.type==="map")return Ce(n.keyType,r)||Ce(n.valueType,r);if(n.type==="pipe")return Ce(n.in,r)||Ce(n.out,r);if(n.type==="object"){for(let o in n.shape)if(Ce(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(Ce(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(Ce(o,r))return!0;return!!(n.rest&&Ce(n.rest,r))}return!1}var Ym=(t,e={})=>r=>{let n=aa({...r,processors:e});return pe(t,n),sa(n,t),ca(n,t)},bo=(t,e,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},a=aa({...o??{},target:i,io:e,processors:r});return pe(t,a),sa(a,t),ca(a,t)};var Bb={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Qm=(t,e,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:a,format:s,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof a=="number"&&(o.maxLength=a),s&&(o.format=Bb[s]??s,o.format===""&&delete o.format,s==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){let l=[...c];l.length===1?o.pattern=l[0].source:l.length>1&&(o.allOf=[...l.map(d=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},eh=(t,e,r,n)=>{let o=r,{minimum:i,maximum:a,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=t._zod.bag;typeof s=="string"&&s.includes("int")?o.type="integer":o.type="number",typeof l=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l),typeof i=="number"&&(o.minimum=i,typeof l=="number"&&e.target!=="draft-04"&&(l>=i?delete o.minimum:delete o.exclusiveMinimum)),typeof u=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u),typeof a=="number"&&(o.maximum=a,typeof u=="number"&&e.target!=="draft-04"&&(u<=a?delete o.maximum:delete o.exclusiveMaximum)),typeof c=="number"&&(o.multipleOf=c)},th=(t,e,r,n)=>{r.type="boolean"},rh=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},nh=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},oh=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},ih=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},ah=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},sh=(t,e,r,n)=>{r.not={}},ch=(t,e,r,n)=>{},uh=(t,e,r,n)=>{},lh=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},dh=(t,e,r,n)=>{let o=t._zod.def,i=qn(o.entries);i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),r.enum=i},ph=(t,e,r,n)=>{let o=t._zod.def,i=[];for(let a of o.values)if(a===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof a=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(a))}else i.push(a);if(i.length!==0)if(i.length===1){let a=i[0];r.type=a===null?"null":typeof a,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[a]:r.const=a}else i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),i.every(a=>typeof a=="boolean")&&(r.type="boolean"),i.every(a=>a===null)&&(r.type="null"),r.enum=i},fh=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},mh=(t,e,r,n)=>{let o=r,i=t._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=i.source},hh=(t,e,r,n)=>{let o=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:a,maximum:s,mime:c}=t._zod.bag;a!==void 0&&(i.minLength=a),s!==void 0&&(i.maxLength=s),c?c.length===1?(i.contentMediaType=c[0],Object.assign(o,i)):(Object.assign(o,i),o.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(o,i)},gh=(t,e,r,n)=>{r.type="boolean"},vh=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},_h=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},yh=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},$h=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},bh=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},xh=(t,e,r,n)=>{let o=r,i=t._zod.def,{minimum:a,maximum:s}=t._zod.bag;typeof a=="number"&&(o.minItems=a),typeof s=="number"&&(o.maxItems=s),o.type="array",o.items=pe(i.element,e,{...n,path:[...n.path,"items"]})},kh=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object",o.properties={};let a=i.shape;for(let u in a)o.properties[u]=pe(a[u],e,{...n,path:[...n.path,"properties",u]});let s=new Set(Object.keys(a)),c=new Set([...s].filter(u=>{let l=i.shape[u]._zod;return e.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=pe(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},zl=(t,e,r,n)=>{let o=t._zod.def,i=o.inclusive===!1,a=o.options.map((s,c)=>pe(s,e,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=a:r.anyOf=a},Sh=(t,e,r,n)=>{let o=t._zod.def,i=pe(o.left,e,{...n,path:[...n.path,"allOf",0]}),a=pe(o.right,e,{...n,path:[...n.path,"allOf",1]}),s=u=>"allOf"in u&&Object.keys(u).length===1,c=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]];r.allOf=c},wh=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="array";let a=e.target==="draft-2020-12"?"prefixItems":"items",s=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",c=i.items.map((p,f)=>pe(p,e,{...n,path:[...n.path,a,f]})),u=i.rest?pe(i.rest,e,{...n,path:[...n.path,s,...e.target==="openapi-3.0"?[i.items.length]:[]]}):null;e.target==="draft-2020-12"?(o.prefixItems=c,u&&(o.items=u)):e.target==="openapi-3.0"?(o.items={anyOf:c},u&&o.items.anyOf.push(u),o.minItems=c.length,u||(o.maxItems=c.length)):(o.items=c,u&&(o.additionalItems=u));let{minimum:l,maximum:d}=t._zod.bag;typeof l=="number"&&(o.minItems=l),typeof d=="number"&&(o.maxItems=d)},zh=(t,e,r,n)=>{let o=r,i=t._zod.def;o.type="object";let a=i.keyType,c=a._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let l=pe(i.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let d of c)o.patternProperties[d.source]=l}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(o.propertyNames=pe(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=pe(i.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let u=a._zod.values;if(u){let l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(o.required=l)}},Ih=(t,e,r,n)=>{let o=t._zod.def,i=pe(o.innerType,e,n),a=e.seen.get(t);e.target==="openapi-3.0"?(a.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},Eh=(t,e,r,n)=>{let o=t._zod.def;pe(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},Th=(t,e,r,n)=>{let o=t._zod.def;pe(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Ph=(t,e,r,n)=>{let o=t._zod.def;pe(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Oh=(t,e,r,n)=>{let o=t._zod.def;pe(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType;let a;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a},jh=(t,e,r,n)=>{let o=t._zod.def,i=e.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;pe(i,e,n);let a=e.seen.get(t);a.ref=i},Dh=(t,e,r,n)=>{let o=t._zod.def;pe(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType,r.readOnly=!0},Nh=(t,e,r,n)=>{let o=t._zod.def;pe(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},Il=(t,e,r,n)=>{let o=t._zod.def;pe(o.innerType,e,n);let i=e.seen.get(t);i.ref=o.innerType},Rh=(t,e,r,n)=>{let o=t._zod.innerType;pe(o,e,n);let i=e.seen.get(t);i.ref=o};function tn(t){return!!t._zod}function rr(t,e){return tn(t)?Br(t,e):t.safeParse(e)}function ua(t){if(!t)return;let e;if(tn(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function Uh(t){if(tn(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 xo={};In(xo,{ZodAny:()=>ng,ZodArray:()=>sg,ZodBase64:()=>Xl,ZodBase64URL:()=>Yl,ZodBigInt:()=>_a,ZodBigIntFormat:()=>td,ZodBoolean:()=>va,ZodCIDRv4:()=>Gl,ZodCIDRv6:()=>Bl,ZodCUID:()=>ql,ZodCUID2:()=>Fl,ZodCatch:()=>Ig,ZodCodec:()=>cd,ZodCustom:()=>ka,ZodCustomStringFormat:()=>So,ZodDate:()=>nd,ZodDefault:()=>bg,ZodDiscriminatedUnion:()=>ug,ZodE164:()=>Ql,ZodEmail:()=>Ul,ZodEmoji:()=>Zl,ZodEnum:()=>ko,ZodExactOptional:()=>_g,ZodFile:()=>gg,ZodFunction:()=>Ag,ZodGUID:()=>da,ZodIPv4:()=>Kl,ZodIPv6:()=>Hl,ZodIntersection:()=>lg,ZodJWT:()=>ed,ZodKSUID:()=>Wl,ZodLazy:()=>Dg,ZodLiteral:()=>hg,ZodMAC:()=>Qh,ZodMap:()=>fg,ZodNaN:()=>Tg,ZodNanoID:()=>Ll,ZodNever:()=>ig,ZodNonOptional:()=>ad,ZodNull:()=>rg,ZodNullable:()=>$g,ZodNumber:()=>ga,ZodNumberFormat:()=>rn,ZodObject:()=>ya,ZodOptional:()=>id,ZodPipe:()=>sd,ZodPrefault:()=>kg,ZodPromise:()=>Rg,ZodReadonly:()=>Pg,ZodRecord:()=>xa,ZodSet:()=>mg,ZodString:()=>ma,ZodStringFormat:()=>ce,ZodSuccess:()=>zg,ZodSymbol:()=>eg,ZodTemplateLiteral:()=>jg,ZodTransform:()=>vg,ZodTuple:()=>dg,ZodType:()=>F,ZodULID:()=>Vl,ZodURL:()=>ha,ZodUUID:()=>Mt,ZodUndefined:()=>tg,ZodUnion:()=>$a,ZodUnknown:()=>og,ZodVoid:()=>ag,ZodXID:()=>Jl,ZodXor:()=>cg,_ZodString:()=>Cl,_default:()=>xg,_function:()=>mk,any:()=>Bx,array:()=>G,base64:()=>Dx,base64url:()=>Nx,bigint:()=>Jx,boolean:()=>ye,catch:()=>Eg,check:()=>hk,cidrv4:()=>Ox,cidrv6:()=>jx,codec:()=>dk,cuid:()=>kx,cuid2:()=>Sx,custom:()=>ud,date:()=>Yx,describe:()=>gk,discriminatedUnion:()=>ba,e164:()=>Rx,email:()=>fx,emoji:()=>bx,enum:()=>Pe,exactOptional:()=>yg,file:()=>sk,float32:()=>Lx,float64:()=>qx,function:()=>mk,guid:()=>mx,hash:()=>Zx,hex:()=>Ux,hostname:()=>Cx,httpUrl:()=>$x,instanceof:()=>_k,int:()=>Ml,int32:()=>Fx,int64:()=>Wx,intersection:()=>zo,ipv4:()=>Ex,ipv6:()=>Px,json:()=>$k,jwt:()=>Ax,keyof:()=>Qx,ksuid:()=>Ix,lazy:()=>Ng,literal:()=>P,looseObject:()=>Te,looseRecord:()=>nk,mac:()=>Tx,map:()=>ok,meta:()=>vk,nan:()=>lk,nanoid:()=>xx,nativeEnum:()=>ak,never:()=>rd,nonoptional:()=>wg,null:()=>wo,nullable:()=>pa,nullish:()=>ck,number:()=>ne,object:()=>z,optional:()=>me,partialRecord:()=>rk,pipe:()=>fa,prefault:()=>Sg,preprocess:()=>Sa,promise:()=>fk,readonly:()=>Og,record:()=>fe,refine:()=>Mg,set:()=>ik,strictObject:()=>ek,string:()=>v,stringFormat:()=>Mx,stringbool:()=>yk,success:()=>uk,superRefine:()=>Cg,symbol:()=>Hx,templateLiteral:()=>pk,transform:()=>od,tuple:()=>pg,uint32:()=>Vx,uint64:()=>Kx,ulid:()=>wx,undefined:()=>Gx,union:()=>ie,unknown:()=>ue,url:()=>yx,uuid:()=>hx,uuidv4:()=>gx,uuidv6:()=>vx,uuidv7:()=>_x,void:()=>Xx,xid:()=>zx,xor:()=>tk});var la={};In(la,{endsWith:()=>ho,gt:()=>Rt,gte:()=>Me,includes:()=>fo,length:()=>Qr,lowercase:()=>lo,lt:()=>Nt,lte:()=>Be,maxLength:()=>Yr,maxSize:()=>$r,mime:()=>go,minLength:()=>tr,minSize:()=>At,multipleOf:()=>yr,negative:()=>hl,nonnegative:()=>vl,nonpositive:()=>gl,normalize:()=>vo,overwrite:()=>yt,positive:()=>ml,property:()=>_l,regex:()=>uo,size:()=>Xr,slugify:()=>ia,startsWith:()=>mo,toLowerCase:()=>yo,toUpperCase:()=>$o,trim:()=>_o,uppercase:()=>po});var br={};In(br,{ZodISODate:()=>Ol,ZodISODateTime:()=>Tl,ZodISODuration:()=>Rl,ZodISOTime:()=>Dl,date:()=>jl,datetime:()=>Pl,duration:()=>Al,time:()=>Nl});var Tl=m("ZodISODateTime",(t,e)=>{Fc.init(t,e),ce.init(t,e)});function Pl(t){return Ju(Tl,t)}var Ol=m("ZodISODate",(t,e)=>{Vc.init(t,e),ce.init(t,e)});function jl(t){return Wu(Ol,t)}var Dl=m("ZodISOTime",(t,e)=>{Jc.init(t,e),ce.init(t,e)});function Nl(t){return Ku(Dl,t)}var Rl=m("ZodISODuration",(t,e)=>{Wc.init(t,e),ce.init(t,e)});function Al(t){return Hu(Rl,t)}var Zh=(t,e)=>{Si.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>zi(t,r)},flatten:{value:r=>wi(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,Kr,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,Kr,2)}},isEmpty:{get(){return t.issues.length===0}}})},DR=m("ZodError",Zh),Xe=m("ZodError",Zh,{Parent:Error});var Lh=Hn(Xe),qh=Bn(Xe),Fh=Yn(Xe),Vh=Qn(Xe),Jh=tm(Xe),Wh=rm(Xe),Kh=nm(Xe),Hh=om(Xe),Gh=im(Xe),Bh=am(Xe),Xh=sm(Xe),Yh=cm(Xe);var F=m("ZodType",(t,e)=>(Z.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:bo(t,"input"),output:bo(t,"output")}}),t.toJSONSchema=Ym(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone($.mergeDefs(e,{checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),t.with=t.check,t.clone=(r,n)=>Re(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>Lh(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Fh(t,r,n),t.parseAsync=async(r,n)=>qh(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Vh(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>Jh(t,r,n),t.decode=(r,n)=>Wh(t,r,n),t.encodeAsync=async(r,n)=>Kh(t,r,n),t.decodeAsync=async(r,n)=>Hh(t,r,n),t.safeEncode=(r,n)=>Gh(t,r,n),t.safeDecode=(r,n)=>Bh(t,r,n),t.safeEncodeAsync=async(r,n)=>Xh(t,r,n),t.safeDecodeAsync=async(r,n)=>Yh(t,r,n),t.refine=(r,n)=>t.check(Mg(r,n)),t.superRefine=r=>t.check(Cg(r)),t.overwrite=r=>t.check(yt(r)),t.optional=()=>me(t),t.exactOptional=()=>yg(t),t.nullable=()=>pa(t),t.nullish=()=>me(pa(t)),t.nonoptional=r=>wg(t,r),t.array=()=>G(t),t.or=r=>ie([t,r]),t.and=r=>zo(t,r),t.transform=r=>fa(t,od(r)),t.default=r=>xg(t,r),t.prefault=r=>Sg(t,r),t.catch=r=>Eg(t,r),t.pipe=r=>fa(t,r),t.readonly=()=>Og(t),t.describe=r=>{let n=t.clone();return Ae.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Ae.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Ae.get(t);let n=t.clone();return Ae.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=r=>r(t),t)),Cl=m("_ZodString",(t,e)=>{_r.init(t,e),F.init(t,e),t._zod.processJSONSchema=(n,o,i)=>Qm(t,n,o,i);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(uo(...n)),t.includes=(...n)=>t.check(fo(...n)),t.startsWith=(...n)=>t.check(mo(...n)),t.endsWith=(...n)=>t.check(ho(...n)),t.min=(...n)=>t.check(tr(...n)),t.max=(...n)=>t.check(Yr(...n)),t.length=(...n)=>t.check(Qr(...n)),t.nonempty=(...n)=>t.check(tr(1,...n)),t.lowercase=n=>t.check(lo(n)),t.uppercase=n=>t.check(po(n)),t.trim=()=>t.check(_o()),t.normalize=(...n)=>t.check(vo(...n)),t.toLowerCase=()=>t.check(yo()),t.toUpperCase=()=>t.check($o()),t.slugify=()=>t.check(ia())}),ma=m("ZodString",(t,e)=>{_r.init(t,e),Cl.init(t,e),t.email=r=>t.check(Ui(Ul,r)),t.url=r=>t.check(co(ha,r)),t.jwt=r=>t.check(oa(ed,r)),t.emoji=r=>t.check(Vi(Zl,r)),t.guid=r=>t.check(so(da,r)),t.uuid=r=>t.check(Zi(Mt,r)),t.uuidv4=r=>t.check(Li(Mt,r)),t.uuidv6=r=>t.check(qi(Mt,r)),t.uuidv7=r=>t.check(Fi(Mt,r)),t.nanoid=r=>t.check(Ji(Ll,r)),t.guid=r=>t.check(so(da,r)),t.cuid=r=>t.check(Wi(ql,r)),t.cuid2=r=>t.check(Ki(Fl,r)),t.ulid=r=>t.check(Hi(Vl,r)),t.base64=r=>t.check(ta(Xl,r)),t.base64url=r=>t.check(ra(Yl,r)),t.xid=r=>t.check(Gi(Jl,r)),t.ksuid=r=>t.check(Bi(Wl,r)),t.ipv4=r=>t.check(Xi(Kl,r)),t.ipv6=r=>t.check(Yi(Hl,r)),t.cidrv4=r=>t.check(Qi(Gl,r)),t.cidrv6=r=>t.check(ea(Bl,r)),t.e164=r=>t.check(na(Ql,r)),t.datetime=r=>t.check(Pl(r)),t.date=r=>t.check(jl(r)),t.time=r=>t.check(Nl(r)),t.duration=r=>t.check(Al(r))});function v(t){return Fu(ma,t)}var ce=m("ZodStringFormat",(t,e)=>{oe.init(t,e),Cl.init(t,e)}),Ul=m("ZodEmail",(t,e)=>{Nc.init(t,e),ce.init(t,e)});function fx(t){return Ui(Ul,t)}var da=m("ZodGUID",(t,e)=>{jc.init(t,e),ce.init(t,e)});function mx(t){return so(da,t)}var Mt=m("ZodUUID",(t,e)=>{Dc.init(t,e),ce.init(t,e)});function hx(t){return Zi(Mt,t)}function gx(t){return Li(Mt,t)}function vx(t){return qi(Mt,t)}function _x(t){return Fi(Mt,t)}var ha=m("ZodURL",(t,e)=>{Rc.init(t,e),ce.init(t,e)});function yx(t){return co(ha,t)}function $x(t){return co(ha,{protocol:/^https?$/,hostname:rt.domain,...$.normalizeParams(t)})}var Zl=m("ZodEmoji",(t,e)=>{Ac.init(t,e),ce.init(t,e)});function bx(t){return Vi(Zl,t)}var Ll=m("ZodNanoID",(t,e)=>{Mc.init(t,e),ce.init(t,e)});function xx(t){return Ji(Ll,t)}var ql=m("ZodCUID",(t,e)=>{Cc.init(t,e),ce.init(t,e)});function kx(t){return Wi(ql,t)}var Fl=m("ZodCUID2",(t,e)=>{Uc.init(t,e),ce.init(t,e)});function Sx(t){return Ki(Fl,t)}var Vl=m("ZodULID",(t,e)=>{Zc.init(t,e),ce.init(t,e)});function wx(t){return Hi(Vl,t)}var Jl=m("ZodXID",(t,e)=>{Lc.init(t,e),ce.init(t,e)});function zx(t){return Gi(Jl,t)}var Wl=m("ZodKSUID",(t,e)=>{qc.init(t,e),ce.init(t,e)});function Ix(t){return Bi(Wl,t)}var Kl=m("ZodIPv4",(t,e)=>{Kc.init(t,e),ce.init(t,e)});function Ex(t){return Xi(Kl,t)}var Qh=m("ZodMAC",(t,e)=>{Gc.init(t,e),ce.init(t,e)});function Tx(t){return Vu(Qh,t)}var Hl=m("ZodIPv6",(t,e)=>{Hc.init(t,e),ce.init(t,e)});function Px(t){return Yi(Hl,t)}var Gl=m("ZodCIDRv4",(t,e)=>{Bc.init(t,e),ce.init(t,e)});function Ox(t){return Qi(Gl,t)}var Bl=m("ZodCIDRv6",(t,e)=>{Xc.init(t,e),ce.init(t,e)});function jx(t){return ea(Bl,t)}var Xl=m("ZodBase64",(t,e)=>{Yc.init(t,e),ce.init(t,e)});function Dx(t){return ta(Xl,t)}var Yl=m("ZodBase64URL",(t,e)=>{Qc.init(t,e),ce.init(t,e)});function Nx(t){return ra(Yl,t)}var Ql=m("ZodE164",(t,e)=>{eu.init(t,e),ce.init(t,e)});function Rx(t){return na(Ql,t)}var ed=m("ZodJWT",(t,e)=>{tu.init(t,e),ce.init(t,e)});function Ax(t){return oa(ed,t)}var So=m("ZodCustomStringFormat",(t,e)=>{ru.init(t,e),ce.init(t,e)});function Mx(t,e,r={}){return en(So,t,e,r)}function Cx(t){return en(So,"hostname",rt.hostname,t)}function Ux(t){return en(So,"hex",rt.hex,t)}function Zx(t,e){let r=e?.enc??"hex",n=`${t}_${r}`,o=rt[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return en(So,n,o,e)}var ga=m("ZodNumber",(t,e)=>{Ri.init(t,e),F.init(t,e),t._zod.processJSONSchema=(n,o,i)=>eh(t,n,o,i),t.gt=(n,o)=>t.check(Rt(n,o)),t.gte=(n,o)=>t.check(Me(n,o)),t.min=(n,o)=>t.check(Me(n,o)),t.lt=(n,o)=>t.check(Nt(n,o)),t.lte=(n,o)=>t.check(Be(n,o)),t.max=(n,o)=>t.check(Be(n,o)),t.int=n=>t.check(Ml(n)),t.safe=n=>t.check(Ml(n)),t.positive=n=>t.check(Rt(0,n)),t.nonnegative=n=>t.check(Me(0,n)),t.negative=n=>t.check(Nt(0,n)),t.nonpositive=n=>t.check(Be(0,n)),t.multipleOf=(n,o)=>t.check(yr(n,o)),t.step=(n,o)=>t.check(yr(n,o)),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 ne(t){return Gu(ga,t)}var rn=m("ZodNumberFormat",(t,e)=>{nu.init(t,e),ga.init(t,e)});function Ml(t){return Bu(rn,t)}function Lx(t){return Xu(rn,t)}function qx(t){return Yu(rn,t)}function Fx(t){return Qu(rn,t)}function Vx(t){return el(rn,t)}var va=m("ZodBoolean",(t,e)=>{oo.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>th(t,r,n,o)});function ye(t){return tl(va,t)}var _a=m("ZodBigInt",(t,e)=>{Ai.init(t,e),F.init(t,e),t._zod.processJSONSchema=(n,o,i)=>rh(t,n,o,i),t.gte=(n,o)=>t.check(Me(n,o)),t.min=(n,o)=>t.check(Me(n,o)),t.gt=(n,o)=>t.check(Rt(n,o)),t.gte=(n,o)=>t.check(Me(n,o)),t.min=(n,o)=>t.check(Me(n,o)),t.lt=(n,o)=>t.check(Nt(n,o)),t.lte=(n,o)=>t.check(Be(n,o)),t.max=(n,o)=>t.check(Be(n,o)),t.positive=n=>t.check(Rt(BigInt(0),n)),t.negative=n=>t.check(Nt(BigInt(0),n)),t.nonpositive=n=>t.check(Be(BigInt(0),n)),t.nonnegative=n=>t.check(Me(BigInt(0),n)),t.multipleOf=(n,o)=>t.check(yr(n,o));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function Jx(t){return rl(_a,t)}var td=m("ZodBigIntFormat",(t,e)=>{ou.init(t,e),_a.init(t,e)});function Wx(t){return nl(td,t)}function Kx(t){return ol(td,t)}var eg=m("ZodSymbol",(t,e)=>{iu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>nh(t,r,n,o)});function Hx(t){return il(eg,t)}var tg=m("ZodUndefined",(t,e)=>{au.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ih(t,r,n,o)});function Gx(t){return al(tg,t)}var rg=m("ZodNull",(t,e)=>{su.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>oh(t,r,n,o)});function wo(t){return sl(rg,t)}var ng=m("ZodAny",(t,e)=>{cu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ch(t,r,n,o)});function Bx(){return cl(ng)}var og=m("ZodUnknown",(t,e)=>{uu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>uh(t,r,n,o)});function ue(){return ul(og)}var ig=m("ZodNever",(t,e)=>{lu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>sh(t,r,n,o)});function rd(t){return ll(ig,t)}var ag=m("ZodVoid",(t,e)=>{du.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ah(t,r,n,o)});function Xx(t){return dl(ag,t)}var nd=m("ZodDate",(t,e)=>{pu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(n,o,i)=>lh(t,n,o,i),t.min=(n,o)=>t.check(Me(n,o)),t.max=(n,o)=>t.check(Be(n,o));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function Yx(t){return pl(nd,t)}var sg=m("ZodArray",(t,e)=>{fu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>xh(t,r,n,o),t.element=e.element,t.min=(r,n)=>t.check(tr(r,n)),t.nonempty=r=>t.check(tr(1,r)),t.max=(r,n)=>t.check(Yr(r,n)),t.length=(r,n)=>t.check(Qr(r,n)),t.unwrap=()=>t.element});function G(t,e){return Xm(sg,t,e)}function Qx(t){let e=t._zod.def.shape;return Pe(Object.keys(e))}var ya=m("ZodObject",(t,e)=>{Gm.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>kh(t,r,n,o),$.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Pe(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:ue()}),t.loose=()=>t.clone({...t._zod.def,catchall:ue()}),t.strict=()=>t.clone({...t._zod.def,catchall:rd()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>$.extend(t,r),t.safeExtend=r=>$.safeExtend(t,r),t.merge=r=>$.merge(t,r),t.pick=r=>$.pick(t,r),t.omit=r=>$.omit(t,r),t.partial=(...r)=>$.partial(id,t,r[0]),t.required=(...r)=>$.required(ad,t,r[0])});function z(t,e){let r={type:"object",shape:t??{},...$.normalizeParams(e)};return new ya(r)}function ek(t,e){return new ya({type:"object",shape:t,catchall:rd(),...$.normalizeParams(e)})}function Te(t,e){return new ya({type:"object",shape:t,catchall:ue(),...$.normalizeParams(e)})}var $a=m("ZodUnion",(t,e)=>{io.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>zl(t,r,n,o),t.options=e.options});function ie(t,e){return new $a({type:"union",options:t,...$.normalizeParams(e)})}var cg=m("ZodXor",(t,e)=>{$a.init(t,e),mu.init(t,e),t._zod.processJSONSchema=(r,n,o)=>zl(t,r,n,o),t.options=e.options});function tk(t,e){return new cg({type:"union",options:t,inclusive:!1,...$.normalizeParams(e)})}var ug=m("ZodDiscriminatedUnion",(t,e)=>{$a.init(t,e),hu.init(t,e)});function ba(t,e,r){return new ug({type:"union",options:e,discriminator:t,...$.normalizeParams(r)})}var lg=m("ZodIntersection",(t,e)=>{gu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Sh(t,r,n,o)});function zo(t,e){return new lg({type:"intersection",left:t,right:e})}var dg=m("ZodTuple",(t,e)=>{Mi.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>wh(t,r,n,o),t.rest=r=>t.clone({...t._zod.def,rest:r})});function pg(t,e,r){let n=e instanceof Z,o=n?r:e,i=n?e:null;return new dg({type:"tuple",items:t,rest:i,...$.normalizeParams(o)})}var xa=m("ZodRecord",(t,e)=>{vu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>zh(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType});function fe(t,e,r){return new xa({type:"record",keyType:t,valueType:e,...$.normalizeParams(r)})}function rk(t,e,r){let n=Re(t);return n._zod.values=void 0,new xa({type:"record",keyType:n,valueType:e,...$.normalizeParams(r)})}function nk(t,e,r){return new xa({type:"record",keyType:t,valueType:e,mode:"loose",...$.normalizeParams(r)})}var fg=m("ZodMap",(t,e)=>{_u.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>$h(t,r,n,o),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...r)=>t.check(At(...r)),t.nonempty=r=>t.check(At(1,r)),t.max=(...r)=>t.check($r(...r)),t.size=(...r)=>t.check(Xr(...r))});function ok(t,e,r){return new fg({type:"map",keyType:t,valueType:e,...$.normalizeParams(r)})}var mg=m("ZodSet",(t,e)=>{yu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>bh(t,r,n,o),t.min=(...r)=>t.check(At(...r)),t.nonempty=r=>t.check(At(1,r)),t.max=(...r)=>t.check($r(...r)),t.size=(...r)=>t.check(Xr(...r))});function ik(t,e){return new mg({type:"set",valueType:t,...$.normalizeParams(e)})}var ko=m("ZodEnum",(t,e)=>{$u.init(t,e),F.init(t,e),t._zod.processJSONSchema=(n,o,i)=>dh(t,n,o,i),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,o)=>{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 ko({...e,checks:[],...$.normalizeParams(o),entries:i})},t.exclude=(n,o)=>{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 ko({...e,checks:[],...$.normalizeParams(o),entries:i})}});function Pe(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new ko({type:"enum",entries:r,...$.normalizeParams(e)})}function ak(t,e){return new ko({type:"enum",entries:t,...$.normalizeParams(e)})}var hg=m("ZodLiteral",(t,e)=>{bu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>ph(t,r,n,o),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 P(t,e){return new hg({type:"literal",values:Array.isArray(t)?t:[t],...$.normalizeParams(e)})}var gg=m("ZodFile",(t,e)=>{xu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>hh(t,r,n,o),t.min=(r,n)=>t.check(At(r,n)),t.max=(r,n)=>t.check($r(r,n)),t.mime=(r,n)=>t.check(go(Array.isArray(r)?r:[r],n))});function sk(t){return yl(gg,t)}var vg=m("ZodTransform",(t,e)=>{ku.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>yh(t,r,n,o),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new hr(t.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push($.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),r.issues.push($.issue(a))}};let o=e.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r)):(r.value=o,r)}});function od(t){return new vg({type:"transform",transform:t})}var id=m("ZodOptional",(t,e)=>{Ci.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Il(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function me(t){return new id({type:"optional",innerType:t})}var _g=m("ZodExactOptional",(t,e)=>{Su.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Il(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function yg(t){return new _g({type:"optional",innerType:t})}var $g=m("ZodNullable",(t,e)=>{wu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Ih(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function pa(t){return new $g({type:"nullable",innerType:t})}function ck(t){return me(pa(t))}var bg=m("ZodDefault",(t,e)=>{zu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Th(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function xg(t,e){return new bg({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():$.shallowClone(e)}})}var kg=m("ZodPrefault",(t,e)=>{Iu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Ph(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Sg(t,e){return new kg({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():$.shallowClone(e)}})}var ad=m("ZodNonOptional",(t,e)=>{Eu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Eh(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function wg(t,e){return new ad({type:"nonoptional",innerType:t,...$.normalizeParams(e)})}var zg=m("ZodSuccess",(t,e)=>{Tu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>gh(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function uk(t){return new zg({type:"success",innerType:t})}var Ig=m("ZodCatch",(t,e)=>{Pu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Oh(t,r,n,o),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function Eg(t,e){return new Ig({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var Tg=m("ZodNaN",(t,e)=>{Ou.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>fh(t,r,n,o)});function lk(t){return fl(Tg,t)}var sd=m("ZodPipe",(t,e)=>{ju.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>jh(t,r,n,o),t.in=e.in,t.out=e.out});function fa(t,e){return new sd({type:"pipe",in:t,out:e})}var cd=m("ZodCodec",(t,e)=>{sd.init(t,e),ao.init(t,e)});function dk(t,e,r){return new cd({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var Pg=m("ZodReadonly",(t,e)=>{Du.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Dh(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function Og(t){return new Pg({type:"readonly",innerType:t})}var jg=m("ZodTemplateLiteral",(t,e)=>{Nu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>mh(t,r,n,o)});function pk(t,e){return new jg({type:"template_literal",parts:t,...$.normalizeParams(e)})}var Dg=m("ZodLazy",(t,e)=>{Mu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Rh(t,r,n,o),t.unwrap=()=>t._zod.def.getter()});function Ng(t){return new Dg({type:"lazy",getter:t})}var Rg=m("ZodPromise",(t,e)=>{Au.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>Nh(t,r,n,o),t.unwrap=()=>t._zod.def.innerType});function fk(t){return new Rg({type:"promise",innerType:t})}var Ag=m("ZodFunction",(t,e)=>{Ru.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>_h(t,r,n,o)});function mk(t){return new Ag({type:"function",input:Array.isArray(t?.input)?pg(t?.input):t?.input??G(ue()),output:t?.output??ue()})}var ka=m("ZodCustom",(t,e)=>{Cu.init(t,e),F.init(t,e),t._zod.processJSONSchema=(r,n,o)=>vh(t,r,n,o)});function hk(t){let e=new se({check:"custom"});return e._zod.check=t,e}function ud(t,e){return $l(ka,t??(()=>!0),e)}function Mg(t,e={}){return bl(ka,t,e)}function Cg(t){return xl(t)}var gk=kl,vk=Sl;function _k(t,e={}){let r=new ka({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...$.normalizeParams(e)});return r._zod.bag.Class=t,r._zod.check=n=>{n.value instanceof t||n.issues.push({code:"invalid_type",expected:t.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var yk=(...t)=>wl({Codec:cd,Boolean:va,String:ma},...t);function $k(t){let e=Ng(()=>ie([v(t),ne(),ye(),wo(),G(e),fe(v(),e)]));return e}function Sa(t,e){return fa(od(t),e)}var Ug;Ug||(Ug={});var LR={...xo,...la,iso:br};be(Uu());var dd="2025-11-25";var Zg=[dd,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],nr="io.modelcontextprotocol/related-task",za="2.0",xe=ud(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Lg=ie([v(),ne().int()]),qg=v(),a1=Te({ttl:ie([ne(),wo()]).optional(),pollInterval:ne().optional()}),Sk=z({ttl:ne().optional()}),wk=z({taskId:v()}),pd=Te({progressToken:Lg.optional(),[nr]:wk.optional()}),Ye=z({_meta:pd.optional()}),Io=Ye.extend({task:Sk.optional()}),Fg=t=>Io.safeParse(t).success,ke=z({method:v(),params:Ye.loose().optional()}),nt=z({_meta:pd.optional()}),ot=z({method:v(),params:nt.loose().optional()}),Se=Te({_meta:pd.optional()}),Ia=ie([v(),ne().int()]),Vg=z({jsonrpc:P(za),id:Ia,...ke.shape}).strict(),fd=t=>Vg.safeParse(t).success,Jg=z({jsonrpc:P(za),...ot.shape}).strict(),Wg=t=>Jg.safeParse(t).success,md=z({jsonrpc:P(za),id:Ia,result:Se}).strict(),Eo=t=>md.safeParse(t).success;var Y;(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"})(Y||(Y={}));var hd=z({jsonrpc:P(za),id:Ia.optional(),error:z({code:ne().int(),message:v(),data:ue().optional()})}).strict();var Kg=t=>hd.safeParse(t).success;var Hg=ie([Vg,Jg,md,hd]),s1=ie([md,hd]),Ea=Se.strict(),zk=nt.extend({requestId:Ia.optional(),reason:v().optional()}),Ta=ot.extend({method:P("notifications/cancelled"),params:zk}),Ik=z({src:v(),mimeType:v().optional(),sizes:G(v()).optional(),theme:Pe(["light","dark"]).optional()}),To=z({icons:G(Ik).optional()}),nn=z({name:v(),title:v().optional()}),Gg=nn.extend({...nn.shape,...To.shape,version:v(),websiteUrl:v().optional(),description:v().optional()}),Ek=zo(z({applyDefaults:ye().optional()}),fe(v(),ue())),Tk=Sa(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,zo(z({form:Ek.optional(),url:xe.optional()}),fe(v(),ue()).optional())),Pk=Te({list:xe.optional(),cancel:xe.optional(),requests:Te({sampling:Te({createMessage:xe.optional()}).optional(),elicitation:Te({create:xe.optional()}).optional()}).optional()}),Ok=Te({list:xe.optional(),cancel:xe.optional(),requests:Te({tools:Te({call:xe.optional()}).optional()}).optional()}),jk=z({experimental:fe(v(),xe).optional(),sampling:z({context:xe.optional(),tools:xe.optional()}).optional(),elicitation:Tk.optional(),roots:z({listChanged:ye().optional()}).optional(),tasks:Pk.optional()}),Dk=Ye.extend({protocolVersion:v(),capabilities:jk,clientInfo:Gg}),gd=ke.extend({method:P("initialize"),params:Dk});var Nk=z({experimental:fe(v(),xe).optional(),logging:xe.optional(),completions:xe.optional(),prompts:z({listChanged:ye().optional()}).optional(),resources:z({subscribe:ye().optional(),listChanged:ye().optional()}).optional(),tools:z({listChanged:ye().optional()}).optional(),tasks:Ok.optional()}),Rk=Se.extend({protocolVersion:v(),capabilities:Nk,serverInfo:Gg,instructions:v().optional()}),vd=ot.extend({method:P("notifications/initialized"),params:nt.optional()});var Pa=ke.extend({method:P("ping"),params:Ye.optional()}),Ak=z({progress:ne(),total:me(ne()),message:me(v())}),Mk=z({...nt.shape,...Ak.shape,progressToken:Lg}),Oa=ot.extend({method:P("notifications/progress"),params:Mk}),Ck=Ye.extend({cursor:qg.optional()}),Po=ke.extend({params:Ck.optional()}),Oo=Se.extend({nextCursor:qg.optional()}),Uk=Pe(["working","input_required","completed","failed","cancelled"]),jo=z({taskId:v(),status:Uk,ttl:ie([ne(),wo()]),createdAt:v(),lastUpdatedAt:v(),pollInterval:me(ne()),statusMessage:me(v())}),on=Se.extend({task:jo}),Zk=nt.merge(jo),Do=ot.extend({method:P("notifications/tasks/status"),params:Zk}),ja=ke.extend({method:P("tasks/get"),params:Ye.extend({taskId:v()})}),Da=Se.merge(jo),Na=ke.extend({method:P("tasks/result"),params:Ye.extend({taskId:v()})}),c1=Se.loose(),Ra=Po.extend({method:P("tasks/list")}),Aa=Oo.extend({tasks:G(jo)}),Ma=ke.extend({method:P("tasks/cancel"),params:Ye.extend({taskId:v()})}),Bg=Se.merge(jo),Xg=z({uri:v(),mimeType:me(v()),_meta:fe(v(),ue()).optional()}),Yg=Xg.extend({text:v()}),_d=v().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Qg=Xg.extend({blob:_d}),No=Pe(["user","assistant"]),an=z({audience:G(No).optional(),priority:ne().min(0).max(1).optional(),lastModified:br.datetime({offset:!0}).optional()}),ev=z({...nn.shape,...To.shape,uri:v(),description:me(v()),mimeType:me(v()),annotations:an.optional(),_meta:me(Te({}))}),Lk=z({...nn.shape,...To.shape,uriTemplate:v(),description:me(v()),mimeType:me(v()),annotations:an.optional(),_meta:me(Te({}))}),qk=Po.extend({method:P("resources/list")}),Fk=Oo.extend({resources:G(ev)}),Vk=Po.extend({method:P("resources/templates/list")}),Jk=Oo.extend({resourceTemplates:G(Lk)}),yd=Ye.extend({uri:v()}),Wk=yd,Kk=ke.extend({method:P("resources/read"),params:Wk}),Hk=Se.extend({contents:G(ie([Yg,Qg]))}),Gk=ot.extend({method:P("notifications/resources/list_changed"),params:nt.optional()}),Bk=yd,Xk=ke.extend({method:P("resources/subscribe"),params:Bk}),Yk=yd,Qk=ke.extend({method:P("resources/unsubscribe"),params:Yk}),eS=nt.extend({uri:v()}),tS=ot.extend({method:P("notifications/resources/updated"),params:eS}),rS=z({name:v(),description:me(v()),required:me(ye())}),nS=z({...nn.shape,...To.shape,description:me(v()),arguments:me(G(rS)),_meta:me(Te({}))}),oS=Po.extend({method:P("prompts/list")}),iS=Oo.extend({prompts:G(nS)}),aS=Ye.extend({name:v(),arguments:fe(v(),v()).optional()}),sS=ke.extend({method:P("prompts/get"),params:aS}),$d=z({type:P("text"),text:v(),annotations:an.optional(),_meta:fe(v(),ue()).optional()}),bd=z({type:P("image"),data:_d,mimeType:v(),annotations:an.optional(),_meta:fe(v(),ue()).optional()}),xd=z({type:P("audio"),data:_d,mimeType:v(),annotations:an.optional(),_meta:fe(v(),ue()).optional()}),cS=z({type:P("tool_use"),name:v(),id:v(),input:fe(v(),ue()),_meta:fe(v(),ue()).optional()}),uS=z({type:P("resource"),resource:ie([Yg,Qg]),annotations:an.optional(),_meta:fe(v(),ue()).optional()}),lS=ev.extend({type:P("resource_link")}),kd=ie([$d,bd,xd,lS,uS]),dS=z({role:No,content:kd}),pS=Se.extend({description:v().optional(),messages:G(dS)}),fS=ot.extend({method:P("notifications/prompts/list_changed"),params:nt.optional()}),mS=z({title:v().optional(),readOnlyHint:ye().optional(),destructiveHint:ye().optional(),idempotentHint:ye().optional(),openWorldHint:ye().optional()}),hS=z({taskSupport:Pe(["required","optional","forbidden"]).optional()}),tv=z({...nn.shape,...To.shape,description:v().optional(),inputSchema:z({type:P("object"),properties:fe(v(),xe).optional(),required:G(v()).optional()}).catchall(ue()),outputSchema:z({type:P("object"),properties:fe(v(),xe).optional(),required:G(v()).optional()}).catchall(ue()).optional(),annotations:mS.optional(),execution:hS.optional(),_meta:fe(v(),ue()).optional()}),Sd=Po.extend({method:P("tools/list")}),gS=Oo.extend({tools:G(tv)}),Ca=Se.extend({content:G(kd).default([]),structuredContent:fe(v(),ue()).optional(),isError:ye().optional()}),u1=Ca.or(Se.extend({toolResult:ue()})),vS=Io.extend({name:v(),arguments:fe(v(),ue()).optional()}),Ro=ke.extend({method:P("tools/call"),params:vS}),_S=ot.extend({method:P("notifications/tools/list_changed"),params:nt.optional()}),l1=z({autoRefresh:ye().default(!0),debounceMs:ne().int().nonnegative().default(300)}),Ao=Pe(["debug","info","notice","warning","error","critical","alert","emergency"]),yS=Ye.extend({level:Ao}),wd=ke.extend({method:P("logging/setLevel"),params:yS}),$S=nt.extend({level:Ao,logger:v().optional(),data:ue()}),bS=ot.extend({method:P("notifications/message"),params:$S}),xS=z({name:v().optional()}),kS=z({hints:G(xS).optional(),costPriority:ne().min(0).max(1).optional(),speedPriority:ne().min(0).max(1).optional(),intelligencePriority:ne().min(0).max(1).optional()}),SS=z({mode:Pe(["auto","required","none"]).optional()}),wS=z({type:P("tool_result"),toolUseId:v().describe("The unique identifier for the corresponding tool call."),content:G(kd).default([]),structuredContent:z({}).loose().optional(),isError:ye().optional(),_meta:fe(v(),ue()).optional()}),zS=ba("type",[$d,bd,xd]),wa=ba("type",[$d,bd,xd,cS,wS]),IS=z({role:No,content:ie([wa,G(wa)]),_meta:fe(v(),ue()).optional()}),ES=Io.extend({messages:G(IS),modelPreferences:kS.optional(),systemPrompt:v().optional(),includeContext:Pe(["none","thisServer","allServers"]).optional(),temperature:ne().optional(),maxTokens:ne().int(),stopSequences:G(v()).optional(),metadata:xe.optional(),tools:G(tv).optional(),toolChoice:SS.optional()}),TS=ke.extend({method:P("sampling/createMessage"),params:ES}),Mo=Se.extend({model:v(),stopReason:me(Pe(["endTurn","stopSequence","maxTokens"]).or(v())),role:No,content:zS}),zd=Se.extend({model:v(),stopReason:me(Pe(["endTurn","stopSequence","maxTokens","toolUse"]).or(v())),role:No,content:ie([wa,G(wa)])}),PS=z({type:P("boolean"),title:v().optional(),description:v().optional(),default:ye().optional()}),OS=z({type:P("string"),title:v().optional(),description:v().optional(),minLength:ne().optional(),maxLength:ne().optional(),format:Pe(["email","uri","date","date-time"]).optional(),default:v().optional()}),jS=z({type:Pe(["number","integer"]),title:v().optional(),description:v().optional(),minimum:ne().optional(),maximum:ne().optional(),default:ne().optional()}),DS=z({type:P("string"),title:v().optional(),description:v().optional(),enum:G(v()),default:v().optional()}),NS=z({type:P("string"),title:v().optional(),description:v().optional(),oneOf:G(z({const:v(),title:v()})),default:v().optional()}),RS=z({type:P("string"),title:v().optional(),description:v().optional(),enum:G(v()),enumNames:G(v()).optional(),default:v().optional()}),AS=ie([DS,NS]),MS=z({type:P("array"),title:v().optional(),description:v().optional(),minItems:ne().optional(),maxItems:ne().optional(),items:z({type:P("string"),enum:G(v())}),default:G(v()).optional()}),CS=z({type:P("array"),title:v().optional(),description:v().optional(),minItems:ne().optional(),maxItems:ne().optional(),items:z({anyOf:G(z({const:v(),title:v()}))}),default:G(v()).optional()}),US=ie([MS,CS]),ZS=ie([RS,AS,US]),LS=ie([ZS,PS,OS,jS]),qS=Io.extend({mode:P("form").optional(),message:v(),requestedSchema:z({type:P("object"),properties:fe(v(),LS),required:G(v()).optional()})}),FS=Io.extend({mode:P("url"),message:v(),elicitationId:v(),url:v().url()}),VS=ie([qS,FS]),JS=ke.extend({method:P("elicitation/create"),params:VS}),WS=nt.extend({elicitationId:v()}),KS=ot.extend({method:P("notifications/elicitation/complete"),params:WS}),sn=Se.extend({action:Pe(["accept","decline","cancel"]),content:Sa(t=>t===null?void 0:t,fe(v(),ie([v(),ne(),ye(),G(v())])).optional())}),HS=z({type:P("ref/resource"),uri:v()});var GS=z({type:P("ref/prompt"),name:v()}),BS=Ye.extend({ref:ie([GS,HS]),argument:z({name:v(),value:v()}),context:z({arguments:fe(v(),v()).optional()}).optional()}),XS=ke.extend({method:P("completion/complete"),params:BS});var YS=Se.extend({completion:Te({values:G(v()).max(100),total:me(ne().int()),hasMore:me(ye())})}),QS=z({uri:v().startsWith("file://"),name:v().optional(),_meta:fe(v(),ue()).optional()}),ew=ke.extend({method:P("roots/list"),params:Ye.optional()}),Id=Se.extend({roots:G(QS)}),tw=ot.extend({method:P("notifications/roots/list_changed"),params:nt.optional()}),d1=ie([Pa,gd,XS,wd,sS,oS,qk,Vk,Kk,Xk,Qk,Ro,Sd,ja,Na,Ra,Ma]),p1=ie([Ta,Oa,vd,tw,Do]),f1=ie([Ea,Mo,zd,sn,Id,Da,Aa,on]),m1=ie([Pa,TS,JS,ew,ja,Na,Ra,Ma]),h1=ie([Ta,Oa,bS,tS,Gk,_S,fS,Do,KS]),g1=ie([Ea,Rk,YS,pS,iS,Fk,Jk,Hk,Ca,gS,Da,Aa,on]),V=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===Y.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new ld(o.elicitations,r)}return new t(e,r,n)}},ld=class extends V{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(Y.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function or(t){return t==="completed"||t==="failed"||t==="cancelled"}var B1=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Ed(t){let r=ua(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Uh(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Td(t,e){let r=rr(t,e);if(!r.success)throw r.error;return r.data}var sw=6e4,Ua=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(Ta,r=>{this._oncancel(r)}),this.setNotificationHandler(Oa,r=>{this._onprogress(r)}),this.setRequestHandler(Pa,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(ja,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new V(Y.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(Na,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(s.type==="response"||s.type==="error"){let c=s.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),s.type==="response")l(c);else{let d=c,p=new V(d.error.code,d.error.message,d.error.data);l(p)}else{let d=s.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:n.requestId})}}let a=await this._taskStore.getTask(i,n.sessionId);if(!a)throw new V(Y.InvalidParams,`Task not found: ${i}`);if(!or(a.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(or(a.status)){let s=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...s,_meta:{...s._meta,[nr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(Ra,async(r,n)=>{try{let{tasks:o,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:i,_meta:{}}}catch(o){throw new V(Y.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(Ma,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new V(Y.InvalidParams,`Task not found: ${r.params.taskId}`);if(or(o.status))throw new V(Y.InvalidParams,`Cannot cancel task in terminal status: ${o.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 V(Y.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof V?o:new V(Y.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_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),V.fromError(Y.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 o=this._transport?.onmessage;this._transport.onmessage=(i,a)=>{o?.(i,a),Eo(i)||Kg(i)?this._onresponse(i):fd(i)?this._onrequest(i,a):Wg(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._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=V.fromError(Y.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,o=this._transport,i=e.params?._meta?.[nr]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:Y.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):o?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);let s=Fg(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,u={signal:a.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{if(a.signal.aborted)return;let d={relatedRequestId:e.id};i&&(d.relatedTask={taskId:i}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{if(a.signal.aborted)throw new V(Y.ConnectionClosed,"Request was cancelled");let f={...p,relatedRequestId:e.id};i&&!f.relatedTask&&(f.relatedTask={taskId:i});let g=f.relatedTask?.taskId??i;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(l,d,f)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:s?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async l=>{if(a.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)},async l=>{if(a.signal.aborted)return;let d={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:Y.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(o),s=this._timeoutInfo.get(o);if(s&&a&&s.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),a(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Eo(e))n(e);else{let a=new V(e.error.code,e.error.message,e.error.data);n(a)}return}let o=this._responseHandlers.get(r);if(o===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(Eo(e)&&e.result&&typeof e.result=="object"){let a=e.result;if(a.task&&typeof a.task=="object"){let s=a.task;typeof s.taskId=="string"&&(i=!0,this._taskProgressTokens.set(s.taskId,r))}}if(i||this._progressHandlers.delete(r),Eo(e))o(e);else{let a=V.fromError(e.error.code,e.error.message,e.error.data);o(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(a){yield{type:"error",error:a instanceof V?a:new V(Y.InternalError,String(a))}}return}let i;try{let a=await this.request(e,on,n);if(a.task)i=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new V(Y.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:s},or(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:s.status==="failed"?yield{type:"error",error:new V(Y.InternalError,`Task ${i} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new V(Y.InternalError,`Task ${i} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof V?a:new V(Y.InternalError,String(a))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:a,task:s,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=E=>{l(E)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),s&&this.assertTaskCapability(e.method)}catch(E){d(E);return}n?.signal?.throwIfAborted();let p=this._requestMessageId++,f={...e,jsonrpc:"2.0",id:p};n?.onprogress&&(this._progressHandlers.set(p,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:p}}),s&&(f.params={...f.params,task:s}),c&&(f.params={...f.params,_meta:{...f.params?._meta||{},[nr]:c}});let g=E=>{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(E)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:a}).catch(A=>this._onerror(new Error(`Failed to send cancellation: ${A}`)));let I=E instanceof V?E:new V(Y.RequestTimeout,String(E));l(I)};this._responseHandlers.set(p,E=>{if(!n?.signal?.aborted){if(E instanceof Error)return l(E);try{let I=rr(r,E.result);I.success?u(I.data):l(I.error)}catch(I){l(I)}}}),n?.signal?.addEventListener("abort",()=>{g(n?.signal?.reason)});let h=n?.timeout??sw,_=()=>g(V.fromError(Y.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(p,h,n?.maxTotalTimeout,_,n?.resetTimeoutOnProgress??!1);let b=c?.taskId;if(b){let E=I=>{let A=this._responseHandlers.get(p);A?A(I):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,E),this._enqueueTaskMessage(b,{type:"request",message:f,timestamp:Date.now()}).catch(I=>{this._cleanupTimeout(p),l(I)})}else this._transport.send(f,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:a}).catch(E=>{this._cleanupTimeout(p),l(E)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},Da,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},Aa,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},Bg,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 s={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[nr]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:s,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 s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[nr]:r.relatedTask}}}),this._transport?.send(s,r).catch(c=>this._onerror(c))});return}let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[nr]:r.relatedTask}}}),await this._transport.send(a,r)}setRequestHandler(e,r){let n=Ed(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let a=Td(e,o);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=Ed(e);this._notificationHandlers.set(n,o=>{let i=Td(e,o);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 o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&fd(o.message)){let i=o.message.id,a=this._requestResolvers.get(i);a?(a(new V(Y.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 o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new V(Y.InvalidRequest,"Request cancelled"));return}let a=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(a),i(new V(Y.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new V(Y.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,a)=>{await n.storeTaskResult(o,i,a,r);let s=await n.getTask(o,r);if(s){let c=Do.parse({method:"notifications/tasks/status",params:s});await this.notification(c),or(s.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,a)=>{let s=await n.getTask(o,r);if(!s)throw new V(Y.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(or(s.status))throw new V(Y.InvalidParams,`Cannot update task "${o}" from terminal status "${s.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,a,r);let c=await n.getTask(o,r);if(c){let u=Do.parse({method:"notifications/tasks/status",params:c});await this.notification(u),or(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function rv(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function nv(t,e){let r={...t};for(let n in e){let o=n,i=e[o];if(i===void 0)continue;let a=r[o];rv(a)&&rv(i)?r[o]={...a,...i}:r[o]=i}return r}var Fy=vi(hf(),1),Vy=vi(qy(),1);function YT(){let t=new Fy.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Vy.default)(t),t}var bs=class{constructor(e){this._ajv=e??YT()}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 xs=class{constructor(e){this._server=e}requestStream(e,r,n){return this._server.requestStream(e,r,n)}createMessageStream(e,r){let n=this._server.getClientCapabilities();if((e.tools||e.toolChoice)&&!n?.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],i=Array.isArray(o.content)?o.content:[o.content],a=i.some(l=>l.type==="tool_result"),s=e.messages.length>1?e.messages[e.messages.length-2]:void 0,c=s?Array.isArray(s.content)?s.content:[s.content]:[],u=c.some(l=>l.type==="tool_use");if(a){if(i.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(i.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},Mo,r)}elicitInputStream(e,r){let n=this._server.getClientCapabilities(),o=e.mode??"form";switch(o){case"url":{if(!n?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!n?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let i=o==="form"&&e.mode===void 0?{...e,mode:"form"}:e;return this.requestStream({method:"elicitation/create",params:i},sn,r)}async getTask(e,r){return this._server.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._server.getTaskResult({taskId:e},r,n)}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 Jy(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 Wy(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 ks=class extends Ua{constructor(e,r){super(r),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(Ao.options.map((n,o)=>[n,o])),this.isMessageIgnored=(n,o)=>{let i=this._loggingLevels.get(o);return i?this.LOG_LEVEL_SEVERITY.get(n)this._oninitialize(n)),this.setNotificationHandler(vd,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(wd,async(n,o)=>{let i=o.sessionId||o.requestInfo?.headers["mcp-session-id"]||void 0,{level:a}=n.params,s=Ao.safeParse(a);return s.success&&this._loggingLevels.set(i,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new xs(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=nv(this._capabilities,e)}setRequestHandler(e,r){let o=ua(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i;if(tn(o)){let s=o;i=s._zod?.def?.value??s.value}else{let s=o;i=s._def?.value??s.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");if(i==="tools/call"){let s=async(c,u)=>{let l=rr(Ro,c);if(!l.success){let g=l.error instanceof Error?l.error.message:String(l.error);throw new V(Y.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:d}=l.data,p=await Promise.resolve(r(c,u));if(d.task){let g=rr(on,p);if(!g.success){let h=g.error instanceof Error?g.error.message:String(g.error);throw new V(Y.InvalidParams,`Invalid task creation result: ${h}`)}return g.data}let f=rr(Ca,p);if(!f.success){let g=f.error instanceof Error?f.error.message:String(f.error);throw new V(Y.InvalidParams,`Invalid tools/call result: ${g}`)}return f.data};return super.setRequestHandler(e,s)}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){Wy(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&Jy(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:Zg.includes(r)?r:dd,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"},Ea)}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 n=e.messages[e.messages.length-1],o=Array.isArray(n.content)?n.content:[n.content],i=o.some(u=>u.type==="tool_result"),a=e.messages.length>1?e.messages[e.messages.length-2]:void 0,s=a?Array.isArray(a.content)?a.content:[a.content]:[],c=s.some(u=>u.type==="tool_use");if(i){if(o.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(s.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(o.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},zd,r):this.request({method:"sampling/createMessage",params:e},Mo,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 o=e;return this.request({method:"elicitation/create",params:o},sn,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let o=e.mode==="form"?e:{...e,mode:"form"},i=await this.request({method:"elicitation/create",params:o},sn,r);if(i.action==="accept"&&i.content&&o.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(o.requestedSchema)(i.content);if(!s.valid)throw new V(Y.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(a){throw a instanceof V?a:new V(Y.InternalError,`Error validating elicitation response: ${a instanceof Error?a.message:String(a)}`)}return i}}}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},Id,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 kf=vi(require("node:process"),1);var Ss=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),QT(r)}clear(){this._buffer=void 0}};function QT(t){return Hg.parse(JSON.parse(t))}function Ky(t){return JSON.stringify(t)+` -`}var ws=class{constructor(e=kf.default.stdin,r=kf.default.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new Ss,this._started=!1,this._ondata=n=>{this._readBuffer.append(n),this.processReadBuffer()},this._onerror=n=>{this.onerror?.(n)}}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 n=Ky(e);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};var If=vi(require("path"),1);var Sf={DEFAULT:3e5,HEALTH_CHECK:3e3,POST_SPAWN_WAIT:5e3,READINESS_WAIT:3e4,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5};function Hy(t){return process.platform==="win32"?Math.round(t*Sf.WINDOWS_MULTIPLIER):t}var zt=require("fs"),zs=require("path"),Gy=require("os"),jr=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:"cli",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,zs.join)((0,Gy.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT:"true",CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]",CLAUDE_MEM_CHROMA_ENABLED:"true",CLAUDE_MEM_CHROMA_MODE:"local",CLAUDE_MEM_CHROMA_HOST:"127.0.0.1",CLAUDE_MEM_CHROMA_PORT:"8000",CLAUDE_MEM_CHROMA_SSL:"false",CLAUDE_MEM_CHROMA_API_KEY:"",CLAUDE_MEM_CHROMA_TENANT:"default_tenant",CLAUDE_MEM_CHROMA_DATABASE:"default_database"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return process.env[e]??this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){let r=this.get(e);return r==="true"||r===!0}static applyEnvOverrides(e){let r={...e};for(let n of Object.keys(this.DEFAULTS))process.env[n]!==void 0&&(r[n]=process.env[n]);return r}static loadFromFile(e){try{if(!(0,zt.existsSync)(e)){let a=this.getAllDefaults();try{let s=(0,zs.dirname)(e);(0,zt.existsSync)(s)||(0,zt.mkdirSync)(s,{recursive:!0}),(0,zt.writeFileSync)(e,JSON.stringify(a,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(s){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,s)}return this.applyEnvOverrides(a)}let r=(0,zt.readFileSync)(e,"utf-8"),n=JSON.parse(r),o=n;if(n.env&&typeof n.env=="object"){o=n.env;try{(0,zt.writeFileSync)(e,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(a){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,a)}}let i={...this.DEFAULTS};for(let a of Object.keys(this.DEFAULTS))o[a]!==void 0&&(i[a]=o[a]);return this.applyEnvOverrides(i)}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.applyEnvOverrides(this.getAllDefaults())}}};var $e=require("path"),wf=require("os"),zf=require("fs");var By=require("url");var nP={};function eP(){return typeof __dirname<"u"?__dirname:(0,$e.dirname)((0,By.fileURLToPath)(nP.url))}var OU=eP();function tP(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let t=(0,$e.join)((0,wf.homedir)(),".claude-mem"),e=(0,$e.join)(t,"settings.json");try{if((0,zf.existsSync)(e)){let{readFileSync:r}=require("fs"),n=JSON.parse(r(e,"utf-8")),o=n.env??n;if(o.CLAUDE_MEM_DATA_DIR)return o.CLAUDE_MEM_DATA_DIR}}catch{}return t}var Vt=tP(),Is=process.env.CLAUDE_CONFIG_DIR||(0,$e.join)((0,wf.homedir)(),".claude"),rP=(0,$e.join)(Is,"plugins","marketplaces","thedotmack"),jU=(0,$e.join)(Vt,"archives"),DU=(0,$e.join)(Vt,"logs"),NU=(0,$e.join)(Vt,"trash"),RU=(0,$e.join)(Vt,"backups"),AU=(0,$e.join)(Vt,"modes"),MU=(0,$e.join)(Vt,"settings.json"),CU=(0,$e.join)(Vt,"claude-mem.db"),UU=(0,$e.join)(Vt,"vector-db"),ZU=(0,$e.join)(Vt,"observer-sessions"),LU=(0,$e.join)(Is,"settings.json"),qU=(0,$e.join)(Is,"commands"),FU=(0,$e.join)(Is,"CLAUDE.md");var oP=(()=>{let t=process.env.CLAUDE_MEM_HEALTH_TIMEOUT_MS;if(t){let e=parseInt(t,10);if(Number.isFinite(e)&&e>=500&&e<=3e5)return e;ve.warn("SYSTEM","Invalid CLAUDE_MEM_HEALTH_TIMEOUT_MS, using default",{value:t,min:500,max:3e5})}return Hy(Sf.HEALTH_CHECK)})();function iP(t,e={},r){return new Promise((n,o)=>{let i=setTimeout(()=>o(new Error(`Request timed out after ${r}ms`)),r);fetch(t,e).then(a=>{clearTimeout(i),n(a)},a=>{clearTimeout(i),o(a)})})}var Es=null,Ts=null;function aP(){if(Es!==null)return Es;let t=If.default.join(jr.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=jr.loadFromFile(t);return Es=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),Es}function sP(){if(Ts!==null)return Ts;let t=If.default.join(jr.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return Ts=jr.loadFromFile(t).CLAUDE_MEM_WORKER_HOST,Ts}function cP(t){return`http://${sP()}:${aP()}${t}`}function Ps(t,e={}){let r=e.method??"GET",n=e.timeoutMs??oP,o=cP(t),i={method:r};return e.headers&&(i.headers=e.headers),e.body&&(i.body=e.body),n>0?iP(o,i,n):fetch(o,i)}var zn=require("node:fs/promises"),hi=require("node:path");var Yy=require("node:child_process"),It=require("node:fs"),Jt=require("node:path"),Of=require("node:os"),Pf=require("node:module"),bP={},Qy=typeof __filename<"u"?(0,Pf.createRequire)(__filename):(0,Pf.createRequire)(bP.url),uP={".js":"javascript",".mjs":"javascript",".cjs":"javascript",".jsx":"tsx",".ts":"typescript",".tsx":"tsx",".py":"python",".pyw":"python",".go":"go",".rs":"rust",".rb":"ruby",".java":"java",".c":"c",".h":"c",".cpp":"cpp",".cc":"cpp",".cxx":"cpp",".hpp":"cpp",".hh":"cpp"};function e$(t){let e=t.slice(t.lastIndexOf("."));return uP[e]||"unknown"}var lP={javascript:"tree-sitter-javascript",typescript:"tree-sitter-typescript/typescript",tsx:"tree-sitter-typescript/tsx",python:"tree-sitter-python",go:"tree-sitter-go",rust:"tree-sitter-rust",ruby:"tree-sitter-ruby",java:"tree-sitter-java",c:"tree-sitter-c",cpp:"tree-sitter-cpp"};function t$(t){let e=lP[t];if(!e)return null;try{let r=Qy.resolve(e+"/package.json");return(0,Jt.dirname)(r)}catch{return null}}var dP={jsts:` +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let a of e.seen.entries()){let s=a[1];if(t===a[0]){i(a);continue}if(e.external){let u=e.external.registry.get(a[0])?.id;if(t!==a[0]&&u){i(a);continue}}if(e.metadataRegistry.get(a[0])?.id){i(a);continue}if(s.cycle){i(a);continue}if(s.count>1&&e.reused==="ref"){i(a);continue}}}function ia(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let s=e.seen.get(a);if(s.ref===null)return;let c=s.def??s.schema,u={...c},l=s.ref;if(s.ref=null,l){n(l);let m=e.seen.get(l),p=m.schema;if(p.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(p)):Object.assign(c,p),Object.assign(c,u),a._zod.parent===l)for(let h in c)h==="$ref"||h==="allOf"||h in u||delete c[h];if(p.$ref)for(let h in c)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(c[h])===JSON.stringify(m.def[h])&&delete c[h]}let d=a._zod.parent;if(d&&d!==l){n(d);let m=e.seen.get(d);if(m?.schema.$ref&&(c.$ref=m.schema.$ref,m.def))for(let p in c)p==="$ref"||p==="allOf"||p in m.def&&JSON.stringify(c[p])===JSON.stringify(m.def[p])&&delete c[p]}e.override({zodSchema:a,jsonSchema:c,path:s.path??[]})};for(let a of[...e.seen.entries()].reverse())n(a[0]);let o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let a=e.external.registry.get(t)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(a)}Object.assign(o,r.def??r.schema);let i=e.external?.defs??{};for(let a of e.seen.entries()){let s=a[1];s.def&&s.defId&&(i[s.defId]=s.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:yo(t,"input",e.processors),output:yo(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function Ce(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Ce(n.element,r);if(n.type==="set")return Ce(n.valueType,r);if(n.type==="lazy")return Ce(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Ce(n.innerType,r);if(n.type==="intersection")return Ce(n.left,r)||Ce(n.right,r);if(n.type==="record"||n.type==="map")return Ce(n.keyType,r)||Ce(n.valueType,r);if(n.type==="pipe")return Ce(n.in,r)||Ce(n.out,r);if(n.type==="object"){for(let o in n.shape)if(Ce(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(Ce(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(Ce(o,r))return!0;return!!(n.rest&&Ce(n.rest,r))}return!1}var Wm=(e,t={})=>r=>{let n=na({...r,processors:t});return pe(e,n),oa(n,e),ia(n,e)},yo=(e,t,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},a=na({...o??{},target:i,io:t,processors:r});return pe(e,a),oa(a,e),ia(a,e)};var Bb={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Km=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:a,format:s,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof a=="number"&&(o.maxLength=a),s&&(o.format=Bb[s]??s,o.format===""&&delete o.format,s==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){let l=[...c];l.length===1?o.pattern=l[0].source:l.length>1&&(o.allOf=[...l.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},Hm=(e,t,r,n)=>{let o=r,{minimum:i,maximum:a,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;typeof s=="string"&&s.includes("int")?o.type="integer":o.type="number",typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l),typeof i=="number"&&(o.minimum=i,typeof l=="number"&&t.target!=="draft-04"&&(l>=i?delete o.minimum:delete o.exclusiveMinimum)),typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u),typeof a=="number"&&(o.maximum=a,typeof u=="number"&&t.target!=="draft-04"&&(u<=a?delete o.maximum:delete o.exclusiveMaximum)),typeof c=="number"&&(o.multipleOf=c)},Gm=(e,t,r,n)=>{r.type="boolean"},Bm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},Xm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},Ym=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},Qm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},eh=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},th=(e,t,r,n)=>{r.not={}},rh=(e,t,r,n)=>{},nh=(e,t,r,n)=>{},oh=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},ih=(e,t,r,n)=>{let o=e._zod.def,i=Zn(o.entries);i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),r.enum=i},ah=(e,t,r,n)=>{let o=e._zod.def,i=[];for(let a of o.values)if(a===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof a=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(a))}else i.push(a);if(i.length!==0)if(i.length===1){let a=i[0];r.type=a===null?"null":typeof a,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[a]:r.const=a}else i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),i.every(a=>typeof a=="boolean")&&(r.type="boolean"),i.every(a=>a===null)&&(r.type="null"),r.enum=i},sh=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},ch=(e,t,r,n)=>{let o=r,i=e._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=i.source},uh=(e,t,r,n)=>{let o=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:a,maximum:s,mime:c}=e._zod.bag;a!==void 0&&(i.minLength=a),s!==void 0&&(i.maxLength=s),c?c.length===1?(i.contentMediaType=c[0],Object.assign(o,i)):(Object.assign(o,i),o.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(o,i)},lh=(e,t,r,n)=>{r.type="boolean"},dh=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},ph=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},fh=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},mh=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},hh=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},gh=(e,t,r,n)=>{let o=r,i=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;typeof a=="number"&&(o.minItems=a),typeof s=="number"&&(o.maxItems=s),o.type="array",o.items=pe(i.element,t,{...n,path:[...n.path,"items"]})},vh=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object",o.properties={};let a=i.shape;for(let u in a)o.properties[u]=pe(a[u],t,{...n,path:[...n.path,"properties",u]});let s=new Set(Object.keys(a)),c=new Set([...s].filter(u=>{let l=i.shape[u]._zod;return t.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=pe(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},Sl=(e,t,r,n)=>{let o=e._zod.def,i=o.inclusive===!1,a=o.options.map((s,c)=>pe(s,t,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=a:r.anyOf=a},_h=(e,t,r,n)=>{let o=e._zod.def,i=pe(o.left,t,{...n,path:[...n.path,"allOf",0]}),a=pe(o.right,t,{...n,path:[...n.path,"allOf",1]}),s=u=>"allOf"in u&&Object.keys(u).length===1,c=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]];r.allOf=c},yh=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="array";let a=t.target==="draft-2020-12"?"prefixItems":"items",s=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",c=i.items.map((m,p)=>pe(m,t,{...n,path:[...n.path,a,p]})),u=i.rest?pe(i.rest,t,{...n,path:[...n.path,s,...t.target==="openapi-3.0"?[i.items.length]:[]]}):null;t.target==="draft-2020-12"?(o.prefixItems=c,u&&(o.items=u)):t.target==="openapi-3.0"?(o.items={anyOf:c},u&&o.items.anyOf.push(u),o.minItems=c.length,u||(o.maxItems=c.length)):(o.items=c,u&&(o.additionalItems=u));let{minimum:l,maximum:d}=e._zod.bag;typeof l=="number"&&(o.minItems=l),typeof d=="number"&&(o.maxItems=d)},$h=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object";let a=i.keyType,c=a._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let l=pe(i.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let d of c)o.patternProperties[d.source]=l}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=pe(i.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=pe(i.valueType,t,{...n,path:[...n.path,"additionalProperties"]});let u=a._zod.values;if(u){let l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(o.required=l)}},bh=(e,t,r,n)=>{let o=e._zod.def,i=pe(o.innerType,t,n),a=t.seen.get(e);t.target==="openapi-3.0"?(a.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},xh=(e,t,r,n)=>{let o=e._zod.def;pe(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},kh=(e,t,r,n)=>{let o=e._zod.def;pe(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Sh=(e,t,r,n)=>{let o=e._zod.def;pe(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},wh=(e,t,r,n)=>{let o=e._zod.def;pe(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType;let a;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a},zh=(e,t,r,n)=>{let o=e._zod.def,i=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;pe(i,t,n);let a=t.seen.get(e);a.ref=i},Ih=(e,t,r,n)=>{let o=e._zod.def;pe(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},Eh=(e,t,r,n)=>{let o=e._zod.def;pe(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},wl=(e,t,r,n)=>{let o=e._zod.def;pe(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},Th=(e,t,r,n)=>{let o=e._zod.innerType;pe(o,t,n);let i=t.seen.get(e);i.ref=o};function tn(e){return!!e._zod}function rr(e,t){return tn(e)?Br(e,t):e.safeParse(t)}function aa(e){if(!e)return;let t;if(tn(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function Dh(e){if(tn(e)){let i=e._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=e._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=e.value;if(n!==void 0)return n}var $o={};wn($o,{ZodAny:()=>Xh,ZodArray:()=>tg,ZodBase64:()=>Gl,ZodBase64URL:()=>Bl,ZodBigInt:()=>ha,ZodBigIntFormat:()=>Ql,ZodBoolean:()=>ma,ZodCIDRv4:()=>Kl,ZodCIDRv6:()=>Hl,ZodCUID:()=>Zl,ZodCUID2:()=>Ll,ZodCatch:()=>bg,ZodCodec:()=>ad,ZodCustom:()=>$a,ZodCustomStringFormat:()=>xo,ZodDate:()=>td,ZodDefault:()=>hg,ZodDiscriminatedUnion:()=>ng,ZodE164:()=>Xl,ZodEmail:()=>Ml,ZodEmoji:()=>Cl,ZodEnum:()=>bo,ZodExactOptional:()=>pg,ZodFile:()=>lg,ZodFunction:()=>Pg,ZodGUID:()=>ca,ZodIPv4:()=>Jl,ZodIPv6:()=>Wl,ZodIntersection:()=>og,ZodJWT:()=>Yl,ZodKSUID:()=>Vl,ZodLazy:()=>Ig,ZodLiteral:()=>ug,ZodMAC:()=>Kh,ZodMap:()=>sg,ZodNaN:()=>kg,ZodNanoID:()=>Ul,ZodNever:()=>Qh,ZodNonOptional:()=>od,ZodNull:()=>Bh,ZodNullable:()=>mg,ZodNumber:()=>fa,ZodNumberFormat:()=>rn,ZodObject:()=>ga,ZodOptional:()=>nd,ZodPipe:()=>id,ZodPrefault:()=>vg,ZodPromise:()=>Tg,ZodReadonly:()=>Sg,ZodRecord:()=>ya,ZodSet:()=>cg,ZodString:()=>da,ZodStringFormat:()=>ce,ZodSuccess:()=>$g,ZodSymbol:()=>Hh,ZodTemplateLiteral:()=>zg,ZodTransform:()=>dg,ZodTuple:()=>ig,ZodType:()=>q,ZodULID:()=>ql,ZodURL:()=>pa,ZodUUID:()=>Mt,ZodUndefined:()=>Gh,ZodUnion:()=>va,ZodUnknown:()=>Yh,ZodVoid:()=>eg,ZodXID:()=>Fl,ZodXor:()=>rg,_ZodString:()=>Al,_default:()=>gg,_function:()=>mk,any:()=>Bx,array:()=>G,base64:()=>Dx,base64url:()=>Nx,bigint:()=>Jx,boolean:()=>ye,catch:()=>xg,check:()=>hk,cidrv4:()=>Ox,cidrv6:()=>jx,codec:()=>dk,cuid:()=>kx,cuid2:()=>Sx,custom:()=>sd,date:()=>Yx,describe:()=>gk,discriminatedUnion:()=>_a,e164:()=>Rx,email:()=>fx,emoji:()=>bx,enum:()=>Pe,exactOptional:()=>fg,file:()=>sk,float32:()=>Lx,float64:()=>qx,function:()=>mk,guid:()=>mx,hash:()=>Zx,hex:()=>Ux,hostname:()=>Cx,httpUrl:()=>$x,instanceof:()=>_k,int:()=>Rl,int32:()=>Fx,int64:()=>Wx,intersection:()=>So,ipv4:()=>Ex,ipv6:()=>Px,json:()=>$k,jwt:()=>Ax,keyof:()=>Qx,ksuid:()=>Ix,lazy:()=>Eg,literal:()=>P,looseObject:()=>Te,looseRecord:()=>nk,mac:()=>Tx,map:()=>ok,meta:()=>vk,nan:()=>lk,nanoid:()=>xx,nativeEnum:()=>ak,never:()=>ed,nonoptional:()=>yg,null:()=>ko,nullable:()=>ua,nullish:()=>ck,number:()=>ne,object:()=>z,optional:()=>me,partialRecord:()=>rk,pipe:()=>la,prefault:()=>_g,preprocess:()=>ba,promise:()=>fk,readonly:()=>wg,record:()=>fe,refine:()=>Og,set:()=>ik,strictObject:()=>ek,string:()=>v,stringFormat:()=>Mx,stringbool:()=>yk,success:()=>uk,superRefine:()=>jg,symbol:()=>Hx,templateLiteral:()=>pk,transform:()=>rd,tuple:()=>ag,uint32:()=>Vx,uint64:()=>Kx,ulid:()=>wx,undefined:()=>Gx,union:()=>ie,unknown:()=>ue,url:()=>yx,uuid:()=>hx,uuidv4:()=>gx,uuidv6:()=>vx,uuidv7:()=>_x,void:()=>Xx,xid:()=>zx,xor:()=>tk});var sa={};wn(sa,{endsWith:()=>fo,gt:()=>Rt,gte:()=>Me,includes:()=>lo,length:()=>Qr,lowercase:()=>co,lt:()=>Nt,lte:()=>Be,maxLength:()=>Yr,maxSize:()=>$r,mime:()=>mo,minLength:()=>tr,minSize:()=>At,multipleOf:()=>yr,negative:()=>fl,nonnegative:()=>hl,nonpositive:()=>ml,normalize:()=>ho,overwrite:()=>yt,positive:()=>pl,property:()=>gl,regex:()=>so,size:()=>Xr,slugify:()=>ra,startsWith:()=>po,toLowerCase:()=>vo,toUpperCase:()=>_o,trim:()=>go,uppercase:()=>uo});var br={};wn(br,{ZodISODate:()=>Tl,ZodISODateTime:()=>Il,ZodISODuration:()=>Dl,ZodISOTime:()=>Ol,date:()=>Pl,datetime:()=>El,duration:()=>Nl,time:()=>jl});var Il=f("ZodISODateTime",(e,t)=>{Lc.init(e,t),ce.init(e,t)});function El(e){return Fu(Il,e)}var Tl=f("ZodISODate",(e,t)=>{qc.init(e,t),ce.init(e,t)});function Pl(e){return Vu(Tl,e)}var Ol=f("ZodISOTime",(e,t)=>{Fc.init(e,t),ce.init(e,t)});function jl(e){return Ju(Ol,e)}var Dl=f("ZodISODuration",(e,t)=>{Vc.init(e,t),ce.init(e,t)});function Nl(e){return Wu(Dl,e)}var Nh=(e,t)=>{bi.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>ki(e,r)},flatten:{value:r=>xi(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,Kr,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,Kr,2)}},isEmpty:{get(){return e.issues.length===0}}})},RR=f("ZodError",Nh),Xe=f("ZodError",Nh,{Parent:Error});var Rh=Wn(Xe),Ah=Hn(Xe),Mh=Bn(Xe),Ch=Xn(Xe),Uh=Gf(Xe),Zh=Bf(Xe),Lh=Xf(Xe),qh=Yf(Xe),Fh=Qf(Xe),Vh=em(Xe),Jh=tm(Xe),Wh=rm(Xe);var q=f("ZodType",(e,t)=>(Z.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:yo(e,"input"),output:yo(e,"output")}}),e.toJSONSchema=Wm(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...r)=>e.clone($.mergeDefs(t,{checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),e.with=e.check,e.clone=(r,n)=>Re(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.parse=(r,n)=>Rh(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Mh(e,r,n),e.parseAsync=async(r,n)=>Ah(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Ch(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>Uh(e,r,n),e.decode=(r,n)=>Zh(e,r,n),e.encodeAsync=async(r,n)=>Lh(e,r,n),e.decodeAsync=async(r,n)=>qh(e,r,n),e.safeEncode=(r,n)=>Fh(e,r,n),e.safeDecode=(r,n)=>Vh(e,r,n),e.safeEncodeAsync=async(r,n)=>Jh(e,r,n),e.safeDecodeAsync=async(r,n)=>Wh(e,r,n),e.refine=(r,n)=>e.check(Og(r,n)),e.superRefine=r=>e.check(jg(r)),e.overwrite=r=>e.check(yt(r)),e.optional=()=>me(e),e.exactOptional=()=>fg(e),e.nullable=()=>ua(e),e.nullish=()=>me(ua(e)),e.nonoptional=r=>yg(e,r),e.array=()=>G(e),e.or=r=>ie([e,r]),e.and=r=>So(e,r),e.transform=r=>la(e,rd(r)),e.default=r=>gg(e,r),e.prefault=r=>_g(e,r),e.catch=r=>xg(e,r),e.pipe=r=>la(e,r),e.readonly=()=>wg(e),e.describe=r=>{let n=e.clone();return Ae.add(n,{description:r}),n},Object.defineProperty(e,"description",{get(){return Ae.get(e)?.description},configurable:!0}),e.meta=(...r)=>{if(r.length===0)return Ae.get(e);let n=e.clone();return Ae.add(n,r[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=r=>r(e),e)),Al=f("_ZodString",(e,t)=>{_r.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Km(e,n,o,i);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...n)=>e.check(so(...n)),e.includes=(...n)=>e.check(lo(...n)),e.startsWith=(...n)=>e.check(po(...n)),e.endsWith=(...n)=>e.check(fo(...n)),e.min=(...n)=>e.check(tr(...n)),e.max=(...n)=>e.check(Yr(...n)),e.length=(...n)=>e.check(Qr(...n)),e.nonempty=(...n)=>e.check(tr(1,...n)),e.lowercase=n=>e.check(co(n)),e.uppercase=n=>e.check(uo(n)),e.trim=()=>e.check(go()),e.normalize=(...n)=>e.check(ho(...n)),e.toLowerCase=()=>e.check(vo()),e.toUpperCase=()=>e.check(_o()),e.slugify=()=>e.check(ra())}),da=f("ZodString",(e,t)=>{_r.init(e,t),Al.init(e,t),e.email=r=>e.check(Ai(Ml,r)),e.url=r=>e.check(ao(pa,r)),e.jwt=r=>e.check(ta(Yl,r)),e.emoji=r=>e.check(Li(Cl,r)),e.guid=r=>e.check(io(ca,r)),e.uuid=r=>e.check(Mi(Mt,r)),e.uuidv4=r=>e.check(Ci(Mt,r)),e.uuidv6=r=>e.check(Ui(Mt,r)),e.uuidv7=r=>e.check(Zi(Mt,r)),e.nanoid=r=>e.check(qi(Ul,r)),e.guid=r=>e.check(io(ca,r)),e.cuid=r=>e.check(Fi(Zl,r)),e.cuid2=r=>e.check(Vi(Ll,r)),e.ulid=r=>e.check(Ji(ql,r)),e.base64=r=>e.check(Yi(Gl,r)),e.base64url=r=>e.check(Qi(Bl,r)),e.xid=r=>e.check(Wi(Fl,r)),e.ksuid=r=>e.check(Ki(Vl,r)),e.ipv4=r=>e.check(Hi(Jl,r)),e.ipv6=r=>e.check(Gi(Wl,r)),e.cidrv4=r=>e.check(Bi(Kl,r)),e.cidrv6=r=>e.check(Xi(Hl,r)),e.e164=r=>e.check(ea(Xl,r)),e.datetime=r=>e.check(El(r)),e.date=r=>e.check(Pl(r)),e.time=r=>e.check(jl(r)),e.duration=r=>e.check(Nl(r))});function v(e){return Lu(da,e)}var ce=f("ZodStringFormat",(e,t)=>{oe.init(e,t),Al.init(e,t)}),Ml=f("ZodEmail",(e,t)=>{jc.init(e,t),ce.init(e,t)});function fx(e){return Ai(Ml,e)}var ca=f("ZodGUID",(e,t)=>{Pc.init(e,t),ce.init(e,t)});function mx(e){return io(ca,e)}var Mt=f("ZodUUID",(e,t)=>{Oc.init(e,t),ce.init(e,t)});function hx(e){return Mi(Mt,e)}function gx(e){return Ci(Mt,e)}function vx(e){return Ui(Mt,e)}function _x(e){return Zi(Mt,e)}var pa=f("ZodURL",(e,t)=>{Dc.init(e,t),ce.init(e,t)});function yx(e){return ao(pa,e)}function $x(e){return ao(pa,{protocol:/^https?$/,hostname:rt.domain,...$.normalizeParams(e)})}var Cl=f("ZodEmoji",(e,t)=>{Nc.init(e,t),ce.init(e,t)});function bx(e){return Li(Cl,e)}var Ul=f("ZodNanoID",(e,t)=>{Rc.init(e,t),ce.init(e,t)});function xx(e){return qi(Ul,e)}var Zl=f("ZodCUID",(e,t)=>{Ac.init(e,t),ce.init(e,t)});function kx(e){return Fi(Zl,e)}var Ll=f("ZodCUID2",(e,t)=>{Mc.init(e,t),ce.init(e,t)});function Sx(e){return Vi(Ll,e)}var ql=f("ZodULID",(e,t)=>{Cc.init(e,t),ce.init(e,t)});function wx(e){return Ji(ql,e)}var Fl=f("ZodXID",(e,t)=>{Uc.init(e,t),ce.init(e,t)});function zx(e){return Wi(Fl,e)}var Vl=f("ZodKSUID",(e,t)=>{Zc.init(e,t),ce.init(e,t)});function Ix(e){return Ki(Vl,e)}var Jl=f("ZodIPv4",(e,t)=>{Jc.init(e,t),ce.init(e,t)});function Ex(e){return Hi(Jl,e)}var Kh=f("ZodMAC",(e,t)=>{Kc.init(e,t),ce.init(e,t)});function Tx(e){return qu(Kh,e)}var Wl=f("ZodIPv6",(e,t)=>{Wc.init(e,t),ce.init(e,t)});function Px(e){return Gi(Wl,e)}var Kl=f("ZodCIDRv4",(e,t)=>{Hc.init(e,t),ce.init(e,t)});function Ox(e){return Bi(Kl,e)}var Hl=f("ZodCIDRv6",(e,t)=>{Gc.init(e,t),ce.init(e,t)});function jx(e){return Xi(Hl,e)}var Gl=f("ZodBase64",(e,t)=>{Bc.init(e,t),ce.init(e,t)});function Dx(e){return Yi(Gl,e)}var Bl=f("ZodBase64URL",(e,t)=>{Xc.init(e,t),ce.init(e,t)});function Nx(e){return Qi(Bl,e)}var Xl=f("ZodE164",(e,t)=>{Yc.init(e,t),ce.init(e,t)});function Rx(e){return ea(Xl,e)}var Yl=f("ZodJWT",(e,t)=>{Qc.init(e,t),ce.init(e,t)});function Ax(e){return ta(Yl,e)}var xo=f("ZodCustomStringFormat",(e,t)=>{eu.init(e,t),ce.init(e,t)});function Mx(e,t,r={}){return en(xo,e,t,r)}function Cx(e){return en(xo,"hostname",rt.hostname,e)}function Ux(e){return en(xo,"hex",rt.hex,e)}function Zx(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=rt[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return en(xo,n,o,t)}var fa=f("ZodNumber",(e,t)=>{ji.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Hm(e,n,o,i),e.gt=(n,o)=>e.check(Rt(n,o)),e.gte=(n,o)=>e.check(Me(n,o)),e.min=(n,o)=>e.check(Me(n,o)),e.lt=(n,o)=>e.check(Nt(n,o)),e.lte=(n,o)=>e.check(Be(n,o)),e.max=(n,o)=>e.check(Be(n,o)),e.int=n=>e.check(Rl(n)),e.safe=n=>e.check(Rl(n)),e.positive=n=>e.check(Rt(0,n)),e.nonnegative=n=>e.check(Me(0,n)),e.negative=n=>e.check(Nt(0,n)),e.nonpositive=n=>e.check(Be(0,n)),e.multipleOf=(n,o)=>e.check(yr(n,o)),e.step=(n,o)=>e.check(yr(n,o)),e.finite=()=>e;let r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function ne(e){return Ku(fa,e)}var rn=f("ZodNumberFormat",(e,t)=>{tu.init(e,t),fa.init(e,t)});function Rl(e){return Hu(rn,e)}function Lx(e){return Gu(rn,e)}function qx(e){return Bu(rn,e)}function Fx(e){return Xu(rn,e)}function Vx(e){return Yu(rn,e)}var ma=f("ZodBoolean",(e,t)=>{ro.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Gm(e,r,n,o)});function ye(e){return Qu(ma,e)}var ha=f("ZodBigInt",(e,t)=>{Di.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Bm(e,n,o,i),e.gte=(n,o)=>e.check(Me(n,o)),e.min=(n,o)=>e.check(Me(n,o)),e.gt=(n,o)=>e.check(Rt(n,o)),e.gte=(n,o)=>e.check(Me(n,o)),e.min=(n,o)=>e.check(Me(n,o)),e.lt=(n,o)=>e.check(Nt(n,o)),e.lte=(n,o)=>e.check(Be(n,o)),e.max=(n,o)=>e.check(Be(n,o)),e.positive=n=>e.check(Rt(BigInt(0),n)),e.negative=n=>e.check(Nt(BigInt(0),n)),e.nonpositive=n=>e.check(Be(BigInt(0),n)),e.nonnegative=n=>e.check(Me(BigInt(0),n)),e.multipleOf=(n,o)=>e.check(yr(n,o));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null});function Jx(e){return el(ha,e)}var Ql=f("ZodBigIntFormat",(e,t)=>{ru.init(e,t),ha.init(e,t)});function Wx(e){return tl(Ql,e)}function Kx(e){return rl(Ql,e)}var Hh=f("ZodSymbol",(e,t)=>{nu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Xm(e,r,n,o)});function Hx(e){return nl(Hh,e)}var Gh=f("ZodUndefined",(e,t)=>{ou.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Qm(e,r,n,o)});function Gx(e){return ol(Gh,e)}var Bh=f("ZodNull",(e,t)=>{iu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ym(e,r,n,o)});function ko(e){return il(Bh,e)}var Xh=f("ZodAny",(e,t)=>{au.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>rh(e,r,n,o)});function Bx(){return al(Xh)}var Yh=f("ZodUnknown",(e,t)=>{su.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>nh(e,r,n,o)});function ue(){return sl(Yh)}var Qh=f("ZodNever",(e,t)=>{cu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>th(e,r,n,o)});function ed(e){return cl(Qh,e)}var eg=f("ZodVoid",(e,t)=>{uu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>eh(e,r,n,o)});function Xx(e){return ul(eg,e)}var td=f("ZodDate",(e,t)=>{lu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>oh(e,n,o,i),e.min=(n,o)=>e.check(Me(n,o)),e.max=(n,o)=>e.check(Be(n,o));let r=e._zod.bag;e.minDate=r.minimum?new Date(r.minimum):null,e.maxDate=r.maximum?new Date(r.maximum):null});function Yx(e){return ll(td,e)}var tg=f("ZodArray",(e,t)=>{du.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>gh(e,r,n,o),e.element=t.element,e.min=(r,n)=>e.check(tr(r,n)),e.nonempty=r=>e.check(tr(1,r)),e.max=(r,n)=>e.check(Yr(r,n)),e.length=(r,n)=>e.check(Qr(r,n)),e.unwrap=()=>e.element});function G(e,t){return Jm(tg,e,t)}function Qx(e){let t=e._zod.def.shape;return Pe(Object.keys(t))}var ga=f("ZodObject",(e,t)=>{Fm.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>vh(e,r,n,o),$.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>Pe(Object.keys(e._zod.def.shape)),e.catchall=r=>e.clone({...e._zod.def,catchall:r}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ue()}),e.loose=()=>e.clone({...e._zod.def,catchall:ue()}),e.strict=()=>e.clone({...e._zod.def,catchall:ed()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=r=>$.extend(e,r),e.safeExtend=r=>$.safeExtend(e,r),e.merge=r=>$.merge(e,r),e.pick=r=>$.pick(e,r),e.omit=r=>$.omit(e,r),e.partial=(...r)=>$.partial(nd,e,r[0]),e.required=(...r)=>$.required(od,e,r[0])});function z(e,t){let r={type:"object",shape:e??{},...$.normalizeParams(t)};return new ga(r)}function ek(e,t){return new ga({type:"object",shape:e,catchall:ed(),...$.normalizeParams(t)})}function Te(e,t){return new ga({type:"object",shape:e,catchall:ue(),...$.normalizeParams(t)})}var va=f("ZodUnion",(e,t)=>{no.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Sl(e,r,n,o),e.options=t.options});function ie(e,t){return new va({type:"union",options:e,...$.normalizeParams(t)})}var rg=f("ZodXor",(e,t)=>{va.init(e,t),pu.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Sl(e,r,n,o),e.options=t.options});function tk(e,t){return new rg({type:"union",options:e,inclusive:!1,...$.normalizeParams(t)})}var ng=f("ZodDiscriminatedUnion",(e,t)=>{va.init(e,t),fu.init(e,t)});function _a(e,t,r){return new ng({type:"union",options:t,discriminator:e,...$.normalizeParams(r)})}var og=f("ZodIntersection",(e,t)=>{mu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>_h(e,r,n,o)});function So(e,t){return new og({type:"intersection",left:e,right:t})}var ig=f("ZodTuple",(e,t)=>{Ni.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>yh(e,r,n,o),e.rest=r=>e.clone({...e._zod.def,rest:r})});function ag(e,t,r){let n=t instanceof Z,o=n?r:t,i=n?t:null;return new ig({type:"tuple",items:e,rest:i,...$.normalizeParams(o)})}var ya=f("ZodRecord",(e,t)=>{hu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>$h(e,r,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function fe(e,t,r){return new ya({type:"record",keyType:e,valueType:t,...$.normalizeParams(r)})}function rk(e,t,r){let n=Re(e);return n._zod.values=void 0,new ya({type:"record",keyType:n,valueType:t,...$.normalizeParams(r)})}function nk(e,t,r){return new ya({type:"record",keyType:e,valueType:t,mode:"loose",...$.normalizeParams(r)})}var sg=f("ZodMap",(e,t)=>{gu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>mh(e,r,n,o),e.keyType=t.keyType,e.valueType=t.valueType,e.min=(...r)=>e.check(At(...r)),e.nonempty=r=>e.check(At(1,r)),e.max=(...r)=>e.check($r(...r)),e.size=(...r)=>e.check(Xr(...r))});function ok(e,t,r){return new sg({type:"map",keyType:e,valueType:t,...$.normalizeParams(r)})}var cg=f("ZodSet",(e,t)=>{vu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>hh(e,r,n,o),e.min=(...r)=>e.check(At(...r)),e.nonempty=r=>e.check(At(1,r)),e.max=(...r)=>e.check($r(...r)),e.size=(...r)=>e.check(Xr(...r))});function ik(e,t){return new cg({type:"set",valueType:e,...$.normalizeParams(t)})}var bo=f("ZodEnum",(e,t)=>{_u.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>ih(e,n,o,i),e.enum=t.entries,e.options=Object.values(t.entries);let r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{let i={};for(let a of n)if(r.has(a))i[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new bo({...t,checks:[],...$.normalizeParams(o),entries:i})},e.exclude=(n,o)=>{let i={...t.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 bo({...t,checks:[],...$.normalizeParams(o),entries:i})}});function Pe(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new bo({type:"enum",entries:r,...$.normalizeParams(t)})}function ak(e,t){return new bo({type:"enum",entries:e,...$.normalizeParams(t)})}var ug=f("ZodLiteral",(e,t)=>{yu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ah(e,r,n,o),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function P(e,t){return new ug({type:"literal",values:Array.isArray(e)?e:[e],...$.normalizeParams(t)})}var lg=f("ZodFile",(e,t)=>{$u.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>uh(e,r,n,o),e.min=(r,n)=>e.check(At(r,n)),e.max=(r,n)=>e.check($r(r,n)),e.mime=(r,n)=>e.check(mo(Array.isArray(r)?r:[r],n))});function sk(e){return vl(lg,e)}var dg=f("ZodTransform",(e,t)=>{bu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>fh(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new hr(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push($.issue(i,r.value,t));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=e),r.issues.push($.issue(a))}};let o=t.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r)):(r.value=o,r)}});function rd(e){return new dg({type:"transform",transform:e})}var nd=f("ZodOptional",(e,t)=>{Ri.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>wl(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function me(e){return new nd({type:"optional",innerType:e})}var pg=f("ZodExactOptional",(e,t)=>{xu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>wl(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function fg(e){return new pg({type:"optional",innerType:e})}var mg=f("ZodNullable",(e,t)=>{ku.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>bh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function ua(e){return new mg({type:"nullable",innerType:e})}function ck(e){return me(ua(e))}var hg=f("ZodDefault",(e,t)=>{Su.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>kh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function gg(e,t){return new hg({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():$.shallowClone(t)}})}var vg=f("ZodPrefault",(e,t)=>{wu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Sh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function _g(e,t){return new vg({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():$.shallowClone(t)}})}var od=f("ZodNonOptional",(e,t)=>{zu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>xh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function yg(e,t){return new od({type:"nonoptional",innerType:e,...$.normalizeParams(t)})}var $g=f("ZodSuccess",(e,t)=>{Iu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>lh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function uk(e){return new $g({type:"success",innerType:e})}var bg=f("ZodCatch",(e,t)=>{Eu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>wh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function xg(e,t){return new bg({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var kg=f("ZodNaN",(e,t)=>{Tu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>sh(e,r,n,o)});function lk(e){return dl(kg,e)}var id=f("ZodPipe",(e,t)=>{Pu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>zh(e,r,n,o),e.in=t.in,e.out=t.out});function la(e,t){return new id({type:"pipe",in:e,out:t})}var ad=f("ZodCodec",(e,t)=>{id.init(e,t),oo.init(e,t)});function dk(e,t,r){return new ad({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var Sg=f("ZodReadonly",(e,t)=>{Ou.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ih(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function wg(e){return new Sg({type:"readonly",innerType:e})}var zg=f("ZodTemplateLiteral",(e,t)=>{ju.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ch(e,r,n,o)});function pk(e,t){return new zg({type:"template_literal",parts:e,...$.normalizeParams(t)})}var Ig=f("ZodLazy",(e,t)=>{Ru.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Th(e,r,n,o),e.unwrap=()=>e._zod.def.getter()});function Eg(e){return new Ig({type:"lazy",getter:e})}var Tg=f("ZodPromise",(e,t)=>{Nu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Eh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function fk(e){return new Tg({type:"promise",innerType:e})}var Pg=f("ZodFunction",(e,t)=>{Du.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ph(e,r,n,o)});function mk(e){return new Pg({type:"function",input:Array.isArray(e?.input)?ag(e?.input):e?.input??G(ue()),output:e?.output??ue()})}var $a=f("ZodCustom",(e,t)=>{Au.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>dh(e,r,n,o)});function hk(e){let t=new se({check:"custom"});return t._zod.check=e,t}function sd(e,t){return _l($a,e??(()=>!0),t)}function Og(e,t={}){return yl($a,e,t)}function jg(e){return $l(e)}var gk=bl,vk=xl;function _k(e,t={}){let r=new $a({type:"custom",check:"custom",fn:n=>n instanceof e,abort:!0,...$.normalizeParams(t)});return r._zod.bag.Class=e,r._zod.check=n=>{n.value instanceof e||n.issues.push({code:"invalid_type",expected:e.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var yk=(...e)=>kl({Codec:ad,Boolean:ma,String:da},...e);function $k(e){let t=Eg(()=>ie([v(e),ne(),ye(),ko(),G(t),fe(v(),t)]));return t}function ba(e,t){return la(rd(e),t)}var Dg;Dg||(Dg={});var FR={...$o,...sa,iso:br};be(Mu());var ud="2025-11-25";var Ng=[ud,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],nr="io.modelcontextprotocol/related-task",ka="2.0",xe=sd(e=>e!==null&&(typeof e=="object"||typeof e=="function")),Rg=ie([v(),ne().int()]),Ag=v(),c1=Te({ttl:ie([ne(),ko()]).optional(),pollInterval:ne().optional()}),Sk=z({ttl:ne().optional()}),wk=z({taskId:v()}),ld=Te({progressToken:Rg.optional(),[nr]:wk.optional()}),Ye=z({_meta:ld.optional()}),wo=Ye.extend({task:Sk.optional()}),Mg=e=>wo.safeParse(e).success,ke=z({method:v(),params:Ye.loose().optional()}),nt=z({_meta:ld.optional()}),ot=z({method:v(),params:nt.loose().optional()}),Se=Te({_meta:ld.optional()}),Sa=ie([v(),ne().int()]),Cg=z({jsonrpc:P(ka),id:Sa,...ke.shape}).strict(),dd=e=>Cg.safeParse(e).success,Ug=z({jsonrpc:P(ka),...ot.shape}).strict(),Zg=e=>Ug.safeParse(e).success,pd=z({jsonrpc:P(ka),id:Sa,result:Se}).strict(),zo=e=>pd.safeParse(e).success;var Y;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Y||(Y={}));var fd=z({jsonrpc:P(ka),id:Sa.optional(),error:z({code:ne().int(),message:v(),data:ue().optional()})}).strict();var Lg=e=>fd.safeParse(e).success;var qg=ie([Cg,Ug,pd,fd]),u1=ie([pd,fd]),wa=Se.strict(),zk=nt.extend({requestId:Sa.optional(),reason:v().optional()}),za=ot.extend({method:P("notifications/cancelled"),params:zk}),Ik=z({src:v(),mimeType:v().optional(),sizes:G(v()).optional(),theme:Pe(["light","dark"]).optional()}),Io=z({icons:G(Ik).optional()}),nn=z({name:v(),title:v().optional()}),Fg=nn.extend({...nn.shape,...Io.shape,version:v(),websiteUrl:v().optional(),description:v().optional()}),Ek=So(z({applyDefaults:ye().optional()}),fe(v(),ue())),Tk=ba(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,So(z({form:Ek.optional(),url:xe.optional()}),fe(v(),ue()).optional())),Pk=Te({list:xe.optional(),cancel:xe.optional(),requests:Te({sampling:Te({createMessage:xe.optional()}).optional(),elicitation:Te({create:xe.optional()}).optional()}).optional()}),Ok=Te({list:xe.optional(),cancel:xe.optional(),requests:Te({tools:Te({call:xe.optional()}).optional()}).optional()}),jk=z({experimental:fe(v(),xe).optional(),sampling:z({context:xe.optional(),tools:xe.optional()}).optional(),elicitation:Tk.optional(),roots:z({listChanged:ye().optional()}).optional(),tasks:Pk.optional()}),Dk=Ye.extend({protocolVersion:v(),capabilities:jk,clientInfo:Fg}),md=ke.extend({method:P("initialize"),params:Dk});var Nk=z({experimental:fe(v(),xe).optional(),logging:xe.optional(),completions:xe.optional(),prompts:z({listChanged:ye().optional()}).optional(),resources:z({subscribe:ye().optional(),listChanged:ye().optional()}).optional(),tools:z({listChanged:ye().optional()}).optional(),tasks:Ok.optional()}),Rk=Se.extend({protocolVersion:v(),capabilities:Nk,serverInfo:Fg,instructions:v().optional()}),hd=ot.extend({method:P("notifications/initialized"),params:nt.optional()});var Ia=ke.extend({method:P("ping"),params:Ye.optional()}),Ak=z({progress:ne(),total:me(ne()),message:me(v())}),Mk=z({...nt.shape,...Ak.shape,progressToken:Rg}),Ea=ot.extend({method:P("notifications/progress"),params:Mk}),Ck=Ye.extend({cursor:Ag.optional()}),Eo=ke.extend({params:Ck.optional()}),To=Se.extend({nextCursor:Ag.optional()}),Uk=Pe(["working","input_required","completed","failed","cancelled"]),Po=z({taskId:v(),status:Uk,ttl:ie([ne(),ko()]),createdAt:v(),lastUpdatedAt:v(),pollInterval:me(ne()),statusMessage:me(v())}),on=Se.extend({task:Po}),Zk=nt.merge(Po),Oo=ot.extend({method:P("notifications/tasks/status"),params:Zk}),Ta=ke.extend({method:P("tasks/get"),params:Ye.extend({taskId:v()})}),Pa=Se.merge(Po),Oa=ke.extend({method:P("tasks/result"),params:Ye.extend({taskId:v()})}),l1=Se.loose(),ja=Eo.extend({method:P("tasks/list")}),Da=To.extend({tasks:G(Po)}),Na=ke.extend({method:P("tasks/cancel"),params:Ye.extend({taskId:v()})}),Vg=Se.merge(Po),Jg=z({uri:v(),mimeType:me(v()),_meta:fe(v(),ue()).optional()}),Wg=Jg.extend({text:v()}),gd=v().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),Kg=Jg.extend({blob:gd}),jo=Pe(["user","assistant"]),an=z({audience:G(jo).optional(),priority:ne().min(0).max(1).optional(),lastModified:br.datetime({offset:!0}).optional()}),Hg=z({...nn.shape,...Io.shape,uri:v(),description:me(v()),mimeType:me(v()),annotations:an.optional(),_meta:me(Te({}))}),Lk=z({...nn.shape,...Io.shape,uriTemplate:v(),description:me(v()),mimeType:me(v()),annotations:an.optional(),_meta:me(Te({}))}),qk=Eo.extend({method:P("resources/list")}),Fk=To.extend({resources:G(Hg)}),Vk=Eo.extend({method:P("resources/templates/list")}),Jk=To.extend({resourceTemplates:G(Lk)}),vd=Ye.extend({uri:v()}),Wk=vd,Kk=ke.extend({method:P("resources/read"),params:Wk}),Hk=Se.extend({contents:G(ie([Wg,Kg]))}),Gk=ot.extend({method:P("notifications/resources/list_changed"),params:nt.optional()}),Bk=vd,Xk=ke.extend({method:P("resources/subscribe"),params:Bk}),Yk=vd,Qk=ke.extend({method:P("resources/unsubscribe"),params:Yk}),eS=nt.extend({uri:v()}),tS=ot.extend({method:P("notifications/resources/updated"),params:eS}),rS=z({name:v(),description:me(v()),required:me(ye())}),nS=z({...nn.shape,...Io.shape,description:me(v()),arguments:me(G(rS)),_meta:me(Te({}))}),oS=Eo.extend({method:P("prompts/list")}),iS=To.extend({prompts:G(nS)}),aS=Ye.extend({name:v(),arguments:fe(v(),v()).optional()}),sS=ke.extend({method:P("prompts/get"),params:aS}),_d=z({type:P("text"),text:v(),annotations:an.optional(),_meta:fe(v(),ue()).optional()}),yd=z({type:P("image"),data:gd,mimeType:v(),annotations:an.optional(),_meta:fe(v(),ue()).optional()}),$d=z({type:P("audio"),data:gd,mimeType:v(),annotations:an.optional(),_meta:fe(v(),ue()).optional()}),cS=z({type:P("tool_use"),name:v(),id:v(),input:fe(v(),ue()),_meta:fe(v(),ue()).optional()}),uS=z({type:P("resource"),resource:ie([Wg,Kg]),annotations:an.optional(),_meta:fe(v(),ue()).optional()}),lS=Hg.extend({type:P("resource_link")}),bd=ie([_d,yd,$d,lS,uS]),dS=z({role:jo,content:bd}),pS=Se.extend({description:v().optional(),messages:G(dS)}),fS=ot.extend({method:P("notifications/prompts/list_changed"),params:nt.optional()}),mS=z({title:v().optional(),readOnlyHint:ye().optional(),destructiveHint:ye().optional(),idempotentHint:ye().optional(),openWorldHint:ye().optional()}),hS=z({taskSupport:Pe(["required","optional","forbidden"]).optional()}),Gg=z({...nn.shape,...Io.shape,description:v().optional(),inputSchema:z({type:P("object"),properties:fe(v(),xe).optional(),required:G(v()).optional()}).catchall(ue()),outputSchema:z({type:P("object"),properties:fe(v(),xe).optional(),required:G(v()).optional()}).catchall(ue()).optional(),annotations:mS.optional(),execution:hS.optional(),_meta:fe(v(),ue()).optional()}),xd=Eo.extend({method:P("tools/list")}),gS=To.extend({tools:G(Gg)}),Ra=Se.extend({content:G(bd).default([]),structuredContent:fe(v(),ue()).optional(),isError:ye().optional()}),d1=Ra.or(Se.extend({toolResult:ue()})),vS=wo.extend({name:v(),arguments:fe(v(),ue()).optional()}),Do=ke.extend({method:P("tools/call"),params:vS}),_S=ot.extend({method:P("notifications/tools/list_changed"),params:nt.optional()}),p1=z({autoRefresh:ye().default(!0),debounceMs:ne().int().nonnegative().default(300)}),No=Pe(["debug","info","notice","warning","error","critical","alert","emergency"]),yS=Ye.extend({level:No}),kd=ke.extend({method:P("logging/setLevel"),params:yS}),$S=nt.extend({level:No,logger:v().optional(),data:ue()}),bS=ot.extend({method:P("notifications/message"),params:$S}),xS=z({name:v().optional()}),kS=z({hints:G(xS).optional(),costPriority:ne().min(0).max(1).optional(),speedPriority:ne().min(0).max(1).optional(),intelligencePriority:ne().min(0).max(1).optional()}),SS=z({mode:Pe(["auto","required","none"]).optional()}),wS=z({type:P("tool_result"),toolUseId:v().describe("The unique identifier for the corresponding tool call."),content:G(bd).default([]),structuredContent:z({}).loose().optional(),isError:ye().optional(),_meta:fe(v(),ue()).optional()}),zS=_a("type",[_d,yd,$d]),xa=_a("type",[_d,yd,$d,cS,wS]),IS=z({role:jo,content:ie([xa,G(xa)]),_meta:fe(v(),ue()).optional()}),ES=wo.extend({messages:G(IS),modelPreferences:kS.optional(),systemPrompt:v().optional(),includeContext:Pe(["none","thisServer","allServers"]).optional(),temperature:ne().optional(),maxTokens:ne().int(),stopSequences:G(v()).optional(),metadata:xe.optional(),tools:G(Gg).optional(),toolChoice:SS.optional()}),TS=ke.extend({method:P("sampling/createMessage"),params:ES}),Sd=Se.extend({model:v(),stopReason:me(Pe(["endTurn","stopSequence","maxTokens"]).or(v())),role:jo,content:zS}),wd=Se.extend({model:v(),stopReason:me(Pe(["endTurn","stopSequence","maxTokens","toolUse"]).or(v())),role:jo,content:ie([xa,G(xa)])}),PS=z({type:P("boolean"),title:v().optional(),description:v().optional(),default:ye().optional()}),OS=z({type:P("string"),title:v().optional(),description:v().optional(),minLength:ne().optional(),maxLength:ne().optional(),format:Pe(["email","uri","date","date-time"]).optional(),default:v().optional()}),jS=z({type:Pe(["number","integer"]),title:v().optional(),description:v().optional(),minimum:ne().optional(),maximum:ne().optional(),default:ne().optional()}),DS=z({type:P("string"),title:v().optional(),description:v().optional(),enum:G(v()),default:v().optional()}),NS=z({type:P("string"),title:v().optional(),description:v().optional(),oneOf:G(z({const:v(),title:v()})),default:v().optional()}),RS=z({type:P("string"),title:v().optional(),description:v().optional(),enum:G(v()),enumNames:G(v()).optional(),default:v().optional()}),AS=ie([DS,NS]),MS=z({type:P("array"),title:v().optional(),description:v().optional(),minItems:ne().optional(),maxItems:ne().optional(),items:z({type:P("string"),enum:G(v())}),default:G(v()).optional()}),CS=z({type:P("array"),title:v().optional(),description:v().optional(),minItems:ne().optional(),maxItems:ne().optional(),items:z({anyOf:G(z({const:v(),title:v()}))}),default:G(v()).optional()}),US=ie([MS,CS]),ZS=ie([RS,AS,US]),LS=ie([ZS,PS,OS,jS]),qS=wo.extend({mode:P("form").optional(),message:v(),requestedSchema:z({type:P("object"),properties:fe(v(),LS),required:G(v()).optional()})}),FS=wo.extend({mode:P("url"),message:v(),elicitationId:v(),url:v().url()}),VS=ie([qS,FS]),JS=ke.extend({method:P("elicitation/create"),params:VS}),WS=nt.extend({elicitationId:v()}),KS=ot.extend({method:P("notifications/elicitation/complete"),params:WS}),Aa=Se.extend({action:Pe(["accept","decline","cancel"]),content:ba(e=>e===null?void 0:e,fe(v(),ie([v(),ne(),ye(),G(v())])).optional())}),HS=z({type:P("ref/resource"),uri:v()});var GS=z({type:P("ref/prompt"),name:v()}),BS=Ye.extend({ref:ie([GS,HS]),argument:z({name:v(),value:v()}),context:z({arguments:fe(v(),v()).optional()}).optional()}),XS=ke.extend({method:P("completion/complete"),params:BS});var YS=Se.extend({completion:Te({values:G(v()).max(100),total:me(ne().int()),hasMore:me(ye())})}),QS=z({uri:v().startsWith("file://"),name:v().optional(),_meta:fe(v(),ue()).optional()}),ew=ke.extend({method:P("roots/list"),params:Ye.optional()}),zd=Se.extend({roots:G(QS)}),tw=ot.extend({method:P("notifications/roots/list_changed"),params:nt.optional()}),f1=ie([Ia,md,XS,kd,sS,oS,qk,Vk,Kk,Xk,Qk,Do,xd,Ta,Oa,ja,Na]),m1=ie([za,Ea,hd,tw,Oo]),h1=ie([wa,Sd,wd,Aa,zd,Pa,Da,on]),g1=ie([Ia,TS,JS,ew,Ta,Oa,ja,Na]),v1=ie([za,Ea,bS,tS,Gk,_S,fS,Oo,KS]),_1=ie([wa,Rk,YS,pS,iS,Fk,Jk,Hk,Ra,gS,Pa,Da,on]),J=class e extends Error{constructor(t,r,n){super(`MCP error ${t}: ${r}`),this.code=t,this.data=n,this.name="McpError"}static fromError(t,r,n){if(t===Y.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new cd(o.elicitations,r)}return new e(t,r,n)}},cd=class extends J{constructor(t,r=`URL elicitation${t.length>1?"s":""} required`){super(Y.UrlElicitationRequired,r,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}};function or(e){return e==="completed"||e==="failed"||e==="cancelled"}var Y1=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Id(e){let r=aa(e)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Dh(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Ed(e,t){let r=rr(e,t);if(!r.success)throw r.error;return r.data}var sw=6e4,Ma=class{constructor(t){this._options=t,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(za,r=>{this._oncancel(r)}),this.setNotificationHandler(Ea,r=>{this._onprogress(r)}),this.setRequestHandler(Ia,r=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Ta,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new J(Y.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(Oa,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(s.type==="response"||s.type==="error"){let c=s.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),s.type==="response")l(c);else{let d=c,m=new J(d.error.code,d.error.message,d.error.data);l(m)}else{let d=s.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:n.requestId})}}let a=await this._taskStore.getTask(i,n.sessionId);if(!a)throw new J(Y.InvalidParams,`Task not found: ${i}`);if(!or(a.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(or(a.status)){let s=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...s,_meta:{...s._meta,[nr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(ja,async(r,n)=>{try{let{tasks:o,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:i,_meta:{}}}catch(o){throw new J(Y.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(Na,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new J(Y.InvalidParams,`Task not found: ${r.params.taskId}`);if(or(o.status))throw new J(Y.InvalidParams,`Cannot cancel task in terminal status: ${o.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 J(Y.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof J?o:new J(Y.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,r,n,o,i=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(t){let r=this._timeoutInfo.get(t);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(t),J.fromError(Y.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(t){let r=this._timeoutInfo.get(t);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(t))}async connect(t){this._transport=t;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 o=this._transport?.onmessage;this._transport.onmessage=(i,a)=>{o?.(i,a),zo(i)||Lg(i)?this._onresponse(i):dd(i)?this._onrequest(i,a):Zg(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=J.fromError(Y.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of t.values())n(r)}_onerror(t){this.onerror?.(t)}_onnotification(t){let r=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(t)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(t,r){let n=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,o=this._transport,i=t.params?._meta?.[nr]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:Y.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):o?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(t.id,a);let s=Mg(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,o?.sessionId):void 0,u={signal:a.signal,sessionId:o?.sessionId,_meta:t.params?._meta,sendNotification:async l=>{let d={relatedRequestId:t.id};i&&(d.relatedTask={taskId:i}),await this.notification(l,d)},sendRequest:async(l,d,m)=>{let p={...m,relatedRequestId:t.id};i&&!p.relatedTask&&(p.relatedTask={taskId:i});let g=p.relatedTask?.taskId??i;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(l,d,p)},authInfo:r?.authInfo,requestId:t.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:s?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(t.method)}).then(()=>n(t,u)).then(async l=>{if(a.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:t.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)},async l=>{if(a.signal.aborted)return;let d={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(l.code)?l.code:Y.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:r,...n}=t.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let a=this._responseHandlers.get(o),s=this._timeoutInfo.get(o);if(s&&a&&s.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),a(c);return}i(n)}_onresponse(t){let r=Number(t.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),zo(t))n(t);else{let a=new J(t.error.code,t.error.message,t.error.data);n(a)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(zo(t)&&t.result&&typeof t.result=="object"){let a=t.result;if(a.task&&typeof a.task=="object"){let s=a.task;typeof s.taskId=="string"&&(i=!0,this._taskProgressTokens.set(s.taskId,r))}}if(i||this._progressHandlers.delete(r),zo(t))o(t);else{let a=J.fromError(t.error.code,t.error.message,t.error.data);o(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(t,r,n)}}catch(a){yield{type:"error",error:a instanceof J?a:new J(Y.InternalError,String(a))}}return}let i;try{let a=await this.request(t,on,n);if(a.task)i=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new J(Y.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:s},or(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:s.status==="failed"?yield{type:"error",error:new J(Y.InternalError,`Task ${i} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new J(Y.InternalError,`Task ${i} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof J?a:new J(Y.InternalError,String(a))}}}request(t,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:a,task:s,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=E=>{l(E)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),s&&this.assertTaskCapability(t.method)}catch(E){d(E);return}n?.signal?.throwIfAborted();let m=this._requestMessageId++,p={...t,jsonrpc:"2.0",id:m};n?.onprogress&&(this._progressHandlers.set(m,n.onprogress),p.params={...t.params,_meta:{...t.params?._meta||{},progressToken:m}}),s&&(p.params={...p.params,task:s}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[nr]:c}});let g=E=>{this._responseHandlers.delete(m),this._progressHandlers.delete(m),this._cleanupTimeout(m),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:m,reason:String(E)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:a}).catch(A=>this._onerror(new Error(`Failed to send cancellation: ${A}`)));let I=E instanceof J?E:new J(Y.RequestTimeout,String(E));l(I)};this._responseHandlers.set(m,E=>{if(!n?.signal?.aborted){if(E instanceof Error)return l(E);try{let I=rr(r,E.result);I.success?u(I.data):l(I.error)}catch(I){l(I)}}}),n?.signal?.addEventListener("abort",()=>{g(n?.signal?.reason)});let h=n?.timeout??sw,_=()=>g(J.fromError(Y.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(m,h,n?.maxTotalTimeout,_,n?.resetTimeoutOnProgress??!1);let b=c?.taskId;if(b){let E=I=>{let A=this._responseHandlers.get(m);A?A(I):this._onerror(new Error(`Response handler missing for side-channeled request ${m}`))};this._requestResolvers.set(m,E),this._enqueueTaskMessage(b,{type:"request",message:p,timestamp:Date.now()}).catch(I=>{this._cleanupTimeout(m),l(I)})}else this._transport.send(p,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:a}).catch(E=>{this._cleanupTimeout(m),l(E)})})}async getTask(t,r){return this.request({method:"tasks/get",params:t},Pa,r)}async getTaskResult(t,r,n){return this.request({method:"tasks/result",params:t},r,n)}async listTasks(t,r){return this.request({method:"tasks/list",params:t},Da,r)}async cancelTask(t,r){return this.request({method:"tasks/cancel",params:t},Vg,r)}async notification(t,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let n=r?.relatedTask?.taskId;if(n){let s={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[nr]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let s={...t,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[nr]:r.relatedTask}}}),this._transport?.send(s,r).catch(c=>this._onerror(c))});return}let a={...t,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[nr]:r.relatedTask}}}),await this._transport.send(a,r)}setRequestHandler(t,r){let n=Id(t);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let a=Ed(t,o);return Promise.resolve(r(a,i))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,r){let n=Id(t);this._notificationHandlers.set(n,o=>{let i=Ed(t,o);return Promise.resolve(r(i))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let r=this._taskProgressTokens.get(t);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,r,n,o)}async _clearTaskQueue(t,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(t,r);for(let o of n)if(o.type==="request"&&dd(o.message)){let i=o.message.id,a=this._requestResolvers.get(i);a?(a(new J(Y.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(t);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new J(Y.InvalidRequest,"Request cancelled"));return}let a=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(a),i(new J(Y.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!t)throw new Error("No request provided");return await n.createTask(o,t.id,{method:t.method,params:t.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new J(Y.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,a)=>{await n.storeTaskResult(o,i,a,r);let s=await n.getTask(o,r);if(s){let c=Oo.parse({method:"notifications/tasks/status",params:s});await this.notification(c),or(s.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,a)=>{let s=await n.getTask(o,r);if(!s)throw new J(Y.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(or(s.status))throw new J(Y.InvalidParams,`Cannot update task "${o}" from terminal status "${s.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,a,r);let c=await n.getTask(o,r);if(c){let u=Oo.parse({method:"notifications/tasks/status",params:c});await this.notification(u),or(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function Bg(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Xg(e,t){let r={...e};for(let n in t){let o=n,i=t[o];if(i===void 0)continue;let a=r[o];Bg(a)&&Bg(i)?r[o]={...a,...i}:r[o]=i}return r}var My=mi(mf(),1),Cy=mi(Ay(),1);function XT(){let e=new My.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Cy.default)(e),e}var $s=class{constructor(t){this._ajv=t??XT()}getValidator(t){let r="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var bs=class{constructor(t){this._server=t}requestStream(t,r,n){return this._server.requestStream(t,r,n)}async getTask(t,r){return this._server.getTask({taskId:t},r)}async getTaskResult(t,r,n){return this._server.getTaskResult({taskId:t},r,n)}async listTasks(t,r){return this._server.listTasks(t?{cursor:t}:void 0,r)}async cancelTask(t,r){return this._server.cancelTask({taskId:t},r)}};function Uy(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${t})`);break;default:break}}function Zy(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var xs=class extends Ma{constructor(t,r){super(r),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(No.options.map((n,o)=>[n,o])),this.isMessageIgnored=(n,o)=>{let i=this._loggingLevels.get(o);return i?this.LOG_LEVEL_SEVERITY.get(n)this._oninitialize(n)),this.setNotificationHandler(hd,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(kd,async(n,o)=>{let i=o.sessionId||o.requestInfo?.headers["mcp-session-id"]||void 0,{level:a}=n.params,s=No.safeParse(a);return s.success&&this._loggingLevels.set(i,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new bs(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Xg(this._capabilities,t)}setRequestHandler(t,r){let o=aa(t)?.method;if(!o)throw new Error("Schema is missing a method literal");let i;if(tn(o)){let s=o;i=s._zod?.def?.value??s.value}else{let s=o;i=s._def?.value??s.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");if(i==="tools/call"){let s=async(c,u)=>{let l=rr(Do,c);if(!l.success){let g=l.error instanceof Error?l.error.message:String(l.error);throw new J(Y.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:d}=l.data,m=await Promise.resolve(r(c,u));if(d.task){let g=rr(on,m);if(!g.success){let h=g.error instanceof Error?g.error.message:String(g.error);throw new J(Y.InvalidParams,`Invalid task creation result: ${h}`)}return g.data}let p=rr(Ra,m);if(!p.success){let g=p.error instanceof Error?p.error.message:String(p.error);throw new J(Y.InvalidParams,`Invalid tools/call result: ${g}`)}return p.data};return super.setRequestHandler(t,s)}return super.setRequestHandler(t,r)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);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 ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);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 ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);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 ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){Zy(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&Uy(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let r=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:Ng.includes(r)?r:ud,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"},wa)}async createMessage(t,r){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let n=t.messages[t.messages.length-1],o=Array.isArray(n.content)?n.content:[n.content],i=o.some(u=>u.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,s=a?Array.isArray(a.content)?a.content:[a.content]:[],c=s.some(u=>u.type==="tool_use");if(i){if(o.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(s.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(o.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 t.tools?this.request({method:"sampling/createMessage",params:t},wd,r):this.request({method:"sampling/createMessage",params:t},Sd,r)}async elicitInput(t,r){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let o=t;return this.request({method:"elicitation/create",params:o},Aa,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let o=t.mode==="form"?t:{...t,mode:"form"},i=await this.request({method:"elicitation/create",params:o},Aa,r);if(i.action==="accept"&&i.content&&o.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(o.requestedSchema)(i.content);if(!s.valid)throw new J(Y.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(a){throw a instanceof J?a:new J(Y.InternalError,`Error validating elicitation response: ${a instanceof Error?a.message:String(a)}`)}return i}}}createElicitationCompletionNotifier(t,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:t}},r)}async listRoots(t,r){return this.request({method:"roots/list",params:t},zd,r)}async sendLoggingMessage(t,r){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,r))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}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 xf=mi(require("node:process"),1);var ks=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(` +`);if(t===-1)return null;let r=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),YT(r)}clear(){this._buffer=void 0}};function YT(e){return qg.parse(JSON.parse(e))}function Ly(e){return JSON.stringify(e)+` +`}var Ss=class{constructor(t=xf.default.stdin,r=xf.default.stdout){this._stdin=t,this._stdout=r,this._readBuffer=new ks,this._started=!1,this._ondata=n=>{this._readBuffer.append(n),this.processReadBuffer()},this._onerror=n=>{this.onerror?.(n)}}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 t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}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(t){return new Promise(r=>{let n=Ly(t);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};var zf=mi(require("path"),1);var kf={DEFAULT:3e5,HEALTH_CHECK:3e3,POST_SPAWN_WAIT:5e3,READINESS_WAIT:3e4,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5};function qy(e){return process.platform==="win32"?Math.round(e*kf.WINDOWS_MULTIPLIER):e}var zt=require("fs"),ws=require("path"),Fy=require("os"),jr=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:"cli",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,ws.join)((0,Fy.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT:"true",CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]",CLAUDE_MEM_SEMANTIC_INJECT:"true",CLAUDE_MEM_SEMANTIC_INJECT_LIMIT:"5",CLAUDE_MEM_TIER_ROUTING_ENABLED:"true",CLAUDE_MEM_TIER_SIMPLE_MODEL:"haiku",CLAUDE_MEM_TIER_SUMMARY_MODEL:"",CLAUDE_MEM_CHROMA_ENABLED:"true",CLAUDE_MEM_CHROMA_MODE:"local",CLAUDE_MEM_CHROMA_HOST:"127.0.0.1",CLAUDE_MEM_CHROMA_PORT:"8000",CLAUDE_MEM_CHROMA_SSL:"false",CLAUDE_MEM_CHROMA_API_KEY:"",CLAUDE_MEM_CHROMA_TENANT:"default_tenant",CLAUDE_MEM_CHROMA_DATABASE:"default_database"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return process.env[t]??this.DEFAULTS[t]}static getInt(t){let r=this.get(t);return parseInt(r,10)}static getBool(t){let r=this.get(t);return r==="true"||r===!0}static applyEnvOverrides(t){let r={...t};for(let n of Object.keys(this.DEFAULTS))process.env[n]!==void 0&&(r[n]=process.env[n]);return r}static loadFromFile(t){try{if(!(0,zt.existsSync)(t)){let a=this.getAllDefaults();try{let s=(0,ws.dirname)(t);(0,zt.existsSync)(s)||(0,zt.mkdirSync)(s,{recursive:!0}),(0,zt.writeFileSync)(t,JSON.stringify(a,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",t)}catch(s){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",t,s)}return this.applyEnvOverrides(a)}let r=(0,zt.readFileSync)(t,"utf-8"),n=JSON.parse(r),o=n;if(n.env&&typeof n.env=="object"){o=n.env;try{(0,zt.writeFileSync)(t,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",t)}catch(a){console.warn("[SETTINGS] Failed to auto-migrate settings file:",t,a)}}let i={...this.DEFAULTS};for(let a of Object.keys(this.DEFAULTS))o[a]!==void 0&&(i[a]=o[a]);return this.applyEnvOverrides(i)}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",t,r),this.applyEnvOverrides(this.getAllDefaults())}}};var $e=require("path"),Sf=require("os"),wf=require("fs");var Vy=require("url");var rP={};function QT(){return typeof __dirname<"u"?__dirname:(0,$e.dirname)((0,Vy.fileURLToPath)(rP.url))}var jU=QT();function eP(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let e=(0,$e.join)((0,Sf.homedir)(),".claude-mem"),t=(0,$e.join)(e,"settings.json");try{if((0,wf.existsSync)(t)){let{readFileSync:r}=require("fs"),n=JSON.parse(r(t,"utf-8")),o=n.env??n;if(o.CLAUDE_MEM_DATA_DIR)return o.CLAUDE_MEM_DATA_DIR}}catch{}return e}var Vt=eP(),zs=process.env.CLAUDE_CONFIG_DIR||(0,$e.join)((0,Sf.homedir)(),".claude"),tP=(0,$e.join)(zs,"plugins","marketplaces","thedotmack"),DU=(0,$e.join)(Vt,"archives"),NU=(0,$e.join)(Vt,"logs"),RU=(0,$e.join)(Vt,"trash"),AU=(0,$e.join)(Vt,"backups"),MU=(0,$e.join)(Vt,"modes"),CU=(0,$e.join)(Vt,"settings.json"),UU=(0,$e.join)(Vt,"claude-mem.db"),ZU=(0,$e.join)(Vt,"vector-db"),LU=(0,$e.join)(Vt,"observer-sessions"),qU=(0,$e.join)(zs,"settings.json"),FU=(0,$e.join)(zs,"commands"),VU=(0,$e.join)(zs,"CLAUDE.md");var nP=(()=>{let e=process.env.CLAUDE_MEM_HEALTH_TIMEOUT_MS;if(e){let t=parseInt(e,10);if(Number.isFinite(t)&&t>=500&&t<=3e5)return t;ve.warn("SYSTEM","Invalid CLAUDE_MEM_HEALTH_TIMEOUT_MS, using default",{value:e,min:500,max:3e5})}return qy(kf.HEALTH_CHECK)})();function oP(e,t={},r){return new Promise((n,o)=>{let i=setTimeout(()=>o(new Error(`Request timed out after ${r}ms`)),r);fetch(e,t).then(a=>{clearTimeout(i),n(a)},a=>{clearTimeout(i),o(a)})})}var Is=null,Es=null;function iP(){if(Is!==null)return Is;let e=zf.default.join(jr.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=jr.loadFromFile(e);return Is=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),Is}function aP(){if(Es!==null)return Es;let e=zf.default.join(jr.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return Es=jr.loadFromFile(e).CLAUDE_MEM_WORKER_HOST,Es}function sP(e){return`http://${aP()}:${iP()}${e}`}function Ts(e,t={}){let r=t.method??"GET",n=t.timeoutMs??nP,o=sP(e),i={method:r};return t.headers&&(i.headers=t.headers),t.body&&(i.body=t.body),n>0?oP(o,i,n):fetch(o,i)}var Sn=require("node:fs/promises"),pi=require("node:path");var Wy=require("node:child_process"),It=require("node:fs"),Jt=require("node:path"),Pf=require("node:os"),Tf=require("node:module"),$P={},Ky=typeof __filename<"u"?(0,Tf.createRequire)(__filename):(0,Tf.createRequire)($P.url),cP={".js":"javascript",".mjs":"javascript",".cjs":"javascript",".jsx":"tsx",".ts":"typescript",".tsx":"tsx",".py":"python",".pyw":"python",".go":"go",".rs":"rust",".rb":"ruby",".java":"java",".c":"c",".h":"c",".cpp":"cpp",".cc":"cpp",".cxx":"cpp",".hpp":"cpp",".hh":"cpp"};function Hy(e){let t=e.slice(e.lastIndexOf("."));return cP[t]||"unknown"}var uP={javascript:"tree-sitter-javascript",typescript:"tree-sitter-typescript/typescript",tsx:"tree-sitter-typescript/tsx",python:"tree-sitter-python",go:"tree-sitter-go",rust:"tree-sitter-rust",ruby:"tree-sitter-ruby",java:"tree-sitter-java",c:"tree-sitter-c",cpp:"tree-sitter-cpp"};function Gy(e){let t=uP[e];if(!t)return null;try{let r=Ky.resolve(t+"/package.json");return(0,Jt.dirname)(r)}catch{return null}}var lP={jsts:` (function_declaration name: (identifier) @name) @func (lexical_declaration (variable_declarator name: (identifier) @name value: [(arrow_function) (function_expression)])) @const_func (class_declaration name: (type_identifier) @name) @cls @@ -99,22 +99,22 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs. (class_definition name: (identifier) @name) @cls (import_statement) @imp (import_declaration) @imp -`};function r$(t){switch(t){case"javascript":case"typescript":case"tsx":return"jsts";case"python":return"python";case"go":return"go";case"rust":return"rust";case"ruby":return"ruby";case"java":return"java";default:return"generic"}}var Ef=null,Tf=new Map;function n$(t){if(Tf.has(t))return Tf.get(t);Ef||(Ef=(0,It.mkdtempSync)((0,Jt.join)((0,Of.tmpdir)(),"smart-read-queries-")));let e=(0,Jt.join)(Ef,`${t}.scm`);return(0,It.writeFileSync)(e,dP[t]),Tf.set(t,e),e}var mi=null;function pP(){if(mi)return mi;try{let t=Qy.resolve("tree-sitter-cli/package.json"),e=(0,Jt.join)((0,Jt.dirname)(t),"tree-sitter");if((0,It.existsSync)(e))return mi=e,e}catch{}return mi="tree-sitter",mi}function fP(t,e,r){return o$(t,[e],r).get(e)||[]}function o$(t,e,r){if(e.length===0)return new Map;let n=pP(),o=["query","-p",r,t,...e],i;try{i=(0,Yy.execFileSync)(n,o,{encoding:"utf-8",timeout:3e4,stdio:["pipe","pipe","pipe"]})}catch{return new Map}return mP(i)}function mP(t){let e=new Map,r=null,n=null;for(let o of t.split(` -`)){if(o.length>0&&!o.startsWith(" ")&&!o.startsWith(" ")){r=o.trim(),e.has(r)||e.set(r,[]),n=null;continue}if(!r)continue;let i=o.match(/^\s+pattern:\s+(\d+)/);if(i){n={pattern:parseInt(i[1]),captures:[]},e.get(r).push(n);continue}let a=o.match(/^\s+capture:\s+(?:\d+\s*-\s*)?(\w+),\s*start:\s*\((\d+),\s*(\d+)\),\s*end:\s*\((\d+),\s*(\d+)\)(?:,\s*text:\s*`([^`]*)`)?/);a&&n&&n.captures.push({tag:a[1],startRow:parseInt(a[2]),startCol:parseInt(a[3]),endRow:parseInt(a[4]),endCol:parseInt(a[5]),text:a[6]})}return e}var Xy={func:"function",const_func:"function",cls:"class",method:"method",iface:"interface",tdef:"type",enm:"enum",struct_def:"struct",trait_def:"trait",impl_def:"impl"},hP=new Set(["class","struct","impl","trait"]);function gP(t,e,r,n=200){let i=t[e]||"";if(!i.trimEnd().endsWith("{")&&!i.trimEnd().endsWith(":")){let a=t.slice(e,Math.min(e+10,r+1)).join(` -`),s=a.indexOf("{");s!==-1&&s<500&&(i=a.slice(0,s).replace(/\n/g," ").replace(/\s+/g," ").trim())}return i=i.replace(/\s*[{:]\s*$/,"").trim(),i.length>n&&(i=i.slice(0,n-3)+"..."),i}function vP(t,e){let r=[],n=!1;for(let o=e-1;o>=0;o--){let i=t[o].trim();if(i===""){if(n)break;continue}if(i.startsWith("/**")||i.startsWith("*")||i.startsWith("*/")||i.startsWith("//")||i.startsWith("///")||i.startsWith("//!")||i.startsWith("#")||i.startsWith("@"))r.unshift(t[o]),n=!0;else break}return r.length>0?r.join(` -`).trim():void 0}function _P(t,e,r){for(let n=e+1;n<=Math.min(e+3,r);n++){let o=t[n]?.trim();if(o){if(o.startsWith('"""')||o.startsWith("'''"))return o;break}}}function yP(t,e,r,n,o,i){switch(i){case"javascript":case"typescript":case"tsx":return n.some(a=>e>=a.startRow&&r<=a.endRow);case"python":return!t.startsWith("_");case"go":return t.length>0&&t[0]===t[0].toUpperCase()&&t[0]!==t[0].toLowerCase();case"rust":return o[e]?.trimStart().startsWith("pub")??!1;default:return!0}}function i$(t,e,r){let n=[],o=[],i=[],a=[];for(let c of t)for(let u of c.captures)u.tag==="exp"&&i.push({startRow:u.startRow,endRow:u.endRow}),u.tag==="imp"&&o.push(u.text||e[u.startRow]?.trim()||"");for(let c of t){let u=c.captures.find(E=>Xy[E.tag]),l=c.captures.find(E=>E.tag==="name");if(!u)continue;let d=l?.text||"anonymous",p=u.startRow,f=u.endRow,g=Xy[u.tag],h=vP(e,p),_=r==="python"?_P(e,p,f):void 0,b={name:d,kind:g,signature:gP(e,p,f),jsdoc:h||_,lineStart:p,lineEnd:f,exported:yP(d,p,f,i,e,r)};hP.has(g)&&(b.children=[],a.push({sym:b,startRow:p,endRow:f})),n.push(b)}let s=new Set;for(let c of a)for(let u of n)u!==c.sym&&u.lineStart>c.startRow&&u.lineEnd<=c.endRow&&(u.kind==="function"&&(u.kind="method"),c.sym.children.push(u),s.add(u));return{symbols:n.filter(c=>!s.has(c)),imports:o}}function Os(t,e){let r=e$(e),n=t.split(` -`),o=t$(r);if(!o)return{filePath:e,language:r,symbols:[],imports:[],totalLines:n.length,foldedTokenEstimate:50};let i=r$(r),a=n$(i),s=e.slice(e.lastIndexOf("."))||".txt",c=(0,It.mkdtempSync)((0,Jt.join)((0,Of.tmpdir)(),"smart-src-")),u=(0,Jt.join)(c,`source${s}`);(0,It.writeFileSync)(u,t);try{let l=fP(a,u,o),d=i$(l,n,r),p=wn({filePath:e,language:r,symbols:d.symbols,imports:d.imports,totalLines:n.length,foldedTokenEstimate:0});return{filePath:e,language:r,symbols:d.symbols,imports:d.imports,totalLines:n.length,foldedTokenEstimate:Math.ceil(p.length/4)}}finally{(0,It.rmSync)(c,{recursive:!0,force:!0})}}function a$(t){let e=new Map,r=new Map;for(let n of t){let o=e$(n.relativePath);r.has(o)||r.set(o,[]),r.get(o).push(n)}for(let[n,o]of r){let i=t$(n);if(!i){for(let l of o){let d=l.content.split(` -`);e.set(l.relativePath,{filePath:l.relativePath,language:n,symbols:[],imports:[],totalLines:d.length,foldedTokenEstimate:50})}continue}let a=r$(n),s=n$(a),c=o.map(l=>l.absolutePath),u=o$(s,c,i);for(let l of o){let d=l.content.split(` -`),p=u.get(l.absolutePath)||[],f=i$(p,d,n),g=wn({filePath:l.relativePath,language:n,symbols:f.symbols,imports:f.imports,totalLines:d.length,foldedTokenEstimate:0});e.set(l.relativePath,{filePath:l.relativePath,language:n,symbols:f.symbols,imports:f.imports,totalLines:d.length,foldedTokenEstimate:Math.ceil(g.length/4)})}}return e}function wn(t){let e=[];if(e.push(`\u{1F4C1} ${t.filePath} (${t.language}, ${t.totalLines} lines)`),e.push(""),t.imports.length>0){e.push(` \u{1F4E6} Imports: ${t.imports.length} statements`);for(let r of t.imports.slice(0,10))e.push(` ${r}`);t.imports.length>10&&e.push(` ... +${t.imports.length-10} more`),e.push("")}for(let r of t.symbols)e.push(s$(r," "));return e.join(` -`)}function s$(t,e){let r=[],n=$P(t.kind),o=t.exported?" [exported]":"",i=t.lineStart===t.lineEnd?`L${t.lineStart+1}`:`L${t.lineStart+1}-${t.lineEnd+1}`;if(r.push(`${e}${n} ${t.name}${o} (${i})`),r.push(`${e} ${t.signature}`),t.jsdoc){let s=t.jsdoc.split(` -`).find(c=>{let u=c.replace(/^[\s*/]+/,"").replace(/^['"`]{3}/,"").trim();return u.length>0&&!u.startsWith("/**")});if(s){let c=s.replace(/^[\s*/]+/,"").replace(/^['"`]{3}/,"").replace(/['"`]{3}$/,"").trim();c&&r.push(`${e} \u{1F4AC} ${c}`)}}if(t.children&&t.children.length>0)for(let a of t.children)r.push(s$(a,e+" "));return r.join(` -`)}function $P(t){return{function:"\u0192",method:"\u0192",class:"\u25C6",interface:"\u25C7",type:"\u25C7",const:"\u25CF",variable:"\u25CB",export:"\u2192",struct:"\u25C6",enum:"\u25A3",trait:"\u25C7",impl:"\u25C8",property:"\u25CB",getter:"\u21E2",setter:"\u21E0"}[t]||"\xB7"}function c$(t,e,r){let n=Os(t,e),o=u=>{for(let l of u){if(l.name===r)return l;if(l.children){let d=o(l.children);if(d)return d}}return null},i=o(n.symbols);if(!i)return null;let a=t.split(` +`};function By(e){switch(e){case"javascript":case"typescript":case"tsx":return"jsts";case"python":return"python";case"go":return"go";case"rust":return"rust";case"ruby":return"ruby";case"java":return"java";default:return"generic"}}var If=null,Ef=new Map;function Xy(e){if(Ef.has(e))return Ef.get(e);If||(If=(0,It.mkdtempSync)((0,Jt.join)((0,Pf.tmpdir)(),"smart-read-queries-")));let t=(0,Jt.join)(If,`${e}.scm`);return(0,It.writeFileSync)(t,lP[e]),Ef.set(e,t),t}var di=null;function dP(){if(di)return di;try{let e=Ky.resolve("tree-sitter-cli/package.json"),t=(0,Jt.join)((0,Jt.dirname)(e),"tree-sitter");if((0,It.existsSync)(t))return di=t,t}catch{}return di="tree-sitter",di}function pP(e,t,r){return Yy(e,[t],r).get(t)||[]}function Yy(e,t,r){if(t.length===0)return new Map;let n=dP(),o=["query","-p",r,e,...t],i;try{i=(0,Wy.execFileSync)(n,o,{encoding:"utf-8",timeout:3e4,stdio:["pipe","pipe","pipe"]})}catch{return new Map}return fP(i)}function fP(e){let t=new Map,r=null,n=null;for(let o of e.split(` +`)){if(o.length>0&&!o.startsWith(" ")&&!o.startsWith(" ")){r=o.trim(),t.has(r)||t.set(r,[]),n=null;continue}if(!r)continue;let i=o.match(/^\s+pattern:\s+(\d+)/);if(i){n={pattern:parseInt(i[1]),captures:[]},t.get(r).push(n);continue}let a=o.match(/^\s+capture:\s+(?:\d+\s*-\s*)?(\w+),\s*start:\s*\((\d+),\s*(\d+)\),\s*end:\s*\((\d+),\s*(\d+)\)(?:,\s*text:\s*`([^`]*)`)?/);a&&n&&n.captures.push({tag:a[1],startRow:parseInt(a[2]),startCol:parseInt(a[3]),endRow:parseInt(a[4]),endCol:parseInt(a[5]),text:a[6]})}return t}var Jy={func:"function",const_func:"function",cls:"class",method:"method",iface:"interface",tdef:"type",enm:"enum",struct_def:"struct",trait_def:"trait",impl_def:"impl"},mP=new Set(["class","struct","impl","trait"]);function hP(e,t,r,n=200){let i=e[t]||"";if(!i.trimEnd().endsWith("{")&&!i.trimEnd().endsWith(":")){let a=e.slice(t,Math.min(t+10,r+1)).join(` +`),s=a.indexOf("{");s!==-1&&s<500&&(i=a.slice(0,s).replace(/\n/g," ").replace(/\s+/g," ").trim())}return i=i.replace(/\s*[{:]\s*$/,"").trim(),i.length>n&&(i=i.slice(0,n-3)+"..."),i}function gP(e,t){let r=[],n=!1;for(let o=t-1;o>=0;o--){let i=e[o].trim();if(i===""){if(n)break;continue}if(i.startsWith("/**")||i.startsWith("*")||i.startsWith("*/")||i.startsWith("//")||i.startsWith("///")||i.startsWith("//!")||i.startsWith("#")||i.startsWith("@"))r.unshift(e[o]),n=!0;else break}return r.length>0?r.join(` +`).trim():void 0}function vP(e,t,r){for(let n=t+1;n<=Math.min(t+3,r);n++){let o=e[n]?.trim();if(o){if(o.startsWith('"""')||o.startsWith("'''"))return o;break}}}function _P(e,t,r,n,o,i){switch(i){case"javascript":case"typescript":case"tsx":return n.some(a=>t>=a.startRow&&r<=a.endRow);case"python":return!e.startsWith("_");case"go":return e.length>0&&e[0]===e[0].toUpperCase()&&e[0]!==e[0].toLowerCase();case"rust":return o[t]?.trimStart().startsWith("pub")??!1;default:return!0}}function Qy(e,t,r){let n=[],o=[],i=[],a=[];for(let c of e)for(let u of c.captures)u.tag==="exp"&&i.push({startRow:u.startRow,endRow:u.endRow}),u.tag==="imp"&&o.push(u.text||t[u.startRow]?.trim()||"");for(let c of e){let u=c.captures.find(E=>Jy[E.tag]),l=c.captures.find(E=>E.tag==="name");if(!u)continue;let d=l?.text||"anonymous",m=u.startRow,p=u.endRow,g=Jy[u.tag],h=gP(t,m),_=r==="python"?vP(t,m,p):void 0,b={name:d,kind:g,signature:hP(t,m,p),jsdoc:h||_,lineStart:m,lineEnd:p,exported:_P(d,m,p,i,t,r)};mP.has(g)&&(b.children=[],a.push({sym:b,startRow:m,endRow:p})),n.push(b)}let s=new Set;for(let c of a)for(let u of n)u!==c.sym&&u.lineStart>c.startRow&&u.lineEnd<=c.endRow&&(u.kind==="function"&&(u.kind="method"),c.sym.children.push(u),s.add(u));return{symbols:n.filter(c=>!s.has(c)),imports:o}}function Ps(e,t){let r=Hy(t),n=e.split(` +`),o=Gy(r);if(!o)return{filePath:t,language:r,symbols:[],imports:[],totalLines:n.length,foldedTokenEstimate:50};let i=By(r),a=Xy(i),s=t.slice(t.lastIndexOf("."))||".txt",c=(0,It.mkdtempSync)((0,Jt.join)((0,Pf.tmpdir)(),"smart-src-")),u=(0,Jt.join)(c,`source${s}`);(0,It.writeFileSync)(u,e);try{let l=pP(a,u,o),d=Qy(l,n,r),m=kn({filePath:t,language:r,symbols:d.symbols,imports:d.imports,totalLines:n.length,foldedTokenEstimate:0});return{filePath:t,language:r,symbols:d.symbols,imports:d.imports,totalLines:n.length,foldedTokenEstimate:Math.ceil(m.length/4)}}finally{(0,It.rmSync)(c,{recursive:!0,force:!0})}}function e$(e){let t=new Map,r=new Map;for(let n of e){let o=Hy(n.relativePath);r.has(o)||r.set(o,[]),r.get(o).push(n)}for(let[n,o]of r){let i=Gy(n);if(!i){for(let l of o){let d=l.content.split(` +`);t.set(l.relativePath,{filePath:l.relativePath,language:n,symbols:[],imports:[],totalLines:d.length,foldedTokenEstimate:50})}continue}let a=By(n),s=Xy(a),c=o.map(l=>l.absolutePath),u=Yy(s,c,i);for(let l of o){let d=l.content.split(` +`),m=u.get(l.absolutePath)||[],p=Qy(m,d,n),g=kn({filePath:l.relativePath,language:n,symbols:p.symbols,imports:p.imports,totalLines:d.length,foldedTokenEstimate:0});t.set(l.relativePath,{filePath:l.relativePath,language:n,symbols:p.symbols,imports:p.imports,totalLines:d.length,foldedTokenEstimate:Math.ceil(g.length/4)})}}return t}function kn(e){let t=[];if(t.push(`\u{1F4C1} ${e.filePath} (${e.language}, ${e.totalLines} lines)`),t.push(""),e.imports.length>0){t.push(` \u{1F4E6} Imports: ${e.imports.length} statements`);for(let r of e.imports.slice(0,10))t.push(` ${r}`);e.imports.length>10&&t.push(` ... +${e.imports.length-10} more`),t.push("")}for(let r of e.symbols)t.push(t$(r," "));return t.join(` +`)}function t$(e,t){let r=[],n=yP(e.kind),o=e.exported?" [exported]":"",i=e.lineStart===e.lineEnd?`L${e.lineStart+1}`:`L${e.lineStart+1}-${e.lineEnd+1}`;if(r.push(`${t}${n} ${e.name}${o} (${i})`),r.push(`${t} ${e.signature}`),e.jsdoc){let s=e.jsdoc.split(` +`).find(c=>{let u=c.replace(/^[\s*/]+/,"").replace(/^['"`]{3}/,"").trim();return u.length>0&&!u.startsWith("/**")});if(s){let c=s.replace(/^[\s*/]+/,"").replace(/^['"`]{3}/,"").replace(/['"`]{3}$/,"").trim();c&&r.push(`${t} \u{1F4AC} ${c}`)}}if(e.children&&e.children.length>0)for(let a of e.children)r.push(t$(a,t+" "));return r.join(` +`)}function yP(e){return{function:"\u0192",method:"\u0192",class:"\u25C6",interface:"\u25C7",type:"\u25C7",const:"\u25CF",variable:"\u25CB",export:"\u2192",struct:"\u25C6",enum:"\u25A3",trait:"\u25C7",impl:"\u25C8",property:"\u25CB",getter:"\u21E2",setter:"\u21E0"}[e]||"\xB7"}function r$(e,t,r){let n=Ps(e,t),o=u=>{for(let l of u){if(l.name===r)return l;if(l.children){let d=o(l.children);if(d)return d}}return null},i=o(n.symbols);if(!i)return null;let a=e.split(` `),s=i.lineStart;for(let u=i.lineStart-1;u>=0;u--){let l=a[u].trim();if(l===""||l.startsWith("*")||l.startsWith("/**")||l.startsWith("///")||l.startsWith("//")||l.startsWith("#")||l.startsWith("@")||l==="*/")s=u;else break}let c=a.slice(s,i.lineEnd+1).join(` -`);return`// \u{1F4CD} ${e} L${s+1}-${i.lineEnd+1} -${c}`}var xP=new Set([".js",".jsx",".ts",".tsx",".mjs",".cjs",".py",".pyw",".go",".rs",".rb",".java",".cs",".cpp",".c",".h",".hpp",".swift",".kt",".php",".vue",".svelte"]),kP=new Set(["node_modules",".git","dist","build",".next","__pycache__",".venv","venv","env",".env","target","vendor",".cache",".turbo","coverage",".nyc_output",".claude",".smart-file-read"]),SP=512*1024;async function*u$(t,e,r=20){if(r<=0)return;let n;try{n=await(0,zn.readdir)(t,{withFileTypes:!0})}catch{return}for(let o of n){if(o.name.startsWith(".")&&o.name!=="."||kP.has(o.name))continue;let i=(0,hi.join)(t,o.name);if(o.isDirectory())yield*u$(i,e,r-1);else if(o.isFile()){let a=o.name.slice(o.name.lastIndexOf("."));xP.has(a)&&(yield i)}}}async function wP(t){try{let e=await(0,zn.stat)(t);if(e.size>SP||e.size===0)return null;let r=await(0,zn.readFile)(t,"utf-8");return r.slice(0,1e3).includes("\0")?null:r}catch{return null}}async function l$(t,e,r={}){let n=r.maxResults||20,o=e.toLowerCase(),i=o.split(/[\s_\-./]+/).filter(h=>h.length>0),a=[];for await(let h of u$(t,t)){if(r.filePattern&&!(0,hi.relative)(t,h).toLowerCase().includes(r.filePattern.toLowerCase()))continue;let _=await wP(h);_&&a.push({absolutePath:h,relativePath:(0,hi.relative)(t,h),content:_})}let s=a$(a),c=[],u=[],l=0;for(let[h,_]of s){l+=zP(_);let E=js(h.toLowerCase(),i)>0,I=[],A=(j,Le)=>{for(let de of j){let Wt=0,Qe="",Kt=js(de.name.toLowerCase(),i);Kt>0&&(Wt+=Kt*3,Qe="name match"),de.signature.toLowerCase().includes(o)&&(Wt+=2,Qe=Qe?`${Qe} + signature`:"signature match"),de.jsdoc&&de.jsdoc.toLowerCase().includes(o)&&(Wt+=1,Qe=Qe?`${Qe} + jsdoc`:"jsdoc match"),Wt>0&&(E=!0,I.push({filePath:h,symbolName:Le?`${Le}.${de.name}`:de.name,kind:de.kind,signature:de.signature,jsdoc:de.jsdoc,lineStart:de.lineStart,lineEnd:de.lineEnd,matchReason:Qe})),de.children&&A(de.children,de.name)}};A(_.symbols),E&&(c.push(_),u.push(...I))}u.sort((h,_)=>{let b=js(h.symbolName.toLowerCase(),i);return js(_.symbolName.toLowerCase(),i)-b});let d=u.slice(0,n),p=new Set(d.map(h=>h.filePath)),f=c.filter(h=>p.has(h.filePath)).slice(0,n),g=f.reduce((h,_)=>h+_.foldedTokenEstimate,0);return{foldedFiles:f,matchingSymbols:d,totalFilesScanned:a.length,totalSymbolsFound:l,tokenEstimate:g}}function js(t,e){let r=0;for(let n of e)if(t===n)r+=10;else if(t.includes(n))r+=5;else{let o=0,i=0;for(let a of n){let s=t.indexOf(a,o);s!==-1&&(i++,o=s+1)}i===n.length&&(r+=1)}return r}function zP(t){let e=t.symbols.length;for(let r of t.symbols)r.children&&(e+=r.children.length);return e}function d$(t,e){let r=[];if(r.push(`\u{1F50D} Smart Search: "${e}"`),r.push(` Scanned ${t.totalFilesScanned} files, found ${t.totalSymbolsFound} symbols`),r.push(` ${t.matchingSymbols.length} matches across ${t.foldedFiles.length} files (~${t.tokenEstimate} tokens for folded view)`),r.push(""),t.matchingSymbols.length===0)return r.push(" No matching symbols found."),r.join(` -`);r.push("\u2500\u2500 Matching Symbols \u2500\u2500"),r.push("");for(let n of t.matchingSymbols){if(r.push(` ${n.kind} ${n.symbolName} (${n.filePath}:${n.lineStart+1})`),r.push(` ${n.signature}`),n.jsdoc){let o=n.jsdoc.split(` -`).find(i=>i.replace(/^[\s*/]+/,"").trim().length>0);o&&r.push(` \u{1F4AC} ${o.replace(/^[\s*/]+/,"").trim()}`)}r.push("")}r.push("\u2500\u2500 Folded File Views \u2500\u2500"),r.push("");for(let n of t.foldedFiles)r.push(wn(n)),r.push("");return r.push("\u2500\u2500 Actions \u2500\u2500"),r.push(" To see full implementation: use smart_unfold with file path and symbol name"),r.join(` -`)}var jf=require("node:fs/promises"),Ds=require("node:path"),IP="10.6.3";console.log=(...t)=>{ve.error("CONSOLE","Intercepted console output (MCP protocol protection)",void 0,{args:t})};var p$={search:"/api/search",timeline:"/api/timeline"};async function f$(t,e){ve.debug("SYSTEM","\u2192 Worker API",void 0,{endpoint:t,params:e});try{let r=new URLSearchParams;for(let[a,s]of Object.entries(e))s!=null&&r.append(a,String(s));let n=`${t}?${r}`,o=await Ps(n);if(!o.ok){let a=await o.text();throw new Error(`Worker API error (${o.status}): ${a}`)}let i=await o.json();return ve.debug("SYSTEM","\u2190 Worker API success",void 0,{endpoint:t}),i}catch(r){return ve.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 EP(t,e){ve.debug("HTTP","Worker API request (POST)",void 0,{endpoint:t});try{let r=await Ps(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!r.ok){let o=await r.text();throw new Error(`Worker API error (${r.status}): ${o}`)}let n=await r.json();return ve.debug("HTTP","Worker API success (POST)",void 0,{endpoint:t}),{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}catch(r){return ve.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 TP(){try{return(await Ps("/api/health")).ok}catch(t){return ve.debug("SYSTEM","Worker health check failed",{},t),!1}}var m$=[{name:"__IMPORTANT",description:`3-LAYER WORKFLOW (ALWAYS FOLLOW): +`);return`// \u{1F4CD} ${t} L${s+1}-${i.lineEnd+1} +${c}`}var bP=new Set([".js",".jsx",".ts",".tsx",".mjs",".cjs",".py",".pyw",".go",".rs",".rb",".java",".cs",".cpp",".c",".h",".hpp",".swift",".kt",".php",".vue",".svelte"]),xP=new Set(["node_modules",".git","dist","build",".next","__pycache__",".venv","venv","env",".env","target","vendor",".cache",".turbo","coverage",".nyc_output",".claude",".smart-file-read"]),kP=512*1024;async function*n$(e,t,r=20){if(r<=0)return;let n;try{n=await(0,Sn.readdir)(e,{withFileTypes:!0})}catch{return}for(let o of n){if(o.name.startsWith(".")&&o.name!=="."||xP.has(o.name))continue;let i=(0,pi.join)(e,o.name);if(o.isDirectory())yield*n$(i,t,r-1);else if(o.isFile()){let a=o.name.slice(o.name.lastIndexOf("."));bP.has(a)&&(yield i)}}}async function SP(e){try{let t=await(0,Sn.stat)(e);if(t.size>kP||t.size===0)return null;let r=await(0,Sn.readFile)(e,"utf-8");return r.slice(0,1e3).includes("\0")?null:r}catch{return null}}async function o$(e,t,r={}){let n=r.maxResults||20,o=t.toLowerCase(),i=o.split(/[\s_\-./]+/).filter(h=>h.length>0),a=[];for await(let h of n$(e,e)){if(r.filePattern&&!(0,pi.relative)(e,h).toLowerCase().includes(r.filePattern.toLowerCase()))continue;let _=await SP(h);_&&a.push({absolutePath:h,relativePath:(0,pi.relative)(e,h),content:_})}let s=e$(a),c=[],u=[],l=0;for(let[h,_]of s){l+=wP(_);let E=Os(h.toLowerCase(),i)>0,I=[],A=(j,Le)=>{for(let de of j){let Wt=0,Qe="",Kt=Os(de.name.toLowerCase(),i);Kt>0&&(Wt+=Kt*3,Qe="name match"),de.signature.toLowerCase().includes(o)&&(Wt+=2,Qe=Qe?`${Qe} + signature`:"signature match"),de.jsdoc&&de.jsdoc.toLowerCase().includes(o)&&(Wt+=1,Qe=Qe?`${Qe} + jsdoc`:"jsdoc match"),Wt>0&&(E=!0,I.push({filePath:h,symbolName:Le?`${Le}.${de.name}`:de.name,kind:de.kind,signature:de.signature,jsdoc:de.jsdoc,lineStart:de.lineStart,lineEnd:de.lineEnd,matchReason:Qe})),de.children&&A(de.children,de.name)}};A(_.symbols),E&&(c.push(_),u.push(...I))}u.sort((h,_)=>{let b=Os(h.symbolName.toLowerCase(),i);return Os(_.symbolName.toLowerCase(),i)-b});let d=u.slice(0,n),m=new Set(d.map(h=>h.filePath)),p=c.filter(h=>m.has(h.filePath)).slice(0,n),g=p.reduce((h,_)=>h+_.foldedTokenEstimate,0);return{foldedFiles:p,matchingSymbols:d,totalFilesScanned:a.length,totalSymbolsFound:l,tokenEstimate:g}}function Os(e,t){let r=0;for(let n of t)if(e===n)r+=10;else if(e.includes(n))r+=5;else{let o=0,i=0;for(let a of n){let s=e.indexOf(a,o);s!==-1&&(i++,o=s+1)}i===n.length&&(r+=1)}return r}function wP(e){let t=e.symbols.length;for(let r of e.symbols)r.children&&(t+=r.children.length);return t}function i$(e,t){let r=[];if(r.push(`\u{1F50D} Smart Search: "${t}"`),r.push(` Scanned ${e.totalFilesScanned} files, found ${e.totalSymbolsFound} symbols`),r.push(` ${e.matchingSymbols.length} matches across ${e.foldedFiles.length} files (~${e.tokenEstimate} tokens for folded view)`),r.push(""),e.matchingSymbols.length===0)return r.push(" No matching symbols found."),r.join(` +`);r.push("\u2500\u2500 Matching Symbols \u2500\u2500"),r.push("");for(let n of e.matchingSymbols){if(r.push(` ${n.kind} ${n.symbolName} (${n.filePath}:${n.lineStart+1})`),r.push(` ${n.signature}`),n.jsdoc){let o=n.jsdoc.split(` +`).find(i=>i.replace(/^[\s*/]+/,"").trim().length>0);o&&r.push(` \u{1F4AC} ${o.replace(/^[\s*/]+/,"").trim()}`)}r.push("")}r.push("\u2500\u2500 Folded File Views \u2500\u2500"),r.push("");for(let n of e.foldedFiles)r.push(kn(n)),r.push("");return r.push("\u2500\u2500 Actions \u2500\u2500"),r.push(" To see full implementation: use smart_unfold with file path and symbol name"),r.join(` +`)}var Of=require("node:fs/promises"),js=require("node:path"),zP="11.0.0";console.log=(...e)=>{ve.error("CONSOLE","Intercepted console output (MCP protocol protection)",void 0,{args:e})};var a$={search:"/api/search",timeline:"/api/timeline"};async function s$(e,t){ve.debug("SYSTEM","\u2192 Worker API",void 0,{endpoint:e,params:t});try{let r=new URLSearchParams;for(let[a,s]of Object.entries(t))s!=null&&r.append(a,String(s));let n=`${e}?${r}`,o=await Ts(n);if(!o.ok){let a=await o.text();throw new Error(`Worker API error (${o.status}): ${a}`)}let i=await o.json();return ve.debug("SYSTEM","\u2190 Worker API success",void 0,{endpoint:e}),i}catch(r){return ve.error("SYSTEM","\u2190 Worker API error",{endpoint:e},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function IP(e,t){ve.debug("HTTP","Worker API request (POST)",void 0,{endpoint:e});try{let r=await Ts(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let o=await r.text();throw new Error(`Worker API error (${r.status}): ${o}`)}let n=await r.json();return ve.debug("HTTP","Worker API success (POST)",void 0,{endpoint:e}),{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}catch(r){return ve.error("HTTP","Worker API error (POST)",{endpoint:e},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function EP(){try{return(await Ts("/api/health")).ok}catch(e){return ve.debug("SYSTEM","Worker health check failed",{},e),!1}}var c$=[{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 @@ -134,8 +134,8 @@ NEVER fetch full details without filtering first. 10x token savings.`,inputSchem \`get_observations(ids=[...])\` # ALWAYS batch for 2+ items Returns: Complete details (~500-1000 tokens/result) -**Why:** 10x token savings. Never fetch full details without filtering first.`}]})},{name:"search",description:"Step 1: Search memory. Returns index with IDs. Params: query, limit, project, type, obs_type, dateStart, dateEnd, offset, orderBy",inputSchema:{type:"object",properties:{},additionalProperties:!0},handler:async t=>{let e=p$.search;return await f$(e,t)}},{name:"timeline",description:"Step 2: Get context around results. Params: anchor (observation ID) OR query (finds anchor automatically), depth_before, depth_after, project",inputSchema:{type:"object",properties:{},additionalProperties:!0},handler:async t=>{let e=p$.timeline;return await f$(e,t)}},{name:"get_observations",description:"Step 3: Fetch full details for filtered IDs. Params: ids (array of observation IDs, required), orderBy, limit, project",inputSchema:{type:"object",properties:{ids:{type:"array",items:{type:"number"},description:"Array of observation IDs to fetch (required)"}},required:["ids"],additionalProperties:!0},handler:async t=>await EP("/api/observations/batch",t)},{name:"smart_search",description:"Search codebase for symbols, functions, classes using tree-sitter AST parsing. Returns folded structural views with token counts. Use path parameter to scope the search.",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search term \u2014 matches against symbol names, file names, and file content"},path:{type:"string",description:"Root directory to search (default: current working directory)"},max_results:{type:"number",description:"Maximum results to return (default: 20)"},file_pattern:{type:"string",description:'Substring filter for file paths (e.g. ".ts", "src/services")'}},required:["query"]},handler:async t=>{let e=(0,Ds.resolve)(t.path||process.cwd()),r=await l$(e,t.query,{maxResults:t.max_results||20,filePattern:t.file_pattern});return{content:[{type:"text",text:d$(r,t.query)}]}}},{name:"smart_unfold",description:"Expand a specific symbol (function, class, method) from a file. Returns the full source code of just that symbol. Use after smart_search or smart_outline to read specific code.",inputSchema:{type:"object",properties:{file_path:{type:"string",description:"Path to the source file"},symbol_name:{type:"string",description:"Name of the symbol to unfold (function, class, method, etc.)"}},required:["file_path","symbol_name"]},handler:async t=>{let e=(0,Ds.resolve)(t.file_path),r=await(0,jf.readFile)(e,"utf-8"),n=c$(r,e,t.symbol_name);if(n)return{content:[{type:"text",text:n}]};let o=Os(r,e);if(o.symbols.length>0){let i=o.symbols.map(a=>` - ${a.name} (${a.kind})`).join(` -`);return{content:[{type:"text",text:`Symbol "${t.symbol_name}" not found in ${t.file_path}. +**Why:** 10x token savings. Never fetch full details without filtering first.`}]})},{name:"search",description:"Step 1: Search memory. Returns index with IDs. Params: query, limit, project, type, obs_type, dateStart, dateEnd, offset, orderBy",inputSchema:{type:"object",properties:{},additionalProperties:!0},handler:async e=>{let t=a$.search;return await s$(t,e)}},{name:"timeline",description:"Step 2: Get context around results. Params: anchor (observation ID) OR query (finds anchor automatically), depth_before, depth_after, project",inputSchema:{type:"object",properties:{},additionalProperties:!0},handler:async e=>{let t=a$.timeline;return await s$(t,e)}},{name:"get_observations",description:"Step 3: Fetch full details for filtered IDs. Params: ids (array of observation IDs, required), orderBy, limit, project",inputSchema:{type:"object",properties:{ids:{type:"array",items:{type:"number"},description:"Array of observation IDs to fetch (required)"}},required:["ids"],additionalProperties:!0},handler:async e=>await IP("/api/observations/batch",e)},{name:"smart_search",description:"Search codebase for symbols, functions, classes using tree-sitter AST parsing. Returns folded structural views with token counts. Use path parameter to scope the search.",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search term \u2014 matches against symbol names, file names, and file content"},path:{type:"string",description:"Root directory to search (default: current working directory)"},max_results:{type:"number",description:"Maximum results to return (default: 20)"},file_pattern:{type:"string",description:'Substring filter for file paths (e.g. ".ts", "src/services")'}},required:["query"]},handler:async e=>{let t=(0,js.resolve)(e.path||process.cwd()),r=await o$(t,e.query,{maxResults:e.max_results||20,filePattern:e.file_pattern});return{content:[{type:"text",text:i$(r,e.query)}]}}},{name:"smart_unfold",description:"Expand a specific symbol (function, class, method) from a file. Returns the full source code of just that symbol. Use after smart_search or smart_outline to read specific code.",inputSchema:{type:"object",properties:{file_path:{type:"string",description:"Path to the source file"},symbol_name:{type:"string",description:"Name of the symbol to unfold (function, class, method, etc.)"}},required:["file_path","symbol_name"]},handler:async e=>{let t=(0,js.resolve)(e.file_path),r=await(0,Of.readFile)(t,"utf-8"),n=r$(r,t,e.symbol_name);if(n)return{content:[{type:"text",text:n}]};let o=Ps(r,t);if(o.symbols.length>0){let i=o.symbols.map(a=>` - ${a.name} (${a.kind})`).join(` +`);return{content:[{type:"text",text:`Symbol "${e.symbol_name}" not found in ${e.file_path}. Available symbols: -${i}`}]}}return{content:[{type:"text",text:`Could not parse ${t.file_path}. File may be unsupported or empty.`}]}}},{name:"smart_outline",description:"Get structural outline of a file \u2014 shows all symbols (functions, classes, methods, types) with signatures but bodies folded. Much cheaper than reading the full file.",inputSchema:{type:"object",properties:{file_path:{type:"string",description:"Path to the source file"}},required:["file_path"]},handler:async t=>{let e=(0,Ds.resolve)(t.file_path),r=await(0,jf.readFile)(e,"utf-8"),n=Os(r,e);return n.symbols.length>0?{content:[{type:"text",text:wn(n)}]}:{content:[{type:"text",text:`Could not parse ${t.file_path}. File may use an unsupported language or be empty.`}]}}}],Df=new ks({name:"claude-mem",version:IP},{capabilities:{tools:{}}});Df.setRequestHandler(Sd,async()=>({tools:m$.map(t=>({name:t.name,description:t.description,inputSchema:t.inputSchema}))}));Df.setRequestHandler(Ro,async t=>{let e=m$.find(r=>r.name===t.params.name);if(!e)throw new Error(`Unknown tool: ${t.params.name}`);try{return await e.handler(t.params.arguments||{})}catch(r){return ve.error("SYSTEM","Tool execution failed",{tool:t.params.name},r),{content:[{type:"text",text:`Tool execution failed: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}});var PP=3e4,gi=null;function OP(){if(process.platform==="win32")return;let t=process.ppid;gi=setInterval(()=>{(process.ppid===1||process.ppid!==t)&&(ve.info("SYSTEM","Parent process died, self-exiting to prevent orphan",{initialPpid:t,currentPpid:process.ppid}),Nf())},PP),gi.unref&&gi.unref()}function Nf(){gi&&clearInterval(gi),ve.info("SYSTEM","MCP server shutting down"),process.exit(0)}process.on("SIGTERM",Nf);process.on("SIGINT",Nf);async function jP(){let t=new ws;await Df.connect(t),ve.info("SYSTEM","Claude-mem search server started"),OP(),setTimeout(async()=>{await TP()?ve.info("SYSTEM","Worker available",void 0,{}):(ve.error("SYSTEM","Worker not available",void 0,{}),ve.error("SYSTEM","Tools will fail until Worker is started"),ve.error("SYSTEM","Start Worker with: npm run worker:restart"))},0)}jP().catch(t=>{ve.error("SYSTEM","Fatal error",void 0,t),process.exit(0)}); +${i}`}]}}return{content:[{type:"text",text:`Could not parse ${e.file_path}. File may be unsupported or empty.`}]}}},{name:"smart_outline",description:"Get structural outline of a file \u2014 shows all symbols (functions, classes, methods, types) with signatures but bodies folded. Much cheaper than reading the full file.",inputSchema:{type:"object",properties:{file_path:{type:"string",description:"Path to the source file"}},required:["file_path"]},handler:async e=>{let t=(0,js.resolve)(e.file_path),r=await(0,Of.readFile)(t,"utf-8"),n=Ps(r,t);return n.symbols.length>0?{content:[{type:"text",text:kn(n)}]}:{content:[{type:"text",text:`Could not parse ${e.file_path}. File may use an unsupported language or be empty.`}]}}}],jf=new xs({name:"claude-mem",version:zP},{capabilities:{tools:{}}});jf.setRequestHandler(xd,async()=>({tools:c$.map(e=>({name:e.name,description:e.description,inputSchema:e.inputSchema}))}));jf.setRequestHandler(Do,async e=>{let t=c$.find(r=>r.name===e.params.name);if(!t)throw new Error(`Unknown tool: ${e.params.name}`);try{return await t.handler(e.params.arguments||{})}catch(r){return ve.error("SYSTEM","Tool execution failed",{tool:e.params.name},r),{content:[{type:"text",text:`Tool execution failed: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}});var TP=3e4,fi=null;function PP(){if(process.platform==="win32")return;let e=process.ppid;fi=setInterval(()=>{(process.ppid===1||process.ppid!==e)&&(ve.info("SYSTEM","Parent process died, self-exiting to prevent orphan",{initialPpid:e,currentPpid:process.ppid}),Df())},TP),fi.unref&&fi.unref()}function Df(){fi&&clearInterval(fi),ve.info("SYSTEM","MCP server shutting down"),process.exit(0)}process.on("SIGTERM",Df);process.on("SIGINT",Df);async function OP(){let e=new Ss;await jf.connect(e),ve.info("SYSTEM","Claude-mem search server started"),PP(),setTimeout(async()=>{await EP()?ve.info("SYSTEM","Worker available",void 0,{}):(ve.error("SYSTEM","Worker not available",void 0,{}),ve.error("SYSTEM","Tools will fail until Worker is started"),ve.error("SYSTEM","Start Worker with: npm run worker:restart"))},0)}OP().catch(e=>{ve.error("SYSTEM","Fatal error",void 0,e),process.exit(0)}); diff --git a/plugin/scripts/worker-service.cjs b/plugin/scripts/worker-service.cjs index b56273af..d2c87313 100755 --- a/plugin/scripts/worker-service.cjs +++ b/plugin/scripts/worker-service.cjs @@ -1,22 +1,22 @@ #!/usr/bin/env bun var __filename = require("node:url").fileURLToPath(import.meta.url); var __dirname = require("node:path").dirname(__filename); -"use strict";var J9=Object.create;var Ep=Object.defineProperty;var X9=Object.getOwnPropertyDescriptor;var Y9=Object.getOwnPropertyNames;var Q9=Object.getPrototypeOf,eF=Object.prototype.hasOwnProperty;var Oe=(t,e)=>()=>(t&&(e=t(t=0)),e);var T=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ln=(t,e)=>{for(var r in e)Ep(t,r,{get:e[r],enumerable:!0})},J$=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Y9(e))!eF.call(t,i)&&i!==r&&Ep(t,i,{get:()=>e[i],enumerable:!(n=X9(e,i))||n.enumerable});return t};var Ue=(t,e,r)=>(r=t!=null?J9(Q9(t)):{},J$(e||!t||!t.__esModule?Ep(r,"default",{value:t,enumerable:!0}):r,t)),kp=t=>J$(Ep({},"__esModule",{value:!0}),t);var fl=T(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.regexpCode=st.getEsmExportName=st.getProperty=st.safeStringify=st.stringify=st.strConcat=st.addCodeArg=st.str=st._=st.nil=st._Code=st.Name=st.IDENTIFIER=st._CodeOrName=void 0;var pl=class{};st._CodeOrName=pl;st.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var so=class extends pl{constructor(e){if(super(),!st.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}}};st.Name=so;var In=class extends pl{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 so&&(r[n.str]=(r[n.str]||0)+1),r),{})}};st._Code=In;st.nil=new In("");function yO(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.ValueScope=Xr.ValueScopeName=Xr.Scope=Xr.varKinds=Xr.UsedValueState=void 0;var Jr=fl(),Ix=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},Vm;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(Vm||(Xr.UsedValueState=Vm={}));Xr.varKinds={const:new Jr.Name("const"),let:new Jr.Name("let"),var:new Jr.Name("var")};var Gm=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Jr.Name?e:this.name(e)}name(e){return new Jr.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}}};Xr.Scope=Gm;var Wm=class extends Jr.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Jr._)`.${new Jr.Name(r)}[${n}]`}};Xr.ValueScopeName=Wm;var F3=(0,Jr._)`\n`,Rx=class extends Gm{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?F3:Jr.nil}}get(){return this._scope}name(e){return new Wm(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 i=this.toName(e),{prefix:s}=i,o=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[s];if(a){let l=a.get(o);if(l)return l}else a=this._values[s]=new Map;a.set(o,i);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=r.ref,i.setValue(r,{property:s,itemIndex:u}),i}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,Jr._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(e,r,n={},i){let s=Jr.nil;for(let o in e){let a=e[o];if(!a)continue;let c=n[o]=n[o]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,Vm.Started);let l=r(u);if(l){let d=this.opts.es5?Xr.varKinds.var:Xr.varKinds.const;s=(0,Jr._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))s=(0,Jr._)`${s}${l}${this.opts._n}`;else throw new Ix(u);c.set(u,Vm.Completed)})}return s}};Xr.ValueScope=Rx});var Le=T(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.or=Fe.and=Fe.not=Fe.CodeGen=Fe.operators=Fe.varKinds=Fe.ValueScopeName=Fe.ValueScope=Fe.Scope=Fe.Name=Fe.regexpCode=Fe.stringify=Fe.getProperty=Fe.nil=Fe.strConcat=Fe.str=Fe._=void 0;var tt=fl(),Vn=Ox(),Es=fl();Object.defineProperty(Fe,"_",{enumerable:!0,get:function(){return Es._}});Object.defineProperty(Fe,"str",{enumerable:!0,get:function(){return Es.str}});Object.defineProperty(Fe,"strConcat",{enumerable:!0,get:function(){return Es.strConcat}});Object.defineProperty(Fe,"nil",{enumerable:!0,get:function(){return Es.nil}});Object.defineProperty(Fe,"getProperty",{enumerable:!0,get:function(){return Es.getProperty}});Object.defineProperty(Fe,"stringify",{enumerable:!0,get:function(){return Es.stringify}});Object.defineProperty(Fe,"regexpCode",{enumerable:!0,get:function(){return Es.regexpCode}});Object.defineProperty(Fe,"Name",{enumerable:!0,get:function(){return Es.Name}});var Ym=Ox();Object.defineProperty(Fe,"Scope",{enumerable:!0,get:function(){return Ym.Scope}});Object.defineProperty(Fe,"ValueScope",{enumerable:!0,get:function(){return Ym.ValueScope}});Object.defineProperty(Fe,"ValueScopeName",{enumerable:!0,get:function(){return Ym.ValueScopeName}});Object.defineProperty(Fe,"varKinds",{enumerable:!0,get:function(){return Ym.varKinds}});Fe.operators={GT:new tt._Code(">"),GTE:new tt._Code(">="),LT:new tt._Code("<"),LTE:new tt._Code("<="),EQ:new tt._Code("==="),NEQ:new tt._Code("!=="),NOT:new tt._Code("!"),OR:new tt._Code("||"),AND:new tt._Code("&&"),ADD:new tt._Code("+")};var Fi=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Px=class extends Fi{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?Vn.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=$a(this.rhs,e,r)),this}get names(){return this.rhs instanceof tt._CodeOrName?this.rhs.names:{}}},Km=class extends Fi{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 tt.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=$a(this.rhs,e,r),this}get names(){let e=this.lhs instanceof tt.Name?{}:{...this.lhs.names};return Xm(e,this.rhs)}},Cx=class extends Km{constructor(e,r,n,i){super(e,n,i),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Ax=class extends Fi{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Nx=class extends Fi{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Mx=class extends Fi{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Dx=class extends Fi{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=$a(this.code,e,r),this}get names(){return this.code instanceof tt._CodeOrName?this.code.names:{}}},hl=class extends Fi{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,i=n.length;for(;i--;){let s=n[i];s.optimizeNames(e,r)||(H3(e,s.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>co(e,r.names),{})}},Hi=class extends hl{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},jx=class extends hl{},ka=class extends Hi{};ka.kind="else";var oo=class t extends Hi{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 ka(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(bO(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=$a(this.condition,e,r),this}get names(){let e=super.names;return Xm(e,this.condition),this.else&&co(e,this.else.names),e}};oo.kind="if";var ao=class extends Hi{};ao.kind="for";var zx=class extends ao{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=$a(this.iteration,e,r),this}get names(){return co(super.names,this.iteration.names)}},Lx=class extends ao{constructor(e,r,n,i){super(),this.varKind=e,this.name=r,this.from=n,this.to=i}render(e){let r=e.es5?Vn.varKinds.var:this.varKind,{name:n,from:i,to:s}=this;return`for(${r} ${n}=${i}; ${n}<${s}; ${n}++)`+super.render(e)}get names(){let e=Xm(super.names,this.from);return Xm(e,this.to)}},Jm=class extends ao{constructor(e,r,n,i){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=i}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=$a(this.iterable,e,r),this}get names(){return co(super.names,this.iterable.names)}},gl=class extends Hi{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)}};gl.kind="func";var vl=class extends hl{render(e){return"return "+super.render(e)}};vl.kind="return";var Ux=class extends Hi{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,i;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(i=this.finally)===null||i===void 0||i.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&co(e,this.catch.names),this.finally&&co(e,this.finally.names),e}},yl=class extends Hi{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};yl.kind="catch";var _l=class extends Hi{render(e){return"finally"+super.render(e)}};_l.kind="finally";var qx=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` -`:""},this._extScope=e,this._scope=new Vn.Scope({parent:e}),this._nodes=[new jx]}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,i){let s=this._scope.toName(r);return n!==void 0&&i&&(this._constants[s.str]=n),this._leafNode(new Px(e,s,n)),s}const(e,r,n){return this._def(Vn.varKinds.const,e,r,n)}let(e,r,n){return this._def(Vn.varKinds.let,e,r,n)}var(e,r,n){return this._def(Vn.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new Km(e,r,n))}add(e,r){return this._leafNode(new Cx(e,Fe.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==tt.nil&&this._leafNode(new Dx(e)),this}object(...e){let r=["{"];for(let[n,i]of e)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,tt.addCodeArg)(r,i));return r.push("}"),new tt._Code(r)}if(e,r,n){if(this._blockNode(new oo(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 oo(e))}else(){return this._elseNode(new ka)}endIf(){return this._endBlockNode(oo,ka)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new zx(e),r)}forRange(e,r,n,i,s=this.opts.es5?Vn.varKinds.var:Vn.varKinds.let){let o=this._scope.toName(e);return this._for(new Lx(s,o,r,n),()=>i(o))}forOf(e,r,n,i=Vn.varKinds.const){let s=this._scope.toName(e);if(this.opts.es5){let o=r instanceof tt.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,tt._)`${o}.length`,a=>{this.var(s,(0,tt._)`${o}[${a}]`),n(s)})}return this._for(new Jm("of",i,s,r),()=>n(s))}forIn(e,r,n,i=this.opts.es5?Vn.varKinds.var:Vn.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,tt._)`Object.keys(${r})`,n);let s=this._scope.toName(e);return this._for(new Jm("in",i,s,r),()=>n(s))}endFor(){return this._endBlockNode(ao)}label(e){return this._leafNode(new Ax(e))}break(e){return this._leafNode(new Nx(e))}return(e){let r=new vl;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(vl)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Ux;if(this._blockNode(i),this.code(e),r){let s=this.name("e");this._currNode=i.catch=new yl(s),r(s)}return n&&(this._currNode=i.finally=new _l,this.code(n)),this._endBlockNode(yl,_l)}throw(e){return this._leafNode(new Mx(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=tt.nil,n,i){return this._blockNode(new gl(e,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(gl)}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 oo))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}};Fe.CodeGen=qx;function co(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function Xm(t,e){return e instanceof tt._CodeOrName?co(t,e.names):t}function $a(t,e,r){if(t instanceof tt.Name)return n(t);if(!i(t))return t;return new tt._Code(t._items.reduce((s,o)=>(o instanceof tt.Name&&(o=n(o)),o instanceof tt._Code?s.push(...o._items):s.push(o),s),[]));function n(s){let o=r[s.str];return o===void 0||e[s.str]!==1?s:(delete e[s.str],o)}function i(s){return s instanceof tt._Code&&s._items.some(o=>o instanceof tt.Name&&e[o.str]===1&&r[o.str]!==void 0)}}function H3(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function bO(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,tt._)`!${Fx(t)}`}Fe.not=bO;var Z3=xO(Fe.operators.AND);function B3(...t){return t.reduce(Z3)}Fe.and=B3;var V3=xO(Fe.operators.OR);function G3(...t){return t.reduce(V3)}Fe.or=G3;function xO(t){return(e,r)=>e===tt.nil?r:r===tt.nil?e:(0,tt._)`${Fx(e)} ${t} ${Fx(r)}`}function Fx(t){return t instanceof tt.Name?t:(0,tt._)`(${t})`}});var rt=T(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.checkStrictMode=Ke.getErrorPath=Ke.Type=Ke.useFunc=Ke.setEvaluated=Ke.evaluatedPropsToName=Ke.mergeEvaluated=Ke.eachItem=Ke.unescapeJsonPointer=Ke.escapeJsonPointer=Ke.escapeFragment=Ke.unescapeFragment=Ke.schemaRefOrVal=Ke.schemaHasRulesButRef=Ke.schemaHasRules=Ke.checkUnknownRules=Ke.alwaysValidSchema=Ke.toHash=void 0;var St=Le(),W3=fl();function K3(t){let e={};for(let r of t)e[r]=!0;return e}Ke.toHash=K3;function J3(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(EO(t,e),!kO(e,t.self.RULES.all))}Ke.alwaysValidSchema=J3;function EO(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let i=n.RULES.keywords;for(let s in e)i[s]||IO(t,`unknown keyword: "${s}"`)}Ke.checkUnknownRules=EO;function kO(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}Ke.schemaHasRules=kO;function X3(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}Ke.schemaHasRulesButRef=X3;function Y3({topSchemaRef:t,schemaPath:e},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,St._)`${r}`}return(0,St._)`${t}${e}${(0,St.getProperty)(n)}`}Ke.schemaRefOrVal=Y3;function Q3(t){return $O(decodeURIComponent(t))}Ke.unescapeFragment=Q3;function eZ(t){return encodeURIComponent(Zx(t))}Ke.escapeFragment=eZ;function Zx(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}Ke.escapeJsonPointer=Zx;function $O(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}Ke.unescapeJsonPointer=$O;function tZ(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}Ke.eachItem=tZ;function SO({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(i,s,o,a)=>{let c=o===void 0?s:o instanceof St.Name?(s instanceof St.Name?t(i,s,o):e(i,s,o),o):s instanceof St.Name?(e(i,o,s),s):r(s,o);return a===St.Name&&!(c instanceof St.Name)?n(i,c):c}}Ke.mergeEvaluated={props:SO({mergeNames:(t,e,r)=>t.if((0,St._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,St._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,St._)`${r} || {}`).code((0,St._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,St._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,St._)`${r} || {}`),Bx(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:TO}),items:SO({mergeNames:(t,e,r)=>t.if((0,St._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,St._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,St._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,St._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function TO(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,St._)`{}`);return e!==void 0&&Bx(t,r,e),r}Ke.evaluatedPropsToName=TO;function Bx(t,e,r){Object.keys(r).forEach(n=>t.assign((0,St._)`${e}${(0,St.getProperty)(n)}`,!0))}Ke.setEvaluated=Bx;var wO={};function rZ(t,e){return t.scopeValue("func",{ref:e,code:wO[e.code]||(wO[e.code]=new W3._Code(e.code))})}Ke.useFunc=rZ;var Hx;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Hx||(Ke.Type=Hx={}));function nZ(t,e,r){if(t instanceof St.Name){let n=e===Hx.Num;return r?n?(0,St._)`"[" + ${t} + "]"`:(0,St._)`"['" + ${t} + "']"`:n?(0,St._)`"/" + ${t}`:(0,St._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,St.getProperty)(t).toString():"/"+Zx(t)}Ke.getErrorPath=nZ;function IO(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}Ke.checkStrictMode=IO});var Zi=T(Vx=>{"use strict";Object.defineProperty(Vx,"__esModule",{value:!0});var kr=Le(),iZ={data:new kr.Name("data"),valCxt:new kr.Name("valCxt"),instancePath:new kr.Name("instancePath"),parentData:new kr.Name("parentData"),parentDataProperty:new kr.Name("parentDataProperty"),rootData:new kr.Name("rootData"),dynamicAnchors:new kr.Name("dynamicAnchors"),vErrors:new kr.Name("vErrors"),errors:new kr.Name("errors"),this:new kr.Name("this"),self:new kr.Name("self"),scope:new kr.Name("scope"),json:new kr.Name("json"),jsonPos:new kr.Name("jsonPos"),jsonLen:new kr.Name("jsonLen"),jsonPart:new kr.Name("jsonPart")};Vx.default=iZ});var bl=T($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.extendErrors=$r.resetErrorsCount=$r.reportExtraError=$r.reportError=$r.keyword$DataError=$r.keywordError=void 0;var nt=Le(),Qm=rt(),Ur=Zi();$r.keywordError={message:({keyword:t})=>(0,nt.str)`must pass "${t}" keyword validation`};$r.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,nt.str)`"${t}" keyword must be ${e} ($data)`:(0,nt.str)`"${t}" keyword is invalid ($data)`};function sZ(t,e=$r.keywordError,r,n){let{it:i}=t,{gen:s,compositeRule:o,allErrors:a}=i,c=PO(t,e,r);n??(o||a)?RO(s,c):OO(i,(0,nt._)`[${c}]`)}$r.reportError=sZ;function oZ(t,e=$r.keywordError,r){let{it:n}=t,{gen:i,compositeRule:s,allErrors:o}=n,a=PO(t,e,r);RO(i,a),s||o||OO(n,Ur.default.vErrors)}$r.reportExtraError=oZ;function aZ(t,e){t.assign(Ur.default.errors,e),t.if((0,nt._)`${Ur.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,nt._)`${Ur.default.vErrors}.length`,e),()=>t.assign(Ur.default.vErrors,null)))}$r.resetErrorsCount=aZ;function cZ({gen:t,keyword:e,schemaValue:r,data:n,errsCount:i,it:s}){if(i===void 0)throw new Error("ajv implementation error");let o=t.name("err");t.forRange("i",i,Ur.default.errors,a=>{t.const(o,(0,nt._)`${Ur.default.vErrors}[${a}]`),t.if((0,nt._)`${o}.instancePath === undefined`,()=>t.assign((0,nt._)`${o}.instancePath`,(0,nt.strConcat)(Ur.default.instancePath,s.errorPath))),t.assign((0,nt._)`${o}.schemaPath`,(0,nt.str)`${s.errSchemaPath}/${e}`),s.opts.verbose&&(t.assign((0,nt._)`${o}.schema`,r),t.assign((0,nt._)`${o}.data`,n))})}$r.extendErrors=cZ;function RO(t,e){let r=t.const("err",e);t.if((0,nt._)`${Ur.default.vErrors} === null`,()=>t.assign(Ur.default.vErrors,(0,nt._)`[${r}]`),(0,nt._)`${Ur.default.vErrors}.push(${r})`),t.code((0,nt._)`${Ur.default.errors}++`)}function OO(t,e){let{gen:r,validateName:n,schemaEnv:i}=t;i.$async?r.throw((0,nt._)`new ${t.ValidationError}(${e})`):(r.assign((0,nt._)`${n}.errors`,e),r.return(!1))}var uo={keyword:new nt.Name("keyword"),schemaPath:new nt.Name("schemaPath"),params:new nt.Name("params"),propertyName:new nt.Name("propertyName"),message:new nt.Name("message"),schema:new nt.Name("schema"),parentSchema:new nt.Name("parentSchema")};function PO(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,nt._)`{}`:uZ(t,e,r)}function uZ(t,e,r={}){let{gen:n,it:i}=t,s=[lZ(i,r),dZ(t,r)];return pZ(t,e,s),n.object(...s)}function lZ({errorPath:t},{instancePath:e}){let r=e?(0,nt.str)`${t}${(0,Qm.getErrorPath)(e,Qm.Type.Str)}`:t;return[Ur.default.instancePath,(0,nt.strConcat)(Ur.default.instancePath,r)]}function dZ({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let i=n?e:(0,nt.str)`${e}/${t}`;return r&&(i=(0,nt.str)`${i}${(0,Qm.getErrorPath)(r,Qm.Type.Str)}`),[uo.schemaPath,i]}function pZ(t,{params:e,message:r},n){let{keyword:i,data:s,schemaValue:o,it:a}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=a;n.push([uo.keyword,i],[uo.params,typeof e=="function"?e(t):e||(0,nt._)`{}`]),c.messages&&n.push([uo.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([uo.schema,o],[uo.parentSchema,(0,nt._)`${l}${d}`],[Ur.default.data,s]),u&&n.push([uo.propertyName,u])}});var AO=T(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.boolOrEmptySchema=Ta.topBoolOrEmptySchema=void 0;var mZ=bl(),fZ=Le(),hZ=Zi(),gZ={message:"boolean schema is false"};function vZ(t){let{gen:e,schema:r,validateName:n}=t;r===!1?CO(t,!1):typeof r=="object"&&r.$async===!0?e.return(hZ.default.data):(e.assign((0,fZ._)`${n}.errors`,null),e.return(!0))}Ta.topBoolOrEmptySchema=vZ;function yZ(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),CO(t)):r.var(e,!0)}Ta.boolOrEmptySchema=yZ;function CO(t,e){let{gen:r,data:n}=t,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,mZ.reportError)(i,gZ,void 0,e)}});var Gx=T(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.getRules=Ia.isJSONType=void 0;var _Z=["string","number","integer","boolean","null","object","array"],bZ=new Set(_Z);function xZ(t){return typeof t=="string"&&bZ.has(t)}Ia.isJSONType=xZ;function SZ(){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:{}}}Ia.getRules=SZ});var Wx=T(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});ks.shouldUseRule=ks.shouldUseGroup=ks.schemaHasRulesForType=void 0;function wZ({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&NO(t,n)}ks.schemaHasRulesForType=wZ;function NO(t,e){return e.rules.some(r=>MO(t,r))}ks.shouldUseGroup=NO;function MO(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))}ks.shouldUseRule=MO});var xl=T(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.reportTypeError=Tr.checkDataTypes=Tr.checkDataType=Tr.coerceAndCheckDataType=Tr.getJSONTypes=Tr.getSchemaTypes=Tr.DataType=void 0;var EZ=Gx(),kZ=Wx(),$Z=bl(),je=Le(),DO=rt(),Ra;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(Ra||(Tr.DataType=Ra={}));function TZ(t){let e=jO(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}Tr.getSchemaTypes=TZ;function jO(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(EZ.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Tr.getJSONTypes=jO;function IZ(t,e){let{gen:r,data:n,opts:i}=t,s=RZ(e,i.coerceTypes),o=e.length>0&&!(s.length===0&&e.length===1&&(0,kZ.schemaHasRulesForType)(t,e[0]));if(o){let a=Jx(e,n,i.strictNumbers,Ra.Wrong);r.if(a,()=>{s.length?OZ(t,e,s):Xx(t)})}return o}Tr.coerceAndCheckDataType=IZ;var zO=new Set(["string","number","integer","boolean","null"]);function RZ(t,e){return e?t.filter(r=>zO.has(r)||e==="array"&&r==="array"):[]}function OZ(t,e,r){let{gen:n,data:i,opts:s}=t,o=n.let("dataType",(0,je._)`typeof ${i}`),a=n.let("coerced",(0,je._)`undefined`);s.coerceTypes==="array"&&n.if((0,je._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,je._)`${i}[0]`).assign(o,(0,je._)`typeof ${i}`).if(Jx(e,i,s.strictNumbers),()=>n.assign(a,i))),n.if((0,je._)`${a} !== undefined`);for(let u of r)(zO.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);n.else(),Xx(t),n.endIf(),n.if((0,je._)`${a} !== undefined`,()=>{n.assign(i,a),PZ(t,a)});function c(u){switch(u){case"string":n.elseIf((0,je._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,je._)`"" + ${i}`).elseIf((0,je._)`${i} === null`).assign(a,(0,je._)`""`);return;case"number":n.elseIf((0,je._)`${o} == "boolean" || ${i} === null +"use strict";var nH=Object.create;var jf=Object.defineProperty;var iH=Object.getOwnPropertyDescriptor;var sH=Object.getOwnPropertyNames;var oH=Object.getPrototypeOf,aH=Object.prototype.hasOwnProperty;var Oe=(t,e)=>()=>(t&&(e=t(t=0)),e);var $=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),_n=(t,e)=>{for(var r in e)jf(t,r,{get:e[r],enumerable:!0})},eR=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of sH(e))!aH.call(t,i)&&i!==r&&jf(t,i,{get:()=>e[i],enumerable:!(n=iH(e,i))||n.enumerable});return t};var Pe=(t,e,r)=>(r=t!=null?nH(oH(t)):{},eR(e||!t||!t.__esModule?jf(r,"default",{value:t,enumerable:!0}):r,t)),zf=t=>eR(jf({},"__esModule",{value:!0}),t);var ad=$(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.regexpCode=it.getEsmExportName=it.getProperty=it.safeStringify=it.stringify=it.strConcat=it.addCodeArg=it.str=it._=it.nil=it._Code=it.Name=it.IDENTIFIER=it._CodeOrName=void 0;var sd=class{};it._CodeOrName=sd;it.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Lo=class extends sd{constructor(e){if(super(),!it.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}}};it.Name=Lo;var Un=class extends sd{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 Lo&&(r[n.str]=(r[n.str]||0)+1),r),{})}};it._Code=Un;it.nil=new Un("");function vC(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.ValueScope=cn.ValueScopeName=cn.Scope=cn.varKinds=cn.UsedValueState=void 0;var an=ad(),gw=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},sh;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(sh||(cn.UsedValueState=sh={}));cn.varKinds={const:new an.Name("const"),let:new an.Name("let"),var:new an.Name("var")};var oh=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}}};cn.Scope=oh;var ah=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}]`}};cn.ValueScopeName=ah;var rW=(0,an._)`\n`,vw=class extends oh{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?rW:an.nil}}get(){return this._scope}name(e){return new ah(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 i=this.toName(e),{prefix:s}=i,o=(n=r.key)!==null&&n!==void 0?n:r.ref,a=this._values[s];if(a){let l=a.get(o);if(l)return l}else a=this._values[s]=new Map;a.set(o,i);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=r.ref,i.setValue(r,{property:s,itemIndex:u}),i}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,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(e,r,n={},i){let s=an.nil;for(let o in e){let a=e[o];if(!a)continue;let c=n[o]=n[o]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,sh.Started);let l=r(u);if(l){let d=this.opts.es5?cn.varKinds.var:cn.varKinds.const;s=(0,an._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))s=(0,an._)`${s}${l}${this.opts._n}`;else throw new gw(u);c.set(u,sh.Completed)})}return s}};cn.ValueScope=vw});var Ue=$(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.or=qe.and=qe.not=qe.CodeGen=qe.operators=qe.varKinds=qe.ValueScopeName=qe.ValueScope=qe.Scope=qe.Name=qe.regexpCode=qe.stringify=qe.getProperty=qe.nil=qe.strConcat=qe.str=qe._=void 0;var et=ad(),ai=yw(),Ys=ad();Object.defineProperty(qe,"_",{enumerable:!0,get:function(){return Ys._}});Object.defineProperty(qe,"str",{enumerable:!0,get:function(){return Ys.str}});Object.defineProperty(qe,"strConcat",{enumerable:!0,get:function(){return Ys.strConcat}});Object.defineProperty(qe,"nil",{enumerable:!0,get:function(){return Ys.nil}});Object.defineProperty(qe,"getProperty",{enumerable:!0,get:function(){return Ys.getProperty}});Object.defineProperty(qe,"stringify",{enumerable:!0,get:function(){return Ys.stringify}});Object.defineProperty(qe,"regexpCode",{enumerable:!0,get:function(){return Ys.regexpCode}});Object.defineProperty(qe,"Name",{enumerable:!0,get:function(){return Ys.Name}});var dh=yw();Object.defineProperty(qe,"Scope",{enumerable:!0,get:function(){return dh.Scope}});Object.defineProperty(qe,"ValueScope",{enumerable:!0,get:function(){return dh.ValueScope}});Object.defineProperty(qe,"ValueScopeName",{enumerable:!0,get:function(){return dh.ValueScopeName}});Object.defineProperty(qe,"varKinds",{enumerable:!0,get:function(){return dh.varKinds}});qe.operators={GT:new et._Code(">"),GTE:new et._Code(">="),LT:new et._Code("<"),LTE:new et._Code("<="),EQ:new et._Code("==="),NEQ:new et._Code("!=="),NOT:new et._Code("!"),OR:new et._Code("||"),AND:new et._Code("&&"),ADD:new et._Code("+")};var ms=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},_w=class extends ms{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?ai.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=uc(this.rhs,e,r)),this}get names(){return this.rhs instanceof et._CodeOrName?this.rhs.names:{}}},ch=class extends ms{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 et.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=uc(this.rhs,e,r),this}get names(){let e=this.lhs instanceof et.Name?{}:{...this.lhs.names};return lh(e,this.rhs)}},bw=class extends ch{constructor(e,r,n,i){super(e,n,i),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Sw=class extends ms{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},xw=class extends ms{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},ww=class extends ms{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Ew=class extends ms{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=uc(this.code,e,r),this}get names(){return this.code instanceof et._CodeOrName?this.code.names:{}}},cd=class extends ms{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,i=n.length;for(;i--;){let s=n[i];s.optimizeNames(e,r)||(nW(e,s.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>qo(e,r.names),{})}},hs=class extends cd{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},kw=class extends cd{},cc=class extends hs{};cc.kind="else";var Uo=class t extends hs{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 cc(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(_C(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=uc(this.condition,e,r),this}get names(){let e=super.names;return lh(e,this.condition),this.else&&qo(e,this.else.names),e}};Uo.kind="if";var Fo=class extends hs{};Fo.kind="for";var Tw=class extends Fo{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=uc(this.iteration,e,r),this}get names(){return qo(super.names,this.iteration.names)}},$w=class extends Fo{constructor(e,r,n,i){super(),this.varKind=e,this.name=r,this.from=n,this.to=i}render(e){let r=e.es5?ai.varKinds.var:this.varKind,{name:n,from:i,to:s}=this;return`for(${r} ${n}=${i}; ${n}<${s}; ${n}++)`+super.render(e)}get names(){let e=lh(super.names,this.from);return lh(e,this.to)}},uh=class extends Fo{constructor(e,r,n,i){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=i}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=uc(this.iterable,e,r),this}get names(){return qo(super.names,this.iterable.names)}},ud=class extends hs{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)}};ud.kind="func";var ld=class extends cd{render(e){return"return "+super.render(e)}};ld.kind="return";var Iw=class extends hs{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,i;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(i=this.finally)===null||i===void 0||i.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&qo(e,this.catch.names),this.finally&&qo(e,this.finally.names),e}},dd=class extends hs{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};dd.kind="catch";var pd=class extends hs{render(e){return"finally"+super.render(e)}};pd.kind="finally";var Rw=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` +`:""},this._extScope=e,this._scope=new ai.Scope({parent:e}),this._nodes=[new kw]}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,i){let s=this._scope.toName(r);return n!==void 0&&i&&(this._constants[s.str]=n),this._leafNode(new _w(e,s,n)),s}const(e,r,n){return this._def(ai.varKinds.const,e,r,n)}let(e,r,n){return this._def(ai.varKinds.let,e,r,n)}var(e,r,n){return this._def(ai.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new ch(e,r,n))}add(e,r){return this._leafNode(new bw(e,qe.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==et.nil&&this._leafNode(new Ew(e)),this}object(...e){let r=["{"];for(let[n,i]of e)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,et.addCodeArg)(r,i));return r.push("}"),new et._Code(r)}if(e,r,n){if(this._blockNode(new Uo(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 Uo(e))}else(){return this._elseNode(new cc)}endIf(){return this._endBlockNode(Uo,cc)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new Tw(e),r)}forRange(e,r,n,i,s=this.opts.es5?ai.varKinds.var:ai.varKinds.let){let o=this._scope.toName(e);return this._for(new $w(s,o,r,n),()=>i(o))}forOf(e,r,n,i=ai.varKinds.const){let s=this._scope.toName(e);if(this.opts.es5){let o=r instanceof et.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,et._)`${o}.length`,a=>{this.var(s,(0,et._)`${o}[${a}]`),n(s)})}return this._for(new uh("of",i,s,r),()=>n(s))}forIn(e,r,n,i=this.opts.es5?ai.varKinds.var:ai.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,et._)`Object.keys(${r})`,n);let s=this._scope.toName(e);return this._for(new uh("in",i,s,r),()=>n(s))}endFor(){return this._endBlockNode(Fo)}label(e){return this._leafNode(new Sw(e))}break(e){return this._leafNode(new xw(e))}return(e){let r=new ld;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(ld)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Iw;if(this._blockNode(i),this.code(e),r){let s=this.name("e");this._currNode=i.catch=new dd(s),r(s)}return n&&(this._currNode=i.finally=new pd,this.code(n)),this._endBlockNode(dd,pd)}throw(e){return this._leafNode(new ww(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=et.nil,n,i){return this._blockNode(new ud(e,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(ud)}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 Uo))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}};qe.CodeGen=Rw;function qo(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function lh(t,e){return e instanceof et._CodeOrName?qo(t,e.names):t}function uc(t,e,r){if(t instanceof et.Name)return n(t);if(!i(t))return t;return new et._Code(t._items.reduce((s,o)=>(o instanceof et.Name&&(o=n(o)),o instanceof et._Code?s.push(...o._items):s.push(o),s),[]));function n(s){let o=r[s.str];return o===void 0||e[s.str]!==1?s:(delete e[s.str],o)}function i(s){return s instanceof et._Code&&s._items.some(o=>o instanceof et.Name&&e[o.str]===1&&r[o.str]!==void 0)}}function nW(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function _C(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,et._)`!${Ow(t)}`}qe.not=_C;var iW=bC(qe.operators.AND);function sW(...t){return t.reduce(iW)}qe.and=sW;var oW=bC(qe.operators.OR);function aW(...t){return t.reduce(oW)}qe.or=aW;function bC(t){return(e,r)=>e===et.nil?r:r===et.nil?e:(0,et._)`${Ow(e)} ${t} ${Ow(r)}`}function Ow(t){return t instanceof et.Name?t:(0,et._)`(${t})`}});var st=$(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.checkStrictMode=Ke.getErrorPath=Ke.Type=Ke.useFunc=Ke.setEvaluated=Ke.evaluatedPropsToName=Ke.mergeEvaluated=Ke.eachItem=Ke.unescapeJsonPointer=Ke.escapeJsonPointer=Ke.escapeFragment=Ke.unescapeFragment=Ke.schemaRefOrVal=Ke.schemaHasRulesButRef=Ke.schemaHasRules=Ke.checkUnknownRules=Ke.alwaysValidSchema=Ke.toHash=void 0;var xt=Ue(),cW=ad();function uW(t){let e={};for(let r of t)e[r]=!0;return e}Ke.toHash=uW;function lW(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(wC(t,e),!EC(e,t.self.RULES.all))}Ke.alwaysValidSchema=lW;function wC(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let i=n.RULES.keywords;for(let s in e)i[s]||$C(t,`unknown keyword: "${s}"`)}Ke.checkUnknownRules=wC;function EC(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}Ke.schemaHasRules=EC;function dW(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}Ke.schemaHasRulesButRef=dW;function pW({topSchemaRef:t,schemaPath:e},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,xt._)`${r}`}return(0,xt._)`${t}${e}${(0,xt.getProperty)(n)}`}Ke.schemaRefOrVal=pW;function fW(t){return kC(decodeURIComponent(t))}Ke.unescapeFragment=fW;function mW(t){return encodeURIComponent(Pw(t))}Ke.escapeFragment=mW;function Pw(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}Ke.escapeJsonPointer=Pw;function kC(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}Ke.unescapeJsonPointer=kC;function hW(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}Ke.eachItem=hW;function SC({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(i,s,o,a)=>{let c=o===void 0?s:o instanceof xt.Name?(s instanceof xt.Name?t(i,s,o):e(i,s,o),o):s instanceof xt.Name?(e(i,o,s),s):r(s,o);return a===xt.Name&&!(c instanceof xt.Name)?n(i,c):c}}Ke.mergeEvaluated={props:SC({mergeNames:(t,e,r)=>t.if((0,xt._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,xt._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,xt._)`${r} || {}`).code((0,xt._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,xt._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,xt._)`${r} || {}`),Aw(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:TC}),items:SC({mergeNames:(t,e,r)=>t.if((0,xt._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,xt._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,xt._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,xt._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function TC(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,xt._)`{}`);return e!==void 0&&Aw(t,r,e),r}Ke.evaluatedPropsToName=TC;function Aw(t,e,r){Object.keys(r).forEach(n=>t.assign((0,xt._)`${e}${(0,xt.getProperty)(n)}`,!0))}Ke.setEvaluated=Aw;var xC={};function gW(t,e){return t.scopeValue("func",{ref:e,code:xC[e.code]||(xC[e.code]=new cW._Code(e.code))})}Ke.useFunc=gW;var Cw;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Cw||(Ke.Type=Cw={}));function vW(t,e,r){if(t instanceof xt.Name){let n=e===Cw.Num;return r?n?(0,xt._)`"[" + ${t} + "]"`:(0,xt._)`"['" + ${t} + "']"`:n?(0,xt._)`"/" + ${t}`:(0,xt._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,xt.getProperty)(t).toString():"/"+Pw(t)}Ke.getErrorPath=vW;function $C(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}Ke.checkStrictMode=$C});var gs=$(Nw=>{"use strict";Object.defineProperty(Nw,"__esModule",{value:!0});var Pr=Ue(),yW={data:new Pr.Name("data"),valCxt:new Pr.Name("valCxt"),instancePath:new Pr.Name("instancePath"),parentData:new Pr.Name("parentData"),parentDataProperty:new Pr.Name("parentDataProperty"),rootData:new Pr.Name("rootData"),dynamicAnchors:new Pr.Name("dynamicAnchors"),vErrors:new Pr.Name("vErrors"),errors:new Pr.Name("errors"),this:new Pr.Name("this"),self:new Pr.Name("self"),scope:new Pr.Name("scope"),json:new Pr.Name("json"),jsonPos:new Pr.Name("jsonPos"),jsonLen:new Pr.Name("jsonLen"),jsonPart:new Pr.Name("jsonPart")};Nw.default=yW});var fd=$(Ar=>{"use strict";Object.defineProperty(Ar,"__esModule",{value:!0});Ar.extendErrors=Ar.resetErrorsCount=Ar.reportExtraError=Ar.reportError=Ar.keyword$DataError=Ar.keywordError=void 0;var tt=Ue(),ph=st(),Vr=gs();Ar.keywordError={message:({keyword:t})=>(0,tt.str)`must pass "${t}" keyword validation`};Ar.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,tt.str)`"${t}" keyword must be ${e} ($data)`:(0,tt.str)`"${t}" keyword is invalid ($data)`};function _W(t,e=Ar.keywordError,r,n){let{it:i}=t,{gen:s,compositeRule:o,allErrors:a}=i,c=OC(t,e,r);n??(o||a)?IC(s,c):RC(i,(0,tt._)`[${c}]`)}Ar.reportError=_W;function bW(t,e=Ar.keywordError,r){let{it:n}=t,{gen:i,compositeRule:s,allErrors:o}=n,a=OC(t,e,r);IC(i,a),s||o||RC(n,Vr.default.vErrors)}Ar.reportExtraError=bW;function SW(t,e){t.assign(Vr.default.errors,e),t.if((0,tt._)`${Vr.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,tt._)`${Vr.default.vErrors}.length`,e),()=>t.assign(Vr.default.vErrors,null)))}Ar.resetErrorsCount=SW;function xW({gen:t,keyword:e,schemaValue:r,data:n,errsCount:i,it:s}){if(i===void 0)throw new Error("ajv implementation error");let o=t.name("err");t.forRange("i",i,Vr.default.errors,a=>{t.const(o,(0,tt._)`${Vr.default.vErrors}[${a}]`),t.if((0,tt._)`${o}.instancePath === undefined`,()=>t.assign((0,tt._)`${o}.instancePath`,(0,tt.strConcat)(Vr.default.instancePath,s.errorPath))),t.assign((0,tt._)`${o}.schemaPath`,(0,tt.str)`${s.errSchemaPath}/${e}`),s.opts.verbose&&(t.assign((0,tt._)`${o}.schema`,r),t.assign((0,tt._)`${o}.data`,n))})}Ar.extendErrors=xW;function IC(t,e){let r=t.const("err",e);t.if((0,tt._)`${Vr.default.vErrors} === null`,()=>t.assign(Vr.default.vErrors,(0,tt._)`[${r}]`),(0,tt._)`${Vr.default.vErrors}.push(${r})`),t.code((0,tt._)`${Vr.default.errors}++`)}function RC(t,e){let{gen:r,validateName:n,schemaEnv:i}=t;i.$async?r.throw((0,tt._)`new ${t.ValidationError}(${e})`):(r.assign((0,tt._)`${n}.errors`,e),r.return(!1))}var Ho={keyword:new tt.Name("keyword"),schemaPath:new tt.Name("schemaPath"),params:new tt.Name("params"),propertyName:new tt.Name("propertyName"),message:new tt.Name("message"),schema:new tt.Name("schema"),parentSchema:new tt.Name("parentSchema")};function OC(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,tt._)`{}`:wW(t,e,r)}function wW(t,e,r={}){let{gen:n,it:i}=t,s=[EW(i,r),kW(t,r)];return TW(t,e,s),n.object(...s)}function EW({errorPath:t},{instancePath:e}){let r=e?(0,tt.str)`${t}${(0,ph.getErrorPath)(e,ph.Type.Str)}`:t;return[Vr.default.instancePath,(0,tt.strConcat)(Vr.default.instancePath,r)]}function kW({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let i=n?e:(0,tt.str)`${e}/${t}`;return r&&(i=(0,tt.str)`${i}${(0,ph.getErrorPath)(r,ph.Type.Str)}`),[Ho.schemaPath,i]}function TW(t,{params:e,message:r},n){let{keyword:i,data:s,schemaValue:o,it:a}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=a;n.push([Ho.keyword,i],[Ho.params,typeof e=="function"?e(t):e||(0,tt._)`{}`]),c.messages&&n.push([Ho.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Ho.schema,o],[Ho.parentSchema,(0,tt._)`${l}${d}`],[Vr.default.data,s]),u&&n.push([Ho.propertyName,u])}});var PC=$(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.boolOrEmptySchema=lc.topBoolOrEmptySchema=void 0;var $W=fd(),IW=Ue(),RW=gs(),OW={message:"boolean schema is false"};function CW(t){let{gen:e,schema:r,validateName:n}=t;r===!1?CC(t,!1):typeof r=="object"&&r.$async===!0?e.return(RW.default.data):(e.assign((0,IW._)`${n}.errors`,null),e.return(!0))}lc.topBoolOrEmptySchema=CW;function PW(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),CC(t)):r.var(e,!0)}lc.boolOrEmptySchema=PW;function CC(t,e){let{gen:r,data:n}=t,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,$W.reportError)(i,OW,void 0,e)}});var Mw=$(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});dc.getRules=dc.isJSONType=void 0;var AW=["string","number","integer","boolean","null","object","array"],NW=new Set(AW);function MW(t){return typeof t=="string"&&NW.has(t)}dc.isJSONType=MW;function DW(){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:{}}}dc.getRules=DW});var Dw=$(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.shouldUseRule=Qs.shouldUseGroup=Qs.schemaHasRulesForType=void 0;function jW({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&AC(t,n)}Qs.schemaHasRulesForType=jW;function AC(t,e){return e.rules.some(r=>NC(t,r))}Qs.shouldUseGroup=AC;function NC(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))}Qs.shouldUseRule=NC});var md=$(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.reportTypeError=Nr.checkDataTypes=Nr.checkDataType=Nr.coerceAndCheckDataType=Nr.getJSONTypes=Nr.getSchemaTypes=Nr.DataType=void 0;var zW=Mw(),LW=Dw(),UW=fd(),je=Ue(),MC=st(),pc;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(pc||(Nr.DataType=pc={}));function FW(t){let e=DC(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}Nr.getSchemaTypes=FW;function DC(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(zW.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Nr.getJSONTypes=DC;function qW(t,e){let{gen:r,data:n,opts:i}=t,s=HW(e,i.coerceTypes),o=e.length>0&&!(s.length===0&&e.length===1&&(0,LW.schemaHasRulesForType)(t,e[0]));if(o){let a=zw(e,n,i.strictNumbers,pc.Wrong);r.if(a,()=>{s.length?ZW(t,e,s):Lw(t)})}return o}Nr.coerceAndCheckDataType=qW;var jC=new Set(["string","number","integer","boolean","null"]);function HW(t,e){return e?t.filter(r=>jC.has(r)||e==="array"&&r==="array"):[]}function ZW(t,e,r){let{gen:n,data:i,opts:s}=t,o=n.let("dataType",(0,je._)`typeof ${i}`),a=n.let("coerced",(0,je._)`undefined`);s.coerceTypes==="array"&&n.if((0,je._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,je._)`${i}[0]`).assign(o,(0,je._)`typeof ${i}`).if(zw(e,i,s.strictNumbers),()=>n.assign(a,i))),n.if((0,je._)`${a} !== undefined`);for(let u of r)(jC.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);n.else(),Lw(t),n.endIf(),n.if((0,je._)`${a} !== undefined`,()=>{n.assign(i,a),BW(t,a)});function c(u){switch(u){case"string":n.elseIf((0,je._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,je._)`"" + ${i}`).elseIf((0,je._)`${i} === null`).assign(a,(0,je._)`""`);return;case"number":n.elseIf((0,je._)`${o} == "boolean" || ${i} === null || (${o} == "string" && ${i} && ${i} == +${i})`).assign(a,(0,je._)`+${i}`);return;case"integer":n.elseIf((0,je._)`${o} === "boolean" || ${i} === null || (${o} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(a,(0,je._)`+${i}`);return;case"boolean":n.elseIf((0,je._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(a,!1).elseIf((0,je._)`${i} === "true" || ${i} === 1`).assign(a,!0);return;case"null":n.elseIf((0,je._)`${i} === "" || ${i} === 0 || ${i} === false`),n.assign(a,null);return;case"array":n.elseIf((0,je._)`${o} === "string" || ${o} === "number" - || ${o} === "boolean" || ${i} === null`).assign(a,(0,je._)`[${i}]`)}}}function PZ({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,je._)`${e} !== undefined`,()=>t.assign((0,je._)`${e}[${r}]`,n))}function Kx(t,e,r,n=Ra.Correct){let i=n===Ra.Correct?je.operators.EQ:je.operators.NEQ,s;switch(t){case"null":return(0,je._)`${e} ${i} null`;case"array":s=(0,je._)`Array.isArray(${e})`;break;case"object":s=(0,je._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":s=o((0,je._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":s=o();break;default:return(0,je._)`typeof ${e} ${i} ${t}`}return n===Ra.Correct?s:(0,je.not)(s);function o(a=je.nil){return(0,je.and)((0,je._)`typeof ${e} == "number"`,a,r?(0,je._)`isFinite(${e})`:je.nil)}}Tr.checkDataType=Kx;function Jx(t,e,r,n){if(t.length===1)return Kx(t[0],e,r,n);let i,s=(0,DO.toHash)(t);if(s.array&&s.object){let o=(0,je._)`typeof ${e} != "object"`;i=s.null?o:(0,je._)`!${e} || ${o}`,delete s.null,delete s.array,delete s.object}else i=je.nil;s.number&&delete s.integer;for(let o in s)i=(0,je.and)(i,Kx(o,e,r,n));return i}Tr.checkDataTypes=Jx;var CZ={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,je._)`{type: ${t}}`:(0,je._)`{type: ${e}}`};function Xx(t){let e=AZ(t);(0,$Z.reportError)(e,CZ)}Tr.reportTypeError=Xx;function AZ(t){let{gen:e,data:r,schema:n}=t,i=(0,DO.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:t}}});var UO=T(ef=>{"use strict";Object.defineProperty(ef,"__esModule",{value:!0});ef.assignDefaults=void 0;var Oa=Le(),NZ=rt();function MZ(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let i in r)LO(t,i,r[i].default);else e==="array"&&Array.isArray(n)&&n.forEach((i,s)=>LO(t,s,i.default))}ef.assignDefaults=MZ;function LO(t,e,r){let{gen:n,compositeRule:i,data:s,opts:o}=t;if(r===void 0)return;let a=(0,Oa._)`${s}${(0,Oa.getProperty)(e)}`;if(i){(0,NZ.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,Oa._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,Oa._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,Oa._)`${a} = ${(0,Oa.stringify)(r)}`)}});var Rn=T(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 Pt=Le(),Yx=rt(),$s=Zi(),DZ=rt();function jZ(t,e){let{gen:r,data:n,it:i}=t;r.if(eS(r,n,e,i.opts.ownProperties),()=>{t.setParams({missingProperty:(0,Pt._)`${e}`},!0),t.error()})}ht.checkReportMissingProp=jZ;function zZ({gen:t,data:e,it:{opts:r}},n,i){return(0,Pt.or)(...n.map(s=>(0,Pt.and)(eS(t,e,s,r.ownProperties),(0,Pt._)`${i} = ${s}`)))}ht.checkMissingProp=zZ;function LZ(t,e){t.setParams({missingProperty:e},!0),t.error()}ht.reportMissingProp=LZ;function qO(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Pt._)`Object.prototype.hasOwnProperty`})}ht.hasPropFunc=qO;function Qx(t,e,r){return(0,Pt._)`${qO(t)}.call(${e}, ${r})`}ht.isOwnProperty=Qx;function UZ(t,e,r,n){let i=(0,Pt._)`${e}${(0,Pt.getProperty)(r)} !== undefined`;return n?(0,Pt._)`${i} && ${Qx(t,e,r)}`:i}ht.propertyInData=UZ;function eS(t,e,r,n){let i=(0,Pt._)`${e}${(0,Pt.getProperty)(r)} === undefined`;return n?(0,Pt.or)(i,(0,Pt.not)(Qx(t,e,r))):i}ht.noPropertyInData=eS;function FO(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ht.allSchemaProperties=FO;function qZ(t,e){return FO(e).filter(r=>!(0,Yx.alwaysValidSchema)(t,e[r]))}ht.schemaProperties=qZ;function FZ({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:s},it:o},a,c,u){let l=u?(0,Pt._)`${t}, ${e}, ${n}${i}`:e,d=[[$s.default.instancePath,(0,Pt.strConcat)($s.default.instancePath,s)],[$s.default.parentData,o.parentData],[$s.default.parentDataProperty,o.parentDataProperty],[$s.default.rootData,$s.default.rootData]];o.opts.dynamicRef&&d.push([$s.default.dynamicAnchors,$s.default.dynamicAnchors]);let p=(0,Pt._)`${l}, ${r.object(...d)}`;return c!==Pt.nil?(0,Pt._)`${a}.call(${c}, ${p})`:(0,Pt._)`${a}(${p})`}ht.callValidateCode=FZ;var HZ=(0,Pt._)`new RegExp`;function ZZ({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:i}=e.code,s=i(r,n);return t.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,Pt._)`${i.code==="new RegExp"?HZ:(0,DZ.useFunc)(t,i)}(${r}, ${n})`})}ht.usePattern=ZZ;function BZ(t){let{gen:e,data:r,keyword:n,it:i}=t,s=e.name("valid");if(i.allErrors){let a=e.let("valid",!0);return o(()=>e.assign(a,!1)),a}return e.var(s,!0),o(()=>e.break()),s;function o(a){let c=e.const("len",(0,Pt._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:Yx.Type.Num},s),e.if((0,Pt.not)(s),a)})}}ht.validateArray=BZ;function VZ(t){let{gen:e,schema:r,keyword:n,it:i}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Yx.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let l=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(o,(0,Pt._)`${o} || ${a}`),t.mergeValidEvaluated(l,a)||e.if((0,Pt.not)(o))})),t.result(o,()=>t.reset(),()=>t.error(!0))}ht.validateUnion=VZ});var BO=T(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.validateKeywordUsage=li.validSchemaType=li.funcKeywordCode=li.macroKeywordCode=void 0;var qr=Le(),lo=Zi(),GZ=Rn(),WZ=bl();function KZ(t,e){let{gen:r,keyword:n,schema:i,parentSchema:s,it:o}=t,a=e.macro.call(o.self,i,s,o),c=ZO(r,n,a);o.opts.validateSchema!==!1&&o.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:qr.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}li.macroKeywordCode=KZ;function JZ(t,e){var r;let{gen:n,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=t;YZ(c,e);let u=!a&&e.compile?e.compile.call(c.self,s,o,c):e.validate,l=ZO(n,i,u),d=n.let("valid");t.block$data(d,p),t.ok((r=e.valid)!==null&&r!==void 0?r:d);function p(){if(e.errors===!1)g(),e.modifying&&HO(t),h(()=>t.error());else{let v=e.async?m():f();e.modifying&&HO(t),h(()=>XZ(t,v))}}function m(){let v=n.let("ruleErrs",null);return n.try(()=>g((0,qr._)`await `),x=>n.assign(d,!1).if((0,qr._)`${x} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,qr._)`${x}.errors`),()=>n.throw(x))),v}function f(){let v=(0,qr._)`${l}.errors`;return n.assign(v,null),g(qr.nil),v}function g(v=e.async?(0,qr._)`await `:qr.nil){let x=c.opts.passContext?lo.default.this:lo.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(d,(0,qr._)`${v}${(0,GZ.callValidateCode)(t,l,x,b)}`,e.modifying)}function h(v){var x;n.if((0,qr.not)((x=e.valid)!==null&&x!==void 0?x:d),v)}}li.funcKeywordCode=JZ;function HO(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,qr._)`${n.parentData}[${n.parentDataProperty}]`))}function XZ(t,e){let{gen:r}=t;r.if((0,qr._)`Array.isArray(${e})`,()=>{r.assign(lo.default.vErrors,(0,qr._)`${lo.default.vErrors} === null ? ${e} : ${lo.default.vErrors}.concat(${e})`).assign(lo.default.errors,(0,qr._)`${lo.default.vErrors}.length`),(0,WZ.extendErrors)(t)},()=>t.error())}function YZ({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function ZO(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,qr.stringify)(r)})}function QZ(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")}li.validSchemaType=QZ;function eB({schema:t,opts:e,self:r,errSchemaPath:n},i,s){if(Array.isArray(i.keyword)?!i.keyword.includes(s):i.keyword!==s)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${s}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(t[s])){let c=`keyword "${s}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}li.validateKeywordUsage=eB});var GO=T(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});Ts.extendSubschemaMode=Ts.extendSubschemaData=Ts.getSubschema=void 0;var di=Le(),VO=rt();function tB(t,{keyword:e,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:s,topSchemaRef:o}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,di._)`${t.schemaPath}${(0,di.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,di._)`${t.schemaPath}${(0,di.getProperty)(e)}${(0,di.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,VO.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||s===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:o,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}Ts.getSubschema=tB;function rB(t,e,{dataProp:r,dataPropType:n,data:i,dataTypes:s,propertyName:o}){if(i!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=e;if(r!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=e,p=a.let("data",(0,di._)`${e.data}${(0,di.getProperty)(r)}`,!0);c(p),t.errorPath=(0,di.str)`${u}${(0,VO.getErrorPath)(r,n,d.jsPropertySyntax)}`,t.parentDataProperty=(0,di._)`${r}`,t.dataPathArr=[...l,t.parentDataProperty]}if(i!==void 0){let u=i instanceof di.Name?i:a.let("data",i,!0);c(u),o!==void 0&&(t.propertyName=o)}s&&(t.dataTypes=s);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}Ts.extendSubschemaData=rB;function nB(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:s}){n!==void 0&&(t.compositeRule=n),i!==void 0&&(t.createErrors=i),s!==void 0&&(t.allErrors=s),t.jtdDiscriminator=e,t.jtdMetadata=r}Ts.extendSubschemaMode=nB});var tS=T(($ke,WO)=>{"use strict";WO.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,i,s;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!t(e[i],r[i]))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(s=Object.keys(e),n=s.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[i]))return!1;for(i=n;i--!==0;){var o=s[i];if(!t(e[o],r[o]))return!1}return!0}return e!==e&&r!==r}});var JO=T((Tke,KO)=>{"use strict";var Is=KO.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};tf(e,n,i,t,"",t)};Is.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Is.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Is.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Is.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,i,s,o,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,i,s,o,a,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in Is.arrayKeywords)for(var p=0;p{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.getSchemaRefs=Yr.resolveUrl=Yr.normalizeId=Yr._getFullPath=Yr.getFullPath=Yr.inlineRef=void 0;var sB=rt(),oB=tS(),aB=JO(),cB=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function uB(t,e=!0){return typeof t=="boolean"?!0:e===!0?!rS(t):e?XO(t)<=e:!1}Yr.inlineRef=uB;var lB=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function rS(t){for(let e in t){if(lB.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(rS)||typeof r=="object"&&rS(r))return!0}return!1}function XO(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!cB.has(r)&&(typeof t[r]=="object"&&(0,sB.eachItem)(t[r],n=>e+=XO(n)),e===1/0))return 1/0}return e}function YO(t,e="",r){r!==!1&&(e=Pa(e));let n=t.parse(e);return QO(t,n)}Yr.getFullPath=YO;function QO(t,e){return t.serialize(e).split("#")[0]+"#"}Yr._getFullPath=QO;var dB=/#\/?$/;function Pa(t){return t?t.replace(dB,""):""}Yr.normalizeId=Pa;function pB(t,e,r){return r=Pa(r),t.resolve(e,r)}Yr.resolveUrl=pB;var mB=/^[a-z_][-a-z0-9._]*$/i;function fB(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=Pa(t[r]||e),s={"":i},o=YO(n,i,!1),a={},c=new Set;return aB(t,{allKeys:!0},(d,p,m,f)=>{if(f===void 0)return;let g=o+p,h=s[f];typeof d[r]=="string"&&(h=v.call(this,d[r])),x.call(this,d.$anchor),x.call(this,d.$dynamicAnchor),s[p]=h;function v(b){let _=this.opts.uriResolver.resolve;if(b=Pa(h?_(h,b):b),c.has(b))throw l(b);c.add(b);let S=this.refs[b];return typeof S=="string"&&(S=this.refs[S]),typeof S=="object"?u(d,S.schema,b):b!==Pa(g)&&(b[0]==="#"?(u(d,a[b],b),a[b]=d):this.refs[b]=g),b}function x(b){if(typeof b=="string"){if(!mB.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(d,p,m){if(p!==void 0&&!oB(d,p))throw l(m)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Yr.getSchemaRefs=fB});var kl=T(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.getData=Rs.KeywordCxt=Rs.validateFunctionCode=void 0;var i1=AO(),e1=xl(),iS=Wx(),rf=xl(),hB=UO(),El=BO(),nS=GO(),fe=Le(),Re=Zi(),gB=Sl(),Bi=rt(),wl=bl();function vB(t){if(a1(t)&&(c1(t),o1(t))){bB(t);return}s1(t,()=>(0,i1.topBoolOrEmptySchema)(t))}Rs.validateFunctionCode=vB;function s1({gen:t,validateName:e,schema:r,schemaEnv:n,opts:i},s){i.code.es5?t.func(e,(0,fe._)`${Re.default.data}, ${Re.default.valCxt}`,n.$async,()=>{t.code((0,fe._)`"use strict"; ${t1(r,i)}`),_B(t,i),t.code(s)}):t.func(e,(0,fe._)`${Re.default.data}, ${yB(i)}`,n.$async,()=>t.code(t1(r,i)).code(s))}function yB(t){return(0,fe._)`{${Re.default.instancePath}="", ${Re.default.parentData}, ${Re.default.parentDataProperty}, ${Re.default.rootData}=${Re.default.data}${t.dynamicRef?(0,fe._)`, ${Re.default.dynamicAnchors}={}`:fe.nil}}={}`}function _B(t,e){t.if(Re.default.valCxt,()=>{t.var(Re.default.instancePath,(0,fe._)`${Re.default.valCxt}.${Re.default.instancePath}`),t.var(Re.default.parentData,(0,fe._)`${Re.default.valCxt}.${Re.default.parentData}`),t.var(Re.default.parentDataProperty,(0,fe._)`${Re.default.valCxt}.${Re.default.parentDataProperty}`),t.var(Re.default.rootData,(0,fe._)`${Re.default.valCxt}.${Re.default.rootData}`),e.dynamicRef&&t.var(Re.default.dynamicAnchors,(0,fe._)`${Re.default.valCxt}.${Re.default.dynamicAnchors}`)},()=>{t.var(Re.default.instancePath,(0,fe._)`""`),t.var(Re.default.parentData,(0,fe._)`undefined`),t.var(Re.default.parentDataProperty,(0,fe._)`undefined`),t.var(Re.default.rootData,Re.default.data),e.dynamicRef&&t.var(Re.default.dynamicAnchors,(0,fe._)`{}`)})}function bB(t){let{schema:e,opts:r,gen:n}=t;s1(t,()=>{r.$comment&&e.$comment&&l1(t),kB(t),n.let(Re.default.vErrors,null),n.let(Re.default.errors,0),r.unevaluated&&xB(t),u1(t),IB(t)})}function xB(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 t1(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 SB(t,e){if(a1(t)&&(c1(t),o1(t))){wB(t,e);return}(0,i1.boolOrEmptySchema)(t,e)}function o1({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 a1(t){return typeof t.schema!="boolean"}function wB(t,e){let{schema:r,gen:n,opts:i}=t;i.$comment&&r.$comment&&l1(t),$B(t),TB(t);let s=n.const("_errs",Re.default.errors);u1(t,s),n.var(e,(0,fe._)`${s} === ${Re.default.errors}`)}function c1(t){(0,Bi.checkUnknownRules)(t),EB(t)}function u1(t,e){if(t.opts.jtd)return r1(t,[],!1,e);let r=(0,e1.getSchemaTypes)(t.schema),n=(0,e1.coerceAndCheckDataType)(t,r);r1(t,r,!n,e)}function EB(t){let{schema:e,errSchemaPath:r,opts:n,self:i}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,Bi.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function kB(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Bi.checkStrictMode)(t,"default is ignored in the schema root")}function $B(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,gB.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function TB(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function l1({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:i}){let s=r.$comment;if(i.$comment===!0)t.code((0,fe._)`${Re.default.self}.logger.log(${s})`);else if(typeof i.$comment=="function"){let o=(0,fe.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,fe._)`${Re.default.self}.opts.$comment(${s}, ${o}, ${a}.schema)`)}}function IB(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:i,opts:s}=t;r.$async?e.if((0,fe._)`${Re.default.errors} === 0`,()=>e.return(Re.default.data),()=>e.throw((0,fe._)`new ${i}(${Re.default.vErrors})`)):(e.assign((0,fe._)`${n}.errors`,Re.default.vErrors),s.unevaluated&&RB(t),e.return((0,fe._)`${Re.default.errors} === 0`))}function RB({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 r1(t,e,r,n){let{gen:i,schema:s,data:o,allErrors:a,opts:c,self:u}=t,{RULES:l}=u;if(s.$ref&&(c.ignoreKeywordsWithRef||!(0,Bi.schemaHasRulesButRef)(s,l))){i.block(()=>p1(t,"$ref",l.all.$ref.definition));return}c.jtd||OB(t,e),i.block(()=>{for(let p of l.rules)d(p);d(l.post)});function d(p){(0,iS.shouldUseGroup)(s,p)&&(p.type?(i.if((0,rf.checkDataType)(p.type,o,c.strictNumbers)),n1(t,p),e.length===1&&e[0]===p.type&&r&&(i.else(),(0,rf.reportTypeError)(t)),i.endIf()):n1(t,p),a||i.if((0,fe._)`${Re.default.errors} === ${n||0}`))}}function n1(t,e){let{gen:r,schema:n,opts:{useDefaults:i}}=t;i&&(0,hB.assignDefaults)(t,e.type),r.block(()=>{for(let s of e.rules)(0,iS.shouldUseRule)(n,s)&&p1(t,s.keyword,s.definition,e.type)})}function OB(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(PB(t,e),t.opts.allowUnionTypes||CB(t,e),AB(t,t.dataTypes))}function PB(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{d1(t.dataTypes,r)||sS(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),MB(t,e)}}function CB(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&sS(t,"use allowUnionTypes to allow union type keyword")}function AB(t,e){let r=t.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,iS.shouldUseRule)(t.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>NB(e,o))&&sS(t,`missing type "${s.join(",")}" for keyword "${n}"`)}}}function NB(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function d1(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function MB(t,e){let r=[];for(let n of t.dataTypes)d1(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function sS(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,Bi.checkStrictMode)(t,e,t.opts.strictTypes)}var nf=class{constructor(e,r,n){if((0,El.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,Bi.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",m1(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,El.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",Re.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?wl.reportExtraError:wl.reportError)(this,this.def.error,r)}$dataError(){(0,wl.reportError)(this,this.def.$dataError||wl.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,wl.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:i,schemaType:s,def:o}=this;n.if((0,fe.or)((0,fe._)`${i} === undefined`,r)),e!==fe.nil&&n.assign(e,!0),(s.length||o.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:i,it:s}=this;return(0,fe.or)(o(),a());function o(){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,s.opts.strictNumbers,rf.DataType.Wrong)}`}return fe.nil}function a(){if(i.validateSchema){let c=e.scopeValue("validate$data",{ref:i.validateSchema});return(0,fe._)`!${c}(${r})`}return fe.nil}}subschema(e,r){let n=(0,nS.getSubschema)(this.it,e);(0,nS.extendSubschemaData)(n,this.it,e),(0,nS.extendSubschemaMode)(n,e);let i={...this.it,...n,items:void 0,props:void 0};return SB(i,r),i}mergeEvaluated(e,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Bi.mergeEvaluated.props(i,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=Bi.mergeEvaluated.items(i,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(e,fe.Name)),!0}};Rs.KeywordCxt=nf;function p1(t,e,r,n){let i=new nf(t,r,e);"code"in r?r.code(i,n):i.$data&&r.validate?(0,El.funcKeywordCode)(i,r):"macro"in r?(0,El.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,El.funcKeywordCode)(i,r)}var DB=/^\/(?:[^~]|~0|~1)*$/,jB=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function m1(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let i,s;if(t==="")return Re.default.rootData;if(t[0]==="/"){if(!DB.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);i=t,s=Re.default.rootData}else{let u=jB.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+u[1];if(i=u[2],i==="#"){if(l>=e)throw new Error(c("property/index",l));return n[e-l]}if(l>e)throw new Error(c("data",l));if(s=r[e-l],!i)return s}let o=s,a=i.split("/");for(let u of a)u&&(s=(0,fe._)`${s}${(0,fe.getProperty)((0,Bi.unescapeJsonPointer)(u))}`,o=(0,fe._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${e}`}}Rs.getData=m1});var sf=T(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});var oS=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};aS.default=oS});var $l=T(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});var cS=Sl(),uS=class extends Error{constructor(e,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,cS.resolveUrl)(e,r,n),this.missingSchema=(0,cS.normalizeId)((0,cS.getFullPath)(e,this.missingRef))}};lS.default=uS});var af=T(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});On.resolveSchema=On.getCompilingSchema=On.resolveRef=On.compileSchema=On.SchemaEnv=void 0;var Gn=Le(),zB=sf(),po=Zi(),Wn=Sl(),f1=rt(),LB=kl(),Ca=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,Wn.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};On.SchemaEnv=Ca;function pS(t){let e=h1.call(this,t);if(e)return e;let r=(0,Wn.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new Gn.CodeGen(this.scope,{es5:n,lines:i,ownProperties:s}),a;t.$async&&(a=o.scopeValue("Error",{ref:zB.default,code:(0,Gn._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");t.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:po.default.data,parentData:po.default.parentData,parentDataProperty:po.default.parentDataProperty,dataNames:[po.default.data],dataPathArr:[Gn.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,Gn.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:Gn.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Gn._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,LB.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(po.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let m=new Function(`${po.default.self}`,`${po.default.scope}`,l)(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:d,scopeValues:o._values}),this.opts.unevaluated){let{props:f,items:g}=u;m.evaluated={props:f instanceof Gn.Name?void 0:f,items:g instanceof Gn.Name?void 0:g,dynamicProps:f instanceof Gn.Name,dynamicItems:g instanceof Gn.Name},m.source&&(m.source.evaluated=(0,Gn.stringify)(m.evaluated))}return t.validate=m,t}catch(d){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(t)}}On.compileSchema=pS;function UB(t,e,r){var n;r=(0,Wn.resolveUrl)(this.opts.uriResolver,e,r);let i=t.refs[r];if(i)return i;let s=HB.call(this,t,r);if(s===void 0){let o=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:a}=this.opts;o&&(s=new Ca({schema:o,schemaId:a,root:t,baseId:e}))}if(s!==void 0)return t.refs[r]=qB.call(this,s)}On.resolveRef=UB;function qB(t){return(0,Wn.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:pS.call(this,t)}function h1(t){for(let e of this._compilations)if(FB(e,t))return e}On.getCompilingSchema=h1;function FB(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function HB(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||of.call(this,t,e)}function of(t,e){let r=this.opts.uriResolver.parse(e),n=(0,Wn._getFullPath)(this.opts.uriResolver,r),i=(0,Wn.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===i)return dS.call(this,r,t);let s=(0,Wn.normalizeId)(n),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=of.call(this,t,o);return typeof a?.schema!="object"?void 0:dS.call(this,r,a)}if(typeof o?.schema=="object"){if(o.validate||pS.call(this,o),s===(0,Wn.normalizeId)(e)){let{schema:a}=o,{schemaId:c}=this.opts,u=a[c];return u&&(i=(0,Wn.resolveUrl)(this.opts.uriResolver,i,u)),new Ca({schema:a,schemaId:c,root:t,baseId:i})}return dS.call(this,r,o)}}On.resolveSchema=of;var ZB=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function dS(t,{baseId:e,schema:r,root:n}){var i;if(((i=t.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let a of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,f1.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!ZB.has(a)&&u&&(e=(0,Wn.resolveUrl)(this.opts.uriResolver,e,u))}let s;if(typeof r!="boolean"&&r.$ref&&!(0,f1.schemaHasRulesButRef)(r,this.RULES)){let a=(0,Wn.resolveUrl)(this.opts.uriResolver,e,r.$ref);s=of.call(this,n,a)}let{schemaId:o}=this.opts;if(s=s||new Ca({schema:r,schemaId:o,root:n,baseId:e}),s.schema!==s.root.schema)return s}});var g1=T((Ake,BB)=>{BB.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 fS=T((Nke,b1)=>{"use strict";var VB=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),y1=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);function mS(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 GB=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function v1(t){return t.length=0,!0}function WB(t,e,r){if(t.length){let n=mS(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function KB(t){let e=0,r={error:!1,address:"",zone:""},n=[],i=[],s=!1,o=!1,a=WB;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(s=!0),n.push(":");continue}else if(u==="%"){if(!a(i,n,r))break;a=v1}else{i.push(u);continue}}return i.length&&(a===v1?r.zone=i.join(""):o?n.push(i.join("")):n.push(mS(i))),r.address=n.join(""),r}function _1(t){if(JB(t,":")<2)return{host:t,isIPV6:!1};let e=KB(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 JB(t,e){let r=0;for(let n=0;n{"use strict";var{isUUID:eV}=fS(),tV=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,rV=["http","https","ws","wss","urn","urn:uuid"];function nV(t){return rV.indexOf(t)!==-1}function hS(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 x1(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function S1(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 iV(t){return t.secure=hS(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function sV(t){if((t.port===(hS(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 oV(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(tV);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let i=`${n}:${e.nid||t.nid}`,s=gS(i);t.path=void 0,s&&(t=s.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function aV(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(),i=`${r}:${e.nid||n}`,s=gS(i);s&&(t=s.serialize(t,e));let o=t,a=t.nss;return o.path=`${n||e.nid}:${a}`,e.skipEscape=!0,o}function cV(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!eV(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function uV(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var w1={scheme:"http",domainHost:!0,parse:x1,serialize:S1},lV={scheme:"https",domainHost:w1.domainHost,parse:x1,serialize:S1},cf={scheme:"ws",domainHost:!0,parse:iV,serialize:sV},dV={scheme:"wss",domainHost:cf.domainHost,parse:cf.parse,serialize:cf.serialize},pV={scheme:"urn",parse:oV,serialize:aV,skipNormalize:!0},mV={scheme:"urn:uuid",parse:cV,serialize:uV,skipNormalize:!0},uf={http:w1,https:lV,ws:cf,wss:dV,urn:pV,"urn:uuid":mV};Object.setPrototypeOf(uf,null);function gS(t){return t&&(uf[t]||uf[t.toLowerCase()])||void 0}E1.exports={wsIsSecure:hS,SCHEMES:uf,isValidSchemeName:nV,getSchemeHandler:gS}});var I1=T((Dke,df)=>{"use strict";var{normalizeIPv6:fV,removeDotSegments:Tl,recomposeAuthority:hV,normalizeComponentEncoding:lf,isIPv4:gV,nonSimpleDomain:vV}=fS(),{SCHEMES:yV,getSchemeHandler:$1}=k1();function _V(t,e){return typeof t=="string"?t=pi(Vi(t,e),e):typeof t=="object"&&(t=Vi(pi(t,e),e)),t}function bV(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},i=T1(Vi(t,n),Vi(e,n),n,!0);return n.skipEscape=!0,pi(i,n)}function T1(t,e,r,n){let i={};return n||(t=Vi(pi(t,r),r),e=Vi(pi(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(i.scheme=e.scheme,i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=Tl(e.path||""),i.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=Tl(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=Tl(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?i.path="/"+e.path:t.path?i.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:i.path=e.path,i.path=Tl(i.path)),i.query=e.query):(i.path=t.path,e.query!==void 0?i.query=e.query:i.query=t.query),i.userinfo=t.userinfo,i.host=t.host,i.port=t.port),i.scheme=t.scheme),i.fragment=e.fragment,i}function xV(t,e,r){return typeof t=="string"?(t=unescape(t),t=pi(lf(Vi(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=pi(lf(t,!0),{...r,skipEscape:!0})),typeof e=="string"?(e=unescape(e),e=pi(lf(Vi(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=pi(lf(e,!0),{...r,skipEscape:!0})),t.toLowerCase()===e.toLowerCase()}function pi(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),i=[],s=$1(n.scheme||r.scheme);s&&s.serialize&&s.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let o=hV(r);if(o!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(o),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!s||!s.absolutePath)&&(a=Tl(a)),o===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),i.push(a)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var SV=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Vi(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},i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let s=t.match(SV);if(s){if(n.scheme=s[1],n.userinfo=s[3],n.host=s[4],n.port=parseInt(s[5],10),n.path=s[6]||"",n.query=s[7],n.fragment=s[8],isNaN(n.port)&&(n.port=s[5]),n.host)if(gV(n.host)===!1){let c=fV(n.host);n.host=c.host.toLowerCase(),i=c.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 o=$1(r.scheme||n.scheme);if(!r.unicodeSupport&&(!o||!o.unicodeSupport)&&n.host&&(r.domainHost||o&&o.domainHost)&&i===!1&&vV(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(a){n.error=n.error||"Host's domain name can not be converted to ASCII: "+a}(!o||o&&!o.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=unescape(n.host))),n.path&&(n.path=escape(unescape(n.path))),n.fragment&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),o&&o.parse&&o.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var vS={SCHEMES:yV,normalize:_V,resolve:bV,resolveComponent:T1,equal:xV,serialize:pi,parse:Vi};df.exports=vS;df.exports.default=vS;df.exports.fastUri=vS});var O1=T(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});var R1=I1();R1.code='require("ajv/dist/runtime/uri").default';yS.default=R1});var z1=T(vr=>{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.CodeGen=vr.Name=vr.nil=vr.stringify=vr.str=vr._=vr.KeywordCxt=void 0;var wV=kl();Object.defineProperty(vr,"KeywordCxt",{enumerable:!0,get:function(){return wV.KeywordCxt}});var Aa=Le();Object.defineProperty(vr,"_",{enumerable:!0,get:function(){return Aa._}});Object.defineProperty(vr,"str",{enumerable:!0,get:function(){return Aa.str}});Object.defineProperty(vr,"stringify",{enumerable:!0,get:function(){return Aa.stringify}});Object.defineProperty(vr,"nil",{enumerable:!0,get:function(){return Aa.nil}});Object.defineProperty(vr,"Name",{enumerable:!0,get:function(){return Aa.Name}});Object.defineProperty(vr,"CodeGen",{enumerable:!0,get:function(){return Aa.CodeGen}});var EV=sf(),M1=$l(),kV=Gx(),Il=af(),$V=Le(),Rl=Sl(),pf=xl(),bS=rt(),P1=g1(),TV=O1(),D1=(t,e)=>new RegExp(t,e);D1.code="new RegExp";var IV=["removeAdditional","useDefaults","coerceTypes"],RV=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),OV={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."},PV={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},C1=200;function CV(t){var e,r,n,i,s,o,a,c,u,l,d,p,m,f,g,h,v,x,b,_,S,w,E,$,R;let A=t.strict,N=(e=t.code)===null||e===void 0?void 0:e.optimize,U=N===!0||N===void 0?1:N||0,W=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:D1,j=(i=t.uriResolver)!==null&&i!==void 0?i:TV.default;return{strictSchema:(o=(s=t.strictSchema)!==null&&s!==void 0?s:A)!==null&&o!==void 0?o:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:A)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=t.strictTypes)!==null&&u!==void 0?u:A)!==null&&l!==void 0?l:"log",strictTuples:(p=(d=t.strictTuples)!==null&&d!==void 0?d:A)!==null&&p!==void 0?p:"log",strictRequired:(f=(m=t.strictRequired)!==null&&m!==void 0?m:A)!==null&&f!==void 0?f:!1,code:t.code?{...t.code,optimize:U,regExp:W}:{optimize:U,regExp:W},loopRequired:(g=t.loopRequired)!==null&&g!==void 0?g:C1,loopEnum:(h=t.loopEnum)!==null&&h!==void 0?h:C1,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(x=t.messages)!==null&&x!==void 0?x:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(_=t.schemaId)!==null&&_!==void 0?_:"$id",addUsedSchema:(S=t.addUsedSchema)!==null&&S!==void 0?S:!0,validateSchema:(w=t.validateSchema)!==null&&w!==void 0?w:!0,validateFormats:(E=t.validateFormats)!==null&&E!==void 0?E:!0,unicodeRegExp:($=t.unicodeRegExp)!==null&&$!==void 0?$:!0,int32range:(R=t.int32range)!==null&&R!==void 0?R:!0,uriResolver:j}}var Ol=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...CV(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new $V.ValueScope({scope:{},prefixes:RV,es5:r,lines:n}),this.logger=zV(e.logger);let i=e.validateFormats;e.validateFormats=!1,this.RULES=(0,kV.getRules)(),A1.call(this,OV,e,"NOT SUPPORTED"),A1.call(this,PV,e,"DEPRECATED","warn"),this._metaOpts=DV.call(this),e.formats&&NV.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&MV.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),AV.call(this),e.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,i=P1;n==="id"&&(i={...P1},i.id=i.$id,delete i.$id),r&&e&&this.addMetaSchema(i,i[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 i=n(r);return"$async"in n||(this.errors=n.errors),i}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 i.call(this,e,r);async function i(l,d){await s.call(this,l.$schema);let p=this._addSchema(l,d);return p.validate||o.call(this,p)}async function s(l){l&&!this.getSchema(l)&&await i.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof M1.default))throw d;return a.call(this,d),await c.call(this,d.missingSchema),o.call(this,l)}}function a({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await s.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,r)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(e,r,n,i=this.opts.validateSchema){if(Array.isArray(e)){for(let o of e)this.addSchema(o,void 0,n,i);return this}let s;if(typeof e=="object"){let{schemaId:o}=this.opts;if(s=e[o],s!==void 0&&typeof s!="string")throw new Error(`schema ${o} must be string`)}return r=(0,Rl.normalizeId)(r||s),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,i,!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 i=this.validate(n,e);if(!i&&r){let s="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(s);else throw new Error(s)}return i}getSchema(e){let r;for(;typeof(r=N1.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,i=new Il.SchemaEnv({schema:{},schemaId:n});if(r=Il.resolveSchema.call(this,i,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=N1.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,Rl.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(UV.call(this,n,r),!r)return(0,bS.eachItem)(n,s=>_S.call(this,s)),this;FV.call(this,r);let i={...r,type:(0,pf.getJSONTypes)(r.type),schemaType:(0,pf.getJSONTypes)(r.schemaType)};return(0,bS.eachItem)(n,i.type.length===0?s=>_S.call(this,s,i):s=>i.type.forEach(o=>_S.call(this,s,i,o))),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 i=n.rules.findIndex(s=>s.keyword===e);i>=0&&n.rules.splice(i,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(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,s)=>i+r+s)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of r){let s=i.split("/").slice(1),o=e;for(let a of s)o=o[a];for(let a in n){let c=n[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[a];u&&l&&(o[a]=j1(l))}}return e}_removeAllSchemas(e,r){for(let n in e){let i=e[n];(!r||r.test(n))&&(typeof i=="string"?delete e[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete e[n]))}}_addSchema(e,r,n,i=this.opts.validateSchema,s=this.opts.addUsedSchema){let o,{schemaId:a}=this.opts;if(typeof e=="object")o=e[a];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,Rl.normalizeId)(o||n);let u=Rl.getSchemaRefs.call(this,e,n);return c=new Il.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),s&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&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):Il.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{Il.compileSchema.call(this,e)}finally{this.opts=r}}};Ol.ValidationError=EV.default;Ol.MissingRefError=M1.default;vr.default=Ol;function A1(t,e,r,n="error"){for(let i in t){let s=i;s in e&&this.logger[n](`${r}: option ${i}. ${t[s]}`)}}function N1(t){return t=(0,Rl.normalizeId)(t),this.schemas[t]||this.refs[t]}function AV(){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 NV(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function MV(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 DV(){let t={...this.opts};for(let e of IV)delete t[e];return t}var jV={log(){},warn(){},error(){}};function zV(t){if(t===!1)return jV;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 LV=/^[a-z_$][a-z0-9_$:-]*$/i;function UV(t,e){let{RULES:r}=this;if((0,bS.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!LV.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 _S(t,e,r){var n;let i=e?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:s}=this,o=i?s.post:s.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},s.rules.push(o)),s.keywords[t]=!0,!e)return;let a={keyword:t,definition:{...e,type:(0,pf.getJSONTypes)(e.type),schemaType:(0,pf.getJSONTypes)(e.schemaType)}};e.before?qV.call(this,o,a,e.before):o.rules.push(a),s.all[t]=a,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function qV(t,e,r){let n=t.rules.findIndex(i=>i.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function FV(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=j1(e)),t.validateSchema=this.compile(e,!0))}var HV={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function j1(t){return{anyOf:[t,HV]}}});var L1=T(xS=>{"use strict";Object.defineProperty(xS,"__esModule",{value:!0});var ZV={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};xS.default=ZV});var H1=T(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.callRef=mo.getValidate=void 0;var BV=$l(),U1=Rn(),Qr=Le(),Na=Zi(),q1=af(),mf=rt(),VV={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:i,schemaEnv:s,validateName:o,opts:a,self:c}=n,{root:u}=s;if((r==="#"||r==="#/")&&i===u.baseId)return d();let l=q1.resolveRef.call(c,u,i,r);if(l===void 0)throw new BV.default(n.opts.uriResolver,i,r);if(l instanceof q1.SchemaEnv)return p(l);return m(l);function d(){if(s===u)return ff(t,o,s,s.$async);let f=e.scopeValue("root",{ref:u});return ff(t,(0,Qr._)`${f}.validate`,u,u.$async)}function p(f){let g=F1(t,f);ff(t,g,f,f.$async)}function m(f){let g=e.scopeValue("schema",a.code.source===!0?{ref:f,code:(0,Qr.stringify)(f)}:{ref:f}),h=e.name("valid"),v=t.subschema({schema:f,dataTypes:[],schemaPath:Qr.nil,topSchemaRef:g,errSchemaPath:r},h);t.mergeEvaluated(v),t.ok(h)}}};function F1(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,Qr._)`${r.scopeValue("wrapper",{ref:e})}.validate`}mo.getValidate=F1;function ff(t,e,r,n){let{gen:i,it:s}=t,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?Na.default.this:Qr.nil;n?l():d();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let f=i.let("valid");i.try(()=>{i.code((0,Qr._)`await ${(0,U1.callValidateCode)(t,e,u)}`),m(e),o||i.assign(f,!0)},g=>{i.if((0,Qr._)`!(${g} instanceof ${s.ValidationError})`,()=>i.throw(g)),p(g),o||i.assign(f,!1)}),t.ok(f)}function d(){t.result((0,U1.callValidateCode)(t,e,u),()=>m(e),()=>p(e))}function p(f){let g=(0,Qr._)`${f}.errors`;i.assign(Na.default.vErrors,(0,Qr._)`${Na.default.vErrors} === null ? ${g} : ${Na.default.vErrors}.concat(${g})`),i.assign(Na.default.errors,(0,Qr._)`${Na.default.vErrors}.length`)}function m(f){var g;if(!s.opts.unevaluated)return;let h=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(s.props!==!0)if(h&&!h.dynamicProps)h.props!==void 0&&(s.props=mf.mergeEvaluated.props(i,h.props,s.props));else{let v=i.var("props",(0,Qr._)`${f}.evaluated.props`);s.props=mf.mergeEvaluated.props(i,v,s.props,Qr.Name)}if(s.items!==!0)if(h&&!h.dynamicItems)h.items!==void 0&&(s.items=mf.mergeEvaluated.items(i,h.items,s.items));else{let v=i.var("items",(0,Qr._)`${f}.evaluated.items`);s.items=mf.mergeEvaluated.items(i,v,s.items,Qr.Name)}}}mo.callRef=ff;mo.default=VV});var Z1=T(SS=>{"use strict";Object.defineProperty(SS,"__esModule",{value:!0});var GV=L1(),WV=H1(),KV=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",GV.default,WV.default];SS.default=KV});var B1=T(wS=>{"use strict";Object.defineProperty(wS,"__esModule",{value:!0});var hf=Le(),Os=hf.operators,gf={maximum:{okStr:"<=",ok:Os.LTE,fail:Os.GT},minimum:{okStr:">=",ok:Os.GTE,fail:Os.LT},exclusiveMaximum:{okStr:"<",ok:Os.LT,fail:Os.GTE},exclusiveMinimum:{okStr:">",ok:Os.GT,fail:Os.LTE}},JV={message:({keyword:t,schemaCode:e})=>(0,hf.str)`must be ${gf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,hf._)`{comparison: ${gf[t].okStr}, limit: ${e}}`},XV={keyword:Object.keys(gf),type:"number",schemaType:"number",$data:!0,error:JV,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,hf._)`${r} ${gf[e].fail} ${n} || isNaN(${r})`)}};wS.default=XV});var V1=T(ES=>{"use strict";Object.defineProperty(ES,"__esModule",{value:!0});var Pl=Le(),YV={message:({schemaCode:t})=>(0,Pl.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,Pl._)`{multipleOf: ${t}}`},QV={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:YV,code(t){let{gen:e,data:r,schemaCode:n,it:i}=t,s=i.opts.multipleOfPrecision,o=e.let("res"),a=s?(0,Pl._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,Pl._)`${o} !== parseInt(${o})`;t.fail$data((0,Pl._)`(${n} === 0 || (${o} = ${r}/${n}, ${a}))`)}};ES.default=QV});var W1=T(kS=>{"use strict";Object.defineProperty(kS,"__esModule",{value:!0});function G1(t){let e=t.length,r=0,n=0,i;for(;n=55296&&i<=56319&&n{"use strict";Object.defineProperty($S,"__esModule",{value:!0});var fo=Le(),eG=rt(),tG=W1(),rG={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,fo.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,fo._)`{limit: ${t}}`},nG={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:rG,code(t){let{keyword:e,data:r,schemaCode:n,it:i}=t,s=e==="maxLength"?fo.operators.GT:fo.operators.LT,o=i.opts.unicode===!1?(0,fo._)`${r}.length`:(0,fo._)`${(0,eG.useFunc)(t.gen,tG.default)}(${r})`;t.fail$data((0,fo._)`${o} ${s} ${n}`)}};$S.default=nG});var J1=T(TS=>{"use strict";Object.defineProperty(TS,"__esModule",{value:!0});var iG=Rn(),sG=rt(),Ma=Le(),oG={message:({schemaCode:t})=>(0,Ma.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Ma._)`{pattern: ${t}}`},aG={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:oG,code(t){let{gen:e,data:r,$data:n,schema:i,schemaCode:s,it:o}=t,a=o.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=o.opts.code,u=c.code==="new RegExp"?(0,Ma._)`new RegExp`:(0,sG.useFunc)(e,c),l=e.let("valid");e.try(()=>e.assign(l,(0,Ma._)`${u}(${s}, ${a}).test(${r})`),()=>e.assign(l,!1)),t.fail$data((0,Ma._)`!${l}`)}else{let c=(0,iG.usePattern)(t,i);t.fail$data((0,Ma._)`!${c}.test(${r})`)}}};TS.default=aG});var X1=T(IS=>{"use strict";Object.defineProperty(IS,"__esModule",{value:!0});var Cl=Le(),cG={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Cl.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Cl._)`{limit: ${t}}`},uG={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:cG,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxProperties"?Cl.operators.GT:Cl.operators.LT;t.fail$data((0,Cl._)`Object.keys(${r}).length ${i} ${n}`)}};IS.default=uG});var Y1=T(RS=>{"use strict";Object.defineProperty(RS,"__esModule",{value:!0});var Al=Rn(),Nl=Le(),lG=rt(),dG={message:({params:{missingProperty:t}})=>(0,Nl.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,Nl._)`{missingProperty: ${t}}`},pG={keyword:"required",type:"object",schemaType:"array",$data:!0,error:dG,code(t){let{gen:e,schema:r,schemaCode:n,data:i,$data:s,it:o}=t,{opts:a}=o;if(!s&&r.length===0)return;let c=r.length>=a.loopRequired;if(o.allErrors?u():l(),a.strictRequired){let m=t.parentSchema.properties,{definedProperties:f}=t.it;for(let g of r)if(m?.[g]===void 0&&!f.has(g)){let h=o.schemaEnv.baseId+o.errSchemaPath,v=`required property "${g}" is not defined at "${h}" (strictRequired)`;(0,lG.checkStrictMode)(o,v,o.opts.strictRequired)}}function u(){if(c||s)t.block$data(Nl.nil,d);else for(let m of r)(0,Al.checkReportMissingProp)(t,m)}function l(){let m=e.let("missing");if(c||s){let f=e.let("valid",!0);t.block$data(f,()=>p(m,f)),t.ok(f)}else e.if((0,Al.checkMissingProp)(t,r,m)),(0,Al.reportMissingProp)(t,m),e.else()}function d(){e.forOf("prop",n,m=>{t.setParams({missingProperty:m}),e.if((0,Al.noPropertyInData)(e,i,m,a.ownProperties),()=>t.error())})}function p(m,f){t.setParams({missingProperty:m}),e.forOf(m,n,()=>{e.assign(f,(0,Al.propertyInData)(e,i,m,a.ownProperties)),e.if((0,Nl.not)(f),()=>{t.error(),e.break()})},Nl.nil)}}};RS.default=pG});var Q1=T(OS=>{"use strict";Object.defineProperty(OS,"__esModule",{value:!0});var Ml=Le(),mG={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Ml.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Ml._)`{limit: ${t}}`},fG={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:mG,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxItems"?Ml.operators.GT:Ml.operators.LT;t.fail$data((0,Ml._)`${r}.length ${i} ${n}`)}};OS.default=fG});var vf=T(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0});var eP=tS();eP.code='require("ajv/dist/runtime/equal").default';PS.default=eP});var tP=T(AS=>{"use strict";Object.defineProperty(AS,"__esModule",{value:!0});var CS=xl(),yr=Le(),hG=rt(),gG=vf(),vG={message:({params:{i:t,j:e}})=>(0,yr.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,yr._)`{i: ${t}, j: ${e}}`},yG={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:vG,code(t){let{gen:e,data:r,$data:n,schema:i,parentSchema:s,schemaCode:o,it:a}=t;if(!n&&!i)return;let c=e.let("valid"),u=s.items?(0,CS.getSchemaTypes)(s.items):[];t.block$data(c,l,(0,yr._)`${o} === false`),t.ok(c);function l(){let f=e.let("i",(0,yr._)`${r}.length`),g=e.let("j");t.setParams({i:f,j:g}),e.assign(c,!0),e.if((0,yr._)`${f} > 1`,()=>(d()?p:m)(f,g))}function d(){return u.length>0&&!u.some(f=>f==="object"||f==="array")}function p(f,g){let h=e.name("item"),v=(0,CS.checkDataTypes)(u,h,a.opts.strictNumbers,CS.DataType.Wrong),x=e.const("indices",(0,yr._)`{}`);e.for((0,yr._)`;${f}--;`,()=>{e.let(h,(0,yr._)`${r}[${f}]`),e.if(v,(0,yr._)`continue`),u.length>1&&e.if((0,yr._)`typeof ${h} == "string"`,(0,yr._)`${h} += "_"`),e.if((0,yr._)`typeof ${x}[${h}] == "number"`,()=>{e.assign(g,(0,yr._)`${x}[${h}]`),t.error(),e.assign(c,!1).break()}).code((0,yr._)`${x}[${h}] = ${f}`)})}function m(f,g){let h=(0,hG.useFunc)(e,gG.default),v=e.name("outer");e.label(v).for((0,yr._)`;${f}--;`,()=>e.for((0,yr._)`${g} = ${f}; ${g}--;`,()=>e.if((0,yr._)`${h}(${r}[${f}], ${r}[${g}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};AS.default=yG});var rP=T(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});var NS=Le(),_G=rt(),bG=vf(),xG={message:"must be equal to constant",params:({schemaCode:t})=>(0,NS._)`{allowedValue: ${t}}`},SG={keyword:"const",$data:!0,error:xG,code(t){let{gen:e,data:r,$data:n,schemaCode:i,schema:s}=t;n||s&&typeof s=="object"?t.fail$data((0,NS._)`!${(0,_G.useFunc)(e,bG.default)}(${r}, ${i})`):t.fail((0,NS._)`${s} !== ${r}`)}};MS.default=SG});var nP=T(DS=>{"use strict";Object.defineProperty(DS,"__esModule",{value:!0});var Dl=Le(),wG=rt(),EG=vf(),kG={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Dl._)`{allowedValues: ${t}}`},$G={keyword:"enum",schemaType:"array",$data:!0,error:kG,code(t){let{gen:e,data:r,$data:n,schema:i,schemaCode:s,it:o}=t;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let a=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,wG.useFunc)(e,EG.default)),l;if(a||n)l=e.let("valid"),t.block$data(l,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let m=e.const("vSchema",s);l=(0,Dl.or)(...i.map((f,g)=>p(m,g)))}t.pass(l);function d(){e.assign(l,!1),e.forOf("v",s,m=>e.if((0,Dl._)`${u()}(${r}, ${m})`,()=>e.assign(l,!0).break()))}function p(m,f){let g=i[f];return typeof g=="object"&&g!==null?(0,Dl._)`${u()}(${r}, ${m}[${f}])`:(0,Dl._)`${r} === ${g}`}}};DS.default=$G});var iP=T(jS=>{"use strict";Object.defineProperty(jS,"__esModule",{value:!0});var TG=B1(),IG=V1(),RG=K1(),OG=J1(),PG=X1(),CG=Y1(),AG=Q1(),NG=tP(),MG=rP(),DG=nP(),jG=[TG.default,IG.default,RG.default,OG.default,PG.default,CG.default,AG.default,NG.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},MG.default,DG.default];jS.default=jG});var LS=T(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});jl.validateAdditionalItems=void 0;var ho=Le(),zS=rt(),zG={message:({params:{len:t}})=>(0,ho.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,ho._)`{limit: ${t}}`},LG={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:zG,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,zS.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}sP(t,n)}};function sP(t,e){let{gen:r,schema:n,data:i,keyword:s,it:o}=t;o.items=!0;let a=r.const("len",(0,ho._)`${i}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,ho._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,zS.alwaysValidSchema)(o,n)){let u=r.var("valid",(0,ho._)`${a} <= ${e.length}`);r.if((0,ho.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,l=>{t.subschema({keyword:s,dataProp:l,dataPropType:zS.Type.Num},u),o.allErrors||r.if((0,ho.not)(u),()=>r.break())})}}jl.validateAdditionalItems=sP;jl.default=LG});var US=T(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.validateTuple=void 0;var oP=Le(),yf=rt(),UG=Rn(),qG={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return aP(t,"additionalItems",e);r.items=!0,!(0,yf.alwaysValidSchema)(r,e)&&t.ok((0,UG.validateArray)(t))}};function aP(t,e,r=t.schema){let{gen:n,parentSchema:i,data:s,keyword:o,it:a}=t;l(i),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=yf.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,oP._)`${s}.length`);r.forEach((d,p)=>{(0,yf.alwaysValidSchema)(a,d)||(n.if((0,oP._)`${u} > ${p}`,()=>t.subschema({keyword:o,schemaProp:p,dataProp:p},c)),t.ok(c))});function l(d){let{opts:p,errSchemaPath:m}=a,f=r.length,g=f===d.minItems&&(f===d.maxItems||d[e]===!1);if(p.strictTuples&&!g){let h=`"${o}" is ${f}-tuple, but minItems or maxItems/${e} are not specified or different at path "${m}"`;(0,yf.checkStrictMode)(a,h,p.strictTuples)}}}zl.validateTuple=aP;zl.default=qG});var cP=T(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0});var FG=US(),HG={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,FG.validateTuple)(t,"items")};qS.default=HG});var lP=T(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});var uP=Le(),ZG=rt(),BG=Rn(),VG=LS(),GG={message:({params:{len:t}})=>(0,uP.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,uP._)`{limit: ${t}}`},WG={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:GG,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:i}=r;n.items=!0,!(0,ZG.alwaysValidSchema)(n,e)&&(i?(0,VG.validateAdditionalItems)(t,i):t.ok((0,BG.validateArray)(t)))}};FS.default=WG});var dP=T(HS=>{"use strict";Object.defineProperty(HS,"__esModule",{value:!0});var Pn=Le(),_f=rt(),KG={message:({params:{min:t,max:e}})=>e===void 0?(0,Pn.str)`must contain at least ${t} valid item(s)`:(0,Pn.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Pn._)`{minContains: ${t}}`:(0,Pn._)`{minContains: ${t}, maxContains: ${e}}`},JG={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:KG,code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:s}=t,o,a,{minContains:c,maxContains:u}=n;s.opts.next?(o=c===void 0?1:c,a=u):o=1;let l=e.const("len",(0,Pn._)`${i}.length`);if(t.setParams({min:o,max:a}),a===void 0&&o===0){(0,_f.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,_f.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,_f.alwaysValidSchema)(s,r)){let g=(0,Pn._)`${l} >= ${o}`;a!==void 0&&(g=(0,Pn._)`${g} && ${l} <= ${a}`),t.pass(g);return}s.items=!0;let d=e.name("valid");a===void 0&&o===1?m(d,()=>e.if(d,()=>e.break())):o===0?(e.let(d,!0),a!==void 0&&e.if((0,Pn._)`${i}.length > 0`,p)):(e.let(d,!1),p()),t.result(d,()=>t.reset());function p(){let g=e.name("_valid"),h=e.let("count",0);m(g,()=>e.if(g,()=>f(h)))}function m(g,h){e.forRange("i",0,l,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:_f.Type.Num,compositeRule:!0},g),h()})}function f(g){e.code((0,Pn._)`${g}++`),a===void 0?e.if((0,Pn._)`${g} >= ${o}`,()=>e.assign(d,!0).break()):(e.if((0,Pn._)`${g} > ${a}`,()=>e.assign(d,!1).break()),o===1?e.assign(d,!0):e.if((0,Pn._)`${g} >= ${o}`,()=>e.assign(d,!0)))}}};HS.default=JG});var fP=T(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.validateSchemaDeps=mi.validatePropertyDeps=mi.error=void 0;var ZS=Le(),XG=rt(),Ll=Rn();mi.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,ZS.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,ZS._)`{property: ${t}, + || ${o} === "boolean" || ${i} === null`).assign(a,(0,je._)`[${i}]`)}}}function BW({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,je._)`${e} !== undefined`,()=>t.assign((0,je._)`${e}[${r}]`,n))}function jw(t,e,r,n=pc.Correct){let i=n===pc.Correct?je.operators.EQ:je.operators.NEQ,s;switch(t){case"null":return(0,je._)`${e} ${i} null`;case"array":s=(0,je._)`Array.isArray(${e})`;break;case"object":s=(0,je._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":s=o((0,je._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":s=o();break;default:return(0,je._)`typeof ${e} ${i} ${t}`}return n===pc.Correct?s:(0,je.not)(s);function o(a=je.nil){return(0,je.and)((0,je._)`typeof ${e} == "number"`,a,r?(0,je._)`isFinite(${e})`:je.nil)}}Nr.checkDataType=jw;function zw(t,e,r,n){if(t.length===1)return jw(t[0],e,r,n);let i,s=(0,MC.toHash)(t);if(s.array&&s.object){let o=(0,je._)`typeof ${e} != "object"`;i=s.null?o:(0,je._)`!${e} || ${o}`,delete s.null,delete s.array,delete s.object}else i=je.nil;s.number&&delete s.integer;for(let o in s)i=(0,je.and)(i,jw(o,e,r,n));return i}Nr.checkDataTypes=zw;var GW={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,je._)`{type: ${t}}`:(0,je._)`{type: ${e}}`};function Lw(t){let e=WW(t);(0,UW.reportError)(e,GW)}Nr.reportTypeError=Lw;function WW(t){let{gen:e,data:r,schema:n}=t,i=(0,MC.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:t}}});var LC=$(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});fh.assignDefaults=void 0;var fc=Ue(),VW=st();function KW(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let i in r)zC(t,i,r[i].default);else e==="array"&&Array.isArray(n)&&n.forEach((i,s)=>zC(t,s,i.default))}fh.assignDefaults=KW;function zC(t,e,r){let{gen:n,compositeRule:i,data:s,opts:o}=t;if(r===void 0)return;let a=(0,fc._)`${s}${(0,fc.getProperty)(e)}`;if(i){(0,VW.checkStrictMode)(t,`default is ignored for: ${a}`);return}let c=(0,fc._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,fc._)`${c} || ${a} === null || ${a} === ""`),n.if(c,(0,fc._)`${a} = ${(0,fc.stringify)(r)}`)}});var Fn=$(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});gt.validateUnion=gt.validateArray=gt.usePattern=gt.callValidateCode=gt.schemaProperties=gt.allSchemaProperties=gt.noPropertyInData=gt.propertyInData=gt.isOwnProperty=gt.hasPropFunc=gt.reportMissingProp=gt.checkMissingProp=gt.checkReportMissingProp=void 0;var Ct=Ue(),Uw=st(),eo=gs(),JW=st();function XW(t,e){let{gen:r,data:n,it:i}=t;r.if(qw(r,n,e,i.opts.ownProperties),()=>{t.setParams({missingProperty:(0,Ct._)`${e}`},!0),t.error()})}gt.checkReportMissingProp=XW;function YW({gen:t,data:e,it:{opts:r}},n,i){return(0,Ct.or)(...n.map(s=>(0,Ct.and)(qw(t,e,s,r.ownProperties),(0,Ct._)`${i} = ${s}`)))}gt.checkMissingProp=YW;function QW(t,e){t.setParams({missingProperty:e},!0),t.error()}gt.reportMissingProp=QW;function UC(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Ct._)`Object.prototype.hasOwnProperty`})}gt.hasPropFunc=UC;function Fw(t,e,r){return(0,Ct._)`${UC(t)}.call(${e}, ${r})`}gt.isOwnProperty=Fw;function eV(t,e,r,n){let i=(0,Ct._)`${e}${(0,Ct.getProperty)(r)} !== undefined`;return n?(0,Ct._)`${i} && ${Fw(t,e,r)}`:i}gt.propertyInData=eV;function qw(t,e,r,n){let i=(0,Ct._)`${e}${(0,Ct.getProperty)(r)} === undefined`;return n?(0,Ct.or)(i,(0,Ct.not)(Fw(t,e,r))):i}gt.noPropertyInData=qw;function FC(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}gt.allSchemaProperties=FC;function tV(t,e){return FC(e).filter(r=>!(0,Uw.alwaysValidSchema)(t,e[r]))}gt.schemaProperties=tV;function rV({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:s},it:o},a,c,u){let l=u?(0,Ct._)`${t}, ${e}, ${n}${i}`:e,d=[[eo.default.instancePath,(0,Ct.strConcat)(eo.default.instancePath,s)],[eo.default.parentData,o.parentData],[eo.default.parentDataProperty,o.parentDataProperty],[eo.default.rootData,eo.default.rootData]];o.opts.dynamicRef&&d.push([eo.default.dynamicAnchors,eo.default.dynamicAnchors]);let p=(0,Ct._)`${l}, ${r.object(...d)}`;return c!==Ct.nil?(0,Ct._)`${a}.call(${c}, ${p})`:(0,Ct._)`${a}(${p})`}gt.callValidateCode=rV;var nV=(0,Ct._)`new RegExp`;function iV({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:i}=e.code,s=i(r,n);return t.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,Ct._)`${i.code==="new RegExp"?nV:(0,JW.useFunc)(t,i)}(${r}, ${n})`})}gt.usePattern=iV;function sV(t){let{gen:e,data:r,keyword:n,it:i}=t,s=e.name("valid");if(i.allErrors){let a=e.let("valid",!0);return o(()=>e.assign(a,!1)),a}return e.var(s,!0),o(()=>e.break()),s;function o(a){let c=e.const("len",(0,Ct._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:Uw.Type.Num},s),e.if((0,Ct.not)(s),a)})}}gt.validateArray=sV;function oV(t){let{gen:e,schema:r,keyword:n,it:i}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Uw.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=e.let("valid",!1),a=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let l=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},a);e.assign(o,(0,Ct._)`${o} || ${a}`),t.mergeValidEvaluated(l,a)||e.if((0,Ct.not)(o))})),t.result(o,()=>t.reset(),()=>t.error(!0))}gt.validateUnion=oV});var ZC=$(Ai=>{"use strict";Object.defineProperty(Ai,"__esModule",{value:!0});Ai.validateKeywordUsage=Ai.validSchemaType=Ai.funcKeywordCode=Ai.macroKeywordCode=void 0;var Kr=Ue(),Zo=gs(),aV=Fn(),cV=fd();function uV(t,e){let{gen:r,keyword:n,schema:i,parentSchema:s,it:o}=t,a=e.macro.call(o.self,i,s,o),c=HC(r,n,a);o.opts.validateSchema!==!1&&o.self.validateSchema(a,!0);let u=r.name("valid");t.subschema({schema:a,schemaPath:Kr.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}Ai.macroKeywordCode=uV;function lV(t,e){var r;let{gen:n,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=t;pV(c,e);let u=!a&&e.compile?e.compile.call(c.self,s,o,c):e.validate,l=HC(n,i,u),d=n.let("valid");t.block$data(d,p),t.ok((r=e.valid)!==null&&r!==void 0?r:d);function p(){if(e.errors===!1)h(),e.modifying&&qC(t),g(()=>t.error());else{let v=e.async?f():m();e.modifying&&qC(t),g(()=>dV(t,v))}}function f(){let v=n.let("ruleErrs",null);return n.try(()=>h((0,Kr._)`await `),S=>n.assign(d,!1).if((0,Kr._)`${S} instanceof ${c.ValidationError}`,()=>n.assign(v,(0,Kr._)`${S}.errors`),()=>n.throw(S))),v}function m(){let v=(0,Kr._)`${l}.errors`;return n.assign(v,null),h(Kr.nil),v}function h(v=e.async?(0,Kr._)`await `:Kr.nil){let S=c.opts.passContext?Zo.default.this:Zo.default.self,b=!("compile"in e&&!a||e.schema===!1);n.assign(d,(0,Kr._)`${v}${(0,aV.callValidateCode)(t,l,S,b)}`,e.modifying)}function g(v){var S;n.if((0,Kr.not)((S=e.valid)!==null&&S!==void 0?S:d),v)}}Ai.funcKeywordCode=lV;function qC(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Kr._)`${n.parentData}[${n.parentDataProperty}]`))}function dV(t,e){let{gen:r}=t;r.if((0,Kr._)`Array.isArray(${e})`,()=>{r.assign(Zo.default.vErrors,(0,Kr._)`${Zo.default.vErrors} === null ? ${e} : ${Zo.default.vErrors}.concat(${e})`).assign(Zo.default.errors,(0,Kr._)`${Zo.default.vErrors}.length`),(0,cV.extendErrors)(t)},()=>t.error())}function pV({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function HC(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,Kr.stringify)(r)})}function fV(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")}Ai.validSchemaType=fV;function mV({schema:t,opts:e,self:r,errSchemaPath:n},i,s){if(Array.isArray(i.keyword)?!i.keyword.includes(s):i.keyword!==s)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(a=>!Object.prototype.hasOwnProperty.call(t,a)))throw new Error(`parent schema must have dependencies of ${s}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(t[s])){let c=`keyword "${s}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Ai.validateKeywordUsage=mV});var GC=$(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.extendSubschemaMode=to.extendSubschemaData=to.getSubschema=void 0;var Ni=Ue(),BC=st();function hV(t,{keyword:e,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:s,topSchemaRef:o}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let a=t.schema[e];return r===void 0?{schema:a,schemaPath:(0,Ni._)`${t.schemaPath}${(0,Ni.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:a[r],schemaPath:(0,Ni._)`${t.schemaPath}${(0,Ni.getProperty)(e)}${(0,Ni.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,BC.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||s===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:o,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}to.getSubschema=hV;function gV(t,e,{dataProp:r,dataPropType:n,data:i,dataTypes:s,propertyName:o}){if(i!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=e;if(r!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=e,p=a.let("data",(0,Ni._)`${e.data}${(0,Ni.getProperty)(r)}`,!0);c(p),t.errorPath=(0,Ni.str)`${u}${(0,BC.getErrorPath)(r,n,d.jsPropertySyntax)}`,t.parentDataProperty=(0,Ni._)`${r}`,t.dataPathArr=[...l,t.parentDataProperty]}if(i!==void 0){let u=i instanceof Ni.Name?i:a.let("data",i,!0);c(u),o!==void 0&&(t.propertyName=o)}s&&(t.dataTypes=s);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}to.extendSubschemaData=gV;function vV(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:s}){n!==void 0&&(t.compositeRule=n),i!==void 0&&(t.createErrors=i),s!==void 0&&(t.allErrors=s),t.jtdDiscriminator=e,t.jtdMetadata=r}to.extendSubschemaMode=vV});var Hw=$((g1e,WC)=>{"use strict";WC.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,i,s;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!t(e[i],r[i]))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(s=Object.keys(e),n=s.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[i]))return!1;for(i=n;i--!==0;){var o=s[i];if(!t(e[o],r[o]))return!1}return!0}return e!==e&&r!==r}});var KC=$((v1e,VC)=>{"use strict";var ro=VC.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};mh(e,n,i,t,"",t)};ro.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ro.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ro.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ro.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 mh(t,e,r,n,i,s,o,a,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,i,s,o,a,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in ro.arrayKeywords)for(var p=0;p{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.getSchemaRefs=un.resolveUrl=un.normalizeId=un._getFullPath=un.getFullPath=un.inlineRef=void 0;var _V=st(),bV=Hw(),SV=KC(),xV=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function wV(t,e=!0){return typeof t=="boolean"?!0:e===!0?!Zw(t):e?JC(t)<=e:!1}un.inlineRef=wV;var EV=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Zw(t){for(let e in t){if(EV.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(Zw)||typeof r=="object"&&Zw(r))return!0}return!1}function JC(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!xV.has(r)&&(typeof t[r]=="object"&&(0,_V.eachItem)(t[r],n=>e+=JC(n)),e===1/0))return 1/0}return e}function XC(t,e="",r){r!==!1&&(e=mc(e));let n=t.parse(e);return YC(t,n)}un.getFullPath=XC;function YC(t,e){return t.serialize(e).split("#")[0]+"#"}un._getFullPath=YC;var kV=/#\/?$/;function mc(t){return t?t.replace(kV,""):""}un.normalizeId=mc;function TV(t,e,r){return r=mc(r),t.resolve(e,r)}un.resolveUrl=TV;var $V=/^[a-z_][-a-z0-9._]*$/i;function IV(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=mc(t[r]||e),s={"":i},o=XC(n,i,!1),a={},c=new Set;return SV(t,{allKeys:!0},(d,p,f,m)=>{if(m===void 0)return;let h=o+p,g=s[m];typeof d[r]=="string"&&(g=v.call(this,d[r])),S.call(this,d.$anchor),S.call(this,d.$dynamicAnchor),s[p]=g;function v(b){let y=this.opts.uriResolver.resolve;if(b=mc(g?y(g,b):b),c.has(b))throw l(b);c.add(b);let x=this.refs[b];return typeof x=="string"&&(x=this.refs[x]),typeof x=="object"?u(d,x.schema,b):b!==mc(h)&&(b[0]==="#"?(u(d,a[b],b),a[b]=d):this.refs[b]=h),b}function S(b){if(typeof b=="string"){if(!$V.test(b))throw new Error(`invalid anchor "${b}"`);v.call(this,`#${b}`)}}}),a;function u(d,p,f){if(p!==void 0&&!bV(d,p))throw l(f)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}un.getSchemaRefs=IV});var yd=$(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.getData=no.KeywordCxt=no.validateFunctionCode=void 0;var nP=PC(),QC=md(),Gw=Dw(),hh=md(),RV=LC(),vd=ZC(),Bw=GC(),me=Ue(),Re=gs(),OV=hd(),vs=st(),gd=fd();function CV(t){if(oP(t)&&(aP(t),sP(t))){NV(t);return}iP(t,()=>(0,nP.topBoolOrEmptySchema)(t))}no.validateFunctionCode=CV;function iP({gen:t,validateName:e,schema:r,schemaEnv:n,opts:i},s){i.code.es5?t.func(e,(0,me._)`${Re.default.data}, ${Re.default.valCxt}`,n.$async,()=>{t.code((0,me._)`"use strict"; ${eP(r,i)}`),AV(t,i),t.code(s)}):t.func(e,(0,me._)`${Re.default.data}, ${PV(i)}`,n.$async,()=>t.code(eP(r,i)).code(s))}function PV(t){return(0,me._)`{${Re.default.instancePath}="", ${Re.default.parentData}, ${Re.default.parentDataProperty}, ${Re.default.rootData}=${Re.default.data}${t.dynamicRef?(0,me._)`, ${Re.default.dynamicAnchors}={}`:me.nil}}={}`}function AV(t,e){t.if(Re.default.valCxt,()=>{t.var(Re.default.instancePath,(0,me._)`${Re.default.valCxt}.${Re.default.instancePath}`),t.var(Re.default.parentData,(0,me._)`${Re.default.valCxt}.${Re.default.parentData}`),t.var(Re.default.parentDataProperty,(0,me._)`${Re.default.valCxt}.${Re.default.parentDataProperty}`),t.var(Re.default.rootData,(0,me._)`${Re.default.valCxt}.${Re.default.rootData}`),e.dynamicRef&&t.var(Re.default.dynamicAnchors,(0,me._)`${Re.default.valCxt}.${Re.default.dynamicAnchors}`)},()=>{t.var(Re.default.instancePath,(0,me._)`""`),t.var(Re.default.parentData,(0,me._)`undefined`),t.var(Re.default.parentDataProperty,(0,me._)`undefined`),t.var(Re.default.rootData,Re.default.data),e.dynamicRef&&t.var(Re.default.dynamicAnchors,(0,me._)`{}`)})}function NV(t){let{schema:e,opts:r,gen:n}=t;iP(t,()=>{r.$comment&&e.$comment&&uP(t),LV(t),n.let(Re.default.vErrors,null),n.let(Re.default.errors,0),r.unevaluated&&MV(t),cP(t),qV(t)})}function MV(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,me._)`${r}.evaluated`),e.if((0,me._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,me._)`${t.evaluated}.props`,(0,me._)`undefined`)),e.if((0,me._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,me._)`${t.evaluated}.items`,(0,me._)`undefined`))}function eP(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,me._)`/*# sourceURL=${r} */`:me.nil}function DV(t,e){if(oP(t)&&(aP(t),sP(t))){jV(t,e);return}(0,nP.boolOrEmptySchema)(t,e)}function sP({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 oP(t){return typeof t.schema!="boolean"}function jV(t,e){let{schema:r,gen:n,opts:i}=t;i.$comment&&r.$comment&&uP(t),UV(t),FV(t);let s=n.const("_errs",Re.default.errors);cP(t,s),n.var(e,(0,me._)`${s} === ${Re.default.errors}`)}function aP(t){(0,vs.checkUnknownRules)(t),zV(t)}function cP(t,e){if(t.opts.jtd)return tP(t,[],!1,e);let r=(0,QC.getSchemaTypes)(t.schema),n=(0,QC.coerceAndCheckDataType)(t,r);tP(t,r,!n,e)}function zV(t){let{schema:e,errSchemaPath:r,opts:n,self:i}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,vs.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function LV(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,vs.checkStrictMode)(t,"default is ignored in the schema root")}function UV(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,OV.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function FV(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function uP({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:i}){let s=r.$comment;if(i.$comment===!0)t.code((0,me._)`${Re.default.self}.logger.log(${s})`);else if(typeof i.$comment=="function"){let o=(0,me.str)`${n}/$comment`,a=t.scopeValue("root",{ref:e.root});t.code((0,me._)`${Re.default.self}.opts.$comment(${s}, ${o}, ${a}.schema)`)}}function qV(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:i,opts:s}=t;r.$async?e.if((0,me._)`${Re.default.errors} === 0`,()=>e.return(Re.default.data),()=>e.throw((0,me._)`new ${i}(${Re.default.vErrors})`)):(e.assign((0,me._)`${n}.errors`,Re.default.vErrors),s.unevaluated&&HV(t),e.return((0,me._)`${Re.default.errors} === 0`))}function HV({gen:t,evaluated:e,props:r,items:n}){r instanceof me.Name&&t.assign((0,me._)`${e}.props`,r),n instanceof me.Name&&t.assign((0,me._)`${e}.items`,n)}function tP(t,e,r,n){let{gen:i,schema:s,data:o,allErrors:a,opts:c,self:u}=t,{RULES:l}=u;if(s.$ref&&(c.ignoreKeywordsWithRef||!(0,vs.schemaHasRulesButRef)(s,l))){i.block(()=>dP(t,"$ref",l.all.$ref.definition));return}c.jtd||ZV(t,e),i.block(()=>{for(let p of l.rules)d(p);d(l.post)});function d(p){(0,Gw.shouldUseGroup)(s,p)&&(p.type?(i.if((0,hh.checkDataType)(p.type,o,c.strictNumbers)),rP(t,p),e.length===1&&e[0]===p.type&&r&&(i.else(),(0,hh.reportTypeError)(t)),i.endIf()):rP(t,p),a||i.if((0,me._)`${Re.default.errors} === ${n||0}`))}}function rP(t,e){let{gen:r,schema:n,opts:{useDefaults:i}}=t;i&&(0,RV.assignDefaults)(t,e.type),r.block(()=>{for(let s of e.rules)(0,Gw.shouldUseRule)(n,s)&&dP(t,s.keyword,s.definition,e.type)})}function ZV(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(BV(t,e),t.opts.allowUnionTypes||GV(t,e),WV(t,t.dataTypes))}function BV(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{lP(t.dataTypes,r)||Ww(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),KV(t,e)}}function GV(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Ww(t,"use allowUnionTypes to allow union type keyword")}function WV(t,e){let r=t.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,Gw.shouldUseRule)(t.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>VV(e,o))&&Ww(t,`missing type "${s.join(",")}" for keyword "${n}"`)}}}function VV(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function lP(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function KV(t,e){let r=[];for(let n of t.dataTypes)lP(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function Ww(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,vs.checkStrictMode)(t,e,t.opts.strictTypes)}var gh=class{constructor(e,r,n){if((0,vd.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,vs.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",pP(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,vd.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",Re.default.errors))}result(e,r,n){this.failResult((0,me.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,me.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,me._)`${r} !== undefined && (${(0,me.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?gd.reportExtraError:gd.reportError)(this,this.def.error,r)}$dataError(){(0,gd.reportError)(this,this.def.$dataError||gd.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,gd.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=me.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=me.nil,r=me.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:s,def:o}=this;n.if((0,me.or)((0,me._)`${i} === undefined`,r)),e!==me.nil&&n.assign(e,!0),(s.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==me.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:i,it:s}=this;return(0,me.or)(o(),a());function o(){if(n.length){if(!(r instanceof me.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,me._)`${(0,hh.checkDataTypes)(c,r,s.opts.strictNumbers,hh.DataType.Wrong)}`}return me.nil}function a(){if(i.validateSchema){let c=e.scopeValue("validate$data",{ref:i.validateSchema});return(0,me._)`!${c}(${r})`}return me.nil}}subschema(e,r){let n=(0,Bw.getSubschema)(this.it,e);(0,Bw.extendSubschemaData)(n,this.it,e),(0,Bw.extendSubschemaMode)(n,e);let i={...this.it,...n,items:void 0,props:void 0};return DV(i,r),i}mergeEvaluated(e,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=vs.mergeEvaluated.props(i,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=vs.mergeEvaluated.items(i,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(e,me.Name)),!0}};no.KeywordCxt=gh;function dP(t,e,r,n){let i=new gh(t,r,e);"code"in r?r.code(i,n):i.$data&&r.validate?(0,vd.funcKeywordCode)(i,r):"macro"in r?(0,vd.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,vd.funcKeywordCode)(i,r)}var JV=/^\/(?:[^~]|~0|~1)*$/,XV=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function pP(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let i,s;if(t==="")return Re.default.rootData;if(t[0]==="/"){if(!JV.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);i=t,s=Re.default.rootData}else{let u=XV.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+u[1];if(i=u[2],i==="#"){if(l>=e)throw new Error(c("property/index",l));return n[e-l]}if(l>e)throw new Error(c("data",l));if(s=r[e-l],!i)return s}let o=s,a=i.split("/");for(let u of a)u&&(s=(0,me._)`${s}${(0,me.getProperty)((0,vs.unescapeJsonPointer)(u))}`,o=(0,me._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${e}`}}no.getData=pP});var vh=$(Kw=>{"use strict";Object.defineProperty(Kw,"__esModule",{value:!0});var Vw=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};Kw.default=Vw});var _d=$(Yw=>{"use strict";Object.defineProperty(Yw,"__esModule",{value:!0});var Jw=hd(),Xw=class extends Error{constructor(e,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Jw.resolveUrl)(e,r,n),this.missingSchema=(0,Jw.normalizeId)((0,Jw.getFullPath)(e,this.missingRef))}};Yw.default=Xw});var _h=$(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.resolveSchema=qn.getCompilingSchema=qn.resolveRef=qn.compileSchema=qn.SchemaEnv=void 0;var ci=Ue(),YV=vh(),Bo=gs(),ui=hd(),fP=st(),QV=yd(),hc=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,ui.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};qn.SchemaEnv=hc;function e0(t){let e=mP.call(this,t);if(e)return e;let r=(0,ui.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new ci.CodeGen(this.scope,{es5:n,lines:i,ownProperties:s}),a;t.$async&&(a=o.scopeValue("Error",{ref:YV.default,code:(0,ci._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");t.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:Bo.default.data,parentData:Bo.default.parentData,parentDataProperty:Bo.default.parentDataProperty,dataNames:[Bo.default.data],dataPathArr:[ci.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,ci.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:a,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:ci.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ci._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,QV.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(Bo.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let f=new Function(`${Bo.default.self}`,`${Bo.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:f}),f.errors=null,f.schema=t.schema,f.schemaEnv=t,t.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:c,validateCode:d,scopeValues:o._values}),this.opts.unevaluated){let{props:m,items:h}=u;f.evaluated={props:m instanceof ci.Name?void 0:m,items:h instanceof ci.Name?void 0:h,dynamicProps:m instanceof ci.Name,dynamicItems:h instanceof ci.Name},f.source&&(f.source.evaluated=(0,ci.stringify)(f.evaluated))}return t.validate=f,t}catch(d){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(t)}}qn.compileSchema=e0;function e7(t,e,r){var n;r=(0,ui.resolveUrl)(this.opts.uriResolver,e,r);let i=t.refs[r];if(i)return i;let s=n7.call(this,t,r);if(s===void 0){let o=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:a}=this.opts;o&&(s=new hc({schema:o,schemaId:a,root:t,baseId:e}))}if(s!==void 0)return t.refs[r]=t7.call(this,s)}qn.resolveRef=e7;function t7(t){return(0,ui.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:e0.call(this,t)}function mP(t){for(let e of this._compilations)if(r7(e,t))return e}qn.getCompilingSchema=mP;function r7(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function n7(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||yh.call(this,t,e)}function yh(t,e){let r=this.opts.uriResolver.parse(e),n=(0,ui._getFullPath)(this.opts.uriResolver,r),i=(0,ui.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===i)return Qw.call(this,r,t);let s=(0,ui.normalizeId)(n),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=yh.call(this,t,o);return typeof a?.schema!="object"?void 0:Qw.call(this,r,a)}if(typeof o?.schema=="object"){if(o.validate||e0.call(this,o),s===(0,ui.normalizeId)(e)){let{schema:a}=o,{schemaId:c}=this.opts,u=a[c];return u&&(i=(0,ui.resolveUrl)(this.opts.uriResolver,i,u)),new hc({schema:a,schemaId:c,root:t,baseId:i})}return Qw.call(this,r,o)}}qn.resolveSchema=yh;var i7=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Qw(t,{baseId:e,schema:r,root:n}){var i;if(((i=t.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let a of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,fP.unescapeFragment)(a)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!i7.has(a)&&u&&(e=(0,ui.resolveUrl)(this.opts.uriResolver,e,u))}let s;if(typeof r!="boolean"&&r.$ref&&!(0,fP.schemaHasRulesButRef)(r,this.RULES)){let a=(0,ui.resolveUrl)(this.opts.uriResolver,e,r.$ref);s=yh.call(this,n,a)}let{schemaId:o}=this.opts;if(s=s||new hc({schema:r,schemaId:o,root:n,baseId:e}),s.schema!==s.root.schema)return s}});var hP=$((w1e,s7)=>{s7.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 r0=$((E1e,_P)=>{"use strict";var o7=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),vP=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);function t0(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 a7=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function gP(t){return t.length=0,!0}function c7(t,e,r){if(t.length){let n=t0(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function u7(t){let e=0,r={error:!1,address:"",zone:""},n=[],i=[],s=!1,o=!1,a=c7;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(s=!0),n.push(":");continue}else if(u==="%"){if(!a(i,n,r))break;a=gP}else{i.push(u);continue}}return i.length&&(a===gP?r.zone=i.join(""):o?n.push(i.join("")):n.push(t0(i))),r.address=n.join(""),r}function yP(t){if(l7(t,":")<2)return{host:t,isIPV6:!1};let e=u7(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 l7(t,e){let r=0;for(let n=0;n{"use strict";var{isUUID:m7}=r0(),h7=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,g7=["http","https","ws","wss","urn","urn:uuid"];function v7(t){return g7.indexOf(t)!==-1}function n0(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 bP(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function SP(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 y7(t){return t.secure=n0(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function _7(t){if((t.port===(n0(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 b7(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(h7);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let i=`${n}:${e.nid||t.nid}`,s=i0(i);t.path=void 0,s&&(t=s.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function S7(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(),i=`${r}:${e.nid||n}`,s=i0(i);s&&(t=s.serialize(t,e));let o=t,a=t.nss;return o.path=`${n||e.nid}:${a}`,e.skipEscape=!0,o}function x7(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!m7(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function w7(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var xP={scheme:"http",domainHost:!0,parse:bP,serialize:SP},E7={scheme:"https",domainHost:xP.domainHost,parse:bP,serialize:SP},bh={scheme:"ws",domainHost:!0,parse:y7,serialize:_7},k7={scheme:"wss",domainHost:bh.domainHost,parse:bh.parse,serialize:bh.serialize},T7={scheme:"urn",parse:b7,serialize:S7,skipNormalize:!0},$7={scheme:"urn:uuid",parse:x7,serialize:w7,skipNormalize:!0},Sh={http:xP,https:E7,ws:bh,wss:k7,urn:T7,"urn:uuid":$7};Object.setPrototypeOf(Sh,null);function i0(t){return t&&(Sh[t]||Sh[t.toLowerCase()])||void 0}wP.exports={wsIsSecure:n0,SCHEMES:Sh,isValidSchemeName:v7,getSchemeHandler:i0}});var $P=$((T1e,wh)=>{"use strict";var{normalizeIPv6:I7,removeDotSegments:bd,recomposeAuthority:R7,normalizeComponentEncoding:xh,isIPv4:O7,nonSimpleDomain:C7}=r0(),{SCHEMES:P7,getSchemeHandler:kP}=EP();function A7(t,e){return typeof t=="string"?t=Mi(ys(t,e),e):typeof t=="object"&&(t=ys(Mi(t,e),e)),t}function N7(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},i=TP(ys(t,n),ys(e,n),n,!0);return n.skipEscape=!0,Mi(i,n)}function TP(t,e,r,n){let i={};return n||(t=ys(Mi(t,r),r),e=ys(Mi(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(i.scheme=e.scheme,i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=bd(e.path||""),i.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=bd(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=bd(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?i.path="/"+e.path:t.path?i.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:i.path=e.path,i.path=bd(i.path)),i.query=e.query):(i.path=t.path,e.query!==void 0?i.query=e.query:i.query=t.query),i.userinfo=t.userinfo,i.host=t.host,i.port=t.port),i.scheme=t.scheme),i.fragment=e.fragment,i}function M7(t,e,r){return typeof t=="string"?(t=unescape(t),t=Mi(xh(ys(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=Mi(xh(t,!0),{...r,skipEscape:!0})),typeof e=="string"?(e=unescape(e),e=Mi(xh(ys(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=Mi(xh(e,!0),{...r,skipEscape:!0})),t.toLowerCase()===e.toLowerCase()}function Mi(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),i=[],s=kP(n.scheme||r.scheme);s&&s.serialize&&s.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let o=R7(r);if(o!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(o),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let a=r.path;!n.absolutePath&&(!s||!s.absolutePath)&&(a=bd(a)),o===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),i.push(a)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var D7=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function ys(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},i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let s=t.match(D7);if(s){if(n.scheme=s[1],n.userinfo=s[3],n.host=s[4],n.port=parseInt(s[5],10),n.path=s[6]||"",n.query=s[7],n.fragment=s[8],isNaN(n.port)&&(n.port=s[5]),n.host)if(O7(n.host)===!1){let c=I7(n.host);n.host=c.host.toLowerCase(),i=c.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 o=kP(r.scheme||n.scheme);if(!r.unicodeSupport&&(!o||!o.unicodeSupport)&&n.host&&(r.domainHost||o&&o.domainHost)&&i===!1&&C7(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(a){n.error=n.error||"Host's domain name can not be converted to ASCII: "+a}(!o||o&&!o.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=unescape(n.host))),n.path&&(n.path=escape(unescape(n.path))),n.fragment&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),o&&o.parse&&o.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var s0={SCHEMES:P7,normalize:A7,resolve:N7,resolveComponent:TP,equal:M7,serialize:Mi,parse:ys};wh.exports=s0;wh.exports.default=s0;wh.exports.fastUri=s0});var RP=$(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var IP=$P();IP.code='require("ajv/dist/runtime/uri").default';o0.default=IP});var jP=$(xr=>{"use strict";Object.defineProperty(xr,"__esModule",{value:!0});xr.CodeGen=xr.Name=xr.nil=xr.stringify=xr.str=xr._=xr.KeywordCxt=void 0;var j7=yd();Object.defineProperty(xr,"KeywordCxt",{enumerable:!0,get:function(){return j7.KeywordCxt}});var gc=Ue();Object.defineProperty(xr,"_",{enumerable:!0,get:function(){return gc._}});Object.defineProperty(xr,"str",{enumerable:!0,get:function(){return gc.str}});Object.defineProperty(xr,"stringify",{enumerable:!0,get:function(){return gc.stringify}});Object.defineProperty(xr,"nil",{enumerable:!0,get:function(){return gc.nil}});Object.defineProperty(xr,"Name",{enumerable:!0,get:function(){return gc.Name}});Object.defineProperty(xr,"CodeGen",{enumerable:!0,get:function(){return gc.CodeGen}});var z7=vh(),NP=_d(),L7=Mw(),Sd=_h(),U7=Ue(),xd=hd(),Eh=md(),c0=st(),OP=hP(),F7=RP(),MP=(t,e)=>new RegExp(t,e);MP.code="new RegExp";var q7=["removeAdditional","useDefaults","coerceTypes"],H7=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Z7={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."},B7={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},CP=200;function G7(t){var e,r,n,i,s,o,a,c,u,l,d,p,f,m,h,g,v,S,b,y,x,w,E,T,I;let A=t.strict,N=(e=t.code)===null||e===void 0?void 0:e.optimize,U=N===!0||N===void 0?1:N||0,V=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:MP,j=(i=t.uriResolver)!==null&&i!==void 0?i:F7.default;return{strictSchema:(o=(s=t.strictSchema)!==null&&s!==void 0?s:A)!==null&&o!==void 0?o:!0,strictNumbers:(c=(a=t.strictNumbers)!==null&&a!==void 0?a:A)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=t.strictTypes)!==null&&u!==void 0?u:A)!==null&&l!==void 0?l:"log",strictTuples:(p=(d=t.strictTuples)!==null&&d!==void 0?d:A)!==null&&p!==void 0?p:"log",strictRequired:(m=(f=t.strictRequired)!==null&&f!==void 0?f:A)!==null&&m!==void 0?m:!1,code:t.code?{...t.code,optimize:U,regExp:V}:{optimize:U,regExp:V},loopRequired:(h=t.loopRequired)!==null&&h!==void 0?h:CP,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:CP,meta:(v=t.meta)!==null&&v!==void 0?v:!0,messages:(S=t.messages)!==null&&S!==void 0?S:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(y=t.schemaId)!==null&&y!==void 0?y:"$id",addUsedSchema:(x=t.addUsedSchema)!==null&&x!==void 0?x:!0,validateSchema:(w=t.validateSchema)!==null&&w!==void 0?w:!0,validateFormats:(E=t.validateFormats)!==null&&E!==void 0?E:!0,unicodeRegExp:(T=t.unicodeRegExp)!==null&&T!==void 0?T:!0,int32range:(I=t.int32range)!==null&&I!==void 0?I:!0,uriResolver:j}}var wd=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...G7(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new U7.ValueScope({scope:{},prefixes:H7,es5:r,lines:n}),this.logger=Y7(e.logger);let i=e.validateFormats;e.validateFormats=!1,this.RULES=(0,L7.getRules)(),PP.call(this,Z7,e,"NOT SUPPORTED"),PP.call(this,B7,e,"DEPRECATED","warn"),this._metaOpts=J7.call(this),e.formats&&V7.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&K7.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),W7.call(this),e.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,i=OP;n==="id"&&(i={...OP},i.id=i.$id,delete i.$id),r&&e&&this.addMetaSchema(i,i[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 i=n(r);return"$async"in n||(this.errors=n.errors),i}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 i.call(this,e,r);async function i(l,d){await s.call(this,l.$schema);let p=this._addSchema(l,d);return p.validate||o.call(this,p)}async function s(l){l&&!this.getSchema(l)&&await i.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof NP.default))throw d;return a.call(this,d),await c.call(this,d.missingSchema),o.call(this,l)}}function a({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await s.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,r)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(e,r,n,i=this.opts.validateSchema){if(Array.isArray(e)){for(let o of e)this.addSchema(o,void 0,n,i);return this}let s;if(typeof e=="object"){let{schemaId:o}=this.opts;if(s=e[o],s!==void 0&&typeof s!="string")throw new Error(`schema ${o} must be string`)}return r=(0,xd.normalizeId)(r||s),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,i,!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 i=this.validate(n,e);if(!i&&r){let s="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(s);else throw new Error(s)}return i}getSchema(e){let r;for(;typeof(r=AP.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,i=new Sd.SchemaEnv({schema:{},schemaId:n});if(r=Sd.resolveSchema.call(this,i,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=AP.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,xd.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(eK.call(this,n,r),!r)return(0,c0.eachItem)(n,s=>a0.call(this,s)),this;rK.call(this,r);let i={...r,type:(0,Eh.getJSONTypes)(r.type),schemaType:(0,Eh.getJSONTypes)(r.schemaType)};return(0,c0.eachItem)(n,i.type.length===0?s=>a0.call(this,s,i):s=>i.type.forEach(o=>a0.call(this,s,i,o))),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 i=n.rules.findIndex(s=>s.keyword===e);i>=0&&n.rules.splice(i,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(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,s)=>i+r+s)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of r){let s=i.split("/").slice(1),o=e;for(let a of s)o=o[a];for(let a in n){let c=n[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[a];u&&l&&(o[a]=DP(l))}}return e}_removeAllSchemas(e,r){for(let n in e){let i=e[n];(!r||r.test(n))&&(typeof i=="string"?delete e[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete e[n]))}}_addSchema(e,r,n,i=this.opts.validateSchema,s=this.opts.addUsedSchema){let o,{schemaId:a}=this.opts;if(typeof e=="object")o=e[a];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,xd.normalizeId)(o||n);let u=xd.getSchemaRefs.call(this,e,n);return c=new Sd.SchemaEnv({schema:e,schemaId:a,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),s&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&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):Sd.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{Sd.compileSchema.call(this,e)}finally{this.opts=r}}};wd.ValidationError=z7.default;wd.MissingRefError=NP.default;xr.default=wd;function PP(t,e,r,n="error"){for(let i in t){let s=i;s in e&&this.logger[n](`${r}: option ${i}. ${t[s]}`)}}function AP(t){return t=(0,xd.normalizeId)(t),this.schemas[t]||this.refs[t]}function W7(){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 V7(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function K7(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 J7(){let t={...this.opts};for(let e of q7)delete t[e];return t}var X7={log(){},warn(){},error(){}};function Y7(t){if(t===!1)return X7;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 Q7=/^[a-z_$][a-z0-9_$:-]*$/i;function eK(t,e){let{RULES:r}=this;if((0,c0.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Q7.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 a0(t,e,r){var n;let i=e?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:s}=this,o=i?s.post:s.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},s.rules.push(o)),s.keywords[t]=!0,!e)return;let a={keyword:t,definition:{...e,type:(0,Eh.getJSONTypes)(e.type),schemaType:(0,Eh.getJSONTypes)(e.schemaType)}};e.before?tK.call(this,o,a,e.before):o.rules.push(a),s.all[t]=a,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function tK(t,e,r){let n=t.rules.findIndex(i=>i.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function rK(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=DP(e)),t.validateSchema=this.compile(e,!0))}var nK={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function DP(t){return{anyOf:[t,nK]}}});var zP=$(u0=>{"use strict";Object.defineProperty(u0,"__esModule",{value:!0});var iK={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};u0.default=iK});var qP=$(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.callRef=Go.getValidate=void 0;var sK=_d(),LP=Fn(),ln=Ue(),vc=gs(),UP=_h(),kh=st(),oK={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:i,schemaEnv:s,validateName:o,opts:a,self:c}=n,{root:u}=s;if((r==="#"||r==="#/")&&i===u.baseId)return d();let l=UP.resolveRef.call(c,u,i,r);if(l===void 0)throw new sK.default(n.opts.uriResolver,i,r);if(l instanceof UP.SchemaEnv)return p(l);return f(l);function d(){if(s===u)return Th(t,o,s,s.$async);let m=e.scopeValue("root",{ref:u});return Th(t,(0,ln._)`${m}.validate`,u,u.$async)}function p(m){let h=FP(t,m);Th(t,h,m,m.$async)}function f(m){let h=e.scopeValue("schema",a.code.source===!0?{ref:m,code:(0,ln.stringify)(m)}:{ref:m}),g=e.name("valid"),v=t.subschema({schema:m,dataTypes:[],schemaPath:ln.nil,topSchemaRef:h,errSchemaPath:r},g);t.mergeEvaluated(v),t.ok(g)}}};function FP(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,ln._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Go.getValidate=FP;function Th(t,e,r,n){let{gen:i,it:s}=t,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?vc.default.this:ln.nil;n?l():d();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0,ln._)`await ${(0,LP.callValidateCode)(t,e,u)}`),f(e),o||i.assign(m,!0)},h=>{i.if((0,ln._)`!(${h} instanceof ${s.ValidationError})`,()=>i.throw(h)),p(h),o||i.assign(m,!1)}),t.ok(m)}function d(){t.result((0,LP.callValidateCode)(t,e,u),()=>f(e),()=>p(e))}function p(m){let h=(0,ln._)`${m}.errors`;i.assign(vc.default.vErrors,(0,ln._)`${vc.default.vErrors} === null ? ${h} : ${vc.default.vErrors}.concat(${h})`),i.assign(vc.default.errors,(0,ln._)`${vc.default.vErrors}.length`)}function f(m){var h;if(!s.opts.unevaluated)return;let g=(h=r?.validate)===null||h===void 0?void 0:h.evaluated;if(s.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(s.props=kh.mergeEvaluated.props(i,g.props,s.props));else{let v=i.var("props",(0,ln._)`${m}.evaluated.props`);s.props=kh.mergeEvaluated.props(i,v,s.props,ln.Name)}if(s.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(s.items=kh.mergeEvaluated.items(i,g.items,s.items));else{let v=i.var("items",(0,ln._)`${m}.evaluated.items`);s.items=kh.mergeEvaluated.items(i,v,s.items,ln.Name)}}}Go.callRef=Th;Go.default=oK});var HP=$(l0=>{"use strict";Object.defineProperty(l0,"__esModule",{value:!0});var aK=zP(),cK=qP(),uK=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",aK.default,cK.default];l0.default=uK});var ZP=$(d0=>{"use strict";Object.defineProperty(d0,"__esModule",{value:!0});var $h=Ue(),io=$h.operators,Ih={maximum:{okStr:"<=",ok:io.LTE,fail:io.GT},minimum:{okStr:">=",ok:io.GTE,fail:io.LT},exclusiveMaximum:{okStr:"<",ok:io.LT,fail:io.GTE},exclusiveMinimum:{okStr:">",ok:io.GT,fail:io.LTE}},lK={message:({keyword:t,schemaCode:e})=>(0,$h.str)`must be ${Ih[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,$h._)`{comparison: ${Ih[t].okStr}, limit: ${e}}`},dK={keyword:Object.keys(Ih),type:"number",schemaType:"number",$data:!0,error:lK,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,$h._)`${r} ${Ih[e].fail} ${n} || isNaN(${r})`)}};d0.default=dK});var BP=$(p0=>{"use strict";Object.defineProperty(p0,"__esModule",{value:!0});var Ed=Ue(),pK={message:({schemaCode:t})=>(0,Ed.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,Ed._)`{multipleOf: ${t}}`},fK={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:pK,code(t){let{gen:e,data:r,schemaCode:n,it:i}=t,s=i.opts.multipleOfPrecision,o=e.let("res"),a=s?(0,Ed._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,Ed._)`${o} !== parseInt(${o})`;t.fail$data((0,Ed._)`(${n} === 0 || (${o} = ${r}/${n}, ${a}))`)}};p0.default=fK});var WP=$(f0=>{"use strict";Object.defineProperty(f0,"__esModule",{value:!0});function GP(t){let e=t.length,r=0,n=0,i;for(;n=55296&&i<=56319&&n{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});var Wo=Ue(),mK=st(),hK=WP(),gK={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,Wo.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,Wo._)`{limit: ${t}}`},vK={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:gK,code(t){let{keyword:e,data:r,schemaCode:n,it:i}=t,s=e==="maxLength"?Wo.operators.GT:Wo.operators.LT,o=i.opts.unicode===!1?(0,Wo._)`${r}.length`:(0,Wo._)`${(0,mK.useFunc)(t.gen,hK.default)}(${r})`;t.fail$data((0,Wo._)`${o} ${s} ${n}`)}};m0.default=vK});var KP=$(h0=>{"use strict";Object.defineProperty(h0,"__esModule",{value:!0});var yK=Fn(),Rh=Ue(),_K={message:({schemaCode:t})=>(0,Rh.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Rh._)`{pattern: ${t}}`},bK={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:_K,code(t){let{data:e,$data:r,schema:n,schemaCode:i,it:s}=t,o=s.opts.unicodeRegExp?"u":"",a=r?(0,Rh._)`(new RegExp(${i}, ${o}))`:(0,yK.usePattern)(t,n);t.fail$data((0,Rh._)`!${a}.test(${e})`)}};h0.default=bK});var JP=$(g0=>{"use strict";Object.defineProperty(g0,"__esModule",{value:!0});var kd=Ue(),SK={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,kd.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,kd._)`{limit: ${t}}`},xK={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:SK,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxProperties"?kd.operators.GT:kd.operators.LT;t.fail$data((0,kd._)`Object.keys(${r}).length ${i} ${n}`)}};g0.default=xK});var XP=$(v0=>{"use strict";Object.defineProperty(v0,"__esModule",{value:!0});var Td=Fn(),$d=Ue(),wK=st(),EK={message:({params:{missingProperty:t}})=>(0,$d.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,$d._)`{missingProperty: ${t}}`},kK={keyword:"required",type:"object",schemaType:"array",$data:!0,error:EK,code(t){let{gen:e,schema:r,schemaCode:n,data:i,$data:s,it:o}=t,{opts:a}=o;if(!s&&r.length===0)return;let c=r.length>=a.loopRequired;if(o.allErrors?u():l(),a.strictRequired){let f=t.parentSchema.properties,{definedProperties:m}=t.it;for(let h of r)if(f?.[h]===void 0&&!m.has(h)){let g=o.schemaEnv.baseId+o.errSchemaPath,v=`required property "${h}" is not defined at "${g}" (strictRequired)`;(0,wK.checkStrictMode)(o,v,o.opts.strictRequired)}}function u(){if(c||s)t.block$data($d.nil,d);else for(let f of r)(0,Td.checkReportMissingProp)(t,f)}function l(){let f=e.let("missing");if(c||s){let m=e.let("valid",!0);t.block$data(m,()=>p(f,m)),t.ok(m)}else e.if((0,Td.checkMissingProp)(t,r,f)),(0,Td.reportMissingProp)(t,f),e.else()}function d(){e.forOf("prop",n,f=>{t.setParams({missingProperty:f}),e.if((0,Td.noPropertyInData)(e,i,f,a.ownProperties),()=>t.error())})}function p(f,m){t.setParams({missingProperty:f}),e.forOf(f,n,()=>{e.assign(m,(0,Td.propertyInData)(e,i,f,a.ownProperties)),e.if((0,$d.not)(m),()=>{t.error(),e.break()})},$d.nil)}}};v0.default=kK});var YP=$(y0=>{"use strict";Object.defineProperty(y0,"__esModule",{value:!0});var Id=Ue(),TK={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Id.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Id._)`{limit: ${t}}`},$K={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:TK,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxItems"?Id.operators.GT:Id.operators.LT;t.fail$data((0,Id._)`${r}.length ${i} ${n}`)}};y0.default=$K});var Oh=$(_0=>{"use strict";Object.defineProperty(_0,"__esModule",{value:!0});var QP=Hw();QP.code='require("ajv/dist/runtime/equal").default';_0.default=QP});var eA=$(S0=>{"use strict";Object.defineProperty(S0,"__esModule",{value:!0});var b0=md(),wr=Ue(),IK=st(),RK=Oh(),OK={message:({params:{i:t,j:e}})=>(0,wr.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,wr._)`{i: ${t}, j: ${e}}`},CK={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:OK,code(t){let{gen:e,data:r,$data:n,schema:i,parentSchema:s,schemaCode:o,it:a}=t;if(!n&&!i)return;let c=e.let("valid"),u=s.items?(0,b0.getSchemaTypes)(s.items):[];t.block$data(c,l,(0,wr._)`${o} === false`),t.ok(c);function l(){let m=e.let("i",(0,wr._)`${r}.length`),h=e.let("j");t.setParams({i:m,j:h}),e.assign(c,!0),e.if((0,wr._)`${m} > 1`,()=>(d()?p:f)(m,h))}function d(){return u.length>0&&!u.some(m=>m==="object"||m==="array")}function p(m,h){let g=e.name("item"),v=(0,b0.checkDataTypes)(u,g,a.opts.strictNumbers,b0.DataType.Wrong),S=e.const("indices",(0,wr._)`{}`);e.for((0,wr._)`;${m}--;`,()=>{e.let(g,(0,wr._)`${r}[${m}]`),e.if(v,(0,wr._)`continue`),u.length>1&&e.if((0,wr._)`typeof ${g} == "string"`,(0,wr._)`${g} += "_"`),e.if((0,wr._)`typeof ${S}[${g}] == "number"`,()=>{e.assign(h,(0,wr._)`${S}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,wr._)`${S}[${g}] = ${m}`)})}function f(m,h){let g=(0,IK.useFunc)(e,RK.default),v=e.name("outer");e.label(v).for((0,wr._)`;${m}--;`,()=>e.for((0,wr._)`${h} = ${m}; ${h}--;`,()=>e.if((0,wr._)`${g}(${r}[${m}], ${r}[${h}])`,()=>{t.error(),e.assign(c,!1).break(v)})))}}};S0.default=CK});var tA=$(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});var x0=Ue(),PK=st(),AK=Oh(),NK={message:"must be equal to constant",params:({schemaCode:t})=>(0,x0._)`{allowedValue: ${t}}`},MK={keyword:"const",$data:!0,error:NK,code(t){let{gen:e,data:r,$data:n,schemaCode:i,schema:s}=t;n||s&&typeof s=="object"?t.fail$data((0,x0._)`!${(0,PK.useFunc)(e,AK.default)}(${r}, ${i})`):t.fail((0,x0._)`${s} !== ${r}`)}};w0.default=MK});var rA=$(E0=>{"use strict";Object.defineProperty(E0,"__esModule",{value:!0});var Rd=Ue(),DK=st(),jK=Oh(),zK={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Rd._)`{allowedValues: ${t}}`},LK={keyword:"enum",schemaType:"array",$data:!0,error:zK,code(t){let{gen:e,data:r,$data:n,schema:i,schemaCode:s,it:o}=t;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let a=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,DK.useFunc)(e,jK.default)),l;if(a||n)l=e.let("valid"),t.block$data(l,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let f=e.const("vSchema",s);l=(0,Rd.or)(...i.map((m,h)=>p(f,h)))}t.pass(l);function d(){e.assign(l,!1),e.forOf("v",s,f=>e.if((0,Rd._)`${u()}(${r}, ${f})`,()=>e.assign(l,!0).break()))}function p(f,m){let h=i[m];return typeof h=="object"&&h!==null?(0,Rd._)`${u()}(${r}, ${f}[${m}])`:(0,Rd._)`${r} === ${h}`}}};E0.default=LK});var nA=$(k0=>{"use strict";Object.defineProperty(k0,"__esModule",{value:!0});var UK=ZP(),FK=BP(),qK=VP(),HK=KP(),ZK=JP(),BK=XP(),GK=YP(),WK=eA(),VK=tA(),KK=rA(),JK=[UK.default,FK.default,qK.default,HK.default,ZK.default,BK.default,GK.default,WK.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},VK.default,KK.default];k0.default=JK});var $0=$(Od=>{"use strict";Object.defineProperty(Od,"__esModule",{value:!0});Od.validateAdditionalItems=void 0;var Vo=Ue(),T0=st(),XK={message:({params:{len:t}})=>(0,Vo.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Vo._)`{limit: ${t}}`},YK={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:XK,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,T0.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}iA(t,n)}};function iA(t,e){let{gen:r,schema:n,data:i,keyword:s,it:o}=t;o.items=!0;let a=r.const("len",(0,Vo._)`${i}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Vo._)`${a} <= ${e.length}`);else if(typeof n=="object"&&!(0,T0.alwaysValidSchema)(o,n)){let u=r.var("valid",(0,Vo._)`${a} <= ${e.length}`);r.if((0,Vo.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,a,l=>{t.subschema({keyword:s,dataProp:l,dataPropType:T0.Type.Num},u),o.allErrors||r.if((0,Vo.not)(u),()=>r.break())})}}Od.validateAdditionalItems=iA;Od.default=YK});var I0=$(Cd=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});Cd.validateTuple=void 0;var sA=Ue(),Ch=st(),QK=Fn(),eJ={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return oA(t,"additionalItems",e);r.items=!0,!(0,Ch.alwaysValidSchema)(r,e)&&t.ok((0,QK.validateArray)(t))}};function oA(t,e,r=t.schema){let{gen:n,parentSchema:i,data:s,keyword:o,it:a}=t;l(i),a.opts.unevaluated&&r.length&&a.items!==!0&&(a.items=Ch.mergeEvaluated.items(n,r.length,a.items));let c=n.name("valid"),u=n.const("len",(0,sA._)`${s}.length`);r.forEach((d,p)=>{(0,Ch.alwaysValidSchema)(a,d)||(n.if((0,sA._)`${u} > ${p}`,()=>t.subschema({keyword:o,schemaProp:p,dataProp:p},c)),t.ok(c))});function l(d){let{opts:p,errSchemaPath:f}=a,m=r.length,h=m===d.minItems&&(m===d.maxItems||d[e]===!1);if(p.strictTuples&&!h){let g=`"${o}" is ${m}-tuple, but minItems or maxItems/${e} are not specified or different at path "${f}"`;(0,Ch.checkStrictMode)(a,g,p.strictTuples)}}}Cd.validateTuple=oA;Cd.default=eJ});var aA=$(R0=>{"use strict";Object.defineProperty(R0,"__esModule",{value:!0});var tJ=I0(),rJ={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,tJ.validateTuple)(t,"items")};R0.default=rJ});var uA=$(O0=>{"use strict";Object.defineProperty(O0,"__esModule",{value:!0});var cA=Ue(),nJ=st(),iJ=Fn(),sJ=$0(),oJ={message:({params:{len:t}})=>(0,cA.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,cA._)`{limit: ${t}}`},aJ={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:oJ,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:i}=r;n.items=!0,!(0,nJ.alwaysValidSchema)(n,e)&&(i?(0,sJ.validateAdditionalItems)(t,i):t.ok((0,iJ.validateArray)(t)))}};O0.default=aJ});var lA=$(C0=>{"use strict";Object.defineProperty(C0,"__esModule",{value:!0});var Hn=Ue(),Ph=st(),cJ={message:({params:{min:t,max:e}})=>e===void 0?(0,Hn.str)`must contain at least ${t} valid item(s)`:(0,Hn.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Hn._)`{minContains: ${t}}`:(0,Hn._)`{minContains: ${t}, maxContains: ${e}}`},uJ={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:cJ,code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:s}=t,o,a,{minContains:c,maxContains:u}=n;s.opts.next?(o=c===void 0?1:c,a=u):o=1;let l=e.const("len",(0,Hn._)`${i}.length`);if(t.setParams({min:o,max:a}),a===void 0&&o===0){(0,Ph.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,Ph.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Ph.alwaysValidSchema)(s,r)){let h=(0,Hn._)`${l} >= ${o}`;a!==void 0&&(h=(0,Hn._)`${h} && ${l} <= ${a}`),t.pass(h);return}s.items=!0;let d=e.name("valid");a===void 0&&o===1?f(d,()=>e.if(d,()=>e.break())):o===0?(e.let(d,!0),a!==void 0&&e.if((0,Hn._)`${i}.length > 0`,p)):(e.let(d,!1),p()),t.result(d,()=>t.reset());function p(){let h=e.name("_valid"),g=e.let("count",0);f(h,()=>e.if(h,()=>m(g)))}function f(h,g){e.forRange("i",0,l,v=>{t.subschema({keyword:"contains",dataProp:v,dataPropType:Ph.Type.Num,compositeRule:!0},h),g()})}function m(h){e.code((0,Hn._)`${h}++`),a===void 0?e.if((0,Hn._)`${h} >= ${o}`,()=>e.assign(d,!0).break()):(e.if((0,Hn._)`${h} > ${a}`,()=>e.assign(d,!1).break()),o===1?e.assign(d,!0):e.if((0,Hn._)`${h} >= ${o}`,()=>e.assign(d,!0)))}}};C0.default=uJ});var fA=$(Di=>{"use strict";Object.defineProperty(Di,"__esModule",{value:!0});Di.validateSchemaDeps=Di.validatePropertyDeps=Di.error=void 0;var P0=Ue(),lJ=st(),Pd=Fn();Di.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,P0.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,P0._)`{property: ${t}, missingProperty: ${n}, depsCount: ${e}, - deps: ${r}}`};var YG={keyword:"dependencies",type:"object",schemaType:"object",error:mi.error,code(t){let[e,r]=QG(t);pP(t,e),mP(t,r)}};function QG({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let i=Array.isArray(t[n])?e:r;i[n]=t[n]}return[e,r]}function pP(t,e=t.schema){let{gen:r,data:n,it:i}=t;if(Object.keys(e).length===0)return;let s=r.let("missing");for(let o in e){let a=e[o];if(a.length===0)continue;let c=(0,Ll.propertyInData)(r,n,o,i.opts.ownProperties);t.setParams({property:o,depsCount:a.length,deps:a.join(", ")}),i.allErrors?r.if(c,()=>{for(let u of a)(0,Ll.checkReportMissingProp)(t,u)}):(r.if((0,ZS._)`${c} && (${(0,Ll.checkMissingProp)(t,a,s)})`),(0,Ll.reportMissingProp)(t,s),r.else())}}mi.validatePropertyDeps=pP;function mP(t,e=t.schema){let{gen:r,data:n,keyword:i,it:s}=t,o=r.name("valid");for(let a in e)(0,XG.alwaysValidSchema)(s,e[a])||(r.if((0,Ll.propertyInData)(r,n,a,s.opts.ownProperties),()=>{let c=t.subschema({keyword:i,schemaProp:a},o);t.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),t.ok(o))}mi.validateSchemaDeps=mP;mi.default=YG});var gP=T(BS=>{"use strict";Object.defineProperty(BS,"__esModule",{value:!0});var hP=Le(),eW=rt(),tW={message:"property name must be valid",params:({params:t})=>(0,hP._)`{propertyName: ${t.propertyName}}`},rW={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:tW,code(t){let{gen:e,schema:r,data:n,it:i}=t;if((0,eW.alwaysValidSchema)(i,r))return;let s=e.name("valid");e.forIn("key",n,o=>{t.setParams({propertyName:o}),t.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},s),e.if((0,hP.not)(s),()=>{t.error(!0),i.allErrors||e.break()})}),t.ok(s)}};BS.default=rW});var GS=T(VS=>{"use strict";Object.defineProperty(VS,"__esModule",{value:!0});var bf=Rn(),Kn=Le(),nW=Zi(),xf=rt(),iW={message:"must NOT have additional properties",params:({params:t})=>(0,Kn._)`{additionalProperty: ${t.additionalProperty}}`},sW={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:iW,code(t){let{gen:e,schema:r,parentSchema:n,data:i,errsCount:s,it:o}=t;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,xf.alwaysValidSchema)(o,r))return;let u=(0,bf.allSchemaProperties)(n.properties),l=(0,bf.allSchemaProperties)(n.patternProperties);d(),t.ok((0,Kn._)`${s} === ${nW.default.errors}`);function d(){e.forIn("key",i,h=>{!u.length&&!l.length?f(h):e.if(p(h),()=>f(h))})}function p(h){let v;if(u.length>8){let x=(0,xf.schemaRefOrVal)(o,n.properties,"properties");v=(0,bf.isOwnProperty)(e,x,h)}else u.length?v=(0,Kn.or)(...u.map(x=>(0,Kn._)`${h} === ${x}`)):v=Kn.nil;return l.length&&(v=(0,Kn.or)(v,...l.map(x=>(0,Kn._)`${(0,bf.usePattern)(t,x)}.test(${h})`))),(0,Kn.not)(v)}function m(h){e.code((0,Kn._)`delete ${i}[${h}]`)}function f(h){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){m(h);return}if(r===!1){t.setParams({additionalProperty:h}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,xf.alwaysValidSchema)(o,r)){let v=e.name("valid");c.removeAdditional==="failing"?(g(h,v,!1),e.if((0,Kn.not)(v),()=>{t.reset(),m(h)})):(g(h,v),a||e.if((0,Kn.not)(v),()=>e.break()))}}function g(h,v,x){let b={keyword:"additionalProperties",dataProp:h,dataPropType:xf.Type.Str};x===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};VS.default=sW});var _P=T(KS=>{"use strict";Object.defineProperty(KS,"__esModule",{value:!0});var oW=kl(),vP=Rn(),WS=rt(),yP=GS(),aW={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:s}=t;s.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&yP.default.code(new oW.KeywordCxt(s,yP.default,"additionalProperties"));let o=(0,vP.allSchemaProperties)(r);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=WS.mergeEvaluated.props(e,(0,WS.toHash)(o),s.props));let a=o.filter(d=>!(0,WS.alwaysValidSchema)(s,r[d]));if(a.length===0)return;let c=e.name("valid");for(let d of a)u(d)?l(d):(e.if((0,vP.propertyInData)(e,i,d,s.opts.ownProperties)),l(d),s.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(d),t.ok(c);function u(d){return s.opts.useDefaults&&!s.compositeRule&&r[d].default!==void 0}function l(d){t.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};KS.default=aW});var wP=T(JS=>{"use strict";Object.defineProperty(JS,"__esModule",{value:!0});var bP=Rn(),Sf=Le(),xP=rt(),SP=rt(),cW={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:i,it:s}=t,{opts:o}=s,a=(0,bP.allSchemaProperties)(r),c=a.filter(g=>(0,xP.alwaysValidSchema)(s,r[g]));if(a.length===0||c.length===a.length&&(!s.opts.unevaluated||s.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,l=e.name("valid");s.props!==!0&&!(s.props instanceof Sf.Name)&&(s.props=(0,SP.evaluatedPropsToName)(e,s.props));let{props:d}=s;p();function p(){for(let g of a)u&&m(g),s.allErrors?f(g):(e.var(l,!0),f(g),e.if(l))}function m(g){for(let h in u)new RegExp(g).test(h)&&(0,xP.checkStrictMode)(s,`property ${h} matches pattern ${g} (use allowMatchingProperties)`)}function f(g){e.forIn("key",n,h=>{e.if((0,Sf._)`${(0,bP.usePattern)(t,g)}.test(${h})`,()=>{let v=c.includes(g);v||t.subschema({keyword:"patternProperties",schemaProp:g,dataProp:h,dataPropType:SP.Type.Str},l),s.opts.unevaluated&&d!==!0?e.assign((0,Sf._)`${d}[${h}]`,!0):!v&&!s.allErrors&&e.if((0,Sf.not)(l),()=>e.break())})})}}};JS.default=cW});var EP=T(XS=>{"use strict";Object.defineProperty(XS,"__esModule",{value:!0});var uW=rt(),lW={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,uW.alwaysValidSchema)(n,r)){t.fail();return}let i=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),t.failResult(i,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};XS.default=lW});var kP=T(YS=>{"use strict";Object.defineProperty(YS,"__esModule",{value:!0});var dW=Rn(),pW={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:dW.validateUnion,error:{message:"must match a schema in anyOf"}};YS.default=pW});var $P=T(QS=>{"use strict";Object.defineProperty(QS,"__esModule",{value:!0});var wf=Le(),mW=rt(),fW={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,wf._)`{passingSchemas: ${t.passing}}`},hW={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:fW,code(t){let{gen:e,schema:r,parentSchema:n,it:i}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let s=r,o=e.let("valid",!1),a=e.let("passing",null),c=e.name("_valid");t.setParams({passing:a}),e.block(u),t.result(o,()=>t.reset(),()=>t.error(!0));function u(){s.forEach((l,d)=>{let p;(0,mW.alwaysValidSchema)(i,l)?e.var(c,!0):p=t.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&e.if((0,wf._)`${c} && ${o}`).assign(o,!1).assign(a,(0,wf._)`[${a}, ${d}]`).else(),e.if(c,()=>{e.assign(o,!0),e.assign(a,d),p&&t.mergeEvaluated(p,wf.Name)})})}}};QS.default=hW});var TP=T(e0=>{"use strict";Object.defineProperty(e0,"__esModule",{value:!0});var gW=rt(),vW={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 i=e.name("valid");r.forEach((s,o)=>{if((0,gW.alwaysValidSchema)(n,s))return;let a=t.subschema({keyword:"allOf",schemaProp:o},i);t.ok(i),t.mergeEvaluated(a)})}};e0.default=vW});var OP=T(t0=>{"use strict";Object.defineProperty(t0,"__esModule",{value:!0});var Ef=Le(),RP=rt(),yW={message:({params:t})=>(0,Ef.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Ef._)`{failingKeyword: ${t.ifClause}}`},_W={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:yW,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,RP.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=IP(n,"then"),s=IP(n,"else");if(!i&&!s)return;let o=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),i&&s){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(a,u("then",l),u("else",l))}else i?e.if(a,u("then")):e.if((0,Ef.not)(a),u("else"));t.pass(o,()=>t.error(!0));function c(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(l)}function u(l,d){return()=>{let p=t.subschema({keyword:l},a);e.assign(o,a),t.mergeValidEvaluated(p,o),d?e.assign(d,(0,Ef._)`${l}`):t.setParams({ifClause:l})}}}};function IP(t,e){let r=t.schema[e];return r!==void 0&&!(0,RP.alwaysValidSchema)(t,r)}t0.default=_W});var PP=T(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});var bW=rt(),xW={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,bW.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};r0.default=xW});var CP=T(n0=>{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});var SW=LS(),wW=cP(),EW=US(),kW=lP(),$W=dP(),TW=fP(),IW=gP(),RW=GS(),OW=_P(),PW=wP(),CW=EP(),AW=kP(),NW=$P(),MW=TP(),DW=OP(),jW=PP();function zW(t=!1){let e=[CW.default,AW.default,NW.default,MW.default,DW.default,jW.default,IW.default,RW.default,TW.default,OW.default,PW.default];return t?e.push(wW.default,kW.default):e.push(SW.default,EW.default),e.push($W.default),e}n0.default=zW});var AP=T(i0=>{"use strict";Object.defineProperty(i0,"__esModule",{value:!0});var Jt=Le(),LW={message:({schemaCode:t})=>(0,Jt.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Jt._)`{format: ${t}}`},UW={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:LW,code(t,e){let{gen:r,data:n,$data:i,schema:s,schemaCode:o,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;i?p():m();function p(){let f=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),g=r.const("fDef",(0,Jt._)`${f}[${o}]`),h=r.let("fType"),v=r.let("format");r.if((0,Jt._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(h,(0,Jt._)`${g}.type || "string"`).assign(v,(0,Jt._)`${g}.validate`),()=>r.assign(h,(0,Jt._)`"string"`).assign(v,g)),t.fail$data((0,Jt.or)(x(),b()));function x(){return c.strictSchema===!1?Jt.nil:(0,Jt._)`${o} && !${v}`}function b(){let _=l.$async?(0,Jt._)`(${g}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Jt._)`${v}(${n})`,S=(0,Jt._)`(typeof ${v} == "function" ? ${_} : ${v}.test(${n}))`;return(0,Jt._)`${v} && ${v} !== true && ${h} === ${e} && !${S}`}}function m(){let f=d.formats[s];if(!f){x();return}if(f===!0)return;let[g,h,v]=b(f);g===e&&t.pass(_());function x(){if(c.strictSchema===!1){d.logger.warn(S());return}throw new Error(S());function S(){return`unknown format "${s}" ignored in schema at path "${u}"`}}function b(S){let w=S instanceof RegExp?(0,Jt.regexpCode)(S):c.code.formats?(0,Jt._)`${c.code.formats}${(0,Jt.getProperty)(s)}`:void 0,E=r.scopeValue("formats",{key:s,ref:S,code:w});return typeof S=="object"&&!(S instanceof RegExp)?[S.type||"string",S.validate,(0,Jt._)`${E}.validate`]:["string",S,E]}function _(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Jt._)`await ${v}(${n})`}return typeof h=="function"?(0,Jt._)`${v}(${n})`:(0,Jt._)`${v}.test(${n})`}}}};i0.default=UW});var NP=T(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});var qW=AP(),FW=[qW.default];s0.default=FW});var MP=T(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.contentVocabulary=Da.metadataVocabulary=void 0;Da.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Da.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var jP=T(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var HW=Z1(),ZW=iP(),BW=CP(),VW=NP(),DP=MP(),GW=[HW.default,ZW.default,(0,BW.default)(),VW.default,DP.metadataVocabulary,DP.contentVocabulary];o0.default=GW});var LP=T(kf=>{"use strict";Object.defineProperty(kf,"__esModule",{value:!0});kf.DiscrError=void 0;var zP;(function(t){t.Tag="tag",t.Mapping="mapping"})(zP||(kf.DiscrError=zP={}))});var qP=T(c0=>{"use strict";Object.defineProperty(c0,"__esModule",{value:!0});var ja=Le(),a0=LP(),UP=af(),WW=$l(),KW=rt(),JW={message:({params:{discrError:t,tagName:e}})=>t===a0.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,ja._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},XW={keyword:"discriminator",type:"object",schemaType:"object",error:JW,code(t){let{gen:e,data:r,schema:n,parentSchema:i,it:s}=t,{oneOf:o}=i;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=n.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,ja._)`${r}${(0,ja.getProperty)(a)}`);e.if((0,ja._)`typeof ${u} == "string"`,()=>l(),()=>t.error(!1,{discrError:a0.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function l(){let m=p();e.if(!1);for(let f in m)e.elseIf((0,ja._)`${u} === ${f}`),e.assign(c,d(m[f]));e.else(),t.error(!1,{discrError:a0.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function d(m){let f=e.name("valid"),g=t.subschema({keyword:"oneOf",schemaProp:m},f);return t.mergeEvaluated(g,ja.Name),f}function p(){var m;let f={},g=v(i),h=!0;for(let _=0;_{YW.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 l0=T((Ct,u0)=>{"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 QW=z1(),e7=jP(),t7=qP(),HP=FP(),r7=["/properties"],$f="http://json-schema.org/draft-07/schema",za=class extends QW.default{_addVocabularies(){super._addVocabularies(),e7.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(t7.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(HP,r7):HP;this.addMetaSchema(e,$f,!1),this.refs["http://json-schema.org/schema"]=$f}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema($f)?$f:void 0)}};Ct.Ajv=za;u0.exports=Ct=za;u0.exports.Ajv=za;Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=za;var n7=kl();Object.defineProperty(Ct,"KeywordCxt",{enumerable:!0,get:function(){return n7.KeywordCxt}});var La=Le();Object.defineProperty(Ct,"_",{enumerable:!0,get:function(){return La._}});Object.defineProperty(Ct,"str",{enumerable:!0,get:function(){return La.str}});Object.defineProperty(Ct,"stringify",{enumerable:!0,get:function(){return La.stringify}});Object.defineProperty(Ct,"nil",{enumerable:!0,get:function(){return La.nil}});Object.defineProperty(Ct,"Name",{enumerable:!0,get:function(){return La.Name}});Object.defineProperty(Ct,"CodeGen",{enumerable:!0,get:function(){return La.CodeGen}});var i7=sf();Object.defineProperty(Ct,"ValidationError",{enumerable:!0,get:function(){return i7.default}});var s7=$l();Object.defineProperty(Ct,"MissingRefError",{enumerable:!0,get:function(){return s7.default}})});var XP=T(hi=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.formatNames=hi.fastFormats=hi.fullFormats=void 0;function fi(t,e){return{validate:t,compare:e}}hi.fullFormats={date:fi(GP,f0),time:fi(p0(!0),h0),"date-time":fi(ZP(!0),KP),"iso-time":fi(p0(),WP),"iso-date-time":fi(ZP(),JP),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:d7,"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:y7,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:p7,int32:{type:"number",validate:h7},int64:{type:"number",validate:g7},float:{type:"number",validate:VP},double:{type:"number",validate:VP},password:!0,binary:!0};hi.fastFormats={...hi.fullFormats,date:fi(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,f0),time:fi(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,h0),"date-time":fi(/^\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,KP),"iso-time":fi(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,WP),"iso-date-time":fi(/^\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,JP),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};hi.formatNames=Object.keys(hi.fullFormats);function o7(t){return t%4===0&&(t%100!==0||t%400===0)}var a7=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,c7=[0,31,28,31,30,31,30,31,31,30,31,30,31];function GP(t){let e=a7.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],i=+e[3];return n>=1&&n<=12&&i>=1&&i<=(n===2&&o7(r)?29:c7[n])}function f0(t,e){if(t&&e)return t>e?1:t23||l>59||t&&!a)return!1;if(i<=23&&s<=59&&o<60)return!0;let d=s-l*c,p=i-u*c-(d<0?1:0);return(p===23||p===-1)&&(d===59||d===-1)&&o<61}}function h0(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 WP(t,e){if(!(t&&e))return;let r=d0.exec(t),n=d0.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=m7}function g7(t){return Number.isInteger(t)}function VP(){return!0}var v7=/[^\\]\\Z/;function y7(t){if(v7.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var YP=T(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.formatLimitDefinition=void 0;var _7=l0(),Jn=Le(),Ps=Jn.operators,Tf={formatMaximum:{okStr:"<=",ok:Ps.LTE,fail:Ps.GT},formatMinimum:{okStr:">=",ok:Ps.GTE,fail:Ps.LT},formatExclusiveMaximum:{okStr:"<",ok:Ps.LT,fail:Ps.GTE},formatExclusiveMinimum:{okStr:">",ok:Ps.GT,fail:Ps.LTE}},b7={message:({keyword:t,schemaCode:e})=>(0,Jn.str)`should be ${Tf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Jn._)`{comparison: ${Tf[t].okStr}, limit: ${e}}`};Ua.formatLimitDefinition={keyword:Object.keys(Tf),type:"string",schemaType:"string",$data:!0,error:b7,code(t){let{gen:e,data:r,schemaCode:n,keyword:i,it:s}=t,{opts:o,self:a}=s;if(!o.validateFormats)return;let c=new _7.KeywordCxt(s,a.RULES.all.format.definition,"format");c.$data?u():l();function u(){let p=e.scopeValue("formats",{ref:a.formats,code:o.code.formats}),m=e.const("fmt",(0,Jn._)`${p}[${c.schemaCode}]`);t.fail$data((0,Jn.or)((0,Jn._)`typeof ${m} != "object"`,(0,Jn._)`${m} instanceof RegExp`,(0,Jn._)`typeof ${m}.compare != "function"`,d(m)))}function l(){let p=c.schema,m=a.formats[p];if(!m||m===!0)return;if(typeof m!="object"||m instanceof RegExp||typeof m.compare!="function")throw new Error(`"${i}": format "${p}" does not define "compare" function`);let f=e.scopeValue("formats",{key:p,ref:m,code:o.code.formats?(0,Jn._)`${o.code.formats}${(0,Jn.getProperty)(p)}`:void 0});t.fail$data(d(f))}function d(p){return(0,Jn._)`${p}.compare(${r}, ${n}) ${Tf[i].fail} 0`}},dependencies:["format"]};var x7=t=>(t.addKeyword(Ua.formatLimitDefinition),t);Ua.default=x7});var rC=T((Ul,tC)=>{"use strict";Object.defineProperty(Ul,"__esModule",{value:!0});var qa=XP(),S7=YP(),g0=Le(),QP=new g0.Name("fullFormats"),w7=new g0.Name("fastFormats"),v0=(t,e={keywords:!0})=>{if(Array.isArray(e))return eC(t,e,qa.fullFormats,QP),t;let[r,n]=e.mode==="fast"?[qa.fastFormats,w7]:[qa.fullFormats,QP],i=e.formats||qa.formatNames;return eC(t,i,r,n),e.keywords&&(0,S7.default)(t),t};v0.get=(t,e="full")=>{let n=(e==="fast"?qa.fastFormats:qa.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function eC(t,e,r,n){var i,s;(i=(s=t.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,g0._)`require("ajv-formats/dist/formats").${n}`);for(let o of e)t.addFormat(o,r[o])}tC.exports=Ul=v0;Object.defineProperty(Ul,"__esModule",{value:!0});Ul.default=v0});var dC=T((z$e,lC)=>{lC.exports=uC;uC.sync=T7;var aC=require("fs");function $7(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{hC.exports=mC;mC.sync=I7;var pC=require("fs");function mC(t,e,r){pC.stat(t,function(n,i){r(n,n?!1:fC(i,e))})}function I7(t,e){return fC(pC.statSync(t),e)}function fC(t,e){return t.isFile()&&R7(t,e)}function R7(t,e){var r=t.mode,n=t.uid,i=t.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),l=a|c,d=r&u||r&c&&i===o||r&a&&n===s||r&l&&s===0;return d}});var yC=T((q$e,vC)=>{var U$e=require("fs"),Pf;process.platform==="win32"||global.TESTING_WINDOWS?Pf=dC():Pf=gC();vC.exports=y0;y0.sync=O7;function y0(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,i){y0(t,e||{},function(s,o){s?i(s):n(o)})})}Pf(t,e||{},function(n,i){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,i=!1),r(n,i)})}function O7(t,e){try{return Pf.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var kC=T((F$e,EC)=>{var Ha=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",_C=require("path"),P7=Ha?";":":",bC=yC(),xC=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),SC=(t,e)=>{let r=e.colon||P7,n=t.match(/\//)||Ha&&t.match(/\\/)?[""]:[...Ha?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],i=Ha?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Ha?i.split(r):[""];return Ha&&t.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:n,pathExt:s,pathExtExe:i}},wC=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:i,pathExtExe:s}=SC(t,e),o=[],a=u=>new Promise((l,d)=>{if(u===n.length)return e.all&&o.length?l(o):d(xC(t));let p=n[u],m=/^".*"$/.test(p)?p.slice(1,-1):p,f=_C.join(m,t),g=!m&&/^\.[\\\/]/.test(t)?t.slice(0,2)+f:f;l(c(g,u,0))}),c=(u,l,d)=>new Promise((p,m)=>{if(d===i.length)return p(a(l+1));let f=i[d];bC(u+f,{pathExt:s},(g,h)=>{if(!g&&h)if(e.all)o.push(u+f);else return p(u+f);return p(c(u,l,d+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},C7=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:i}=SC(t,e),s=[];for(let o=0;o{"use strict";var $C=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};_0.exports=$C;_0.exports.default=$C});var PC=T((Z$e,OC)=>{"use strict";var IC=require("path"),A7=kC(),N7=TC();function RC(t,e){let r=t.options.env||process.env,n=process.cwd(),i=t.options.cwd!=null,s=i&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(t.options.cwd)}catch{}let o;try{o=A7.sync(t.command,{path:r[N7({env:r})],pathExt:e?IC.delimiter:void 0})}catch{}finally{s&&process.chdir(n)}return o&&(o=IC.resolve(i?t.options.cwd:"",o)),o}function M7(t){return RC(t)||RC(t,!0)}OC.exports=M7});var CC=T((B$e,x0)=>{"use strict";var b0=/([()\][%!^"`<>&|;, *?])/g;function D7(t){return t=t.replace(b0,"^$1"),t}function j7(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(b0,"^$1"),e&&(t=t.replace(b0,"^$1")),t}x0.exports.command=D7;x0.exports.argument=j7});var NC=T((V$e,AC)=>{"use strict";AC.exports=/^#!(.*)/});var DC=T((G$e,MC)=>{"use strict";var z7=NC();MC.exports=(t="")=>{let e=t.match(z7);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return i==="env"?n:n?`${i} ${n}`:i}});var zC=T((W$e,jC)=>{"use strict";var S0=require("fs"),L7=DC();function U7(t){let r=Buffer.alloc(150),n;try{n=S0.openSync(t,"r"),S0.readSync(n,r,0,150,0),S0.closeSync(n)}catch{}return L7(r.toString())}jC.exports=U7});var FC=T((K$e,qC)=>{"use strict";var q7=require("path"),LC=PC(),UC=CC(),F7=zC(),H7=process.platform==="win32",Z7=/\.(?:com|exe)$/i,B7=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function V7(t){t.file=LC(t);let e=t.file&&F7(t.file);return e?(t.args.unshift(t.file),t.command=e,LC(t)):t.file}function G7(t){if(!H7)return t;let e=V7(t),r=!Z7.test(e);if(t.options.forceShell||r){let n=B7.test(e);t.command=q7.normalize(t.command),t.command=UC.command(t.command),t.args=t.args.map(s=>UC.argument(s,n));let i=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${i}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function W7(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:G7(n)}qC.exports=W7});var BC=T((J$e,ZC)=>{"use strict";var w0=process.platform==="win32";function E0(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 K7(t,e){if(!w0)return;let r=t.emit;t.emit=function(n,i){if(n==="exit"){let s=HC(i,e);if(s)return r.call(t,"error",s)}return r.apply(t,arguments)}}function HC(t,e){return w0&&t===1&&!e.file?E0(e.original,"spawn"):null}function J7(t,e){return w0&&t===1&&!e.file?E0(e.original,"spawnSync"):null}ZC.exports={hookChildProcess:K7,verifyENOENT:HC,verifyENOENTSync:J7,notFoundError:E0}});var WC=T((X$e,Za)=>{"use strict";var VC=require("child_process"),k0=FC(),$0=BC();function GC(t,e,r){let n=k0(t,e,r),i=VC.spawn(n.command,n.args,n.options);return $0.hookChildProcess(i,n),i}function X7(t,e,r){let n=k0(t,e,r),i=VC.spawnSync(n.command,n.args,n.options);return i.error=i.error||$0.verifyENOENTSync(i.status,n),i}Za.exports=GC;Za.exports.spawn=GC;Za.exports.sync=X7;Za.exports._parse=k0;Za.exports._enoent=$0});var Gi,Fl,QC,T0,YC,I0,y,oe=Oe(()=>{"use strict";Gi=require("fs"),Fl=require("path"),QC=require("os"),T0=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(T0||{}),YC=(0,Fl.join)((0,QC.homedir)(),".claude-mem"),I0=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,Fl.join)(YC,"logs");(0,Gi.existsSync)(e)||(0,Gi.mkdirSync)(e,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=(0,Fl.join)(e,`claude-mem-${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,Fl.join)(YC,"settings.json");if((0,Gi.existsSync)(e)){let r=(0,Gi.readFileSync)(e,"utf-8"),i=(JSON.parse(r).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=T0[i]??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"),i=String(e.getDate()).padStart(2,"0"),s=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${i} ${s}:${o}:${a}.${c}`}log(e,r,n,i,s){if(e{for(let u of a)(0,Pd.checkReportMissingProp)(t,u)}):(r.if((0,P0._)`${c} && (${(0,Pd.checkMissingProp)(t,a,s)})`),(0,Pd.reportMissingProp)(t,s),r.else())}}Di.validatePropertyDeps=dA;function pA(t,e=t.schema){let{gen:r,data:n,keyword:i,it:s}=t,o=r.name("valid");for(let a in e)(0,lJ.alwaysValidSchema)(s,e[a])||(r.if((0,Pd.propertyInData)(r,n,a,s.opts.ownProperties),()=>{let c=t.subschema({keyword:i,schemaProp:a},o);t.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),t.ok(o))}Di.validateSchemaDeps=pA;Di.default=dJ});var hA=$(A0=>{"use strict";Object.defineProperty(A0,"__esModule",{value:!0});var mA=Ue(),fJ=st(),mJ={message:"property name must be valid",params:({params:t})=>(0,mA._)`{propertyName: ${t.propertyName}}`},hJ={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:mJ,code(t){let{gen:e,schema:r,data:n,it:i}=t;if((0,fJ.alwaysValidSchema)(i,r))return;let s=e.name("valid");e.forIn("key",n,o=>{t.setParams({propertyName:o}),t.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},s),e.if((0,mA.not)(s),()=>{t.error(!0),i.allErrors||e.break()})}),t.ok(s)}};A0.default=hJ});var M0=$(N0=>{"use strict";Object.defineProperty(N0,"__esModule",{value:!0});var Ah=Fn(),li=Ue(),gJ=gs(),Nh=st(),vJ={message:"must NOT have additional properties",params:({params:t})=>(0,li._)`{additionalProperty: ${t.additionalProperty}}`},yJ={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:vJ,code(t){let{gen:e,schema:r,parentSchema:n,data:i,errsCount:s,it:o}=t;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,Nh.alwaysValidSchema)(o,r))return;let u=(0,Ah.allSchemaProperties)(n.properties),l=(0,Ah.allSchemaProperties)(n.patternProperties);d(),t.ok((0,li._)`${s} === ${gJ.default.errors}`);function d(){e.forIn("key",i,g=>{!u.length&&!l.length?m(g):e.if(p(g),()=>m(g))})}function p(g){let v;if(u.length>8){let S=(0,Nh.schemaRefOrVal)(o,n.properties,"properties");v=(0,Ah.isOwnProperty)(e,S,g)}else u.length?v=(0,li.or)(...u.map(S=>(0,li._)`${g} === ${S}`)):v=li.nil;return l.length&&(v=(0,li.or)(v,...l.map(S=>(0,li._)`${(0,Ah.usePattern)(t,S)}.test(${g})`))),(0,li.not)(v)}function f(g){e.code((0,li._)`delete ${i}[${g}]`)}function m(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){f(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),a||e.break();return}if(typeof r=="object"&&!(0,Nh.alwaysValidSchema)(o,r)){let v=e.name("valid");c.removeAdditional==="failing"?(h(g,v,!1),e.if((0,li.not)(v),()=>{t.reset(),f(g)})):(h(g,v),a||e.if((0,li.not)(v),()=>e.break()))}}function h(g,v,S){let b={keyword:"additionalProperties",dataProp:g,dataPropType:Nh.Type.Str};S===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,v)}}};N0.default=yJ});var yA=$(j0=>{"use strict";Object.defineProperty(j0,"__esModule",{value:!0});var _J=yd(),gA=Fn(),D0=st(),vA=M0(),bJ={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:s}=t;s.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&vA.default.code(new _J.KeywordCxt(s,vA.default,"additionalProperties"));let o=(0,gA.allSchemaProperties)(r);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=D0.mergeEvaluated.props(e,(0,D0.toHash)(o),s.props));let a=o.filter(d=>!(0,D0.alwaysValidSchema)(s,r[d]));if(a.length===0)return;let c=e.name("valid");for(let d of a)u(d)?l(d):(e.if((0,gA.propertyInData)(e,i,d,s.opts.ownProperties)),l(d),s.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(d),t.ok(c);function u(d){return s.opts.useDefaults&&!s.compositeRule&&r[d].default!==void 0}function l(d){t.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};j0.default=bJ});var xA=$(z0=>{"use strict";Object.defineProperty(z0,"__esModule",{value:!0});var _A=Fn(),Mh=Ue(),bA=st(),SA=st(),SJ={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:i,it:s}=t,{opts:o}=s,a=(0,_A.allSchemaProperties)(r),c=a.filter(h=>(0,bA.alwaysValidSchema)(s,r[h]));if(a.length===0||c.length===a.length&&(!s.opts.unevaluated||s.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,l=e.name("valid");s.props!==!0&&!(s.props instanceof Mh.Name)&&(s.props=(0,SA.evaluatedPropsToName)(e,s.props));let{props:d}=s;p();function p(){for(let h of a)u&&f(h),s.allErrors?m(h):(e.var(l,!0),m(h),e.if(l))}function f(h){for(let g in u)new RegExp(h).test(g)&&(0,bA.checkStrictMode)(s,`property ${g} matches pattern ${h} (use allowMatchingProperties)`)}function m(h){e.forIn("key",n,g=>{e.if((0,Mh._)`${(0,_A.usePattern)(t,h)}.test(${g})`,()=>{let v=c.includes(h);v||t.subschema({keyword:"patternProperties",schemaProp:h,dataProp:g,dataPropType:SA.Type.Str},l),s.opts.unevaluated&&d!==!0?e.assign((0,Mh._)`${d}[${g}]`,!0):!v&&!s.allErrors&&e.if((0,Mh.not)(l),()=>e.break())})})}}};z0.default=SJ});var wA=$(L0=>{"use strict";Object.defineProperty(L0,"__esModule",{value:!0});var xJ=st(),wJ={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,xJ.alwaysValidSchema)(n,r)){t.fail();return}let i=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),t.failResult(i,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};L0.default=wJ});var EA=$(U0=>{"use strict";Object.defineProperty(U0,"__esModule",{value:!0});var EJ=Fn(),kJ={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:EJ.validateUnion,error:{message:"must match a schema in anyOf"}};U0.default=kJ});var kA=$(F0=>{"use strict";Object.defineProperty(F0,"__esModule",{value:!0});var Dh=Ue(),TJ=st(),$J={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Dh._)`{passingSchemas: ${t.passing}}`},IJ={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:$J,code(t){let{gen:e,schema:r,parentSchema:n,it:i}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let s=r,o=e.let("valid",!1),a=e.let("passing",null),c=e.name("_valid");t.setParams({passing:a}),e.block(u),t.result(o,()=>t.reset(),()=>t.error(!0));function u(){s.forEach((l,d)=>{let p;(0,TJ.alwaysValidSchema)(i,l)?e.var(c,!0):p=t.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&e.if((0,Dh._)`${c} && ${o}`).assign(o,!1).assign(a,(0,Dh._)`[${a}, ${d}]`).else(),e.if(c,()=>{e.assign(o,!0),e.assign(a,d),p&&t.mergeEvaluated(p,Dh.Name)})})}}};F0.default=IJ});var TA=$(q0=>{"use strict";Object.defineProperty(q0,"__esModule",{value:!0});var RJ=st(),OJ={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 i=e.name("valid");r.forEach((s,o)=>{if((0,RJ.alwaysValidSchema)(n,s))return;let a=t.subschema({keyword:"allOf",schemaProp:o},i);t.ok(i),t.mergeEvaluated(a)})}};q0.default=OJ});var RA=$(H0=>{"use strict";Object.defineProperty(H0,"__esModule",{value:!0});var jh=Ue(),IA=st(),CJ={message:({params:t})=>(0,jh.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,jh._)`{failingKeyword: ${t.ifClause}}`},PJ={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:CJ,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,IA.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=$A(n,"then"),s=$A(n,"else");if(!i&&!s)return;let o=e.let("valid",!0),a=e.name("_valid");if(c(),t.reset(),i&&s){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(a,u("then",l),u("else",l))}else i?e.if(a,u("then")):e.if((0,jh.not)(a),u("else"));t.pass(o,()=>t.error(!0));function c(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);t.mergeEvaluated(l)}function u(l,d){return()=>{let p=t.subschema({keyword:l},a);e.assign(o,a),t.mergeValidEvaluated(p,o),d?e.assign(d,(0,jh._)`${l}`):t.setParams({ifClause:l})}}}};function $A(t,e){let r=t.schema[e];return r!==void 0&&!(0,IA.alwaysValidSchema)(t,r)}H0.default=PJ});var OA=$(Z0=>{"use strict";Object.defineProperty(Z0,"__esModule",{value:!0});var AJ=st(),NJ={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,AJ.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Z0.default=NJ});var CA=$(B0=>{"use strict";Object.defineProperty(B0,"__esModule",{value:!0});var MJ=$0(),DJ=aA(),jJ=I0(),zJ=uA(),LJ=lA(),UJ=fA(),FJ=hA(),qJ=M0(),HJ=yA(),ZJ=xA(),BJ=wA(),GJ=EA(),WJ=kA(),VJ=TA(),KJ=RA(),JJ=OA();function XJ(t=!1){let e=[BJ.default,GJ.default,WJ.default,VJ.default,KJ.default,JJ.default,FJ.default,qJ.default,UJ.default,HJ.default,ZJ.default];return t?e.push(DJ.default,zJ.default):e.push(MJ.default,jJ.default),e.push(LJ.default),e}B0.default=XJ});var PA=$(G0=>{"use strict";Object.defineProperty(G0,"__esModule",{value:!0});var Jt=Ue(),YJ={message:({schemaCode:t})=>(0,Jt.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Jt._)`{format: ${t}}`},QJ={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:YJ,code(t,e){let{gen:r,data:n,$data:i,schema:s,schemaCode:o,it:a}=t,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;i?p():f();function p(){let m=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),h=r.const("fDef",(0,Jt._)`${m}[${o}]`),g=r.let("fType"),v=r.let("format");r.if((0,Jt._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>r.assign(g,(0,Jt._)`${h}.type || "string"`).assign(v,(0,Jt._)`${h}.validate`),()=>r.assign(g,(0,Jt._)`"string"`).assign(v,h)),t.fail$data((0,Jt.or)(S(),b()));function S(){return c.strictSchema===!1?Jt.nil:(0,Jt._)`${o} && !${v}`}function b(){let y=l.$async?(0,Jt._)`(${h}.async ? await ${v}(${n}) : ${v}(${n}))`:(0,Jt._)`${v}(${n})`,x=(0,Jt._)`(typeof ${v} == "function" ? ${y} : ${v}.test(${n}))`;return(0,Jt._)`${v} && ${v} !== true && ${g} === ${e} && !${x}`}}function f(){let m=d.formats[s];if(!m){S();return}if(m===!0)return;let[h,g,v]=b(m);h===e&&t.pass(y());function S(){if(c.strictSchema===!1){d.logger.warn(x());return}throw new Error(x());function x(){return`unknown format "${s}" ignored in schema at path "${u}"`}}function b(x){let w=x instanceof RegExp?(0,Jt.regexpCode)(x):c.code.formats?(0,Jt._)`${c.code.formats}${(0,Jt.getProperty)(s)}`:void 0,E=r.scopeValue("formats",{key:s,ref:x,code:w});return typeof x=="object"&&!(x instanceof RegExp)?[x.type||"string",x.validate,(0,Jt._)`${E}.validate`]:["string",x,E]}function y(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Jt._)`await ${v}(${n})`}return typeof g=="function"?(0,Jt._)`${v}(${n})`:(0,Jt._)`${v}.test(${n})`}}}};G0.default=QJ});var AA=$(W0=>{"use strict";Object.defineProperty(W0,"__esModule",{value:!0});var eX=PA(),tX=[eX.default];W0.default=tX});var NA=$(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});yc.contentVocabulary=yc.metadataVocabulary=void 0;yc.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];yc.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var DA=$(V0=>{"use strict";Object.defineProperty(V0,"__esModule",{value:!0});var rX=HP(),nX=nA(),iX=CA(),sX=AA(),MA=NA(),oX=[rX.default,nX.default,(0,iX.default)(),sX.default,MA.metadataVocabulary,MA.contentVocabulary];V0.default=oX});var zA=$(zh=>{"use strict";Object.defineProperty(zh,"__esModule",{value:!0});zh.DiscrError=void 0;var jA;(function(t){t.Tag="tag",t.Mapping="mapping"})(jA||(zh.DiscrError=jA={}))});var UA=$(J0=>{"use strict";Object.defineProperty(J0,"__esModule",{value:!0});var _c=Ue(),K0=zA(),LA=_h(),aX=_d(),cX=st(),uX={message:({params:{discrError:t,tagName:e}})=>t===K0.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,_c._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},lX={keyword:"discriminator",type:"object",schemaType:"object",error:uX,code(t){let{gen:e,data:r,schema:n,parentSchema:i,it:s}=t,{oneOf:o}=i;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=n.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,_c._)`${r}${(0,_c.getProperty)(a)}`);e.if((0,_c._)`typeof ${u} == "string"`,()=>l(),()=>t.error(!1,{discrError:K0.DiscrError.Tag,tag:u,tagName:a})),t.ok(c);function l(){let f=p();e.if(!1);for(let m in f)e.elseIf((0,_c._)`${u} === ${m}`),e.assign(c,d(f[m]));e.else(),t.error(!1,{discrError:K0.DiscrError.Mapping,tag:u,tagName:a}),e.endIf()}function d(f){let m=e.name("valid"),h=t.subschema({keyword:"oneOf",schemaProp:f},m);return t.mergeEvaluated(h,_c.Name),m}function p(){var f;let m={},h=v(i),g=!0;for(let y=0;y{dX.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 Y0=$((Pt,X0)=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.MissingRefError=Pt.ValidationError=Pt.CodeGen=Pt.Name=Pt.nil=Pt.stringify=Pt.str=Pt._=Pt.KeywordCxt=Pt.Ajv=void 0;var pX=jP(),fX=DA(),mX=UA(),qA=FA(),hX=["/properties"],Lh="http://json-schema.org/draft-07/schema",bc=class extends pX.default{_addVocabularies(){super._addVocabularies(),fX.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(mX.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(qA,hX):qA;this.addMetaSchema(e,Lh,!1),this.refs["http://json-schema.org/schema"]=Lh}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Lh)?Lh:void 0)}};Pt.Ajv=bc;X0.exports=Pt=bc;X0.exports.Ajv=bc;Object.defineProperty(Pt,"__esModule",{value:!0});Pt.default=bc;var gX=yd();Object.defineProperty(Pt,"KeywordCxt",{enumerable:!0,get:function(){return gX.KeywordCxt}});var Sc=Ue();Object.defineProperty(Pt,"_",{enumerable:!0,get:function(){return Sc._}});Object.defineProperty(Pt,"str",{enumerable:!0,get:function(){return Sc.str}});Object.defineProperty(Pt,"stringify",{enumerable:!0,get:function(){return Sc.stringify}});Object.defineProperty(Pt,"nil",{enumerable:!0,get:function(){return Sc.nil}});Object.defineProperty(Pt,"Name",{enumerable:!0,get:function(){return Sc.Name}});Object.defineProperty(Pt,"CodeGen",{enumerable:!0,get:function(){return Sc.CodeGen}});var vX=vh();Object.defineProperty(Pt,"ValidationError",{enumerable:!0,get:function(){return vX.default}});var yX=_d();Object.defineProperty(Pt,"MissingRefError",{enumerable:!0,get:function(){return yX.default}})});var JA=$(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.formatNames=zi.fastFormats=zi.fullFormats=void 0;function ji(t,e){return{validate:t,compare:e}}zi.fullFormats={date:ji(GA,rE),time:ji(eE(!0),nE),"date-time":ji(HA(!0),VA),"iso-time":ji(eE(),WA),"iso-date-time":ji(HA(),KA),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:EX,"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:CX,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:kX,int32:{type:"number",validate:IX},int64:{type:"number",validate:RX},float:{type:"number",validate:BA},double:{type:"number",validate:BA},password:!0,binary:!0};zi.fastFormats={...zi.fullFormats,date:ji(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,rE),time:ji(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,nE),"date-time":ji(/^\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,VA),"iso-time":ji(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,WA),"iso-date-time":ji(/^\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,KA),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};zi.formatNames=Object.keys(zi.fullFormats);function _X(t){return t%4===0&&(t%100!==0||t%400===0)}var bX=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,SX=[0,31,28,31,30,31,30,31,31,30,31,30,31];function GA(t){let e=bX.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],i=+e[3];return n>=1&&n<=12&&i>=1&&i<=(n===2&&_X(r)?29:SX[n])}function rE(t,e){if(t&&e)return t>e?1:t23||l>59||t&&!a)return!1;if(i<=23&&s<=59&&o<60)return!0;let d=s-l*c,p=i-u*c-(d<0?1:0);return(p===23||p===-1)&&(d===59||d===-1)&&o<61}}function nE(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 WA(t,e){if(!(t&&e))return;let r=Q0.exec(t),n=Q0.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=TX}function RX(t){return Number.isInteger(t)}function BA(){return!0}var OX=/[^\\]\\Z/;function CX(t){if(OX.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var XA=$(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.formatLimitDefinition=void 0;var PX=Y0(),di=Ue(),so=di.operators,Uh={formatMaximum:{okStr:"<=",ok:so.LTE,fail:so.GT},formatMinimum:{okStr:">=",ok:so.GTE,fail:so.LT},formatExclusiveMaximum:{okStr:"<",ok:so.LT,fail:so.GTE},formatExclusiveMinimum:{okStr:">",ok:so.GT,fail:so.LTE}},AX={message:({keyword:t,schemaCode:e})=>(0,di.str)`should be ${Uh[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,di._)`{comparison: ${Uh[t].okStr}, limit: ${e}}`};xc.formatLimitDefinition={keyword:Object.keys(Uh),type:"string",schemaType:"string",$data:!0,error:AX,code(t){let{gen:e,data:r,schemaCode:n,keyword:i,it:s}=t,{opts:o,self:a}=s;if(!o.validateFormats)return;let c=new PX.KeywordCxt(s,a.RULES.all.format.definition,"format");c.$data?u():l();function u(){let p=e.scopeValue("formats",{ref:a.formats,code:o.code.formats}),f=e.const("fmt",(0,di._)`${p}[${c.schemaCode}]`);t.fail$data((0,di.or)((0,di._)`typeof ${f} != "object"`,(0,di._)`${f} instanceof RegExp`,(0,di._)`typeof ${f}.compare != "function"`,d(f)))}function l(){let p=c.schema,f=a.formats[p];if(!f||f===!0)return;if(typeof f!="object"||f instanceof RegExp||typeof f.compare!="function")throw new Error(`"${i}": format "${p}" does not define "compare" function`);let m=e.scopeValue("formats",{key:p,ref:f,code:o.code.formats?(0,di._)`${o.code.formats}${(0,di.getProperty)(p)}`:void 0});t.fail$data(d(m))}function d(p){return(0,di._)`${p}.compare(${r}, ${n}) ${Uh[i].fail} 0`}},dependencies:["format"]};var NX=t=>(t.addKeyword(xc.formatLimitDefinition),t);xc.default=NX});var tN=$((Ad,eN)=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});var wc=JA(),MX=XA(),iE=Ue(),YA=new iE.Name("fullFormats"),DX=new iE.Name("fastFormats"),sE=(t,e={keywords:!0})=>{if(Array.isArray(e))return QA(t,e,wc.fullFormats,YA),t;let[r,n]=e.mode==="fast"?[wc.fastFormats,DX]:[wc.fullFormats,YA],i=e.formats||wc.formatNames;return QA(t,i,r,n),e.keywords&&(0,MX.default)(t),t};sE.get=(t,e="full")=>{let n=(e==="fast"?wc.fastFormats:wc.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function QA(t,e,r,n){var i,s;(i=(s=t.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,iE._)`require("ajv-formats/dist/formats").${n}`);for(let o of e)t.addFormat(o,r[o])}eN.exports=Ad=sE;Object.defineProperty(Ad,"__esModule",{value:!0});Ad.default=sE});var lN=$((IOe,uN)=>{uN.exports=cN;cN.sync=UX;var oN=require("fs");function LX(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{mN.exports=pN;pN.sync=FX;var dN=require("fs");function pN(t,e,r){dN.stat(t,function(n,i){r(n,n?!1:fN(i,e))})}function FX(t,e){return fN(dN.statSync(t),e)}function fN(t,e){return t.isFile()&&qX(t,e)}function qX(t,e){var r=t.mode,n=t.uid,i=t.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),l=a|c,d=r&u||r&c&&i===o||r&a&&n===s||r&l&&s===0;return d}});var vN=$((COe,gN)=>{var OOe=require("fs"),Zh;process.platform==="win32"||global.TESTING_WINDOWS?Zh=lN():Zh=hN();gN.exports=oE;oE.sync=HX;function oE(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,i){oE(t,e||{},function(s,o){s?i(s):n(o)})})}Zh(t,e||{},function(n,i){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,i=!1),r(n,i)})}function HX(t,e){try{return Zh.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var EN=$((POe,wN)=>{var kc=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",yN=require("path"),ZX=kc?";":":",_N=vN(),bN=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),SN=(t,e)=>{let r=e.colon||ZX,n=t.match(/\//)||kc&&t.match(/\\/)?[""]:[...kc?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],i=kc?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kc?i.split(r):[""];return kc&&t.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:n,pathExt:s,pathExtExe:i}},xN=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:i,pathExtExe:s}=SN(t,e),o=[],a=u=>new Promise((l,d)=>{if(u===n.length)return e.all&&o.length?l(o):d(bN(t));let p=n[u],f=/^".*"$/.test(p)?p.slice(1,-1):p,m=yN.join(f,t),h=!f&&/^\.[\\\/]/.test(t)?t.slice(0,2)+m:m;l(c(h,u,0))}),c=(u,l,d)=>new Promise((p,f)=>{if(d===i.length)return p(a(l+1));let m=i[d];_N(u+m,{pathExt:s},(h,g)=>{if(!h&&g)if(e.all)o.push(u+m);else return p(u+m);return p(c(u,l,d+1))})});return r?a(0).then(u=>r(null,u),r):a(0)},BX=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:i}=SN(t,e),s=[];for(let o=0;o{"use strict";var kN=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};aE.exports=kN;aE.exports.default=kN});var ON=$((NOe,RN)=>{"use strict";var $N=require("path"),GX=EN(),WX=TN();function IN(t,e){let r=t.options.env||process.env,n=process.cwd(),i=t.options.cwd!=null,s=i&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(t.options.cwd)}catch{}let o;try{o=GX.sync(t.command,{path:r[WX({env:r})],pathExt:e?$N.delimiter:void 0})}catch{}finally{s&&process.chdir(n)}return o&&(o=$N.resolve(i?t.options.cwd:"",o)),o}function VX(t){return IN(t)||IN(t,!0)}RN.exports=VX});var CN=$((MOe,uE)=>{"use strict";var cE=/([()\][%!^"`<>&|;, *?])/g;function KX(t){return t=t.replace(cE,"^$1"),t}function JX(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(cE,"^$1"),e&&(t=t.replace(cE,"^$1")),t}uE.exports.command=KX;uE.exports.argument=JX});var AN=$((DOe,PN)=>{"use strict";PN.exports=/^#!(.*)/});var MN=$((jOe,NN)=>{"use strict";var XX=AN();NN.exports=(t="")=>{let e=t.match(XX);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return i==="env"?n:n?`${i} ${n}`:i}});var jN=$((zOe,DN)=>{"use strict";var lE=require("fs"),YX=MN();function QX(t){let r=Buffer.alloc(150),n;try{n=lE.openSync(t,"r"),lE.readSync(n,r,0,150,0),lE.closeSync(n)}catch{}return YX(r.toString())}DN.exports=QX});var FN=$((LOe,UN)=>{"use strict";var eY=require("path"),zN=ON(),LN=CN(),tY=jN(),rY=process.platform==="win32",nY=/\.(?:com|exe)$/i,iY=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function sY(t){t.file=zN(t);let e=t.file&&tY(t.file);return e?(t.args.unshift(t.file),t.command=e,zN(t)):t.file}function oY(t){if(!rY)return t;let e=sY(t),r=!nY.test(e);if(t.options.forceShell||r){let n=iY.test(e);t.command=eY.normalize(t.command),t.command=LN.command(t.command),t.args=t.args.map(s=>LN.argument(s,n));let i=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${i}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function aY(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:oY(n)}UN.exports=aY});var ZN=$((UOe,HN)=>{"use strict";var dE=process.platform==="win32";function pE(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 cY(t,e){if(!dE)return;let r=t.emit;t.emit=function(n,i){if(n==="exit"){let s=qN(i,e);if(s)return r.call(t,"error",s)}return r.apply(t,arguments)}}function qN(t,e){return dE&&t===1&&!e.file?pE(e.original,"spawn"):null}function uY(t,e){return dE&&t===1&&!e.file?pE(e.original,"spawnSync"):null}HN.exports={hookChildProcess:cY,verifyENOENT:qN,verifyENOENTSync:uY,notFoundError:pE}});var WN=$((FOe,Tc)=>{"use strict";var BN=require("child_process"),fE=FN(),mE=ZN();function GN(t,e,r){let n=fE(t,e,r),i=BN.spawn(n.command,n.args,n.options);return mE.hookChildProcess(i,n),i}function lY(t,e,r){let n=fE(t,e,r),i=BN.spawnSync(n.command,n.args,n.options);return i.error=i.error||mE.verifyENOENTSync(i.status,n),i}Tc.exports=GN;Tc.exports.spawn=GN;Tc.exports.sync=lY;Tc.exports._parse=fE;Tc.exports._enoent=mE});var _s,Md,YN,hE,XN,gE,_,re=Oe(()=>{"use strict";_s=require("fs"),Md=require("path"),YN=require("os"),hE=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(hE||{}),XN=(0,Md.join)((0,YN.homedir)(),".claude-mem"),gE=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,Md.join)(XN,"logs");(0,_s.existsSync)(e)||(0,_s.mkdirSync)(e,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=(0,Md.join)(e,`claude-mem-${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,Md.join)(XN,"settings.json");if((0,_s.existsSync)(e)){let r=(0,_s.readFileSync)(e,"utf-8"),i=(JSON.parse(r).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=hE[i]??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"),i=String(e.getDate()).padStart(2,"0"),s=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${i} ${s}:${o}:${a}.${c}`}log(e,r,n,i,s){if(e0&&(d=` {${Object.entries(h).map(([x,b])=>`${x}=${b}`).join(", ")}}`)}let p=`[${o}] [${a}] [${c}] ${u}${n}${d}${l}`;if(this.logFilePath)try{(0,Gi.appendFileSync)(this.logFilePath,p+` -`,"utf8")}catch(m){process.stderr.write(`[LOGGER] Failed to write to log file: ${m} +`+JSON.stringify(s,null,2):l=" "+this.formatData(s));let d="";if(i){let{sessionId:f,memorySessionId:m,correlationId:h,...g}=i;Object.keys(g).length>0&&(d=` {${Object.entries(g).map(([S,b])=>`${S}=${b}`).join(", ")}}`)}let p=`[${o}] [${a}] [${c}] ${u}${n}${d}${l}`;if(this.logFilePath)try{(0,_s.appendFileSync)(this.logFilePath,p+` +`,"utf8")}catch(f){process.stderr.write(`[LOGGER] Failed to write to log file: ${f} `)}else process.stderr.write(p+` `)}debug(e,r,n,i){this.log(0,e,r,n,i)}info(e,r,n,i){this.log(1,e,r,n,i)}warn(e,r,n,i){this.log(2,e,r,n,i)}error(e,r,n,i){this.log(3,e,r,n,i)}dataIn(e,r,n,i){this.info(e,`\u2192 ${r}`,n,i)}dataOut(e,r,n,i){this.info(e,`\u2190 ${r}`,n,i)}success(e,r,n,i){this.info(e,`\u2713 ${r}`,n,i)}failure(e,r,n,i){this.error(e,`\u2717 ${r}`,n,i)}timing(e,r,n,i){this.info(e,`\u23F1 ${r}`,i,{duration:`${n}ms`})}happyPathError(e,r,n,i,s=""){let u=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",d={...n,location:l};return this.warn(e,`[HAPPY-PATH] ${r}`,d,i),s}},y=new I0});function Af(t){return process.platform==="win32"?Math.round(t*_r.WINDOWS_MULTIPLIER):t}var _r,Qe,en=Oe(()=>{"use strict";_r={DEFAULT:3e5,HEALTH_CHECK:3e3,POST_SPAWN_WAIT:5e3,READINESS_WAIT:3e4,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5},Qe={SUCCESS:0,FAILURE:1,BLOCKING_ERROR:2,USER_MESSAGE_ONLY:3}});var tA={};ln(tA,{SettingsDefaultsManager:()=>_e});var gi,Nf,eA,_e,Yt=Oe(()=>{"use strict";gi=require("fs"),Nf=require("path"),eA=require("os"),_e=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:"cli",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,Nf.join)((0,eA.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT:"true",CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]",CLAUDE_MEM_CHROMA_ENABLED:"true",CLAUDE_MEM_CHROMA_MODE:"local",CLAUDE_MEM_CHROMA_HOST:"127.0.0.1",CLAUDE_MEM_CHROMA_PORT:"8000",CLAUDE_MEM_CHROMA_SSL:"false",CLAUDE_MEM_CHROMA_API_KEY:"",CLAUDE_MEM_CHROMA_TENANT:"default_tenant",CLAUDE_MEM_CHROMA_DATABASE:"default_database"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return process.env[e]??this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){let r=this.get(e);return r==="true"||r===!0}static applyEnvOverrides(e){let r={...e};for(let n of Object.keys(this.DEFAULTS))process.env[n]!==void 0&&(r[n]=process.env[n]);return r}static loadFromFile(e){try{if(!(0,gi.existsSync)(e)){let o=this.getAllDefaults();try{let a=(0,Nf.dirname)(e);(0,gi.existsSync)(a)||(0,gi.mkdirSync)(a,{recursive:!0}),(0,gi.writeFileSync)(e,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(a){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,a)}return this.applyEnvOverrides(o)}let r=(0,gi.readFileSync)(e,"utf-8"),n=JSON.parse(r),i=n;if(n.env&&typeof n.env=="object"){i=n.env;try{(0,gi.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(o){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,o)}}let s={...this.DEFAULTS};for(let o of Object.keys(this.DEFAULTS))i[o]!==void 0&&(s[o]=i[o]);return this.applyEnvOverrides(s)}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.applyEnvOverrides(this.getAllDefaults())}}}});var uA={};ln(uA,{ARCHIVES_DIR:()=>O0,BACKUPS_DIR:()=>oA,CLAUDE_COMMANDS_DIR:()=>aA,CLAUDE_CONFIG_DIR:()=>Wi,CLAUDE_MD_PATH:()=>aK,CLAUDE_SETTINGS_PATH:()=>oK,DATA_DIR:()=>ar,DB_PATH:()=>Hl,LOGS_DIR:()=>iA,MARKETPLACE_ROOT:()=>Ki,MODES_DIR:()=>P0,OBSERVER_SESSIONS_DIR:()=>Df,TRASH_DIR:()=>sA,USER_SETTINGS_PATH:()=>At,VECTOR_DB_DIR:()=>sK,createBackupFilename:()=>fK,ensureAllClaudeDirs:()=>pK,ensureAllDataDirs:()=>lK,ensureDir:()=>Ir,ensureModesDir:()=>dK,getCurrentProjectName:()=>cA,getPackageCommandsDir:()=>mK,getPackageRoot:()=>tn,getProjectArchiveDir:()=>cK,getWorkerSocketPath:()=>uK});function rK(){return typeof __dirname<"u"?__dirname:(0,lt.dirname)((0,nA.fileURLToPath)(hK.url))}function iK(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let t=(0,lt.join)((0,R0.homedir)(),".claude-mem"),e=(0,lt.join)(t,"settings.json");try{if((0,Mf.existsSync)(e)){let{readFileSync:r}=require("fs"),n=JSON.parse(r(e,"utf-8")),i=n.env??n;if(i.CLAUDE_MEM_DATA_DIR)return i.CLAUDE_MEM_DATA_DIR}}catch{}return t}function cK(t){return(0,lt.join)(O0,t)}function uK(t){return(0,lt.join)(ar,`worker-${t}.sock`)}function Ir(t){(0,Mf.mkdirSync)(t,{recursive:!0})}function lK(){Ir(ar),Ir(O0),Ir(iA),Ir(sA),Ir(oA),Ir(P0)}function dK(){Ir(P0)}function pK(){Ir(Wi),Ir(aA)}function cA(){try{let t=(0,rA.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0}).trim();return(0,lt.basename)((0,lt.dirname)(t))+"/"+(0,lt.basename)(t)}catch(t){y.debug("SYSTEM","Git root detection failed, using cwd basename",{cwd:process.cwd()},t);let e=process.cwd();return(0,lt.basename)((0,lt.dirname)(e))+"/"+(0,lt.basename)(e)}}function tn(){return(0,lt.join)(nK,"..")}function mK(){let t=tn();return(0,lt.join)(t,"commands")}function fK(t){let e=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${t}.backup.${e}`}var lt,R0,Mf,rA,nA,hK,nK,ar,Wi,Ki,O0,iA,sA,oA,P0,At,Hl,sK,Df,oK,aA,aK,Nt=Oe(()=>{"use strict";lt=require("path"),R0=require("os"),Mf=require("fs"),rA=require("child_process"),nA=require("url");oe();hK={};nK=rK();ar=iK(),Wi=process.env.CLAUDE_CONFIG_DIR||(0,lt.join)((0,R0.homedir)(),".claude"),Ki=(0,lt.join)(Wi,"plugins","marketplaces","thedotmack"),O0=(0,lt.join)(ar,"archives"),iA=(0,lt.join)(ar,"logs"),sA=(0,lt.join)(ar,"trash"),oA=(0,lt.join)(ar,"backups"),P0=(0,lt.join)(ar,"modes"),At=(0,lt.join)(ar,"settings.json"),Hl=(0,lt.join)(ar,"claude-mem.db"),sK=(0,lt.join)(ar,"vector-db"),Df=(0,lt.join)(ar,"observer-sessions"),oK=(0,lt.join)(Wi,"settings.json"),aA=(0,lt.join)(Wi,"commands"),aK=(0,lt.join)(Wi,"CLAUDE.md")});function gK(t,e={},r){return new Promise((n,i)=>{let s=setTimeout(()=>i(new Error(`Request timed out after ${r}ms`)),r);fetch(t,e).then(o=>{clearTimeout(s),n(o)},o=>{clearTimeout(s),i(o)})})}function Fr(){if(Zl!==null)return Zl;let t=jf.default.join(_e.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=_e.loadFromFile(t);return Zl=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),Zl}function A0(){if(Bl!==null)return Bl;let t=jf.default.join(_e.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return Bl=_e.loadFromFile(t).CLAUDE_MEM_WORKER_HOST,Bl}function dA(){Zl=null,Bl=null}function vK(t){return`http://${A0()}:${Fr()}${t}`}function wt(t,e={}){let r=e.method??"GET",n=e.timeoutMs??C0,i=vK(t),s={method:r};return e.headers&&(s.headers=e.headers),e.body&&(s.body=e.body),n>0?gK(i,s,n):fetch(i,s)}async function yK(){return(await wt("/api/health",{timeoutMs:C0})).ok}function _K(){try{let t=jf.default.join(Ki,"package.json");return JSON.parse((0,lA.readFileSync)(t,"utf-8")).version}catch(t){let e=t.code;if(e==="ENOENT"||e==="EBUSY")return y.debug("SYSTEM","Could not read plugin version (shutdown race)",{code:e}),"unknown";throw t}}async function bK(){let t=await wt("/api/version",{timeoutMs:C0});if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function xK(){try{let t=_K();if(t==="unknown")return;let e=await bK();if(e==="unknown")return;t!==e&&y.debug("SYSTEM","Version check",{pluginVersion:t,workerVersion:e,note:"Mismatch will be auto-restarted by worker-service start command"})}catch(t){y.debug("SYSTEM","Version check failed",{error:t instanceof Error?t.message:String(t)})}}async function Rr(){try{if(await yK())return await xK(),!0}catch(t){y.debug("SYSTEM","Worker health check failed",{error:t instanceof Error?t.message:String(t)})}return y.warn("SYSTEM","Worker not healthy, hook will proceed gracefully"),!1}var jf,lA,C0,Zl,Bl,Or=Oe(()=>{"use strict";jf=Ue(require("path"),1),lA=require("fs");oe();en();Yt();Nt();C0=(()=>{let t=process.env.CLAUDE_MEM_HEALTH_TIMEOUT_MS;if(t){let e=parseInt(t,10);if(Number.isFinite(e)&&e>=500&&e<=3e5)return e;y.warn("SYSTEM","Invalid CLAUDE_MEM_HEALTH_TIMEOUT_MS, using default",{value:t,min:500,max:3e5})}return Af(_r.HEALTH_CHECK)})();Zl=null,Bl=null});function Ff(t,e,r){return(0,PA.createHash)("sha256").update((t||"")+(e||"")+(r||"")).digest("hex").slice(0,16)}function Hf(t,e,r){let n=r-qK;return t.prepare("SELECT id, created_at_epoch FROM observations WHERE content_hash = ? AND created_at_epoch > ?").get(e,n)}var PA,qK,CA=Oe(()=>{"use strict";PA=require("crypto");oe();Nt();qK=3e4});var AA,Yi,Zf=Oe(()=>{"use strict";AA=require("bun:sqlite");Nt();oe();CA();Yi=class{db;constructor(e=Hl){e!==":memory:"&&Ir(ar),this.db=new AA.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.addOnUpdateCascadeToForeignKeys(),this.addObservationContentHashColumn(),this.addSessionCustomTitleColumn()}initializeSchema(){this.db.run(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",d={...n,location:l};return this.warn(e,`[HAPPY-PATH] ${r}`,d,i),s}},_=new gE});function Gh(t){return process.platform==="win32"?Math.round(t*Er.WINDOWS_MULTIPLIER):t}var Er,rt,Tn=Oe(()=>{"use strict";Er={DEFAULT:3e5,HEALTH_CHECK:3e3,POST_SPAWN_WAIT:5e3,READINESS_WAIT:3e4,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5},rt={SUCCESS:0,FAILURE:1,BLOCKING_ERROR:2,USER_MESSAGE_ONLY:3}});var eM={};_n(eM,{SettingsDefaultsManager:()=>Se});var Li,Wh,QN,Se,rr=Oe(()=>{"use strict";Li=require("fs"),Wh=require("path"),QN=require("os"),Se=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_CLAUDE_AUTH_METHOD:"cli",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,Wh.join)((0,QN.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT:"true",CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED:"false",CLAUDE_MEM_MAX_CONCURRENT_AGENTS:"2",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]",CLAUDE_MEM_SEMANTIC_INJECT:"true",CLAUDE_MEM_SEMANTIC_INJECT_LIMIT:"5",CLAUDE_MEM_TIER_ROUTING_ENABLED:"true",CLAUDE_MEM_TIER_SIMPLE_MODEL:"haiku",CLAUDE_MEM_TIER_SUMMARY_MODEL:"",CLAUDE_MEM_CHROMA_ENABLED:"true",CLAUDE_MEM_CHROMA_MODE:"local",CLAUDE_MEM_CHROMA_HOST:"127.0.0.1",CLAUDE_MEM_CHROMA_PORT:"8000",CLAUDE_MEM_CHROMA_SSL:"false",CLAUDE_MEM_CHROMA_API_KEY:"",CLAUDE_MEM_CHROMA_TENANT:"default_tenant",CLAUDE_MEM_CHROMA_DATABASE:"default_database"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return process.env[e]??this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){let r=this.get(e);return r==="true"||r===!0}static applyEnvOverrides(e){let r={...e};for(let n of Object.keys(this.DEFAULTS))process.env[n]!==void 0&&(r[n]=process.env[n]);return r}static loadFromFile(e){try{if(!(0,Li.existsSync)(e)){let o=this.getAllDefaults();try{let a=(0,Wh.dirname)(e);(0,Li.existsSync)(a)||(0,Li.mkdirSync)(a,{recursive:!0}),(0,Li.writeFileSync)(e,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(a){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,a)}return this.applyEnvOverrides(o)}let r=(0,Li.readFileSync)(e,"utf-8"),n=JSON.parse(r),i=n;if(n.env&&typeof n.env=="object"){i=n.env;try{(0,Li.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(o){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,o)}}let s={...this.DEFAULTS};for(let o of Object.keys(this.DEFAULTS))i[o]!==void 0&&(s[o]=i[o]);return this.applyEnvOverrides(s)}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.applyEnvOverrides(this.getAllDefaults())}}}});var cM={};_n(cM,{ARCHIVES_DIR:()=>yE,BACKUPS_DIR:()=>sM,CLAUDE_COMMANDS_DIR:()=>oM,CLAUDE_CONFIG_DIR:()=>bs,CLAUDE_MD_PATH:()=>bY,CLAUDE_SETTINGS_PATH:()=>_Y,DATA_DIR:()=>ur,DB_PATH:()=>Dd,LOGS_DIR:()=>nM,MARKETPLACE_ROOT:()=>Ss,MODES_DIR:()=>_E,OBSERVER_SESSIONS_DIR:()=>Kh,TRASH_DIR:()=>iM,USER_SETTINGS_PATH:()=>jt,VECTOR_DB_DIR:()=>yY,createBackupFilename:()=>$Y,ensureAllClaudeDirs:()=>kY,ensureAllDataDirs:()=>wY,ensureDir:()=>Mr,ensureModesDir:()=>EY,getCurrentProjectName:()=>aM,getPackageCommandsDir:()=>TY,getPackageRoot:()=>dn,getProjectArchiveDir:()=>SY,getWorkerSocketPath:()=>xY});function hY(){return typeof __dirname<"u"?__dirname:(0,lt.dirname)((0,rM.fileURLToPath)(IY.url))}function vY(){if(process.env.CLAUDE_MEM_DATA_DIR)return process.env.CLAUDE_MEM_DATA_DIR;let t=(0,lt.join)((0,vE.homedir)(),".claude-mem"),e=(0,lt.join)(t,"settings.json");try{if((0,Vh.existsSync)(e)){let{readFileSync:r}=require("fs"),n=JSON.parse(r(e,"utf-8")),i=n.env??n;if(i.CLAUDE_MEM_DATA_DIR)return i.CLAUDE_MEM_DATA_DIR}}catch{}return t}function SY(t){return(0,lt.join)(yE,t)}function xY(t){return(0,lt.join)(ur,`worker-${t}.sock`)}function Mr(t){(0,Vh.mkdirSync)(t,{recursive:!0})}function wY(){Mr(ur),Mr(yE),Mr(nM),Mr(iM),Mr(sM),Mr(_E)}function EY(){Mr(_E)}function kY(){Mr(bs),Mr(oM)}function aM(){try{let t=(0,tM.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0}).trim();return(0,lt.basename)((0,lt.dirname)(t))+"/"+(0,lt.basename)(t)}catch(t){_.debug("SYSTEM","Git root detection failed, using cwd basename",{cwd:process.cwd()},t);let e=process.cwd();return(0,lt.basename)((0,lt.dirname)(e))+"/"+(0,lt.basename)(e)}}function dn(){return(0,lt.join)(gY,"..")}function TY(){let t=dn();return(0,lt.join)(t,"commands")}function $Y(t){let e=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${t}.backup.${e}`}var lt,vE,Vh,tM,rM,IY,gY,ur,bs,Ss,yE,nM,iM,sM,_E,jt,Dd,yY,Kh,_Y,oM,bY,zt=Oe(()=>{"use strict";lt=require("path"),vE=require("os"),Vh=require("fs"),tM=require("child_process"),rM=require("url");re();IY={};gY=hY();ur=vY(),bs=process.env.CLAUDE_CONFIG_DIR||(0,lt.join)((0,vE.homedir)(),".claude"),Ss=(0,lt.join)(bs,"plugins","marketplaces","thedotmack"),yE=(0,lt.join)(ur,"archives"),nM=(0,lt.join)(ur,"logs"),iM=(0,lt.join)(ur,"trash"),sM=(0,lt.join)(ur,"backups"),_E=(0,lt.join)(ur,"modes"),jt=(0,lt.join)(ur,"settings.json"),Dd=(0,lt.join)(ur,"claude-mem.db"),yY=(0,lt.join)(ur,"vector-db"),Kh=(0,lt.join)(ur,"observer-sessions"),_Y=(0,lt.join)(bs,"settings.json"),oM=(0,lt.join)(bs,"commands"),bY=(0,lt.join)(bs,"CLAUDE.md")});function RY(t,e={},r){return new Promise((n,i)=>{let s=setTimeout(()=>i(new Error(`Request timed out after ${r}ms`)),r);fetch(t,e).then(o=>{clearTimeout(s),n(o)},o=>{clearTimeout(s),i(o)})})}function Jr(){if(jd!==null)return jd;let t=Jh.default.join(Se.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=Se.loadFromFile(t);return jd=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),jd}function SE(){if(zd!==null)return zd;let t=Jh.default.join(Se.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return zd=Se.loadFromFile(t).CLAUDE_MEM_WORKER_HOST,zd}function lM(){jd=null,zd=null}function OY(t){return`http://${SE()}:${Jr()}${t}`}function dt(t,e={}){let r=e.method??"GET",n=e.timeoutMs??bE,i=OY(t),s={method:r};return e.headers&&(s.headers=e.headers),e.body&&(s.body=e.body),n>0?RY(i,s,n):fetch(i,s)}async function CY(){return(await dt("/api/health",{timeoutMs:bE})).ok}function PY(){try{let t=Jh.default.join(Ss,"package.json");return JSON.parse((0,uM.readFileSync)(t,"utf-8")).version}catch(t){let e=t.code;if(e==="ENOENT"||e==="EBUSY")return _.debug("SYSTEM","Could not read plugin version (shutdown race)",{code:e}),"unknown";throw t}}async function AY(){let t=await dt("/api/version",{timeoutMs:bE});if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function NY(){try{let t=PY();if(t==="unknown")return;let e=await AY();if(e==="unknown")return;t!==e&&_.debug("SYSTEM","Version check",{pluginVersion:t,workerVersion:e,note:"Mismatch will be auto-restarted by worker-service start command"})}catch(t){_.debug("SYSTEM","Version check failed",{error:t instanceof Error?t.message:String(t)})}}async function kr(){try{if(await CY())return await NY(),!0}catch(t){_.debug("SYSTEM","Worker health check failed",{error:t instanceof Error?t.message:String(t)})}return _.warn("SYSTEM","Worker not healthy, hook will proceed gracefully"),!1}var Jh,uM,bE,jd,zd,Dr=Oe(()=>{"use strict";Jh=Pe(require("path"),1),uM=require("fs");re();Tn();rr();zt();bE=(()=>{let t=process.env.CLAUDE_MEM_HEALTH_TIMEOUT_MS;if(t){let e=parseInt(t,10);if(Number.isFinite(e)&&e>=500&&e<=3e5)return e;_.warn("SYSTEM","Invalid CLAUDE_MEM_HEALTH_TIMEOUT_MS, using default",{value:t,min:500,max:3e5})}return Gh(Er.HEALTH_CHECK)})();jd=null,zd=null});function tg(t,e,r){return(0,OM.createHash)("sha256").update((t||"")+(e||"")+(r||"")).digest("hex").slice(0,16)}function rg(t,e,r){let n=r-eQ;return t.prepare("SELECT id, created_at_epoch FROM observations WHERE content_hash = ? AND created_at_epoch > ?").get(e,n)}var OM,eQ,CM=Oe(()=>{"use strict";OM=require("crypto");re();zt();eQ=3e4});var PM,Es,ng=Oe(()=>{"use strict";PM=require("bun:sqlite");zt();re();CM();Es=class{db;constructor(e=Dd){e!==":memory:"&&Mr(ur),this.db=new PM.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.addOnUpdateCascadeToForeignKeys(),this.addObservationContentHashColumn(),this.addSessionCustomTitleColumn()}initializeSchema(){this.db.run(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, @@ -78,7 +78,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` CREATE INDEX IF NOT EXISTS idx_session_summaries_sdk_session ON session_summaries(memory_session_id); CREATE INDEX IF NOT EXISTS idx_session_summaries_project ON session_summaries(project); CREATE INDEX IF NOT EXISTS idx_session_summaries_created ON session_summaries(created_at_epoch DESC); - `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString())}ensureWorkerPortColumn(){this.db.query("PRAGMA table_info(sdk_sessions)").all().some(n=>n.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),y.debug("DB","Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}ensurePromptTrackingColumns(){this.db.query("PRAGMA table_info(sdk_sessions)").all().some(a=>a.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),y.debug("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(a=>a.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),y.debug("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(a=>a.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),y.debug("DB","Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}removeSessionSummariesUniqueConstraint(){if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(n=>n.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}y.debug("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run("DROP TABLE IF EXISTS session_summaries_new"),this.db.run(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString())}ensureWorkerPortColumn(){this.db.query("PRAGMA table_info(sdk_sessions)").all().some(n=>n.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),_.debug("DB","Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}ensurePromptTrackingColumns(){this.db.query("PRAGMA table_info(sdk_sessions)").all().some(a=>a.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),_.debug("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(a=>a.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),_.debug("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(a=>a.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),_.debug("DB","Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}removeSessionSummariesUniqueConstraint(){if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(n=>n.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}_.debug("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run("DROP TABLE IF EXISTS session_summaries_new"),this.db.run(` CREATE TABLE session_summaries_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -106,7 +106,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` CREATE INDEX idx_session_summaries_sdk_session ON session_summaries(memory_session_id); CREATE INDEX idx_session_summaries_project ON session_summaries(project); CREATE INDEX idx_session_summaries_created ON session_summaries(created_at_epoch DESC); - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString()),y.debug("DB","Successfully removed UNIQUE constraint from session_summaries.memory_session_id")}addObservationHierarchicalFields(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(8))return;if(this.db.query("PRAGMA table_info(observations)").all().some(i=>i.name==="title")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString());return}y.debug("DB","Adding hierarchical fields to observations table"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString()),_.debug("DB","Successfully removed UNIQUE constraint from session_summaries.memory_session_id")}addObservationHierarchicalFields(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(8))return;if(this.db.query("PRAGMA table_info(observations)").all().some(i=>i.name==="title")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString());return}_.debug("DB","Adding hierarchical fields to observations table"),this.db.run(` ALTER TABLE observations ADD COLUMN title TEXT; ALTER TABLE observations ADD COLUMN subtitle TEXT; ALTER TABLE observations ADD COLUMN facts TEXT; @@ -114,7 +114,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` ALTER TABLE observations ADD COLUMN concepts TEXT; ALTER TABLE observations ADD COLUMN files_read TEXT; ALTER TABLE observations ADD COLUMN files_modified TEXT; - `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),y.debug("DB","Successfully added hierarchical fields to observations table")}makeObservationsTextNullable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let n=this.db.query("PRAGMA table_info(observations)").all().find(i=>i.name==="text");if(!n||n.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}y.debug("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run("DROP TABLE IF EXISTS observations_new"),this.db.run(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),_.debug("DB","Successfully added hierarchical fields to observations table")}makeObservationsTextNullable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let n=this.db.query("PRAGMA table_info(observations)").all().find(i=>i.name==="text");if(!n||n.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}_.debug("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run("DROP TABLE IF EXISTS observations_new"),this.db.run(` CREATE TABLE observations_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -144,7 +144,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` CREATE INDEX idx_observations_project ON observations(project); CREATE INDEX idx_observations_type ON observations(type); CREATE INDEX idx_observations_created ON observations(created_at_epoch DESC); - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString()),y.debug("DB","Successfully made observations.text nullable")}createUserPromptsTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(10))return;if(this.db.query("PRAGMA table_info(user_prompts)").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString());return}y.debug("DB","Creating user_prompts table with FTS5 support"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString()),_.debug("DB","Successfully made observations.text nullable")}createUserPromptsTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(10))return;if(this.db.query("PRAGMA table_info(user_prompts)").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString());return}_.debug("DB","Creating user_prompts table with FTS5 support"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE user_prompts ( id INTEGER PRIMARY KEY AUTOINCREMENT, content_session_id TEXT NOT NULL, @@ -182,7 +182,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` INSERT INTO user_prompts_fts(rowid, prompt_text) VALUES (new.id, new.prompt_text); END; - `)}catch(n){y.warn("DB","FTS5 not available \u2014 user_prompts_fts skipped (search uses ChromaDB)",{},n)}this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),y.debug("DB","Successfully created user_prompts table")}ensureDiscoveryTokensColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.query("PRAGMA table_info(observations)").all().some(o=>o.name==="discovery_tokens")||(this.db.run("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),y.debug("DB","Added discovery_tokens column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(o=>o.name==="discovery_tokens")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),y.debug("DB","Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}createPendingMessagesTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(16))return;if(this.db.query("SELECT name FROM sqlite_master WHERE type='table' AND name='pending_messages'").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString());return}y.debug("DB","Creating pending_messages table"),this.db.run(` + `)}catch(n){_.warn("DB","FTS5 not available \u2014 user_prompts_fts skipped (search uses ChromaDB)",{},n)}this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),_.debug("DB","Successfully created user_prompts table")}ensureDiscoveryTokensColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.query("PRAGMA table_info(observations)").all().some(o=>o.name==="discovery_tokens")||(this.db.run("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),_.debug("DB","Added discovery_tokens column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(o=>o.name==="discovery_tokens")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),_.debug("DB","Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}createPendingMessagesTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(16))return;if(this.db.query("SELECT name FROM sqlite_master WHERE type='table' AND name='pending_messages'").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString());return}_.debug("DB","Creating pending_messages table"),this.db.run(` CREATE TABLE pending_messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, session_db_id INTEGER NOT NULL, @@ -202,7 +202,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` completed_at_epoch INTEGER, FOREIGN KEY (session_db_id) REFERENCES sdk_sessions(id) ON DELETE CASCADE ) - `),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_session ON pending_messages(session_db_id)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_status ON pending_messages(status)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_claude_session ON pending_messages(content_session_id)"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString()),y.debug("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;y.debug("DB","Checking session ID columns for semantic clarity rename");let r=0,n=(i,s,o)=>{let a=this.db.query(`PRAGMA table_info(${i})`).all(),c=a.some(l=>l.name===s);return a.some(l=>l.name===o)?!1:c?(this.db.run(`ALTER TABLE ${i} RENAME COLUMN ${s} TO ${o}`),y.debug("DB",`Renamed ${i}.${s} to ${o}`),!0):(y.warn("DB",`Column ${s} not found in ${i}, skipping rename`),!1)};n("sdk_sessions","claude_session_id","content_session_id")&&r++,n("sdk_sessions","sdk_session_id","memory_session_id")&&r++,n("pending_messages","claude_session_id","content_session_id")&&r++,n("observations","sdk_session_id","memory_session_id")&&r++,n("session_summaries","sdk_session_id","memory_session_id")&&r++,n("user_prompts","claude_session_id","content_session_id")&&r++,this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(17,new Date().toISOString()),r>0?y.debug("DB",`Successfully renamed ${r} session ID columns`):y.debug("DB","No session ID column renames needed (already up to date)")}repairSessionIdColumnRename(){this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(19)||this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(19,new Date().toISOString())}addFailedAtEpochColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(20))return;this.db.query("PRAGMA table_info(pending_messages)").all().some(i=>i.name==="failed_at_epoch")||(this.db.run("ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER"),y.debug("DB","Added failed_at_epoch column to pending_messages table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(20,new Date().toISOString())}addOnUpdateCascadeToForeignKeys(){if(!this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(21)){y.debug("DB","Adding ON UPDATE CASCADE to FK constraints on observations and session_summaries"),this.db.run("PRAGMA foreign_keys = OFF"),this.db.run("BEGIN TRANSACTION");try{this.db.run("DROP TRIGGER IF EXISTS observations_ai"),this.db.run("DROP TRIGGER IF EXISTS observations_ad"),this.db.run("DROP TRIGGER IF EXISTS observations_au"),this.db.run("DROP TABLE IF EXISTS observations_new"),this.db.run(` + `),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_session ON pending_messages(session_db_id)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_status ON pending_messages(status)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_claude_session ON pending_messages(content_session_id)"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString()),_.debug("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;_.debug("DB","Checking session ID columns for semantic clarity rename");let r=0,n=(i,s,o)=>{let a=this.db.query(`PRAGMA table_info(${i})`).all(),c=a.some(l=>l.name===s);return a.some(l=>l.name===o)?!1:c?(this.db.run(`ALTER TABLE ${i} RENAME COLUMN ${s} TO ${o}`),_.debug("DB",`Renamed ${i}.${s} to ${o}`),!0):(_.warn("DB",`Column ${s} not found in ${i}, skipping rename`),!1)};n("sdk_sessions","claude_session_id","content_session_id")&&r++,n("sdk_sessions","sdk_session_id","memory_session_id")&&r++,n("pending_messages","claude_session_id","content_session_id")&&r++,n("observations","sdk_session_id","memory_session_id")&&r++,n("session_summaries","sdk_session_id","memory_session_id")&&r++,n("user_prompts","claude_session_id","content_session_id")&&r++,this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(17,new Date().toISOString()),r>0?_.debug("DB",`Successfully renamed ${r} session ID columns`):_.debug("DB","No session ID column renames needed (already up to date)")}repairSessionIdColumnRename(){this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(19)||this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(19,new Date().toISOString())}addFailedAtEpochColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(20))return;this.db.query("PRAGMA table_info(pending_messages)").all().some(i=>i.name==="failed_at_epoch")||(this.db.run("ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER"),_.debug("DB","Added failed_at_epoch column to pending_messages table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(20,new Date().toISOString())}addOnUpdateCascadeToForeignKeys(){if(!this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(21)){_.debug("DB","Adding ON UPDATE CASCADE to FK constraints on observations and session_summaries"),this.db.run("PRAGMA foreign_keys = OFF"),this.db.run("BEGIN TRANSACTION");try{this.db.run("DROP TRIGGER IF EXISTS observations_ai"),this.db.run("DROP TRIGGER IF EXISTS observations_ad"),this.db.run("DROP TRIGGER IF EXISTS observations_au"),this.db.run("DROP TABLE IF EXISTS observations_new"),this.db.run(` CREATE TABLE observations_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -296,7 +296,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` INSERT INTO session_summaries_fts(rowid, request, investigated, learned, completed, next_steps, notes) VALUES (new.id, new.request, new.investigated, new.learned, new.completed, new.next_steps, new.notes); END; - `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(21,new Date().toISOString()),this.db.run("COMMIT"),this.db.run("PRAGMA foreign_keys = ON"),y.debug("DB","Successfully added ON UPDATE CASCADE to FK constraints")}catch(r){throw this.db.run("ROLLBACK"),this.db.run("PRAGMA foreign_keys = ON"),r}}}addObservationContentHashColumn(){if(this.db.query("PRAGMA table_info(observations)").all().some(n=>n.name==="content_hash")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(22,new Date().toISOString());return}this.db.run("ALTER TABLE observations ADD COLUMN content_hash TEXT"),this.db.run("UPDATE observations SET content_hash = substr(hex(randomblob(8)), 1, 16) WHERE content_hash IS NULL"),this.db.run("CREATE INDEX IF NOT EXISTS idx_observations_content_hash ON observations(content_hash, created_at_epoch)"),y.debug("DB","Added content_hash column to observations table with backfill and index"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(22,new Date().toISOString())}addSessionCustomTitleColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(23))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(i=>i.name==="custom_title")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN custom_title TEXT"),y.debug("DB","Added custom_title column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(23,new Date().toISOString())}updateMemorySessionId(e,r){this.db.prepare(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(21,new Date().toISOString()),this.db.run("COMMIT"),this.db.run("PRAGMA foreign_keys = ON"),_.debug("DB","Successfully added ON UPDATE CASCADE to FK constraints")}catch(r){throw this.db.run("ROLLBACK"),this.db.run("PRAGMA foreign_keys = ON"),r}}}addObservationContentHashColumn(){if(this.db.query("PRAGMA table_info(observations)").all().some(n=>n.name==="content_hash")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(22,new Date().toISOString());return}this.db.run("ALTER TABLE observations ADD COLUMN content_hash TEXT"),this.db.run("UPDATE observations SET content_hash = substr(hex(randomblob(8)), 1, 16) WHERE content_hash IS NULL"),this.db.run("CREATE INDEX IF NOT EXISTS idx_observations_content_hash ON observations(content_hash, created_at_epoch)"),_.debug("DB","Added content_hash column to observations table with backfill and index"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(22,new Date().toISOString())}addSessionCustomTitleColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(23))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(i=>i.name==="custom_title")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN custom_title TEXT"),_.debug("DB","Added custom_title column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(23,new Date().toISOString())}updateMemorySessionId(e,r){this.db.prepare(` UPDATE sdk_sessions SET memory_session_id = ? WHERE id = ? @@ -304,7 +304,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` SELECT id, memory_session_id FROM sdk_sessions WHERE id = ? `).get(e);if(!n)throw new Error(`Session ${e} not found in sdk_sessions`);n.memory_session_id!==r&&(this.db.prepare(` UPDATE sdk_sessions SET memory_session_id = ? WHERE id = ? - `).run(r,e),y.info("DB","Registered memory_session_id before storage (FK fix)",{sessionDbId:e,oldId:n.memory_session_id,newId:r}))}getRecentSummaries(e,r=10){return this.db.prepare(` + `).run(r,e),_.info("DB","Registered memory_session_id before storage (FK fix)",{sessionDbId:e,oldId:n.memory_session_id,newId:r}))}getRecentSummaries(e,r=10){return this.db.prepare(` SELECT request, investigated, learned, completed, next_steps, files_read, files_edited, notes, prompt_number, created_at @@ -392,10 +392,10 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` SELECT * FROM observations WHERE id = ? - `).get(e)||null}getObservationsByIds(e,r={}){if(e.length===0)return[];let{orderBy:n="date_desc",limit:i,project:s,type:o,concepts:a,files:c}=r,u=n==="date_asc"?"ASC":"DESC",l=i?`LIMIT ${i}`:"",d=e.map(()=>"?").join(","),p=[...e],m=[];if(s&&(m.push("project = ?"),p.push(s)),o)if(Array.isArray(o)){let h=o.map(()=>"?").join(",");m.push(`type IN (${h})`),p.push(...o)}else m.push("type = ?"),p.push(o);if(a){let h=Array.isArray(a)?a:[a],v=h.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");p.push(...h),m.push(`(${v.join(" OR ")})`)}if(c){let h=Array.isArray(c)?c:[c],v=h.map(()=>"(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))");h.forEach(x=>{p.push(`%${x}%`,`%${x}%`)}),m.push(`(${v.join(" OR ")})`)}let f=m.length>0?`WHERE id IN (${d}) AND ${m.join(" AND ")}`:`WHERE id IN (${d})`;return this.db.prepare(` + `).get(e)||null}getObservationsByIds(e,r={}){if(e.length===0)return[];let{orderBy:n="date_desc",limit:i,project:s,type:o,concepts:a,files:c}=r,u=n==="date_asc"?"ASC":"DESC",l=i?`LIMIT ${i}`:"",d=e.map(()=>"?").join(","),p=[...e],f=[];if(s&&(f.push("project = ?"),p.push(s)),o)if(Array.isArray(o)){let g=o.map(()=>"?").join(",");f.push(`type IN (${g})`),p.push(...o)}else f.push("type = ?"),p.push(o);if(a){let g=Array.isArray(a)?a:[a],v=g.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");p.push(...g),f.push(`(${v.join(" OR ")})`)}if(c){let g=Array.isArray(c)?c:[c],v=g.map(()=>"(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))");g.forEach(S=>{p.push(`%${S}%`,`%${S}%`)}),f.push(`(${v.join(" OR ")})`)}let m=f.length>0?`WHERE id IN (${d}) AND ${f.join(" AND ")}`:`WHERE id IN (${d})`;return this.db.prepare(` SELECT * FROM observations - ${f} + ${m} ORDER BY created_at_epoch ${u} ${l} `).all(...p)}getSummaryForSession(e){return this.db.prepare(` @@ -445,7 +445,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` FROM user_prompts WHERE content_session_id = ? AND prompt_number = ? LIMIT 1 - `).get(e,r)?.prompt_text??null}storeObservation(e,r,n,i,s=0,o){let a=o??Date.now(),c=new Date(a).toISOString(),u=Ff(e,n.title,n.narrative),l=Hf(this.db,u,a);if(l)return{id:l.id,createdAtEpoch:l.created_at_epoch};let p=this.db.prepare(` + `).get(e,r)?.prompt_text??null}storeObservation(e,r,n,i,s=0,o){let a=o??Date.now(),c=new Date(a).toISOString(),u=tg(e,n.title,n.narrative),l=rg(this.db,u,a);if(l)return{id:l.id,createdAtEpoch:l.created_at_epoch};let p=this.db.prepare(` INSERT INTO observations (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, content_hash, created_at, created_at_epoch) @@ -460,22 +460,22 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, content_hash, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `);for(let f of n){let g=Ff(e,f.title,f.narrative),h=Hf(this.db,g,c);if(h){d.push(h.id);continue}let v=p.run(e,r,f.type,f.title,f.subtitle,JSON.stringify(f.facts),f.narrative,JSON.stringify(f.concepts),JSON.stringify(f.files_read),JSON.stringify(f.files_modified),s||null,o,g,u,c);d.push(Number(v.lastInsertRowid))}let m=null;if(i){let g=this.db.prepare(` + `);for(let m of n){let h=tg(e,m.title,m.narrative),g=rg(this.db,h,c);if(g){d.push(g.id);continue}let v=p.run(e,r,m.type,m.title,m.subtitle,JSON.stringify(m.facts),m.narrative,JSON.stringify(m.concepts),JSON.stringify(m.files_read),JSON.stringify(m.files_modified),s||null,o,h,u,c);d.push(Number(v.lastInsertRowid))}let f=null;if(i){let h=this.db.prepare(` INSERT INTO session_summaries (memory_session_id, project, request, investigated, learned, completed, next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,r,i.request,i.investigated,i.learned,i.completed,i.next_steps,i.notes,s||null,o,u,c);m=Number(g.lastInsertRowid)}return{observationIds:d,summaryId:m,createdAtEpoch:c}})()}storeObservationsAndMarkComplete(e,r,n,i,s,o,a,c=0,u){let l=u??Date.now(),d=new Date(l).toISOString();return this.db.transaction(()=>{let m=[],f=this.db.prepare(` + `).run(e,r,i.request,i.investigated,i.learned,i.completed,i.next_steps,i.notes,s||null,o,u,c);f=Number(h.lastInsertRowid)}return{observationIds:d,summaryId:f,createdAtEpoch:c}})()}storeObservationsAndMarkComplete(e,r,n,i,s,o,a,c=0,u){let l=u??Date.now(),d=new Date(l).toISOString();return this.db.transaction(()=>{let f=[],m=this.db.prepare(` INSERT INTO observations (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, content_hash, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `);for(let v of n){let x=Ff(e,v.title,v.narrative),b=Hf(this.db,x,l);if(b){m.push(b.id);continue}let _=f.run(e,r,v.type,v.title,v.subtitle,JSON.stringify(v.facts),v.narrative,JSON.stringify(v.concepts),JSON.stringify(v.files_read),JSON.stringify(v.files_modified),a||null,c,x,d,l);m.push(Number(_.lastInsertRowid))}let g;if(i){let x=this.db.prepare(` + `);for(let v of n){let S=tg(e,v.title,v.narrative),b=rg(this.db,S,l);if(b){f.push(b.id);continue}let y=m.run(e,r,v.type,v.title,v.subtitle,JSON.stringify(v.facts),v.narrative,JSON.stringify(v.concepts),JSON.stringify(v.files_read),JSON.stringify(v.files_modified),a||null,c,S,d,l);f.push(Number(y.lastInsertRowid))}let h;if(i){let S=this.db.prepare(` INSERT INTO session_summaries (memory_session_id, project, request, investigated, learned, completed, next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,r,i.request,i.investigated,i.learned,i.completed,i.next_steps,i.notes,a||null,c,d,l);g=Number(x.lastInsertRowid)}return this.db.prepare(` + `).run(e,r,i.request,i.investigated,i.learned,i.completed,i.next_steps,i.notes,a||null,c,d,l);h=Number(S.lastInsertRowid)}return this.db.prepare(` UPDATE pending_messages SET status = 'processed', @@ -483,7 +483,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` tool_input = NULL, tool_response = NULL WHERE id = ? AND status = 'processing' - `).run(l,s),{observationIds:m,summaryId:g,createdAtEpoch:l}})()}getSessionSummariesByIds(e,r={}){if(e.length===0)return[];let{orderBy:n="date_desc",limit:i,project:s}=r,o=n==="date_asc"?"ASC":"DESC",a=i?`LIMIT ${i}`:"",c=e.map(()=>"?").join(","),u=[...e],l=s?`WHERE id IN (${c}) AND project = ?`:`WHERE id IN (${c})`;return s&&u.push(s),this.db.prepare(` + `).run(l,s),{observationIds:f,summaryId:h,createdAtEpoch:l}})()}getSessionSummariesByIds(e,r={}){if(e.length===0)return[];let{orderBy:n="date_desc",limit:i,project:s}=r,o=n==="date_asc"?"ASC":"DESC",a=i?`LIMIT ${i}`:"",c=e.map(()=>"?").join(","),u=[...e],l=s?`WHERE id IN (${c}) AND project = ?`:`WHERE id IN (${c})`;return s&&u.push(s),this.db.prepare(` SELECT * FROM session_summaries ${l} ORDER BY created_at_epoch ${o} @@ -498,7 +498,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` WHERE up.id IN (${c}) ${l} ORDER BY up.created_at_epoch ${o} ${a} - `).all(...u)}getTimelineAroundTimestamp(e,r=10,n=10,i){return this.getTimelineAroundObservation(null,e,r,n,i)}getTimelineAroundObservation(e,r,n=10,i=10,s){let o=s?"AND project = ?":"",a=s?[s]:[],c,u;if(e!==null){let h=` + `).all(...u)}getTimelineAroundTimestamp(e,r=10,n=10,i){return this.getTimelineAroundObservation(null,e,r,n,i)}getTimelineAroundObservation(e,r,n=10,i=10,s){let o=s?"AND project = ?":"",a=s?[s]:[],c,u;if(e!==null){let g=` SELECT id, created_at_epoch FROM observations WHERE id <= ? ${o} @@ -510,7 +510,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` WHERE id >= ? ${o} ORDER BY id ASC LIMIT ? - `;try{let x=this.db.prepare(h).all(e,...a,n+1),b=this.db.prepare(v).all(e,...a,i+1);if(x.length===0&&b.length===0)return{observations:[],sessions:[],prompts:[]};c=x.length>0?x[x.length-1].created_at_epoch:r,u=b.length>0?b[b.length-1].created_at_epoch:r}catch(x){return y.error("DB","Error getting boundary observations",void 0,{error:x,project:s}),{observations:[],sessions:[],prompts:[]}}}else{let h=` + `;try{let S=this.db.prepare(g).all(e,...a,n+1),b=this.db.prepare(v).all(e,...a,i+1);if(S.length===0&&b.length===0)return{observations:[],sessions:[],prompts:[]};c=S.length>0?S[S.length-1].created_at_epoch:r,u=b.length>0?b[b.length-1].created_at_epoch:r}catch(S){return _.error("DB","Error getting boundary observations",void 0,{error:S,project:s}),{observations:[],sessions:[],prompts:[]}}}else{let g=` SELECT created_at_epoch FROM observations WHERE created_at_epoch <= ? ${o} @@ -522,7 +522,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` WHERE created_at_epoch >= ? ${o} ORDER BY created_at_epoch ASC LIMIT ? - `;try{let x=this.db.prepare(h).all(r,...a,n),b=this.db.prepare(v).all(r,...a,i+1);if(x.length===0&&b.length===0)return{observations:[],sessions:[],prompts:[]};c=x.length>0?x[x.length-1].created_at_epoch:r,u=b.length>0?b[b.length-1].created_at_epoch:r}catch(x){return y.error("DB","Error getting boundary timestamps",void 0,{error:x,project:s}),{observations:[],sessions:[],prompts:[]}}}let l=` + `;try{let S=this.db.prepare(g).all(r,...a,n),b=this.db.prepare(v).all(r,...a,i+1);if(S.length===0&&b.length===0)return{observations:[],sessions:[],prompts:[]};c=S.length>0?S[S.length-1].created_at_epoch:r,u=b.length>0?b[b.length-1].created_at_epoch:r}catch(S){return _.error("DB","Error getting boundary timestamps",void 0,{error:S,project:s}),{observations:[],sessions:[],prompts:[]}}}let l=` SELECT * FROM observations WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${o} @@ -538,7 +538,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` JOIN sdk_sessions s ON up.content_session_id = s.content_session_id WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${o.replace("project","s.project")} ORDER BY up.created_at_epoch ASC - `,m=this.db.prepare(l).all(c,u,...a),f=this.db.prepare(d).all(c,u,...a),g=this.db.prepare(p).all(c,u,...a);return{observations:m,sessions:f.map(h=>({id:h.id,memory_session_id:h.memory_session_id,project:h.project,request:h.request,completed:h.completed,next_steps:h.next_steps,created_at:h.created_at,created_at_epoch:h.created_at_epoch})),prompts:g.map(h=>({id:h.id,content_session_id:h.content_session_id,prompt_number:h.prompt_number,prompt_text:h.prompt_text,project:h.project,created_at:h.created_at,created_at_epoch:h.created_at_epoch}))}}getPromptById(e){return this.db.prepare(` + `,f=this.db.prepare(l).all(c,u,...a),m=this.db.prepare(d).all(c,u,...a),h=this.db.prepare(p).all(c,u,...a);return{observations:f,sessions:m.map(g=>({id:g.id,memory_session_id:g.memory_session_id,project:g.project,request:g.request,completed:g.completed,next_steps:g.next_steps,created_at:g.created_at,created_at_epoch:g.created_at_epoch})),prompts:h.map(g=>({id:g.id,content_session_id:g.content_session_id,prompt_number:g.prompt_number,prompt_text:g.prompt_text,project:g.project,created_at:g.created_at,created_at_epoch:g.created_at_epoch}))}}getPromptById(e){return this.db.prepare(` SELECT p.id, p.content_session_id, @@ -582,7 +582,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` `).get(e)||null}getOrCreateManualSession(e){let r=`manual-${e}`,n=`manual-content-${e}`;if(this.db.prepare("SELECT memory_session_id FROM sdk_sessions WHERE memory_session_id = ?").get(r))return r;let s=new Date;return this.db.prepare(` INSERT INTO sdk_sessions (memory_session_id, content_session_id, project, started_at, started_at_epoch, status) VALUES (?, ?, ?, ?, ?, 'active') - `).run(r,n,e,s.toISOString(),s.getTime()),y.info("SESSION","Created manual session",{memorySessionId:r,project:e}),r}close(){this.db.close()}importSdkSession(e){let r=this.db.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(e.content_session_id);return r?{imported:!1,id:r.id}:{imported:!0,id:this.db.prepare(` + `).run(r,n,e,s.toISOString(),s.getTime()),_.info("SESSION","Created manual session",{memorySessionId:r,project:e}),r}close(){this.db.close()}importSdkSession(e){let r=this.db.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(e.content_session_id);return r?{imported:!1,id:r.id}:{imported:!0,id:this.db.prepare(` INSERT INTO sdk_sessions ( content_session_id, memory_session_id, project, user_prompt, started_at, started_at_epoch, completed_at, completed_at_epoch, status @@ -610,26 +610,26 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` content_session_id, prompt_number, prompt_text, created_at, created_at_epoch ) VALUES (?, ?, ?, ?, ?) - `).run(e.content_session_id,e.prompt_number,e.prompt_text,e.created_at,e.created_at_epoch).lastInsertRowid}}}});var bi=T((oIe,tN)=>{var XK=require("path").relative;tN.exports=rJ;var YK=process.cwd();function QA(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),i=0;i0}function iJ(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return QA(e,t)}function sJ(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return QA(e,t)}function Kf(t,e){var r=nJ(process,"deprecation");if(!(!r&&this._ignored)){var n,i,s,o,a=0,c=!1,u=Jf(),l=this._file;for(e?(o=e,s=Ja(u[1]),s.name=o.name,l=s[0]):(a=2,o=Ja(u[a]),s=o);a",r=t.getLineNumber(),n=t.getColumnNumber();t.isEval()&&(e=t.getEvalOrigin()+", "+e);var i=[e,r,n];return i.callSite=t,i.name=t.getFunctionName(),i}function YA(t){var e=t.callSite,r=t.name;r||(r="");var n=e.getThis(),i=n&&e.getTypeName();return i==="Object"&&(i=void 0),i==="Function"&&(i=n.name||i),i&&e.getMethodName()?i+"."+r:r}function oJ(t,e,r){var n=new Date().toUTCString(),i=n+" "+this._namespace+" deprecated "+t;if(this._traced){for(var s=0;s{var lQ=require("path").relative;tD.exports=hQ;var dQ=process.cwd();function QM(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),i=0;i0}function vQ(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return QM(e,t)}function yQ(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return QM(e,t)}function cg(t,e){var r=gQ(process,"deprecation");if(!(!r&&this._ignored)){var n,i,s,o,a=0,c=!1,u=ug(),l=this._file;for(e?(o=e,s=Pc(u[1]),s.name=o.name,l=s[0]):(a=2,o=Pc(u[a]),s=o);a",r=t.getLineNumber(),n=t.getColumnNumber();t.isEval()&&(e=t.getEvalOrigin()+", "+e);var i=[e,r,n];return i.callSite=t,i.name=t.getFunctionName(),i}function YM(t){var e=t.callSite,r=t.name;r||(r="");var n=e.getThis(),i=n&&e.getTypeName();return i==="Object"&&(i=void 0),i==="Function"&&(i=n.name||i),i&&e.getMethodName()?i+"."+r:r}function _Q(t,e,r){var n=new Date().toUTCString(),i=n+" "+this._namespace+" deprecated "+t;if(this._traced){for(var s=0;s{"use strict";Xf.exports=fJ;Xf.exports.format=rN;Xf.exports.parse=nN;var dJ=/\B(?=(\d{3})+(?!\d))/g,pJ=/(?:\.0*|(\.[^0]+)0+)$/,Cs={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},mJ=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function fJ(t,e){return typeof t=="string"?nN(t):typeof t=="number"?rN(t,e):null}function rN(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),n=e&&e.thousandsSeparator||"",i=e&&e.unitSeparator||"",s=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,o=!!(e&&e.fixedDecimals),a=e&&e.unit||"";(!a||!Cs[a.toLowerCase()])&&(r>=Cs.pb?a="PB":r>=Cs.tb?a="TB":r>=Cs.gb?a="GB":r>=Cs.mb?a="MB":r>=Cs.kb?a="KB":a="B");var c=t/Cs[a.toLowerCase()],u=c.toFixed(s);return o||(u=u.replace(pJ,"$1")),n&&(u=u.split(".").map(function(l,d){return d===0?l.replace(dJ,n):l}).join(".")),u+i+a}function nN(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=mJ.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(Cs[n]*r)}});var Wl=T(rw=>{"use strict";var iN=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,hJ=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,sN=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,gJ=/\\([\u000b\u0020-\u00ff])/g,vJ=/([\\"])/g,oN=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;rw.format=yJ;rw.parse=_J;function yJ(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!oN.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var i,s=Object.keys(e).sort(),o=0;o0&&!hJ.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(vJ,"\\$1")+'"'}function SJ(t){this.parameters=Object.create(null),this.type=t}});var Kl=T((uIe,aN)=>{"use strict";aN.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?wJ:EJ);function wJ(t,e){return t.__proto__=e,t}function EJ(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var cN=T((lIe,kJ)=>{kJ.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 Jl=T((dIe,lN)=>{"use strict";var nw=cN();lN.exports=Xn;Xn.message=nw;Xn.code=$J(nw);Xn.codes=TJ(nw);Xn.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};Xn.empty={204:!0,205:!0,304:!0};Xn.retry={502:!0,503:!0,504:!0};function $J(t){var e={};return Object.keys(t).forEach(function(n){var i=t[n],s=Number(n);e[i.toLowerCase()]=s}),e}function TJ(t){return Object.keys(t).map(function(r){return Number(r)})}function IJ(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(Xn.code,e))throw new Error('invalid status message: "'+t+'"');return Xn.code[e]}function uN(t){if(!Object.prototype.hasOwnProperty.call(Xn.message,t))throw new Error("invalid status code: "+t);return Xn.message[t]}function Xn(t){if(typeof t=="number")return uN(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?IJ(t):uN(e)}});var dN=T((pIe,iw)=>{typeof Object.create=="function"?iw.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:iw.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 pN=T((mIe,ow)=>{try{if(sw=require("util"),typeof sw.inherits!="function")throw"";ow.exports=sw.inherits}catch{ow.exports=dN()}var sw});var fN=T((fIe,mN)=>{"use strict";mN.exports=RJ;function RJ(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var xo=T((hIe,bo)=>{"use strict";var OJ=bi()("http-errors"),hN=Kl(),Ya=Jl(),aw=pN(),PJ=fN();bo.exports=Yf;bo.exports.HttpError=CJ();bo.exports.isHttpError=NJ(bo.exports.HttpError);DJ(bo.exports,Ya.codes,bo.exports.HttpError);function gN(t){return+(String(t).charAt(0)+"00")}function Yf(){for(var t,e,r=500,n={},i=0;i=600)&&OJ("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!Ya.message[r]&&(r<400||r>=600))&&(r=500);var a=Yf[r]||Yf[gN(r)];t||(t=a?new a(e):new Error(e||Ya.message[r]),Error.captureStackTrace(t,Yf)),(!a||!(t instanceof a)||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 CJ(){function t(){throw new TypeError("cannot construct abstract class")}return aw(t,Error),t}function AJ(t,e,r){var n=yN(e);function i(s){var o=s??Ya.message[r],a=new Error(o);return Error.captureStackTrace(a,i),hN(a,i.prototype),Object.defineProperty(a,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(a,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),a}return aw(i,t),vN(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!0,i}function NJ(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 MJ(t,e,r){var n=yN(e);function i(s){var o=s??Ya.message[r],a=new Error(o);return Error.captureStackTrace(a,i),hN(a,i.prototype),Object.defineProperty(a,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(a,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),a}return aw(i,t),vN(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!1,i}function vN(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function DJ(t,e,r){e.forEach(function(i){var s,o=PJ(Ya.message[i]);switch(gN(i)){case 400:s=AJ(r,o,i);break;case 500:s=MJ(r,o,i);break}s&&(t[i]=s,t[o]=s)})}function yN(t){return t.slice(-5)==="Error"?t:t+"Error"}});var bN=T((gIe,_N)=>{var Xl=1e3,Yl=Xl*60,Ql=Yl*60,ed=Ql*24,jJ=ed*365.25;_N.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return zJ(t);if(r==="number"&&isNaN(t)===!1)return e.long?UJ(t):LJ(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function zJ(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*jJ;case"days":case"day":case"d":return r*ed;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ql;case"minutes":case"minute":case"mins":case"min":case"m":return r*Yl;case"seconds":case"second":case"secs":case"sec":case"s":return r*Xl;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function LJ(t){return t>=ed?Math.round(t/ed)+"d":t>=Ql?Math.round(t/Ql)+"h":t>=Yl?Math.round(t/Yl)+"m":t>=Xl?Math.round(t/Xl)+"s":t+"ms"}function UJ(t){return Qf(t,ed,"day")||Qf(t,Ql,"hour")||Qf(t,Yl,"minute")||Qf(t,Xl,"second")||t+" ms"}function Qf(t,e,r){if(!(t{dt=xN.exports=uw.debug=uw.default=uw;dt.coerce=BJ;dt.disable=HJ;dt.enable=FJ;dt.enabled=ZJ;dt.humanize=bN();dt.names=[];dt.skips=[];dt.formatters={};var cw;function qJ(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return dt.colors[Math.abs(e)%dt.colors.length]}function uw(t){function e(){if(e.enabled){var r=e,n=+new Date,i=n-(cw||n);r.diff=i,r.prev=cw,r.curr=n,cw=n;for(var s=new Array(arguments.length),o=0;o{Hr=wN.exports=lw();Hr.log=WJ;Hr.formatArgs=GJ;Hr.save=KJ;Hr.load=SN;Hr.useColors=VJ;Hr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:JJ();Hr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function VJ(){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 GJ(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,i=0;t[0].replace(/%[a-zA-Z%]/g,function(s){s!=="%%"&&(n++,s==="%c"&&(i=n))}),t.splice(i,0,r)}}function WJ(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function KJ(t){try{t==null?Hr.storage.removeItem("debug"):Hr.storage.debug=t}catch{}}function SN(){var t;try{t=Hr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Hr.enable(SN());function JJ(){try{return window.localStorage}catch{}}});var IN=T((cr,TN)=>{var kN=require("tty"),td=require("util");cr=TN.exports=lw();cr.init=nX;cr.log=eX;cr.formatArgs=QJ;cr.save=tX;cr.load=$N;cr.useColors=YJ;cr.colors=[6,2,3,4,5,1];cr.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(i,s){return s.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 Qa=parseInt(process.env.DEBUG_FD,10)||2;Qa!==1&&Qa!==2&&td.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 XJ=Qa===1?process.stdout:Qa===2?process.stderr:rX(Qa);function YJ(){return"colors"in cr.inspectOpts?!!cr.inspectOpts.colors:kN.isatty(Qa)}cr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,td.inspect(t,this.inspectOpts).split(` -`).map(function(e){return e.trim()}).join(" ")};cr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,td.inspect(t,this.inspectOpts)};function QJ(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,i=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=i+t[0].split(` +}`)(t,cg,this,e,i);return s}function wQ(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 i=this,s=ug(),o=Pc(s[1]);o.name=e,"value"in n&&(n=pQ(t,e,r));var a=n.get,c=n.set;typeof a=="function"&&(n.get=function(){return cg.call(i,r,o),a.apply(this,arguments)}),typeof c=="function"&&(n.set=function(){return cg.call(i,r,o),c.apply(this,arguments)}),Object.defineProperty(t,e,n)}function eD(t,e,r){var n=new Error,i;return Object.defineProperty(n,"constructor",{value:eD}),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 i!==void 0?i:i=mQ.call(this,r)},set:function(o){i=o}}),n}});var Ac=$((XCe,lg)=>{"use strict";lg.exports=$Q;lg.exports.format=rD;lg.exports.parse=nD;var EQ=/\B(?=(\d{3})+(?!\d))/g,kQ=/(?:\.0*|(\.[^0]+)0+)$/,oo={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},TQ=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function $Q(t,e){return typeof t=="string"?nD(t):typeof t=="number"?rD(t,e):null}function rD(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),n=e&&e.thousandsSeparator||"",i=e&&e.unitSeparator||"",s=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,o=!!(e&&e.fixedDecimals),a=e&&e.unit||"";(!a||!oo[a.toLowerCase()])&&(r>=oo.pb?a="PB":r>=oo.tb?a="TB":r>=oo.gb?a="GB":r>=oo.mb?a="MB":r>=oo.kb?a="KB":a="B");var c=t/oo[a.toLowerCase()],u=c.toFixed(s);return o||(u=u.replace(kQ,"$1")),n&&(u=u.split(".").map(function(l,d){return d===0?l.replace(EQ,n):l}).join(".")),u+i+a}function nD(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=TQ.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(oo[n]*r)}});var Fd=$(ZE=>{"use strict";var iD=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,IQ=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,sD=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,RQ=/\\([\u000b\u0020-\u00ff])/g,OQ=/([\\"])/g,oD=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;ZE.format=CQ;ZE.parse=PQ;function CQ(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!oD.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var i,s=Object.keys(e).sort(),o=0;o0&&!IQ.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(OQ,"\\$1")+'"'}function MQ(t){this.parameters=Object.create(null),this.type=t}});var qd=$((QCe,aD)=>{"use strict";aD.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?DQ:jQ);function DQ(t,e){return t.__proto__=e,t}function jQ(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var cD=$((ePe,zQ)=>{zQ.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 Hd=$((tPe,lD)=>{"use strict";var BE=cD();lD.exports=pi;pi.message=BE;pi.code=LQ(BE);pi.codes=UQ(BE);pi.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};pi.empty={204:!0,205:!0,304:!0};pi.retry={502:!0,503:!0,504:!0};function LQ(t){var e={};return Object.keys(t).forEach(function(n){var i=t[n],s=Number(n);e[i.toLowerCase()]=s}),e}function UQ(t){return Object.keys(t).map(function(r){return Number(r)})}function FQ(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(pi.code,e))throw new Error('invalid status message: "'+t+'"');return pi.code[e]}function uD(t){if(!Object.prototype.hasOwnProperty.call(pi.message,t))throw new Error("invalid status code: "+t);return pi.message[t]}function pi(t){if(typeof t=="number")return uD(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?FQ(t):uD(e)}});var dD=$((rPe,GE)=>{typeof Object.create=="function"?GE.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:GE.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 pD=$((nPe,VE)=>{try{if(WE=require("util"),typeof WE.inherits!="function")throw"";VE.exports=WE.inherits}catch{VE.exports=dD()}var WE});var mD=$((iPe,fD)=>{"use strict";fD.exports=qQ;function qQ(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var ea=$((sPe,Qo)=>{"use strict";var HQ=Hi()("http-errors"),hD=qd(),Nc=Hd(),KE=pD(),ZQ=mD();Qo.exports=dg;Qo.exports.HttpError=BQ();Qo.exports.isHttpError=WQ(Qo.exports.HttpError);KQ(Qo.exports,Nc.codes,Qo.exports.HttpError);function gD(t){return+(String(t).charAt(0)+"00")}function dg(){for(var t,e,r=500,n={},i=0;i=600)&&HQ("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!Nc.message[r]&&(r<400||r>=600))&&(r=500);var a=dg[r]||dg[gD(r)];t||(t=a?new a(e):new Error(e||Nc.message[r]),Error.captureStackTrace(t,dg)),(!a||!(t instanceof a)||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 BQ(){function t(){throw new TypeError("cannot construct abstract class")}return KE(t,Error),t}function GQ(t,e,r){var n=yD(e);function i(s){var o=s??Nc.message[r],a=new Error(o);return Error.captureStackTrace(a,i),hD(a,i.prototype),Object.defineProperty(a,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(a,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),a}return KE(i,t),vD(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!0,i}function WQ(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 VQ(t,e,r){var n=yD(e);function i(s){var o=s??Nc.message[r],a=new Error(o);return Error.captureStackTrace(a,i),hD(a,i.prototype),Object.defineProperty(a,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(a,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),a}return KE(i,t),vD(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!1,i}function vD(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function KQ(t,e,r){e.forEach(function(i){var s,o=ZQ(Nc.message[i]);switch(gD(i)){case 400:s=GQ(r,o,i);break;case 500:s=VQ(r,o,i);break}s&&(t[i]=s,t[o]=s)})}function yD(t){return t.slice(-5)==="Error"?t:t+"Error"}});var bD=$((oPe,_D)=>{var Zd=1e3,Bd=Zd*60,Gd=Bd*60,Wd=Gd*24,JQ=Wd*365.25;_D.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return XQ(t);if(r==="number"&&isNaN(t)===!1)return e.long?QQ(t):YQ(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function XQ(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*JQ;case"days":case"day":case"d":return r*Wd;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Gd;case"minutes":case"minute":case"mins":case"min":case"m":return r*Bd;case"seconds":case"second":case"secs":case"sec":case"s":return r*Zd;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function YQ(t){return t>=Wd?Math.round(t/Wd)+"d":t>=Gd?Math.round(t/Gd)+"h":t>=Bd?Math.round(t/Bd)+"m":t>=Zd?Math.round(t/Zd)+"s":t+"ms"}function QQ(t){return pg(t,Wd,"day")||pg(t,Gd,"hour")||pg(t,Bd,"minute")||pg(t,Zd,"second")||t+" ms"}function pg(t,e,r){if(!(t{pt=SD.exports=XE.debug=XE.default=XE;pt.coerce=iee;pt.disable=ree;pt.enable=tee;pt.enabled=nee;pt.humanize=bD();pt.names=[];pt.skips=[];pt.formatters={};var JE;function eee(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return pt.colors[Math.abs(e)%pt.colors.length]}function XE(t){function e(){if(e.enabled){var r=e,n=+new Date,i=n-(JE||n);r.diff=i,r.prev=JE,r.curr=n,JE=n;for(var s=new Array(arguments.length),o=0;o{Xr=wD.exports=YE();Xr.log=aee;Xr.formatArgs=oee;Xr.save=cee;Xr.load=xD;Xr.useColors=see;Xr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:uee();Xr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function see(){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+)/)}Xr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function oee(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Xr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,i=0;t[0].replace(/%[a-zA-Z%]/g,function(s){s!=="%%"&&(n++,s==="%c"&&(i=n))}),t.splice(i,0,r)}}function aee(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function cee(t){try{t==null?Xr.storage.removeItem("debug"):Xr.storage.debug=t}catch{}}function xD(){var t;try{t=Xr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Xr.enable(xD());function uee(){try{return window.localStorage}catch{}}});var ID=$((lr,$D)=>{var kD=require("tty"),Vd=require("util");lr=$D.exports=YE();lr.init=gee;lr.log=fee;lr.formatArgs=pee;lr.save=mee;lr.load=TD;lr.useColors=dee;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(i,s){return s.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 Mc=parseInt(process.env.DEBUG_FD,10)||2;Mc!==1&&Mc!==2&&Vd.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 lee=Mc===1?process.stdout:Mc===2?process.stderr:hee(Mc);function dee(){return"colors"in lr.inspectOpts?!!lr.inspectOpts.colors:kD.isatty(Mc)}lr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Vd.inspect(t,this.inspectOpts).split(` +`).map(function(e){return e.trim()}).join(" ")};lr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Vd.inspect(t,this.inspectOpts)};function pee(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,i=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=i+t[0].split(` `).join(` -`+i),t.push("\x1B[3"+n+"m+"+cr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function eX(){return XJ.write(td.format.apply(td,arguments)+` -`)}function tX(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function $N(){return process.env.DEBUG}function rX(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new kN.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 i=require("net");e=new i.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 nX(t){t.inspectOpts={};for(var e=Object.keys(cr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?dw.exports=EN():dw.exports=IN()});var pw=T((yIe,ON)=>{"use strict";var iX=require("events").EventEmitter,sX=require("fs").ReadStream,RN=require("stream"),So=require("zlib");ON.exports=oX;function oX(t,e){return pX(t)?aX(t):mX(t)?uX(t):lX(t)&&t.destroy(),dX(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",fX)),t}function aX(t){t.destroy(),typeof t.close=="function"&&t.on("open",gX)}function cX(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function uX(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",hX)):t._binding.clear()):t._destroy&&t._destroy!==RN.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&cX(t)}function lX(t){return t instanceof RN&&typeof t.destroy=="function"}function dX(t){return t instanceof iX}function pX(t){return t instanceof sX}function mX(t){return t instanceof So.Gzip||t instanceof So.Gunzip||t instanceof So.Deflate||t instanceof So.DeflateRaw||t instanceof So.Inflate||t instanceof So.InflateRaw||t instanceof So.Unzip}function fX(){}function hX(){this._binding.clear()}function gX(){typeof this.fd=="number"&&this.close()}});var wo=T((_Ie,PN)=>{"use strict";var eh=require("buffer"),ec=eh.Buffer,An={},Nn;for(Nn in eh)eh.hasOwnProperty(Nn)&&(Nn==="SlowBuffer"||Nn==="Buffer"||(An[Nn]=eh[Nn]));var tc=An.Buffer={};for(Nn in ec)ec.hasOwnProperty(Nn)&&(Nn==="allocUnsafe"||Nn==="allocUnsafeSlow"||(tc[Nn]=ec[Nn]));An.Buffer.prototype=ec.prototype;(!tc.from||tc.from===Uint8Array.from)&&(tc.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 ec(t,e,r)});tc.alloc||(tc.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=ec(t);return!e||e.length===0?n.fill(0):typeof r=="string"?n.fill(e,r):n.fill(e),n});if(!An.kStringMaxLength)try{An.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}An.constants||(An.constants={MAX_LENGTH:An.kMaxLength},An.kStringMaxLength&&(An.constants.MAX_STRING_LENGTH=An.kStringMaxLength));PN.exports=An});var AN=T(hw=>{"use strict";var CN="\uFEFF";hw.PrependBOM=mw;function mw(t,e){this.encoder=t,this.addBOM=!0}mw.prototype.write=function(t){return this.addBOM&&(t=CN+t,this.addBOM=!1),this.encoder.write(t)};mw.prototype.end=function(){return this.encoder.end()};hw.StripBOM=fw;function fw(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}fw.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===CN&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};fw.prototype.end=function(){return this.decoder.end()}});var DN=T((xIe,MN)=>{"use strict";var rd=wo().Buffer;MN.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:gw};function gw(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=yw:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=_w,rd.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=bw,this.defaultCharUnicode=e.defaultCharUnicode))}gw.prototype.encoder=vw;gw.prototype.decoder=NN;var th=require("string_decoder").StringDecoder;th.prototype.end||(th.prototype.end=function(){});function NN(t,e){th.call(this,e.enc)}NN.prototype=th.prototype;function vw(t,e){this.enc=e.enc}vw.prototype.write=function(t){return rd.from(t,this.enc)};vw.prototype.end=function(){};function yw(t,e){this.prevStr=""}yw.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),rd.from(t,"base64")};yw.prototype.end=function(){return rd.from(this.prevStr,"base64")};function _w(t,e){}_w.prototype.write=function(t){for(var e=rd.alloc(t.length*3),r=0,n=0;n>>6),e[r++]=128+(i&63)):(e[r++]=224+(i>>>12),e[r++]=128+(i>>>6&63),e[r++]=128+(i&63))}return e.slice(0,r)};_w.prototype.end=function(){};function bw(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}bw.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,n=this.accBytes,i="",s=0;s0&&(i+=this.defaultCharUnicode,r=0),o<128?i+=String.fromCharCode(o):o<224?(e=o&31,r=1,n=1):o<240?(e=o&15,r=2,n=1):i+=this.defaultCharUnicode):r>0?(e=e<<6|o&63,r--,n++,r===0&&(n===2&&e<128&&e>0?i+=this.defaultCharUnicode:n===3&&e<2048?i+=this.defaultCharUnicode:i+=String.fromCharCode(e))):i+=this.defaultCharUnicode}return this.acc=e,this.contBytes=r,this.accBytes=n,i};bw.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var zN=T($w=>{"use strict";var rh=wo().Buffer;$w.utf16be=nh;function nh(){}nh.prototype.encoder=xw;nh.prototype.decoder=Sw;nh.prototype.bomAware=!0;function xw(){}xw.prototype.write=function(t){for(var e=rh.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,i=0,s=Math.min(t.length-t.length%2,64),o=0;on?r="utf-16be":i{"use strict";var xi=wo().Buffer;oh.utf7=ih;oh.unicode11utf7="utf7";function ih(t,e){this.iconv=e}ih.prototype.encoder=Iw;ih.prototype.decoder=Rw;ih.prototype.bomAware=!0;var vX=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function Iw(t,e){this.iconv=e.iconv}Iw.prototype.write=function(t){return xi.from(t.replace(vX,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};Iw.prototype.end=function(){};function Rw(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var yX=/[A-Za-z0-9\/+]/,Ow=[];for(nd=0;nd<256;nd++)Ow[nd]=yX.test(String.fromCharCode(nd));var nd,_X=43,Eo=45,Tw=38;Rw.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,s=0;s0&&(t=this.iconv.decode(xi.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};oh.utf7imap=sh;function sh(t,e){this.iconv=e}sh.prototype.encoder=Pw;sh.prototype.decoder=Cw;sh.prototype.bomAware=!0;function Pw(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=xi.alloc(6),this.base64AccumIdx=0}Pw.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,i=xi.alloc(t.length*5+10),s=0,o=0;o0&&(s+=i.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),s),n=0),i[s++]=Eo,e=!1),e||(i[s++]=a,a===Tw&&(i[s++]=Eo))):(e||(i[s++]=Tw,e=!0),e&&(r[n++]=a>>8,r[n++]=a&255,n==r.length&&(s+=i.write(r.toString("base64").replace(/\//g,","),s),n=0)))}return this.inBase64=e,this.base64AccumIdx=n,i.slice(0,s)};Pw.prototype.end=function(){var t=xi.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++]=Eo,this.inBase64=!1),t.slice(0,e)};function Cw(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var LN=Ow.slice();LN[44]=!0;Cw.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,s=0;s0&&(t=this.iconv.decode(xi.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var FN=T(qN=>{"use strict";var ah=wo().Buffer;qN._sbcs=Aw;function Aw(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=ah.from(t.chars,"ucs2");for(var i=ah.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";HN.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 VN=T(($Ie,BN)=>{"use strict";BN.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 +`+i),t.push("\x1B[3"+n+"m+"+lr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function fee(){return lee.write(Vd.format.apply(Vd,arguments)+` +`)}function mee(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function TD(){return process.env.DEBUG}function hee(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new kD.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 i=require("net");e=new i.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 gee(t){t.inspectOpts={};for(var e=Object.keys(lr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?QE.exports=ED():QE.exports=ID()});var ek=$((cPe,OD)=>{"use strict";var vee=require("events").EventEmitter,yee=require("fs").ReadStream,RD=require("stream"),ta=require("zlib");OD.exports=_ee;function _ee(t,e){return kee(t)?bee(t):Tee(t)?xee(t):wee(t)&&t.destroy(),Eee(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",$ee)),t}function bee(t){t.destroy(),typeof t.close=="function"&&t.on("open",Ree)}function See(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function xee(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",Iee)):t._binding.clear()):t._destroy&&t._destroy!==RD.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&See(t)}function wee(t){return t instanceof RD&&typeof t.destroy=="function"}function Eee(t){return t instanceof vee}function kee(t){return t instanceof yee}function Tee(t){return t instanceof ta.Gzip||t instanceof ta.Gunzip||t instanceof ta.Deflate||t instanceof ta.DeflateRaw||t instanceof ta.Inflate||t instanceof ta.InflateRaw||t instanceof ta.Unzip}function $ee(){}function Iee(){this._binding.clear()}function Ree(){typeof this.fd=="number"&&this.close()}});var ra=$((uPe,CD)=>{"use strict";var fg=require("buffer"),Dc=fg.Buffer,Bn={},Gn;for(Gn in fg)fg.hasOwnProperty(Gn)&&(Gn==="SlowBuffer"||Gn==="Buffer"||(Bn[Gn]=fg[Gn]));var jc=Bn.Buffer={};for(Gn in Dc)Dc.hasOwnProperty(Gn)&&(Gn==="allocUnsafe"||Gn==="allocUnsafeSlow"||(jc[Gn]=Dc[Gn]));Bn.Buffer.prototype=Dc.prototype;(!jc.from||jc.from===Uint8Array.from)&&(jc.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 Dc(t,e,r)});jc.alloc||(jc.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=Dc(t);return!e||e.length===0?n.fill(0):typeof r=="string"?n.fill(e,r):n.fill(e),n});if(!Bn.kStringMaxLength)try{Bn.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}Bn.constants||(Bn.constants={MAX_LENGTH:Bn.kMaxLength},Bn.kStringMaxLength&&(Bn.constants.MAX_STRING_LENGTH=Bn.kStringMaxLength));CD.exports=Bn});var AD=$(nk=>{"use strict";var PD="\uFEFF";nk.PrependBOM=tk;function tk(t,e){this.encoder=t,this.addBOM=!0}tk.prototype.write=function(t){return this.addBOM&&(t=PD+t,this.addBOM=!1),this.encoder.write(t)};tk.prototype.end=function(){return this.encoder.end()};nk.StripBOM=rk;function rk(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}rk.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===PD&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};rk.prototype.end=function(){return this.decoder.end()}});var DD=$((dPe,MD)=>{"use strict";var Kd=ra().Buffer;MD.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:ik};function ik(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=ok:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=ak,Kd.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=ck,this.defaultCharUnicode=e.defaultCharUnicode))}ik.prototype.encoder=sk;ik.prototype.decoder=ND;var mg=require("string_decoder").StringDecoder;mg.prototype.end||(mg.prototype.end=function(){});function ND(t,e){mg.call(this,e.enc)}ND.prototype=mg.prototype;function sk(t,e){this.enc=e.enc}sk.prototype.write=function(t){return Kd.from(t,this.enc)};sk.prototype.end=function(){};function ok(t,e){this.prevStr=""}ok.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),Kd.from(t,"base64")};ok.prototype.end=function(){return Kd.from(this.prevStr,"base64")};function ak(t,e){}ak.prototype.write=function(t){for(var e=Kd.alloc(t.length*3),r=0,n=0;n>>6),e[r++]=128+(i&63)):(e[r++]=224+(i>>>12),e[r++]=128+(i>>>6&63),e[r++]=128+(i&63))}return e.slice(0,r)};ak.prototype.end=function(){};function ck(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}ck.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,n=this.accBytes,i="",s=0;s0&&(i+=this.defaultCharUnicode,r=0),o<128?i+=String.fromCharCode(o):o<224?(e=o&31,r=1,n=1):o<240?(e=o&15,r=2,n=1):i+=this.defaultCharUnicode):r>0?(e=e<<6|o&63,r--,n++,r===0&&(n===2&&e<128&&e>0?i+=this.defaultCharUnicode:n===3&&e<2048?i+=this.defaultCharUnicode:i+=String.fromCharCode(e))):i+=this.defaultCharUnicode}return this.acc=e,this.contBytes=r,this.accBytes=n,i};ck.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var zD=$(mk=>{"use strict";var hg=ra().Buffer;mk.utf16be=gg;function gg(){}gg.prototype.encoder=uk;gg.prototype.decoder=lk;gg.prototype.bomAware=!0;function uk(){}uk.prototype.write=function(t){for(var e=hg.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,i=0,s=Math.min(t.length-t.length%2,64),o=0;on?r="utf-16be":i{"use strict";var Zi=ra().Buffer;_g.utf7=vg;_g.unicode11utf7="utf7";function vg(t,e){this.iconv=e}vg.prototype.encoder=gk;vg.prototype.decoder=vk;vg.prototype.bomAware=!0;var Oee=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function gk(t,e){this.iconv=e.iconv}gk.prototype.write=function(t){return Zi.from(t.replace(Oee,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};gk.prototype.end=function(){};function vk(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var Cee=/[A-Za-z0-9\/+]/,yk=[];for(Jd=0;Jd<256;Jd++)yk[Jd]=Cee.test(String.fromCharCode(Jd));var Jd,Pee=43,na=45,hk=38;vk.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,s=0;s0&&(t=this.iconv.decode(Zi.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};_g.utf7imap=yg;function yg(t,e){this.iconv=e}yg.prototype.encoder=_k;yg.prototype.decoder=bk;yg.prototype.bomAware=!0;function _k(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=Zi.alloc(6),this.base64AccumIdx=0}_k.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,i=Zi.alloc(t.length*5+10),s=0,o=0;o0&&(s+=i.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),s),n=0),i[s++]=na,e=!1),e||(i[s++]=a,a===hk&&(i[s++]=na))):(e||(i[s++]=hk,e=!0),e&&(r[n++]=a>>8,r[n++]=a&255,n==r.length&&(s+=i.write(r.toString("base64").replace(/\//g,","),s),n=0)))}return this.inBase64=e,this.base64AccumIdx=n,i.slice(0,s)};_k.prototype.end=function(){var t=Zi.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 bk(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var LD=yk.slice();LD[44]=!0;bk.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,s=0;s0&&(t=this.iconv.decode(Zi.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var qD=$(FD=>{"use strict";var bg=ra().Buffer;FD._sbcs=Sk;function Sk(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=bg.from(t.chars,"ucs2");for(var i=bg.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";HD.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 GD=$((gPe,BD)=>{"use strict";BD.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 KN=T(WN=>{"use strict";var nc=wo().Buffer;WN._dbcs=ts;var rn=-1,GN=-2,Mn=-10,Si=-1e3,rc=new Array(256),id=-1;for(ch=0;ch<256;ch++)rc[ch]=rn;var ch;function ts(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]=rc.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 i=r[e[n]];if(i==rn)r[e[n]]=Si-this.decodeTables.length,this.decodeTables.push(r=rc.slice(0));else if(i<=Si)r=this.decodeTables[Si-i];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};ts.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)};ts.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=rc.slice(0)),this.encodeTable[e]};ts.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),n=t&255;r[n]<=Mn?this.encodeTableSeq[Mn-r[n]][id]=e:r[n]==rn&&(r[n]=e)};ts.prototype._setEncodeSequence=function(t,e){var r=t[0],n=this._getEncodeBucket(r),i=r&255,s;n[i]<=Mn?s=this.encodeTableSeq[Mn-n[i]]:(s={},n[i]!==rn&&(s[id]=n[i]),n[i]=Mn-this.encodeTableSeq.length,this.encodeTableSeq.push(s));for(var o=1;o=0?this._setEncodeChar(s,o):s<=Si?this._fillEncodeTable(Si-s,o<<8,r):s<=Mn&&this._setEncodeSequence(this.decodeTableSeq[Mn-s],o))}};function uh(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}uh.prototype.write=function(t){for(var e=nc.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,i=-1,s=0,o=0;;){if(i===-1){if(s==t.length)break;var a=t.charCodeAt(s++)}else{var a=i;i=-1}if(55296<=a&&a<57344)if(a<56320)if(r===-1){r=a;continue}else r=a,a=rn;else r!==-1?(a=65536+(r-55296)*1024+(a-56320),r=-1):a=rn;else r!==-1&&(i=a,a=rn,r=-1);var c=rn;if(n!==void 0&&a!=rn){var u=n[a];if(typeof u=="object"){n=u;continue}else typeof u=="number"?c=u:u==null&&(u=n[id],u!==void 0&&(c=u,i=a));n=void 0}else if(a>=0){var l=this.encodeTable[a>>8];if(l!==void 0&&(c=l[a&255]),c<=Mn){n=this.encodeTableSeq[Mn-c];continue}if(c==rn&&this.gb18030){var d=jw(this.gb18030.uChars,a);if(d!=-1){var c=this.gb18030.gbChars[d]+(a-this.gb18030.uChars[d]);e[o++]=129+Math.floor(c/12600),c=c%12600,e[o++]=48+Math.floor(c/1260),c=c%1260,e[o++]=129+Math.floor(c/10),c=c%10,e[o++]=48+c;continue}}}c===rn&&(c=this.defaultCharSingleByte),c<256?e[o++]=c:c<65536?(e[o++]=c>>8,e[o++]=c&255):(e[o++]=c>>16,e[o++]=c>>8&255,e[o++]=c&255)}return this.seqObj=n,this.leadSurrogate=r,e.slice(0,o)};uh.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=nc.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[id];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)}};uh.prototype.findIdx=jw;function Dw(t,e){this.nodeIdx=0,this.prevBuf=nc.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}Dw.prototype.write=function(t){var e=nc.alloc(t.length*2),r=this.nodeIdx,n=this.prevBuf,i=this.prevBuf.length,s=-this.prevBuf.length,o;i>0&&(n=nc.concat([n,t.slice(0,10)]));for(var a=0,c=0;a=0?t[a]:n[a+i],o=this.decodeTables[r][u];if(!(o>=0))if(o===rn)a=s,o=this.defaultCharUnicode.charCodeAt(0);else if(o===GN){var l=s>=0?t.slice(s,a+1):n.slice(s+i,a+1+i),d=(l[0]-129)*12600+(l[1]-48)*1260+(l[2]-129)*10+(l[3]-48),p=jw(this.gb18030.gbChars,d);o=this.gb18030.uChars[p]+d-this.gb18030.gbChars[p]}else if(o<=Si){r=Si-o;continue}else if(o<=Mn){for(var m=this.decodeTableSeq[Mn-o],f=0;f>8;o=m[m.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+o+" at "+r+"/"+u);if(o>65535){o-=65536;var g=55296+Math.floor(o/1024);e[c++]=g&255,e[c++]=g>>8,o=56320+o%1024}e[c++]=o&255,e[c++]=o>>8,r=0,s=a+1}return this.nodeIdx=r,this.prevBuf=s>=0?t.slice(s):n.slice(s+i),e.slice(0,c).toString("ucs2")};Dw.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=nc.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function jw(t,e){if(t[0]>e)return-1;for(var r=0,n=t.length;r{bX.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 XN=T((RIe,xX)=>{xX.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 lh=T((OIe,SX)=>{SX.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 zw=T((PIe,wX)=>{wX.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 YN=T((CIe,EX)=>{EX.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 QN=T((AIe,kX)=>{kX.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 Lw=T((NIe,$X)=>{$X.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 eM=T((MIe,TX)=>{TX.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 rM=T((DIe,tM)=>{"use strict";tM.exports={shiftjis:{type:"_dbcs",table:function(){return JN()},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 XN()},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 lh()}},gbk:{type:"_dbcs",table:function(){return lh().concat(zw())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return lh().concat(zw())},gb18030:function(){return YN()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return QN()}},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 Lw()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return Lw().concat(eM())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var sM=T((iM,ic)=>{"use strict";var nM=[DN(),zN(),UN(),FN(),ZN(),VN(),KN(),rM()];for(dh=0;dh{"use strict";var oM=require("buffer").Buffer,mh=require("stream").Transform;aM.exports=function(t){t.encodeStream=function(r,n){return new ko(t.getEncoder(r,n),n)},t.decodeStream=function(r,n){return new As(t.getDecoder(r,n),n)},t.supportsStreams=!0,t.IconvLiteEncoderStream=ko,t.IconvLiteDecoderStream=As,t._collect=As.prototype.collect};function ko(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,mh.call(this,e)}ko.prototype=Object.create(mh.prototype,{constructor:{value:ko}});ko.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(i){r(i)}};ko.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};ko.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,oM.concat(e))}),this};function As(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",mh.call(this,e)}As.prototype=Object.create(mh.prototype,{constructor:{value:As}});As.prototype._transform=function(t,e,r){if(!oM.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(i){r(i)}};As.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};As.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 lM=T((zIe,uM)=>{"use strict";var Gt=require("buffer").Buffer;uM.exports=function(t){var e=void 0;t.supportsNodeEncodingsExtension=!(Gt.from||new Gt(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};Gt.isNativeEncoding=function(o){return o&&n[o.toLowerCase()]};var i=require("buffer").SlowBuffer;if(e.SlowBufferToString=i.prototype.toString,i.prototype.toString=function(o,a,c){return o=String(o||"utf8").toLowerCase(),Gt.isNativeEncoding(o)?e.SlowBufferToString.call(this,o,a,c):(typeof a>"u"&&(a=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(a,c),o))},e.SlowBufferWrite=i.prototype.write,i.prototype.write=function(o,a,c,u){if(isFinite(a))isFinite(c)||(u=c,c=void 0);else{var l=u;u=a,a=c,c=l}a=+a||0;var d=this.length-a;if(c?(c=+c,c>d&&(c=d)):c=d,u=String(u||"utf8").toLowerCase(),Gt.isNativeEncoding(u))return e.SlowBufferWrite.call(this,o,a,c,u);if(o.length>0&&(c<0||a<0))throw new RangeError("attempt to write beyond buffer bounds");var p=t.encode(o,u);return p.length"u"&&(a=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(a,c),o))},e.BufferWrite=Gt.prototype.write,Gt.prototype.write=function(o,a,c,u){var l=a,d=c,p=u;if(isFinite(a))isFinite(c)||(u=c,c=void 0);else{var m=u;u=a,a=c,c=m}if(u=String(u||"utf8").toLowerCase(),Gt.isNativeEncoding(u))return e.BufferWrite.call(this,o,l,d,p);a=+a||0;var f=this.length-a;if(c?(c=+c,c>f&&(c=f)):c=f,o.length>0&&(c<0||a<0))throw new RangeError("attempt to write beyond buffer bounds");var g=t.encode(o,u);return g.length{"use strict";var pM=wo().Buffer,mM=AN(),ut=fM.exports;ut.encodings=null;ut.defaultCharUnicode="\uFFFD";ut.defaultCharSingleByte="?";ut.encode=function(e,r,n){e=""+(e||"");var i=ut.getEncoder(r,n),s=i.write(e),o=i.end();return o&&o.length>0?pM.concat([s,o]):s};ut.decode=function(e,r,n){typeof e=="string"&&(ut.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),ut.skipDecodeWarning=!0),e=pM.from(""+(e||""),"binary"));var i=ut.getDecoder(r,n),s=i.write(e),o=i.end();return o?s+o:s};ut.encodingExists=function(e){try{return ut.getCodec(e),!0}catch{return!1}};ut.toEncoding=ut.encode;ut.fromEncoding=ut.decode;ut._codecDataCache={};ut.getCodec=function(e){ut.encodings||(ut.encodings=sM());for(var r=ut._canonicalizeEncoding(e),n={};;){var i=ut._codecDataCache[r];if(i)return i;var s=ut.encodings[r];switch(typeof s){case"string":r=s;break;case"object":for(var o in s)n[o]=s[o];n.encodingName||(n.encodingName=r),r=s.type;break;case"function":return n.encodingName||(n.encodingName=r),i=new s(n,ut),ut._codecDataCache[n.encodingName]=i,i;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};ut._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};ut.getEncoder=function(e,r){var n=ut.getCodec(e),i=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(i=new mM.PrependBOM(i,r)),i};ut.getDecoder=function(e,r){var n=ut.getCodec(e),i=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(i=new mM.StripBOM(i,r)),i};var dM=typeof process<"u"&&process.versions&&process.versions.node;dM&&(Uw=dM.split(".").map(Number),(Uw[0]>0||Uw[1]>=10)&&cM()(ut),lM()(ut));var Uw});var fh=T((UIe,hM)=>{"use strict";hM.exports=RX;function IX(t){for(var e=t.listeners("data"),r=0;r{"use strict";var gM=jX(),OX=Xa(),$o=xo(),PX=qw(),CX=fh();yM.exports=MX;var AX=/^Encoding not recognized: /;function NX(t){if(!t)return null;try{return PX.getDecoder(t)}catch(e){throw AX.test(e.message)?$o(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function MX(t,e,r){var n=r,i=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")&&(i={encoding:e}),typeof e=="function"&&(n=e,i={}),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 s=i.encoding!==!0?i.encoding:"utf-8",o=OX.parse(i.limit),a=i.length!=null&&!isNaN(i.length)?parseInt(i.length,10):null;return n?vM(t,s,a,o,zX(n)):new Promise(function(u,l){vM(t,s,a,o,function(p,m){if(p)return l(p);u(m)})})}function DX(t){CX(t),typeof t.pause=="function"&&t.pause()}function vM(t,e,r,n,i){var s=!1,o=!0;if(n!==null&&r!==null&&r>n)return d($o(413,"request entity too large",{expected:r,length:r,limit:n,type:"entity.too.large"}));var a=t._readableState;if(t._decoder||a&&(a.encoding||a.decoder))return d($o(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return d($o(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,u;try{u=NX(e)}catch(h){return d(h)}var l=u?"":[];t.on("aborted",p),t.on("close",g),t.on("data",m),t.on("end",f),t.on("error",f),o=!1;function d(){for(var h=new Array(arguments.length),v=0;vn?d($o(413,"request entity too large",{limit:n,received:c,type:"entity.too.large"})):u?l+=u.write(h):l.push(h))}function f(h){if(!s){if(h)return d(h);if(r!==null&&c!==r)d($o(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var v=u?l+(u.end()||""):Buffer.concat(l);d(null,v)}}}function g(){l=null,t.removeListener("aborted",p),t.removeListener("data",m),t.removeListener("end",f),t.removeListener("error",f),t.removeListener("close",g)}}function jX(){try{return require("async_hooks")}catch{return{}}}function zX(t){var e;return gM.AsyncResource&&(e=new gM.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var xM=T((FIe,bM)=>{"use strict";bM.exports=LX;function LX(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";Fw.exports=FX;Fw.exports.isFinished=EM;var SM=GX(),wM=xM(),qX=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function FX(t,e){return EM(t)!==!1?(qX(e,null,t),t):(ZX(t,WX(e)),t)}function EM(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 HX(t,e){var r,n,i=!1;function s(a){r.cancel(),n.cancel(),i=!0,e(a)}r=n=wM([[t,"end","finish"]],s);function o(a){t.removeListener("socket",o),!i&&r===n&&(n=wM([[a,"error","close"]],s))}if(t.socket){o(t.socket);return}t.on("socket",o),t.socket===void 0&&VX(t,o)}function ZX(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=BX(t),HX(t,r)),r.queue.push(e)}function BX(t){function e(r){if(t.__onFinished===e&&(t.__onFinished=null),!!e.queue){var n=e.queue;e.queue=null;for(var i=0;i{"use strict";var Ns=xo(),KX=pw(),JX=_M(),kM=qw(),$M=sd(),XX=fh(),TM=require("zlib");IM.exports=YX;function YX(t,e,r,n,i,s){var o,a=s,c;t._body=!0;var u=a.encoding!==null?a.encoding:null,l=a.verify;try{c=QX(t,i,a.inflate),o=c.length,c.length=void 0}catch(d){return r(d)}if(a.length=o,a.encoding=l?null:u,a.encoding===null&&u!==null&&!kM.encodingExists(u))return r(Ns(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}));i("read body"),JX(c,a,function(d,p){if(d){var m;d.type==="encoding.unsupported"?m=Ns(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}):m=Ns(400,d),c!==t&&(XX(t),KX(c,!0)),eY(t,function(){r(Ns(400,m))});return}if(l)try{i("verify body"),l(t,e,p,u)}catch(g){r(Ns(403,g,{body:p,type:g.type||"entity.verify.failed"}));return}var f=p;try{i("parse body"),f=typeof p!="string"&&u!==null?kM.decode(p,u):p,t.body=n(f)}catch(g){r(Ns(400,g,{body:f,type:g.type||"entity.parse.failed"}));return}r()})}function QX(t,e,r){var n=(t.headers["content-encoding"]||"identity").toLowerCase(),i=t.headers["content-length"],s;if(e('content-encoding "%s"',n),r===!1&&n!=="identity")throw Ns(415,"content encoding unsupported",{encoding:n,type:"encoding.unsupported"});switch(n){case"deflate":s=TM.createInflate(),e("inflate body"),t.pipe(s);break;case"gzip":s=TM.createGunzip(),e("gunzip body"),t.pipe(s);break;case"identity":s=t,s.length=i;break;default:throw Ns(415,'unsupported content encoding "'+n+'"',{encoding:n,type:"encoding.unsupported"})}return s}function eY(t,e){$M.isFinished(t)?e(null):($M(t,e),t.resume())}});var CM=T(Hw=>{var RM=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,tY=/^[\u0020-\u007e\u0080-\u00ff]+$/,PM=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,rY=/\\([\u0000-\u007f])/g,nY=/([\\"])/g,iY=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,OM=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,sY=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;Hw.format=oY;Hw.parse=aY;function oY(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.subtype,n=t.suffix,i=t.type;if(!i||!OM.test(i))throw new TypeError("invalid type");if(!r||!iY.test(r))throw new TypeError("invalid subtype");var s=i+"/"+r;if(n){if(!OM.test(n))throw new TypeError("invalid suffix");s+="+"+n}if(e&&typeof e=="object")for(var o,a=Object.keys(e).sort(),c=0;c0&&!tY.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(nY,"\\$1")+'"'}function lY(t){var e=sY.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],n=e[2],i,s=n.lastIndexOf("+");s!==-1&&(i=n.substr(s+1),n=n.substr(0,s));var o={type:r,subtype:n,suffix:i};return o}});var AM=T((VIe,dY)=>{dY.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 MM=T((GIe,NM)=>{NM.exports=AM()});var Zw=T(nn=>{"use strict";var hh=MM(),pY=require("path").extname,DM=/^\s*([^;\s]*)(?:;|\s|$)/,mY=/^text\//i;nn.charset=jM;nn.charsets={lookup:jM};nn.contentType=fY;nn.extension=hY;nn.extensions=Object.create(null);nn.lookup=gY;nn.types=Object.create(null);vY(nn.extensions,nn.types);function jM(t){if(!t||typeof t!="string")return!1;var e=DM.exec(t),r=e&&hh[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&mY.test(e[1])?"UTF-8":!1}function fY(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?nn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=nn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function hY(t){if(!t||typeof t!="string")return!1;var e=DM.exec(t),r=e&&nn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function gY(t){if(!t||typeof t!="string")return!1;var e=pY("x."+t).toLowerCase().substr(1);return e&&nn.types[e]||!1}function vY(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(hh).forEach(function(i){var s=hh[i],o=s.extensions;if(!(!o||!o.length)){t[i]=o;for(var a=0;al||u===l&&e[c].substr(0,12)==="application/"))continue}e[c]=i}}})}});var oc=T((KIe,sc)=>{"use strict";var zM=CM(),yY=Zw();sc.exports=_Y;sc.exports.is=LM;sc.exports.hasBody=UM;sc.exports.normalize=qM;sc.exports.match=FM;function LM(t,e){var r,n=e,i=xY(t);if(!i)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 SY=Xa(),wY=Wl(),EY=xo(),Ms=Cn()("body-parser:json"),kY=od(),ZM=oc();VM.exports=IY;var $Y=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,HM="#",TY=/#+/g;function IY(t){var e=t||{},r=typeof e.limit!="number"?SY.parse(e.limit||"100kb"):e.limit,n=e.inflate!==!1,i=e.reviver,s=e.strict!==!1,o=e.type||"application/json",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var c=typeof o!="function"?CY(o):o;function u(l){if(l.length===0)return{};if(s){var d=OY(l);if(d!=="{"&&d!=="[")throw Ms("strict violation"),RY(l,d)}try{return Ms("parse json"),JSON.parse(l,i)}catch(p){throw BM(p,{message:p.message,stack:p.stack})}}return function(d,p,m){if(d._body){Ms("body already parsed"),m();return}if(d.body=d.body||{},!ZM.hasBody(d)){Ms("skip empty body"),m();return}if(Ms("content-type %j",d.headers["content-type"]),!c(d)){Ms("skip parsing"),m();return}var f=PY(d)||"utf-8";if(f.slice(0,4)!=="utf-"){Ms("invalid charset"),m(EY(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}kY(d,p,m,u,Ms,{encoding:f,inflate:n,limit:r,verify:a})}}function RY(t,e){var r=t.indexOf(e),n="";if(r!==-1){n=t.substring(0,r)+HM;for(var i=r+1;i{"use strict";var AY=Xa(),ad=Cn()("body-parser:raw"),NY=od(),WM=oc();KM.exports=MY;function MY(t){var e=t||{},r=e.inflate!==!1,n=typeof e.limit!="number"?AY.parse(e.limit||"100kb"):e.limit,i=e.type||"application/octet-stream",s=e.verify||!1;if(s!==!1&&typeof s!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?DY(i):i;function a(c){return c}return function(u,l,d){if(u._body){ad("body already parsed"),d();return}if(u.body=u.body||{},!WM.hasBody(u)){ad("skip empty body"),d();return}if(ad("content-type %j",u.headers["content-type"]),!o(u)){ad("skip parsing"),d();return}NY(u,l,d,a,ad,{encoding:null,inflate:r,limit:n,verify:s})}}function DY(t){return function(r){return!!WM(r,t)}}});var QM=T((YIe,YM)=>{"use strict";var jY=Xa(),zY=Wl(),cd=Cn()("body-parser:text"),LY=od(),XM=oc();YM.exports=UY;function UY(t){var e=t||{},r=e.defaultCharset||"utf-8",n=e.inflate!==!1,i=typeof e.limit!="number"?jY.parse(e.limit||"100kb"):e.limit,s=e.type||"text/plain",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var a=typeof s!="function"?FY(s):s;function c(u){return u}return function(l,d,p){if(l._body){cd("body already parsed"),p();return}if(l.body=l.body||{},!XM.hasBody(l)){cd("skip empty body"),p();return}if(cd("content-type %j",l.headers["content-type"]),!a(l)){cd("skip parsing"),p();return}var m=qY(l)||r;LY(l,d,p,c,cd,{encoding:m,inflate:n,limit:i,verify:o})}}function qY(t){try{return(zY.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function FY(t){return function(r){return!!XM(r,t)}}});var To=T((QIe,eD)=>{"use strict";eD.exports=TypeError});var rD=T((eRe,tD)=>{tD.exports=require("util").inspect});var md=T((tRe,SD)=>{var eE=typeof Map=="function"&&Map.prototype,Bw=Object.getOwnPropertyDescriptor&&eE?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,vh=eE&&Bw&&typeof Bw.get=="function"?Bw.get:null,nD=eE&&Map.prototype.forEach,tE=typeof Set=="function"&&Set.prototype,Vw=Object.getOwnPropertyDescriptor&&tE?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,yh=tE&&Vw&&typeof Vw.get=="function"?Vw.get:null,iD=tE&&Set.prototype.forEach,HY=typeof WeakMap=="function"&&WeakMap.prototype,ld=HY?WeakMap.prototype.has:null,ZY=typeof WeakSet=="function"&&WeakSet.prototype,dd=ZY?WeakSet.prototype.has:null,BY=typeof WeakRef=="function"&&WeakRef.prototype,sD=BY?WeakRef.prototype.deref:null,VY=Boolean.prototype.valueOf,GY=Object.prototype.toString,WY=Function.prototype.toString,KY=String.prototype.match,rE=String.prototype.slice,Ds=String.prototype.replace,JY=String.prototype.toUpperCase,oD=String.prototype.toLowerCase,hD=RegExp.prototype.test,aD=Array.prototype.concat,wi=Array.prototype.join,XY=Array.prototype.slice,cD=Math.floor,Kw=typeof BigInt=="function"?BigInt.prototype.valueOf:null,Gw=Object.getOwnPropertySymbols,Jw=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,ac=typeof Symbol=="function"&&typeof Symbol.iterator=="object",pd=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===ac||!0)?Symbol.toStringTag:null,gD=Object.prototype.propertyIsEnumerable,uD=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function lD(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||hD.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-cD(-t):cD(t);if(n!==t){var i=String(n),s=rE.call(e,i.length+1);return Ds.call(i,r,"$&_")+"."+Ds.call(Ds.call(s,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Ds.call(e,r,"$&_")}var Xw=rD(),dD=Xw.custom,pD=_D(dD)?dD:null,vD={__proto__:null,double:'"',single:"'"},YY={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};SD.exports=function t(e,r,n,i){var s=r||{};if(rs(s,"quoteStyle")&&!rs(vD,s.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(rs(s,"maxStringLength")&&(typeof s.maxStringLength=="number"?s.maxStringLength<0&&s.maxStringLength!==1/0:s.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=rs(s,"customInspect")?s.customInspect:!0;if(typeof o!="boolean"&&o!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(rs(s,"indent")&&s.indent!==null&&s.indent!==" "&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(rs(s,"numericSeparator")&&typeof s.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var a=s.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 xD(e,s);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return a?lD(e,c):c}if(typeof e=="bigint"){var u=String(e)+"n";return a?lD(e,u):u}var l=typeof s.depth>"u"?5:s.depth;if(typeof n>"u"&&(n=0),n>=l&&l>0&&typeof e=="object")return Yw(e)?"[Array]":"[Object]";var d=gQ(s,n);if(typeof i>"u")i=[];else if(bD(i,e)>=0)return"[Circular]";function p(W,j,ae){if(j&&(i=XY.call(i),i.push(j)),ae){var Ne={depth:s.depth};return rs(s,"quoteStyle")&&(Ne.quoteStyle=s.quoteStyle),t(W,Ne,n+1,i)}return t(W,s,n+1,i)}if(typeof e=="function"&&!mD(e)){var m=aQ(e),f=gh(e,p);return"[Function"+(m?": "+m:" (anonymous)")+"]"+(f.length>0?" { "+wi.call(f,", ")+" }":"")}if(_D(e)){var g=ac?Ds.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):Jw.call(e);return typeof e=="object"&&!ac?ud(g):g}if(mQ(e)){for(var h="<"+oD.call(String(e.nodeName)),v=e.attributes||[],x=0;x",h}if(Yw(e)){if(e.length===0)return"[]";var b=gh(e,p);return d&&!hQ(b)?"["+Qw(b,d)+"]":"[ "+wi.call(b,", ")+" ]"}if(tQ(e)){var _=gh(e,p);return!("cause"in Error.prototype)&&"cause"in e&&!gD.call(e,"cause")?"{ ["+String(e)+"] "+wi.call(aD.call("[cause]: "+p(e.cause),_),", ")+" }":_.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+wi.call(_,", ")+" }"}if(typeof e=="object"&&o){if(pD&&typeof e[pD]=="function"&&Xw)return Xw(e,{depth:l-n});if(o!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(cQ(e)){var S=[];return nD&&nD.call(e,function(W,j){S.push(p(j,e,!0)+" => "+p(W,e))}),fD("Map",vh.call(e),S,d)}if(dQ(e)){var w=[];return iD&&iD.call(e,function(W){w.push(p(W,e))}),fD("Set",yh.call(e),w,d)}if(uQ(e))return Ww("WeakMap");if(pQ(e))return Ww("WeakSet");if(lQ(e))return Ww("WeakRef");if(nQ(e))return ud(p(Number(e)));if(sQ(e))return ud(p(Kw.call(e)));if(iQ(e))return ud(VY.call(e));if(rQ(e))return ud(p(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(!eQ(e)&&!mD(e)){var E=gh(e,p),$=uD?uD(e)===Object.prototype:e instanceof Object||e.constructor===Object,R=e instanceof Object?"":"null prototype",A=!$&&pd&&Object(e)===e&&pd in e?rE.call(js(e),8,-1):R?"Object":"",N=$||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",U=N+(A||R?"["+wi.call(aD.call([],A||[],R||[]),": ")+"] ":"");return E.length===0?U+"{}":d?U+"{"+Qw(E,d)+"}":U+"{ "+wi.call(E,", ")+" }"}return String(e)};function yD(t,e,r){var n=r.quoteStyle||e,i=vD[n];return i+t+i}function QY(t){return Ds.call(String(t),/"/g,""")}function Io(t){return!pd||!(typeof t=="object"&&(pd in t||typeof t[pd]<"u"))}function Yw(t){return js(t)==="[object Array]"&&Io(t)}function eQ(t){return js(t)==="[object Date]"&&Io(t)}function mD(t){return js(t)==="[object RegExp]"&&Io(t)}function tQ(t){return js(t)==="[object Error]"&&Io(t)}function rQ(t){return js(t)==="[object String]"&&Io(t)}function nQ(t){return js(t)==="[object Number]"&&Io(t)}function iQ(t){return js(t)==="[object Boolean]"&&Io(t)}function _D(t){if(ac)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!Jw)return!1;try{return Jw.call(t),!0}catch{}return!1}function sQ(t){if(!t||typeof t!="object"||!Kw)return!1;try{return Kw.call(t),!0}catch{}return!1}var oQ=Object.prototype.hasOwnProperty||function(t){return t in this};function rs(t,e){return oQ.call(t,e)}function js(t){return GY.call(t)}function aQ(t){if(t.name)return t.name;var e=KY.call(WY.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function bD(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 xD(rE.call(t,0,e.maxStringLength),e)+n}var i=YY[e.quoteStyle||"single"];i.lastIndex=0;var s=Ds.call(Ds.call(t,i,"\\$1"),/[\x00-\x1f]/g,fQ);return yD(s,"single",e)}function fQ(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":"")+JY.call(e.toString(16))}function ud(t){return"Object("+t+")"}function Ww(t){return t+" { ? }"}function fD(t,e,r,n){var i=n?Qw(r,n):wi.call(r,", ");return t+" ("+e+") {"+i+"}"}function hQ(t){for(var e=0;e=0)return!1;return!0}function gQ(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=wi.call(Array(t.indent+1)," ");else return null;return{base:r,prev:wi.call(Array(e+1),r)}}function Qw(t,e){if(t.length===0)return"";var r=` -`+e.prev+e.base;return r+wi.call(t,","+r)+` -`+e.prev}function gh(t,e){var r=Yw(t),n=[];if(r){n.length=t.length;for(var i=0;i{"use strict";var vQ=md(),yQ=To(),_h=function(t,e,r){for(var n=t,i;(i=n.next)!=null;n=i)if(i.key===e)return n.next=i.next,r||(i.next=t.next,t.next=i),i},_Q=function(t,e){if(t){var r=_h(t,e);return r&&r.value}},bQ=function(t,e,r){var n=_h(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},xQ=function(t,e){return t?!!_h(t,e):!1},SQ=function(t,e){if(t)return _h(t,e,!0)};wD.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new yQ("Side channel does not contain "+vQ(n))},delete:function(n){var i=e&&e.next,s=SQ(e,n);return s&&i&&i===s&&(e=void 0),!!s},get:function(n){return _Q(e,n)},has:function(n){return xQ(e,n)},set:function(n,i){e||(e={next:void 0}),bQ(e,n,i)}};return r}});var nE=T((nRe,kD)=>{"use strict";kD.exports=Object});var TD=T((iRe,$D)=>{"use strict";$D.exports=Error});var RD=T((sRe,ID)=>{"use strict";ID.exports=EvalError});var PD=T((oRe,OD)=>{"use strict";OD.exports=RangeError});var AD=T((aRe,CD)=>{"use strict";CD.exports=ReferenceError});var MD=T((cRe,ND)=>{"use strict";ND.exports=SyntaxError});var jD=T((uRe,DD)=>{"use strict";DD.exports=URIError});var LD=T((lRe,zD)=>{"use strict";zD.exports=Math.abs});var qD=T((dRe,UD)=>{"use strict";UD.exports=Math.floor});var HD=T((pRe,FD)=>{"use strict";FD.exports=Math.max});var BD=T((mRe,ZD)=>{"use strict";ZD.exports=Math.min});var GD=T((fRe,VD)=>{"use strict";VD.exports=Math.pow});var KD=T((hRe,WD)=>{"use strict";WD.exports=Math.round});var XD=T((gRe,JD)=>{"use strict";JD.exports=Number.isNaN||function(e){return e!==e}});var QD=T((vRe,YD)=>{"use strict";var wQ=XD();YD.exports=function(e){return wQ(e)||e===0?e:e<0?-1:1}});var tj=T((yRe,ej)=>{"use strict";ej.exports=Object.getOwnPropertyDescriptor});var iE=T((_Re,rj)=>{"use strict";var bh=tj();if(bh)try{bh([],"length")}catch{bh=null}rj.exports=bh});var ij=T((bRe,nj)=>{"use strict";var xh=Object.defineProperty||!1;if(xh)try{xh({},"a",{value:1})}catch{xh=!1}nj.exports=xh});var oj=T((xRe,sj)=>{"use strict";sj.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 i=42;e[r]=i;for(var s 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 o=Object.getOwnPropertySymbols(e);if(o.length!==1||o[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var a=Object.getOwnPropertyDescriptor(e,r);if(a.value!==i||a.enumerable!==!0)return!1}return!0}});var uj=T((SRe,cj)=>{"use strict";var aj=typeof Symbol<"u"&&Symbol,EQ=oj();cj.exports=function(){return typeof aj!="function"||typeof Symbol!="function"||typeof aj("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:EQ()}});var sE=T((wRe,lj)=>{"use strict";lj.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var oE=T((ERe,dj)=>{"use strict";var kQ=nE();dj.exports=kQ.getPrototypeOf||null});var fj=T((kRe,mj)=>{"use strict";var $Q="Function.prototype.bind called on incompatible ",TQ=Object.prototype.toString,IQ=Math.max,RQ="[object Function]",pj=function(e,r){for(var n=[],i=0;i{"use strict";var CQ=fj();hj.exports=Function.prototype.bind||CQ});var Sh=T((TRe,gj)=>{"use strict";gj.exports=Function.prototype.call});var aE=T((IRe,vj)=>{"use strict";vj.exports=Function.prototype.apply});var _j=T((RRe,yj)=>{"use strict";yj.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var xj=T((ORe,bj)=>{"use strict";var AQ=fd(),NQ=aE(),MQ=Sh(),DQ=_j();bj.exports=DQ||AQ.call(MQ,NQ)});var cE=T((PRe,Sj)=>{"use strict";var jQ=fd(),zQ=To(),LQ=Sh(),UQ=xj();Sj.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new zQ("a function is required");return UQ(jQ,LQ,e)}});var Ij=T((CRe,Tj)=>{"use strict";var qQ=cE(),wj=iE(),kj;try{kj=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var uE=!!kj&&wj&&wj(Object.prototype,"__proto__"),$j=Object,Ej=$j.getPrototypeOf;Tj.exports=uE&&typeof uE.get=="function"?qQ([uE.get]):typeof Ej=="function"?function(e){return Ej(e==null?e:$j(e))}:!1});var Aj=T((ARe,Cj)=>{"use strict";var Rj=sE(),Oj=oE(),Pj=Ij();Cj.exports=Rj?function(e){return Rj(e)}:Oj?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return Oj(e)}:Pj?function(e){return Pj(e)}:null});var Mj=T((NRe,Nj)=>{"use strict";var FQ=Function.prototype.call,HQ=Object.prototype.hasOwnProperty,ZQ=fd();Nj.exports=ZQ.call(FQ,HQ)});var kh=T((MRe,qj)=>{"use strict";var Je,BQ=nE(),VQ=TD(),GQ=RD(),WQ=PD(),KQ=AD(),dc=MD(),lc=To(),JQ=jD(),XQ=LD(),YQ=qD(),QQ=HD(),eee=BD(),tee=GD(),ree=KD(),nee=QD(),Lj=Function,lE=function(t){try{return Lj('"use strict"; return ('+t+").constructor;")()}catch{}},hd=iE(),iee=ij(),dE=function(){throw new lc},see=hd?(function(){try{return arguments.callee,dE}catch{try{return hd(arguments,"callee").get}catch{return dE}}})():dE,cc=uj()(),ur=Aj(),oee=oE(),aee=sE(),Uj=aE(),gd=Sh(),uc={},cee=typeof Uint8Array>"u"||!ur?Je:ur(Uint8Array),Ro={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Je:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Je:ArrayBuffer,"%ArrayIteratorPrototype%":cc&&ur?ur([][Symbol.iterator]()):Je,"%AsyncFromSyncIteratorPrototype%":Je,"%AsyncFunction%":uc,"%AsyncGenerator%":uc,"%AsyncGeneratorFunction%":uc,"%AsyncIteratorPrototype%":uc,"%Atomics%":typeof Atomics>"u"?Je:Atomics,"%BigInt%":typeof BigInt>"u"?Je:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Je:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Je:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Je:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":VQ,"%eval%":eval,"%EvalError%":GQ,"%Float16Array%":typeof Float16Array>"u"?Je:Float16Array,"%Float32Array%":typeof Float32Array>"u"?Je:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Je:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Je:FinalizationRegistry,"%Function%":Lj,"%GeneratorFunction%":uc,"%Int8Array%":typeof Int8Array>"u"?Je:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Je:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Je:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":cc&&ur?ur(ur([][Symbol.iterator]())):Je,"%JSON%":typeof JSON=="object"?JSON:Je,"%Map%":typeof Map>"u"?Je:Map,"%MapIteratorPrototype%":typeof Map>"u"||!cc||!ur?Je:ur(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":BQ,"%Object.getOwnPropertyDescriptor%":hd,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Je:Promise,"%Proxy%":typeof Proxy>"u"?Je:Proxy,"%RangeError%":WQ,"%ReferenceError%":KQ,"%Reflect%":typeof Reflect>"u"?Je:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Je:Set,"%SetIteratorPrototype%":typeof Set>"u"||!cc||!ur?Je:ur(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Je:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":cc&&ur?ur(""[Symbol.iterator]()):Je,"%Symbol%":cc?Symbol:Je,"%SyntaxError%":dc,"%ThrowTypeError%":see,"%TypedArray%":cee,"%TypeError%":lc,"%Uint8Array%":typeof Uint8Array>"u"?Je:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Je:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Je:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Je:Uint32Array,"%URIError%":JQ,"%WeakMap%":typeof WeakMap>"u"?Je:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Je:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Je:WeakSet,"%Function.prototype.call%":gd,"%Function.prototype.apply%":Uj,"%Object.defineProperty%":iee,"%Object.getPrototypeOf%":oee,"%Math.abs%":XQ,"%Math.floor%":YQ,"%Math.max%":QQ,"%Math.min%":eee,"%Math.pow%":tee,"%Math.round%":ree,"%Math.sign%":nee,"%Reflect.getPrototypeOf%":aee};if(ur)try{null.error}catch(t){Dj=ur(ur(t)),Ro["%Error.prototype%"]=Dj}var Dj,uee=function t(e){var r;if(e==="%AsyncFunction%")r=lE("async function () {}");else if(e==="%GeneratorFunction%")r=lE("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=lE("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&ur&&(r=ur(i.prototype))}return Ro[e]=r,r},jj={__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"]},vd=fd(),wh=Mj(),lee=vd.call(gd,Array.prototype.concat),dee=vd.call(Uj,Array.prototype.splice),zj=vd.call(gd,String.prototype.replace),Eh=vd.call(gd,String.prototype.slice),pee=vd.call(gd,RegExp.prototype.exec),mee=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,fee=/\\(\\)?/g,hee=function(e){var r=Eh(e,0,1),n=Eh(e,-1);if(r==="%"&&n!=="%")throw new dc("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new dc("invalid intrinsic syntax, expected opening `%`");var i=[];return zj(e,mee,function(s,o,a,c){i[i.length]=a?zj(c,fee,"$1"):o||s}),i},gee=function(e,r){var n=e,i;if(wh(jj,n)&&(i=jj[n],n="%"+i[0]+"%"),wh(Ro,n)){var s=Ro[n];if(s===uc&&(s=uee(n)),typeof s>"u"&&!r)throw new lc("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:s}}throw new dc("intrinsic "+e+" does not exist!")};qj.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new lc("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new lc('"allowMissing" argument must be a boolean');if(pee(/^%?[^%]*%?$/,e)===null)throw new dc("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=hee(e),i=n.length>0?n[0]:"",s=gee("%"+i+"%",r),o=s.name,a=s.value,c=!1,u=s.alias;u&&(i=u[0],dee(n,lee([0,1],u)));for(var l=1,d=!0;l=n.length){var g=hd(a,p);d=!!g,d&&"get"in g&&!("originalValue"in g.get)?a=g.get:a=a[p]}else d=wh(a,p),a=a[p];d&&!c&&(Ro[o]=a)}}return a}});var pE=T((DRe,Zj)=>{"use strict";var Fj=kh(),Hj=cE(),vee=Hj([Fj("%String.prototype.indexOf%")]);Zj.exports=function(e,r){var n=Fj(e,!!r);return typeof n=="function"&&vee(e,".prototype.")>-1?Hj([n]):n}});var mE=T((jRe,Vj)=>{"use strict";var yee=kh(),yd=pE(),_ee=md(),bee=To(),Bj=yee("%Map%",!0),xee=yd("Map.prototype.get",!0),See=yd("Map.prototype.set",!0),wee=yd("Map.prototype.has",!0),Eee=yd("Map.prototype.delete",!0),kee=yd("Map.prototype.size",!0);Vj.exports=!!Bj&&function(){var e,r={assert:function(n){if(!r.has(n))throw new bee("Side channel does not contain "+_ee(n))},delete:function(n){if(e){var i=Eee(e,n);return kee(e)===0&&(e=void 0),i}return!1},get:function(n){if(e)return xee(e,n)},has:function(n){return e?wee(e,n):!1},set:function(n,i){e||(e=new Bj),See(e,n,i)}};return r}});var Wj=T((zRe,Gj)=>{"use strict";var $ee=kh(),Th=pE(),Tee=md(),$h=mE(),Iee=To(),pc=$ee("%WeakMap%",!0),Ree=Th("WeakMap.prototype.get",!0),Oee=Th("WeakMap.prototype.set",!0),Pee=Th("WeakMap.prototype.has",!0),Cee=Th("WeakMap.prototype.delete",!0);Gj.exports=pc?function(){var e,r,n={assert:function(i){if(!n.has(i))throw new Iee("Side channel does not contain "+Tee(i))},delete:function(i){if(pc&&i&&(typeof i=="object"||typeof i=="function")){if(e)return Cee(e,i)}else if($h&&r)return r.delete(i);return!1},get:function(i){return pc&&i&&(typeof i=="object"||typeof i=="function")&&e?Ree(e,i):r&&r.get(i)},has:function(i){return pc&&i&&(typeof i=="object"||typeof i=="function")&&e?Pee(e,i):!!r&&r.has(i)},set:function(i,s){pc&&i&&(typeof i=="object"||typeof i=="function")?(e||(e=new pc),Oee(e,i,s)):$h&&(r||(r=$h()),r.set(i,s))}};return n}:$h});var fE=T((LRe,Kj)=>{"use strict";var Aee=To(),Nee=md(),Mee=ED(),Dee=mE(),jee=Wj(),zee=jee||Dee||Mee;Kj.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new Aee("Side channel does not contain "+Nee(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,i){e||(e=zee()),e.set(n,i)}};return r}});var Ih=T((URe,Jj)=>{"use strict";var Lee=String.prototype.replace,Uee=/%20/g,hE={RFC1738:"RFC1738",RFC3986:"RFC3986"};Jj.exports={default:hE.RFC3986,formatters:{RFC1738:function(t){return Lee.call(t,Uee,"+")},RFC3986:function(t){return String(t)}},RFC1738:hE.RFC1738,RFC3986:hE.RFC3986}});var _E=T((qRe,Xj)=>{"use strict";var qee=Ih(),Fee=fE(),gE=Object.prototype.hasOwnProperty,Oo=Array.isArray,Rh=Fee(),mc=function(e,r){return Rh.set(e,r),e},Po=function(e){return Rh.has(e)},_d=function(e){return Rh.get(e)},yE=function(e,r){Rh.set(e,r)},Ei=(function(){for(var t=[],e=0;e<256;++e)t[t.length]="%"+((e<16?"0":"")+e.toString(16)).toUpperCase();return t})(),Hee=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(Oo(n)){for(var i=[],s=0;sn.arrayLimit)return mc(bd(e.concat(r),n),i);e[i]=r}else if(e&&typeof e=="object")if(Po(e)){var s=_d(e)+1;e[s]=r,yE(e,s)}else(n&&(n.plainObjects||n.allowPrototypes)||!gE.call(Object.prototype,r))&&(e[r]=!0);else return[e,r];return e}if(!e||typeof e!="object"){if(Po(r)){for(var o=Object.keys(r),a=n&&n.plainObjects?{__proto__:null,0:e}:{0:e},c=0;cn.arrayLimit?mc(bd(l,n),l.length-1):l}var d=e;return Oo(e)&&!Oo(r)&&(d=bd(e,n)),Oo(e)&&Oo(r)?(r.forEach(function(p,m){if(gE.call(e,m)){var f=e[m];f&&typeof f=="object"&&p&&typeof p=="object"?e[m]=t(f,p,n):e[e.length]=p}else e[m]=p}),e):Object.keys(r).reduce(function(p,m){var f=r[m];if(gE.call(p,m)?p[m]=t(p[m],f,n):p[m]=f,Po(r)&&!Po(p)&&mc(p,_d(r)),Po(p)){var g=parseInt(m,10);String(g)===m&&g>=0&&g>_d(p)&&yE(p,g)}return p},d)},Bee=function(e,r){return Object.keys(r).reduce(function(n,i){return n[i]=r[i],n},e)},Vee=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}},vE=1024,Gee=function(e,r,n,i,s){if(e.length===0)return e;var o=e;if(typeof e=="symbol"?o=Symbol.prototype.toString.call(e):typeof e!="string"&&(o=String(e)),n==="iso-8859-1")return escape(o).replace(/%u[0-9a-f]{4}/gi,function(m){return"%26%23"+parseInt(m.slice(2),16)+"%3B"});for(var a="",c=0;c=vE?o.slice(c,c+vE):o,l=[],d=0;d=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||s===qee.RFC1738&&(p===40||p===41)){l[l.length]=u.charAt(d);continue}if(p<128){l[l.length]=Ei[p];continue}if(p<2048){l[l.length]=Ei[192|p>>6]+Ei[128|p&63];continue}if(p<55296||p>=57344){l[l.length]=Ei[224|p>>12]+Ei[128|p>>6&63]+Ei[128|p&63];continue}d+=1,p=65536+((p&1023)<<10|u.charCodeAt(d)&1023),l[l.length]=Ei[240|p>>18]+Ei[128|p>>12&63]+Ei[128|p>>6&63]+Ei[128|p&63]}a+=l.join("")}return a},Wee=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],i=0;in?mc(bd(o,{plainObjects:i}),o.length-1):o},Yee=function(e,r){if(Oo(e)){for(var n=[],i=0;i{"use strict";var Qj=fE(),Oh=_E(),xd=Ih(),Qee=Object.prototype.hasOwnProperty,ez={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},ki=Array.isArray,ete=Array.prototype.push,tz=function(t,e){ete.apply(t,ki(e)?e:[e])},tte=Date.prototype.toISOString,Yj=xd.default,rr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Oh.encode,encodeValuesOnly:!1,filter:void 0,format:Yj,formatter:xd.formatters[Yj],indices:!1,serializeDate:function(e){return tte.call(e)},skipNulls:!1,strictNullHandling:!1},rte=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},bE={},nte=function t(e,r,n,i,s,o,a,c,u,l,d,p,m,f,g,h,v,x){for(var b=e,_=x,S=0,w=!1;(_=_.get(bE))!==void 0&&!w;){var E=_.get(e);if(S+=1,typeof E<"u"){if(E===S)throw new RangeError("Cyclic object value");w=!0}typeof _.get(bE)>"u"&&(S=0)}if(typeof l=="function"?b=l(r,b):b instanceof Date?b=m(b):n==="comma"&&ki(b)&&(b=Oh.maybeMap(b,function(K){return K instanceof Date?m(K):K})),b===null){if(o)return u&&!h?u(r,rr.encoder,v,"key",f):r;b=""}if(rte(b)||Oh.isBuffer(b)){if(u){var $=h?r:u(r,rr.encoder,v,"key",f);return[g($)+"="+g(u(b,rr.encoder,v,"value",f))]}return[g(r)+"="+g(String(b))]}var R=[];if(typeof b>"u")return R;var A;if(n==="comma"&&ki(b))h&&u&&(b=Oh.maybeMap(b,u)),A=[{value:b.length>0?b.join(",")||null:void 0}];else if(ki(l))A=l;else{var N=Object.keys(b);A=d?N.sort(d):N}var U=c?String(r).replace(/\./g,"%2E"):String(r),W=i&&ki(b)&&b.length===1?U+"[]":U;if(s&&ki(b)&&b.length===0)return W+"[]";for(var j=0;j"u"?e.encodeDotInKeys===!0?!0:rr.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:rr.addQueryPrefix,allowDots:a,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:rr.allowEmptyArrays,arrayFormat:o,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:rr.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?rr.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:rr.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:rr.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:rr.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:rr.encodeValuesOnly,filter:s,format:n,formatter:i,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:rr.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:rr.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:rr.strictNullHandling}};rz.exports=function(t,e){var r=t,n=ite(e),i,s;typeof n.filter=="function"?(s=n.filter,r=s("",r)):ki(n.filter)&&(s=n.filter,i=s);var o=[];if(typeof r!="object"||r===null)return"";var a=ez[n.arrayFormat],c=a==="comma"&&n.commaRoundTrip;i||(i=Object.keys(r)),n.sort&&i.sort(n.sort);for(var u=Qj(),l=0;l0?f+m:""}});var oz=T((HRe,sz)=>{"use strict";var $i=_E(),Ph=Object.prototype.hasOwnProperty,xE=Array.isArray,Wt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:$i.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},ste=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},iz=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},ote="utf8=%26%2310003%3B",ate="utf8=%E2%9C%93",cte=function(e,r){var n={__proto__:null},i=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;i=i.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var s=r.parameterLimit===1/0?void 0:r.parameterLimit,o=i.split(r.delimiter,r.throwOnLimitExceeded?s+1:s);if(r.throwOnLimitExceeded&&o.length>s)throw new RangeError("Parameter limit exceeded. Only "+s+" parameter"+(s===1?"":"s")+" allowed.");var a=-1,c,u=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(f=xE(f)?[f]:f),r.comma&&xE(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=$i.combine([],f,r.arrayLimit,r.plainObjects)}if(m!==null){var g=Ph.call(n,m);g&&r.duplicates==="combine"?n[m]=$i.combine(n[m],f,r.arrayLimit,r.plainObjects):(!g||r.duplicates==="last")&&(n[m]=f)}}return n},ute=function(t,e,r,n){var i=0;if(t.length>0&&t[t.length-1]==="[]"){var s=t.slice(0,-1).join("");i=Array.isArray(e)&&e[s]?e[s].length:0}for(var o=n?e:iz(e,r,i),a=t.length-1;a>=0;--a){var c,u=t[a];if(u==="[]"&&r.parseArrays)$i.isOverflow(o)?c=o:c=r.allowEmptyArrays&&(o===""||r.strictNullHandling&&o===null)?[]:$i.combine([],o,r.arrayLimit,r.plainObjects);else{c=r.plainObjects?{__proto__:null}:{};var l=u.charAt(0)==="["&&u.charAt(u.length-1)==="]"?u.slice(1,-1):u,d=r.decodeDotInKeys?l.replace(/%2E/g,"."):l,p=parseInt(d,10),m=!isNaN(p)&&u!==d&&String(p)===d&&p>=0&&r.parseArrays;if(!r.parseArrays&&d==="")c={0:o};else if(m&&p"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 i=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:Wt.allowDots:!!e.allowDots;return{allowDots:i,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"||$i.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}};sz.exports=function(t,e){var r=pte(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?{__proto__:null}:{};for(var n=typeof t=="string"?cte(t,r):t,i=r.plainObjects?{__proto__:null}:{},s=Object.keys(n),o=0;o{"use strict";var mte=nz(),fte=oz(),hte=Ih();az.exports={formats:hte,parse:fte,stringify:mte}});var mz=T((BRe,pz)=>{"use strict";var gte=Xa(),vte=Wl(),Ah=xo(),Yn=Cn()("body-parser:urlencoded"),yte=bi()("body-parser"),_te=od(),uz=oc();pz.exports=bte;var cz=Object.create(null);function bte(t){var e=t||{};e.extended===void 0&&yte("undefined extended: provide extended option");var r=e.extended!==!1,n=e.inflate!==!1,i=typeof e.limit!="number"?gte.parse(e.limit||"100kb"):e.limit,s=e.type||"application/x-www-form-urlencoded",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var a=r?xte(e):wte(e),c=typeof s!="function"?Ete(s):s;function u(l){return l.length?a(l):{}}return function(d,p,m){if(d._body){Yn("body already parsed"),m();return}if(d.body=d.body||{},!uz.hasBody(d)){Yn("skip empty body"),m();return}if(Yn("content-type %j",d.headers["content-type"]),!c(d)){Yn("skip parsing"),m();return}var f=Ste(d)||"utf-8";if(f!=="utf-8"){Yn("invalid charset"),m(Ah(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}_te(d,p,m,u,Yn,{debug:Yn,encoding:f,inflate:n,limit:i,verify:o})}}function xte(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=t.depth!==void 0?t.depth:32,n=dz("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(s){var o=lz(s,e);if(o===void 0)throw Yn("too many parameters"),Ah(413,"too many parameters",{type:"parameters.too.many"});var a=Math.max(100,o);Yn("parse extended urlencoding");try{return n(s,{allowPrototypes:!0,arrayLimit:a,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?Ah(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function Ste(t){try{return(vte.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function lz(t,e){for(var r=0,n=0;(n=t.indexOf("&",n))!==-1;)if(r++,n++,r===e)return;return r}function dz(t){var e=cz[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=Ch();break;case"querystring":e=require("querystring");break}return cz[t]=e,e.parse}function wte(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=dz("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(i){var s=lz(i,e);if(s===void 0)throw Yn("too many parameters"),Ah(413,"too many parameters",{type:"parameters.too.many"});return Yn("parse urlencoding"),r(i,void 0,void 0,{maxKeys:e})}}function Ete(t){return function(r){return!!uz(r,t)}}});var gz=T((zs,hz)=>{"use strict";var kte=bi()("body-parser"),fz=Object.create(null);zs=hz.exports=kte.function($te,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty(zs,"json",{configurable:!0,enumerable:!0,get:Nh("json")});Object.defineProperty(zs,"raw",{configurable:!0,enumerable:!0,get:Nh("raw")});Object.defineProperty(zs,"text",{configurable:!0,enumerable:!0,get:Nh("text")});Object.defineProperty(zs,"urlencoded",{configurable:!0,enumerable:!0,get:Nh("urlencoded")});function $te(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=zs.urlencoded(e),n=zs.json(e);return function(s,o,a){n(s,o,function(c){if(c)return a(c);r(s,o,a)})}}function Nh(t){return function(){return Tte(t)}}function Tte(t){var e=fz[t];if(e!==void 0)return e;switch(t){case"json":e=GM();break;case"raw":e=JM();break;case"text":e=QM();break;case"urlencoded":e=mz();break}return fz[t]=e}});var yz=T((VRe,vz)=>{"use strict";vz.exports=Rte;var Ite=Object.prototype.hasOwnProperty;function Rte(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(i){if(!(!r&&Ite.call(t,i))){var s=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,s)}}),t}});var Sd=T((GRe,_z)=>{"use strict";_z.exports=Ate;var Ote=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,Pte=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,Cte="$1\uFFFD$2";function Ate(t){return String(t).replace(Pte,Cte).replace(Ote,encodeURI)}});var wd=T((WRe,bz)=>{"use strict";var Nte=/["'&<>]/;bz.exports=Mte;function Mte(t){var e=""+t,r=Nte.exec(e);if(!r)return e;var n,i="",s=0,o=0;for(s=r.index;s{"use strict";var Sz=require("url"),xz=Sz.parse,Mh=Sz.Url;SE.exports=wz;SE.exports.original=Dte;function wz(t){var e=t.url;if(e!==void 0){var r=t._parsedUrl;return kz(e,r)?r:(r=Ez(e),r._raw=e,t._parsedUrl=r)}}function Dte(t){var e=t.originalUrl;if(typeof e!="string")return wz(t);var r=t._parsedOriginalUrl;return kz(e,r)?r:(r=Ez(e),r._raw=e,t._parsedOriginalUrl=r)}function Ez(t){if(typeof t!="string"||t.charCodeAt(0)!==47)return xz(t);for(var e=t,r=null,n=null,i=1;i{"use strict";var wE=Cn()("finalhandler"),jte=Sd(),zte=wd(),Tz=sd(),Lte=fc(),Iz=Jl(),Ute=fh(),qte=/\x20{2}/g,Fte=/\n/g,Hte=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))},Zte=Tz.isFinished;function Bte(t){var e=zte(t).replace(Fte,"
").replace(qte,"  ");return` +\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 KD=$(VD=>{"use strict";var Lc=ra().Buffer;VD._dbcs=$s;var pn=-1,WD=-2,Wn=-10,Bi=-1e3,zc=new Array(256),Xd=-1;for(Sg=0;Sg<256;Sg++)zc[Sg]=pn;var Sg;function $s(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]=zc.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 i=r[e[n]];if(i==pn)r[e[n]]=Bi-this.decodeTables.length,this.decodeTables.push(r=zc.slice(0));else if(i<=Bi)r=this.decodeTables[Bi-i];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};$s.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)};$s.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=zc.slice(0)),this.encodeTable[e]};$s.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),n=t&255;r[n]<=Wn?this.encodeTableSeq[Wn-r[n]][Xd]=e:r[n]==pn&&(r[n]=e)};$s.prototype._setEncodeSequence=function(t,e){var r=t[0],n=this._getEncodeBucket(r),i=r&255,s;n[i]<=Wn?s=this.encodeTableSeq[Wn-n[i]]:(s={},n[i]!==pn&&(s[Xd]=n[i]),n[i]=Wn-this.encodeTableSeq.length,this.encodeTableSeq.push(s));for(var o=1;o=0?this._setEncodeChar(s,o):s<=Bi?this._fillEncodeTable(Bi-s,o<<8,r):s<=Wn&&this._setEncodeSequence(this.decodeTableSeq[Wn-s],o))}};function xg(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}xg.prototype.write=function(t){for(var e=Lc.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,i=-1,s=0,o=0;;){if(i===-1){if(s==t.length)break;var a=t.charCodeAt(s++)}else{var a=i;i=-1}if(55296<=a&&a<57344)if(a<56320)if(r===-1){r=a;continue}else r=a,a=pn;else r!==-1?(a=65536+(r-55296)*1024+(a-56320),r=-1):a=pn;else r!==-1&&(i=a,a=pn,r=-1);var c=pn;if(n!==void 0&&a!=pn){var u=n[a];if(typeof u=="object"){n=u;continue}else typeof u=="number"?c=u:u==null&&(u=n[Xd],u!==void 0&&(c=u,i=a));n=void 0}else if(a>=0){var l=this.encodeTable[a>>8];if(l!==void 0&&(c=l[a&255]),c<=Wn){n=this.encodeTableSeq[Wn-c];continue}if(c==pn&&this.gb18030){var d=kk(this.gb18030.uChars,a);if(d!=-1){var c=this.gb18030.gbChars[d]+(a-this.gb18030.uChars[d]);e[o++]=129+Math.floor(c/12600),c=c%12600,e[o++]=48+Math.floor(c/1260),c=c%1260,e[o++]=129+Math.floor(c/10),c=c%10,e[o++]=48+c;continue}}}c===pn&&(c=this.defaultCharSingleByte),c<256?e[o++]=c:c<65536?(e[o++]=c>>8,e[o++]=c&255):(e[o++]=c>>16,e[o++]=c>>8&255,e[o++]=c&255)}return this.seqObj=n,this.leadSurrogate=r,e.slice(0,o)};xg.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=Lc.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[Xd];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)}};xg.prototype.findIdx=kk;function Ek(t,e){this.nodeIdx=0,this.prevBuf=Lc.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}Ek.prototype.write=function(t){var e=Lc.alloc(t.length*2),r=this.nodeIdx,n=this.prevBuf,i=this.prevBuf.length,s=-this.prevBuf.length,o;i>0&&(n=Lc.concat([n,t.slice(0,10)]));for(var a=0,c=0;a=0?t[a]:n[a+i],o=this.decodeTables[r][u];if(!(o>=0))if(o===pn)a=s,o=this.defaultCharUnicode.charCodeAt(0);else if(o===WD){var l=s>=0?t.slice(s,a+1):n.slice(s+i,a+1+i),d=(l[0]-129)*12600+(l[1]-48)*1260+(l[2]-129)*10+(l[3]-48),p=kk(this.gb18030.gbChars,d);o=this.gb18030.uChars[p]+d-this.gb18030.gbChars[p]}else if(o<=Bi){r=Bi-o;continue}else if(o<=Wn){for(var f=this.decodeTableSeq[Wn-o],m=0;m>8;o=f[f.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+o+" at "+r+"/"+u);if(o>65535){o-=65536;var h=55296+Math.floor(o/1024);e[c++]=h&255,e[c++]=h>>8,o=56320+o%1024}e[c++]=o&255,e[c++]=o>>8,r=0,s=a+1}return this.nodeIdx=r,this.prevBuf=s>=0?t.slice(s):n.slice(s+i),e.slice(0,c).toString("ucs2")};Ek.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=Lc.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function kk(t,e){if(t[0]>e)return-1;for(var r=0,n=t.length;r{Aee.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 XD=$((_Pe,Nee)=>{Nee.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 wg=$((bPe,Mee)=>{Mee.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 Tk=$((SPe,Dee)=>{Dee.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 YD=$((xPe,jee)=>{jee.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 QD=$((wPe,zee)=>{zee.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 $k=$((EPe,Lee)=>{Lee.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 ej=$((kPe,Uee)=>{Uee.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 rj=$((TPe,tj)=>{"use strict";tj.exports={shiftjis:{type:"_dbcs",table:function(){return JD()},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 XD()},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 wg()}},gbk:{type:"_dbcs",table:function(){return wg().concat(Tk())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return wg().concat(Tk())},gb18030:function(){return YD()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return QD()}},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 $k()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return $k().concat(ej())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var sj=$((ij,Uc)=>{"use strict";var nj=[DD(),zD(),UD(),qD(),ZD(),GD(),KD(),rj()];for(Eg=0;Eg{"use strict";var oj=require("buffer").Buffer,Tg=require("stream").Transform;aj.exports=function(t){t.encodeStream=function(r,n){return new ia(t.getEncoder(r,n),n)},t.decodeStream=function(r,n){return new ao(t.getDecoder(r,n),n)},t.supportsStreams=!0,t.IconvLiteEncoderStream=ia,t.IconvLiteDecoderStream=ao,t._collect=ao.prototype.collect};function ia(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,Tg.call(this,e)}ia.prototype=Object.create(Tg.prototype,{constructor:{value:ia}});ia.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(i){r(i)}};ia.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};ia.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,oj.concat(e))}),this};function ao(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",Tg.call(this,e)}ao.prototype=Object.create(Tg.prototype,{constructor:{value:ao}});ao.prototype._transform=function(t,e,r){if(!oj.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(i){r(i)}};ao.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};ao.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 lj=$((IPe,uj)=>{"use strict";var Wt=require("buffer").Buffer;uj.exports=function(t){var e=void 0;t.supportsNodeEncodingsExtension=!(Wt.from||new Wt(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};Wt.isNativeEncoding=function(o){return o&&n[o.toLowerCase()]};var i=require("buffer").SlowBuffer;if(e.SlowBufferToString=i.prototype.toString,i.prototype.toString=function(o,a,c){return o=String(o||"utf8").toLowerCase(),Wt.isNativeEncoding(o)?e.SlowBufferToString.call(this,o,a,c):(typeof a>"u"&&(a=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(a,c),o))},e.SlowBufferWrite=i.prototype.write,i.prototype.write=function(o,a,c,u){if(isFinite(a))isFinite(c)||(u=c,c=void 0);else{var l=u;u=a,a=c,c=l}a=+a||0;var d=this.length-a;if(c?(c=+c,c>d&&(c=d)):c=d,u=String(u||"utf8").toLowerCase(),Wt.isNativeEncoding(u))return e.SlowBufferWrite.call(this,o,a,c,u);if(o.length>0&&(c<0||a<0))throw new RangeError("attempt to write beyond buffer bounds");var p=t.encode(o,u);return p.length"u"&&(a=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(a,c),o))},e.BufferWrite=Wt.prototype.write,Wt.prototype.write=function(o,a,c,u){var l=a,d=c,p=u;if(isFinite(a))isFinite(c)||(u=c,c=void 0);else{var f=u;u=a,a=c,c=f}if(u=String(u||"utf8").toLowerCase(),Wt.isNativeEncoding(u))return e.BufferWrite.call(this,o,l,d,p);a=+a||0;var m=this.length-a;if(c?(c=+c,c>m&&(c=m)):c=m,o.length>0&&(c<0||a<0))throw new RangeError("attempt to write beyond buffer bounds");var h=t.encode(o,u);return h.length{"use strict";var pj=ra().Buffer,fj=AD(),ut=mj.exports;ut.encodings=null;ut.defaultCharUnicode="\uFFFD";ut.defaultCharSingleByte="?";ut.encode=function(e,r,n){e=""+(e||"");var i=ut.getEncoder(r,n),s=i.write(e),o=i.end();return o&&o.length>0?pj.concat([s,o]):s};ut.decode=function(e,r,n){typeof e=="string"&&(ut.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),ut.skipDecodeWarning=!0),e=pj.from(""+(e||""),"binary"));var i=ut.getDecoder(r,n),s=i.write(e),o=i.end();return o?s+o:s};ut.encodingExists=function(e){try{return ut.getCodec(e),!0}catch{return!1}};ut.toEncoding=ut.encode;ut.fromEncoding=ut.decode;ut._codecDataCache={};ut.getCodec=function(e){ut.encodings||(ut.encodings=sj());for(var r=ut._canonicalizeEncoding(e),n={};;){var i=ut._codecDataCache[r];if(i)return i;var s=ut.encodings[r];switch(typeof s){case"string":r=s;break;case"object":for(var o in s)n[o]=s[o];n.encodingName||(n.encodingName=r),r=s.type;break;case"function":return n.encodingName||(n.encodingName=r),i=new s(n,ut),ut._codecDataCache[n.encodingName]=i,i;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};ut._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};ut.getEncoder=function(e,r){var n=ut.getCodec(e),i=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(i=new fj.PrependBOM(i,r)),i};ut.getDecoder=function(e,r){var n=ut.getCodec(e),i=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(i=new fj.StripBOM(i,r)),i};var dj=typeof process<"u"&&process.versions&&process.versions.node;dj&&(Ik=dj.split(".").map(Number),(Ik[0]>0||Ik[1]>=10)&&cj()(ut),lj()(ut));var Ik});var $g=$((OPe,hj)=>{"use strict";hj.exports=qee;function Fee(t){for(var e=t.listeners("data"),r=0;r{"use strict";var gj=Jee(),Hee=Ac(),sa=ea(),Zee=Rk(),Bee=$g();yj.exports=Vee;var Gee=/^Encoding not recognized: /;function Wee(t){if(!t)return null;try{return Zee.getDecoder(t)}catch(e){throw Gee.test(e.message)?sa(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function Vee(t,e,r){var n=r,i=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")&&(i={encoding:e}),typeof e=="function"&&(n=e,i={}),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 s=i.encoding!==!0?i.encoding:"utf-8",o=Hee.parse(i.limit),a=i.length!=null&&!isNaN(i.length)?parseInt(i.length,10):null;return n?vj(t,s,a,o,Xee(n)):new Promise(function(u,l){vj(t,s,a,o,function(p,f){if(p)return l(p);u(f)})})}function Kee(t){Bee(t),typeof t.pause=="function"&&t.pause()}function vj(t,e,r,n,i){var s=!1,o=!0;if(n!==null&&r!==null&&r>n)return d(sa(413,"request entity too large",{expected:r,length:r,limit:n,type:"entity.too.large"}));var a=t._readableState;if(t._decoder||a&&(a.encoding||a.decoder))return d(sa(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return d(sa(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,u;try{u=Wee(e)}catch(g){return d(g)}var l=u?"":[];t.on("aborted",p),t.on("close",h),t.on("data",f),t.on("end",m),t.on("error",m),o=!1;function d(){for(var g=new Array(arguments.length),v=0;vn?d(sa(413,"request entity too large",{limit:n,received:c,type:"entity.too.large"})):u?l+=u.write(g):l.push(g))}function m(g){if(!s){if(g)return d(g);if(r!==null&&c!==r)d(sa(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var v=u?l+(u.end()||""):Buffer.concat(l);d(null,v)}}}function h(){l=null,t.removeListener("aborted",p),t.removeListener("data",f),t.removeListener("end",m),t.removeListener("error",m),t.removeListener("close",h)}}function Jee(){try{return require("async_hooks")}catch{return{}}}function Xee(t){var e;return gj.AsyncResource&&(e=new gj.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var Sj=$((PPe,bj)=>{"use strict";bj.exports=Yee;function Yee(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";Ok.exports=tte;Ok.exports.isFinished=Ej;var xj=ote(),wj=Sj(),ete=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function tte(t,e){return Ej(t)!==!1?(ete(e,null,t),t):(nte(t,ate(e)),t)}function Ej(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 rte(t,e){var r,n,i=!1;function s(a){r.cancel(),n.cancel(),i=!0,e(a)}r=n=wj([[t,"end","finish"]],s);function o(a){t.removeListener("socket",o),!i&&r===n&&(n=wj([[a,"error","close"]],s))}if(t.socket){o(t.socket);return}t.on("socket",o),t.socket===void 0&&ste(t,o)}function nte(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=ite(t),rte(t,r)),r.queue.push(e)}function ite(t){function e(r){if(t.__onFinished===e&&(t.__onFinished=null),!!e.queue){var n=e.queue;e.queue=null;for(var i=0;i{"use strict";var co=ea(),cte=ek(),ute=_j(),kj=Rk(),Tj=Yd(),lte=$g(),$j=require("zlib");Ij.exports=dte;function dte(t,e,r,n,i,s){var o,a=s,c;t._body=!0;var u=a.encoding!==null?a.encoding:null,l=a.verify;try{c=pte(t,i,a.inflate),o=c.length,c.length=void 0}catch(d){return r(d)}if(a.length=o,a.encoding=l?null:u,a.encoding===null&&u!==null&&!kj.encodingExists(u))return r(co(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}));i("read body"),ute(c,a,function(d,p){if(d){var f;d.type==="encoding.unsupported"?f=co(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}):f=co(400,d),c!==t&&(lte(t),cte(c,!0)),fte(t,function(){r(co(400,f))});return}if(l)try{i("verify body"),l(t,e,p,u)}catch(h){r(co(403,h,{body:p,type:h.type||"entity.verify.failed"}));return}var m=p;try{i("parse body"),m=typeof p!="string"&&u!==null?kj.decode(p,u):p,t.body=n(m)}catch(h){r(co(400,h,{body:m,type:h.type||"entity.parse.failed"}));return}r()})}function pte(t,e,r){var n=(t.headers["content-encoding"]||"identity").toLowerCase(),i=t.headers["content-length"],s;if(e('content-encoding "%s"',n),r===!1&&n!=="identity")throw co(415,"content encoding unsupported",{encoding:n,type:"encoding.unsupported"});switch(n){case"deflate":s=$j.createInflate(),e("inflate body"),t.pipe(s);break;case"gzip":s=$j.createGunzip(),e("gunzip body"),t.pipe(s);break;case"identity":s=t,s.length=i;break;default:throw co(415,'unsupported content encoding "'+n+'"',{encoding:n,type:"encoding.unsupported"})}return s}function fte(t,e){Tj.isFinished(t)?e(null):(Tj(t,e),t.resume())}});var Pj=$(Ck=>{var Rj=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,mte=/^[\u0020-\u007e\u0080-\u00ff]+$/,Cj=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,hte=/\\([\u0000-\u007f])/g,gte=/([\\"])/g,vte=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,Oj=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,yte=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;Ck.format=_te;Ck.parse=bte;function _te(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.subtype,n=t.suffix,i=t.type;if(!i||!Oj.test(i))throw new TypeError("invalid type");if(!r||!vte.test(r))throw new TypeError("invalid subtype");var s=i+"/"+r;if(n){if(!Oj.test(n))throw new TypeError("invalid suffix");s+="+"+n}if(e&&typeof e=="object")for(var o,a=Object.keys(e).sort(),c=0;c0&&!mte.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(gte,"\\$1")+'"'}function wte(t){var e=yte.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],n=e[2],i,s=n.lastIndexOf("+");s!==-1&&(i=n.substr(s+1),n=n.substr(0,s));var o={type:r,subtype:n,suffix:i};return o}});var Aj=$((DPe,Ete)=>{Ete.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 Mj=$((jPe,Nj)=>{Nj.exports=Aj()});var Pk=$(fn=>{"use strict";var Ig=Mj(),kte=require("path").extname,Dj=/^\s*([^;\s]*)(?:;|\s|$)/,Tte=/^text\//i;fn.charset=jj;fn.charsets={lookup:jj};fn.contentType=$te;fn.extension=Ite;fn.extensions=Object.create(null);fn.lookup=Rte;fn.types=Object.create(null);Ote(fn.extensions,fn.types);function jj(t){if(!t||typeof t!="string")return!1;var e=Dj.exec(t),r=e&&Ig[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&Tte.test(e[1])?"UTF-8":!1}function $te(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?fn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=fn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function Ite(t){if(!t||typeof t!="string")return!1;var e=Dj.exec(t),r=e&&fn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function Rte(t){if(!t||typeof t!="string")return!1;var e=kte("x."+t).toLowerCase().substr(1);return e&&fn.types[e]||!1}function Ote(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(Ig).forEach(function(i){var s=Ig[i],o=s.extensions;if(!(!o||!o.length)){t[i]=o;for(var a=0;al||u===l&&e[c].substr(0,12)==="application/"))continue}e[c]=i}}})}});var qc=$((LPe,Fc)=>{"use strict";var zj=Pj(),Cte=Pk();Fc.exports=Pte;Fc.exports.is=Lj;Fc.exports.hasBody=Uj;Fc.exports.normalize=Fj;Fc.exports.match=qj;function Lj(t,e){var r,n=e,i=Nte(t);if(!i)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 Mte=Ac(),Dte=Fd(),jte=ea(),uo=Zn()("body-parser:json"),zte=Qd(),Zj=qc();Gj.exports=Fte;var Lte=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,Hj="#",Ute=/#+/g;function Fte(t){var e=t||{},r=typeof e.limit!="number"?Mte.parse(e.limit||"100kb"):e.limit,n=e.inflate!==!1,i=e.reviver,s=e.strict!==!1,o=e.type||"application/json",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var c=typeof o!="function"?Bte(o):o;function u(l){if(l.length===0)return{};if(s){var d=Hte(l);if(d!=="{"&&d!=="[")throw uo("strict violation"),qte(l,d)}try{return uo("parse json"),JSON.parse(l,i)}catch(p){throw Bj(p,{message:p.message,stack:p.stack})}}return function(d,p,f){if(d._body){uo("body already parsed"),f();return}if(d.body=d.body||{},!Zj.hasBody(d)){uo("skip empty body"),f();return}if(uo("content-type %j",d.headers["content-type"]),!c(d)){uo("skip parsing"),f();return}var m=Zte(d)||"utf-8";if(m.slice(0,4)!=="utf-"){uo("invalid charset"),f(jte(415,'unsupported charset "'+m.toUpperCase()+'"',{charset:m,type:"charset.unsupported"}));return}zte(d,p,f,u,uo,{encoding:m,inflate:n,limit:r,verify:a})}}function qte(t,e){var r=t.indexOf(e),n="";if(r!==-1){n=t.substring(0,r)+Hj;for(var i=r+1;i{"use strict";var Gte=Ac(),ep=Zn()("body-parser:raw"),Wte=Qd(),Vj=qc();Kj.exports=Vte;function Vte(t){var e=t||{},r=e.inflate!==!1,n=typeof e.limit!="number"?Gte.parse(e.limit||"100kb"):e.limit,i=e.type||"application/octet-stream",s=e.verify||!1;if(s!==!1&&typeof s!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?Kte(i):i;function a(c){return c}return function(u,l,d){if(u._body){ep("body already parsed"),d();return}if(u.body=u.body||{},!Vj.hasBody(u)){ep("skip empty body"),d();return}if(ep("content-type %j",u.headers["content-type"]),!o(u)){ep("skip parsing"),d();return}Wte(u,l,d,a,ep,{encoding:null,inflate:r,limit:n,verify:s})}}function Kte(t){return function(r){return!!Vj(r,t)}}});var Qj=$((qPe,Yj)=>{"use strict";var Jte=Ac(),Xte=Fd(),tp=Zn()("body-parser:text"),Yte=Qd(),Xj=qc();Yj.exports=Qte;function Qte(t){var e=t||{},r=e.defaultCharset||"utf-8",n=e.inflate!==!1,i=typeof e.limit!="number"?Jte.parse(e.limit||"100kb"):e.limit,s=e.type||"text/plain",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var a=typeof s!="function"?tre(s):s;function c(u){return u}return function(l,d,p){if(l._body){tp("body already parsed"),p();return}if(l.body=l.body||{},!Xj.hasBody(l)){tp("skip empty body"),p();return}if(tp("content-type %j",l.headers["content-type"]),!a(l)){tp("skip parsing"),p();return}var f=ere(l)||r;Yte(l,d,p,c,tp,{encoding:f,inflate:n,limit:i,verify:o})}}function ere(t){try{return(Xte.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function tre(t){return function(r){return!!Xj(r,t)}}});var oa=$((HPe,ez)=>{"use strict";ez.exports=TypeError});var rz=$((ZPe,tz)=>{tz.exports=require("util").inspect});var op=$((BPe,xz)=>{var qk=typeof Map=="function"&&Map.prototype,Ak=Object.getOwnPropertyDescriptor&&qk?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Og=qk&&Ak&&typeof Ak.get=="function"?Ak.get:null,nz=qk&&Map.prototype.forEach,Hk=typeof Set=="function"&&Set.prototype,Nk=Object.getOwnPropertyDescriptor&&Hk?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Cg=Hk&&Nk&&typeof Nk.get=="function"?Nk.get:null,iz=Hk&&Set.prototype.forEach,rre=typeof WeakMap=="function"&&WeakMap.prototype,np=rre?WeakMap.prototype.has:null,nre=typeof WeakSet=="function"&&WeakSet.prototype,ip=nre?WeakSet.prototype.has:null,ire=typeof WeakRef=="function"&&WeakRef.prototype,sz=ire?WeakRef.prototype.deref:null,sre=Boolean.prototype.valueOf,ore=Object.prototype.toString,are=Function.prototype.toString,cre=String.prototype.match,Zk=String.prototype.slice,lo=String.prototype.replace,ure=String.prototype.toUpperCase,oz=String.prototype.toLowerCase,hz=RegExp.prototype.test,az=Array.prototype.concat,Gi=Array.prototype.join,lre=Array.prototype.slice,cz=Math.floor,jk=typeof BigInt=="function"?BigInt.prototype.valueOf:null,Mk=Object.getOwnPropertySymbols,zk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Hc=typeof Symbol=="function"&&typeof Symbol.iterator=="object",sp=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Hc||!0)?Symbol.toStringTag:null,gz=Object.prototype.propertyIsEnumerable,uz=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function lz(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||hz.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-cz(-t):cz(t);if(n!==t){var i=String(n),s=Zk.call(e,i.length+1);return lo.call(i,r,"$&_")+"."+lo.call(lo.call(s,/([0-9]{3})/g,"$&_"),/_$/,"")}}return lo.call(e,r,"$&_")}var Lk=rz(),dz=Lk.custom,pz=_z(dz)?dz:null,vz={__proto__:null,double:'"',single:"'"},dre={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};xz.exports=function t(e,r,n,i){var s=r||{};if(Is(s,"quoteStyle")&&!Is(vz,s.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Is(s,"maxStringLength")&&(typeof s.maxStringLength=="number"?s.maxStringLength<0&&s.maxStringLength!==1/0:s.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=Is(s,"customInspect")?s.customInspect:!0;if(typeof o!="boolean"&&o!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Is(s,"indent")&&s.indent!==null&&s.indent!==" "&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Is(s,"numericSeparator")&&typeof s.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var a=s.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 Sz(e,s);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return a?lz(e,c):c}if(typeof e=="bigint"){var u=String(e)+"n";return a?lz(e,u):u}var l=typeof s.depth>"u"?5:s.depth;if(typeof n>"u"&&(n=0),n>=l&&l>0&&typeof e=="object")return Uk(e)?"[Array]":"[Object]";var d=Rre(s,n);if(typeof i>"u")i=[];else if(bz(i,e)>=0)return"[Circular]";function p(V,j,ae){if(j&&(i=lre.call(i),i.push(j)),ae){var Me={depth:s.depth};return Is(s,"quoteStyle")&&(Me.quoteStyle=s.quoteStyle),t(V,Me,n+1,i)}return t(V,s,n+1,i)}if(typeof e=="function"&&!fz(e)){var f=bre(e),m=Rg(e,p);return"[Function"+(f?": "+f:" (anonymous)")+"]"+(m.length>0?" { "+Gi.call(m,", ")+" }":"")}if(_z(e)){var h=Hc?lo.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):zk.call(e);return typeof e=="object"&&!Hc?rp(h):h}if(Tre(e)){for(var g="<"+oz.call(String(e.nodeName)),v=e.attributes||[],S=0;S",g}if(Uk(e)){if(e.length===0)return"[]";var b=Rg(e,p);return d&&!Ire(b)?"["+Fk(b,d)+"]":"[ "+Gi.call(b,", ")+" ]"}if(mre(e)){var y=Rg(e,p);return!("cause"in Error.prototype)&&"cause"in e&&!gz.call(e,"cause")?"{ ["+String(e)+"] "+Gi.call(az.call("[cause]: "+p(e.cause),y),", ")+" }":y.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+Gi.call(y,", ")+" }"}if(typeof e=="object"&&o){if(pz&&typeof e[pz]=="function"&&Lk)return Lk(e,{depth:l-n});if(o!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(Sre(e)){var x=[];return nz&&nz.call(e,function(V,j){x.push(p(j,e,!0)+" => "+p(V,e))}),mz("Map",Og.call(e),x,d)}if(Ere(e)){var w=[];return iz&&iz.call(e,function(V){w.push(p(V,e))}),mz("Set",Cg.call(e),w,d)}if(xre(e))return Dk("WeakMap");if(kre(e))return Dk("WeakSet");if(wre(e))return Dk("WeakRef");if(gre(e))return rp(p(Number(e)));if(yre(e))return rp(p(jk.call(e)));if(vre(e))return rp(sre.call(e));if(hre(e))return rp(p(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(!fre(e)&&!fz(e)){var E=Rg(e,p),T=uz?uz(e)===Object.prototype:e instanceof Object||e.constructor===Object,I=e instanceof Object?"":"null prototype",A=!T&&sp&&Object(e)===e&&sp in e?Zk.call(po(e),8,-1):I?"Object":"",N=T||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",U=N+(A||I?"["+Gi.call(az.call([],A||[],I||[]),": ")+"] ":"");return E.length===0?U+"{}":d?U+"{"+Fk(E,d)+"}":U+"{ "+Gi.call(E,", ")+" }"}return String(e)};function yz(t,e,r){var n=r.quoteStyle||e,i=vz[n];return i+t+i}function pre(t){return lo.call(String(t),/"/g,""")}function aa(t){return!sp||!(typeof t=="object"&&(sp in t||typeof t[sp]<"u"))}function Uk(t){return po(t)==="[object Array]"&&aa(t)}function fre(t){return po(t)==="[object Date]"&&aa(t)}function fz(t){return po(t)==="[object RegExp]"&&aa(t)}function mre(t){return po(t)==="[object Error]"&&aa(t)}function hre(t){return po(t)==="[object String]"&&aa(t)}function gre(t){return po(t)==="[object Number]"&&aa(t)}function vre(t){return po(t)==="[object Boolean]"&&aa(t)}function _z(t){if(Hc)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!zk)return!1;try{return zk.call(t),!0}catch{}return!1}function yre(t){if(!t||typeof t!="object"||!jk)return!1;try{return jk.call(t),!0}catch{}return!1}var _re=Object.prototype.hasOwnProperty||function(t){return t in this};function Is(t,e){return _re.call(t,e)}function po(t){return ore.call(t)}function bre(t){if(t.name)return t.name;var e=cre.call(are.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function bz(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 Sz(Zk.call(t,0,e.maxStringLength),e)+n}var i=dre[e.quoteStyle||"single"];i.lastIndex=0;var s=lo.call(lo.call(t,i,"\\$1"),/[\x00-\x1f]/g,$re);return yz(s,"single",e)}function $re(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":"")+ure.call(e.toString(16))}function rp(t){return"Object("+t+")"}function Dk(t){return t+" { ? }"}function mz(t,e,r,n){var i=n?Fk(r,n):Gi.call(r,", ");return t+" ("+e+") {"+i+"}"}function Ire(t){for(var e=0;e=0)return!1;return!0}function Rre(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=Gi.call(Array(t.indent+1)," ");else return null;return{base:r,prev:Gi.call(Array(e+1),r)}}function Fk(t,e){if(t.length===0)return"";var r=` +`+e.prev+e.base;return r+Gi.call(t,","+r)+` +`+e.prev}function Rg(t,e){var r=Uk(t),n=[];if(r){n.length=t.length;for(var i=0;i{"use strict";var Ore=op(),Cre=oa(),Pg=function(t,e,r){for(var n=t,i;(i=n.next)!=null;n=i)if(i.key===e)return n.next=i.next,r||(i.next=t.next,t.next=i),i},Pre=function(t,e){if(t){var r=Pg(t,e);return r&&r.value}},Are=function(t,e,r){var n=Pg(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},Nre=function(t,e){return t?!!Pg(t,e):!1},Mre=function(t,e){if(t)return Pg(t,e,!0)};wz.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new Cre("Side channel does not contain "+Ore(n))},delete:function(n){var i=e&&e.next,s=Mre(e,n);return s&&i&&i===s&&(e=void 0),!!s},get:function(n){return Pre(e,n)},has:function(n){return Nre(e,n)},set:function(n,i){e||(e={next:void 0}),Are(e,n,i)}};return r}});var Bk=$((WPe,kz)=>{"use strict";kz.exports=Object});var $z=$((VPe,Tz)=>{"use strict";Tz.exports=Error});var Rz=$((KPe,Iz)=>{"use strict";Iz.exports=EvalError});var Cz=$((JPe,Oz)=>{"use strict";Oz.exports=RangeError});var Az=$((XPe,Pz)=>{"use strict";Pz.exports=ReferenceError});var Mz=$((YPe,Nz)=>{"use strict";Nz.exports=SyntaxError});var jz=$((QPe,Dz)=>{"use strict";Dz.exports=URIError});var Lz=$((eAe,zz)=>{"use strict";zz.exports=Math.abs});var Fz=$((tAe,Uz)=>{"use strict";Uz.exports=Math.floor});var Hz=$((rAe,qz)=>{"use strict";qz.exports=Math.max});var Bz=$((nAe,Zz)=>{"use strict";Zz.exports=Math.min});var Wz=$((iAe,Gz)=>{"use strict";Gz.exports=Math.pow});var Kz=$((sAe,Vz)=>{"use strict";Vz.exports=Math.round});var Xz=$((oAe,Jz)=>{"use strict";Jz.exports=Number.isNaN||function(e){return e!==e}});var Qz=$((aAe,Yz)=>{"use strict";var Dre=Xz();Yz.exports=function(e){return Dre(e)||e===0?e:e<0?-1:1}});var t4=$((cAe,e4)=>{"use strict";e4.exports=Object.getOwnPropertyDescriptor});var Gk=$((uAe,r4)=>{"use strict";var Ag=t4();if(Ag)try{Ag([],"length")}catch{Ag=null}r4.exports=Ag});var i4=$((lAe,n4)=>{"use strict";var Ng=Object.defineProperty||!1;if(Ng)try{Ng({},"a",{value:1})}catch{Ng=!1}n4.exports=Ng});var o4=$((dAe,s4)=>{"use strict";s4.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 i=42;e[r]=i;for(var s 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 o=Object.getOwnPropertySymbols(e);if(o.length!==1||o[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var a=Object.getOwnPropertyDescriptor(e,r);if(a.value!==i||a.enumerable!==!0)return!1}return!0}});var u4=$((pAe,c4)=>{"use strict";var a4=typeof Symbol<"u"&&Symbol,jre=o4();c4.exports=function(){return typeof a4!="function"||typeof Symbol!="function"||typeof a4("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:jre()}});var Wk=$((fAe,l4)=>{"use strict";l4.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var Vk=$((mAe,d4)=>{"use strict";var zre=Bk();d4.exports=zre.getPrototypeOf||null});var m4=$((hAe,f4)=>{"use strict";var Lre="Function.prototype.bind called on incompatible ",Ure=Object.prototype.toString,Fre=Math.max,qre="[object Function]",p4=function(e,r){for(var n=[],i=0;i{"use strict";var Bre=m4();h4.exports=Function.prototype.bind||Bre});var Mg=$((vAe,g4)=>{"use strict";g4.exports=Function.prototype.call});var Kk=$((yAe,v4)=>{"use strict";v4.exports=Function.prototype.apply});var _4=$((_Ae,y4)=>{"use strict";y4.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var S4=$((bAe,b4)=>{"use strict";var Gre=ap(),Wre=Kk(),Vre=Mg(),Kre=_4();b4.exports=Kre||Gre.call(Vre,Wre)});var Jk=$((SAe,x4)=>{"use strict";var Jre=ap(),Xre=oa(),Yre=Mg(),Qre=S4();x4.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new Xre("a function is required");return Qre(Jre,Yre,e)}});var I4=$((xAe,$4)=>{"use strict";var ene=Jk(),w4=Gk(),k4;try{k4=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var Xk=!!k4&&w4&&w4(Object.prototype,"__proto__"),T4=Object,E4=T4.getPrototypeOf;$4.exports=Xk&&typeof Xk.get=="function"?ene([Xk.get]):typeof E4=="function"?function(e){return E4(e==null?e:T4(e))}:!1});var A4=$((wAe,P4)=>{"use strict";var R4=Wk(),O4=Vk(),C4=I4();P4.exports=R4?function(e){return R4(e)}:O4?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return O4(e)}:C4?function(e){return C4(e)}:null});var M4=$((EAe,N4)=>{"use strict";var tne=Function.prototype.call,rne=Object.prototype.hasOwnProperty,nne=ap();N4.exports=nne.call(tne,rne)});var zg=$((kAe,F4)=>{"use strict";var Je,ine=Bk(),sne=$z(),one=Rz(),ane=Cz(),cne=Az(),Wc=Mz(),Gc=oa(),une=jz(),lne=Lz(),dne=Fz(),pne=Hz(),fne=Bz(),mne=Wz(),hne=Kz(),gne=Qz(),L4=Function,Yk=function(t){try{return L4('"use strict"; return ('+t+").constructor;")()}catch{}},cp=Gk(),vne=i4(),Qk=function(){throw new Gc},yne=cp?(function(){try{return arguments.callee,Qk}catch{try{return cp(arguments,"callee").get}catch{return Qk}}})():Qk,Zc=u4()(),dr=A4(),_ne=Vk(),bne=Wk(),U4=Kk(),up=Mg(),Bc={},Sne=typeof Uint8Array>"u"||!dr?Je:dr(Uint8Array),ca={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Je:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Je:ArrayBuffer,"%ArrayIteratorPrototype%":Zc&&dr?dr([][Symbol.iterator]()):Je,"%AsyncFromSyncIteratorPrototype%":Je,"%AsyncFunction%":Bc,"%AsyncGenerator%":Bc,"%AsyncGeneratorFunction%":Bc,"%AsyncIteratorPrototype%":Bc,"%Atomics%":typeof Atomics>"u"?Je:Atomics,"%BigInt%":typeof BigInt>"u"?Je:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Je:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Je:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Je:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":sne,"%eval%":eval,"%EvalError%":one,"%Float16Array%":typeof Float16Array>"u"?Je:Float16Array,"%Float32Array%":typeof Float32Array>"u"?Je:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Je:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Je:FinalizationRegistry,"%Function%":L4,"%GeneratorFunction%":Bc,"%Int8Array%":typeof Int8Array>"u"?Je:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Je:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Je:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Zc&&dr?dr(dr([][Symbol.iterator]())):Je,"%JSON%":typeof JSON=="object"?JSON:Je,"%Map%":typeof Map>"u"?Je:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Zc||!dr?Je:dr(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":ine,"%Object.getOwnPropertyDescriptor%":cp,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Je:Promise,"%Proxy%":typeof Proxy>"u"?Je:Proxy,"%RangeError%":ane,"%ReferenceError%":cne,"%Reflect%":typeof Reflect>"u"?Je:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Je:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Zc||!dr?Je:dr(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Je:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Zc&&dr?dr(""[Symbol.iterator]()):Je,"%Symbol%":Zc?Symbol:Je,"%SyntaxError%":Wc,"%ThrowTypeError%":yne,"%TypedArray%":Sne,"%TypeError%":Gc,"%Uint8Array%":typeof Uint8Array>"u"?Je:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Je:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Je:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Je:Uint32Array,"%URIError%":une,"%WeakMap%":typeof WeakMap>"u"?Je:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Je:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Je:WeakSet,"%Function.prototype.call%":up,"%Function.prototype.apply%":U4,"%Object.defineProperty%":vne,"%Object.getPrototypeOf%":_ne,"%Math.abs%":lne,"%Math.floor%":dne,"%Math.max%":pne,"%Math.min%":fne,"%Math.pow%":mne,"%Math.round%":hne,"%Math.sign%":gne,"%Reflect.getPrototypeOf%":bne};if(dr)try{null.error}catch(t){D4=dr(dr(t)),ca["%Error.prototype%"]=D4}var D4,xne=function t(e){var r;if(e==="%AsyncFunction%")r=Yk("async function () {}");else if(e==="%GeneratorFunction%")r=Yk("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=Yk("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&dr&&(r=dr(i.prototype))}return ca[e]=r,r},j4={__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"]},lp=ap(),Dg=M4(),wne=lp.call(up,Array.prototype.concat),Ene=lp.call(U4,Array.prototype.splice),z4=lp.call(up,String.prototype.replace),jg=lp.call(up,String.prototype.slice),kne=lp.call(up,RegExp.prototype.exec),Tne=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,$ne=/\\(\\)?/g,Ine=function(e){var r=jg(e,0,1),n=jg(e,-1);if(r==="%"&&n!=="%")throw new Wc("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Wc("invalid intrinsic syntax, expected opening `%`");var i=[];return z4(e,Tne,function(s,o,a,c){i[i.length]=a?z4(c,$ne,"$1"):o||s}),i},Rne=function(e,r){var n=e,i;if(Dg(j4,n)&&(i=j4[n],n="%"+i[0]+"%"),Dg(ca,n)){var s=ca[n];if(s===Bc&&(s=xne(n)),typeof s>"u"&&!r)throw new Gc("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:s}}throw new Wc("intrinsic "+e+" does not exist!")};F4.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new Gc("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Gc('"allowMissing" argument must be a boolean');if(kne(/^%?[^%]*%?$/,e)===null)throw new Wc("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=Ine(e),i=n.length>0?n[0]:"",s=Rne("%"+i+"%",r),o=s.name,a=s.value,c=!1,u=s.alias;u&&(i=u[0],Ene(n,wne([0,1],u)));for(var l=1,d=!0;l=n.length){var h=cp(a,p);d=!!h,d&&"get"in h&&!("originalValue"in h.get)?a=h.get:a=a[p]}else d=Dg(a,p),a=a[p];d&&!c&&(ca[o]=a)}}return a}});var eT=$((TAe,Z4)=>{"use strict";var q4=zg(),H4=Jk(),One=H4([q4("%String.prototype.indexOf%")]);Z4.exports=function(e,r){var n=q4(e,!!r);return typeof n=="function"&&One(e,".prototype.")>-1?H4([n]):n}});var tT=$(($Ae,G4)=>{"use strict";var Cne=zg(),dp=eT(),Pne=op(),Ane=oa(),B4=Cne("%Map%",!0),Nne=dp("Map.prototype.get",!0),Mne=dp("Map.prototype.set",!0),Dne=dp("Map.prototype.has",!0),jne=dp("Map.prototype.delete",!0),zne=dp("Map.prototype.size",!0);G4.exports=!!B4&&function(){var e,r={assert:function(n){if(!r.has(n))throw new Ane("Side channel does not contain "+Pne(n))},delete:function(n){if(e){var i=jne(e,n);return zne(e)===0&&(e=void 0),i}return!1},get:function(n){if(e)return Nne(e,n)},has:function(n){return e?Dne(e,n):!1},set:function(n,i){e||(e=new B4),Mne(e,n,i)}};return r}});var V4=$((IAe,W4)=>{"use strict";var Lne=zg(),Ug=eT(),Une=op(),Lg=tT(),Fne=oa(),Vc=Lne("%WeakMap%",!0),qne=Ug("WeakMap.prototype.get",!0),Hne=Ug("WeakMap.prototype.set",!0),Zne=Ug("WeakMap.prototype.has",!0),Bne=Ug("WeakMap.prototype.delete",!0);W4.exports=Vc?function(){var e,r,n={assert:function(i){if(!n.has(i))throw new Fne("Side channel does not contain "+Une(i))},delete:function(i){if(Vc&&i&&(typeof i=="object"||typeof i=="function")){if(e)return Bne(e,i)}else if(Lg&&r)return r.delete(i);return!1},get:function(i){return Vc&&i&&(typeof i=="object"||typeof i=="function")&&e?qne(e,i):r&&r.get(i)},has:function(i){return Vc&&i&&(typeof i=="object"||typeof i=="function")&&e?Zne(e,i):!!r&&r.has(i)},set:function(i,s){Vc&&i&&(typeof i=="object"||typeof i=="function")?(e||(e=new Vc),Hne(e,i,s)):Lg&&(r||(r=Lg()),r.set(i,s))}};return n}:Lg});var rT=$((RAe,K4)=>{"use strict";var Gne=oa(),Wne=op(),Vne=Ez(),Kne=tT(),Jne=V4(),Xne=Jne||Kne||Vne;K4.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new Gne("Side channel does not contain "+Wne(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,i){e||(e=Xne()),e.set(n,i)}};return r}});var Fg=$((OAe,J4)=>{"use strict";var Yne=String.prototype.replace,Qne=/%20/g,nT={RFC1738:"RFC1738",RFC3986:"RFC3986"};J4.exports={default:nT.RFC3986,formatters:{RFC1738:function(t){return Yne.call(t,Qne,"+")},RFC3986:function(t){return String(t)}},RFC1738:nT.RFC1738,RFC3986:nT.RFC3986}});var cT=$((CAe,Q4)=>{"use strict";var eie=Fg(),tie=rT(),iT=Object.prototype.hasOwnProperty,ua=Array.isArray,Hg=tie(),X4=function(e,r){return Hg.set(e,r),e},qg=function(e){return Hg.has(e)},oT=function(e){return Hg.get(e)},Y4=function(e,r){Hg.set(e,r)},Wi=(function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t})(),rie=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(ua(n)){for(var i=[],s=0;s=sT?o.slice(c,c+sT):o,l=[],d=0;d=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||s===eie.RFC1738&&(p===40||p===41)){l[l.length]=u.charAt(d);continue}if(p<128){l[l.length]=Wi[p];continue}if(p<2048){l[l.length]=Wi[192|p>>6]+Wi[128|p&63];continue}if(p<55296||p>=57344){l[l.length]=Wi[224|p>>12]+Wi[128|p>>6&63]+Wi[128|p&63];continue}d+=1,p=65536+((p&1023)<<10|u.charCodeAt(d)&1023),l[l.length]=Wi[240|p>>18]+Wi[128|p>>12&63]+Wi[128|p>>6&63]+Wi[128|p&63]}a+=l.join("")}return a},aie=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],i=0;in?X4(aT(o,{plainObjects:i}),o.length-1):o},die=function(e,r){if(ua(e)){for(var n=[],i=0;i{"use strict";var tL=rT(),Zg=cT(),pp=Fg(),pie=Object.prototype.hasOwnProperty,rL={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},Vi=Array.isArray,fie=Array.prototype.push,nL=function(t,e){fie.apply(t,Vi(e)?e:[e])},mie=Date.prototype.toISOString,eL=pp.default,nr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Zg.encode,encodeValuesOnly:!1,filter:void 0,format:eL,formatter:pp.formatters[eL],indices:!1,serializeDate:function(e){return mie.call(e)},skipNulls:!1,strictNullHandling:!1},hie=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},uT={},gie=function t(e,r,n,i,s,o,a,c,u,l,d,p,f,m,h,g,v,S){for(var b=e,y=S,x=0,w=!1;(y=y.get(uT))!==void 0&&!w;){var E=y.get(e);if(x+=1,typeof E<"u"){if(E===x)throw new RangeError("Cyclic object value");w=!0}typeof y.get(uT)>"u"&&(x=0)}if(typeof l=="function"?b=l(r,b):b instanceof Date?b=f(b):n==="comma"&&Vi(b)&&(b=Zg.maybeMap(b,function(K){return K instanceof Date?f(K):K})),b===null){if(o)return u&&!g?u(r,nr.encoder,v,"key",m):r;b=""}if(hie(b)||Zg.isBuffer(b)){if(u){var T=g?r:u(r,nr.encoder,v,"key",m);return[h(T)+"="+h(u(b,nr.encoder,v,"value",m))]}return[h(r)+"="+h(String(b))]}var I=[];if(typeof b>"u")return I;var A;if(n==="comma"&&Vi(b))g&&u&&(b=Zg.maybeMap(b,u)),A=[{value:b.length>0?b.join(",")||null:void 0}];else if(Vi(l))A=l;else{var N=Object.keys(b);A=d?N.sort(d):N}var U=c?String(r).replace(/\./g,"%2E"):String(r),V=i&&Vi(b)&&b.length===1?U+"[]":U;if(s&&Vi(b)&&b.length===0)return V+"[]";for(var j=0;j"u"?e.encodeDotInKeys===!0?!0:nr.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:nr.addQueryPrefix,allowDots:a,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:nr.allowEmptyArrays,arrayFormat:o,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:s,format:n,formatter:i,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}};iL.exports=function(t,e){var r=t,n=vie(e),i,s;typeof n.filter=="function"?(s=n.filter,r=s("",r)):Vi(n.filter)&&(s=n.filter,i=s);var o=[];if(typeof r!="object"||r===null)return"";var a=rL[n.arrayFormat],c=a==="comma"&&n.commaRoundTrip;i||(i=Object.keys(r)),n.sort&&i.sort(n.sort);for(var u=tL(),l=0;l0?m+f:""}});var uL=$((AAe,cL)=>{"use strict";var fo=cT(),Bg=Object.prototype.hasOwnProperty,oL=Array.isArray,Vt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:fo.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},yie=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},aL=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},_ie="utf8=%26%2310003%3B",bie="utf8=%E2%9C%93",Sie=function(e,r){var n={__proto__:null},i=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;i=i.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var s=r.parameterLimit===1/0?void 0:r.parameterLimit,o=i.split(r.delimiter,r.throwOnLimitExceeded?s+1:s);if(r.throwOnLimitExceeded&&o.length>s)throw new RangeError("Parameter limit exceeded. Only "+s+" parameter"+(s===1?"":"s")+" allowed.");var a=-1,c,u=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(m=oL(m)?[m]:m),f!==null){var h=Bg.call(n,f);h&&r.duplicates==="combine"?n[f]=fo.combine(n[f],m,r.arrayLimit,r.plainObjects):(!h||r.duplicates==="last")&&(n[f]=m)}}return n},xie=function(t,e,r,n){var i=0;if(t.length>0&&t[t.length-1]==="[]"){var s=t.slice(0,-1).join("");i=Array.isArray(e)&&e[s]?e[s].length:0}for(var o=n?e:aL(e,r,i),a=t.length-1;a>=0;--a){var c,u=t[a];if(u==="[]"&&r.parseArrays)fo.isOverflow(o)?c=o:c=r.allowEmptyArrays&&(o===""||r.strictNullHandling&&o===null)?[]:fo.combine([],o,r.arrayLimit,r.plainObjects);else{c=r.plainObjects?{__proto__:null}:{};var l=u.charAt(0)==="["&&u.charAt(u.length-1)==="]"?u.slice(1,-1):u,d=r.decodeDotInKeys?l.replace(/%2E/g,"."):l,p=parseInt(d,10);!r.parseArrays&&d===""?c={0:o}:!isNaN(p)&&u!==d&&String(p)===d&&p>=0&&r.parseArrays&&p<=r.arrayLimit?(c=[],c[p]=o):d!=="__proto__"&&(c[d]=o)}o=c}return o},wie=function(e,r){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e;if(r.depth<=0)return!r.plainObjects&&Bg.call(Object.prototype,n)&&!r.allowPrototypes?void 0:[n];var i=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,o=i.exec(n),a=o?n.slice(0,o.index):n,c=[];if(a){if(!r.plainObjects&&Bg.call(Object.prototype,a)&&!r.allowPrototypes)return;c.push(a)}for(var u=0;(o=s.exec(n))!==null&&u"u"?Vt.charset:e.charset,n=typeof e.duplicates>"u"?Vt.duplicates:e.duplicates;if(n!=="combine"&&n!=="first"&&n!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var i=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:Vt.allowDots:!!e.allowDots;return{allowDots:i,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Vt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:Vt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:Vt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:Vt.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Vt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:Vt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:Vt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:Vt.decoder,delimiter:typeof e.delimiter=="string"||fo.isRegExp(e.delimiter)?e.delimiter:Vt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:Vt.depth,duplicates:n,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:Vt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:Vt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:Vt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:Vt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Vt.strictNullHandling,throwOnLimitExceeded:typeof e.throwOnLimitExceeded=="boolean"?e.throwOnLimitExceeded:!1}};cL.exports=function(t,e){var r=kie(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?{__proto__:null}:{};for(var n=typeof t=="string"?Sie(t,r):t,i=r.plainObjects?{__proto__:null}:{},s=Object.keys(n),o=0;o{"use strict";var Tie=sL(),$ie=uL(),Iie=Fg();lL.exports={formats:Iie,parse:$ie,stringify:Tie}});var gL=$((MAe,hL)=>{"use strict";var Rie=Ac(),Oie=Fd(),Wg=ea(),fi=Zn()("body-parser:urlencoded"),Cie=Hi()("body-parser"),Pie=Qd(),pL=qc();hL.exports=Aie;var dL=Object.create(null);function Aie(t){var e=t||{};e.extended===void 0&&Cie("undefined extended: provide extended option");var r=e.extended!==!1,n=e.inflate!==!1,i=typeof e.limit!="number"?Rie.parse(e.limit||"100kb"):e.limit,s=e.type||"application/x-www-form-urlencoded",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var a=r?Nie(e):Die(e),c=typeof s!="function"?jie(s):s;function u(l){return l.length?a(l):{}}return function(d,p,f){if(d._body){fi("body already parsed"),f();return}if(d.body=d.body||{},!pL.hasBody(d)){fi("skip empty body"),f();return}if(fi("content-type %j",d.headers["content-type"]),!c(d)){fi("skip parsing"),f();return}var m=Mie(d)||"utf-8";if(m!=="utf-8"){fi("invalid charset"),f(Wg(415,'unsupported charset "'+m.toUpperCase()+'"',{charset:m,type:"charset.unsupported"}));return}Pie(d,p,f,u,fi,{debug:fi,encoding:m,inflate:n,limit:i,verify:o})}}function Nie(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=t.depth!==void 0?t.depth:32,n=mL("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(s){var o=fL(s,e);if(o===void 0)throw fi("too many parameters"),Wg(413,"too many parameters",{type:"parameters.too.many"});var a=Math.max(100,o);fi("parse extended urlencoding");try{return n(s,{allowPrototypes:!0,arrayLimit:a,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?Wg(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function Mie(t){try{return(Oie.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function fL(t,e){for(var r=0,n=0;(n=t.indexOf("&",n))!==-1;)if(r++,n++,r===e)return;return r}function mL(t){var e=dL[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=Gg();break;case"querystring":e=require("querystring");break}return dL[t]=e,e.parse}function Die(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=mL("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(i){var s=fL(i,e);if(s===void 0)throw fi("too many parameters"),Wg(413,"too many parameters",{type:"parameters.too.many"});return fi("parse urlencoding"),r(i,void 0,void 0,{maxKeys:e})}}function jie(t){return function(r){return!!pL(r,t)}}});var _L=$((mo,yL)=>{"use strict";var zie=Hi()("body-parser"),vL=Object.create(null);mo=yL.exports=zie.function(Lie,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty(mo,"json",{configurable:!0,enumerable:!0,get:Vg("json")});Object.defineProperty(mo,"raw",{configurable:!0,enumerable:!0,get:Vg("raw")});Object.defineProperty(mo,"text",{configurable:!0,enumerable:!0,get:Vg("text")});Object.defineProperty(mo,"urlencoded",{configurable:!0,enumerable:!0,get:Vg("urlencoded")});function Lie(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=mo.urlencoded(e),n=mo.json(e);return function(s,o,a){n(s,o,function(c){if(c)return a(c);r(s,o,a)})}}function Vg(t){return function(){return Uie(t)}}function Uie(t){var e=vL[t];if(e!==void 0)return e;switch(t){case"json":e=Wj();break;case"raw":e=Jj();break;case"text":e=Qj();break;case"urlencoded":e=gL();break}return vL[t]=e}});var SL=$((DAe,bL)=>{"use strict";bL.exports=qie;var Fie=Object.prototype.hasOwnProperty;function qie(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(i){if(!(!r&&Fie.call(t,i))){var s=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,s)}}),t}});var fp=$((jAe,xL)=>{"use strict";xL.exports=Gie;var Hie=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,Zie=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,Bie="$1\uFFFD$2";function Gie(t){return String(t).replace(Zie,Bie).replace(Hie,encodeURI)}});var mp=$((zAe,wL)=>{"use strict";var Wie=/["'&<>]/;wL.exports=Vie;function Vie(t){var e=""+t,r=Wie.exec(e);if(!r)return e;var n,i="",s=0,o=0;for(s=r.index;s{"use strict";var kL=require("url"),EL=kL.parse,Kg=kL.Url;lT.exports=TL;lT.exports.original=Kie;function TL(t){var e=t.url;if(e!==void 0){var r=t._parsedUrl;return IL(e,r)?r:(r=$L(e),r._raw=e,t._parsedUrl=r)}}function Kie(t){var e=t.originalUrl;if(typeof e!="string")return TL(t);var r=t._parsedOriginalUrl;return IL(e,r)?r:(r=$L(e),r._raw=e,t._parsedOriginalUrl=r)}function $L(t){if(typeof t!="string"||t.charCodeAt(0)!==47)return EL(t);for(var e=t,r=null,n=null,i=1;i{"use strict";var dT=Zn()("finalhandler"),Jie=fp(),Xie=mp(),OL=Yd(),Yie=Kc(),CL=Hd(),Qie=$g(),ese=/\x20{2}/g,tse=/\n/g,rse=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))},nse=OL.isFinished;function ise(t){var e=Xie(t).replace(tse,"
").replace(ese,"  ");return` @@ -639,7 +639,7 @@ return fn.apply(this, arguments)
`+e+`
-`}Rz.exports=Vte;function Vte(t,e,r){var n=r||{},i=n.env||process.env.NODE_ENV||"development",s=n.onerror;return function(o){var a,c,u;if(!o&&$z(e)){wE("cannot 404 after headers sent");return}if(o?(u=Kte(o),u===void 0?u=Xte(e):a=Gte(o),c=Wte(o,u,i)):(u=404,c="Cannot "+t.method+" "+jte(Jte(t))),wE("default %s",u),o&&s&&Hte(s,o,t,e),$z(e)){wE("cannot %d after headers sent",u),t.socket&&t.socket.destroy();return}Yte(t,e,u,a,c)}}function Gte(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 Jte(t){try{return Lte.original(t).pathname}catch{return"resource"}}function Xte(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function $z(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function Yte(t,e,r,n,i){function s(){var o=Bte(i);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=Iz.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),Qte(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(o,"utf8")),t.method==="HEAD"){e.end();return}e.end(o,"utf8")}if(Zte(t)){s();return}Ute(t),Tz(t,s),t.resume()}function Qte(t,e){if(e)for(var r=Object.keys(e),n=0;n{"use strict";Az.exports=ere;function Pz(t,e,r){for(var n=0;n0&&Array.isArray(i)?Pz(i,e,r-1):e.push(i)}return e}function Cz(t,e){for(var r=0;r{Dz.exports=Mz;var Nz=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function Mz(t,e,r){r=r||{},e=e||[];var n=r.strict,i=r.end!==!1,s=r.sensitive?"":"i",o=r.lookahead!==!1,a=0,c=e.length,u=0,l=0,d=0,p="",m;if(t instanceof RegExp){for(;m=Nz.exec(t.source);)m[0][0]!=="\\"&&e.push({name:m[1]||l++,optional:!1,offset:m.index});return t}if(Array.isArray(t))return t=t.map(function(f){return Mz(f,e,r).source}),new RegExp(t.join("|"),s);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,h,v,x,b,_,S){if(f[0]==="\\")return p+=f,d+=2,f;if(f===".")return p+="\\.",a+=1,d+=1,"\\.";if(g||h?p="":p+=t.slice(d,S),d=S+f.length,f==="*")return a+=3,"(.*)";if(f==="/(")return p+="/",a+=2,"/(?:";g=g||"",h=h?"\\.":"",_=_||"",x=x?x.replace(/\\.|\*/,function(E){return E==="*"?"(.*)":E}):p?"((?:(?!/|"+p+").)+?)":"([^/"+h+"]+?)",e.push({name:v,optional:!!_,offset:S+a});var w="(?:"+h+g+x+(b?"((?:[/"+h+"].+?)?)":"")+")"+_;return a+=w.length-f.length,w});m=Nz.exec(t);)m[0][0]!=="\\"&&((c+u===e.length||e[c+u].offset>m.index)&&e.splice(c+u,0,{name:l++,optional:!1,offset:m.index}),u++);return t+=n?"":t[t.length-1]==="/"?"?":"/?",i?t+="$":t[t.length-1]!=="/"&&(t+=o?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,s)}});var EE=T((QRe,Lz)=>{"use strict";var tre=jz(),rre=Cn()("express:router:layer"),nre=Object.prototype.hasOwnProperty;Lz.exports=hc;function hc(t,e,r){if(!(this instanceof hc))return new hc(t,e,r);rre("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=tre(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}hc.prototype.handle_error=function(e,r,n,i){var s=this.handle;if(s.length!==4)return i(e);try{s(e,r,n,i)}catch(o){i(o)}};hc.prototype.handle_request=function(e,r,n){var i=this.handle;if(i.length>3)return n();try{i(e,r,n)}catch(s){n(s)}};hc.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:zz(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,i=this.params,s=1;s{"use strict";var Uz=require("http");qz.exports=ire()||sre();function ire(){return Uz.METHODS&&Uz.METHODS.map(function(e){return e.toLowerCase()})}function sre(){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 kE=T((tOe,Gz)=>{"use strict";var Fz=Cn()("express:router:route"),Hz=Ed(),Zz=EE(),ore=Dh(),Bz=Array.prototype.slice,Vz=Object.prototype.toString;Gz.exports=gc;function gc(t){this.path=t,this.stack=[],Fz("new %o",t),this.methods={}}gc.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]};gc.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,u);var l=s[i++];if(!l)return n(u);l.method&&l.method!==a?c(u):u?l.handle_error(u,e,r,c):l.handle_request(e,r,c),o=0}};gc.prototype.all=function(){for(var e=Hz(Bz.call(arguments)),r=0;r{Wz=Kz.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var TE=T((rOe,Qz)=>{"use strict";var are=kE(),Xz=EE(),cre=Dh(),$E=kd(),jh=Cn()("express:router"),Jz=bi()("express"),ure=Ed(),lre=fc(),dre=Kl(),pre=/^\[object (\S+)\]$/,Yz=Array.prototype.slice,mre=Object.prototype.toString,Co=Qz.exports=function(t){var e=t||{};function r(n,i,s){r.handle(n,i,s)}return dre(r,Co),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};Co.param=function(e,r){if(typeof e=="function"){Jz("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,i=n.length,s;e[0]===":"&&(Jz("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var o=0;o=p.length){setImmediate(g,b);return}if(++u>100)return setImmediate(h,x);var _=hre(e);if(_==null)return g(b);for(var S,w,E;w!==!0&&s=a.length)return s();if(l=0,d=a[c++],u=d.name,p=n.params[u],m=o[u],f=r[u],p===void 0||!m)return g();if(f&&(f.match===p||f.error&&f.error!=="route"))return n.params[u]=f.value,g(f.error);r[u]=f={error:null,match:p,value:p},h()}function h(v){var x=m[l++];if(f.value=n.params[d.name],v){f.error=v,g(v);return}if(!x)return g();try{x(n,i,h,p,d.name)}catch(b){h(b)}}g()};Co.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var i=e;Array.isArray(i)&&i.length!==0;)i=i[0];typeof i!="function"&&(r=1,n=e)}var s=ure(Yz.call(arguments,r));if(s.length===0)throw new TypeError("Router.use() requires a middleware function");for(var o=0;o");var a=new Xz(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);a.route=void 0,this.stack.push(a)}return this};Co.route=function(e){var r=new are(e),n=new Xz(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};cre.concat("all").forEach(function(t){Co[t]=function(e){var r=this.route(e);return r[t].apply(r,Yz.call(arguments,1)),this}});function fre(t,e){for(var r=0;r=0;n--)t[n+i]=t[n],n{"use strict";var e4=Kl();t4.init=function(t){return function(r,n,i){t.enabled("x-powered-by")&&n.setHeader("X-Powered-By","Express"),r.res=n,n.req=r,r.next=i,e4(r,t.request),e4(n,t.response),n.locals=n.locals||Object.create(null),i()}}});var IE=T((iOe,n4)=>{"use strict";var wre=kd(),Ere=fc(),kre=Ch();n4.exports=function(e){var r=wre({},e),n=kre.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(s,o,a){if(!s.query){var c=Ere(s).query;s.query=n(c,r)}a()}}});var c4=T((sOe,a4)=>{"use strict";var zh=Cn()("express:view"),$d=require("path"),$re=require("fs"),Tre=$d.dirname,o4=$d.basename,Ire=$d.extname,i4=$d.join,Rre=$d.resolve;a4.exports=Lh;function Lh(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=Ire(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 i=this.ext.slice(1);zh('require "%s"',i);var s=require(i).__express;if(typeof s!="function")throw new Error('Module "'+i+'" does not provide a view engine.');r.engines[this.ext]=s}this.engine=r.engines[this.ext],this.path=this.lookup(n)}Lh.prototype.lookup=function(e){var r,n=[].concat(this.root);zh('lookup "%s"',e);for(var i=0;i{var Uh=require("buffer"),Ti=Uh.Buffer;function u4(t,e){for(var r in t)e[r]=t[r]}Ti.from&&Ti.alloc&&Ti.allocUnsafe&&Ti.allocUnsafeSlow?l4.exports=Uh:(u4(Uh,RE),RE.Buffer=Ao);function Ao(t,e,r){return Ti(t,e,r)}Ao.prototype=Object.create(Ti.prototype);u4(Ti,Ao);Ao.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return Ti(t,e,r)};Ao.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=Ti(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};Ao.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Ti(t)};Ao.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Uh.SlowBuffer(t)}});var PE=T((oOe,OE)=>{"use strict";OE.exports=Ure;OE.exports.parse=Zre;var d4=require("path").basename,Ore=qh().Buffer,Pre=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,Cre=/%[0-9A-Fa-f]{2}/,Are=/%([0-9A-Fa-f]{2})/g,m4=/[^\x20-\x7e\xa0-\xff]/g,Nre=/\\([\u0000-\u007f])/g,Mre=/([\\"])/g,p4=/;[\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,Dre=/^[\x20-\x7e\x80-\xff]+$/,jre=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,zre=/^([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!#$&+.^_`|~-])+)$/,Lre=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function Ure(t,e){var r=e||{},n=r.type||"attachment",i=qre(t,r.fallback);return Fre(new h4(n,i))}function qre(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"&&m4.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=d4(t),i=Dre.test(n),s=typeof e!="string"?e&&f4(n):d4(e),o=typeof s=="string"&&s!==n;return(o||!i||Cre.test(n))&&(r["filename*"]=n),(i||o)&&(r.filename=o?s:n),r}}function Fre(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!jre.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var i,s=Object.keys(e).sort(),o=0;o{"use strict";y4.exports=Xre;var Kre=require("crypto"),g4=require("fs").Stats,v4=Object.prototype.toString;function Jre(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=Kre.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 Xre(t,e){if(t==null)throw new TypeError("argument entity is required");var r=Yre(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 i=r?Qre(t):Jre(t);return n?"W/"+i:i}function Yre(t){return typeof g4=="function"&&t instanceof g4?!0:t&&typeof t=="object"&&"ctime"in t&&v4.call(t.ctime)==="[object Date]"&&"mtime"in t&&v4.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function Qre(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var AE=T((cOe,b4)=>{"use strict";var ene=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;b4.exports=tne;function tne(t,e){var r=t["if-modified-since"],n=t["if-none-match"];if(!r&&!n)return!1;var i=t["cache-control"];if(i&&ene.test(i))return!1;if(n&&n!=="*"){var s=e.etag;if(!s)return!1;for(var o=!0,a=rne(n),c=0;c{nne.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 w4=T((dOe,S4)=>{var lOe=require("path"),ine=require("fs");function yc(){this.types=Object.create(null),this.extensions=Object.create(null)}yc.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n{var _c=1e3,bc=_c*60,xc=bc*60,No=xc*24,sne=No*7,one=No*365.25;E4.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return ane(t);if(r==="number"&&isFinite(t))return e.long?une(t):cne(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function ane(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*one;case"weeks":case"week":case"w":return r*sne;case"days":case"day":case"d":return r*No;case"hours":case"hour":case"hrs":case"hr":case"h":return r*xc;case"minutes":case"minute":case"mins":case"min":case"m":return r*bc;case"seconds":case"second":case"secs":case"sec":case"s":return r*_c;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function cne(t){var e=Math.abs(t);return e>=No?Math.round(t/No)+"d":e>=xc?Math.round(t/xc)+"h":e>=bc?Math.round(t/bc)+"m":e>=_c?Math.round(t/_c)+"s":t+"ms"}function une(t){var e=Math.abs(t);return e>=No?Fh(t,e,No,"day"):e>=xc?Fh(t,e,xc,"hour"):e>=bc?Fh(t,e,bc,"minute"):e>=_c?Fh(t,e,_c,"second"):t+" ms"}function Fh(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var NE=T((mOe,$4)=>{"use strict";$4.exports=lne;function lne(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 i=e.slice(n+1).split(","),s=[];s.type=e.slice(0,n);for(var o=0;ot-1&&(u=t-1),!(isNaN(c)||isNaN(u)||c>u||c<0)&&s.push({start:c,end:u})}return s.length<1?-1:r&&r.combine?dne(s):s}function dne(t){for(var e=t.map(pne).sort(hne),r=0,n=1;ns.end+1?e[++r]=i:i.end>s.end&&(s.end=i.end,s.index=Math.min(s.index,i.index))}e.length=r+1;var o=e.sort(fne).map(mne);return o.type=t.type,o}function pne(t,e){return{start:t.start,end:t.end,index:e}}function mne(t){return{start:t.start,end:t.end}}function fne(t,e){return t.index-e.index}function hne(t,e){return t.start-e.start}});var Vh=T((fOe,UE)=>{"use strict";var ME=xo(),Ht=Cn()("send"),Mo=bi()("send"),gne=pw(),vne=Sd(),R4=wd(),yne=CE(),_ne=AE(),Zh=require("fs"),jE=w4(),O4=k4(),bne=sd(),xne=NE(),Td=require("path"),Sne=Jl(),P4=require("stream"),wne=require("util"),Ene=Td.extname,C4=Td.join,DE=Td.normalize,LE=Td.resolve,Hh=Td.sep,kne=/^ *bytes=/,A4=3600*24*365*1e3,T4=/(?:^|[\\/])\.\.(?:[\\/]|$)/;UE.exports=$ne;UE.exports.mime=jE;function $ne(t,e,r){return new pt(t,e,r)}function pt(t,e,r){P4.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&&Mo("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?zE(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?zE(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"?O4(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),A4),this._root=n.root?LE(n.root):null,!this._root&&n.from&&this.from(n.from)}wne.inherits(pt,P4);pt.prototype.etag=Mo.function(function(e){return this._etag=!!e,Ht("etag %s",this._etag),this},"send.etag: pass etag as option");pt.prototype.hidden=Mo.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,Ht("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");pt.prototype.index=Mo.function(function(e){var r=e?zE(e,"paths argument"):[];return Ht("index %o",e),this._index=r,this},"send.index: pass index as option");pt.prototype.root=function(e){return this._root=LE(String(e)),Ht("root %s",this._root),this};pt.prototype.from=Mo.function(pt.prototype.root,"send.from: pass root as option");pt.prototype.root=Mo.function(pt.prototype.root,"send.root: pass root as option");pt.prototype.maxage=Mo.function(function(e){return this._maxage=typeof e=="string"?O4(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),A4),Ht("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");pt.prototype.error=function(e,r){if(M4(this,"error"))return this.emit("error",One(e,r));var n=this.res,i=Sne.message[e]||String(e),s=N4("Error",R4(i));Tne(n),r&&r.headers&&Mne(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(s)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(s)};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 i=r.getHeader("ETag");return!i||n!=="*"&&Nne(n).every(function(a){return a!==i&&a!=="W/"+i&&"W/"+a!==i})}var s=Bh(e.headers["if-unmodified-since"]);if(!isNaN(s)){var o=Bh(r.getHeader("Last-Modified"));return isNaN(o)||o>s}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;Ht("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.");Ht("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 _ne(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 Bh(n)<=Bh(e)};pt.prototype.redirect=function(e){var r=this.res;if(M4(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=vne(Ine(this.path+"/")),i=N4("Redirecting","Redirecting to "+R4(n));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(i)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",n),r.end(i)};pt.prototype.pipe=function(e){var r=this._root;this.res=e;var n=Pne(this.path);if(n===-1)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;var i;if(r!==null){if(n&&(n=DE("."+Hh+n)),T4.test(n))return Ht('malicious path "%s"',n),this.error(403),e;i=n.split(Hh),n=DE(C4(r,n))}else{if(T4.test(n))return Ht('malicious path "%s"',n),this.error(403),e;i=DE(n).split(Hh),n=LE(n)}if(Rne(i)){var s=this._dotfiles;switch(s===void 0&&(s=i[i.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),Ht('%s dotfile "%s"',s,n),s){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,i=this.options,s={},o=this.res,a=this.req,c=a.headers.range,u=i.start||0;if(Ane(o)){this.headersAlreadySent();return}if(Ht('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-u),i.end!==void 0){var l=i.end-u+1;n>l&&(n=l)}if(this._acceptRanges&&kne.test(c)){if(c=xne(n,c,{combine:!0}),this.isRangeFresh()||(Ht("range stale"),c=-2),c===-1)return Ht("range unsatisfiable"),o.setHeader("Content-Range",I4("bytes",n)),this.error(416,{headers:{"Content-Range":o.getHeader("Content-Range")}});c!==-2&&c.length===1&&(Ht("range %j",c),o.statusCode=206,o.setHeader("Content-Range",I4("bytes",n,c[0])),u+=c[0].start,n=c[0].end-c[0].start+1)}for(var d in i)s[d]=i[d];if(s.start=u,s.end=Math.max(u,u+n-1),o.setHeader("Content-Length",n),a.method==="HEAD"){o.end();return}this.stream(e,s)};pt.prototype.sendFile=function(e){var r=0,n=this;Ht('stat "%s"',e),Zh.stat(e,function(o,a){if(o&&o.code==="ENOENT"&&!Ene(e)&&e[e.length-1]!==Hh)return i(o);if(o)return n.onStatError(o);if(a.isDirectory())return n.redirect(e);n.emit("file",e,a),n.send(e,a)});function i(s){if(n._extensions.length<=r)return s?n.onStatError(s):n.error(404);var o=e+"."+n._extensions[r++];Ht('stat "%s"',o),Zh.stat(o,function(a,c){if(a)return i(a);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}};pt.prototype.sendIndex=function(e){var r=-1,n=this;function i(s){if(++r>=n._index.length)return s?n.onStatError(s):n.error(404);var o=C4(e,n._index[r]);Ht('stat "%s"',o),Zh.stat(o,function(a,c){if(a)return i(a);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}i()};pt.prototype.stream=function(e,r){var n=this,i=this.res,s=Zh.createReadStream(e,r);this.emit("stream",s),s.pipe(i);function o(){gne(s,!0)}bne(i,o),s.on("error",function(c){o(),n.onStatError(c)}),s.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){Ht("no content-type");return}var i=jE.charsets.lookup(n);Ht("content-type %s",n),r.setHeader("Content-Type",n+(i?"; charset="+i:""))}};pt.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(Ht("accept ranges"),n.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!n.getHeader("Cache-Control")){var i="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(i+=", immutable"),Ht("cache-control %s",i),n.setHeader("Cache-Control",i)}if(this._lastModified&&!n.getHeader("Last-Modified")){var s=r.mtime.toUTCString();Ht("modified %s",s),n.setHeader("Last-Modified",s)}if(this._etag&&!n.getHeader("ETag")){var o=yne(r);Ht("etag %s",o),n.setHeader("ETag",o)}};function Tne(t){for(var e=Cne(t),r=0;r1?"/"+t.substr(e):t}function Rne(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function I4(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function N4(t,e){return` +`}PL.exports=sse;function sse(t,e,r){var n=r||{},i=n.env||process.env.NODE_ENV||"development",s=n.onerror;return function(o){var a,c,u;if(!o&&RL(e)){dT("cannot 404 after headers sent");return}if(o?(u=cse(o),u===void 0?u=lse(e):a=ose(o),c=ase(o,u,i)):(u=404,c="Cannot "+t.method+" "+Jie(use(t))),dT("default %s",u),o&&s&&rse(s,o,t,e),RL(e)){dT("cannot %d after headers sent",u),t.socket&&t.socket.destroy();return}dse(t,e,u,a,c)}}function ose(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 use(t){try{return Yie.original(t).pathname}catch{return"resource"}}function lse(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function RL(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function dse(t,e,r,n,i){function s(){var o=ise(i);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=CL.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),pse(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(o,"utf8")),t.method==="HEAD"){e.end();return}e.end(o,"utf8")}if(nse(t)){s();return}Qie(t),OL(t,s),t.resume()}function pse(t,e){if(e)for(var r=Object.keys(e),n=0;n{"use strict";DL.exports=fse;function NL(t,e,r){for(var n=0;n0&&Array.isArray(i)?NL(i,e,r-1):e.push(i)}return e}function ML(t,e){for(var r=0;r{LL.exports=zL;var jL=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function zL(t,e,r){r=r||{},e=e||[];var n=r.strict,i=r.end!==!1,s=r.sensitive?"":"i",o=r.lookahead!==!1,a=0,c=e.length,u=0,l=0,d=0,p="",f;if(t instanceof RegExp){for(;f=jL.exec(t.source);)f[0][0]!=="\\"&&e.push({name:f[1]||l++,optional:!1,offset:f.index});return t}if(Array.isArray(t))return t=t.map(function(m){return zL(m,e,r).source}),new RegExp(t.join("|"),s);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(m,h,g,v,S,b,y,x){if(m[0]==="\\")return p+=m,d+=2,m;if(m===".")return p+="\\.",a+=1,d+=1,"\\.";if(h||g?p="":p+=t.slice(d,x),d=x+m.length,m==="*")return a+=3,"(.*)";if(m==="/(")return p+="/",a+=2,"/(?:";h=h||"",g=g?"\\.":"",y=y||"",S=S?S.replace(/\\.|\*/,function(E){return E==="*"?"(.*)":E}):p?"((?:(?!/|"+p+").)+?)":"([^/"+g+"]+?)",e.push({name:v,optional:!!y,offset:x+a});var w="(?:"+g+h+S+(b?"((?:[/"+g+"].+?)?)":"")+")"+y;return a+=w.length-m.length,w});f=jL.exec(t);)f[0][0]!=="\\"&&((c+u===e.length||e[c+u].offset>f.index)&&e.splice(c+u,0,{name:l++,optional:!1,offset:f.index}),u++);return t+=n?"":t[t.length-1]==="/"?"?":"/?",i?t+="$":t[t.length-1]!=="/"&&(t+=o?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,s)}});var pT=$((HAe,qL)=>{"use strict";var mse=UL(),hse=Zn()("express:router:layer"),gse=Object.prototype.hasOwnProperty;qL.exports=Jc;function Jc(t,e,r){if(!(this instanceof Jc))return new Jc(t,e,r);hse("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=mse(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}Jc.prototype.handle_error=function(e,r,n,i){var s=this.handle;if(s.length!==4)return i(e);try{s(e,r,n,i)}catch(o){i(o)}};Jc.prototype.handle_request=function(e,r,n){var i=this.handle;if(i.length>3)return n();try{i(e,r,n)}catch(s){n(s)}};Jc.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:FL(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,i=this.params,s=1;s{"use strict";var HL=require("http");ZL.exports=vse()||yse();function vse(){return HL.METHODS&&HL.METHODS.map(function(e){return e.toLowerCase()})}function yse(){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 fT=$((BAe,JL)=>{"use strict";var BL=Zn()("express:router:route"),GL=hp(),WL=pT(),_se=Jg(),VL=Array.prototype.slice,KL=Object.prototype.toString;JL.exports=Xc;function Xc(t){this.path=t,this.stack=[],BL("new %o",t),this.methods={}}Xc.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]};Xc.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,u);var l=s[i++];if(!l)return n(u);l.method&&l.method!==a?c(u):u?l.handle_error(u,e,r,c):l.handle_request(e,r,c),o=0}};Xc.prototype.all=function(){for(var e=GL(VL.call(arguments)),r=0;r{XL=YL.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var hT=$((GAe,rU)=>{"use strict";var bse=fT(),eU=pT(),Sse=Jg(),mT=gp(),Xg=Zn()("express:router"),QL=Hi()("express"),xse=hp(),wse=Kc(),Ese=qd(),kse=/^\[object (\S+)\]$/,tU=Array.prototype.slice,Tse=Object.prototype.toString,la=rU.exports=function(t){var e=t||{};function r(n,i,s){r.handle(n,i,s)}return Ese(r,la),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};la.param=function(e,r){if(typeof e=="function"){QL("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,i=n.length,s;e[0]===":"&&(QL("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var o=0;o=p.length){setImmediate(h,b);return}if(++u>100)return setImmediate(g,S);var y=Ise(e);if(y==null)return h(b);for(var x,w,E;w!==!0&&s=a.length)return s();if(l=0,d=a[c++],u=d.name,p=n.params[u],f=o[u],m=r[u],p===void 0||!f)return h();if(m&&(m.match===p||m.error&&m.error!=="route"))return n.params[u]=m.value,h(m.error);r[u]=m={error:null,match:p,value:p},g()}function g(v){var S=f[l++];if(m.value=n.params[d.name],v){m.error=v,h(v);return}if(!S)return h();try{S(n,i,g,p,d.name)}catch(b){g(b)}}h()};la.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var i=e;Array.isArray(i)&&i.length!==0;)i=i[0];typeof i!="function"&&(r=1,n=e)}var s=xse(tU.call(arguments,r));if(s.length===0)throw new TypeError("Router.use() requires a middleware function");for(var o=0;o");var a=new eU(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);a.route=void 0,this.stack.push(a)}return this};la.route=function(e){var r=new bse(e),n=new eU(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};Sse.concat("all").forEach(function(t){la[t]=function(e){var r=this.route(e);return r[t].apply(r,tU.call(arguments,1)),this}});function $se(t,e){for(var r=0;r=0;n--)t[n+i]=t[n],n{"use strict";var nU=qd();iU.init=function(t){return function(r,n,i){t.enabled("x-powered-by")&&n.setHeader("X-Powered-By","Express"),r.res=n,n.req=r,r.next=i,nU(r,t.request),nU(n,t.response),n.locals=n.locals||Object.create(null),i()}}});var gT=$((VAe,oU)=>{"use strict";var Dse=gp(),jse=Kc(),zse=Gg();oU.exports=function(e){var r=Dse({},e),n=zse.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(s,o,a){if(!s.query){var c=jse(s).query;s.query=n(c,r)}a()}}});var dU=$((KAe,lU)=>{"use strict";var Yg=Zn()("express:view"),vp=require("path"),Lse=require("fs"),Use=vp.dirname,uU=vp.basename,Fse=vp.extname,aU=vp.join,qse=vp.resolve;lU.exports=Qg;function Qg(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=Fse(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 i=this.ext.slice(1);Yg('require "%s"',i);var s=require(i).__express;if(typeof s!="function")throw new Error('Module "'+i+'" does not provide a view engine.');r.engines[this.ext]=s}this.engine=r.engines[this.ext],this.path=this.lookup(n)}Qg.prototype.lookup=function(e){var r,n=[].concat(this.root);Yg('lookup "%s"',e);for(var i=0;i{var ev=require("buffer"),Ki=ev.Buffer;function pU(t,e){for(var r in t)e[r]=t[r]}Ki.from&&Ki.alloc&&Ki.allocUnsafe&&Ki.allocUnsafeSlow?fU.exports=ev:(pU(ev,vT),vT.Buffer=da);function da(t,e,r){return Ki(t,e,r)}da.prototype=Object.create(Ki.prototype);pU(Ki,da);da.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return Ki(t,e,r)};da.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=Ki(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};da.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Ki(t)};da.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ev.SlowBuffer(t)}});var _T=$((JAe,yT)=>{"use strict";yT.exports=Qse;yT.exports.parse=noe;var mU=require("path").basename,Hse=tv().Buffer,Zse=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,Bse=/%[0-9A-Fa-f]{2}/,Gse=/%([0-9A-Fa-f]{2})/g,gU=/[^\x20-\x7e\xa0-\xff]/g,Wse=/\\([\u0000-\u007f])/g,Vse=/([\\"])/g,hU=/;[\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,Kse=/^[\x20-\x7e\x80-\xff]+$/,Jse=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,Xse=/^([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!#$&+.^_`|~-])+)$/,Yse=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function Qse(t,e){var r=e||{},n=r.type||"attachment",i=eoe(t,r.fallback);return toe(new yU(n,i))}function eoe(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"&&gU.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=mU(t),i=Kse.test(n),s=typeof e!="string"?e&&vU(n):mU(e),o=typeof s=="string"&&s!==n;return(o||!i||Bse.test(n))&&(r["filename*"]=n),(i||o)&&(r.filename=o?s:n),r}}function toe(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!Jse.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var i,s=Object.keys(e).sort(),o=0;o{"use strict";SU.exports=loe;var coe=require("crypto"),_U=require("fs").Stats,bU=Object.prototype.toString;function uoe(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=coe.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 loe(t,e){if(t==null)throw new TypeError("argument entity is required");var r=doe(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 i=r?poe(t):uoe(t);return n?"W/"+i:i}function doe(t){return typeof _U=="function"&&t instanceof _U?!0:t&&typeof t=="object"&&"ctime"in t&&bU.call(t.ctime)==="[object Date]"&&"mtime"in t&&bU.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function poe(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var ST=$((YAe,wU)=>{"use strict";var foe=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;wU.exports=moe;function moe(t,e){var r=t["if-modified-since"],n=t["if-none-match"];if(!r&&!n)return!1;var i=t["cache-control"];if(i&&foe.test(i))return!1;if(n&&n!=="*"){var s=e.etag;if(!s)return!1;for(var o=!0,a=hoe(n),c=0;c{goe.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 TU=$((tNe,kU)=>{var eNe=require("path"),voe=require("fs");function Qc(){this.types=Object.create(null),this.extensions=Object.create(null)}Qc.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n{var eu=1e3,tu=eu*60,ru=tu*60,pa=ru*24,yoe=pa*7,_oe=pa*365.25;$U.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return boe(t);if(r==="number"&&isFinite(t))return e.long?xoe(t):Soe(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function boe(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*_oe;case"weeks":case"week":case"w":return r*yoe;case"days":case"day":case"d":return r*pa;case"hours":case"hour":case"hrs":case"hr":case"h":return r*ru;case"minutes":case"minute":case"mins":case"min":case"m":return r*tu;case"seconds":case"second":case"secs":case"sec":case"s":return r*eu;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Soe(t){var e=Math.abs(t);return e>=pa?Math.round(t/pa)+"d":e>=ru?Math.round(t/ru)+"h":e>=tu?Math.round(t/tu)+"m":e>=eu?Math.round(t/eu)+"s":t+"ms"}function xoe(t){var e=Math.abs(t);return e>=pa?rv(t,e,pa,"day"):e>=ru?rv(t,e,ru,"hour"):e>=tu?rv(t,e,tu,"minute"):e>=eu?rv(t,e,eu,"second"):t+" ms"}function rv(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var xT=$((nNe,RU)=>{"use strict";RU.exports=woe;function woe(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 i=e.slice(n+1).split(","),s=[];s.type=e.slice(0,n);for(var o=0;ot-1&&(u=t-1),!(isNaN(c)||isNaN(u)||c>u||c<0)&&s.push({start:c,end:u})}return s.length<1?-1:r&&r.combine?Eoe(s):s}function Eoe(t){for(var e=t.map(koe).sort(Ioe),r=0,n=1;ns.end+1?e[++r]=i:i.end>s.end&&(s.end=i.end,s.index=Math.min(s.index,i.index))}e.length=r+1;var o=e.sort($oe).map(Toe);return o.type=t.type,o}function koe(t,e){return{start:t.start,end:t.end,index:e}}function Toe(t){return{start:t.start,end:t.end}}function $oe(t,e){return t.index-e.index}function Ioe(t,e){return t.start-e.start}});var ov=$((iNe,IT)=>{"use strict";var wT=ea(),Ht=Zn()("send"),fa=Hi()("send"),Roe=ek(),Ooe=fp(),PU=mp(),Coe=bT(),Poe=ST(),iv=require("fs"),kT=TU(),AU=IU(),Aoe=Yd(),Noe=xT(),yp=require("path"),Moe=Hd(),NU=require("stream"),Doe=require("util"),joe=yp.extname,MU=yp.join,ET=yp.normalize,$T=yp.resolve,nv=yp.sep,zoe=/^ *bytes=/,DU=3600*24*365*1e3,OU=/(?:^|[\\/])\.\.(?:[\\/]|$)/;IT.exports=Loe;IT.exports.mime=kT;function Loe(t,e,r){return new ft(t,e,r)}function ft(t,e,r){NU.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&&fa("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?TT(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?TT(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"?AU(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),DU),this._root=n.root?$T(n.root):null,!this._root&&n.from&&this.from(n.from)}Doe.inherits(ft,NU);ft.prototype.etag=fa.function(function(e){return this._etag=!!e,Ht("etag %s",this._etag),this},"send.etag: pass etag as option");ft.prototype.hidden=fa.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,Ht("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");ft.prototype.index=fa.function(function(e){var r=e?TT(e,"paths argument"):[];return Ht("index %o",e),this._index=r,this},"send.index: pass index as option");ft.prototype.root=function(e){return this._root=$T(String(e)),Ht("root %s",this._root),this};ft.prototype.from=fa.function(ft.prototype.root,"send.from: pass root as option");ft.prototype.root=fa.function(ft.prototype.root,"send.root: pass root as option");ft.prototype.maxage=fa.function(function(e){return this._maxage=typeof e=="string"?AU(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),DU),Ht("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");ft.prototype.error=function(e,r){if(zU(this,"error"))return this.emit("error",Hoe(e,r));var n=this.res,i=Moe.message[e]||String(e),s=jU("Error",PU(i));Uoe(n),r&&r.headers&&Voe(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(s)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(s)};ft.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};ft.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"]};ft.prototype.isPreconditionFailure=function(){var e=this.req,r=this.res,n=e.headers["if-match"];if(n){var i=r.getHeader("ETag");return!i||n!=="*"&&Woe(n).every(function(a){return a!==i&&a!=="W/"+i&&"W/"+a!==i})}var s=sv(e.headers["if-unmodified-since"]);if(!isNaN(s)){var o=sv(r.getHeader("Last-Modified"));return isNaN(o)||o>s}return!1};ft.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")};ft.prototype.notModified=function(){var e=this.res;Ht("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};ft.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Ht("headers already sent"),this.error(500,e)};ft.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};ft.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};ft.prototype.isFresh=function(){return Poe(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};ft.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 sv(n)<=sv(e)};ft.prototype.redirect=function(e){var r=this.res;if(zU(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=Ooe(Foe(this.path+"/")),i=jU("Redirecting","Redirecting to "+PU(n));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(i)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",n),r.end(i)};ft.prototype.pipe=function(e){var r=this._root;this.res=e;var n=Zoe(this.path);if(n===-1)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;var i;if(r!==null){if(n&&(n=ET("."+nv+n)),OU.test(n))return Ht('malicious path "%s"',n),this.error(403),e;i=n.split(nv),n=ET(MU(r,n))}else{if(OU.test(n))return Ht('malicious path "%s"',n),this.error(403),e;i=ET(n).split(nv),n=$T(n)}if(qoe(i)){var s=this._dotfiles;switch(s===void 0&&(s=i[i.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),Ht('%s dotfile "%s"',s,n),s){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)};ft.prototype.send=function(e,r){var n=r.size,i=this.options,s={},o=this.res,a=this.req,c=a.headers.range,u=i.start||0;if(Goe(o)){this.headersAlreadySent();return}if(Ht('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-u),i.end!==void 0){var l=i.end-u+1;n>l&&(n=l)}if(this._acceptRanges&&zoe.test(c)){if(c=Noe(n,c,{combine:!0}),this.isRangeFresh()||(Ht("range stale"),c=-2),c===-1)return Ht("range unsatisfiable"),o.setHeader("Content-Range",CU("bytes",n)),this.error(416,{headers:{"Content-Range":o.getHeader("Content-Range")}});c!==-2&&c.length===1&&(Ht("range %j",c),o.statusCode=206,o.setHeader("Content-Range",CU("bytes",n,c[0])),u+=c[0].start,n=c[0].end-c[0].start+1)}for(var d in i)s[d]=i[d];if(s.start=u,s.end=Math.max(u,u+n-1),o.setHeader("Content-Length",n),a.method==="HEAD"){o.end();return}this.stream(e,s)};ft.prototype.sendFile=function(e){var r=0,n=this;Ht('stat "%s"',e),iv.stat(e,function(o,a){if(o&&o.code==="ENOENT"&&!joe(e)&&e[e.length-1]!==nv)return i(o);if(o)return n.onStatError(o);if(a.isDirectory())return n.redirect(e);n.emit("file",e,a),n.send(e,a)});function i(s){if(n._extensions.length<=r)return s?n.onStatError(s):n.error(404);var o=e+"."+n._extensions[r++];Ht('stat "%s"',o),iv.stat(o,function(a,c){if(a)return i(a);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}};ft.prototype.sendIndex=function(e){var r=-1,n=this;function i(s){if(++r>=n._index.length)return s?n.onStatError(s):n.error(404);var o=MU(e,n._index[r]);Ht('stat "%s"',o),iv.stat(o,function(a,c){if(a)return i(a);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}i()};ft.prototype.stream=function(e,r){var n=this,i=this.res,s=iv.createReadStream(e,r);this.emit("stream",s),s.pipe(i);function o(){Roe(s,!0)}Aoe(i,o),s.on("error",function(c){o(),n.onStatError(c)}),s.on("end",function(){n.emit("end")})};ft.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=kT.lookup(e);if(!n){Ht("no content-type");return}var i=kT.charsets.lookup(n);Ht("content-type %s",n),r.setHeader("Content-Type",n+(i?"; charset="+i:""))}};ft.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(Ht("accept ranges"),n.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!n.getHeader("Cache-Control")){var i="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(i+=", immutable"),Ht("cache-control %s",i),n.setHeader("Cache-Control",i)}if(this._lastModified&&!n.getHeader("Last-Modified")){var s=r.mtime.toUTCString();Ht("modified %s",s),n.setHeader("Last-Modified",s)}if(this._etag&&!n.getHeader("ETag")){var o=Coe(r);Ht("etag %s",o),n.setHeader("ETag",o)}};function Uoe(t){for(var e=Boe(t),r=0;r1?"/"+t.substr(e):t}function qoe(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function CU(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function jU(t,e){return` @@ -649,8 +649,8 @@ return fn.apply(this, arguments)
`+e+`
-`}function One(t,e){return e?e instanceof Error?ME(t,e,{expose:!1}):ME(t,e):ME(t)}function Pne(t){try{return decodeURIComponent(t)}catch{return-1}}function Cne(t){return typeof t.getHeaderNames!="function"?Object.keys(t._headers||{}):t.getHeaderNames()}function M4(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function Ane(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function zE(t,e){for(var r=[].concat(t||[]),n=0;n{"use strict";D4.exports=Dne;function Dne(t){if(!t)throw new TypeError("argument req is required");var e=zne(t.headers["x-forwarded-for"]||""),r=jne(t),n=[r].concat(e);return n}function jne(t){return t.socket?t.socket.remoteAddress:t.connection.remoteAddress}function zne(t){for(var e=t.length,r=[],n=t.length,i=t.length-1;i>=0;i--)switch(t.charCodeAt(i)){case 32:n===e&&(n=e=i);break;case 44:n!==e&&r.push(t.substring(n,e)),n=e=i;break;default:n=i;break}return n!==e&&r.push(t.substring(n,e)),r}});var L4=T((z4,Id)=>{(function(){var t,e,r,n,i,s,o,a,c;e={},a=this,typeof Id<"u"&&Id!==null&&Id.exports?Id.exports=e:a.ipaddr=e,o=function(u,l,d,p){var m,f;if(u.length!==l.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(m=0;p>0;){if(f=d-p,f<0&&(f=0),u[m]>>f!==l[m]>>f)return!1;p-=d,m+=1}return!0},e.subnetMatch=function(u,l,d){var p,m,f,g,h;d==null&&(d="unicast");for(f in l)for(g=l[f],g[0]&&!(g[0]instanceof Array)&&(g=[g]),p=0,m=g.length;p=0;d=p+=-1)if(m=this.octets[d],m in h){if(g=h[m],f&&g!==0)return null;g!==8&&(f=!0),l+=g}else return null;return 32-l},u})(),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(u){var l,d,p,m,f;if(d=function(g){return g[0]==="0"&&g[1]!=="x"?parseInt(g,8):parseInt(g)},l=u.match(n.fourOctet))return(function(){var g,h,v,x;for(v=l.slice(1,6),x=[],g=0,h=v.length;g4294967295||f<0)throw new Error("ipaddr: address outside defined range");return(function(){var g,h;for(h=[],m=g=0;g<=24;m=g+=8)h.push(f>>m&255);return h})().reverse()}else return null},e.IPv6=(function(){function u(l,d){var p,m,f,g,h,v;if(l.length===16)for(this.parts=[],p=m=0;m<=14;p=m+=2)this.parts.push(l[p]<<8|l[p+1]);else if(l.length===8)this.parts=l;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(v=this.parts,f=0,g=v.length;fd&&(l=p.index,d=p[0].length);return d<0?f:f.substring(0,l)+"::"+f.substring(l+d)},u.prototype.toByteArray=function(){var l,d,p,m,f;for(l=[],f=this.parts,d=0,p=f.length;d>8),l.push(m&255);return l},u.prototype.toNormalizedString=function(){var l,d,p;return l=(function(){var m,f,g,h;for(g=this.parts,h=[],m=0,f=g.length;m>8,l&255,d>>8,d&255])},u.prototype.prefixLengthFromSubnetMask=function(){var l,d,p,m,f,g,h;for(h={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},l=0,f=!1,d=p=7;p>=0;d=p+=-1)if(m=this.parts[d],m in h){if(g=h[m],f&&g!==0)return null;g!==16&&(f=!0),l+=g}else return null;return 128-l},u})(),i="(?:[0-9a-f]+::?)+",c="%[0-9a-z]{1,}",s={zoneIndex:new RegExp(c,"i"),native:new RegExp("^(::)?("+i+")?([0-9a-f]+)?(::)?("+c+")?$","i"),transitional:new RegExp("^((?:"+i+")|(?:::)(?:"+i+")?)"+(r+"\\."+r+"\\."+r+"\\."+r)+("("+c+")?$"),"i")},t=function(u,l){var d,p,m,f,g,h;if(u.indexOf("::")!==u.lastIndexOf("::"))return null;for(h=(u.match(s.zoneIndex)||[])[0],h&&(h=h.substring(1),u=u.replace(/%.+$/,"")),d=0,p=-1;(p=u.indexOf(":",p+1))>=0;)d++;if(u.substr(0,2)==="::"&&d--,u.substr(-2,2)==="::"&&d--,d>l)return null;for(g=l-d,f=":";g--;)f+="0:";return u=u.replace("::",f),u[0]===":"&&(u=u.slice(1)),u[u.length-1]===":"&&(u=u.slice(0,-1)),l=(function(){var v,x,b,_;for(b=u.split(":"),_=[],v=0,x=b.length;v=0&&l<=32))return p=[this.parse(d[1]),l],Object.defineProperty(p,"toString",{value:function(){return this.join("/")}}),p;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},e.IPv4.subnetMaskFromPrefixLength=function(u){var l,d,p;if(u=parseInt(u),u<0||u>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(p=[0,0,0,0],d=0,l=Math.floor(u/8);d=0&&l<=128))return p=[this.parse(d[1]),l],Object.defineProperty(p,"toString",{value:function(){return this.join("/")}}),p;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},e.isValid=function(u){return e.IPv6.isValid(u)||e.IPv4.isValid(u)},e.parse=function(u){if(e.IPv6.isValid(u))return e.IPv6.parse(u);if(e.IPv4.isValid(u))return e.IPv4.parse(u);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},e.parseCIDR=function(u){var l;try{return e.IPv6.parseCIDR(u)}catch(d){l=d;try{return e.IPv4.parseCIDR(u)}catch(p){throw l=p,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},e.fromByteArray=function(u){var l;if(l=u.length,l===4)return new e.IPv4(u);if(l===16)return new e.IPv6(u);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},e.process=function(u){var l;return l=this.parse(u),l.kind()==="ipv6"&&l.isIPv4MappedAddress()?l.toIPv4Address():l}}).call(z4)});var qE=T((gOe,Kh)=>{"use strict";Kh.exports=Bne;Kh.exports.all=F4;Kh.exports.compile=H4;var Lne=j4(),q4=L4(),Une=/^[0-9]+$/,Gh=q4.isValid,Wh=q4.parse,U4={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 F4(t,e){var r=Lne(t);if(!e)return r;typeof e!="function"&&(e=H4(e));for(var n=0;ni)throw new TypeError("invalid range on address: "+t);return[n,s]}function Zne(t){var e=Wh(t),r=e.kind();return r==="ipv4"?e.prefixLengthFromSubnetMask():null}function Bne(t,e){if(!t)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var r=F4(t,e),n=r[r.length-1];return n}function Vne(){return!1}function Gne(t){return function(r){if(!Gh(r))return!1;for(var n=Wh(r),i,s=n.kind(),o=0;o{"use strict";var Z4=qh().Buffer,Kne=PE(),B4=Wl(),V4=bi()("express"),Jne=Ed(),Xne=Vh().mime,Yne=CE(),Qne=qE(),eie=Ch(),tie=require("querystring");Zr.etag=G4({weak:!1});Zr.wetag=G4({weak:!0});Zr.isAbsolute=function(t){if(t[0]==="/"||t[1]===":"&&(t[2]==="\\"||t[2]==="/")||t.substring(0,2)==="\\\\")return!0};Zr.flatten=V4.function(Jne,"utils.flatten: use array-flatten npm module instead");Zr.normalizeType=function(t){return~t.indexOf("/")?rie(t):{value:Xne.lookup(t),params:{}}};Zr.normalizeTypes=function(t){for(var e=[],r=0;r{"use strict";var sie=Oz(),oie=TE(),HE=Dh(),aie=r4(),cie=IE(),Jh=Cn()("express:application"),uie=c4(),lie=require("http"),die=Ls().compileETag,pie=Ls().compileQueryParser,mie=Ls().compileTrust,fie=bi()("express"),hie=Ed(),FE=kd(),gie=require("path").resolve,Sc=Kl(),vie=Object.prototype.hasOwnProperty,BE=Array.prototype.slice,Qt=W4=K4.exports={},ZE="@@symbol:trust_proxy_default";Qt.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};Qt.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,ZE,{configurable:!0,value:!0}),Jh("booting in %s mode",e),this.on("mount",function(n){this.settings[ZE]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),Sc(this.request,n.request),Sc(this.response,n.response),Sc(this.engines,n.engines),Sc(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",uie),this.set("views",gie("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.`)}})};Qt.lazyrouter=function(){this._router||(this._router=new oie({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(cie(this.get("query parser fn"))),this._router.use(aie.init(this)))};Qt.handle=function(e,r,n){var i=this._router,s=n||sie(e,r,{env:this.get("env"),onerror:yie.bind(this)});if(!i){Jh("no routes defined on app"),s();return}i.handle(e,r,s)};Qt.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var i=e;Array.isArray(i)&&i.length!==0;)i=i[0];typeof i!="function"&&(r=1,n=e)}var s=hie(BE.call(arguments,r));if(s.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var o=this._router;return s.forEach(function(a){if(!a||!a.handle||!a.set)return o.use(n,a);Jh(".use app under %s",n),a.mountpath=n,a.parent=this,o.use(n,function(u,l,d){var p=u.app;a.handle(u,l,function(m){Sc(u,p.request),Sc(l,p.response),d(m)})}),a.emit("mount",this)},this),this};Qt.route=function(e){return this.lazyrouter(),this._router.route(e)};Qt.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};Qt.param=function(e,r){if(this.lazyrouter(),Array.isArray(e)){for(var n=0;n1?'directories "'+u.root.slice(0,-1).join('", "')+'" or "'+u.root[u.root.length-1]+'"':'directory "'+u.root+'"',p=new Error('Failed to lookup view "'+e+'" in views '+d);return p.view=u,s(p)}c.cache&&(i[e]=u)}_ie(u,c,s)};Qt.listen=function(){var e=lie.createServer(this);return e.listen.apply(e,arguments)};function yie(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function _ie(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var eL=T((yOe,VE)=>{"use strict";VE.exports=Q4;VE.exports.preferredCharsets=Q4;var bie=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function xie(t){for(var e=t.split(","),r=0,n=0;r0}});var sL=T((_Oe,GE)=>{"use strict";GE.exports=iL;GE.exports.preferredEncodings=iL;var $ie=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Tie(t){for(var e=t.split(","),r=!1,n=1,i=0,s=0;i0}});var lL=T((bOe,WE)=>{"use strict";WE.exports=uL;WE.exports.preferredLanguages=uL;var Pie=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function Cie(t){for(var e=t.split(","),r=0,n=0;r0}});var gL=T((xOe,KE)=>{"use strict";KE.exports=fL;KE.exports.preferredMediaTypes=fL;var Die=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function jie(t){for(var e=Fie(t),r=0,n=0;r0)if(s.every(function(o){return e.params[o]=="*"||(e.params[o]||"").toLowerCase()==(n.params[o]||"").toLowerCase()}))i|=1;else return null;return{i:r,o:e.i,q:e.q,s:i}}function fL(t,e){var r=jie(t===void 0?"*/*":t||"");if(!e)return r.filter(pL).sort(dL).map(Uie);var n=e.map(function(s,o){return zie(s,r,o)});return n.filter(pL).sort(dL).map(function(s){return e[n.indexOf(s)]})}function dL(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function Uie(t){return t.type+"/"+t.subtype}function pL(t){return t.q>0}function hL(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function qie(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 Fie(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var Zie=eL(),Bie=sL(),Vie=lL(),Gie=gL();JE.exports=vt;JE.exports.Negotiator=vt;function vt(t){if(!(this instanceof vt))return new vt(t);this.request=t}vt.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};vt.prototype.charsets=function(e){return Zie(this.request.headers["accept-charset"],e)};vt.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};vt.prototype.encodings=function(e){return Bie(this.request.headers["accept-encoding"],e)};vt.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};vt.prototype.languages=function(e){return Vie(this.request.headers["accept-language"],e)};vt.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};vt.prototype.mediaTypes=function(e){return Gie(this.request.headers.accept,e)};vt.prototype.preferredCharset=vt.prototype.charset;vt.prototype.preferredCharsets=vt.prototype.charsets;vt.prototype.preferredEncoding=vt.prototype.encoding;vt.prototype.preferredEncodings=vt.prototype.encodings;vt.prototype.preferredLanguage=vt.prototype.language;vt.prototype.preferredLanguages=vt.prototype.languages;vt.prototype.preferredMediaType=vt.prototype.mediaType;vt.prototype.preferredMediaTypes=vt.prototype.mediaTypes});var _L=T((wOe,yL)=>{"use strict";var Wie=vL(),Kie=Zw();yL.exports=yn;function yn(t){if(!(this instanceof yn))return new yn(t);this.headers=t.headers,this.negotiator=new Wie(t)}yn.prototype.type=yn.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 Xh=_L(),Rd=bi()("express"),Yie=require("net").isIP,Qie=oc(),ese=require("http"),tse=AE(),rse=NE(),nse=fc(),bL=qE(),Et=Object.create(ese.IncomingMessage.prototype);xL.exports=Et;Et.get=Et.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]}};Et.accepts=function(){var t=Xh(this);return t.types.apply(t,arguments)};Et.acceptsEncodings=function(){var t=Xh(this);return t.encodings.apply(t,arguments)};Et.acceptsEncoding=Rd.function(Et.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");Et.acceptsCharsets=function(){var t=Xh(this);return t.charsets.apply(t,arguments)};Et.acceptsCharset=Rd.function(Et.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");Et.acceptsLanguages=function(){var t=Xh(this);return t.languages.apply(t,arguments)};Et.acceptsLanguage=Rd.function(Et.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");Et.range=function(e,r){var n=this.get("Range");if(n)return rse(e,n,r)};Et.param=function(e,r){var n=this.params||{},i=this.body||{},s=this.query||{},o=arguments.length===1?"name":"name, default";return Rd("req.param("+o+"): Use req.params, req.body, or req.query instead"),n[e]!=null&&n.hasOwnProperty(e)?n[e]:i[e]!=null?i[e]:s[e]!=null?s[e]:r};Et.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?tse(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});Qn(Et,"stale",function(){return!this.fresh});Qn(Et,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function Qn(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var kL=T(Yh=>{var EL=require("crypto");Yh.sign=function(t,e){if(typeof t!="string")throw new TypeError("Cookie value must be provided as a string.");if(e==null)throw new TypeError("Secret key must be provided.");return t+"."+EL.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};Yh.unsign=function(t,e){if(typeof t!="string")throw new TypeError("Signed cookie string must be provided.");if(e==null)throw new TypeError("Secret key must be provided.");var r=t.slice(0,t.lastIndexOf(".")),n=Yh.sign(r,e);return wL(n)==wL(t)?r:!1};function wL(t){return EL.createHash("sha1").update(t).digest("hex")}});var IL=T(XE=>{"use strict";XE.parse=lse;XE.serialize=dse;var ise=Object.prototype.toString,sse=Object.prototype.hasOwnProperty,ose=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,ase=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,cse=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,use=/^[\u0020-\u003A\u003D-\u007E]*$/;function lse(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 i=e&&e.decode||pse,s=0,o=0,a=0;do{if(o=t.indexOf("=",s),o===-1)break;if(a=t.indexOf(";",s),a===-1)a=n;else if(o>a){s=t.lastIndexOf(";",o-1)+1;continue}var c=$L(t,s,o),u=TL(t,o,c),l=t.slice(c,u);if(!sse.call(r,l)){var d=$L(t,o+1,a),p=TL(t,a,d);t.charCodeAt(d)===34&&t.charCodeAt(p-1)===34&&(d++,p--);var m=t.slice(d,p);r[l]=fse(m,i)}s=a+1}while(sr;){var n=t.charCodeAt(--e);if(n!==32&&n!==9)return e+1}return r}function dse(t,e,r){var n=r&&r.encode||encodeURIComponent;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!ose.test(t))throw new TypeError("argument name is invalid");var i=n(e);if(!ase.test(i))throw new TypeError("argument val is invalid");var s=t+"="+i;if(!r)return s;if(r.maxAge!=null){var o=Math.floor(r.maxAge);if(!isFinite(o))throw new TypeError("option maxAge is invalid");s+="; Max-Age="+o}if(r.domain){if(!cse.test(r.domain))throw new TypeError("option domain is invalid");s+="; Domain="+r.domain}if(r.path){if(!use.test(r.path))throw new TypeError("option path is invalid");s+="; Path="+r.path}if(r.expires){var a=r.expires;if(!mse(a)||isNaN(a.valueOf()))throw new TypeError("option expires is invalid");s+="; Expires="+a.toUTCString()}if(r.httpOnly&&(s+="; HttpOnly"),r.secure&&(s+="; Secure"),r.partitioned&&(s+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":s+="; Priority=Low";break;case"medium":s+="; Priority=Medium";break;case"high":s+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(r.sameSite){var u=typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite;switch(u){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s}function pse(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function mse(t){return ise.call(t)==="[object Date]"}function fse(t,e){try{return e(t)}catch{return t}}});var QE=T((TOe,YE)=>{"use strict";YE.exports=gse;YE.exports.append=OL;var hse=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function OL(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:RL(String(e)),n=0;n{"use strict";var Od=qh().Buffer,PL=PE(),vse=xo(),sn=bi()("express"),yse=Sd(),_se=wd(),bse=require("http"),xse=Ls().isAbsolute,Sse=sd(),CL=require("path"),Qh=Jl(),AL=kd(),wse=kL().sign,Ese=Ls().normalizeType,kse=Ls().normalizeTypes,$se=Ls().setCharset,Tse=IL(),ek=Vh(),Ise=CL.extname,NL=ek.mime,Rse=CL.resolve,Ose=QE(),It=Object.create(bse.ServerResponse.prototype);jL.exports=It;var Pse=/;\s*charset\s*=/;It.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&sn("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};It.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(", "))};It.send=function(e){var r=e,n,i=this.req,s,o=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(sn("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(sn("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"),sn("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=Qh.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(Od.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",s=this.get("Content-Type"),typeof s=="string"&&this.set("Content-Type",$se(s,"utf-8")));var a=o.get("etag fn"),c=!this.get("ETag")&&typeof a=="function",u;r!==void 0&&(Od.isBuffer(r)?u=r.length:!c&&r.length<1e3?u=Od.byteLength(r,n):(r=Od.from(r,n),n=void 0,u=r.length),this.set("Content-Length",u));var l;return c&&u!==void 0&&(l=a(r,n))&&this.set("ETag",l),i.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=""),i.method==="HEAD"?this.end():this.end(r,n),this};It.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(sn("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(sn("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,i=n.get("json escape"),s=n.get("json replacer"),o=n.get("json spaces"),a=DL(r,s,o,i);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(a)};It.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(sn("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(sn("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,i=n.get("json escape"),s=n.get("json replacer"),o=n.get("json spaces"),a=DL(r,s,o,i),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,""),a===void 0?a="":typeof a=="string"&&(a=a.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),a="/**/ typeof "+c+" === 'function' && "+c+"("+a+");"),this.send(a)};It.sendStatus=function(e){var r=Qh.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};It.sendFile=function(e,r,n){var i=n,s=this.req,o=this,a=s.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"&&(i=r,c={}),!c.root&&!xse(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var u=encodeURI(e),l=ek(s,u,c);ML(o,l,c,function(d){if(i)return i(d);if(d&&d.code==="EISDIR")return a();d&&d.code!=="ECONNABORTED"&&d.syscall!=="write"&&a(d)})};It.sendfile=function(t,e,r){var n=r,i=this.req,s=this,o=i.next,a=e||{};typeof e=="function"&&(n=e,a={});var c=ek(i,t,a);ML(s,c,a,function(u){if(n)return n(u);if(u&&u.code==="EISDIR")return o();u&&u.code!=="ECONNABORTED"&&u.syscall!=="write"&&o(u)})};It.sendfile=sn.function(It.sendfile,"res.sendfile: Use res.sendFile instead");It.download=function(e,r,n,i){var s=i,o=r,a=n||null;typeof r=="function"?(s=r,o=null,a=null):typeof n=="function"&&(s=n,a=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(o=null,a=r);var c={"Content-Disposition":PL(o||e)};if(a&&a.headers)for(var u=Object.keys(a.headers),l=0;l0?e.accepts(n):!1;return this.vary("Accept"),i?(this.set("Content-Type",Ese(i).value),t[i](e,this,r)):t.default?t.default(e,this,r):r(vse(406,{types:kse(n).map(function(s){return s.value})})),this};It.attachment=function(e){return e&&this.type(Ise(e)),this.set("Content-Disposition",PL(e)),this};It.append=function(e,r){var n=this.get(e),i=r;return n&&(i=Array.isArray(n)?n.concat(r):Array.isArray(r)?[n].concat(r):[n,r]),this.set(e,i)};It.set=It.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(!Pse.test(n)){var i=NL.charsets.lookup(n.split(";")[0]);i&&(n+="; charset="+i.toLowerCase())}}this.setHeader(e,n)}else for(var s in e)this.set(s,e[s]);return this};It.get=function(t){return this.getHeader(t)};It.clearCookie=function(e,r){r&&(r.maxAge&&sn('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&&sn('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=AL({expires:new Date(1),path:"/"},r);return this.cookie(e,"",n)};It.cookie=function(t,e,r){var n=AL({},r),i=this.req.secret,s=n.signed;if(s&&!i)throw new Error('cookieParser("secret") required for signed cookies');var o=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(s&&(o="s:"+wse(o,i)),n.maxAge!=null){var a=n.maxAge-0;isNaN(a)||(n.expires=new Date(Date.now()+a),n.maxAge=Math.floor(a/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",Tse.serialize(t,String(o),n)),this};It.location=function(e){var r;return e==="back"?(sn('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",yse(r))};It.redirect=function(e){var r=e,n,i=302;arguments.length===2&&(typeof arguments[0]=="number"?(i=arguments[0],r=arguments[1]):(sn("res.redirect(url, status): Use res.redirect(status, url) instead"),i=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){n=Qh.message[i]+". Redirecting to "+r},html:function(){var s=_se(r);n="

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

"},default:function(){n=""}}),this.statusCode=i,this.set("Content-Length",Od.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};It.vary=function(t){return!t||Array.isArray(t)&&!t.length?(sn("res.vary(): Provide a field name"),this):(Ose(this,t),this)};It.render=function(e,r,n){var i=this.req.app,s=n,o=r||{},a=this.req,c=this;typeof r=="function"&&(s=r,o={}),o._locals=c.locals,s=s||function(u,l){if(u)return a.next(u);c.send(l)},i.render(e,o,s)};function ML(t,e,r,n){var i=!1,s;function o(){if(!i){i=!0;var m=new Error("Request aborted");m.code="ECONNABORTED",n(m)}}function a(){if(!i){i=!0;var m=new Error("EISDIR, read");m.code="EISDIR",n(m)}}function c(m){i||(i=!0,n(m))}function u(){i||(i=!0,n())}function l(){s=!1}function d(m){if(m&&m.code==="ECONNRESET")return o();if(m)return c(m);i||setImmediate(function(){if(s!==!1&&!i){o();return}i||(i=!0,n())})}function p(){s=!0}e.on("directory",a),e.on("end",u),e.on("error",c),e.on("file",l),e.on("stream",p),Sse(t,d),r.headers&&e.on("headers",function(f){for(var g=r.headers,h=Object.keys(g),v=0;v&]/g,function(s){switch(s.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return s}})),i}});var UL=T((ROe,rk)=>{"use strict";var Cse=Sd(),Ase=wd(),tk=fc(),Nse=require("path").resolve,LL=Vh(),Mse=require("url");rk.exports=Dse;rk.exports.mime=LL.mime;function Dse(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,i=r.redirect!==!1,s=r.setHeaders;if(s&&typeof s!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=Nse(t);var o=i?Use():Lse();return function(c,u,l){if(c.method!=="GET"&&c.method!=="HEAD"){if(n)return l();u.statusCode=405,u.setHeader("Allow","GET, HEAD"),u.setHeader("Content-Length","0"),u.end();return}var d=!n,p=tk.original(c),m=tk(c).pathname;m==="/"&&p.pathname.substr(-1)!=="/"&&(m="");var f=LL(c,m,r);f.on("directory",o),s&&f.on("headers",s),n&&f.on("file",function(){d=!0}),f.on("error",function(h){if(d||!(h.statusCode<500)){l(h);return}l()}),f.pipe(u)}}function jse(t){for(var e=0;e1?"/"+t.substr(e):t}function zse(t,e){return` +`}function Hoe(t,e){return e?e instanceof Error?wT(t,e,{expose:!1}):wT(t,e):wT(t)}function Zoe(t){try{return decodeURIComponent(t)}catch{return-1}}function Boe(t){return typeof t.getHeaderNames!="function"?Object.keys(t._headers||{}):t.getHeaderNames()}function zU(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function Goe(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function TT(t,e){for(var r=[].concat(t||[]),n=0;n{"use strict";LU.exports=Koe;function Koe(t){if(!t)throw new TypeError("argument req is required");var e=Xoe(t.headers["x-forwarded-for"]||""),r=Joe(t),n=[r].concat(e);return n}function Joe(t){return t.socket?t.socket.remoteAddress:t.connection.remoteAddress}function Xoe(t){for(var e=t.length,r=[],n=t.length,i=t.length-1;i>=0;i--)switch(t.charCodeAt(i)){case 32:n===e&&(n=e=i);break;case 44:n!==e&&r.push(t.substring(n,e)),n=e=i;break;default:n=i;break}return n!==e&&r.push(t.substring(n,e)),r}});var qU=$((FU,_p)=>{(function(){var t,e,r,n,i,s,o,a,c;e={},a=this,typeof _p<"u"&&_p!==null&&_p.exports?_p.exports=e:a.ipaddr=e,o=function(u,l,d,p){var f,m;if(u.length!==l.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(f=0;p>0;){if(m=d-p,m<0&&(m=0),u[f]>>m!==l[f]>>m)return!1;p-=d,f+=1}return!0},e.subnetMatch=function(u,l,d){var p,f,m,h,g;d==null&&(d="unicast");for(m in l)for(h=l[m],h[0]&&!(h[0]instanceof Array)&&(h=[h]),p=0,f=h.length;p=0;d=p+=-1)if(f=this.octets[d],f in g){if(h=g[f],m&&h!==0)return null;h!==8&&(m=!0),l+=h}else return null;return 32-l},u})(),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(u){var l,d,p,f,m;if(d=function(h){return h[0]==="0"&&h[1]!=="x"?parseInt(h,8):parseInt(h)},l=u.match(n.fourOctet))return(function(){var h,g,v,S;for(v=l.slice(1,6),S=[],h=0,g=v.length;h4294967295||m<0)throw new Error("ipaddr: address outside defined range");return(function(){var h,g;for(g=[],f=h=0;h<=24;f=h+=8)g.push(m>>f&255);return g})().reverse()}else return null},e.IPv6=(function(){function u(l,d){var p,f,m,h,g,v;if(l.length===16)for(this.parts=[],p=f=0;f<=14;p=f+=2)this.parts.push(l[p]<<8|l[p+1]);else if(l.length===8)this.parts=l;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(v=this.parts,m=0,h=v.length;md&&(l=p.index,d=p[0].length);return d<0?m:m.substring(0,l)+"::"+m.substring(l+d)},u.prototype.toByteArray=function(){var l,d,p,f,m;for(l=[],m=this.parts,d=0,p=m.length;d>8),l.push(f&255);return l},u.prototype.toNormalizedString=function(){var l,d,p;return l=(function(){var f,m,h,g;for(h=this.parts,g=[],f=0,m=h.length;f>8,l&255,d>>8,d&255])},u.prototype.prefixLengthFromSubnetMask=function(){var l,d,p,f,m,h,g;for(g={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},l=0,m=!1,d=p=7;p>=0;d=p+=-1)if(f=this.parts[d],f in g){if(h=g[f],m&&h!==0)return null;h!==16&&(m=!0),l+=h}else return null;return 128-l},u})(),i="(?:[0-9a-f]+::?)+",c="%[0-9a-z]{1,}",s={zoneIndex:new RegExp(c,"i"),native:new RegExp("^(::)?("+i+")?([0-9a-f]+)?(::)?("+c+")?$","i"),transitional:new RegExp("^((?:"+i+")|(?:::)(?:"+i+")?)"+(r+"\\."+r+"\\."+r+"\\."+r)+("("+c+")?$"),"i")},t=function(u,l){var d,p,f,m,h,g;if(u.indexOf("::")!==u.lastIndexOf("::"))return null;for(g=(u.match(s.zoneIndex)||[])[0],g&&(g=g.substring(1),u=u.replace(/%.+$/,"")),d=0,p=-1;(p=u.indexOf(":",p+1))>=0;)d++;if(u.substr(0,2)==="::"&&d--,u.substr(-2,2)==="::"&&d--,d>l)return null;for(h=l-d,m=":";h--;)m+="0:";return u=u.replace("::",m),u[0]===":"&&(u=u.slice(1)),u[u.length-1]===":"&&(u=u.slice(0,-1)),l=(function(){var v,S,b,y;for(b=u.split(":"),y=[],v=0,S=b.length;v=0&&l<=32))return p=[this.parse(d[1]),l],Object.defineProperty(p,"toString",{value:function(){return this.join("/")}}),p;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},e.IPv4.subnetMaskFromPrefixLength=function(u){var l,d,p;if(u=parseInt(u),u<0||u>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(p=[0,0,0,0],d=0,l=Math.floor(u/8);d=0&&l<=128))return p=[this.parse(d[1]),l],Object.defineProperty(p,"toString",{value:function(){return this.join("/")}}),p;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},e.isValid=function(u){return e.IPv6.isValid(u)||e.IPv4.isValid(u)},e.parse=function(u){if(e.IPv6.isValid(u))return e.IPv6.parse(u);if(e.IPv4.isValid(u))return e.IPv4.parse(u);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},e.parseCIDR=function(u){var l;try{return e.IPv6.parseCIDR(u)}catch(d){l=d;try{return e.IPv4.parseCIDR(u)}catch(p){throw l=p,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},e.fromByteArray=function(u){var l;if(l=u.length,l===4)return new e.IPv4(u);if(l===16)return new e.IPv6(u);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},e.process=function(u){var l;return l=this.parse(u),l.kind()==="ipv6"&&l.isIPv4MappedAddress()?l.toIPv4Address():l}}).call(FU)});var RT=$((oNe,uv)=>{"use strict";uv.exports=iae;uv.exports.all=BU;uv.exports.compile=GU;var Yoe=UU(),ZU=qU(),Qoe=/^[0-9]+$/,av=ZU.isValid,cv=ZU.parse,HU={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 BU(t,e){var r=Yoe(t);if(!e)return r;typeof e!="function"&&(e=GU(e));for(var n=0;ni)throw new TypeError("invalid range on address: "+t);return[n,s]}function nae(t){var e=cv(t),r=e.kind();return r==="ipv4"?e.prefixLengthFromSubnetMask():null}function iae(t,e){if(!t)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var r=BU(t,e),n=r[r.length-1];return n}function sae(){return!1}function oae(t){return function(r){if(!av(r))return!1;for(var n=cv(r),i,s=n.kind(),o=0;o{"use strict";var WU=tv().Buffer,cae=_T(),VU=Fd(),KU=Hi()("express"),uae=hp(),lae=ov().mime,dae=bT(),pae=RT(),fae=Gg(),mae=require("querystring");Yr.etag=JU({weak:!1});Yr.wetag=JU({weak:!0});Yr.isAbsolute=function(t){if(t[0]==="/"||t[1]===":"&&(t[2]==="\\"||t[2]==="/")||t.substring(0,2)==="\\\\")return!0};Yr.flatten=KU.function(uae,"utils.flatten: use array-flatten npm module instead");Yr.normalizeType=function(t){return~t.indexOf("/")?hae(t):{value:lae.lookup(t),params:{}}};Yr.normalizeTypes=function(t){for(var e=[],r=0;r{"use strict";var yae=AL(),_ae=hT(),CT=Jg(),bae=sU(),Sae=gT(),lv=Zn()("express:application"),xae=dU(),wae=require("http"),Eae=ho().compileETag,kae=ho().compileQueryParser,Tae=ho().compileTrust,$ae=Hi()("express"),Iae=hp(),OT=gp(),Rae=require("path").resolve,nu=qd(),Oae=Object.prototype.hasOwnProperty,AT=Array.prototype.slice,Qt=XU=YU.exports={},PT="@@symbol:trust_proxy_default";Qt.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};Qt.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,PT,{configurable:!0,value:!0}),lv("booting in %s mode",e),this.on("mount",function(n){this.settings[PT]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),nu(this.request,n.request),nu(this.response,n.response),nu(this.engines,n.engines),nu(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",xae),this.set("views",Rae("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.`)}})};Qt.lazyrouter=function(){this._router||(this._router=new _ae({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(Sae(this.get("query parser fn"))),this._router.use(bae.init(this)))};Qt.handle=function(e,r,n){var i=this._router,s=n||yae(e,r,{env:this.get("env"),onerror:Cae.bind(this)});if(!i){lv("no routes defined on app"),s();return}i.handle(e,r,s)};Qt.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var i=e;Array.isArray(i)&&i.length!==0;)i=i[0];typeof i!="function"&&(r=1,n=e)}var s=Iae(AT.call(arguments,r));if(s.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var o=this._router;return s.forEach(function(a){if(!a||!a.handle||!a.set)return o.use(n,a);lv(".use app under %s",n),a.mountpath=n,a.parent=this,o.use(n,function(u,l,d){var p=u.app;a.handle(u,l,function(f){nu(u,p.request),nu(l,p.response),d(f)})}),a.emit("mount",this)},this),this};Qt.route=function(e){return this.lazyrouter(),this._router.route(e)};Qt.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};Qt.param=function(e,r){if(this.lazyrouter(),Array.isArray(e)){for(var n=0;n1?'directories "'+u.root.slice(0,-1).join('", "')+'" or "'+u.root[u.root.length-1]+'"':'directory "'+u.root+'"',p=new Error('Failed to lookup view "'+e+'" in views '+d);return p.view=u,s(p)}c.cache&&(i[e]=u)}Pae(u,c,s)};Qt.listen=function(){var e=wae.createServer(this);return e.listen.apply(e,arguments)};function Cae(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function Pae(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var n2=$((cNe,NT)=>{"use strict";NT.exports=r2;NT.exports.preferredCharsets=r2;var Aae=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Nae(t){for(var e=t.split(","),r=0,n=0;r0}});var c2=$((uNe,MT)=>{"use strict";MT.exports=a2;MT.exports.preferredEncodings=a2;var Lae=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Uae(t){for(var e=t.split(","),r=!1,n=1,i=0,s=0;i0}});var f2=$((lNe,DT)=>{"use strict";DT.exports=p2;DT.exports.preferredLanguages=p2;var Zae=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function Bae(t){for(var e=t.split(","),r=0,n=0;r0}});var _2=$((dNe,jT)=>{"use strict";jT.exports=v2;jT.exports.preferredMediaTypes=v2;var Kae=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function Jae(t){for(var e=tce(t),r=0,n=0;r0)if(s.every(function(o){return e.params[o]=="*"||(e.params[o]||"").toLowerCase()==(n.params[o]||"").toLowerCase()}))i|=1;else return null;return{i:r,o:e.i,q:e.q,s:i}}function v2(t,e){var r=Jae(t===void 0?"*/*":t||"");if(!e)return r.filter(h2).sort(m2).map(Qae);var n=e.map(function(s,o){return Xae(s,r,o)});return n.filter(h2).sort(m2).map(function(s){return e[n.indexOf(s)]})}function m2(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function Qae(t){return t.type+"/"+t.subtype}function h2(t){return t.q>0}function y2(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function ece(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 tce(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var nce=n2(),ice=c2(),sce=f2(),oce=_2();zT.exports=yt;zT.exports.Negotiator=yt;function yt(t){if(!(this instanceof yt))return new yt(t);this.request=t}yt.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};yt.prototype.charsets=function(e){return nce(this.request.headers["accept-charset"],e)};yt.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};yt.prototype.encodings=function(e){return ice(this.request.headers["accept-encoding"],e)};yt.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};yt.prototype.languages=function(e){return sce(this.request.headers["accept-language"],e)};yt.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};yt.prototype.mediaTypes=function(e){return oce(this.request.headers.accept,e)};yt.prototype.preferredCharset=yt.prototype.charset;yt.prototype.preferredCharsets=yt.prototype.charsets;yt.prototype.preferredEncoding=yt.prototype.encoding;yt.prototype.preferredEncodings=yt.prototype.encodings;yt.prototype.preferredLanguage=yt.prototype.language;yt.prototype.preferredLanguages=yt.prototype.languages;yt.prototype.preferredMediaType=yt.prototype.mediaType;yt.prototype.preferredMediaTypes=yt.prototype.mediaTypes});var x2=$((fNe,S2)=>{"use strict";var ace=b2(),cce=Pk();S2.exports=In;function In(t){if(!(this instanceof In))return new In(t);this.headers=t.headers,this.negotiator=new ace(t)}In.prototype.type=In.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 dv=x2(),bp=Hi()("express"),dce=require("net").isIP,pce=qc(),fce=require("http"),mce=ST(),hce=xT(),gce=Kc(),w2=RT(),wt=Object.create(fce.IncomingMessage.prototype);E2.exports=wt;wt.get=wt.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]}};wt.accepts=function(){var t=dv(this);return t.types.apply(t,arguments)};wt.acceptsEncodings=function(){var t=dv(this);return t.encodings.apply(t,arguments)};wt.acceptsEncoding=bp.function(wt.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");wt.acceptsCharsets=function(){var t=dv(this);return t.charsets.apply(t,arguments)};wt.acceptsCharset=bp.function(wt.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");wt.acceptsLanguages=function(){var t=dv(this);return t.languages.apply(t,arguments)};wt.acceptsLanguage=bp.function(wt.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");wt.range=function(e,r){var n=this.get("Range");if(n)return hce(e,n,r)};wt.param=function(e,r){var n=this.params||{},i=this.body||{},s=this.query||{},o=arguments.length===1?"name":"name, default";return bp("req.param("+o+"): Use req.params, req.body, or req.query instead"),n[e]!=null&&n.hasOwnProperty(e)?n[e]:i[e]!=null?i[e]:s[e]!=null?s[e]:r};wt.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?mce(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});mi(wt,"stale",function(){return!this.fresh});mi(wt,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function mi(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var I2=$(pv=>{var $2=require("crypto");pv.sign=function(t,e){if(typeof t!="string")throw new TypeError("Cookie value must be provided as a string.");if(e==null)throw new TypeError("Secret key must be provided.");return t+"."+$2.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};pv.unsign=function(t,e){if(typeof t!="string")throw new TypeError("Signed cookie string must be provided.");if(e==null)throw new TypeError("Secret key must be provided.");var r=t.slice(0,t.lastIndexOf(".")),n=pv.sign(r,e);return T2(n)==T2(t)?r:!1};function T2(t){return $2.createHash("sha1").update(t).digest("hex")}});var C2=$(LT=>{"use strict";LT.parse=wce;LT.serialize=Ece;var vce=Object.prototype.toString,yce=Object.prototype.hasOwnProperty,_ce=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,bce=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,Sce=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,xce=/^[\u0020-\u003A\u003D-\u007E]*$/;function wce(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 i=e&&e.decode||kce,s=0,o=0,a=0;do{if(o=t.indexOf("=",s),o===-1)break;if(a=t.indexOf(";",s),a===-1)a=n;else if(o>a){s=t.lastIndexOf(";",o-1)+1;continue}var c=R2(t,s,o),u=O2(t,o,c),l=t.slice(c,u);if(!yce.call(r,l)){var d=R2(t,o+1,a),p=O2(t,a,d);t.charCodeAt(d)===34&&t.charCodeAt(p-1)===34&&(d++,p--);var f=t.slice(d,p);r[l]=$ce(f,i)}s=a+1}while(sr;){var n=t.charCodeAt(--e);if(n!==32&&n!==9)return e+1}return r}function Ece(t,e,r){var n=r&&r.encode||encodeURIComponent;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!_ce.test(t))throw new TypeError("argument name is invalid");var i=n(e);if(!bce.test(i))throw new TypeError("argument val is invalid");var s=t+"="+i;if(!r)return s;if(r.maxAge!=null){var o=Math.floor(r.maxAge);if(!isFinite(o))throw new TypeError("option maxAge is invalid");s+="; Max-Age="+o}if(r.domain){if(!Sce.test(r.domain))throw new TypeError("option domain is invalid");s+="; Domain="+r.domain}if(r.path){if(!xce.test(r.path))throw new TypeError("option path is invalid");s+="; Path="+r.path}if(r.expires){var a=r.expires;if(!Tce(a)||isNaN(a.valueOf()))throw new TypeError("option expires is invalid");s+="; Expires="+a.toUTCString()}if(r.httpOnly&&(s+="; HttpOnly"),r.secure&&(s+="; Secure"),r.partitioned&&(s+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":s+="; Priority=Low";break;case"medium":s+="; Priority=Medium";break;case"high":s+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(r.sameSite){var u=typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite;switch(u){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s}function kce(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function Tce(t){return vce.call(t)==="[object Date]"}function $ce(t,e){try{return e(t)}catch{return t}}});var FT=$((vNe,UT)=>{"use strict";UT.exports=Rce;UT.exports.append=A2;var Ice=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function A2(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:P2(String(e)),n=0;n{"use strict";var Sp=tv().Buffer,N2=_T(),Oce=ea(),mn=Hi()("express"),Cce=fp(),Pce=mp(),Ace=require("http"),Nce=ho().isAbsolute,Mce=Yd(),M2=require("path"),fv=Hd(),D2=gp(),Dce=I2().sign,jce=ho().normalizeType,zce=ho().normalizeTypes,Lce=ho().setCharset,Uce=C2(),qT=ov(),Fce=M2.extname,j2=qT.mime,qce=M2.resolve,Hce=FT(),$t=Object.create(Ace.ServerResponse.prototype);U2.exports=$t;var Zce=/;\s*charset\s*=/;$t.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&mn("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};$t.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(", "))};$t.send=function(e){var r=e,n,i=this.req,s,o=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(mn("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(mn("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"),mn("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=fv.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(Sp.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",s=this.get("Content-Type"),typeof s=="string"&&this.set("Content-Type",Lce(s,"utf-8")));var a=o.get("etag fn"),c=!this.get("ETag")&&typeof a=="function",u;r!==void 0&&(Sp.isBuffer(r)?u=r.length:!c&&r.length<1e3?u=Sp.byteLength(r,n):(r=Sp.from(r,n),n=void 0,u=r.length),this.set("Content-Length",u));var l;return c&&u!==void 0&&(l=a(r,n))&&this.set("ETag",l),i.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=""),i.method==="HEAD"?this.end():this.end(r,n),this};$t.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(mn("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(mn("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,i=n.get("json escape"),s=n.get("json replacer"),o=n.get("json spaces"),a=L2(r,s,o,i);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(a)};$t.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(mn("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(mn("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,i=n.get("json escape"),s=n.get("json replacer"),o=n.get("json spaces"),a=L2(r,s,o,i),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,""),a===void 0?a="":typeof a=="string"&&(a=a.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),a="/**/ typeof "+c+" === 'function' && "+c+"("+a+");"),this.send(a)};$t.sendStatus=function(e){var r=fv.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};$t.sendFile=function(e,r,n){var i=n,s=this.req,o=this,a=s.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"&&(i=r,c={}),!c.root&&!Nce(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var u=encodeURI(e),l=qT(s,u,c);z2(o,l,c,function(d){if(i)return i(d);if(d&&d.code==="EISDIR")return a();d&&d.code!=="ECONNABORTED"&&d.syscall!=="write"&&a(d)})};$t.sendfile=function(t,e,r){var n=r,i=this.req,s=this,o=i.next,a=e||{};typeof e=="function"&&(n=e,a={});var c=qT(i,t,a);z2(s,c,a,function(u){if(n)return n(u);if(u&&u.code==="EISDIR")return o();u&&u.code!=="ECONNABORTED"&&u.syscall!=="write"&&o(u)})};$t.sendfile=mn.function($t.sendfile,"res.sendfile: Use res.sendFile instead");$t.download=function(e,r,n,i){var s=i,o=r,a=n||null;typeof r=="function"?(s=r,o=null,a=null):typeof n=="function"&&(s=n,a=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(o=null,a=r);var c={"Content-Disposition":N2(o||e)};if(a&&a.headers)for(var u=Object.keys(a.headers),l=0;l0?e.accepts(n):!1;return this.vary("Accept"),i?(this.set("Content-Type",jce(i).value),t[i](e,this,r)):t.default?t.default(e,this,r):r(Oce(406,{types:zce(n).map(function(s){return s.value})})),this};$t.attachment=function(e){return e&&this.type(Fce(e)),this.set("Content-Disposition",N2(e)),this};$t.append=function(e,r){var n=this.get(e),i=r;return n&&(i=Array.isArray(n)?n.concat(r):Array.isArray(r)?[n].concat(r):[n,r]),this.set(e,i)};$t.set=$t.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(!Zce.test(n)){var i=j2.charsets.lookup(n.split(";")[0]);i&&(n+="; charset="+i.toLowerCase())}}this.setHeader(e,n)}else for(var s in e)this.set(s,e[s]);return this};$t.get=function(t){return this.getHeader(t)};$t.clearCookie=function(e,r){r&&(r.maxAge&&mn('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&&mn('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=D2({expires:new Date(1),path:"/"},r);return this.cookie(e,"",n)};$t.cookie=function(t,e,r){var n=D2({},r),i=this.req.secret,s=n.signed;if(s&&!i)throw new Error('cookieParser("secret") required for signed cookies');var o=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(s&&(o="s:"+Dce(o,i)),n.maxAge!=null){var a=n.maxAge-0;isNaN(a)||(n.expires=new Date(Date.now()+a),n.maxAge=Math.floor(a/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",Uce.serialize(t,String(o),n)),this};$t.location=function(e){var r;return e==="back"?(mn('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",Cce(r))};$t.redirect=function(e){var r=e,n,i=302;arguments.length===2&&(typeof arguments[0]=="number"?(i=arguments[0],r=arguments[1]):(mn("res.redirect(url, status): Use res.redirect(status, url) instead"),i=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){n=fv.message[i]+". Redirecting to "+r},html:function(){var s=Pce(r);n="

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

"},default:function(){n=""}}),this.statusCode=i,this.set("Content-Length",Sp.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};$t.vary=function(t){return!t||Array.isArray(t)&&!t.length?(mn("res.vary(): Provide a field name"),this):(Hce(this,t),this)};$t.render=function(e,r,n){var i=this.req.app,s=n,o=r||{},a=this.req,c=this;typeof r=="function"&&(s=r,o={}),o._locals=c.locals,s=s||function(u,l){if(u)return a.next(u);c.send(l)},i.render(e,o,s)};function z2(t,e,r,n){var i=!1,s;function o(){if(!i){i=!0;var f=new Error("Request aborted");f.code="ECONNABORTED",n(f)}}function a(){if(!i){i=!0;var f=new Error("EISDIR, read");f.code="EISDIR",n(f)}}function c(f){i||(i=!0,n(f))}function u(){i||(i=!0,n())}function l(){s=!1}function d(f){if(f&&f.code==="ECONNRESET")return o();if(f)return c(f);i||setImmediate(function(){if(s!==!1&&!i){o();return}i||(i=!0,n())})}function p(){s=!0}e.on("directory",a),e.on("end",u),e.on("error",c),e.on("file",l),e.on("stream",p),Mce(t,d),r.headers&&e.on("headers",function(m){for(var h=r.headers,g=Object.keys(h),v=0;v&]/g,function(s){switch(s.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return s}})),i}});var H2=$((_Ne,ZT)=>{"use strict";var Bce=fp(),Gce=mp(),HT=Kc(),Wce=require("path").resolve,q2=ov(),Vce=require("url");ZT.exports=Kce;ZT.exports.mime=q2.mime;function Kce(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,i=r.redirect!==!1,s=r.setHeaders;if(s&&typeof s!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=Wce(t);var o=i?Qce():Yce();return function(c,u,l){if(c.method!=="GET"&&c.method!=="HEAD"){if(n)return l();u.statusCode=405,u.setHeader("Allow","GET, HEAD"),u.setHeader("Content-Length","0"),u.end();return}var d=!n,p=HT.original(c),f=HT(c).pathname;f==="/"&&p.pathname.substr(-1)!=="/"&&(f="");var m=q2(c,f,r);m.on("directory",o),s&&m.on("headers",s),n&&m.on("file",function(){d=!0}),m.on("error",function(g){if(d||!(g.statusCode<500)){l(g);return}l()}),m.pipe(u)}}function Jce(t){for(var e=0;e1?"/"+t.substr(e):t}function Xce(t,e){return` @@ -660,19 +660,19 @@ Please see the 3.x to 4.x migration guide for details on how to update your app.
`+e+`
-`}function Lse(){return function(){this.error(404)}}function Use(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=tk.original(this.req);r.path=null,r.pathname=jse(r.pathname+"/");var n=Cse(Mse.format(r)),i=zse("Redirecting","Redirecting to "+Ase(n));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(i)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",n),e.end(i)}}});var VL=T((on,BL)=>{"use strict";var eg=gz(),qse=require("events").EventEmitter,qL=yz(),FL=J4(),Fse=kE(),Hse=TE(),HL=SL(),ZL=zL();on=BL.exports=Zse;function Zse(){var t=function(e,r,n){t.handle(e,r,n)};return qL(t,qse.prototype,!1),qL(t,FL,!1),t.request=Object.create(HL,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(ZL,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}on.application=FL;on.request=HL;on.response=ZL;on.Route=Fse;on.Router=Hse;on.json=eg.json;on.query=IE();on.raw=eg.raw;on.static=UL();on.text=eg.text;on.urlencoded=eg.urlencoded;var Bse=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];Bse.forEach(function(t){Object.defineProperty(on,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 tg=T((OOe,GL)=>{"use strict";GL.exports=VL()});var YL=T((COe,XL)=>{"use strict";var JL=Object.getOwnPropertySymbols,Vse=Object.prototype.hasOwnProperty,Gse=Object.prototype.propertyIsEnumerable;function Wse(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function Kse(){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(s){return e[s]});if(n.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(s){i[s]=s}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}XL.exports=Kse()?Object.assign:function(t,e){for(var r,n=Wse(t),i,s=1;s{(function(){"use strict";var t=YL(),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 i(f,g){if(Array.isArray(g)){for(var h=0;h{"use strict"});var Ec={};ln(Ec,{PendingMessageStore:()=>Md});var ioe,Md,jo=Oe(()=>{"use strict";oe();ioe=6e4,Md=class{db;maxRetries;constructor(e,r=3){this.db=e,this.maxRetries=r}enqueue(e,r,n){let i=Date.now();return this.db.prepare(` +`}function Yce(){return function(){this.error(404)}}function Qce(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=HT.original(this.req);r.path=null,r.pathname=Jce(r.pathname+"/");var n=Bce(Vce.format(r)),i=Xce("Redirecting","Redirecting to "+Gce(n));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(i)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",n),e.end(i)}}});var K2=$((hn,V2)=>{"use strict";var mv=_L(),eue=require("events").EventEmitter,Z2=SL(),B2=QU(),tue=fT(),rue=hT(),G2=k2(),W2=F2();hn=V2.exports=nue;function nue(){var t=function(e,r,n){t.handle(e,r,n)};return Z2(t,eue.prototype,!1),Z2(t,B2,!1),t.request=Object.create(G2,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(W2,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}hn.application=B2;hn.request=G2;hn.response=W2;hn.Route=tue;hn.Router=rue;hn.json=mv.json;hn.query=gT();hn.raw=mv.raw;hn.static=H2();hn.text=mv.text;hn.urlencoded=mv.urlencoded;var iue=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];iue.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 hv=$((bNe,J2)=>{"use strict";J2.exports=K2()});var t6=$((xNe,e6)=>{"use strict";var Q2=Object.getOwnPropertySymbols,sue=Object.prototype.hasOwnProperty,oue=Object.prototype.propertyIsEnumerable;function aue(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function cue(){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(s){return e[s]});if(n.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(s){i[s]=s}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}e6.exports=cue()?Object.assign:function(t,e){for(var r,n=aue(t),i,s=1;s{(function(){"use strict";var t=t6(),e=FT(),r={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function n(m){return typeof m=="string"||m instanceof String}function i(m,h){if(Array.isArray(h)){for(var g=0;g{"use strict"});var ou={};_n(ou,{PendingMessageStore:()=>$p});var wue,$p,ha=Oe(()=>{"use strict";re();wue=6e4,$p=class{db;maxRetries;constructor(e,r=3){this.db=e,this.maxRetries=r}enqueue(e,r,n){let i=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, last_assistant_message, prompt_number, status, retry_count, created_at_epoch ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'pending', 0, ?) - `).run(e,r,n.type,n.tool_name||null,n.tool_input?JSON.stringify(n.tool_input):null,n.tool_response?JSON.stringify(n.tool_response):null,n.cwd||null,n.last_assistant_message||null,n.prompt_number||null,i).lastInsertRowid}claimNextMessage(e){return this.db.transaction(n=>{let i=Date.now(),s=i-ioe,a=this.db.prepare(` + `).run(e,r,n.type,n.tool_name||null,n.tool_input?JSON.stringify(n.tool_input):null,n.tool_response?JSON.stringify(n.tool_response):null,n.cwd||null,n.last_assistant_message||null,n.prompt_number||null,i).lastInsertRowid}claimNextMessage(e){return this.db.transaction(n=>{let i=Date.now(),s=i-wue,a=this.db.prepare(` UPDATE pending_messages SET status = 'pending', started_processing_at_epoch = NULL WHERE session_db_id = ? AND status = 'processing' AND started_processing_at_epoch < ? - `).run(n,s);a.changes>0&&y.info("QUEUE",`SELF_HEAL | sessionDbId=${n} | recovered ${a.changes} stale processing message(s)`);let u=this.db.prepare(` + `).run(n,s);a.changes>0&&_.info("QUEUE",`SELF_HEAL | sessionDbId=${n} | recovered ${a.changes} stale processing message(s)`);let u=this.db.prepare(` SELECT * FROM pending_messages WHERE session_db_id = ? AND status = 'pending' ORDER BY id ASC @@ -681,7 +681,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. UPDATE pending_messages SET status = 'processing', started_processing_at_epoch = ? WHERE id = ? - `).run(i,u.id),y.info("QUEUE",`CLAIMED | sessionDbId=${n} | messageId=${u.id} | type=${u.message_type}`,{sessionId:n})),u})(e)}confirmProcessed(e){this.db.prepare("DELETE FROM pending_messages WHERE id = ?").run(e).changes>0&&y.debug("QUEUE",`CONFIRMED | messageId=${e} | deleted from queue`)}resetStaleProcessingMessages(e=300*1e3,r){let n=Date.now()-e,i,s;return r!==void 0?(i=this.db.prepare(` + `).run(i,u.id),_.info("QUEUE",`CLAIMED | sessionDbId=${n} | messageId=${u.id} | type=${u.message_type}`,{sessionId:n})),u})(e)}confirmProcessed(e){this.db.prepare("DELETE FROM pending_messages WHERE id = ?").run(e).changes>0&&_.debug("QUEUE",`CONFIRMED | messageId=${e} | deleted from queue`)}resetStaleProcessingMessages(e=300*1e3,r){let n=Date.now()-e,i,s;return r!==void 0?(i=this.db.prepare(` UPDATE pending_messages SET status = 'pending', started_processing_at_epoch = NULL WHERE status = 'processing' AND started_processing_at_epoch < ? AND session_db_id = ? @@ -689,7 +689,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. UPDATE pending_messages SET status = 'pending', started_processing_at_epoch = NULL WHERE status = 'processing' AND started_processing_at_epoch < ? - `),s=i.run(n)),s.changes>0&&y.info("QUEUE",`RESET_STALE | count=${s.changes} | thresholdMs=${e}${r!==void 0?` | sessionDbId=${r}`:""}`),s.changes}getAllPending(e){return this.db.prepare(` + `),s=i.run(n)),s.changes>0&&_.info("QUEUE",`RESET_STALE | count=${s.changes} | thresholdMs=${e}${r!==void 0?` | sessionDbId=${r}`:""}`),s.changes}getAllPending(e){return this.db.prepare(` SELECT * FROM pending_messages WHERE session_db_id = ? AND status = 'pending' ORDER BY id ASC @@ -750,11 +750,15 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. `).run(r).changes}getPendingCount(e){return this.db.prepare(` SELECT COUNT(*) as count FROM pending_messages WHERE session_db_id = ? AND status IN ('pending', 'processing') - `).get(e).count}hasAnyPendingWork(){let e=Date.now()-3e5,n=this.db.prepare(` + `).get(e).count}peekPendingTypes(e){return this.db.prepare(` + SELECT message_type, tool_name FROM pending_messages + WHERE session_db_id = ? AND status IN ('pending', 'processing') + ORDER BY id ASC + `).all(e)}hasAnyPendingWork(){let e=Date.now()-3e5,n=this.db.prepare(` UPDATE pending_messages SET status = 'pending', started_processing_at_epoch = NULL WHERE status = 'processing' AND started_processing_at_epoch < ? - `).run(e);return n.changes>0&&y.info("QUEUE",`STUCK_RESET | hasAnyPendingWork reset ${n.changes} stuck processing message(s) older than 5 minutes`),this.db.prepare(` + `).run(e);return n.changes>0&&_.info("QUEUE",`STUCK_RESET | hasAnyPendingWork reset ${n.changes} stuck processing message(s) older than 5 minutes`),this.db.prepare(` SELECT COUNT(*) as count FROM pending_messages WHERE status IN ('pending', 'processing') `).get().count>0}getSessionsWithPendingMessages(){return this.db.prepare(` @@ -768,7 +772,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. `).run().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 IU={};ln(IU,{ModeManager:()=>He});var zd,lg,He,Br=Oe(()=>{"use strict";zd=require("fs"),lg=require("path");oe();Nt();He=class t{static instance=null;activeMode=null;modesDir;constructor(){let e=tn(),r=[(0,lg.join)(e,"modes"),(0,lg.join)(e,"..","plugin","modes")],n=r.find(i=>(0,zd.existsSync)(i));this.modesDir=n||r[0]}static getInstance(){return t.instance||(t.instance=new t),t.instance}parseInheritance(e){let r=e.split("--");if(r.length===1)return{hasParent:!1,parentId:"",overrideId:""};if(r.length>2)throw new Error(`Invalid mode inheritance: ${e}. Only one level of inheritance supported (parent--override)`);return{hasParent:!0,parentId:r[0],overrideId:e}}isPlainObject(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}deepMerge(e,r){let n={...e};for(let i in r){let s=r[i],o=e[i];this.isPlainObject(s)&&this.isPlainObject(o)?n[i]=this.deepMerge(o,s):n[i]=s}return n}loadModeFile(e){let r=(0,lg.join)(this.modesDir,`${e}.json`);if(!(0,zd.existsSync)(r))throw new Error(`Mode file not found: ${r}`);let n=(0,zd.readFileSync)(r,"utf-8");return JSON.parse(n)}loadMode(e){let r=this.parseInheritance(e);if(!r.hasParent)try{let c=this.loadModeFile(e);return this.activeMode=c,y.debug("SYSTEM",`Loaded mode: ${c.name} (${e})`,void 0,{types:c.observation_types.map(u=>u.id),concepts:c.observation_concepts.map(u=>u.id)}),c}catch{if(y.warn("SYSTEM",`Mode file not found: ${e}, falling back to 'code'`),e==="code")throw new Error("Critical: code.json mode file missing");return this.loadMode("code")}let{parentId:n,overrideId:i}=r,s;try{s=this.loadMode(n)}catch{y.warn("SYSTEM",`Parent mode '${n}' not found for ${e}, falling back to 'code'`),s=this.loadMode("code")}let o;try{o=this.loadModeFile(i),y.debug("SYSTEM",`Loaded override file: ${i} for parent ${n}`)}catch{return y.warn("SYSTEM",`Override file '${i}' not found, using parent mode '${n}' only`),this.activeMode=s,s}if(!o)return y.warn("SYSTEM",`Invalid override file: ${i}, using parent mode '${n}' only`),this.activeMode=s,s;let a=this.deepMerge(s,o);return this.activeMode=a,y.debug("SYSTEM",`Loaded mode with inheritance: ${a.name} (${e} = ${n} + ${i})`,void 0,{parent:n,override:i,types:a.observation_types.map(c=>c.id),concepts:a.observation_concepts.map(c=>c.id)}),a}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 pg(t){if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(e){return y.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:t?.substring(0,50)},e),[]}}function _n(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function lr(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function ns(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function PU(t,e){return dk.default.isAbsolute(t)?dk.default.relative(e,t):t}function ei(t,e,r){let n=pg(t);if(n.length>0)return PU(n[0],e);if(r){let i=pg(r);if(i.length>0)return PU(i[0],e)}return"General"}function Rc(t){return t?Math.ceil(t.length/4):0}function is(t,e){let r=new Map;for(let i of t){let s=e(i),o=ns(s);r.has(o)||r.set(o,[]),r.get(o).push(i)}let n=Array.from(r.entries()).sort((i,s)=>{let o=new Date(i[0]).getTime(),a=new Date(s[0]).getTime();return o-a});return new Map(n)}var dk,zo=Oe(()=>{"use strict";dk=Ue(require("path"),1);oe()});function yq(t){let e=sv.default.join(t,".git"),r;try{r=(0,ov.statSync)(e)}catch{return gp}if(!r.isFile())return gp;let n;try{n=(0,ov.readFileSync)(e,"utf-8").trim()}catch{return gp}let i=n.match(/^gitdir:\s*(.+)$/);if(!i)return gp;let o=i[1].match(/^(.+)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)$/);if(!o)return gp;let a=o[1],c=sv.default.basename(t),u=sv.default.basename(a);return{isWorktree:!0,worktreeName:c,parentRepoPath:a,parentProjectName:u}}var ov,sv,gp,_q=Oe(()=>{"use strict";ov=require("fs"),sv=Ue(require("path"),1),gp={isWorktree:!1,worktreeName:null,parentRepoPath:null,parentProjectName:null}});function vp(t){if(!t||t.trim()==="")return y.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:t}),"unknown-project";let e=bq.default.basename(t);if(e===""){if(process.platform==="win32"){let n=t.match(/^([A-Z]):\\/i);if(n){let s=`drive-${n[1].toUpperCase()}`;return y.info("PROJECT_NAME","Drive root detected",{cwd:t,projectName:s}),s}}return y.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:t}),"unknown-project"}return e}function av(t){let e=vp(t);if(!t)return{primary:e,parent:null,isWorktree:!1,allProjects:[e]};let r=yq(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]}}var bq,yp=Oe(()=>{"use strict";bq=Ue(require("path"),1);oe();_q()});function c$(){let t=xq.default.join((0,Sq.homedir)(),".claude-mem","settings.json"),e=_e.loadFromFile(t),r=He.getInstance().getActiveMode(),n=new Set(r.observation_types.map(s=>s.id)),i=new Set(r.observation_concepts.map(s=>s.id));return{totalObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",showWorkTokens:e.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",showSavingsAmount:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",showSavingsPercent:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT==="true",observationTypes:n,observationConcepts:i,fullObservationField:e.CLAUDE_MEM_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",showLastMessage:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true"}}var xq,Sq,u$=Oe(()=>{"use strict";xq=Ue(require("path"),1),Sq=require("os");Yt();Br()});var Y,wq,l$,_p=Oe(()=>{"use strict";Y={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"},wq=4,l$=1});function d$(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+JSON.stringify(t.facts||[]).length;return Math.ceil(e/wq)}function p$(t){let e=t.length,r=t.reduce((o,a)=>o+d$(a),0),n=t.reduce((o,a)=>o+(a.discovery_tokens||0),0),i=n-r,s=n>0?Math.round(i/n*100):0;return{totalObservations:e,totalReadTokens:r,totalDiscoveryTokens:n,savings:i,savingsPercent:s}}function nge(t){return He.getInstance().getWorkEmoji(t)}function bp(t,e){let r=d$(t),n=t.discovery_tokens||0,i=nge(t.type),s=n>0?`${i} ${n.toLocaleString()}`:"-";return{readTokens:r,discoveryTokens:n,discoveryDisplay:s,workEmoji:i}}function cv(t){return t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent}var Wo=Oe(()=>{"use strict";_p();Br()});function m$(t,e,r){let n=Array.from(r.observationTypes),i=n.map(()=>"?").join(","),s=Array.from(r.observationConcepts),o=s.map(()=>"?").join(",");return t.db.prepare(` + `).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 N6={};_n(N6,{ModeManager:()=>He});var Op,Tv,He,Qr=Oe(()=>{"use strict";Op=require("fs"),Tv=require("path");re();zt();He=class t{static instance=null;activeMode=null;modesDir;constructor(){let e=dn(),r=[(0,Tv.join)(e,"modes"),(0,Tv.join)(e,"..","plugin","modes")],n=r.find(i=>(0,Op.existsSync)(i));this.modesDir=n||r[0]}static getInstance(){return t.instance||(t.instance=new t),t.instance}parseInheritance(e){let r=e.split("--");if(r.length===1)return{hasParent:!1,parentId:"",overrideId:""};if(r.length>2)throw new Error(`Invalid mode inheritance: ${e}. Only one level of inheritance supported (parent--override)`);return{hasParent:!0,parentId:r[0],overrideId:e}}isPlainObject(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}deepMerge(e,r){let n={...e};for(let i in r){let s=r[i],o=e[i];this.isPlainObject(s)&&this.isPlainObject(o)?n[i]=this.deepMerge(o,s):n[i]=s}return n}loadModeFile(e){let r=(0,Tv.join)(this.modesDir,`${e}.json`);if(!(0,Op.existsSync)(r))throw new Error(`Mode file not found: ${r}`);let n=(0,Op.readFileSync)(r,"utf-8");return JSON.parse(n)}loadMode(e){let r=this.parseInheritance(e);if(!r.hasParent)try{let c=this.loadModeFile(e);return this.activeMode=c,_.debug("SYSTEM",`Loaded mode: ${c.name} (${e})`,void 0,{types:c.observation_types.map(u=>u.id),concepts:c.observation_concepts.map(u=>u.id)}),c}catch{if(_.warn("SYSTEM",`Mode file not found: ${e}, falling back to 'code'`),e==="code")throw new Error("Critical: code.json mode file missing");return this.loadMode("code")}let{parentId:n,overrideId:i}=r,s;try{s=this.loadMode(n)}catch{_.warn("SYSTEM",`Parent mode '${n}' not found for ${e}, falling back to 'code'`),s=this.loadMode("code")}let o;try{o=this.loadModeFile(i),_.debug("SYSTEM",`Loaded override file: ${i} for parent ${n}`)}catch{return _.warn("SYSTEM",`Override file '${i}' not found, using parent mode '${n}' only`),this.activeMode=s,s}if(!o)return _.warn("SYSTEM",`Invalid override file: ${i}, using parent mode '${n}' only`),this.activeMode=s,s;let a=this.deepMerge(s,o);return this.activeMode=a,_.debug("SYSTEM",`Loaded mode with inheritance: ${a.name} (${e} = ${n} + ${i})`,void 0,{parent:n,override:i,types:a.observation_types.map(c=>c.id),concepts:a.observation_concepts.map(c=>c.id)}),a}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 Iv(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 Rn(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function pr(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function Rs(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function j6(t,e){return r$.default.isAbsolute(t)?r$.default.relative(e,t):t}function vi(t,e,r){let n=Iv(t);if(n.length>0)return j6(n[0],e);if(r){let i=Iv(r);if(i.length>0)return j6(i[0],e)}return"General"}function du(t){return t?Math.ceil(t.length/4):0}function Os(t,e){let r=new Map;for(let i of t){let s=e(i),o=Rs(s);r.has(o)||r.set(o,[]),r.get(o).push(i)}let n=Array.from(r.entries()).sort((i,s)=>{let o=new Date(i[0]).getTime(),a=new Date(s[0]).getTime();return o-a});return new Map(n)}var r$,ga=Oe(()=>{"use strict";r$=Pe(require("path"),1);re()});function x9(t){let e=by.default.join(t,".git"),r;try{r=(0,Sy.statSync)(e)}catch{return uf}if(!r.isFile())return uf;let n;try{n=(0,Sy.readFileSync)(e,"utf-8").trim()}catch{return uf}let i=n.match(/^gitdir:\s*(.+)$/);if(!i)return uf;let o=i[1].match(/^(.+)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)$/);if(!o)return uf;let a=o[1],c=by.default.basename(t),u=by.default.basename(a);return{isWorktree:!0,worktreeName:c,parentRepoPath:a,parentProjectName:u}}var Sy,by,uf,w9=Oe(()=>{"use strict";Sy=require("fs"),by=Pe(require("path"),1),uf={isWorktree:!1,worktreeName:null,parentRepoPath:null,parentProjectName:null}});function Ta(t){if(!t||t.trim()==="")return _.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:t}),"unknown-project";let e=E9.default.basename(t);if(e===""){if(process.platform==="win32"){let n=t.match(/^([A-Z]):\\/i);if(n){let s=`drive-${n[1].toUpperCase()}`;return _.info("PROJECT_NAME","Drive root detected",{cwd:t,projectName:s}),s}}return _.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:t}),"unknown-project"}return e}function xy(t){let e=Ta(t);if(!t)return{primary:e,parent:null,isWorktree:!1,allProjects:[e]};let r=x9(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]}}var E9,lf=Oe(()=>{"use strict";E9=Pe(require("path"),1);re();w9()});function eI(){let t=k9.default.join((0,T9.homedir)(),".claude-mem","settings.json"),e=Se.loadFromFile(t),r=He.getInstance().getActiveMode(),n=new Set(r.observation_types.map(s=>s.id)),i=new Set(r.observation_concepts.map(s=>s.id));return{totalObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",showWorkTokens:e.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",showSavingsAmount:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",showSavingsPercent:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT==="true",observationTypes:n,observationConcepts:i,fullObservationField:e.CLAUDE_MEM_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",showLastMessage:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true"}}var k9,T9,tI=Oe(()=>{"use strict";k9=Pe(require("path"),1),T9=require("os");rr();Qr()});var Y,$9,rI,df=Oe(()=>{"use strict";Y={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"},$9=4,rI=1});function nI(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+JSON.stringify(t.facts||[]).length;return Math.ceil(e/$9)}function iI(t){let e=t.length,r=t.reduce((o,a)=>o+nI(a),0),n=t.reduce((o,a)=>o+(a.discovery_tokens||0),0),i=n-r,s=n>0?Math.round(i/n*100):0;return{totalObservations:e,totalReadTokens:r,totalDiscoveryTokens:n,savings:i,savingsPercent:s}}function b_e(t){return He.getInstance().getWorkEmoji(t)}function pf(t,e){let r=nI(t),n=t.discovery_tokens||0,i=b_e(t.type),s=n>0?`${i} ${n.toLocaleString()}`:"-";return{readTokens:r,discoveryTokens:n,discoveryDisplay:s,workEmoji:i}}function wy(t){return t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent}var $a=Oe(()=>{"use strict";df();Qr()});function sI(t,e,r){let n=Array.from(r.observationTypes),i=n.map(()=>"?").join(","),s=Array.from(r.observationConcepts),o=s.map(()=>"?").join(",");return t.db.prepare(` SELECT id, memory_session_id, type, title, subtitle, narrative, facts, concepts, files_read, files_modified, discovery_tokens, @@ -782,13 +786,13 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. ) ORDER BY created_at_epoch DESC LIMIT ? - `).all(e,...n,...s,r.totalObservationCount)}function f$(t,e,r){return t.db.prepare(` + `).all(e,...n,...s,r.totalObservationCount)}function oI(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+l$)}function kq(t,e,r){let n=Array.from(r.observationTypes),i=n.map(()=>"?").join(","),s=Array.from(r.observationConcepts),o=s.map(()=>"?").join(","),a=e.map(()=>"?").join(",");return t.db.prepare(` + `).all(e,r.sessionCount+rI)}function R9(t,e,r){let n=Array.from(r.observationTypes),i=n.map(()=>"?").join(","),s=Array.from(r.observationConcepts),o=s.map(()=>"?").join(","),a=e.map(()=>"?").join(",");return t.db.prepare(` SELECT id, memory_session_id, type, title, subtitle, narrative, facts, concepts, files_read, files_modified, discovery_tokens, @@ -802,50 +806,49 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. ) ORDER BY created_at_epoch DESC LIMIT ? - `).all(...e,...n,...s,r.totalObservationCount)}function $q(t,e,r){let n=e.map(()=>"?").join(",");return t.db.prepare(` + `).all(...e,...n,...s,r.totalObservationCount)}function O9(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+l$)}function ige(t){return t.replace(/\//g,"-")}function sge(t){try{if(!(0,uv.existsSync)(t))return{userMessage:"",assistantMessage:""};let e=(0,uv.readFileSync)(t,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let r=e.split(` -`).filter(i=>i.trim()),n="";for(let i=r.length-1;i>=0;i--)try{let s=r[i];if(!s.includes('"type":"assistant"'))continue;let o=JSON.parse(s);if(o.type==="assistant"&&o.message?.content&&Array.isArray(o.message.content)){let a="";for(let c of o.message.content)c.type==="text"&&(a+=c.text);if(a=a.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),a){n=a;break}}}catch(s){y.debug("PARSER","Skipping malformed transcript line",{lineIndex:i},s);continue}return{userMessage:"",assistantMessage:n}}catch(e){return y.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:t},e),{userMessage:"",assistantMessage:""}}}function h$(t,e,r,n){if(!e.showLastMessage||t.length===0)return{userMessage:"",assistantMessage:""};let i=t.find(c=>c.memory_session_id!==r);if(!i)return{userMessage:"",assistantMessage:""};let s=i.memory_session_id,o=ige(n),a=Eq.default.join(Wi,"projects",o,`${s}.jsonl`);return sge(a)}function Tq(t,e){let r=e[0]?.id;return t.map((n,i)=>{let s=i===0?null:e[i+1];return{...n,displayEpoch:s?s.created_at_epoch:n.created_at_epoch,displayTime:s?s.created_at:n.created_at,shouldShowLink:n.id!==r}})}function g$(t,e){let r=[...t.map(n=>({type:"observation",data:n})),...e.map(n=>({type:"summary",data:n}))];return r.sort((n,i)=>{let s=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch,o=i.type==="observation"?i.data.created_at_epoch:i.data.displayEpoch;return s-o}),r}function Iq(t,e){return new Set(t.slice(0,e).map(r=>r.id))}var Eq,uv,v$=Oe(()=>{"use strict";Eq=Ue(require("path"),1),uv=require("fs");oe();Nt();_p()});function Rq(){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 Oq(t){return[`# $CMEM ${t} ${Rq()}`,""]}function Pq(){return[`Legend: \u{1F3AF}session ${He.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji}${r.id}`).join(" ")}`,"Format: ID TIME TYPE TITLE","Fetch details: get_observations([IDs]) | Search: mem-search skill",""]}function Cq(){return[]}function Aq(){return[]}function Nq(t,e){let r=[],n=[`${t.totalObservations} obs (${t.totalReadTokens.toLocaleString()}t read)`,`${t.totalDiscoveryTokens.toLocaleString()}t work`];return t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)&&(e.showSavingsPercent?n.push(`${t.savingsPercent}% savings`):e.showSavingsAmount&&n.push(`${t.savings.toLocaleString()}t saved`)),r.push(`Stats: ${n.join(" | ")}`),r.push(""),r}function Mq(t){return[`### ${t}`]}function Dq(t){return t.toLowerCase().replace(" am","a").replace(" pm","p")}function jq(t,e,r){let n=t.title||"Untitled",i=He.getInstance().getTypeIcon(t.type),s=e?Dq(e):'"';return`${t.id} ${s} ${i} ${n}`}function zq(t,e,r,n){let i=[],s=t.title||"Untitled",o=He.getInstance().getTypeIcon(t.type),a=e?Dq(e):'"',{readTokens:c,discoveryDisplay:u}=bp(t,n);i.push(`**${t.id}** ${a} ${o} **${s}**`),r&&i.push(r);let l=[];return n.showReadTokens&&l.push(`~${c}t`),n.showWorkTokens&&l.push(u),l.length>0&&i.push(l.join(" ")),i.push(""),i}function Lq(t,e){return[`S${t.id} ${t.request||"Session started"} (${e})`]}function xp(t,e){return e?[`**${t}**: ${e}`,""]:[]}function Uq(t){return t.assistantMessage?["","---","","**Previously**","",`A: ${t.assistantMessage}`,""]:[]}function qq(t,e){return["",`Access ${Math.round(t/1e3)}k tokens of past work via get_observations([IDs]) or mem-search skill.`]}function Fq(t){return`# $CMEM ${t} ${Rq()} + `).all(...e,r.sessionCount+rI)}function S_e(t){return t.replace(/\//g,"-")}function x_e(t){try{if(!(0,Ey.existsSync)(t))return{userMessage:"",assistantMessage:""};let e=(0,Ey.readFileSync)(t,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let r=e.split(` +`).filter(i=>i.trim()),n="";for(let i=r.length-1;i>=0;i--)try{let s=r[i];if(!s.includes('"type":"assistant"'))continue;let o=JSON.parse(s);if(o.type==="assistant"&&o.message?.content&&Array.isArray(o.message.content)){let a="";for(let c of o.message.content)c.type==="text"&&(a+=c.text);if(a=a.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),a){n=a;break}}}catch(s){_.debug("PARSER","Skipping malformed transcript line",{lineIndex:i},s);continue}return{userMessage:"",assistantMessage:n}}catch(e){return _.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:t},e),{userMessage:"",assistantMessage:""}}}function aI(t,e,r,n){if(!e.showLastMessage||t.length===0)return{userMessage:"",assistantMessage:""};let i=t.find(c=>c.memory_session_id!==r);if(!i)return{userMessage:"",assistantMessage:""};let s=i.memory_session_id,o=S_e(n),a=I9.default.join(bs,"projects",o,`${s}.jsonl`);return x_e(a)}function C9(t,e){let r=e[0]?.id;return t.map((n,i)=>{let s=i===0?null:e[i+1];return{...n,displayEpoch:s?s.created_at_epoch:n.created_at_epoch,displayTime:s?s.created_at:n.created_at,shouldShowLink:n.id!==r}})}function cI(t,e){let r=[...t.map(n=>({type:"observation",data:n})),...e.map(n=>({type:"summary",data:n}))];return r.sort((n,i)=>{let s=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch,o=i.type==="observation"?i.data.created_at_epoch:i.data.displayEpoch;return s-o}),r}function P9(t,e){return new Set(t.slice(0,e).map(r=>r.id))}var I9,Ey,uI=Oe(()=>{"use strict";I9=Pe(require("path"),1),Ey=require("fs");re();zt();df()});function A9(){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 N9(t){return[`# $CMEM ${t} ${A9()}`,""]}function M9(){return[`Legend: \u{1F3AF}session ${He.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji}${r.id}`).join(" ")}`,"Format: ID TIME TYPE TITLE","Fetch details: get_observations([IDs]) | Search: mem-search skill",""]}function D9(){return[]}function j9(){return[]}function z9(t,e){let r=[],n=[`${t.totalObservations} obs (${t.totalReadTokens.toLocaleString()}t read)`,`${t.totalDiscoveryTokens.toLocaleString()}t work`];return t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)&&(e.showSavingsPercent?n.push(`${t.savingsPercent}% savings`):e.showSavingsAmount&&n.push(`${t.savings.toLocaleString()}t saved`)),r.push(`Stats: ${n.join(" | ")}`),r.push(""),r}function L9(t){return[`### ${t}`]}function U9(t){return t.toLowerCase().replace(" am","a").replace(" pm","p")}function F9(t,e,r){let n=t.title||"Untitled",i=He.getInstance().getTypeIcon(t.type),s=e?U9(e):'"';return`${t.id} ${s} ${i} ${n}`}function q9(t,e,r,n){let i=[],s=t.title||"Untitled",o=He.getInstance().getTypeIcon(t.type),a=e?U9(e):'"',{readTokens:c,discoveryDisplay:u}=pf(t,n);i.push(`**${t.id}** ${a} ${o} **${s}**`),r&&i.push(r);let l=[];return n.showReadTokens&&l.push(`~${c}t`),n.showWorkTokens&&l.push(u),l.length>0&&i.push(l.join(" ")),i.push(""),i}function H9(t,e){return[`S${t.id} ${t.request||"Session started"} (${e})`]}function ff(t,e){return e?[`**${t}**: ${e}`,""]:[]}function Z9(t){return t.assistantMessage?["","---","","**Previously**","",`A: ${t.assistantMessage}`,""]:[]}function B9(t,e){return["",`Access ${Math.round(t/1e3)}k tokens of past work via get_observations([IDs]) or mem-search skill.`]}function G9(t){return`# $CMEM ${t} ${A9()} -No previous sessions found.`}var ru=Oe(()=>{"use strict";Br();Wo()});function Hq(){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 Zq(t){return["",`${Y.bright}${Y.cyan}[${t}] recent context, ${Hq()}${Y.reset}`,`${Y.gray}${"\u2500".repeat(60)}${Y.reset}`,""]}function Bq(){let e=He.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ");return[`${Y.dim}Legend: session-request | ${e}${Y.reset}`,""]}function Vq(){return[`${Y.bright}Column Key${Y.reset}`,`${Y.dim} Read: Tokens to read this observation (cost to learn it now)${Y.reset}`,`${Y.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${Y.reset}`,""]}function Gq(){return[`${Y.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${Y.reset}`,"",`${Y.dim}When you need implementation details, rationale, or debugging context:${Y.reset}`,`${Y.dim} - Fetch by ID: get_observations([IDs]) for observations visible in this index${Y.reset}`,`${Y.dim} - Search history: Use the mem-search skill for past decisions, bugs, and deeper research${Y.reset}`,`${Y.dim} - Trust this index over re-reading code for past decisions and learnings${Y.reset}`,""]}function Wq(t,e){let r=[];if(r.push(`${Y.bright}${Y.cyan}Context Economics${Y.reset}`),r.push(`${Y.dim} Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)${Y.reset}`),r.push(`${Y.dim} Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${Y.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(`${Y.green}${n}${Y.reset}`)}return r.push(""),r}function Kq(t){return[`${Y.bright}${Y.cyan}${t}${Y.reset}`,""]}function Jq(t){return[`${Y.dim}${t}${Y.reset}`]}function Xq(t,e,r,n){let i=t.title||"Untitled",s=He.getInstance().getTypeIcon(t.type),{readTokens:o,discoveryTokens:a,workEmoji:c}=bp(t,n),u=r?`${Y.dim}${e}${Y.reset}`:" ".repeat(e.length),l=n.showReadTokens&&o>0?`${Y.dim}(~${o}t)${Y.reset}`:"",d=n.showWorkTokens&&a>0?`${Y.dim}(${c} ${a.toLocaleString()}t)${Y.reset}`:"";return` ${Y.dim}#${t.id}${Y.reset} ${u} ${s} ${i} ${l} ${d}`}function Yq(t,e,r,n,i){let s=[],o=t.title||"Untitled",a=He.getInstance().getTypeIcon(t.type),{readTokens:c,discoveryTokens:u,workEmoji:l}=bp(t,i),d=r?`${Y.dim}${e}${Y.reset}`:" ".repeat(e.length),p=i.showReadTokens&&c>0?`${Y.dim}(~${c}t)${Y.reset}`:"",m=i.showWorkTokens&&u>0?`${Y.dim}(${l} ${u.toLocaleString()}t)${Y.reset}`:"";return s.push(` ${Y.dim}#${t.id}${Y.reset} ${d} ${a} ${Y.bright}${o}${Y.reset}`),n&&s.push(` ${Y.dim}${n}${Y.reset}`),(p||m)&&s.push(` ${p} ${m}`),s.push(""),s}function Qq(t,e){let r=`${t.request||"Session started"} (${e})`;return[`${Y.yellow}#S${t.id}${Y.reset} ${r}`,""]}function Sp(t,e,r){return e?[`${r}${t}:${Y.reset} ${e}`,""]:[]}function e9(t){return t.assistantMessage?["","---","",`${Y.bright}${Y.magenta}Previously${Y.reset}`,"",`${Y.dim}A: ${t.assistantMessage}${Y.reset}`,""]:[]}function t9(t,e){let r=Math.round(t/1e3);return["",`${Y.dim}Access ${r}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the claude-mem skill to access memories by ID.${Y.reset}`]}function r9(t){return` -${Y.bright}${Y.cyan}[${t}] recent context, ${Hq()}${Y.reset} +No previous sessions found.`}var zu=Oe(()=>{"use strict";Qr();$a()});function W9(){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 V9(t){return["",`${Y.bright}${Y.cyan}[${t}] recent context, ${W9()}${Y.reset}`,`${Y.gray}${"\u2500".repeat(60)}${Y.reset}`,""]}function K9(){let e=He.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ");return[`${Y.dim}Legend: session-request | ${e}${Y.reset}`,""]}function J9(){return[`${Y.bright}Column Key${Y.reset}`,`${Y.dim} Read: Tokens to read this observation (cost to learn it now)${Y.reset}`,`${Y.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${Y.reset}`,""]}function X9(){return[`${Y.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${Y.reset}`,"",`${Y.dim}When you need implementation details, rationale, or debugging context:${Y.reset}`,`${Y.dim} - Fetch by ID: get_observations([IDs]) for observations visible in this index${Y.reset}`,`${Y.dim} - Search history: Use the mem-search skill for past decisions, bugs, and deeper research${Y.reset}`,`${Y.dim} - Trust this index over re-reading code for past decisions and learnings${Y.reset}`,""]}function Y9(t,e){let r=[];if(r.push(`${Y.bright}${Y.cyan}Context Economics${Y.reset}`),r.push(`${Y.dim} Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)${Y.reset}`),r.push(`${Y.dim} Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${Y.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(`${Y.green}${n}${Y.reset}`)}return r.push(""),r}function Q9(t){return[`${Y.bright}${Y.cyan}${t}${Y.reset}`,""]}function e8(t){return[`${Y.dim}${t}${Y.reset}`]}function t8(t,e,r,n){let i=t.title||"Untitled",s=He.getInstance().getTypeIcon(t.type),{readTokens:o,discoveryTokens:a,workEmoji:c}=pf(t,n),u=r?`${Y.dim}${e}${Y.reset}`:" ".repeat(e.length),l=n.showReadTokens&&o>0?`${Y.dim}(~${o}t)${Y.reset}`:"",d=n.showWorkTokens&&a>0?`${Y.dim}(${c} ${a.toLocaleString()}t)${Y.reset}`:"";return` ${Y.dim}#${t.id}${Y.reset} ${u} ${s} ${i} ${l} ${d}`}function r8(t,e,r,n,i){let s=[],o=t.title||"Untitled",a=He.getInstance().getTypeIcon(t.type),{readTokens:c,discoveryTokens:u,workEmoji:l}=pf(t,i),d=r?`${Y.dim}${e}${Y.reset}`:" ".repeat(e.length),p=i.showReadTokens&&c>0?`${Y.dim}(~${c}t)${Y.reset}`:"",f=i.showWorkTokens&&u>0?`${Y.dim}(${l} ${u.toLocaleString()}t)${Y.reset}`:"";return s.push(` ${Y.dim}#${t.id}${Y.reset} ${d} ${a} ${Y.bright}${o}${Y.reset}`),n&&s.push(` ${Y.dim}${n}${Y.reset}`),(p||f)&&s.push(` ${p} ${f}`),s.push(""),s}function n8(t,e){let r=`${t.request||"Session started"} (${e})`;return[`${Y.yellow}#S${t.id}${Y.reset} ${r}`,""]}function mf(t,e,r){return e?[`${r}${t}:${Y.reset} ${e}`,""]:[]}function i8(t){return t.assistantMessage?["","---","",`${Y.bright}${Y.magenta}Previously${Y.reset}`,"",`${Y.dim}A: ${t.assistantMessage}${Y.reset}`,""]:[]}function s8(t,e){let r=Math.round(t/1e3);return["",`${Y.dim}Access ${r}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the claude-mem skill to access memories by ID.${Y.reset}`]}function o8(t){return` +${Y.bright}${Y.cyan}[${t}] recent context, ${W9()}${Y.reset} ${Y.gray}${"\u2500".repeat(60)}${Y.reset} ${Y.dim}No previous sessions found for this project yet.${Y.reset} -`}var nu=Oe(()=>{"use strict";_p();Br();Wo()});function n9(t,e,r,n){let i=[];return n?i.push(...Zq(t)):i.push(...Oq(t)),n?i.push(...Bq()):i.push(...Pq()),n?i.push(...Vq()):i.push(...Cq()),n?i.push(...Gq()):i.push(...Aq()),cv(r)&&(n?i.push(...Wq(e,r)):i.push(...Nq(e,r))),i}var i9=Oe(()=>{"use strict";Wo();ru();nu()});function oge(t){let e=new Map;for(let n of t){let i=n.type==="observation"?n.data.created_at:n.data.displayTime,s=ns(i);e.has(s)||e.set(s,[]),e.get(s).push(n)}let r=Array.from(e.entries()).sort((n,i)=>{let s=new Date(n[0]).getTime(),o=new Date(i[0]).getTime();return s-o});return new Map(r)}function s9(t,e){return e.fullObservationField==="narrative"?t.narrative:t.facts?pg(t.facts).join(` -`):null}function age(t,e,r,n){let i=[];i.push(...Mq(t));let s="";for(let o of e)if(o.type==="summary"){s="";let a=o.data,c=_n(a.displayTime);i.push(...Lq(a,c))}else{let a=o.data,c=lr(a.created_at),l=c!==s?c:"";if(s=c,r.has(a.id)){let p=s9(a,n);i.push(...zq(a,l,p,n))}else i.push(jq(a,l,n))}return i}function cge(t,e,r,n,i){let s=[];s.push(...Kq(t));let o=null,a="";for(let c of e)if(c.type==="summary"){o=null,a="";let u=c.data,l=_n(u.displayTime);s.push(...Qq(u,l))}else{let u=c.data,l=ei(u.files_modified,i,u.files_read),d=lr(u.created_at),p=d!==a;a=d;let m=r.has(u.id);if(l!==o&&(s.push(...Jq(l)),o=l),m){let f=s9(u,n);s.push(...Yq(u,d,p,f,n))}else s.push(Xq(u,d,p,n))}return s.push(""),s}function uge(t,e,r,n,i,s){return s?cge(t,e,r,n,i):age(t,e,r,n)}function o9(t,e,r,n,i){let s=[],o=oge(t);for(let[a,c]of o)s.push(...uge(a,c,e,r,n,i));return s}var a9=Oe(()=>{"use strict";zo();ru();nu()});function c9(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 u9(t,e){let r=[];return e?(r.push(...Sp("Investigated",t.investigated,Y.blue)),r.push(...Sp("Learned",t.learned,Y.yellow)),r.push(...Sp("Completed",t.completed,Y.green)),r.push(...Sp("Next Steps",t.next_steps,Y.magenta))):(r.push(...xp("Investigated",t.investigated)),r.push(...xp("Learned",t.learned)),r.push(...xp("Completed",t.completed)),r.push(...xp("Next Steps",t.next_steps))),r}var l9=Oe(()=>{"use strict";_p();ru();nu()});function d9(t,e){return e?e9(t):Uq(t)}function p9(t,e,r){return!cv(e)||t.totalDiscoveryTokens<=0||t.savings<=0?[]:r?t9(t.totalDiscoveryTokens,t.totalReadTokens):qq(t.totalDiscoveryTokens,t.totalReadTokens)}var m9=Oe(()=>{"use strict";Wo();ru();nu()});function dge(){try{return new Yi}catch(t){if(t.code==="ERR_DLOPEN_FAILED"){try{(0,g9.unlinkSync)(lge)}catch(e){y.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return y.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw t}}function pge(t,e){return e?r9(t):Fq(t)}function mge(t,e,r,n,i,s,o){let a=[],c=p$(e);a.push(...n9(t,c,n,o));let u=r.slice(0,n.sessionCount),l=Tq(u,r),d=g$(e,l),p=Iq(e,n.fullObservationCount);a.push(...o9(d,p,n,i,o));let m=r[0],f=e[0];c9(n,m,f)&&a.push(...u9(m,o));let g=h$(e,n,s,i);return a.push(...d9(g,o)),a.push(...p9(c,n,o)),a.join(` -`).trimEnd()}async function y$(t,e=!1){let r=c$(),n=t?.cwd??process.cwd(),i=vp(n),s=t?.projects||[i];t?.full&&(r.totalObservationCount=999999,r.sessionCount=999999);let o=dge();if(!o)return"";try{let a=s.length>1?kq(o,s,r):m$(o,i,r),c=s.length>1?$q(o,s,r):f$(o,i,r);return a.length===0&&c.length===0?pge(i,e):mge(i,a,c,r,n,t?.session_id,e)}finally{o.close()}}var f9,h9,g9,lge,v9=Oe(()=>{"use strict";f9=Ue(require("path"),1),h9=require("os"),g9=require("fs");Zf();oe();yp();u$();Wo();v$();i9();a9();l9();m9();ru();nu();lge=f9.default.join((0,h9.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version")});var y9=Oe(()=>{"use strict";v9();u$();Wo();v$()});var _$={};ln(_$,{generateContext:()=>y$});var b$=Oe(()=>{"use strict";y9()});function gge(){try{let t=process.stdin;return t.isTTY?!1:(t.readable,!0)}catch{return!1}}function vge(t){let e=t.trim();if(!e)return{success:!1};try{return{success:!0,value:JSON.parse(e)}}catch{return{success:!1}}}async function w9(){if(gge())return new Promise((t,e)=>{let r="",n=!1,i=null,s=()=>{try{process.stdin.removeAllListeners("data"),process.stdin.removeAllListeners("end"),process.stdin.removeAllListeners("error")}catch{}},o=l=>{n||(n=!0,i&&clearTimeout(i),clearTimeout(u),s(),t(l))},a=l=>{n||(n=!0,i&&clearTimeout(i),clearTimeout(u),s(),e(l))},c=()=>{let l=vge(r);return l.success?(o(l.value),!0):!1},u=setTimeout(()=>{n||c()||(r.trim()?a(new Error(`Incomplete JSON after ${S9}ms: ${r.slice(0,100)}...`)):o(void 0))},S9);try{process.stdin.on("data",l=>{r+=l,i&&(clearTimeout(i),i=null),!c()&&(i=setTimeout(()=>{c()},yge))}),process.stdin.on("end",()=>{n||c()||o((r.trim(),void 0))}),process.stdin.on("error",()=>{n||o(void 0)})}catch{n=!0,clearTimeout(u),s(),t(void 0)}})}var S9,yge,E9=Oe(()=>{"use strict";S9=3e4,yge=50});var k9,$9=Oe(()=>{"use strict";k9={normalizeInput(t){let e=t??{};return{sessionId:e.session_id??e.id??e.sessionId,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){let e=t??{};if(e.hookSpecificOutput){let n={hookSpecificOutput:t.hookSpecificOutput};return e.systemMessage&&(n.systemMessage=e.systemMessage),n}let r={};return e.systemMessage&&(r.systemMessage=e.systemMessage),r}}});var T9,I9=Oe(()=>{"use strict";T9={normalizeInput(t){let e=t??{},r=!!e.command&&!e.tool_name;return{sessionId:e.conversation_id||e.generation_id||e.id,cwd:e.workspace_roots?.[0]??e.cwd??process.cwd(),prompt:e.prompt??e.query??e.input??e.message,toolName:r?"Bash":e.tool_name,toolInput:r?{command:e.command}:e.tool_input,toolResponse:r?{output:e.output}:e.result_json,transcriptPath:void 0,filePath:e.file_path,edits:e.edits}},formatOutput(t){return{continue:t.continue??!0}}}});var R9,O9=Oe(()=>{"use strict";R9={normalizeInput(t){let e=t??{},r=e.cwd??process.env.GEMINI_CWD??process.env.GEMINI_PROJECT_DIR??process.env.CLAUDE_PROJECT_DIR??process.cwd(),n=e.session_id??process.env.GEMINI_SESSION_ID??void 0,i=e.hook_event_name,s=e.tool_name,o=e.tool_input,a=e.tool_response;i==="AfterAgent"&&e.prompt_response&&(s=s??"GeminiAgent",o=o??{prompt:e.prompt},a=a??{response:e.prompt_response}),i==="BeforeTool"&&s&&!a&&(a={_preExecution:!0}),i==="Notification"&&(s=s??"GeminiNotification",o=o??{notification_type:e.notification_type,message:e.message},a=a??{details:e.details});let c={};return e.source&&(c.source=e.source),e.reason&&(c.reason=e.reason),e.trigger&&(c.trigger=e.trigger),e.mcp_context&&(c.mcp_context=e.mcp_context),e.notification_type&&(c.notification_type=e.notification_type),e.stop_hook_active!==void 0&&(c.stop_hook_active=e.stop_hook_active),e.original_request_name&&(c.original_request_name=e.original_request_name),i&&(c.hook_event_name=i),{sessionId:n,cwd:r,prompt:e.prompt,toolName:s,toolInput:o,toolResponse:a,transcriptPath:e.transcript_path,metadata:Object.keys(c).length>0?c:void 0}},formatOutput(t){let e={};if(e.continue=t.continue??!0,t.suppressOutput!==void 0&&(e.suppressOutput=t.suppressOutput),t.systemMessage){let r=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;e.systemMessage=t.systemMessage.replace(r,"")}return t.hookSpecificOutput&&(e.hookSpecificOutput={additionalContext:t.hookSpecificOutput.additionalContext}),e}}});var k$,P9=Oe(()=>{"use strict";k$={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 C9(t){switch(t){case"claude-code":return k9;case"cursor":return T9;case"gemini":case"gemini-cli":return R9;case"raw":return k$;default:return k$}}var A9=Oe(()=>{"use strict";$9();I9();O9();P9()});var $$,T$=Oe(()=>{"use strict";Or();yp();en();oe();Yt();Nt();$$={async execute(t){if(!await Rr())return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""},exitCode:Qe.SUCCESS};let r=t.cwd??process.cwd(),n=av(r),i=Fr(),o=_e.loadFromFile(At).CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT==="true",a=n.allProjects.join(","),c=`/api/context/inject?projects=${encodeURIComponent(a)}`,u=`${c}&colors=true`;try{let[l,d]=await Promise.all([wt(c),o?wt(u).catch(()=>null):Promise.resolve(null)]);if(!l.ok)return y.warn("HOOK","Context generation failed, returning empty",{status:l.status}),{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""},exitCode:Qe.SUCCESS};let[p,m]=await Promise.all([l.text(),d?.ok?d.text():Promise.resolve("")]),f=p.trim(),g=m.trim(),h=t.platform,v=g||(h==="gemini-cli"||h==="gemini"?f:""),x=o&&v?`${v} +`}var Lu=Oe(()=>{"use strict";df();Qr();$a()});function a8(t,e,r,n){let i=[];return n?i.push(...V9(t)):i.push(...N9(t)),n?i.push(...K9()):i.push(...M9()),n?i.push(...J9()):i.push(...D9()),n?i.push(...X9()):i.push(...j9()),wy(r)&&(n?i.push(...Y9(e,r)):i.push(...z9(e,r))),i}var c8=Oe(()=>{"use strict";$a();zu();Lu()});function w_e(t){let e=new Map;for(let n of t){let i=n.type==="observation"?n.data.created_at:n.data.displayTime,s=Rs(i);e.has(s)||e.set(s,[]),e.get(s).push(n)}let r=Array.from(e.entries()).sort((n,i)=>{let s=new Date(n[0]).getTime(),o=new Date(i[0]).getTime();return s-o});return new Map(r)}function u8(t,e){return e.fullObservationField==="narrative"?t.narrative:t.facts?Iv(t.facts).join(` +`):null}function E_e(t,e,r,n){let i=[];i.push(...L9(t));let s="";for(let o of e)if(o.type==="summary"){s="";let a=o.data,c=Rn(a.displayTime);i.push(...H9(a,c))}else{let a=o.data,c=pr(a.created_at),l=c!==s?c:"";if(s=c,r.has(a.id)){let p=u8(a,n);i.push(...q9(a,l,p,n))}else i.push(F9(a,l,n))}return i}function k_e(t,e,r,n,i){let s=[];s.push(...Q9(t));let o=null,a="";for(let c of e)if(c.type==="summary"){o=null,a="";let u=c.data,l=Rn(u.displayTime);s.push(...n8(u,l))}else{let u=c.data,l=vi(u.files_modified,i,u.files_read),d=pr(u.created_at),p=d!==a;a=d;let f=r.has(u.id);if(l!==o&&(s.push(...e8(l)),o=l),f){let m=u8(u,n);s.push(...r8(u,d,p,m,n))}else s.push(t8(u,d,p,n))}return s.push(""),s}function T_e(t,e,r,n,i,s){return s?k_e(t,e,r,n,i):E_e(t,e,r,n)}function l8(t,e,r,n,i){let s=[],o=w_e(t);for(let[a,c]of o)s.push(...T_e(a,c,e,r,n,i));return s}var d8=Oe(()=>{"use strict";ga();zu();Lu()});function p8(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 f8(t,e){let r=[];return e?(r.push(...mf("Investigated",t.investigated,Y.blue)),r.push(...mf("Learned",t.learned,Y.yellow)),r.push(...mf("Completed",t.completed,Y.green)),r.push(...mf("Next Steps",t.next_steps,Y.magenta))):(r.push(...ff("Investigated",t.investigated)),r.push(...ff("Learned",t.learned)),r.push(...ff("Completed",t.completed)),r.push(...ff("Next Steps",t.next_steps))),r}var m8=Oe(()=>{"use strict";df();zu();Lu()});function h8(t,e){return e?i8(t):Z9(t)}function g8(t,e,r){return!wy(e)||t.totalDiscoveryTokens<=0||t.savings<=0?[]:r?s8(t.totalDiscoveryTokens,t.totalReadTokens):B9(t.totalDiscoveryTokens,t.totalReadTokens)}var v8=Oe(()=>{"use strict";$a();zu();Lu()});function I_e(){try{return new Es}catch(t){if(t.code==="ERR_DLOPEN_FAILED"){try{(0,b8.unlinkSync)($_e)}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 R_e(t,e){return e?o8(t):G9(t)}function O_e(t,e,r,n,i,s,o){let a=[],c=iI(e);a.push(...a8(t,c,n,o));let u=r.slice(0,n.sessionCount),l=C9(u,r),d=cI(e,l),p=P9(e,n.fullObservationCount);a.push(...l8(d,p,n,i,o));let f=r[0],m=e[0];p8(n,f,m)&&a.push(...f8(f,o));let h=aI(e,n,s,i);return a.push(...h8(h,o)),a.push(...g8(c,n,o)),a.join(` +`).trimEnd()}async function lI(t,e=!1){let r=eI(),n=t?.cwd??process.cwd(),i=Ta(n),s=t?.projects||[i];t?.full&&(r.totalObservationCount=999999,r.sessionCount=999999);let o=I_e();if(!o)return"";try{let a=s.length>1?R9(o,s,r):sI(o,i,r),c=s.length>1?O9(o,s,r):oI(o,i,r);return a.length===0&&c.length===0?R_e(i,e):O_e(i,a,c,r,n,t?.session_id,e)}finally{o.close()}}var y8,_8,b8,$_e,S8=Oe(()=>{"use strict";y8=Pe(require("path"),1),_8=require("os"),b8=require("fs");ng();re();lf();tI();$a();uI();c8();d8();m8();v8();zu();Lu();$_e=y8.default.join((0,_8.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version")});var x8=Oe(()=>{"use strict";S8();tI();$a();uI()});var dI={};_n(dI,{generateContext:()=>lI});var pI=Oe(()=>{"use strict";x8()});function sSe(t){let e=t.startsWith("~")?(0,x5.homedir)()+t.slice(1):t;e=e.replace(/\\/g,"/");let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&");return r=r.replace(/\*\*/g,"<<>>").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]").replace(/<<>>/g,".*"),new RegExp(`^${r}$`)}function t_(t,e){if(!e||!e.trim())return!1;let r=t.replace(/\\/g,"/"),n=e.split(",").map(i=>i.trim()).filter(Boolean);for(let i of n)try{if(sSe(i).test(r))return!0}catch{continue}return!1}var x5,jI=Oe(()=>{"use strict";x5=require("os")});var Af,r_=Oe(()=>{"use strict";Dr();lf();re();Tn();jI();rr();zt();Af={async execute(t){if(!await kr())return{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};let{sessionId:r,cwd:n,prompt:i}=t;if(!r)return _.warn("HOOK","session-init: No sessionId provided, skipping (Codex CLI or unknown platform)"),{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};let s=Se.loadFromFile(jt);if(n&&t_(n,s.CLAUDE_MEM_EXCLUDED_PROJECTS))return _.info("HOOK","Project excluded from tracking",{cwd:n}),{continue:!0,suppressOutput:!0};let o=!i||!i.trim()?"[media prompt]":i,a=Ta(n);_.debug("HOOK","session-init: Calling /api/sessions/init",{contentSessionId:r,project:a});let c=await dt("/api/sessions/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,project:a,prompt:o})});if(!c.ok)return _.failure("HOOK",`Session initialization failed: ${c.status}`,{contentSessionId:r,project:a}),{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};let u=await c.json(),l=u.sessionDbId,d=u.promptNumber;if(_.debug("HOOK","session-init: Received from /api/sessions/init",{sessionDbId:l,promptNumber:d,skipped:u.skipped,contextInjected:u.contextInjected}),_.debug("HOOK",`[ALIGNMENT] Hook Entry | contentSessionId=${r} | prompt#=${d} | sessionDbId=${l}`),u.skipped&&u.reason==="private")return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${d} | skipped=true | reason=private`,{sessionId:l}),{continue:!0,suppressOutput:!0};let p=!!u.contextInjected;if(p&&_.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${d} | skipped_agent_init=true | reason=context_already_injected`,{sessionId:l}),!p&&t.platform!=="cursor"&&l){let h=o.startsWith("/")?o.substring(1):o;_.debug("HOOK","session-init: Calling /sessions/{sessionDbId}/init",{sessionDbId:l,promptNumber:d});let g=await dt(`/sessions/${l}/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userPrompt:h,promptNumber:d})});g.ok||_.failure("HOOK",`SDK agent start failed: ${g.status}`,{sessionDbId:l,promptNumber:d})}else!p&&t.platform==="cursor"&&_.debug("HOOK","session-init: Skipping SDK agent init for Cursor platform",{sessionDbId:l,promptNumber:d});let f=String(s.CLAUDE_MEM_SEMANTIC_INJECT).toLowerCase()==="true",m="";if(f&&o&&o.length>=20&&o!=="[media prompt]")try{let h=s.CLAUDE_MEM_SEMANTIC_INJECT_LIMIT||"5",g=await dt("/api/context/semantic",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({q:o,project:a,limit:h})});if(g.ok){let v=await g.json();v.context&&(m=v.context,_.debug("HOOK",`Semantic injection: ${v.count} observations for prompt`,{sessionId:l,count:v.count}))}}catch(h){_.debug("HOOK","Semantic injection unavailable",{error:h instanceof Error?h.message:String(h)})}return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${d} | project=${a}`,{sessionId:l}),m?{continue:!0,suppressOutput:!0,hookSpecificOutput:{hookEventName:"UserPromptSubmit",additionalContext:m}}:{continue:!0,suppressOutput:!0}}}});var Nf,n_=Oe(()=>{"use strict";Dr();re();Tn();jI();rr();zt();Nf={async execute(t){if(!await kr())return{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};let{sessionId:r,cwd:n,toolName:i,toolInput:s,toolResponse:o}=t;if(!i)return{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};let a=_.formatTool(i,s);if(_.dataIn("HOOK",`PostToolUse: ${a}`,{}),!n)throw new Error(`Missing cwd in PostToolUse hook input for session ${r}, tool ${i}`);let c=Se.loadFromFile(jt);if(t_(n,c.CLAUDE_MEM_EXCLUDED_PROJECTS))return _.debug("HOOK","Project excluded from tracking, skipping observation",{cwd:n,toolName:i}),{continue:!0,suppressOutput:!0};try{let u=await dt("/api/sessions/observations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,tool_name:i,tool_input:s,tool_response:o,cwd:n})});if(!u.ok)return _.warn("HOOK","Observation storage failed, skipping",{status:u.status,toolName:i}),{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};_.debug("HOOK","Observation sent successfully",{toolName:i})}catch(u){return _.warn("HOOK","Observation fetch error, skipping",{error:u instanceof Error?u.message:String(u)}),{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS}}return{continue:!0,suppressOutput:!0}}}});var Mf,i_=Oe(()=>{"use strict";Dr();re();Tn();Mf={async execute(t){if(!await kr())return{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};let{sessionId:r,cwd:n,filePath:i,edits:s}=t;if(!i)throw new Error("fileEditHandler requires filePath");if(_.dataIn("HOOK",`FileEdit: ${i}`,{editCount:s?.length??0}),!n)throw new Error(`Missing cwd in FileEdit hook input for session ${r}, file ${i}`);try{let o=await dt("/api/sessions/observations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,tool_name:"write_file",tool_input:{filePath:i,edits:s},tool_response:{success:!0},cwd:n})});if(!o.ok)return _.warn("HOOK","File edit observation storage failed, skipping",{status:o.status,filePath:i}),{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};_.debug("HOOK","File edit observation sent successfully",{filePath:i})}catch(o){return _.warn("HOOK","File edit observation fetch error, skipping",{error:o instanceof Error?o.message:String(o)}),{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS}}return{continue:!0,suppressOutput:!0}}}});var Df,s_=Oe(()=>{"use strict";Dr();re();Df={async execute(t){if(!await kr())return{continue:!0,suppressOutput:!0};let{sessionId:r}=t;if(!r)return _.warn("HOOK","session-complete: Missing sessionId, skipping"),{continue:!0,suppressOutput:!0};_.info("HOOK","\u2192 session-complete: Removing session from active map",{contentSessionId:r});try{let n=await dt("/api/sessions/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r})});if(n.ok)_.info("HOOK","Session completed successfully",{contentSessionId:r});else{let i=await n.text();_.warn("HOOK","session-complete: Failed to complete session",{status:n.status,body:i})}}catch(n){_.warn("HOOK","session-complete: Error completing session",{error:n.message})}return{continue:!0,suppressOutput:!0}}}});function aSe(){try{let t=process.stdin;return t.isTTY?!1:(t.readable,!0)}catch{return!1}}function cSe(t){let e=t.trim();if(!e)return{success:!1};try{return{success:!0,value:JSON.parse(e)}}catch{return{success:!1}}}async function R5(){if(aSe())return new Promise((t,e)=>{let r="",n=!1,i=null,s=()=>{try{process.stdin.removeAllListeners("data"),process.stdin.removeAllListeners("end"),process.stdin.removeAllListeners("error")}catch{}},o=l=>{n||(n=!0,i&&clearTimeout(i),clearTimeout(u),s(),t(l))},a=l=>{n||(n=!0,i&&clearTimeout(i),clearTimeout(u),s(),e(l))},c=()=>{let l=cSe(r);return l.success?(o(l.value),!0):!1},u=setTimeout(()=>{n||c()||(r.trim()?a(new Error(`Incomplete JSON after ${I5}ms: ${r.slice(0,100)}...`)):o(void 0))},I5);try{process.stdin.on("data",l=>{r+=l,i&&(clearTimeout(i),i=null),!c()&&(i=setTimeout(()=>{c()},uSe))}),process.stdin.on("end",()=>{n||c()||o((r.trim(),void 0))}),process.stdin.on("error",()=>{n||o(void 0)})}catch{n=!0,clearTimeout(u),s(),t(void 0)}})}var I5,uSe,O5=Oe(()=>{"use strict";I5=3e4,uSe=50});var C5,P5=Oe(()=>{"use strict";C5={normalizeInput(t){let e=t??{};return{sessionId:e.session_id??e.id??e.sessionId,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){let e=t??{};if(e.hookSpecificOutput){let n={hookSpecificOutput:t.hookSpecificOutput};return e.systemMessage&&(n.systemMessage=e.systemMessage),n}let r={};return e.systemMessage&&(r.systemMessage=e.systemMessage),r}}});var A5,N5=Oe(()=>{"use strict";A5={normalizeInput(t){let e=t??{},r=!!e.command&&!e.tool_name;return{sessionId:e.conversation_id||e.generation_id||e.id,cwd:e.workspace_roots?.[0]??e.cwd??process.cwd(),prompt:e.prompt??e.query??e.input??e.message,toolName:r?"Bash":e.tool_name,toolInput:r?{command:e.command}:e.tool_input,toolResponse:r?{output:e.output}:e.result_json,transcriptPath:void 0,filePath:e.file_path,edits:e.edits}},formatOutput(t){return{continue:t.continue??!0}}}});var M5,D5=Oe(()=>{"use strict";M5={normalizeInput(t){let e=t??{},r=e.cwd??process.env.GEMINI_CWD??process.env.GEMINI_PROJECT_DIR??process.env.CLAUDE_PROJECT_DIR??process.cwd(),n=e.session_id??process.env.GEMINI_SESSION_ID??void 0,i=e.hook_event_name,s=e.tool_name,o=e.tool_input,a=e.tool_response;i==="AfterAgent"&&e.prompt_response&&(s=s??"GeminiAgent",o=o??{prompt:e.prompt},a=a??{response:e.prompt_response}),i==="BeforeTool"&&s&&!a&&(a={_preExecution:!0}),i==="Notification"&&(s=s??"GeminiNotification",o=o??{notification_type:e.notification_type,message:e.message},a=a??{details:e.details});let c={};return e.source&&(c.source=e.source),e.reason&&(c.reason=e.reason),e.trigger&&(c.trigger=e.trigger),e.mcp_context&&(c.mcp_context=e.mcp_context),e.notification_type&&(c.notification_type=e.notification_type),e.stop_hook_active!==void 0&&(c.stop_hook_active=e.stop_hook_active),e.original_request_name&&(c.original_request_name=e.original_request_name),i&&(c.hook_event_name=i),{sessionId:n,cwd:r,prompt:e.prompt,toolName:s,toolInput:o,toolResponse:a,transcriptPath:e.transcript_path,metadata:Object.keys(c).length>0?c:void 0}},formatOutput(t){let e={};if(e.continue=t.continue??!0,t.suppressOutput!==void 0&&(e.suppressOutput=t.suppressOutput),t.systemMessage){let r=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;e.systemMessage=t.systemMessage.replace(r,"")}return t.hookSpecificOutput&&(e.hookSpecificOutput={additionalContext:t.hookSpecificOutput.additionalContext}),e}}});var UI,j5=Oe(()=>{"use strict";UI={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}}});var z5,L5=Oe(()=>{"use strict";z5={normalizeInput(t){let e=t??{},r=e.tool_info??{},n=e.agent_action_name??"",i={sessionId:e.trajectory_id??e.execution_id,cwd:r.cwd??process.cwd(),platform:"windsurf"};switch(n){case"pre_user_prompt":return{...i,prompt:r.user_prompt};case"post_write_code":return{...i,toolName:"Write",filePath:r.file_path,edits:r.edits,toolInput:{file_path:r.file_path,edits:r.edits}};case"post_run_command":return{...i,cwd:r.cwd??i.cwd,toolName:"Bash",toolInput:{command:r.command_line}};case"post_mcp_tool_use":return{...i,toolName:r.mcp_tool_name??"mcp_tool",toolInput:r.mcp_tool_arguments,toolResponse:r.mcp_result};case"post_cascade_response":return{...i,toolName:"cascade_response",toolResponse:r.response};default:return i}},formatOutput(t){return{continue:t.continue??!0}}}});function U5(t){switch(t){case"claude-code":return C5;case"cursor":return A5;case"gemini":case"gemini-cli":return M5;case"windsurf":return z5;case"raw":return UI;default:return UI}}var F5=Oe(()=>{"use strict";P5();N5();D5();j5();L5()});var FI,qI=Oe(()=>{"use strict";Dr();lf();Tn();re();rr();zt();FI={async execute(t){if(!await kr())return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""},exitCode:rt.SUCCESS};let r=t.cwd??process.cwd(),n=xy(r),i=Jr(),o=Se.loadFromFile(jt).CLAUDE_MEM_CONTEXT_SHOW_TERMINAL_OUTPUT==="true",a=n.allProjects.join(","),c=`/api/context/inject?projects=${encodeURIComponent(a)}`,u=t.platform==="claude-code"?`${c}&colors=true`:c;try{let[l,d]=await Promise.all([dt(c),o?dt(u).catch(()=>null):Promise.resolve(null)]);if(!l.ok)return _.warn("HOOK","Context generation failed, returning empty",{status:l.status}),{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""},exitCode:rt.SUCCESS};let[p,f]=await Promise.all([l.text(),d?.ok?d.text():Promise.resolve("")]),m=p.trim(),h=f.trim(),g=t.platform,v=h||(g==="gemini-cli"||g==="gemini"?m:""),S=o&&v?`${v} -View Observations Live @ http://localhost:${i}`:void 0;return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:f},systemMessage:x}}catch(l){return y.warn("HOOK","Context fetch error, returning empty",{error:l instanceof Error?l.message:String(l)}),{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""},exitCode:Qe.SUCCESS}}}}});function _ge(t){let e=t.startsWith("~")?(0,N9.homedir)()+t.slice(1):t;e=e.replace(/\\/g,"/");let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&");return r=r.replace(/\*\*/g,"<<>>").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]").replace(/<<>>/g,".*"),new RegExp(`^${r}$`)}function iu(t,e){if(!e||!e.trim())return!1;let r=t.replace(/\\/g,"/"),n=e.split(",").map(i=>i.trim()).filter(Boolean);for(let i of n)try{if(_ge(i).test(r))return!0}catch{continue}return!1}var N9,_v=Oe(()=>{"use strict";N9=require("os")});var I$,R$=Oe(()=>{"use strict";Or();yp();oe();en();_v();Yt();Nt();I$={async execute(t){if(!await Rr())return{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};let{sessionId:r,cwd:n,prompt:i}=t;if(!r)return y.warn("HOOK","session-init: No sessionId provided, skipping (Codex CLI or unknown platform)"),{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};let s=_e.loadFromFile(At);if(n&&iu(n,s.CLAUDE_MEM_EXCLUDED_PROJECTS))return y.info("HOOK","Project excluded from tracking",{cwd:n}),{continue:!0,suppressOutput:!0};let o=!i||!i.trim()?"[media prompt]":i,a=vp(n);y.debug("HOOK","session-init: Calling /api/sessions/init",{contentSessionId:r,project:a});let c=await wt("/api/sessions/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,project:a,prompt:o})});if(!c.ok)return y.failure("HOOK",`Session initialization failed: ${c.status}`,{contentSessionId:r,project:a}),{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};let u=await c.json(),l=u.sessionDbId,d=u.promptNumber;if(y.debug("HOOK","session-init: Received from /api/sessions/init",{sessionDbId:l,promptNumber:d,skipped:u.skipped,contextInjected:u.contextInjected}),y.debug("HOOK",`[ALIGNMENT] Hook Entry | contentSessionId=${r} | prompt#=${d} | sessionDbId=${l}`),u.skipped&&u.reason==="private")return y.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${d} | skipped=true | reason=private`,{sessionId:l}),{continue:!0,suppressOutput:!0};if(u.contextInjected)return y.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${d} | skipped_agent_init=true | reason=context_already_injected`,{sessionId:l}),{continue:!0,suppressOutput:!0};if(t.platform!=="cursor"&&l){let p=o.startsWith("/")?o.substring(1):o;y.debug("HOOK","session-init: Calling /sessions/{sessionDbId}/init",{sessionDbId:l,promptNumber:d});let m=await wt(`/sessions/${l}/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userPrompt:p,promptNumber:d})});m.ok||y.failure("HOOK",`SDK agent start failed: ${m.status}`,{sessionDbId:l,promptNumber:d})}else t.platform==="cursor"&&y.debug("HOOK","session-init: Skipping SDK agent init for Cursor platform",{sessionDbId:l,promptNumber:d});return y.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${d} | project=${a}`,{sessionId:l}),{continue:!0,suppressOutput:!0}}}});var O$,P$=Oe(()=>{"use strict";Or();oe();en();_v();Yt();Nt();O$={async execute(t){if(!await Rr())return{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};let{sessionId:r,cwd:n,toolName:i,toolInput:s,toolResponse:o}=t;if(!i)return{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};let a=y.formatTool(i,s);if(y.dataIn("HOOK",`PostToolUse: ${a}`,{}),!n)throw new Error(`Missing cwd in PostToolUse hook input for session ${r}, tool ${i}`);let c=_e.loadFromFile(At);if(iu(n,c.CLAUDE_MEM_EXCLUDED_PROJECTS))return y.debug("HOOK","Project excluded from tracking, skipping observation",{cwd:n,toolName:i}),{continue:!0,suppressOutput:!0};try{let u=await wt("/api/sessions/observations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,tool_name:i,tool_input:s,tool_response:o,cwd:n})});if(!u.ok)return y.warn("HOOK","Observation storage failed, skipping",{status:u.status,toolName:i}),{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};y.debug("HOOK","Observation sent successfully",{toolName:i})}catch(u){return y.warn("HOOK","Observation fetch error, skipping",{error:u instanceof Error?u.message:String(u)}),{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS}}return{continue:!0,suppressOutput:!0}}}});function M9(t,e,r=!1){if(!t||!(0,bv.existsSync)(t))return y.warn("PARSER",`Transcript path missing or file does not exist: ${t}`),"";let n=(0,bv.readFileSync)(t,"utf-8").trim();if(!n)return y.warn("PARSER",`Transcript file exists but is empty: ${t}`),"";let i=n.split(` +View Observations Live @ http://localhost:${i}`:void 0;return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:m},systemMessage:S}}catch(l){return _.warn("HOOK","Context fetch error, returning empty",{error:l instanceof Error?l.message:String(l)}),{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""},exitCode:rt.SUCCESS}}}}});function q5(t,e,r=!1){if(!t||!(0,l_.existsSync)(t))return _.warn("PARSER",`Transcript path missing or file does not exist: ${t}`),"";let n=(0,l_.readFileSync)(t,"utf-8").trim();if(!n)return _.warn("PARSER",`Transcript file exists but is empty: ${t}`),"";let i=n.split(` `),s=!1;for(let o=i.length-1;o>=0;o--){let a=JSON.parse(i[o]);if(a.type===e&&(s=!0,a.message?.content)){let c="",u=a.message.content;if(typeof u=="string")c=u;else if(Array.isArray(u))c=u.filter(l=>l.type==="text").map(l=>l.text).join(` `);else throw new Error(`Unknown message content format in transcript. Type: ${typeof u}`);return r&&(c=c.replace(/[\s\S]*?<\/system-reminder>/g,""),c=c.replace(/\n{3,}/g,` -`).trim()),c}}return""}var bv,D9=Oe(()=>{"use strict";bv=require("fs");oe()});var bge,C$,A$=Oe(()=>{"use strict";Or();oe();D9();en();bge=Af(_r.DEFAULT),C$={async execute(t){if(!await Rr())return{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};let{sessionId:r,transcriptPath:n}=t;if(!n)return y.debug("HOOK",`No transcriptPath in Stop hook input for session ${r} - skipping summary`),{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};let i="";try{i=M9(n,"assistant",!0)}catch(o){return y.warn("HOOK",`Stop hook: failed to extract last assistant message for session ${r}: ${o instanceof Error?o.message:o}`),{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS}}return y.dataIn("HOOK","Stop: Requesting summary",{hasLastAssistantMessage:!!i}),(await wt("/api/sessions/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,last_assistant_message:i}),timeoutMs:bge})).ok?(y.debug("HOOK","Summary request sent successfully"),{continue:!0,suppressOutput:!0}):{continue:!0,suppressOutput:!0}}}});var j9,N$,M$=Oe(()=>{"use strict";j9=require("path");Or();en();N$={async execute(t){if(!await Rr())return{exitCode:Qe.SUCCESS};let r=Fr(),n=(0,j9.basename)(t.cwd??process.cwd());try{let i=await wt(`/api/context/inject?project=${encodeURIComponent(n)}&colors=true`);if(!i.ok)return{exitCode:Qe.SUCCESS};let s=await i.text();process.stderr.write(` +`).trim()),c}}return""}var l_,H5=Oe(()=>{"use strict";l_=require("fs");re()});var lSe,dSe,pSe,HI,ZI=Oe(()=>{"use strict";Dr();re();H5();Tn();lSe=Gh(Er.DEFAULT),dSe=500,pSe=11e4,HI={async execute(t){if(!await kr())return{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};let{sessionId:r,transcriptPath:n}=t;if(!n)return _.debug("HOOK",`No transcriptPath in Stop hook input for session ${r} - skipping summary`),{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};let i="";try{i=q5(n,"assistant",!0)}catch(a){return _.warn("HOOK",`Stop hook: failed to extract last assistant message for session ${r}: ${a instanceof Error?a.message:a}`),{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS}}if(!i||!i.trim())return _.debug("HOOK","No assistant message in transcript - skipping summary",{sessionId:r,transcriptPath:n}),{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS};if(_.dataIn("HOOK","Stop: Requesting summary",{hasLastAssistantMessage:!!i}),!(await dt("/api/sessions/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,last_assistant_message:i}),timeoutMs:lSe})).ok)return{continue:!0,suppressOutput:!0};_.debug("HOOK","Summary request queued, waiting for completion");let o=Date.now();for(;Date.now()-osetTimeout(a,dSe));try{let a=await dt(`/api/sessions/status?contentSessionId=${encodeURIComponent(r)}`,{timeoutMs:5e3});if(a.ok&&((await a.json()).queueLength??0)===0){_.info("HOOK","Summary processing complete",{waitedMs:Date.now()-o});break}}catch{}}try{await dt("/api/sessions/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r}),timeoutMs:1e4}),_.info("HOOK","Session completed in Stop hook",{contentSessionId:r})}catch(a){_.warn("HOOK",`Stop hook: session-complete failed: ${a instanceof Error?a.message:a}`)}return{continue:!0,suppressOutput:!0}}}});var Z5,BI,GI=Oe(()=>{"use strict";Z5=require("path");Dr();Tn();BI={async execute(t){if(!await kr())return{exitCode:rt.SUCCESS};let r=Jr(),n=(0,Z5.basename)(t.cwd??process.cwd()),i=t.platform==="claude-code"?"&colors=true":"";try{let s=await dt(`/api/context/inject?project=${encodeURIComponent(n)}${i}`);if(!s.ok)return{exitCode:rt.SUCCESS};let o=await s.text();process.stderr.write(` `+String.fromCodePoint(128221)+` Claude-Mem Context Loaded -`+s+` +`+o+` `+String.fromCodePoint(128161)+` Wrap any message with ... to prevent storing sensitive information. `+String.fromCodePoint(128172)+` Community https://discord.gg/J4wttp9vDu `+String.fromCodePoint(128250)+` Watch live in browser http://localhost:${r}/ -`)}catch{}return{exitCode:Qe.SUCCESS}}}});var D$,j$=Oe(()=>{"use strict";Or();oe();en();D$={async execute(t){if(!await Rr())return{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};let{sessionId:r,cwd:n,filePath:i,edits:s}=t;if(!i)throw new Error("fileEditHandler requires filePath");if(y.dataIn("HOOK",`FileEdit: ${i}`,{editCount:s?.length??0}),!n)throw new Error(`Missing cwd in FileEdit hook input for session ${r}, file ${i}`);try{let o=await wt("/api/sessions/observations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r,tool_name:"write_file",tool_input:{filePath:i,edits:s},tool_response:{success:!0},cwd:n})});if(!o.ok)return y.warn("HOOK","File edit observation storage failed, skipping",{status:o.status,filePath:i}),{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS};y.debug("HOOK","File edit observation sent successfully",{filePath:i})}catch(o){return y.warn("HOOK","File edit observation fetch error, skipping",{error:o instanceof Error?o.message:String(o)}),{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS}}return{continue:!0,suppressOutput:!0}}}});function Sge(t){return t.toLowerCase().replace(" am","a").replace(" pm","p")}function wge(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function Ege(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function kge(t,e){let r=new Map;for(let s of t){let o=Ege(s.created_at_epoch);r.has(o)||r.set(o,[]),r.get(o).push(s)}let n=Array.from(r.entries()).sort((s,o)=>{let a=s[1][0].created_at_epoch,c=o[1][0].created_at_epoch;return a-c}),i=["Read blocked: This file has prior observations. Use get_observations([IDs]) to load what you need. Re-read the file only if you need raw content not captured in observations:"];for(let[s,o]of n){i.push(`### ${s}`);for(let a of o){let c=a.title||"Untitled",u=xge[a.type]||"\u2753",l=Sge(wge(a.created_at_epoch));i.push(`${a.id} ${l} ${u} ${c}`)}}return i.join(` -`)}var z$,xge,L$,U$=Oe(()=>{"use strict";Or();oe();en();z$=Ue(require("path"),1);_v();Yt();Nt();yp();xge={decision:"\u2696\uFE0F",bugfix:"\u{1F534}",feature:"\u{1F7E3}",refactor:"\u{1F504}",discovery:"\u{1F535}",change:"\u2705"};L$={async execute(t){let r=t.toolInput?.file_path;if(!r)return{continue:!0,suppressOutput:!0};let n=_e.loadFromFile(At);if(t.cwd&&iu(t.cwd,n.CLAUDE_MEM_EXCLUDED_PROJECTS))return y.debug("HOOK","Project excluded from tracking, skipping file context",{cwd:t.cwd}),{continue:!0,suppressOutput:!0};if(!await Rr())return{continue:!0,suppressOutput:!0};try{let s=av(t.cwd),o=t.cwd||process.cwd(),a=z$.default.isAbsolute(r)?z$.default.relative(o,r):r,c=new URLSearchParams({path:a});c.set("projects",s.allProjects.join(","));let u=await wt(`/api/observations/by-file?${c.toString()}`,{method:"GET"});if(!u.ok)return y.warn("HOOK","File context query failed, skipping",{status:u.status,filePath:r}),{continue:!0,suppressOutput:!0};let l=await u.json();if(!l.observations||l.observations.length===0)return{continue:!0,suppressOutput:!0};let d=await wt("/api/file-context/gate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:t.sessionId,filePath:a})});if(d.ok&&(await d.json()).firstAttempt){let m=kge(l.observations,r);return{exitCode:Qe.BLOCKING_ERROR,stderrMessage:m}}return{continue:!0,suppressOutput:!0}}catch(s){return y.warn("HOOK","File context fetch error, skipping",{error:s instanceof Error?s.message:String(s)}),{continue:!0,suppressOutput:!0}}}}});var q$,F$=Oe(()=>{"use strict";Or();oe();q$={async execute(t){if(!await Rr())return{continue:!0,suppressOutput:!0};let{sessionId:r}=t;if(!r)return y.warn("HOOK","session-complete: Missing sessionId, skipping"),{continue:!0,suppressOutput:!0};y.info("HOOK","\u2192 session-complete: Removing session from active map",{contentSessionId:r});try{let n=await wt("/api/sessions/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:r})});if(n.ok)y.info("HOOK","Session completed successfully",{contentSessionId:r});else{let i=await n.text();y.warn("HOOK","session-complete: Failed to complete session",{status:n.status,body:i})}}catch(n){y.warn("HOOK","session-complete: Error completing session",{error:n.message})}return{continue:!0,suppressOutput:!0}}}});function z9(t){let e=$ge[t];return e||(y.warn("HOOK",`Unknown event type: ${t}, returning no-op`),{async execute(){return{continue:!0,suppressOutput:!0,exitCode:Qe.SUCCESS}}})}var $ge,L9=Oe(()=>{"use strict";en();oe();T$();R$();P$();A$();M$();j$();U$();F$();T$();R$();P$();A$();M$();j$();U$();F$();$ge={context:$$,"session-init":I$,observation:O$,summarize:C$,"session-complete":q$,"user-message":N$,"file-edit":D$,"file-context":L$}});var q9={};ln(q9,{hookCommand:()=>Tge,isWorkerUnavailableError:()=>U9});function U9(t){let e=t instanceof Error?t.message:String(t),r=e.toLowerCase();return["econnrefused","econnreset","epipe","etimedout","enotfound","econnaborted","enetunreach","ehostunreach","fetch failed","unable to connect","socket hang up"].some(i=>r.includes(i))||r.includes("timed out")||r.includes("timeout")||/failed:\s*5\d{2}/.test(e)||/status[:\s]+5\d{2}/.test(e)||/failed:\s*429/.test(e)||/status[:\s]+429/.test(e)?!0:(/failed:\s*4\d{2}/.test(e)||/status[:\s]+4\d{2}/.test(e)||t instanceof TypeError||t instanceof ReferenceError||t instanceof SyntaxError,!1)}async function Tge(t,e,r={}){let n=process.stderr.write.bind(process.stderr);process.stderr.write=(()=>!0);try{let i=C9(t),s=z9(e),o=await w9(),a=i.normalizeInput(o);a.platform=t;let c=await s.execute(a),u=i.formatOutput(c);console.log(JSON.stringify(u));let l=c.exitCode??Qe.SUCCESS;return c.stderrMessage&&l===Qe.BLOCKING_ERROR&&(process.stderr.write=n,process.stderr.write(c.stderrMessage)),r.skipExit||process.exit(l),l}catch(i){return U9(i)?(y.warn("HOOK",`Worker unavailable, skipping hook: ${i instanceof Error?i.message:i}`),r.skipExit||process.exit(Qe.SUCCESS),Qe.SUCCESS):(y.error("HOOK",`Hook error: ${i instanceof Error?i.message:i}`,{},i instanceof Error?i:void 0),r.skipExit||process.exit(Qe.BLOCKING_ERROR),Qe.BLOCKING_ERROR)}finally{process.stderr.write=n}}var F9=Oe(()=>{"use strict";E9();A9();L9();en();oe()});var Z$={};ln(Z$,{cleanClaudeMd:()=>Uge,generateClaudeMd:()=>Lge});function Oge(t){return Rge[t]||"\u{1F4DD}"}function Pge(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+(t.facts?.length||0);return Math.ceil(e/4)}function Cge(t){let e=new Set;try{let n=(0,B9.execSync)("git ls-files",{cwd:t,encoding:"utf-8",maxBuffer:52428800}).trim().split(` -`).filter(i=>i);for(let i of n){let s=sr.default.join(t,i),o=sr.default.dirname(s);for(;o.length>t.length&&o.startsWith(t);)e.add(o),o=sr.default.dirname(o)}}catch(r){y.warn("CLAUDE_MD","git ls-files failed, falling back to directory walk",{error:String(r)}),V9(t,e)}return e}function V9(t,e,r=0){if(r>10)return;let n=["node_modules",".git",".next","dist","build",".cache","__pycache__",".venv","venv",".idea",".vscode","coverage",".claude-mem",".open-next",".turbo"];try{let i=(0,or.readdirSync)(t,{withFileTypes:!0});for(let s of i){if(!s.isDirectory()||n.includes(s.name)||s.name.startsWith(".")&&s.name!==".claude")continue;let o=sr.default.join(t,s.name);e.add(o),V9(o,e,r+1)}}catch{}}function Age(t,e){let r=n=>{if(!n)return!1;try{let i=JSON.parse(n);if(Array.isArray(i))return i.some(s=>Do(s,e))}catch{}return!1};return r(t.files_modified)||r(t.files_read)}function Nge(t,e,r,n){let i=n*3,s=` +`)}catch{}return{exitCode:rt.SUCCESS}}}});function B5(t){let e=fSe[t];return e||(_.warn("HOOK",`Unknown event type: ${t}, returning no-op`),{async execute(){return{continue:!0,suppressOutput:!0,exitCode:rt.SUCCESS}}})}var fSe,G5=Oe(()=>{"use strict";Tn();re();qI();r_();n_();ZI();GI();i_();s_();qI();r_();n_();ZI();GI();i_();s_();fSe={context:FI,"session-init":Af,observation:Nf,summarize:HI,"session-complete":Df,"user-message":BI,"file-edit":Mf}});var V5={};_n(V5,{hookCommand:()=>mSe,isWorkerUnavailableError:()=>W5});function W5(t){let e=t instanceof Error?t.message:String(t),r=e.toLowerCase();return["econnrefused","econnreset","epipe","etimedout","enotfound","econnaborted","enetunreach","ehostunreach","fetch failed","unable to connect","socket hang up"].some(i=>r.includes(i))||r.includes("timed out")||r.includes("timeout")||/failed:\s*5\d{2}/.test(e)||/status[:\s]+5\d{2}/.test(e)||/failed:\s*429/.test(e)||/status[:\s]+429/.test(e)?!0:(/failed:\s*4\d{2}/.test(e)||/status[:\s]+4\d{2}/.test(e)||t instanceof TypeError||t instanceof ReferenceError||t instanceof SyntaxError,!1)}async function mSe(t,e,r={}){let n=process.stderr.write.bind(process.stderr);process.stderr.write=(()=>!0);try{let i=U5(t),s=B5(e),o=await R5(),a=i.normalizeInput(o);a.platform=t;let c=await s.execute(a),u=i.formatOutput(c);console.log(JSON.stringify(u));let l=c.exitCode??rt.SUCCESS;return r.skipExit||process.exit(l),l}catch(i){return W5(i)?(_.warn("HOOK",`Worker unavailable, skipping hook: ${i instanceof Error?i.message:i}`),r.skipExit||process.exit(rt.SUCCESS),rt.SUCCESS):(_.error("HOOK",`Hook error: ${i instanceof Error?i.message:i}`,{},i instanceof Error?i:void 0),r.skipExit||process.exit(rt.BLOCKING_ERROR),rt.BLOCKING_ERROR)}finally{process.stderr.write=n}}var K5=Oe(()=>{"use strict";O5();F5();G5();Tn();re()});var VI={};_n(VI,{cleanClaudeMd:()=>$Se,generateClaudeMd:()=>TSe});function vSe(t){return gSe[t]||"\u{1F4DD}"}function ySe(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+(t.facts?.length||0);return Math.ceil(e/4)}function _Se(t){let e=new Set;try{let n=(0,Y5.execSync)("git ls-files",{cwd:t,encoding:"utf-8",maxBuffer:52428800}).trim().split(` +`).filter(i=>i);for(let i of n){let s=ar.default.join(t,i),o=ar.default.dirname(s);for(;o.length>t.length&&o.startsWith(t);)e.add(o),o=ar.default.dirname(o)}}catch(r){_.warn("CLAUDE_MD","git ls-files failed, falling back to directory walk",{error:String(r)}),Q5(t,e)}return e}function Q5(t,e,r=0){if(r>10)return;let n=["node_modules",".git",".next","dist","build",".cache","__pycache__",".venv","venv",".idea",".vscode","coverage",".claude-mem",".open-next",".turbo"];try{let i=(0,cr.readdirSync)(t,{withFileTypes:!0});for(let s of i){if(!s.isDirectory()||n.includes(s.name)||s.name.startsWith(".")&&s.name!==".claude")continue;let o=ar.default.join(t,s.name);e.add(o),Q5(o,e,r+1)}}catch{}}function bSe(t,e){let r=n=>{if(!n)return!1;try{let i=JSON.parse(n);if(Array.isArray(i))return i.some(s=>ma(s,e))}catch{}return!1};return r(t.files_modified)||r(t.files_read)}function SSe(t,e,r,n){let i=n*3,s=` SELECT o.*, o.discovery_tokens FROM observations o WHERE o.project = ? AND (o.files_modified LIKE ? OR o.files_read LIKE ?) ORDER BY o.created_at_epoch DESC LIMIT ? - `,a=`%"${e.split(sr.default.sep).join("/")}/%`;return t.prepare(s).all(r,a,a,i).filter(u=>Age(u,e)).slice(0,n)}function Mge(t,e){if(t.files_modified)try{let r=JSON.parse(t.files_modified);if(Array.isArray(r)){for(let n of r)if(Do(n,e))return sr.default.basename(n)}}catch{}if(t.files_read)try{let r=JSON.parse(t.files_read);if(Array.isArray(r)){for(let n of r)if(Do(n,e))return sr.default.basename(n)}}catch{}return"General"}function Dge(t,e){let r=[];if(r.push("# Recent Activity"),r.push(""),r.push(""),r.push(""),t.length===0)return r.push("*No recent activity*"),r.join(` -`);let n=is(t,i=>i.created_at);for(let[i,s]of n){r.push(`### ${i}`),r.push("");let o=new Map;for(let a of s){let c=Mge(a,e);o.has(c)||o.set(c,[]),o.get(c).push(a)}for(let[a,c]of o){r.push(`**${a}**`),r.push("| ID | Time | T | Title | Read |"),r.push("|----|------|---|-------|------|");let u="";for(let l of c){let d=lr(l.created_at_epoch),p=d===u?'"':d;u=d;let m=Oge(l.type),f=l.title||"Untitled",g=Pge(l);r.push(`| #${l.id} | ${p} | ${m} | ${f} | ~${g} |`)}r.push("")}}return r.join(` -`).trim()}function jge(t,e){let r=sr.default.resolve(t);if(r.includes("/.git/")||r.includes("\\.git\\")||r.endsWith("/.git")||r.endsWith("\\.git"))return;let n=sr.default.join(t,"CLAUDE.md"),i=`${n}.tmp`;if(!(0,or.existsSync)(t))throw new Error(`Folder does not exist: ${t}`);let s="";(0,or.existsSync)(n)&&(s=(0,or.readFileSync)(n,"utf-8"));let o="",a="",c;if(!s)c=`${o} + `,a=`%"${e.split(ar.default.sep).join("/")}/%`;return t.prepare(s).all(r,a,a,i).filter(u=>bSe(u,e)).slice(0,n)}function xSe(t,e){if(t.files_modified)try{let r=JSON.parse(t.files_modified);if(Array.isArray(r)){for(let n of r)if(ma(n,e))return ar.default.basename(n)}}catch{}if(t.files_read)try{let r=JSON.parse(t.files_read);if(Array.isArray(r)){for(let n of r)if(ma(n,e))return ar.default.basename(n)}}catch{}return"General"}function wSe(t,e){let r=[];if(r.push("# Recent Activity"),r.push(""),r.push(""),r.push(""),t.length===0)return r.push("*No recent activity*"),r.join(` +`);let n=Os(t,i=>i.created_at);for(let[i,s]of n){r.push(`### ${i}`),r.push("");let o=new Map;for(let a of s){let c=xSe(a,e);o.has(c)||o.set(c,[]),o.get(c).push(a)}for(let[a,c]of o){r.push(`**${a}**`),r.push("| ID | Time | T | Title | Read |"),r.push("|----|------|---|-------|------|");let u="";for(let l of c){let d=pr(l.created_at_epoch),p=d===u?'"':d;u=d;let f=vSe(l.type),m=l.title||"Untitled",h=ySe(l);r.push(`| #${l.id} | ${p} | ${f} | ${m} | ~${h} |`)}r.push("")}}return r.join(` +`).trim()}function ESe(t,e){let r=ar.default.resolve(t);if(r.includes("/.git/")||r.includes("\\.git\\")||r.endsWith("/.git")||r.endsWith("\\.git"))return;let n=ar.default.join(t,"CLAUDE.md"),i=`${n}.tmp`;if(!(0,cr.existsSync)(t))throw new Error(`Folder does not exist: ${t}`);let s="";(0,cr.existsSync)(n)&&(s=(0,cr.readFileSync)(n,"utf-8"));let o="",a="",c;if(!s)c=`${o} ${e} ${a}`;else{let u=s.indexOf(o),l=s.indexOf(a);u!==-1&&l!==-1?c=s.substring(0,u)+`${o} ${e} @@ -853,76 +856,76 @@ ${a}`+s.substring(l+a.length):c=s+` ${o} ${e} -${a}`}(0,or.writeFileSync)(i,c),(0,or.renameSync)(i,n)}function zge(t,e,r,n,i,s,o){try{if(!(0,or.existsSync)(e))return{success:!1,observationCount:0,error:"Folder no longer exists"};let a=sr.default.resolve(e),c=sr.default.resolve(s);if(!a.startsWith(c+sr.default.sep))return{success:!1,observationCount:0,error:"Path escapes project root"};let u=Nge(t,r,n,o);if(u.length===0)return{success:!1,observationCount:0,error:"No observations for folder"};if(i)return{success:!0,observationCount:u.length};let l=Dge(u,r);return jge(e,l),{success:!0,observationCount:u.length}}catch(a){return{success:!1,observationCount:0,error:String(a)}}}async function Lge(t){try{let e=process.cwd(),r=_e.loadFromFile(Ige),n=parseInt(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10)||50;y.info("CLAUDE_MD","Starting CLAUDE.md generation",{workingDir:e,dryRun:t,observationLimit:n});let i=sr.default.basename(e),s=Cge(e);if(s.size===0)return y.info("CLAUDE_MD","No folders found in project"),0;if(y.info("CLAUDE_MD",`Found ${s.size} folders in project`),!(0,or.existsSync)(H9))return y.info("CLAUDE_MD","Database not found, no observations to process"),0;let o=new Z9.Database(H9,{readonly:!0,create:!1}),a=0,c=0,u=0,l=Array.from(s).sort();for(let d of l){let p=sr.default.relative(e,d),m=zge(o,d,p,i,t,e,n);m.success?(y.debug("CLAUDE_MD",`Processed folder: ${p}`,{observationCount:m.observationCount}),a++):m.error?.includes("No observations")?c++:(y.warn("CLAUDE_MD",`Error processing folder: ${p}`,{error:m.error}),u++)}return o.close(),y.info("CLAUDE_MD","CLAUDE.md generation complete",{totalFolders:l.length,withObservations:a,noObservations:c,errors:u,dryRun:t}),0}catch(e){return y.error("CLAUDE_MD","Fatal error during CLAUDE.md generation",{error:String(e)}),1}}async function Uge(t){try{let i=function(c){let u=["node_modules",".git",".next","dist","build",".cache","__pycache__",".venv","venv",".idea",".vscode","coverage",".claude-mem",".open-next",".turbo"];try{let l=(0,or.readdirSync)(c,{withFileTypes:!0});for(let d of l){let p=sr.default.join(c,d.name);if(d.isDirectory())u.includes(d.name)||i(p);else if(d.name==="CLAUDE.md")try{(0,or.readFileSync)(p,"utf-8").includes("")&&n.push(p)}catch{}}}catch{}};var e=i;let r=process.cwd();y.info("CLAUDE_MD","Starting CLAUDE.md cleanup",{workingDir:r,dryRun:t});let n=[];if(i(r),n.length===0)return y.info("CLAUDE_MD","No CLAUDE.md files with auto-generated content found"),0;y.info("CLAUDE_MD",`Found ${n.length} CLAUDE.md files with auto-generated content`);let s=0,o=0,a=0;for(let c of n){let u=sr.default.relative(r,c);try{let d=(0,or.readFileSync)(c,"utf-8").replace(/[\s\S]*?<\/claude-mem-context>/g,"").trim();d===""?(t||(0,or.unlinkSync)(c),y.debug("CLAUDE_MD",`${t?"[DRY-RUN] Would delete":"Deleted"} (empty): ${u}`),s++):(t||(0,or.writeFileSync)(c,d),y.debug("CLAUDE_MD",`${t?"[DRY-RUN] Would clean":"Cleaned"}: ${u}`),o++)}catch(l){y.warn("CLAUDE_MD",`Error processing ${u}`,{error:String(l)}),a++}}return y.info("CLAUDE_MD","CLAUDE.md cleanup complete",{deleted:s,cleaned:o,errors:a,dryRun:t}),0}catch(r){return y.error("CLAUDE_MD","Fatal error during CLAUDE.md cleanup",{error:String(r)}),1}}var Z9,sr,H$,or,B9,H9,Ige,Rge,B$=Oe(()=>{"use strict";Z9=require("bun:sqlite"),sr=Ue(require("path"),1),H$=Ue(require("os"),1),or=require("fs"),B9=require("child_process");Yt();zo();uk();oe();H9=sr.default.join(H$.default.homedir(),".claude-mem","claude-mem.db"),Ige=sr.default.join(H$.default.homedir(),".claude-mem","settings.json"),Rge={bugfix:"\u{1F534}",feature:"\u{1F7E3}",refactor:"\u{1F504}",change:"\u2705",discovery:"\u{1F535}",decision:"\u2696\uFE0F",session:"\u{1F3AF}",prompt:"\u{1F4AC}"}});var Wge={};ln(Wge,{WorkerService:()=>xv,buildStatusOutput:()=>W9,isPluginDisabledInClaudeSettings:()=>Vf});module.exports=kp(Wge);var V$=Ue(require("path"),1),ms=require("fs");var Ye;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(Ye||(Ye={}));var X$;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(X$||(X$={}));var ne=Ye.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Ci=t=>{switch(typeof t){case"undefined":return ne.undefined;case"string":return ne.string;case"number":return Number.isNaN(t)?ne.nan:ne.number;case"boolean":return ne.boolean;case"function":return ne.function;case"bigint":return ne.bigint;case"symbol":return ne.symbol;case"object":return Array.isArray(t)?ne.array:t===null?ne.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ne.promise:typeof Map<"u"&&t instanceof Map?ne.map:typeof Set<"u"&&t instanceof Set?ne.set:typeof Date<"u"&&t instanceof Date?ne.date:ne.object;default:return ne.unknown}};var B=Ye.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"]);var dn=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(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,c=0;for(;cr.message){let r=Object.create(null),n=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];r[s]=r[s]||[],r[s].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};dn.create=t=>new dn(t);var tF=(t,e)=>{let r;switch(t.code){case B.invalid_type:t.received===ne.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case B.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,Ye.jsonStringifyReplacer)}`;break;case B.unrecognized_keys:r=`Unrecognized key(s) in object: ${Ye.joinValues(t.keys,", ")}`;break;case B.invalid_union:r="Invalid input";break;case B.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Ye.joinValues(t.options)}`;break;case B.invalid_enum_value:r=`Invalid enum value. Expected ${Ye.joinValues(t.options)}, received '${t.received}'`;break;case B.invalid_arguments:r="Invalid function arguments";break;case B.invalid_return_type:r="Invalid function return type";break;case B.invalid_date:r="Invalid date";break;case B.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}"`:Ye.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case B.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 B.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 B.custom:r="Invalid input";break;case B.invalid_intersection_types:r="Intersection results could not be merged";break;case B.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case B.not_finite:r="Number must be finite";break;default:r=e.defaultError,Ye.assertNever(t)}return{message:r}},fs=tF;var rF=fs;function ou(){return rF}var $p=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}};function Q(t,e){let r=ou(),n=$p({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===fs?void 0:fs].filter(i=>!!i)});t.common.issues.push(n)}var Sr=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 i of r){if(i.status==="aborted")return we;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return we;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},we=Object.freeze({status:"aborted"}),Yo=t=>({status:"dirty",value:t}),Mr=t=>({status:"valid",value:t}),Ev=t=>t.status==="aborted",kv=t=>t.status==="dirty",Ws=t=>t.status==="valid",au=t=>typeof Promise<"u"&&t instanceof Promise;var de;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(de||(de={}));var wn=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}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}},Y$=(t,e)=>{if(Ws(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new dn(t.common.issues);return this._error=r,this._error}}};function Ce(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:i}}var qe=class{get description(){return this._def.description}_getType(e){return Ci(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Ci(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Sr,ctx:{common:e.parent.common,data:e.data,parsedType:Ci(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(au(r))throw new 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:Ci(e)},i=this._parseSync({data:e,path:n.path,parent:n});return Y$(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Ci(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Ws(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=>Ws(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:Ci(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(au(i)?i:Promise.resolve(i));return Y$(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:B.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Hn({schema:this,typeName:ye.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 Fn.create(this,this._def)}nullable(){return Mi.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return gs.create(this)}promise(){return Ks.create(this,this._def)}or(e){return na.create([this,e],this._def)}and(e){return ia.create(this,e,this._def)}transform(e){return new Hn({...Ce(this._def),schema:this,typeName:ye.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new ua({...Ce(this._def),innerType:this,defaultValue:r,typeName:ye.ZodDefault})}brand(){return new Tp({typeName:ye.ZodBranded,type:this,...Ce(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new la({...Ce(this._def),innerType:this,catchValue:r,typeName:ye.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ip.create(this,e)}readonly(){return da.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},nF=/^c[^\s-]{8,}$/i,iF=/^[0-9a-z]+$/,sF=/^[0-9A-HJKMNP-TV-Z]{26}$/i,oF=/^[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,aF=/^[a-z0-9_-]{21}$/i,cF=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,uF=/^[-+]?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)?)??$/,lF=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,dF="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",$v,pF=/^(?:(?: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])$/,mF=/^(?:(?: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])$/,fF=/^(([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]))$/,hF=/^(([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])$/,gF=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,vF=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Q$="((\\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])))",yF=new RegExp(`^${Q$}$`);function eT(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 _F(t){return new RegExp(`^${eT(t)}$`)}function bF(t){let e=`${Q$}T${eT(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 xF(t,e){return!!((e==="v4"||!e)&&pF.test(t)||(e==="v6"||!e)&&fF.test(t))}function SF(t,e){if(!cF.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,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function wF(t,e){return!!((e==="v4"||!e)&&mF.test(t)||(e==="v6"||!e)&&hF.test(t))}var ea=class t extends qe{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ne.string){let s=this._getOrReturnCtx(e);return Q(s,{code:B.invalid_type,expected:ne.string,received:s.parsedType}),we}let n=new Sr,i;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(i=this._getOrReturnCtx(e,i),Q(i,{code:B.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.lengthe.test(i),{validation:r,code:B.invalid_string,...de.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...de.errToObj(e)})}url(e){return this._addCheck({kind:"url",...de.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...de.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...de.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...de.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...de.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...de.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...de.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...de.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...de.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...de.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...de.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...de.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,...de.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,...de.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...de.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...de.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...de.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...de.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...de.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...de.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...de.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...de.errToObj(r)})}nonempty(e){return this.min(1,de.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 ea({checks:[],typeName:ye.ZodString,coerce:t?.coerce??!1,...Ce(t)});function EF(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return s%o/10**i}var cu=class t extends qe{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)!==ne.number){let s=this._getOrReturnCtx(e);return Q(s,{code:B.invalid_type,expected:ne.number,received:s.parsedType}),we}let n,i=new Sr;for(let s of this._def.checks)s.kind==="int"?Ye.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),Q(n,{code:B.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),Q(n,{code:B.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?EF(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),Q(n,{code:B.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),Q(n,{code:B.not_finite,message:s.message}),i.dirty()):Ye.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,de.toString(r))}gt(e,r){return this.setLimit("min",e,!1,de.toString(r))}lte(e,r){return this.setLimit("max",e,!0,de.toString(r))}lt(e,r){return this.setLimit("max",e,!1,de.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:de.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:de.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:de.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:de.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:de.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:de.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:de.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:de.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:de.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:de.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"&&Ye.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 cu({checks:[],typeName:ye.ZodNumber,coerce:t?.coerce||!1,...Ce(t)});var uu=class t extends qe{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)!==ne.bigint)return this._getInvalidInput(e);let n,i=new Sr;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),Q(n,{code:B.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),Q(n,{code:B.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):Ye.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return Q(r,{code:B.invalid_type,expected:ne.bigint,received:r.parsedType}),we}gte(e,r){return this.setLimit("min",e,!0,de.toString(r))}gt(e,r){return this.setLimit("min",e,!1,de.toString(r))}lte(e,r){return this.setLimit("max",e,!0,de.toString(r))}lt(e,r){return this.setLimit("max",e,!1,de.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:de.toString(i)}]})}_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:de.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:de.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:de.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:de.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:de.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 uu({checks:[],typeName:ye.ZodBigInt,coerce:t?.coerce??!1,...Ce(t)});var lu=class extends qe{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ne.boolean){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ne.boolean,received:n.parsedType}),we}return Mr(e.data)}};lu.create=t=>new lu({typeName:ye.ZodBoolean,coerce:t?.coerce||!1,...Ce(t)});var du=class t extends qe{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ne.date){let s=this._getOrReturnCtx(e);return Q(s,{code:B.invalid_type,expected:ne.date,received:s.parsedType}),we}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return Q(s,{code:B.invalid_date}),we}let n=new Sr,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(i=this._getOrReturnCtx(e,i),Q(i,{code:B.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):Ye.assertNever(s);return{status:n.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:de.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:de.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 du({checks:[],coerce:t?.coerce||!1,typeName:ye.ZodDate,...Ce(t)});var pu=class extends qe{_parse(e){if(this._getType(e)!==ne.symbol){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ne.symbol,received:n.parsedType}),we}return Mr(e.data)}};pu.create=t=>new pu({typeName:ye.ZodSymbol,...Ce(t)});var ta=class extends qe{_parse(e){if(this._getType(e)!==ne.undefined){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ne.undefined,received:n.parsedType}),we}return Mr(e.data)}};ta.create=t=>new ta({typeName:ye.ZodUndefined,...Ce(t)});var ra=class extends qe{_parse(e){if(this._getType(e)!==ne.null){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ne.null,received:n.parsedType}),we}return Mr(e.data)}};ra.create=t=>new ra({typeName:ye.ZodNull,...Ce(t)});var mu=class extends qe{constructor(){super(...arguments),this._any=!0}_parse(e){return Mr(e.data)}};mu.create=t=>new mu({typeName:ye.ZodAny,...Ce(t)});var hs=class extends qe{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Mr(e.data)}};hs.create=t=>new hs({typeName:ye.ZodUnknown,...Ce(t)});var ai=class extends qe{_parse(e){let r=this._getOrReturnCtx(e);return Q(r,{code:B.invalid_type,expected:ne.never,received:r.parsedType}),we}};ai.create=t=>new ai({typeName:ye.ZodNever,...Ce(t)});var fu=class extends qe{_parse(e){if(this._getType(e)!==ne.undefined){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ne.void,received:n.parsedType}),we}return Mr(e.data)}};fu.create=t=>new fu({typeName:ye.ZodVoid,...Ce(t)});var gs=class t extends qe{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==ne.array)return Q(r,{code:B.invalid_type,expected:ne.array,received:r.parsedType}),we;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.lengthi.maxLength.value&&(Q(r,{code:B.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new wn(r,o,r.path,a)))).then(o=>Sr.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new wn(r,o,r.path,a)));return Sr.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:de.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:de.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:de.toString(r)}})}nonempty(e){return this.min(1,e)}};gs.create=(t,e)=>new gs({type:t,minLength:null,maxLength:null,exactLength:null,typeName:ye.ZodArray,...Ce(e)});function Qo(t){if(t instanceof pn){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Fn.create(Qo(n))}return new pn({...t._def,shape:()=>e})}else return t instanceof gs?new gs({...t._def,type:Qo(t.element)}):t instanceof Fn?Fn.create(Qo(t.unwrap())):t instanceof Mi?Mi.create(Qo(t.unwrap())):t instanceof Ni?Ni.create(t.items.map(e=>Qo(e))):t}var pn=class t extends qe{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=Ye.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==ne.object){let u=this._getOrReturnCtx(e);return Q(u,{code:B.invalid_type,expected:ne.object,received:u.parsedType}),we}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof ai&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new wn(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof ai){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(Q(i,{code:B.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new wn(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,p=await l.value;u.push({key:d,value:p,alwaysSet:l.alwaysSet})}return u}).then(u=>Sr.mergeObjectSync(n,u)):Sr.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return de.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:de.errToObj(e).message??i}:{message:i}}}:{}})}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:ye.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 Ye.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 Ye.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Qo(this)}partial(e){let r={};for(let n of Ye.objectKeys(this.shape)){let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of Ye.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof Fn;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return tT(Ye.objectKeys(this.shape))}};pn.create=(t,e)=>new pn({shape:()=>t,unknownKeys:"strip",catchall:ai.create(),typeName:ye.ZodObject,...Ce(e)});pn.strictCreate=(t,e)=>new pn({shape:()=>t,unknownKeys:"strict",catchall:ai.create(),typeName:ye.ZodObject,...Ce(e)});pn.lazycreate=(t,e)=>new pn({shape:t,unknownKeys:"strip",catchall:ai.create(),typeName:ye.ZodObject,...Ce(e)});var na=class extends qe{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new dn(a.ctx.common.issues));return Q(r,{code:B.invalid_union,unionErrors:o}),we}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new dn(c));return Q(r,{code:B.invalid_union,unionErrors:a}),we}}get options(){return this._def.options}};na.create=(t,e)=>new na({options:t,typeName:ye.ZodUnion,...Ce(e)});var Ai=t=>t instanceof sa?Ai(t.schema):t instanceof Hn?Ai(t.innerType()):t instanceof oa?[t.value]:t instanceof aa?t.options:t instanceof ca?Ye.objectValues(t.enum):t instanceof ua?Ai(t._def.innerType):t instanceof ta?[void 0]:t instanceof ra?[null]:t instanceof Fn?[void 0,...Ai(t.unwrap())]:t instanceof Mi?[null,...Ai(t.unwrap())]:t instanceof Tp||t instanceof da?Ai(t.unwrap()):t instanceof la?Ai(t._def.innerType):[],Tv=class t extends qe{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ne.object)return Q(r,{code:B.invalid_type,expected:ne.object,received:r.parsedType}),we;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(Q(r,{code:B.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),we)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Ai(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:ye.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Ce(n)})}};function Iv(t,e){let r=Ci(t),n=Ci(e);if(t===e)return{valid:!0,data:t};if(r===ne.object&&n===ne.object){let i=Ye.objectKeys(e),s=Ye.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let c=Iv(t[a],e[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(r===ne.array&&n===ne.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s{if(Ev(s)||Ev(o))return we;let a=Iv(s.value,o.value);return a.valid?((kv(s)||kv(o))&&r.dirty(),{status:r.value,value:a.data}):(Q(n,{code:B.invalid_intersection_types}),we)};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(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};ia.create=(t,e,r)=>new ia({left:t,right:e,typeName:ye.ZodIntersection,...Ce(r)});var Ni=class t extends qe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ne.array)return Q(n,{code:B.invalid_type,expected:ne.array,received:n.parsedType}),we;if(n.data.lengththis._def.items.length&&(Q(n,{code:B.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new wn(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Sr.mergeArray(r,o)):Sr.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Ni.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ni({items:t,typeName:ye.ZodTuple,rest:null,...Ce(e)})};var Rv=class t extends qe{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!==ne.object)return Q(n,{code:B.invalid_type,expected:ne.object,received:n.parsedType}),we;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new wn(n,a,n.path,a)),value:o._parse(new wn(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Sr.mergeObjectAsync(r,i):Sr.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof qe?new t({keyType:e,valueType:r,typeName:ye.ZodRecord,...Ce(n)}):new t({keyType:ea.create(),valueType:e,typeName:ye.ZodRecord,...Ce(r)})}},hu=class extends qe{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!==ne.map)return Q(n,{code:B.invalid_type,expected:ne.map,received:n.parsedType}),we;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,c],u)=>({key:i._parse(new wn(n,a,n.path,[u,"key"])),value:s._parse(new wn(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return we;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return we;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}}}};hu.create=(t,e,r)=>new hu({valueType:e,keyType:t,typeName:ye.ZodMap,...Ce(r)});var gu=class t extends qe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ne.set)return Q(n,{code:B.invalid_type,expected:ne.set,received:n.parsedType}),we;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(Q(n,{code:B.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return we;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>s._parse(new wn(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:de.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:de.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};gu.create=(t,e)=>new gu({valueType:t,minSize:null,maxSize:null,typeName:ye.ZodSet,...Ce(e)});var Ov=class t extends qe{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ne.function)return Q(r,{code:B.invalid_type,expected:ne.function,received:r.parsedType}),we;function n(a,c){return $p({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ou(),fs].filter(u=>!!u),issueData:{code:B.invalid_arguments,argumentsError:c}})}function i(a,c){return $p({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ou(),fs].filter(u=>!!u),issueData:{code:B.invalid_return_type,returnTypeError:c}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Ks){let a=this;return Mr(async function(...c){let u=new dn([]),l=await a._def.args.parseAsync(c,s).catch(m=>{throw u.addIssue(n(c,m)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(m=>{throw u.addIssue(i(d,m)),u})})}else{let a=this;return Mr(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new dn([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new dn([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Ni.create(e).rest(hs.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||Ni.create([]).rest(hs.create()),returns:r||hs.create(),typeName:ye.ZodFunction,...Ce(n)})}},sa=class extends qe{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})}};sa.create=(t,e)=>new sa({getter:t,typeName:ye.ZodLazy,...Ce(e)});var oa=class extends qe{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return Q(r,{received:r.data,code:B.invalid_literal,expected:this._def.value}),we}return{status:"valid",value:e.data}}get value(){return this._def.value}};oa.create=(t,e)=>new oa({value:t,typeName:ye.ZodLiteral,...Ce(e)});function tT(t,e){return new aa({values:t,typeName:ye.ZodEnum,...Ce(e)})}var aa=class t extends qe{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return Q(r,{expected:Ye.joinValues(n),received:r.parsedType,code:B.invalid_type}),we}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 Q(r,{received:r.data,code:B.invalid_enum_value,options:n}),we}return Mr(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})}};aa.create=tT;var ca=class extends qe{_parse(e){let r=Ye.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ne.string&&n.parsedType!==ne.number){let i=Ye.objectValues(r);return Q(n,{expected:Ye.joinValues(i),received:n.parsedType,code:B.invalid_type}),we}if(this._cache||(this._cache=new Set(Ye.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=Ye.objectValues(r);return Q(n,{received:n.data,code:B.invalid_enum_value,options:i}),we}return Mr(e.data)}get enum(){return this._def.values}};ca.create=(t,e)=>new ca({values:t,typeName:ye.ZodNativeEnum,...Ce(e)});var Ks=class extends qe{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ne.promise&&r.common.async===!1)return Q(r,{code:B.invalid_type,expected:ne.promise,received:r.parsedType}),we;let n=r.parsedType===ne.promise?r.data:Promise.resolve(r.data);return Mr(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Ks.create=(t,e)=>new Ks({type:t,typeName:ye.ZodPromise,...Ce(e)});var Hn=class extends qe{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ye.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{Q(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return we;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?we:c.status==="dirty"?Yo(c.value):r.value==="dirty"?Yo(c.value):c});{if(r.value==="aborted")return we;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?we:a.status==="dirty"?Yo(a.value):r.value==="dirty"?Yo(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?we:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?we:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ws(o))return we;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Ws(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):we);Ye.assertNever(i)}};Hn.create=(t,e,r)=>new Hn({schema:t,typeName:ye.ZodEffects,effect:e,...Ce(r)});Hn.createWithPreprocess=(t,e,r)=>new Hn({schema:e,effect:{type:"preprocess",transform:t},typeName:ye.ZodEffects,...Ce(r)});var Fn=class extends qe{_parse(e){return this._getType(e)===ne.undefined?Mr(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Fn.create=(t,e)=>new Fn({innerType:t,typeName:ye.ZodOptional,...Ce(e)});var Mi=class extends qe{_parse(e){return this._getType(e)===ne.null?Mr(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Mi.create=(t,e)=>new Mi({innerType:t,typeName:ye.ZodNullable,...Ce(e)});var ua=class extends qe{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===ne.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ua.create=(t,e)=>new ua({innerType:t,typeName:ye.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ce(e)});var la=class extends qe{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return au(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new dn(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new dn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};la.create=(t,e)=>new la({innerType:t,typeName:ye.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ce(e)});var vu=class extends qe{_parse(e){if(this._getType(e)!==ne.nan){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ne.nan,received:n.parsedType}),we}return{status:"valid",value:e.data}}};vu.create=t=>new vu({typeName:ye.ZodNaN,...Ce(t)});var Tp=class extends qe{_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}},Ip=class t extends qe{_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"?we:s.status==="dirty"?(r.dirty(),Yo(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?we:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:ye.ZodPipeline})}},da=class extends qe{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Ws(i)&&(i.value=Object.freeze(i.value)),i);return au(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};da.create=(t,e)=>new da({innerType:t,typeName:ye.ZodReadonly,...Ce(e)});var fve={object:pn.lazycreate},ye;(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"})(ye||(ye={}));var hve=ea.create,gve=cu.create,vve=vu.create,yve=uu.create,_ve=lu.create,bve=du.create,xve=pu.create,Sve=ta.create,wve=ra.create,Eve=mu.create,kve=hs.create,$ve=ai.create,Tve=fu.create,Ive=gs.create,kF=pn.create,Rve=pn.strictCreate,Ove=na.create,Pve=Tv.create,Cve=ia.create,Ave=Ni.create,Nve=Rv.create,Mve=hu.create,Dve=gu.create,jve=Ov.create,zve=sa.create,Lve=oa.create,Uve=aa.create,qve=ca.create,Fve=Ks.create,Hve=Hn.create,Zve=Fn.create,Bve=Mi.create,Vve=Hn.createWithPreprocess,Gve=Ip.create;var rT=Object.freeze({status:"aborted"});function O(t,e,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:o,traits:new Set},enumerable:!1}),a._zod.traits.has(t))return;a._zod.traits.add(t),e(a,c);let u=o.prototype,l=Object.keys(u);for(let d=0;dr?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var ci=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Js=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},Rp={};function tr(t){return t&&Object.assign(Rp,t),Rp}var V={};ln(V,{BIGINT_FORMAT_RANGES:()=>Uv,Class:()=>Cv,NUMBER_FORMAT_RANGES:()=>Lv,aborted:()=>bs,allowsEval:()=>Mv,assert:()=>CF,assertEqual:()=>IF,assertIs:()=>OF,assertNever:()=>PF,assertNotEqual:()=>RF,assignProp:()=>ys,base64ToUint8Array:()=>lT,base64urlToUint8Array:()=>HF,cached:()=>ma,captureStackTrace:()=>Pp,cleanEnum:()=>FF,cleanRegex:()=>bu,clone:()=>Dr,cloneDef:()=>NF,createTransparentProxy:()=>UF,defineLazy:()=>Me,esc:()=>Op,escapeRegex:()=>En,extend:()=>oT,finalizeIssue:()=>Kr,floatSafeRemainder:()=>Av,getElementAtPath:()=>MF,getEnumValues:()=>_u,getLengthableOrigin:()=>wu,getParsedType:()=>LF,getSizableOrigin:()=>Su,hexToUint8Array:()=>BF,isObject:()=>Xs,isPlainObject:()=>_s,issue:()=>fa,joinValues:()=>be,jsonStringifyReplacer:()=>pa,merge:()=>qF,mergeDefs:()=>Di,normalizeParams:()=>ee,nullish:()=>vs,numKeys:()=>zF,objectClone:()=>AF,omit:()=>sT,optionalKeys:()=>zv,parsedType:()=>Ee,partial:()=>cT,pick:()=>iT,prefixIssues:()=>mn,primitiveTypes:()=>jv,promiseAllObject:()=>DF,propertyKeyTypes:()=>xu,randomString:()=>jF,required:()=>uT,safeExtend:()=>aT,shallowClone:()=>Dv,slugify:()=>Nv,stringifyPrimitive:()=>xe,uint8ArrayToBase64:()=>dT,uint8ArrayToBase64url:()=>ZF,uint8ArrayToHex:()=>VF,unwrapMessage:()=>yu});function IF(t){return t}function RF(t){return t}function OF(t){}function PF(t){throw new Error("Unexpected value in exhaustive check")}function CF(t){}function _u(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,i])=>e.indexOf(+n)===-1).map(([n,i])=>i)}function be(t,e="|"){return t.map(r=>xe(r)).join(e)}function pa(t,e){return typeof e=="bigint"?e.toString():e}function ma(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function vs(t){return t==null}function bu(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Av(t,e){let r=(t.toString().split(".")[1]||"").length,n=e.toString(),i=(n.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(n)){let c=n.match(/\d?e-(\d?)/);c?.[1]&&(i=Number.parseInt(c[1]))}let s=r>i?r:i,o=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return o%a/10**s}var nT=Symbol("evaluating");function Me(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==nT)return n===void 0&&(n=nT,n=r()),n},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function AF(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function ys(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Di(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function NF(t){return Di(t._zod.def)}function MF(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function DF(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let s=0;s{};function Xs(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Mv=ma(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function _s(t){if(Xs(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Xs(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Dv(t){return _s(t)?{...t}:Array.isArray(t)?[...t]:t}function zF(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var LF=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}`)}},xu=new Set(["string","number","symbol"]),jv=new Set(["string","number","bigint","boolean","symbol","undefined"]);function En(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Dr(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function ee(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 UF(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,s){return e??(e=t()),Reflect.set(e,n,i,s)},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,i){return e??(e=t()),Reflect.defineProperty(e,n,i)}})}function xe(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function zv(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var Lv={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]},Uv={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function iT(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let s=Di(t._zod.def,{get shape(){let o={};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&(o[a]=r.shape[a])}return ys(this,"shape",o),o},checks:[]});return Dr(t,s)}function sT(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let s=Di(t._zod.def,{get shape(){let o={...t._zod.def.shape};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&delete o[a]}return ys(this,"shape",o),o},checks:[]});return Dr(t,s)}function oT(t,e){if(!_s(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let s=t._zod.def.shape;for(let o in e)if(Object.getOwnPropertyDescriptor(s,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let i=Di(t._zod.def,{get shape(){let s={...t._zod.def.shape,...e};return ys(this,"shape",s),s}});return Dr(t,i)}function aT(t,e){if(!_s(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=Di(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return ys(this,"shape",n),n}});return Dr(t,r)}function qF(t,e){let r=Di(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return ys(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:[]});return Dr(t,r)}function cT(t,e,r){let i=e._zod.def.checks;if(i&&i.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let o=Di(e._zod.def,{get shape(){let a=e._zod.def.shape,c={...a};if(r)for(let u in r){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=t?new t({type:"optional",innerType:a[u]}):a[u])}else for(let u in a)c[u]=t?new t({type:"optional",innerType:a[u]}):a[u];return ys(this,"shape",c),c},checks:[]});return Dr(e,o)}function uT(t,e,r){let n=Di(e._zod.def,{get shape(){let i=e._zod.def.shape,s={...i};if(r)for(let o in r){if(!(o in s))throw new Error(`Unrecognized key: "${o}"`);r[o]&&(s[o]=new t({type:"nonoptional",innerType:i[o]}))}else for(let o in i)s[o]=new t({type:"nonoptional",innerType:i[o]});return ys(this,"shape",s),s}});return Dr(e,n)}function bs(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function yu(t){return typeof t=="string"?t:t?.message}function Kr(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=yu(t.inst?._zod.def?.error?.(t))??yu(e?.error?.(t))??yu(r.customError?.(t))??yu(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Su(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function wu(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function Ee(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let r=t;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return e}function fa(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function FF(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function lT(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;ne.toString(16).padStart(2,"0")).join("")}var Cv=class{constructor(...e){}};var pT=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,pa,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Cp=O("$ZodError",pT),Eu=O("$ZodError",pT,{Parent:Error});function Ap(t,e=r=>r.message){let r={},n=[];for(let i of t.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}function Np(t,e=r=>r.message){let r={_errors:[]},n=i=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(o=>n({issues:o}));else if(s.code==="invalid_key")n({issues:s.issues});else if(s.code==="invalid_element")n({issues:s.issues});else if(s.path.length===0)r._errors.push(e(s));else{let o=r,a=0;for(;a(e,r,n,i)=>{let s=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},s);if(o instanceof Promise)throw new ci;if(o.issues.length){let a=new(i?.Err??t)(o.issues.map(c=>Kr(c,s,tr())));throw Pp(a,i?.callee),a}return o.value},$u=ku(Eu),Tu=t=>async(e,r,n,i)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??t)(o.issues.map(c=>Kr(c,s,tr())));throw Pp(a,i?.callee),a}return o.value},Iu=Tu(Eu),Ru=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new ci;return s.issues.length?{success:!1,error:new(t??Cp)(s.issues.map(o=>Kr(o,i,tr())))}:{success:!0,data:s.value}},ha=Ru(Eu),Ou=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},s=e._zod.run({value:r,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new t(s.issues.map(o=>Kr(o,i,tr())))}:{success:!0,data:s.value}},Pu=Ou(Eu),mT=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return ku(t)(e,r,i)};var fT=t=>(e,r,n)=>ku(t)(e,r,n);var hT=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Tu(t)(e,r,i)};var gT=t=>async(e,r,n)=>Tu(t)(e,r,n);var vT=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ru(t)(e,r,i)};var yT=t=>(e,r,n)=>Ru(t)(e,r,n);var _T=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ou(t)(e,r,i)};var bT=t=>async(e,r,n)=>Ou(t)(e,r,n);var kn={};ln(kn,{base64:()=>ry,base64url:()=>Mp,bigint:()=>cy,boolean:()=>ly,browserEmail:()=>t8,cidrv4:()=>ey,cidrv6:()=>ty,cuid:()=>qv,cuid2:()=>Fv,date:()=>iy,datetime:()=>oy,domain:()=>i8,duration:()=>Gv,e164:()=>ny,email:()=>Kv,emoji:()=>Jv,extendedDuration:()=>WF,guid:()=>Wv,hex:()=>s8,hostname:()=>n8,html5Email:()=>YF,idnEmail:()=>e8,integer:()=>uy,ipv4:()=>Xv,ipv6:()=>Yv,ksuid:()=>Bv,lowercase:()=>my,mac:()=>Qv,md5_base64:()=>a8,md5_base64url:()=>c8,md5_hex:()=>o8,nanoid:()=>Vv,null:()=>dy,number:()=>Dp,rfc5322Email:()=>QF,sha1_base64:()=>l8,sha1_base64url:()=>d8,sha1_hex:()=>u8,sha256_base64:()=>m8,sha256_base64url:()=>f8,sha256_hex:()=>p8,sha384_base64:()=>g8,sha384_base64url:()=>v8,sha384_hex:()=>h8,sha512_base64:()=>_8,sha512_base64url:()=>b8,sha512_hex:()=>y8,string:()=>ay,time:()=>sy,ulid:()=>Hv,undefined:()=>py,unicodeEmail:()=>xT,uppercase:()=>fy,uuid:()=>Ys,uuid4:()=>KF,uuid6:()=>JF,uuid7:()=>XF,xid:()=>Zv});var qv=/^[cC][^\s-]{8,}$/,Fv=/^[0-9a-z]+$/,Hv=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Zv=/^[0-9a-vA-V]{20}$/,Bv=/^[A-Za-z0-9]{27}$/,Vv=/^[a-zA-Z0-9_-]{21}$/,Gv=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,WF=/^[-+]?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)?)??$/,Wv=/^([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})$/,Ys=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|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,KF=Ys(4),JF=Ys(6),XF=Ys(7),Kv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,YF=/^[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])?)*$/,QF=/^(([^<>()\[\]\\.,;:\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,}))$/,xT=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,e8=xT,t8=/^[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])?)*$/,r8="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Jv(){return new RegExp(r8,"u")}var Xv=/^(?:(?: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])$/,Yv=/^(([0-9a-fA-F]{1,4}:){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}|:))$/,Qv=t=>{let e=En(t??":");return new RegExp(`^(?:[0-9A-F]{2}${e}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${e}){5}[0-9a-f]{2}$`)},ey=/^((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])$/,ty=/^(([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])$/,ry=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Mp=/^[A-Za-z0-9_-]*$/,n8=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,i8=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,ny=/^\+[1-9]\d{6,14}$/,ST="(?:(?:\\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])))",iy=new RegExp(`^${ST}$`);function wT(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 sy(t){return new RegExp(`^${wT(t)}$`)}function oy(t){let e=wT({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${ST}T(?:${n})$`)}var ay=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},cy=/^-?\d+n?$/,uy=/^-?\d+$/,Dp=/^-?\d+(?:\.\d+)?$/,ly=/^(?:true|false)$/i,dy=/^null$/i;var py=/^undefined$/i;var my=/^[^A-Z]*$/,fy=/^[^a-z]*$/,s8=/^[0-9a-fA-F]*$/;function Cu(t,e){return new RegExp(`^[A-Za-z0-9+/]{${t}}${e}$`)}function Au(t){return new RegExp(`^[A-Za-z0-9_-]{${t}}$`)}var o8=/^[0-9a-fA-F]{32}$/,a8=Cu(22,"=="),c8=Au(22),u8=/^[0-9a-fA-F]{40}$/,l8=Cu(27,"="),d8=Au(27),p8=/^[0-9a-fA-F]{64}$/,m8=Cu(43,"="),f8=Au(43),h8=/^[0-9a-fA-F]{96}$/,g8=Cu(64,""),v8=Au(64),y8=/^[0-9a-fA-F]{128}$/,_8=Cu(86,"=="),b8=Au(86);var _t=O("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),kT={number:"number",bigint:"bigint",object:"date"},hy=O("$ZodCheckLessThan",(t,e)=>{_t.init(t,e);let r=kT[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,s=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{_t.init(t,e);let r=kT[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,s=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>s&&(e.inclusive?i.minimum=e.value:i.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:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),$T=O("$ZodCheckMultipleOf",(t,e)=>{_t.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):Av(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})}}),TT=O("$ZodCheckNumberFormat",(t,e)=>{_t.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,s]=Lv[e.format];t._zod.onattach.push(o=>{let a=o._zod.bag;a.format=e.format,a.minimum=i,a.maximum=s,r&&(a.pattern=uy)}),t._zod.check=o=>{let a=o.value;if(r){if(!Number.isInteger(a)){o.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:a,inst:t});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:t,continue:!e.abort})}}),IT=O("$ZodCheckBigIntFormat",(t,e)=>{_t.init(t,e);let[r,n]=Uv[e.format];t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,s.minimum=r,s.maximum=n}),t._zod.check=i=>{let s=i.value;sn&&i.issues.push({origin:"bigint",input:s,code:"too_big",maximum:n,inclusive:!0,inst:t,continue:!e.abort})}}),RT=O("$ZodCheckMaxSize",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!vs(i)&&i.size!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=n.value;i.size<=e.maximum||n.issues.push({origin:Su(i),code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),OT=O("$ZodCheckMinSize",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!vs(i)&&i.size!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let i=n.value;i.size>=e.minimum||n.issues.push({origin:Su(i),code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),PT=O("$ZodCheckSizeEquals",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!vs(i)&&i.size!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag;i.minimum=e.size,i.maximum=e.size,i.size=e.size}),t._zod.check=n=>{let i=n.value,s=i.size;if(s===e.size)return;let o=s>e.size;n.issues.push({origin:Su(i),...o?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),CT=O("$ZodCheckMaxLength",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!vs(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=n.value;if(i.length<=e.maximum)return;let o=wu(i);n.issues.push({origin:o,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),AT=O("$ZodCheckMinLength",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!vs(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let i=n.value;if(i.length>=e.minimum)return;let o=wu(i);n.issues.push({origin:o,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),NT=O("$ZodCheckLengthEquals",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!vs(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),t._zod.check=n=>{let i=n.value,s=i.length;if(s===e.length)return;let o=wu(i),a=s>e.length;n.issues.push({origin:o,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),Nu=O("$ZodCheckStringFormat",(t,e)=>{var r,n;_t.init(t,e),t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,e.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),MT=O("$ZodCheckRegex",(t,e)=>{Nu.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})}}),DT=O("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=my),Nu.init(t,e)}),jT=O("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=fy),Nu.init(t,e)}),zT=O("$ZodCheckIncludes",(t,e)=>{_t.init(t,e);let r=En(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),LT=O("$ZodCheckStartsWith",(t,e)=>{_t.init(t,e);let r=new RegExp(`^${En(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.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})}}),UT=O("$ZodCheckEndsWith",(t,e)=>{_t.init(t,e);let r=new RegExp(`.*${En(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.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 ET(t,e,r){t.issues.length&&e.issues.push(...mn(r,t.issues))}var qT=O("$ZodCheckProperty",(t,e)=>{_t.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(i=>ET(i,r,e.property));ET(n,r,e.property)}}),FT=O("$ZodCheckMimeType",(t,e)=>{_t.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,continue:!e.abort})}}),HT=O("$ZodCheckOverwrite",(t,e)=>{_t.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var jp=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(` +${a}`}(0,cr.writeFileSync)(i,c),(0,cr.renameSync)(i,n)}function kSe(t,e,r,n,i,s,o){try{if(!(0,cr.existsSync)(e))return{success:!1,observationCount:0,error:"Folder no longer exists"};let a=ar.default.resolve(e),c=ar.default.resolve(s);if(!a.startsWith(c+ar.default.sep))return{success:!1,observationCount:0,error:"Path escapes project root"};let u=SSe(t,r,n,o);if(u.length===0)return{success:!1,observationCount:0,error:"No observations for folder"};if(i)return{success:!0,observationCount:u.length};let l=wSe(u,r);return ESe(e,l),{success:!0,observationCount:u.length}}catch(a){return{success:!1,observationCount:0,error:String(a)}}}async function TSe(t){try{let e=process.cwd(),r=Se.loadFromFile(hSe),n=parseInt(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10)||50;_.info("CLAUDE_MD","Starting CLAUDE.md generation",{workingDir:e,dryRun:t,observationLimit:n});let i=ar.default.basename(e),s=_Se(e);if(s.size===0)return _.info("CLAUDE_MD","No folders found in project"),0;if(_.info("CLAUDE_MD",`Found ${s.size} folders in project`),!(0,cr.existsSync)(J5))return _.info("CLAUDE_MD","Database not found, no observations to process"),0;let o=new X5.Database(J5,{readonly:!0,create:!1}),a=0,c=0,u=0,l=Array.from(s).sort();for(let d of l){let p=ar.default.relative(e,d),f=kSe(o,d,p,i,t,e,n);f.success?(_.debug("CLAUDE_MD",`Processed folder: ${p}`,{observationCount:f.observationCount}),a++):f.error?.includes("No observations")?c++:(_.warn("CLAUDE_MD",`Error processing folder: ${p}`,{error:f.error}),u++)}return o.close(),_.info("CLAUDE_MD","CLAUDE.md generation complete",{totalFolders:l.length,withObservations:a,noObservations:c,errors:u,dryRun:t}),0}catch(e){return _.error("CLAUDE_MD","Fatal error during CLAUDE.md generation",{error:String(e)}),1}}async function $Se(t){try{let i=function(c){let u=["node_modules",".git",".next","dist","build",".cache","__pycache__",".venv","venv",".idea",".vscode","coverage",".claude-mem",".open-next",".turbo"];try{let l=(0,cr.readdirSync)(c,{withFileTypes:!0});for(let d of l){let p=ar.default.join(c,d.name);if(d.isDirectory())u.includes(d.name)||i(p);else if(d.name==="CLAUDE.md")try{(0,cr.readFileSync)(p,"utf-8").includes("")&&n.push(p)}catch{}}}catch{}};var e=i;let r=process.cwd();_.info("CLAUDE_MD","Starting CLAUDE.md cleanup",{workingDir:r,dryRun:t});let n=[];if(i(r),n.length===0)return _.info("CLAUDE_MD","No CLAUDE.md files with auto-generated content found"),0;_.info("CLAUDE_MD",`Found ${n.length} CLAUDE.md files with auto-generated content`);let s=0,o=0,a=0;for(let c of n){let u=ar.default.relative(r,c);try{let d=(0,cr.readFileSync)(c,"utf-8").replace(/[\s\S]*?<\/claude-mem-context>/g,"").trim();d===""?(t||(0,cr.unlinkSync)(c),_.debug("CLAUDE_MD",`${t?"[DRY-RUN] Would delete":"Deleted"} (empty): ${u}`),s++):(t||(0,cr.writeFileSync)(c,d),_.debug("CLAUDE_MD",`${t?"[DRY-RUN] Would clean":"Cleaned"}: ${u}`),o++)}catch(l){_.warn("CLAUDE_MD",`Error processing ${u}`,{error:String(l)}),a++}}return _.info("CLAUDE_MD","CLAUDE.md cleanup complete",{deleted:s,cleaned:o,errors:a,dryRun:t}),0}catch(r){return _.error("CLAUDE_MD","Fatal error during CLAUDE.md cleanup",{error:String(r)}),1}}var X5,ar,WI,cr,Y5,J5,hSe,gSe,KI=Oe(()=>{"use strict";X5=require("bun:sqlite"),ar=Pe(require("path"),1),WI=Pe(require("os"),1),cr=require("fs"),Y5=require("child_process");rr();ga();e$();re();J5=ar.default.join(WI.default.homedir(),".claude-mem","claude-mem.db"),hSe=ar.default.join(WI.default.homedir(),".claude-mem","settings.json"),gSe={bugfix:"\u{1F534}",feature:"\u{1F7E3}",refactor:"\u{1F504}",change:"\u2705",discovery:"\u{1F535}",decision:"\u2696\uFE0F",session:"\u{1F3AF}",prompt:"\u{1F4AC}"}});var MSe={};_n(MSe,{WorkerService:()=>d_,buildStatusOutput:()=>tH,isPluginDisabledInClaudeSettings:()=>sg});module.exports=zf(MSe);var JI=Pe(require("path"),1),ns=require("fs");var Ye;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(Ye||(Ye={}));var tR;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(tR||(tR={}));var ie=Ye.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),is=t=>{switch(typeof t){case"undefined":return ie.undefined;case"string":return ie.string;case"number":return Number.isNaN(t)?ie.nan:ie.number;case"boolean":return ie.boolean;case"function":return ie.function;case"bigint":return ie.bigint;case"symbol":return ie.symbol;case"object":return Array.isArray(t)?ie.array:t===null?ie.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ie.promise:typeof Map<"u"&&t instanceof Map?ie.map:typeof Set<"u"&&t instanceof Set?ie.set:typeof Date<"u"&&t instanceof Date?ie.date:ie.object;default:return ie.unknown}};var B=Ye.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"]);var bn=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(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,c=0;for(;cr.message){let r=Object.create(null),n=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];r[s]=r[s]||[],r[s].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};bn.create=t=>new bn(t);var cH=(t,e)=>{let r;switch(t.code){case B.invalid_type:t.received===ie.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case B.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,Ye.jsonStringifyReplacer)}`;break;case B.unrecognized_keys:r=`Unrecognized key(s) in object: ${Ye.joinValues(t.keys,", ")}`;break;case B.invalid_union:r="Invalid input";break;case B.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Ye.joinValues(t.options)}`;break;case B.invalid_enum_value:r=`Invalid enum value. Expected ${Ye.joinValues(t.options)}, received '${t.received}'`;break;case B.invalid_arguments:r="Invalid function arguments";break;case B.invalid_return_type:r="Invalid function return type";break;case B.invalid_date:r="Invalid date";break;case B.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}"`:Ye.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case B.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 B.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 B.custom:r="Invalid input";break;case B.invalid_intersection_types:r="Intersection results could not be merged";break;case B.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case B.not_finite:r="Number must be finite";break;default:r=e.defaultError,Ye.assertNever(t)}return{message:r}},qs=cH;var uH=qs;function Qu(){return uH}var Lf=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}};function Q(t,e){let r=Qu(),n=Lf({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===qs?void 0:qs].filter(i=>!!i)});t.common.issues.push(n)}var Rr=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 i of r){if(i.status==="aborted")return we;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return we;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},we=Object.freeze({status:"aborted"}),Ma=t=>({status:"dirty",value:t}),Hr=t=>({status:"valid",value:t}),m_=t=>t.status==="aborted",h_=t=>t.status==="dirty",Io=t=>t.status==="valid",el=t=>typeof Promise<"u"&&t instanceof Promise;var de;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(de||(de={}));var Mn=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}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}},rR=(t,e)=>{if(Io(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new bn(t.common.issues);return this._error=r,this._error}}};function Ae(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:i}}var Fe=class{get description(){return this._def.description}_getType(e){return is(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:is(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Rr,ctx:{common:e.parent.common,data:e.data,parsedType:is(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(el(r))throw new 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:is(e)},i=this._parseSync({data:e,path:n.path,parent:n});return rR(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:is(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Io(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=>Io(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:is(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(el(i)?i:Promise.resolve(i));return rR(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:B.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new ii({schema:this,typeName:ye.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 ni.create(this,this._def)}nullable(){return as.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Zs.create(this)}promise(){return Ro.create(this,this._def)}or(e){return Ua.create([this,e],this._def)}and(e){return Fa.create(this,e,this._def)}transform(e){return new ii({...Ae(this._def),schema:this,typeName:ye.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Ga({...Ae(this._def),innerType:this,defaultValue:r,typeName:ye.ZodDefault})}brand(){return new Uf({typeName:ye.ZodBranded,type:this,...Ae(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Wa({...Ae(this._def),innerType:this,catchValue:r,typeName:ye.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ff.create(this,e)}readonly(){return Va.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},lH=/^c[^\s-]{8,}$/i,dH=/^[0-9a-z]+$/,pH=/^[0-9A-HJKMNP-TV-Z]{26}$/i,fH=/^[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,mH=/^[a-z0-9_-]{21}$/i,hH=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,gH=/^[-+]?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)?)??$/,vH=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,yH="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",g_,_H=/^(?:(?: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])$/,bH=/^(?:(?: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])$/,SH=/^(([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]))$/,xH=/^(([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])$/,wH=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,EH=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nR="((\\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])))",kH=new RegExp(`^${nR}$`);function iR(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 TH(t){return new RegExp(`^${iR(t)}$`)}function $H(t){let e=`${nR}T${iR(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 IH(t,e){return!!((e==="v4"||!e)&&_H.test(t)||(e==="v6"||!e)&&SH.test(t))}function RH(t,e){if(!hH.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,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function OH(t,e){return!!((e==="v4"||!e)&&bH.test(t)||(e==="v6"||!e)&&xH.test(t))}var ja=class t extends Fe{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ie.string){let s=this._getOrReturnCtx(e);return Q(s,{code:B.invalid_type,expected:ie.string,received:s.parsedType}),we}let n=new Rr,i;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(i=this._getOrReturnCtx(e,i),Q(i,{code:B.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.lengthe.test(i),{validation:r,code:B.invalid_string,...de.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...de.errToObj(e)})}url(e){return this._addCheck({kind:"url",...de.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...de.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...de.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...de.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...de.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...de.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...de.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...de.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...de.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...de.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...de.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...de.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,...de.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,...de.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...de.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...de.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...de.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...de.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...de.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...de.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...de.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...de.errToObj(r)})}nonempty(e){return this.min(1,de.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 ja({checks:[],typeName:ye.ZodString,coerce:t?.coerce??!1,...Ae(t)});function CH(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return s%o/10**i}var tl=class t extends Fe{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)!==ie.number){let s=this._getOrReturnCtx(e);return Q(s,{code:B.invalid_type,expected:ie.number,received:s.parsedType}),we}let n,i=new Rr;for(let s of this._def.checks)s.kind==="int"?Ye.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),Q(n,{code:B.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),Q(n,{code:B.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?CH(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),Q(n,{code:B.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),Q(n,{code:B.not_finite,message:s.message}),i.dirty()):Ye.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,de.toString(r))}gt(e,r){return this.setLimit("min",e,!1,de.toString(r))}lte(e,r){return this.setLimit("max",e,!0,de.toString(r))}lt(e,r){return this.setLimit("max",e,!1,de.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:de.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:de.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:de.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:de.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:de.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:de.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:de.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:de.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:de.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:de.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"&&Ye.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 tl({checks:[],typeName:ye.ZodNumber,coerce:t?.coerce||!1,...Ae(t)});var rl=class t extends Fe{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)!==ie.bigint)return this._getInvalidInput(e);let n,i=new Rr;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),Q(n,{code:B.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),Q(n,{code:B.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):Ye.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return Q(r,{code:B.invalid_type,expected:ie.bigint,received:r.parsedType}),we}gte(e,r){return this.setLimit("min",e,!0,de.toString(r))}gt(e,r){return this.setLimit("min",e,!1,de.toString(r))}lte(e,r){return this.setLimit("max",e,!0,de.toString(r))}lt(e,r){return this.setLimit("max",e,!1,de.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:de.toString(i)}]})}_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:de.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:de.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:de.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:de.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:de.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 rl({checks:[],typeName:ye.ZodBigInt,coerce:t?.coerce??!1,...Ae(t)});var nl=class extends Fe{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ie.boolean){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ie.boolean,received:n.parsedType}),we}return Hr(e.data)}};nl.create=t=>new nl({typeName:ye.ZodBoolean,coerce:t?.coerce||!1,...Ae(t)});var il=class t extends Fe{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ie.date){let s=this._getOrReturnCtx(e);return Q(s,{code:B.invalid_type,expected:ie.date,received:s.parsedType}),we}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return Q(s,{code:B.invalid_date}),we}let n=new Rr,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(i=this._getOrReturnCtx(e,i),Q(i,{code:B.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):Ye.assertNever(s);return{status:n.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:de.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:de.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 il({checks:[],coerce:t?.coerce||!1,typeName:ye.ZodDate,...Ae(t)});var sl=class extends Fe{_parse(e){if(this._getType(e)!==ie.symbol){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ie.symbol,received:n.parsedType}),we}return Hr(e.data)}};sl.create=t=>new sl({typeName:ye.ZodSymbol,...Ae(t)});var za=class extends Fe{_parse(e){if(this._getType(e)!==ie.undefined){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ie.undefined,received:n.parsedType}),we}return Hr(e.data)}};za.create=t=>new za({typeName:ye.ZodUndefined,...Ae(t)});var La=class extends Fe{_parse(e){if(this._getType(e)!==ie.null){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ie.null,received:n.parsedType}),we}return Hr(e.data)}};La.create=t=>new La({typeName:ye.ZodNull,...Ae(t)});var ol=class extends Fe{constructor(){super(...arguments),this._any=!0}_parse(e){return Hr(e.data)}};ol.create=t=>new ol({typeName:ye.ZodAny,...Ae(t)});var Hs=class extends Fe{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Hr(e.data)}};Hs.create=t=>new Hs({typeName:ye.ZodUnknown,...Ae(t)});var Oi=class extends Fe{_parse(e){let r=this._getOrReturnCtx(e);return Q(r,{code:B.invalid_type,expected:ie.never,received:r.parsedType}),we}};Oi.create=t=>new Oi({typeName:ye.ZodNever,...Ae(t)});var al=class extends Fe{_parse(e){if(this._getType(e)!==ie.undefined){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ie.void,received:n.parsedType}),we}return Hr(e.data)}};al.create=t=>new al({typeName:ye.ZodVoid,...Ae(t)});var Zs=class t extends Fe{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==ie.array)return Q(r,{code:B.invalid_type,expected:ie.array,received:r.parsedType}),we;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.lengthi.maxLength.value&&(Q(r,{code:B.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new Mn(r,o,r.path,a)))).then(o=>Rr.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new Mn(r,o,r.path,a)));return Rr.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:de.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:de.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:de.toString(r)}})}nonempty(e){return this.min(1,e)}};Zs.create=(t,e)=>new Zs({type:t,minLength:null,maxLength:null,exactLength:null,typeName:ye.ZodArray,...Ae(e)});function Da(t){if(t instanceof Sn){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=ni.create(Da(n))}return new Sn({...t._def,shape:()=>e})}else return t instanceof Zs?new Zs({...t._def,type:Da(t.element)}):t instanceof ni?ni.create(Da(t.unwrap())):t instanceof as?as.create(Da(t.unwrap())):t instanceof os?os.create(t.items.map(e=>Da(e))):t}var Sn=class t extends Fe{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=Ye.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==ie.object){let u=this._getOrReturnCtx(e);return Q(u,{code:B.invalid_type,expected:ie.object,received:u.parsedType}),we}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Oi&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Mn(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Oi){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(Q(i,{code:B.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Mn(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,p=await l.value;u.push({key:d,value:p,alwaysSet:l.alwaysSet})}return u}).then(u=>Rr.mergeObjectSync(n,u)):Rr.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return de.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:de.errToObj(e).message??i}:{message:i}}}:{}})}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:ye.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 Ye.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 Ye.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Da(this)}partial(e){let r={};for(let n of Ye.objectKeys(this.shape)){let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of Ye.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof ni;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return sR(Ye.objectKeys(this.shape))}};Sn.create=(t,e)=>new Sn({shape:()=>t,unknownKeys:"strip",catchall:Oi.create(),typeName:ye.ZodObject,...Ae(e)});Sn.strictCreate=(t,e)=>new Sn({shape:()=>t,unknownKeys:"strict",catchall:Oi.create(),typeName:ye.ZodObject,...Ae(e)});Sn.lazycreate=(t,e)=>new Sn({shape:t,unknownKeys:"strip",catchall:Oi.create(),typeName:ye.ZodObject,...Ae(e)});var Ua=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new bn(a.ctx.common.issues));return Q(r,{code:B.invalid_union,unionErrors:o}),we}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new bn(c));return Q(r,{code:B.invalid_union,unionErrors:a}),we}}get options(){return this._def.options}};Ua.create=(t,e)=>new Ua({options:t,typeName:ye.ZodUnion,...Ae(e)});var ss=t=>t instanceof qa?ss(t.schema):t instanceof ii?ss(t.innerType()):t instanceof Ha?[t.value]:t instanceof Za?t.options:t instanceof Ba?Ye.objectValues(t.enum):t instanceof Ga?ss(t._def.innerType):t instanceof za?[void 0]:t instanceof La?[null]:t instanceof ni?[void 0,...ss(t.unwrap())]:t instanceof as?[null,...ss(t.unwrap())]:t instanceof Uf||t instanceof Va?ss(t.unwrap()):t instanceof Wa?ss(t._def.innerType):[],v_=class t extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ie.object)return Q(r,{code:B.invalid_type,expected:ie.object,received:r.parsedType}),we;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(Q(r,{code:B.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),we)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=ss(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:ye.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Ae(n)})}};function y_(t,e){let r=is(t),n=is(e);if(t===e)return{valid:!0,data:t};if(r===ie.object&&n===ie.object){let i=Ye.objectKeys(e),s=Ye.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let c=y_(t[a],e[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(r===ie.array&&n===ie.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s{if(m_(s)||m_(o))return we;let a=y_(s.value,o.value);return a.valid?((h_(s)||h_(o))&&r.dirty(),{status:r.value,value:a.data}):(Q(n,{code:B.invalid_intersection_types}),we)};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(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Fa.create=(t,e,r)=>new Fa({left:t,right:e,typeName:ye.ZodIntersection,...Ae(r)});var os=class t extends Fe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ie.array)return Q(n,{code:B.invalid_type,expected:ie.array,received:n.parsedType}),we;if(n.data.lengththis._def.items.length&&(Q(n,{code:B.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new Mn(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Rr.mergeArray(r,o)):Rr.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};os.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new os({items:t,typeName:ye.ZodTuple,rest:null,...Ae(e)})};var __=class t extends Fe{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!==ie.object)return Q(n,{code:B.invalid_type,expected:ie.object,received:n.parsedType}),we;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new Mn(n,a,n.path,a)),value:o._parse(new Mn(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Rr.mergeObjectAsync(r,i):Rr.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Fe?new t({keyType:e,valueType:r,typeName:ye.ZodRecord,...Ae(n)}):new t({keyType:ja.create(),valueType:e,typeName:ye.ZodRecord,...Ae(r)})}},cl=class extends Fe{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!==ie.map)return Q(n,{code:B.invalid_type,expected:ie.map,received:n.parsedType}),we;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,c],u)=>({key:i._parse(new Mn(n,a,n.path,[u,"key"])),value:s._parse(new Mn(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return we;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return we;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}}}};cl.create=(t,e,r)=>new cl({valueType:e,keyType:t,typeName:ye.ZodMap,...Ae(r)});var ul=class t extends Fe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ie.set)return Q(n,{code:B.invalid_type,expected:ie.set,received:n.parsedType}),we;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(Q(n,{code:B.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return we;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>s._parse(new Mn(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:de.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:de.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};ul.create=(t,e)=>new ul({valueType:t,minSize:null,maxSize:null,typeName:ye.ZodSet,...Ae(e)});var b_=class t extends Fe{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ie.function)return Q(r,{code:B.invalid_type,expected:ie.function,received:r.parsedType}),we;function n(a,c){return Lf({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qu(),qs].filter(u=>!!u),issueData:{code:B.invalid_arguments,argumentsError:c}})}function i(a,c){return Lf({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qu(),qs].filter(u=>!!u),issueData:{code:B.invalid_return_type,returnTypeError:c}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Ro){let a=this;return Hr(async function(...c){let u=new bn([]),l=await a._def.args.parseAsync(c,s).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(f=>{throw u.addIssue(i(d,f)),u})})}else{let a=this;return Hr(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new bn([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new bn([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:os.create(e).rest(Hs.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||os.create([]).rest(Hs.create()),returns:r||Hs.create(),typeName:ye.ZodFunction,...Ae(n)})}},qa=class extends Fe{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})}};qa.create=(t,e)=>new qa({getter:t,typeName:ye.ZodLazy,...Ae(e)});var Ha=class extends Fe{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return Q(r,{received:r.data,code:B.invalid_literal,expected:this._def.value}),we}return{status:"valid",value:e.data}}get value(){return this._def.value}};Ha.create=(t,e)=>new Ha({value:t,typeName:ye.ZodLiteral,...Ae(e)});function sR(t,e){return new Za({values:t,typeName:ye.ZodEnum,...Ae(e)})}var Za=class t extends Fe{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return Q(r,{expected:Ye.joinValues(n),received:r.parsedType,code:B.invalid_type}),we}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 Q(r,{received:r.data,code:B.invalid_enum_value,options:n}),we}return Hr(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})}};Za.create=sR;var Ba=class extends Fe{_parse(e){let r=Ye.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ie.string&&n.parsedType!==ie.number){let i=Ye.objectValues(r);return Q(n,{expected:Ye.joinValues(i),received:n.parsedType,code:B.invalid_type}),we}if(this._cache||(this._cache=new Set(Ye.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=Ye.objectValues(r);return Q(n,{received:n.data,code:B.invalid_enum_value,options:i}),we}return Hr(e.data)}get enum(){return this._def.values}};Ba.create=(t,e)=>new Ba({values:t,typeName:ye.ZodNativeEnum,...Ae(e)});var Ro=class extends Fe{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ie.promise&&r.common.async===!1)return Q(r,{code:B.invalid_type,expected:ie.promise,received:r.parsedType}),we;let n=r.parsedType===ie.promise?r.data:Promise.resolve(r.data);return Hr(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Ro.create=(t,e)=>new Ro({type:t,typeName:ye.ZodPromise,...Ae(e)});var ii=class extends Fe{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ye.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{Q(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return we;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?we:c.status==="dirty"?Ma(c.value):r.value==="dirty"?Ma(c.value):c});{if(r.value==="aborted")return we;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?we:a.status==="dirty"?Ma(a.value):r.value==="dirty"?Ma(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?we:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?we:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Io(o))return we;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Io(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):we);Ye.assertNever(i)}};ii.create=(t,e,r)=>new ii({schema:t,typeName:ye.ZodEffects,effect:e,...Ae(r)});ii.createWithPreprocess=(t,e,r)=>new ii({schema:e,effect:{type:"preprocess",transform:t},typeName:ye.ZodEffects,...Ae(r)});var ni=class extends Fe{_parse(e){return this._getType(e)===ie.undefined?Hr(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ni.create=(t,e)=>new ni({innerType:t,typeName:ye.ZodOptional,...Ae(e)});var as=class extends Fe{_parse(e){return this._getType(e)===ie.null?Hr(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};as.create=(t,e)=>new as({innerType:t,typeName:ye.ZodNullable,...Ae(e)});var Ga=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===ie.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Ga.create=(t,e)=>new Ga({innerType:t,typeName:ye.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ae(e)});var Wa=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return el(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new bn(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new bn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Wa.create=(t,e)=>new Wa({innerType:t,typeName:ye.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ae(e)});var ll=class extends Fe{_parse(e){if(this._getType(e)!==ie.nan){let n=this._getOrReturnCtx(e);return Q(n,{code:B.invalid_type,expected:ie.nan,received:n.parsedType}),we}return{status:"valid",value:e.data}}};ll.create=t=>new ll({typeName:ye.ZodNaN,...Ae(t)});var Uf=class extends Fe{_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}},Ff=class t extends Fe{_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"?we:s.status==="dirty"?(r.dirty(),Ma(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?we:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:ye.ZodPipeline})}},Va=class extends Fe{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Io(i)&&(i.value=Object.freeze(i.value)),i);return el(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Va.create=(t,e)=>new Va({innerType:t,typeName:ye.ZodReadonly,...Ae(e)});var txe={object:Sn.lazycreate},ye;(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"})(ye||(ye={}));var rxe=ja.create,nxe=tl.create,ixe=ll.create,sxe=rl.create,oxe=nl.create,axe=il.create,cxe=sl.create,uxe=za.create,lxe=La.create,dxe=ol.create,pxe=Hs.create,fxe=Oi.create,mxe=al.create,hxe=Zs.create,PH=Sn.create,gxe=Sn.strictCreate,vxe=Ua.create,yxe=v_.create,_xe=Fa.create,bxe=os.create,Sxe=__.create,xxe=cl.create,wxe=ul.create,Exe=b_.create,kxe=qa.create,Txe=Ha.create,$xe=Za.create,Ixe=Ba.create,Rxe=Ro.create,Oxe=ii.create,Cxe=ni.create,Pxe=as.create,Axe=ii.createWithPreprocess,Nxe=Ff.create;var oR=Object.freeze({status:"aborted"});function O(t,e,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:o,traits:new Set},enumerable:!1}),a._zod.traits.has(t))return;a._zod.traits.add(t),e(a,c);let u=o.prototype,l=Object.keys(u);for(let d=0;dr?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var Ci=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Oo=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},qf={};function tr(t){return t&&Object.assign(qf,t),qf}var G={};_n(G,{BIGINT_FORMAT_RANGES:()=>R_,Class:()=>x_,NUMBER_FORMAT_RANGES:()=>I_,aborted:()=>Vs,allowsEval:()=>k_,assert:()=>LH,assertEqual:()=>MH,assertIs:()=>jH,assertNever:()=>zH,assertNotEqual:()=>DH,assignProp:()=>Gs,base64ToUint8Array:()=>uR,base64urlToUint8Array:()=>r3,cached:()=>Ja,captureStackTrace:()=>Zf,cleanEnum:()=>t3,cleanRegex:()=>fl,clone:()=>Zr,cloneDef:()=>FH,createTransparentProxy:()=>WH,defineLazy:()=>Le,esc:()=>Hf,escapeRegex:()=>Dn,extend:()=>JH,finalizeIssue:()=>on,floatSafeRemainder:()=>w_,getElementAtPath:()=>qH,getEnumValues:()=>pl,getLengthableOrigin:()=>gl,getParsedType:()=>GH,getSizableOrigin:()=>hl,hexToUint8Array:()=>i3,isObject:()=>Co,isPlainObject:()=>Ws,issue:()=>Xa,joinValues:()=>_e,jsonStringifyReplacer:()=>Ka,merge:()=>YH,mergeDefs:()=>cs,normalizeParams:()=>ee,nullish:()=>Bs,numKeys:()=>BH,objectClone:()=>UH,omit:()=>KH,optionalKeys:()=>$_,parsedType:()=>Ee,partial:()=>QH,pick:()=>VH,prefixIssues:()=>xn,primitiveTypes:()=>T_,promiseAllObject:()=>HH,propertyKeyTypes:()=>ml,randomString:()=>ZH,required:()=>e3,safeExtend:()=>XH,shallowClone:()=>cR,slugify:()=>E_,stringifyPrimitive:()=>be,uint8ArrayToBase64:()=>lR,uint8ArrayToBase64url:()=>n3,uint8ArrayToHex:()=>s3,unwrapMessage:()=>dl});function MH(t){return t}function DH(t){return t}function jH(t){}function zH(t){throw new Error("Unexpected value in exhaustive check")}function LH(t){}function pl(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,i])=>e.indexOf(+n)===-1).map(([n,i])=>i)}function _e(t,e="|"){return t.map(r=>be(r)).join(e)}function Ka(t,e){return typeof e=="bigint"?e.toString():e}function Ja(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Bs(t){return t==null}function fl(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function w_(t,e){let r=(t.toString().split(".")[1]||"").length,n=e.toString(),i=(n.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(n)){let c=n.match(/\d?e-(\d?)/);c?.[1]&&(i=Number.parseInt(c[1]))}let s=r>i?r:i,o=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return o%a/10**s}var aR=Symbol("evaluating");function Le(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==aR)return n===void 0&&(n=aR,n=r()),n},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function UH(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Gs(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function cs(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function FH(t){return cs(t._zod.def)}function qH(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function HH(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let s=0;s{};function Co(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var k_=Ja(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Ws(t){if(Co(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Co(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function cR(t){return Ws(t)?{...t}:Array.isArray(t)?[...t]:t}function BH(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var GH=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}`)}},ml=new Set(["string","number","symbol"]),T_=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Dn(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Zr(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function ee(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 WH(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,s){return e??(e=t()),Reflect.set(e,n,i,s)},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,i){return e??(e=t()),Reflect.defineProperty(e,n,i)}})}function be(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function $_(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var I_={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]},R_={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function VH(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let s=cs(t._zod.def,{get shape(){let o={};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&(o[a]=r.shape[a])}return Gs(this,"shape",o),o},checks:[]});return Zr(t,s)}function KH(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let s=cs(t._zod.def,{get shape(){let o={...t._zod.def.shape};for(let a in e){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);e[a]&&delete o[a]}return Gs(this,"shape",o),o},checks:[]});return Zr(t,s)}function JH(t,e){if(!Ws(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let s=t._zod.def.shape;for(let o in e)if(Object.getOwnPropertyDescriptor(s,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let i=cs(t._zod.def,{get shape(){let s={...t._zod.def.shape,...e};return Gs(this,"shape",s),s}});return Zr(t,i)}function XH(t,e){if(!Ws(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=cs(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Gs(this,"shape",n),n}});return Zr(t,r)}function YH(t,e){let r=cs(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Gs(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:[]});return Zr(t,r)}function QH(t,e,r){let i=e._zod.def.checks;if(i&&i.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let o=cs(e._zod.def,{get shape(){let a=e._zod.def.shape,c={...a};if(r)for(let u in r){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=t?new t({type:"optional",innerType:a[u]}):a[u])}else for(let u in a)c[u]=t?new t({type:"optional",innerType:a[u]}):a[u];return Gs(this,"shape",c),c},checks:[]});return Zr(e,o)}function e3(t,e,r){let n=cs(e._zod.def,{get shape(){let i=e._zod.def.shape,s={...i};if(r)for(let o in r){if(!(o in s))throw new Error(`Unrecognized key: "${o}"`);r[o]&&(s[o]=new t({type:"nonoptional",innerType:i[o]}))}else for(let o in i)s[o]=new t({type:"nonoptional",innerType:i[o]});return Gs(this,"shape",s),s}});return Zr(e,n)}function Vs(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function dl(t){return typeof t=="string"?t:t?.message}function on(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=dl(t.inst?._zod.def?.error?.(t))??dl(e?.error?.(t))??dl(r.customError?.(t))??dl(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function hl(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function gl(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function Ee(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let r=t;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return e}function Xa(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function t3(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function uR(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;ne.toString(16).padStart(2,"0")).join("")}var x_=class{constructor(...e){}};var dR=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,Ka,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Bf=O("$ZodError",dR),vl=O("$ZodError",dR,{Parent:Error});function Gf(t,e=r=>r.message){let r={},n=[];for(let i of t.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}function Wf(t,e=r=>r.message){let r={_errors:[]},n=i=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(o=>n({issues:o}));else if(s.code==="invalid_key")n({issues:s.issues});else if(s.code==="invalid_element")n({issues:s.issues});else if(s.path.length===0)r._errors.push(e(s));else{let o=r,a=0;for(;a(e,r,n,i)=>{let s=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},s);if(o instanceof Promise)throw new Ci;if(o.issues.length){let a=new(i?.Err??t)(o.issues.map(c=>on(c,s,tr())));throw Zf(a,i?.callee),a}return o.value},_l=yl(vl),bl=t=>async(e,r,n,i)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??t)(o.issues.map(c=>on(c,s,tr())));throw Zf(a,i?.callee),a}return o.value},Sl=bl(vl),xl=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Ci;return s.issues.length?{success:!1,error:new(t??Bf)(s.issues.map(o=>on(o,i,tr())))}:{success:!0,data:s.value}},Ya=xl(vl),wl=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},s=e._zod.run({value:r,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new t(s.issues.map(o=>on(o,i,tr())))}:{success:!0,data:s.value}},El=wl(vl),pR=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return yl(t)(e,r,i)};var fR=t=>(e,r,n)=>yl(t)(e,r,n);var mR=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return bl(t)(e,r,i)};var hR=t=>async(e,r,n)=>bl(t)(e,r,n);var gR=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return xl(t)(e,r,i)};var vR=t=>(e,r,n)=>xl(t)(e,r,n);var yR=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return wl(t)(e,r,i)};var _R=t=>async(e,r,n)=>wl(t)(e,r,n);var jn={};_n(jn,{base64:()=>B_,base64url:()=>Vf,bigint:()=>X_,boolean:()=>Q_,browserEmail:()=>m3,cidrv4:()=>H_,cidrv6:()=>Z_,cuid:()=>O_,cuid2:()=>C_,date:()=>W_,datetime:()=>K_,domain:()=>v3,duration:()=>D_,e164:()=>G_,email:()=>z_,emoji:()=>L_,extendedDuration:()=>a3,guid:()=>j_,hex:()=>y3,hostname:()=>g3,html5Email:()=>d3,idnEmail:()=>f3,integer:()=>Y_,ipv4:()=>U_,ipv6:()=>F_,ksuid:()=>N_,lowercase:()=>rb,mac:()=>q_,md5_base64:()=>b3,md5_base64url:()=>S3,md5_hex:()=>_3,nanoid:()=>M_,null:()=>eb,number:()=>Kf,rfc5322Email:()=>p3,sha1_base64:()=>w3,sha1_base64url:()=>E3,sha1_hex:()=>x3,sha256_base64:()=>T3,sha256_base64url:()=>$3,sha256_hex:()=>k3,sha384_base64:()=>R3,sha384_base64url:()=>O3,sha384_hex:()=>I3,sha512_base64:()=>P3,sha512_base64url:()=>A3,sha512_hex:()=>C3,string:()=>J_,time:()=>V_,ulid:()=>P_,undefined:()=>tb,unicodeEmail:()=>bR,uppercase:()=>nb,uuid:()=>Po,uuid4:()=>c3,uuid6:()=>u3,uuid7:()=>l3,xid:()=>A_});var O_=/^[cC][^\s-]{8,}$/,C_=/^[0-9a-z]+$/,P_=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,A_=/^[0-9a-vA-V]{20}$/,N_=/^[A-Za-z0-9]{27}$/,M_=/^[a-zA-Z0-9_-]{21}$/,D_=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,a3=/^[-+]?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)?)??$/,j_=/^([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})$/,Po=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|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,c3=Po(4),u3=Po(6),l3=Po(7),z_=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,d3=/^[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])?)*$/,p3=/^(([^<>()\[\]\\.,;:\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,}))$/,bR=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,f3=bR,m3=/^[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])?)*$/,h3="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function L_(){return new RegExp(h3,"u")}var U_=/^(?:(?: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])$/,F_=/^(([0-9a-fA-F]{1,4}:){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}|:))$/,q_=t=>{let e=Dn(t??":");return new RegExp(`^(?:[0-9A-F]{2}${e}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${e}){5}[0-9a-f]{2}$`)},H_=/^((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])$/,Z_=/^(([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])$/,B_=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Vf=/^[A-Za-z0-9_-]*$/,g3=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,v3=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,G_=/^\+[1-9]\d{6,14}$/,SR="(?:(?:\\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])))",W_=new RegExp(`^${SR}$`);function xR(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 V_(t){return new RegExp(`^${xR(t)}$`)}function K_(t){let e=xR({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${SR}T(?:${n})$`)}var J_=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},X_=/^-?\d+n?$/,Y_=/^-?\d+$/,Kf=/^-?\d+(?:\.\d+)?$/,Q_=/^(?:true|false)$/i,eb=/^null$/i;var tb=/^undefined$/i;var rb=/^[^A-Z]*$/,nb=/^[^a-z]*$/,y3=/^[0-9a-fA-F]*$/;function kl(t,e){return new RegExp(`^[A-Za-z0-9+/]{${t}}${e}$`)}function Tl(t){return new RegExp(`^[A-Za-z0-9_-]{${t}}$`)}var _3=/^[0-9a-fA-F]{32}$/,b3=kl(22,"=="),S3=Tl(22),x3=/^[0-9a-fA-F]{40}$/,w3=kl(27,"="),E3=Tl(27),k3=/^[0-9a-fA-F]{64}$/,T3=kl(43,"="),$3=Tl(43),I3=/^[0-9a-fA-F]{96}$/,R3=kl(64,""),O3=Tl(64),C3=/^[0-9a-fA-F]{128}$/,P3=kl(86,"=="),A3=Tl(86);var _t=O("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),ER={number:"number",bigint:"bigint",object:"date"},ib=O("$ZodCheckLessThan",(t,e)=>{_t.init(t,e);let r=ER[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,s=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{_t.init(t,e);let r=ER[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,s=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>s&&(e.inclusive?i.minimum=e.value:i.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:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),kR=O("$ZodCheckMultipleOf",(t,e)=>{_t.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):w_(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})}}),TR=O("$ZodCheckNumberFormat",(t,e)=>{_t.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,s]=I_[e.format];t._zod.onattach.push(o=>{let a=o._zod.bag;a.format=e.format,a.minimum=i,a.maximum=s,r&&(a.pattern=Y_)}),t._zod.check=o=>{let a=o.value;if(r){if(!Number.isInteger(a)){o.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:a,inst:t});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:t,continue:!e.abort})}}),$R=O("$ZodCheckBigIntFormat",(t,e)=>{_t.init(t,e);let[r,n]=R_[e.format];t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,s.minimum=r,s.maximum=n}),t._zod.check=i=>{let s=i.value;sn&&i.issues.push({origin:"bigint",input:s,code:"too_big",maximum:n,inclusive:!0,inst:t,continue:!e.abort})}}),IR=O("$ZodCheckMaxSize",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Bs(i)&&i.size!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=n.value;i.size<=e.maximum||n.issues.push({origin:hl(i),code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),RR=O("$ZodCheckMinSize",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Bs(i)&&i.size!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let i=n.value;i.size>=e.minimum||n.issues.push({origin:hl(i),code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),OR=O("$ZodCheckSizeEquals",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Bs(i)&&i.size!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag;i.minimum=e.size,i.maximum=e.size,i.size=e.size}),t._zod.check=n=>{let i=n.value,s=i.size;if(s===e.size)return;let o=s>e.size;n.issues.push({origin:hl(i),...o?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),CR=O("$ZodCheckMaxLength",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Bs(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=n.value;if(i.length<=e.maximum)return;let o=gl(i);n.issues.push({origin:o,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),PR=O("$ZodCheckMinLength",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Bs(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let i=n.value;if(i.length>=e.minimum)return;let o=gl(i);n.issues.push({origin:o,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),AR=O("$ZodCheckLengthEquals",(t,e)=>{var r;_t.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Bs(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),t._zod.check=n=>{let i=n.value,s=i.length;if(s===e.length)return;let o=gl(i),a=s>e.length;n.issues.push({origin:o,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),$l=O("$ZodCheckStringFormat",(t,e)=>{var r,n;_t.init(t,e),t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,e.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),NR=O("$ZodCheckRegex",(t,e)=>{$l.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})}}),MR=O("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=rb),$l.init(t,e)}),DR=O("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=nb),$l.init(t,e)}),jR=O("$ZodCheckIncludes",(t,e)=>{_t.init(t,e);let r=Dn(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),zR=O("$ZodCheckStartsWith",(t,e)=>{_t.init(t,e);let r=new RegExp(`^${Dn(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.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})}}),LR=O("$ZodCheckEndsWith",(t,e)=>{_t.init(t,e);let r=new RegExp(`.*${Dn(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.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 wR(t,e,r){t.issues.length&&e.issues.push(...xn(r,t.issues))}var UR=O("$ZodCheckProperty",(t,e)=>{_t.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(i=>wR(i,r,e.property));wR(n,r,e.property)}}),FR=O("$ZodCheckMimeType",(t,e)=>{_t.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,continue:!e.abort})}}),qR=O("$ZodCheckOverwrite",(t,e)=>{_t.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Jf=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(o=>o),i=Math.min(...n.map(o=>o.length-o.trimStart().length)),s=n.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of s)this.content.push(o)}compile(){let e=Function,r=this?.args,i=[...(this?.content??[""]).map(s=>` ${s}`)];return new e(...r,i.join(` -`))}};var BT={major:4,minor:3,patch:6};var Pe=O("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=BT;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let s of i._zod.onattach)s(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let i=(o,a,c)=>{let u=bs(o),l;for(let d of a){if(d._zod.def.when){if(!d._zod.def.when(o))continue}else if(u)continue;let p=o.issues.length,m=d._zod.check(o);if(m instanceof Promise&&c?.async===!1)throw new ci;if(l||m instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await m,o.issues.length!==p&&(u||(u=bs(o,p)))});else{if(o.issues.length===p)continue;u||(u=bs(o,p))}}return l?l.then(()=>o):o},s=(o,a,c)=>{if(bs(o))return o.aborted=!0,o;let u=i(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new ci;return u.then(l=>t._zod.parse(l,c))}return t._zod.parse(u,c)};t._zod.run=(o,a)=>{if(a.skipChecks)return t._zod.parse(o,a);if(a.direction==="backward"){let u=t._zod.parse({value:o.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(l=>s(l,o,a)):s(u,o,a)}let c=t._zod.parse(o,a);if(c instanceof Promise){if(a.async===!1)throw new ci;return c.then(u=>i(u,n,a))}return i(c,n,a)}}Me(t,"~standard",()=>({validate:i=>{try{let s=ha(t,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Pu(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}))}),Qs=O("$ZodString",(t,e)=>{Pe.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??ay(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}}),mt=O("$ZodStringFormat",(t,e)=>{Nu.init(t,e),Qs.init(t,e)}),yy=O("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Wv),mt.init(t,e)}),_y=O("$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=Ys(n))}else e.pattern??(e.pattern=Ys());mt.init(t,e)}),by=O("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Kv),mt.init(t,e)}),xy=O("$ZodURL",(t,e)=>{mt.init(t,e),t._zod.check=r=>{try{let n=r.value.trim(),i=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(i.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=i.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),Sy=O("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Jv()),mt.init(t,e)}),wy=O("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Vv),mt.init(t,e)}),Ey=O("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=qv),mt.init(t,e)}),ky=O("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Fv),mt.init(t,e)}),$y=O("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Hv),mt.init(t,e)}),Ty=O("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Zv),mt.init(t,e)}),Iy=O("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Bv),mt.init(t,e)}),Ry=O("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=oy(e)),mt.init(t,e)}),Oy=O("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=iy),mt.init(t,e)}),Py=O("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=sy(e)),mt.init(t,e)}),Cy=O("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Gv),mt.init(t,e)}),Ay=O("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Xv),mt.init(t,e),t._zod.bag.format="ipv4"}),Ny=O("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=Yv),mt.init(t,e),t._zod.bag.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})}}}),My=O("$ZodMAC",(t,e)=>{e.pattern??(e.pattern=Qv(e.delimiter)),mt.init(t,e),t._zod.bag.format="mac"}),Dy=O("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=ey),mt.init(t,e)}),jy=O("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=ty),mt.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[i,s]=n;if(!s)throw new Error;let o=Number(s);if(`${o}`!==s)throw new Error;if(o<0||o>128)throw new Error;new URL(`http://[${i}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function nI(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var zy=O("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=ry),mt.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{nI(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function x8(t){if(!Mp.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return nI(r)}var Ly=O("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Mp),mt.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{x8(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),Uy=O("$ZodE164",(t,e)=>{e.pattern??(e.pattern=ny),mt.init(t,e)});function S8(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let i=JSON.parse(atob(n));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}var qy=O("$ZodJWT",(t,e)=>{mt.init(t,e),t._zod.check=r=>{S8(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),Fy=O("$ZodCustomStringFormat",(t,e)=>{mt.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})}}),Hp=O("$ZodNumber",(t,e)=>{Pe.init(t,e),t._zod.pattern=t._zod.bag.pattern??Dp,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let i=r.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return r;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...s?{received:s}:{}}),r}}),Hy=O("$ZodNumberFormat",(t,e)=>{TT.init(t,e),Hp.init(t,e)}),Mu=O("$ZodBoolean",(t,e)=>{Pe.init(t,e),t._zod.pattern=ly,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let i=r.value;return typeof i=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),r}}),Zp=O("$ZodBigInt",(t,e)=>{Pe.init(t,e),t._zod.pattern=cy,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}}),Zy=O("$ZodBigIntFormat",(t,e)=>{IT.init(t,e),Zp.init(t,e)}),By=O("$ZodSymbol",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;return typeof i=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:t}),r}}),Vy=O("$ZodUndefined",(t,e)=>{Pe.init(t,e),t._zod.pattern=py,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(r,n)=>{let i=r.value;return typeof i>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:t}),r}}),Gy=O("$ZodNull",(t,e)=>{Pe.init(t,e),t._zod.pattern=dy,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let i=r.value;return i===null||r.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),r}}),Wy=O("$ZodAny",(t,e)=>{Pe.init(t,e),t._zod.parse=r=>r}),Ky=O("$ZodUnknown",(t,e)=>{Pe.init(t,e),t._zod.parse=r=>r}),Jy=O("$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)}),Xy=O("$ZodVoid",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;return typeof i>"u"||r.issues.push({expected:"void",code:"invalid_type",input:i,inst:t}),r}}),Yy=O("$ZodDate",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let i=r.value,s=i instanceof Date;return s&&!Number.isNaN(i.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:i,...s?{received:"Invalid Date"}:{},inst:t}),r}});function VT(t,e,r){t.issues.length&&e.issues.push(...mn(r,t.issues)),e.value[r]=t.value}var Qy=O("$ZodArray",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),r;r.value=Array(i.length);let s=[];for(let o=0;oVT(u,r,o))):VT(c,r,o)}return s.length?Promise.all(s).then(()=>r):r}});function Fp(t,e,r,n,i){if(t.issues.length){if(i&&!(r in n))return;e.issues.push(...mn(r,t.issues))}t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}function iI(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=zv(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function sI(t,e,r,n,i,s){let o=[],a=i.keySet,c=i.catchall._zod,u=c.def.type,l=c.optout==="optional";for(let d in e){if(a.has(d))continue;if(u==="never"){o.push(d);continue}let p=c.run({value:e[d],issues:[]},n);p instanceof Promise?t.push(p.then(m=>Fp(m,r,d,e,l))):Fp(p,r,d,e,l)}return o.length&&r.issues.push({code:"unrecognized_keys",keys:o,input:e,inst:s}),t.length?Promise.all(t).then(()=>r):r}var oI=O("$ZodObject",(t,e)=>{if(Pe.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let a=e.shape;Object.defineProperty(e,"shape",{get:()=>{let c={...a};return Object.defineProperty(e,"shape",{value:c}),c}})}let n=ma(()=>iI(e));Me(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let l=a[u]._zod;if(l.values){c[u]??(c[u]=new Set);for(let d of l.values)c[u].add(d)}}return c});let i=Xs,s=e.catchall,o;t._zod.parse=(a,c)=>{o??(o=n.value);let u=a.value;if(!i(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),a;a.value={};let l=[],d=o.shape;for(let p of o.keys){let m=d[p],f=m._zod.optout==="optional",g=m._zod.run({value:u[p],issues:[]},c);g instanceof Promise?l.push(g.then(h=>Fp(h,a,p,u,f))):Fp(g,a,p,u,f)}return s?sI(l,u,a,c,n.value,t):l.length?Promise.all(l).then(()=>a):a}}),aI=O("$ZodObjectJIT",(t,e)=>{oI.init(t,e);let r=t._zod.parse,n=ma(()=>iI(e)),i=p=>{let m=new jp(["shape","payload","ctx"]),f=n.value,g=b=>{let _=Op(b);return`shape[${_}]._zod.run({ value: input[${_}], issues: [] }, ctx)`};m.write("const input = payload.value;");let h=Object.create(null),v=0;for(let b of f.keys)h[b]=`key_${v++}`;m.write("const newResult = {};");for(let b of f.keys){let _=h[b],S=Op(b),E=p[b]?._zod?.optout==="optional";m.write(`const ${_} = ${g(b)};`),E?m.write(` - if (${_}.issues.length) { - if (${S} in input) { - payload.issues = payload.issues.concat(${_}.issues.map(iss => ({ +`))}};var ZR={major:4,minor:3,patch:4};var Ce=O("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=ZR;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let s of i._zod.onattach)s(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let i=(o,a,c)=>{let u=Vs(o),l;for(let d of a){if(d._zod.def.when){if(!d._zod.def.when(o))continue}else if(u)continue;let p=o.issues.length,f=d._zod.check(o);if(f instanceof Promise&&c?.async===!1)throw new Ci;if(l||f instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await f,o.issues.length!==p&&(u||(u=Vs(o,p)))});else{if(o.issues.length===p)continue;u||(u=Vs(o,p))}}return l?l.then(()=>o):o},s=(o,a,c)=>{if(Vs(o))return o.aborted=!0,o;let u=i(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new Ci;return u.then(l=>t._zod.parse(l,c))}return t._zod.parse(u,c)};t._zod.run=(o,a)=>{if(a.skipChecks)return t._zod.parse(o,a);if(a.direction==="backward"){let u=t._zod.parse({value:o.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(l=>s(l,o,a)):s(u,o,a)}let c=t._zod.parse(o,a);if(c instanceof Promise){if(a.async===!1)throw new Ci;return c.then(u=>i(u,n,a))}return i(c,n,a)}}Le(t,"~standard",()=>({validate:i=>{try{let s=Ya(t,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return El(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}))}),Ao=O("$ZodString",(t,e)=>{Ce.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??J_(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}}),mt=O("$ZodStringFormat",(t,e)=>{$l.init(t,e),Ao.init(t,e)}),ab=O("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=j_),mt.init(t,e)}),cb=O("$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=Po(n))}else e.pattern??(e.pattern=Po());mt.init(t,e)}),ub=O("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=z_),mt.init(t,e)}),lb=O("$ZodURL",(t,e)=>{mt.init(t,e),t._zod.check=r=>{try{let n=r.value.trim(),i=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(i.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=i.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),db=O("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=L_()),mt.init(t,e)}),pb=O("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=M_),mt.init(t,e)}),fb=O("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=O_),mt.init(t,e)}),mb=O("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=C_),mt.init(t,e)}),hb=O("$ZodULID",(t,e)=>{e.pattern??(e.pattern=P_),mt.init(t,e)}),gb=O("$ZodXID",(t,e)=>{e.pattern??(e.pattern=A_),mt.init(t,e)}),vb=O("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=N_),mt.init(t,e)}),yb=O("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=K_(e)),mt.init(t,e)}),_b=O("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=W_),mt.init(t,e)}),bb=O("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=V_(e)),mt.init(t,e)}),Sb=O("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=D_),mt.init(t,e)}),xb=O("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=U_),mt.init(t,e),t._zod.bag.format="ipv4"}),wb=O("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=F_),mt.init(t,e),t._zod.bag.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})}}}),Eb=O("$ZodMAC",(t,e)=>{e.pattern??(e.pattern=q_(e.delimiter)),mt.init(t,e),t._zod.bag.format="mac"}),kb=O("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=H_),mt.init(t,e)}),Tb=O("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Z_),mt.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[i,s]=n;if(!s)throw new Error;let o=Number(s);if(`${o}`!==s)throw new Error;if(o<0||o>128)throw new Error;new URL(`http://[${i}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function r1(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var $b=O("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=B_),mt.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{r1(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function N3(t){if(!Vf.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return r1(r)}var Ib=O("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Vf),mt.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{N3(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),Rb=O("$ZodE164",(t,e)=>{e.pattern??(e.pattern=G_),mt.init(t,e)});function M3(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let i=JSON.parse(atob(n));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}var Ob=O("$ZodJWT",(t,e)=>{mt.init(t,e),t._zod.check=r=>{M3(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),Cb=O("$ZodCustomStringFormat",(t,e)=>{mt.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})}}),rm=O("$ZodNumber",(t,e)=>{Ce.init(t,e),t._zod.pattern=t._zod.bag.pattern??Kf,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let i=r.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return r;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...s?{received:s}:{}}),r}}),Pb=O("$ZodNumberFormat",(t,e)=>{TR.init(t,e),rm.init(t,e)}),Il=O("$ZodBoolean",(t,e)=>{Ce.init(t,e),t._zod.pattern=Q_,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let i=r.value;return typeof i=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),r}}),nm=O("$ZodBigInt",(t,e)=>{Ce.init(t,e),t._zod.pattern=X_,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}}),Ab=O("$ZodBigIntFormat",(t,e)=>{$R.init(t,e),nm.init(t,e)}),Nb=O("$ZodSymbol",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;return typeof i=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:t}),r}}),Mb=O("$ZodUndefined",(t,e)=>{Ce.init(t,e),t._zod.pattern=tb,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(r,n)=>{let i=r.value;return typeof i>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:t}),r}}),Db=O("$ZodNull",(t,e)=>{Ce.init(t,e),t._zod.pattern=eb,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let i=r.value;return i===null||r.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),r}}),jb=O("$ZodAny",(t,e)=>{Ce.init(t,e),t._zod.parse=r=>r}),zb=O("$ZodUnknown",(t,e)=>{Ce.init(t,e),t._zod.parse=r=>r}),Lb=O("$ZodNever",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),Ub=O("$ZodVoid",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;return typeof i>"u"||r.issues.push({expected:"void",code:"invalid_type",input:i,inst:t}),r}}),Fb=O("$ZodDate",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let i=r.value,s=i instanceof Date;return s&&!Number.isNaN(i.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:i,...s?{received:"Invalid Date"}:{},inst:t}),r}});function BR(t,e,r){t.issues.length&&e.issues.push(...xn(r,t.issues)),e.value[r]=t.value}var qb=O("$ZodArray",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),r;r.value=Array(i.length);let s=[];for(let o=0;oBR(u,r,o))):BR(c,r,o)}return s.length?Promise.all(s).then(()=>r):r}});function tm(t,e,r,n,i){if(t.issues.length){if(i&&!(r in n))return;e.issues.push(...xn(r,t.issues))}t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}function n1(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=$_(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function i1(t,e,r,n,i,s){let o=[],a=i.keySet,c=i.catchall._zod,u=c.def.type,l=c.optout==="optional";for(let d in e){if(a.has(d))continue;if(u==="never"){o.push(d);continue}let p=c.run({value:e[d],issues:[]},n);p instanceof Promise?t.push(p.then(f=>tm(f,r,d,e,l))):tm(p,r,d,e,l)}return o.length&&r.issues.push({code:"unrecognized_keys",keys:o,input:e,inst:s}),t.length?Promise.all(t).then(()=>r):r}var s1=O("$ZodObject",(t,e)=>{if(Ce.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let a=e.shape;Object.defineProperty(e,"shape",{get:()=>{let c={...a};return Object.defineProperty(e,"shape",{value:c}),c}})}let n=Ja(()=>n1(e));Le(t._zod,"propValues",()=>{let a=e.shape,c={};for(let u in a){let l=a[u]._zod;if(l.values){c[u]??(c[u]=new Set);for(let d of l.values)c[u].add(d)}}return c});let i=Co,s=e.catchall,o;t._zod.parse=(a,c)=>{o??(o=n.value);let u=a.value;if(!i(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),a;a.value={};let l=[],d=o.shape;for(let p of o.keys){let f=d[p],m=f._zod.optout==="optional",h=f._zod.run({value:u[p],issues:[]},c);h instanceof Promise?l.push(h.then(g=>tm(g,a,p,u,m))):tm(h,a,p,u,m)}return s?i1(l,u,a,c,n.value,t):l.length?Promise.all(l).then(()=>a):a}}),o1=O("$ZodObjectJIT",(t,e)=>{s1.init(t,e);let r=t._zod.parse,n=Ja(()=>n1(e)),i=p=>{let f=new Jf(["shape","payload","ctx"]),m=n.value,h=b=>{let y=Hf(b);return`shape[${y}]._zod.run({ value: input[${y}], issues: [] }, ctx)`};f.write("const input = payload.value;");let g=Object.create(null),v=0;for(let b of m.keys)g[b]=`key_${v++}`;f.write("const newResult = {};");for(let b of m.keys){let y=g[b],x=Hf(b),E=p[b]?._zod?.optout==="optional";f.write(`const ${y} = ${h(b)};`),E?f.write(` + if (${y}.issues.length) { + if (${x} in input) { + payload.issues = payload.issues.concat(${y}.issues.map(iss => ({ ...iss, - path: iss.path ? [${S}, ...iss.path] : [${S}] + path: iss.path ? [${x}, ...iss.path] : [${x}] }))); } } - if (${_}.value === undefined) { - if (${S} in input) { - newResult[${S}] = undefined; + if (${y}.value === undefined) { + if (${x} in input) { + newResult[${x}] = undefined; } } else { - newResult[${S}] = ${_}.value; + newResult[${x}] = ${y}.value; } - `):m.write(` - if (${_}.issues.length) { - payload.issues = payload.issues.concat(${_}.issues.map(iss => ({ + `):f.write(` + if (${y}.issues.length) { + payload.issues = payload.issues.concat(${y}.issues.map(iss => ({ ...iss, - path: iss.path ? [${S}, ...iss.path] : [${S}] + path: iss.path ? [${x}, ...iss.path] : [${x}] }))); } - if (${_}.value === undefined) { - if (${S} in input) { - newResult[${S}] = undefined; + if (${y}.value === undefined) { + if (${x} in input) { + newResult[${x}] = undefined; } } else { - newResult[${S}] = ${_}.value; + newResult[${x}] = ${y}.value; } - `)}m.write("payload.value = newResult;"),m.write("return payload;");let x=m.compile();return(b,_)=>x(p,b,_)},s,o=Xs,a=!Rp.jitless,u=a&&Mv.value,l=e.catchall,d;t._zod.parse=(p,m)=>{d??(d=n.value);let f=p.value;return o(f)?a&&u&&m?.async===!1&&m.jitless!==!0?(s||(s=i(e.shape)),p=s(p,m),l?sI([],f,p,m,d,t):p):r(p,m):(p.issues.push({expected:"object",code:"invalid_type",input:f,inst:t}),p)}});function GT(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;let i=t.filter(s=>!bs(s));return i.length===1?(e.value=i[0].value,i[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(o=>Kr(o,n,tr())))}),e)}var Du=O("$ZodUnion",(t,e)=>{Pe.init(t,e),Me(t._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),Me(t._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),Me(t._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),Me(t._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){let i=e.options.map(s=>s._zod.pattern);return new RegExp(`^(${i.map(s=>bu(s.source)).join("|")})$`)}});let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,s)=>{if(r)return n(i,s);let o=!1,a=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},s);if(u instanceof Promise)a.push(u),o=!0;else{if(u.issues.length===0)return u;a.push(u)}}return o?Promise.all(a).then(c=>GT(c,i,t,s)):GT(a,i,t,s)}});function WT(t,e,r,n){let i=t.filter(s=>s.issues.length===0);return i.length===1?(e.value=i[0].value,e):(i.length===0?e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(o=>Kr(o,n,tr())))}):e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:[],inclusive:!1}),e)}var e_=O("$ZodXor",(t,e)=>{Du.init(t,e),e.inclusive=!1;let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,s)=>{if(r)return n(i,s);let o=!1,a=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},s);u instanceof Promise?(a.push(u),o=!0):a.push(u)}return o?Promise.all(a).then(c=>WT(c,i,t,s)):WT(a,i,t,s)}}),t_=O("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,Du.init(t,e);let r=t._zod.parse;Me(t._zod,"propValues",()=>{let i={};for(let s of e.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let n=ma(()=>{let i=e.options,s=new Map;for(let o of i){let a=o._zod.propValues?.[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});t._zod.parse=(i,s)=>{let o=i.value;if(!Xs(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let a=n.value.get(o?.[e.discriminator]);return a?a._zod.run(i,s):e.unionFallback?r(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:o,path:[e.discriminator],inst:t}),i)}}),r_=O("$ZodIntersection",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,s=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>KT(r,c,u)):KT(r,s,o)}});function vy(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(_s(t)&&_s(e)){let r=Object.keys(e),n=Object.keys(t).filter(s=>r.indexOf(s)!==-1),i={...t,...e};for(let s of n){let o=vy(t[s],e[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;na.l&&a.r).map(([a])=>a);if(s.length&&i&&t.issues.push({...i,keys:s}),bs(t))return t;let o=vy(e.value,r.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return t.value=o.data,t}var Bp=O("$ZodTuple",(t,e)=>{Pe.init(t,e);let r=e.items;t._zod.parse=(n,i)=>{let s=n.value;if(!Array.isArray(s))return n.issues.push({input:s,inst:t,expected:"tuple",code:"invalid_type"}),n;n.value=[];let o=[],a=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),c=a===-1?0:r.length-a;if(!e.rest){let l=s.length>r.length,d=s.length=s.length&&u>=c)continue;let d=l._zod.run({value:s[u],issues:[]},i);d instanceof Promise?o.push(d.then(p=>zp(p,n,u))):zp(d,n,u)}if(e.rest){let l=s.slice(r.length);for(let d of l){u++;let p=e.rest._zod.run({value:d,issues:[]},i);p instanceof Promise?o.push(p.then(m=>zp(m,n,u))):zp(p,n,u)}}return o.length?Promise.all(o).then(()=>n):n}});function zp(t,e,r){t.issues.length&&e.issues.push(...mn(r,t.issues)),e.value[r]=t.value}var n_=O("$ZodRecord",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!_s(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let s=[],o=e.keyType._zod.values;if(o){r.value={};let a=new Set;for(let u of o)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){a.add(typeof u=="number"?u.toString():u);let l=e.valueType._zod.run({value:i[u],issues:[]},n);l instanceof Promise?s.push(l.then(d=>{d.issues.length&&r.issues.push(...mn(u,d.issues)),r.value[u]=d.value})):(l.issues.length&&r.issues.push(...mn(u,l.issues)),r.value[u]=l.value)}let c;for(let u in i)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(i)){if(a==="__proto__")continue;let c=e.keyType._zod.run({value:a,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&Dp.test(a)&&c.issues.length){let d=e.keyType._zod.run({value:Number(a),issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(c=d)}if(c.issues.length){e.mode==="loose"?r.value[a]=i[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(d=>Kr(d,n,tr())),input:a,path:[a],inst:t});continue}let l=e.valueType._zod.run({value:i[a],issues:[]},n);l instanceof Promise?s.push(l.then(d=>{d.issues.length&&r.issues.push(...mn(a,d.issues)),r.value[c.value]=d.value})):(l.issues.length&&r.issues.push(...mn(a,l.issues)),r.value[c.value]=l.value)}}return s.length?Promise.all(s).then(()=>r):r}}),i_=O("$ZodMap",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!(i instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:i,inst:t}),r;let s=[];r.value=new Map;for(let[o,a]of i){let c=e.keyType._zod.run({value:o,issues:[]},n),u=e.valueType._zod.run({value:a,issues:[]},n);c instanceof Promise||u instanceof Promise?s.push(Promise.all([c,u]).then(([l,d])=>{JT(l,d,r,o,i,t,n)})):JT(c,u,r,o,i,t,n)}return s.length?Promise.all(s).then(()=>r):r}});function JT(t,e,r,n,i,s,o){t.issues.length&&(xu.has(typeof n)?r.issues.push(...mn(n,t.issues)):r.issues.push({code:"invalid_key",origin:"map",input:i,inst:s,issues:t.issues.map(a=>Kr(a,o,tr()))})),e.issues.length&&(xu.has(typeof n)?r.issues.push(...mn(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:i,inst:s,key:n,issues:e.issues.map(a=>Kr(a,o,tr()))})),r.value.set(t.value,e.value)}var s_=O("$ZodSet",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!(i instanceof Set))return r.issues.push({input:i,inst:t,expected:"set",code:"invalid_type"}),r;let s=[];r.value=new Set;for(let o of i){let a=e.valueType._zod.run({value:o,issues:[]},n);a instanceof Promise?s.push(a.then(c=>XT(c,r))):XT(a,r)}return s.length?Promise.all(s).then(()=>r):r}});function XT(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var o_=O("$ZodEnum",(t,e)=>{Pe.init(t,e);let r=_u(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(i=>xu.has(typeof i)).map(i=>typeof i=="string"?En(i):i.toString()).join("|")})$`),t._zod.parse=(i,s)=>{let o=i.value;return n.has(o)||i.issues.push({code:"invalid_value",values:r,input:o,inst:t}),i}}),a_=O("$ZodLiteral",(t,e)=>{if(Pe.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?En(n):n?En(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,i)=>{let s=n.value;return r.has(s)||n.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),n}}),c_=O("$ZodFile",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;return i instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:i,inst:t}),r}}),u_=O("$ZodTransform",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Js(t.constructor.name);let i=e.transform(r.value,r);if(n.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(r.value=o,r));if(i instanceof Promise)throw new ci;return r.value=i,r}});function YT(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var Vp=O("$ZodOptional",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Me(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Me(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${bu(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>YT(s,r.value)):YT(i,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),l_=O("$ZodExactOptional",(t,e)=>{Vp.init(t,e),Me(t._zod,"values",()=>e.innerType._zod.values),Me(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),d_=O("$ZodNullable",(t,e)=>{Pe.init(t,e),Me(t._zod,"optin",()=>e.innerType._zod.optin),Me(t._zod,"optout",()=>e.innerType._zod.optout),Me(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${bu(r.source)}|null)$`):void 0}),Me(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)}),p_=O("$ZodDefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",Me(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>QT(s,e)):QT(i,e)}});function QT(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var m_=O("$ZodPrefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",Me(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),f_=O("$ZodNonOptional",(t,e)=>{Pe.init(t,e),Me(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 i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>eI(s,t)):eI(i,t)}});function eI(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 h_=O("$ZodSuccess",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Js("ZodSuccess");let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>(r.value=s.issues.length===0,r)):(r.value=i.issues.length===0,r)}}),g_=O("$ZodCatch",(t,e)=>{Pe.init(t,e),Me(t._zod,"optin",()=>e.innerType._zod.optin),Me(t._zod,"optout",()=>e.innerType._zod.optout),Me(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(o=>Kr(o,n,tr()))},input:r.value}),r.issues=[]),r)):(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>Kr(s,n,tr()))},input:r.value}),r.issues=[]),r)}}),v_=O("$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)}),y_=O("$ZodPipe",(t,e)=>{Pe.init(t,e),Me(t._zod,"values",()=>e.in._zod.values),Me(t._zod,"optin",()=>e.in._zod.optin),Me(t._zod,"optout",()=>e.out._zod.optout),Me(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let s=e.out._zod.run(r,n);return s instanceof Promise?s.then(o=>Lp(o,e.in,n)):Lp(s,e.in,n)}let i=e.in._zod.run(r,n);return i instanceof Promise?i.then(s=>Lp(s,e.out,n)):Lp(i,e.out,n)}});function Lp(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},r)}var ju=O("$ZodCodec",(t,e)=>{Pe.init(t,e),Me(t._zod,"values",()=>e.in._zod.values),Me(t._zod,"optin",()=>e.in._zod.optin),Me(t._zod,"optout",()=>e.out._zod.optout),Me(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(o=>Up(o,e,n)):Up(s,e,n)}else{let s=e.out._zod.run(r,n);return s instanceof Promise?s.then(o=>Up(o,e,n)):Up(s,e,n)}}});function Up(t,e,r){if(t.issues.length)return t.aborted=!0,t;if((r.direction||"forward")==="forward"){let i=e.transform(t.value,t);return i instanceof Promise?i.then(s=>qp(t,s,e.out,r)):qp(t,i,e.out,r)}else{let i=e.reverseTransform(t.value,t);return i instanceof Promise?i.then(s=>qp(t,s,e.in,r)):qp(t,i,e.in,r)}}function qp(t,e,r,n){return t.issues.length?(t.aborted=!0,t):r._zod.run({value:e,issues:t.issues},n)}var __=O("$ZodReadonly",(t,e)=>{Pe.init(t,e),Me(t._zod,"propValues",()=>e.innerType._zod.propValues),Me(t._zod,"values",()=>e.innerType._zod.values),Me(t._zod,"optin",()=>e.innerType?._zod?.optin),Me(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(tI):tI(i)}});function tI(t){return t.value=Object.freeze(t.value),t}var b_=O("$ZodTemplateLiteral",(t,e)=>{Pe.init(t,e);let r=[];for(let n of e.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let i=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!i)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let s=i.startsWith("^")?1:0,o=i.endsWith("$")?i.length-1:i.length;r.push(i.slice(s,o))}else if(n===null||jv.has(typeof n))r.push(En(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(n,i)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:t,expected:"string",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:e.format??"template_literal",pattern:t._zod.pattern.source}),n)}),x_=O("$ZodFunction",(t,e)=>(Pe.init(t,e),t._def=e,t._zod.def=e,t.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let i=t._def.input?$u(t._def.input,n):n,s=Reflect.apply(r,this,i);return t._def.output?$u(t._def.output,s):s}},t.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let i=t._def.input?await Iu(t._def.input,n):n,s=await Reflect.apply(r,this,i);return t._def.output?await Iu(t._def.output,s):s}},t._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:t}),r):(t._def.output&&t._def.output._zod.def.type==="promise"?r.value=t.implementAsync(r.value):r.value=t.implement(r.value),r),t.input=(...r)=>{let n=t.constructor;return Array.isArray(r[0])?new n({type:"function",input:new Bp({type:"tuple",items:r[0],rest:r[1]}),output:t._def.output}):new n({type:"function",input:r[0],output:t._def.output})},t.output=r=>{let n=t.constructor;return new n({type:"function",input:t._def.input,output:r})},t)),S_=O("$ZodPromise",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(i=>e.innerType._zod.run({value:i,issues:[]},n))}),w_=O("$ZodLazy",(t,e)=>{Pe.init(t,e),Me(t._zod,"innerType",()=>e.getter()),Me(t._zod,"pattern",()=>t._zod.innerType?._zod?.pattern),Me(t._zod,"propValues",()=>t._zod.innerType?._zod?.propValues),Me(t._zod,"optin",()=>t._zod.innerType?._zod?.optin??void 0),Me(t._zod,"optout",()=>t._zod.innerType?._zod?.optout??void 0),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),E_=O("$ZodCustom",(t,e)=>{_t.init(t,e),Pe.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,i=e.fn(n);if(i instanceof Promise)return i.then(s=>rI(s,r,n,t));rI(i,r,n,t)}});function rI(t,e,r,n){if(!t){let i={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(i.params=n._zod.def.params),e.issues.push(fa(i))}}var E8=()=>{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"},map:{unit:"entries",verb:"to have"}};function e(i){return t[i]??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",mac:"MAC 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"},n={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=n[i.expected]??i.expected,o=Ee(i.input),a=n[o]??o;return`Invalid input: expected ${s}, received ${a}`}case"invalid_value":return i.values.length===1?`Invalid input: expected ${xe(i.values[0])}`:`Invalid option: expected one of ${be(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",o=e(i.origin);return o?`Too big: expected ${i.origin??"value"} to have ${s}${i.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${i.origin??"value"} to be ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",o=e(i.origin);return o?`Too small: expected ${i.origin} to have ${s}${i.minimum.toString()} ${o.unit}`:`Too small: expected ${i.origin} to be ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;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]??i.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${i.divisor}`;case"unrecognized_keys":return`Unrecognized key${i.keys.length>1?"s":""}: ${be(i.keys,", ")}`;case"invalid_key":return`Invalid key in ${i.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${i.origin}`;default:return"Invalid input"}}};function k_(){return{localeError:E8()}}var cI;var T_=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,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)??{}};delete n.id;let i={...n,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function I_(){return new T_}(cI=globalThis).__zod_globalRegistry??(cI.__zod_globalRegistry=I_());var jr=globalThis.__zod_globalRegistry;function R_(t,e){return new t({type:"string",...ee(e)})}function Gp(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...ee(e)})}function zu(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...ee(e)})}function Wp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...ee(e)})}function Kp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ee(e)})}function Jp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ee(e)})}function Xp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ee(e)})}function Lu(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...ee(e)})}function Yp(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...ee(e)})}function Qp(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...ee(e)})}function em(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...ee(e)})}function tm(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...ee(e)})}function rm(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...ee(e)})}function nm(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...ee(e)})}function im(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...ee(e)})}function sm(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...ee(e)})}function om(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...ee(e)})}function O_(t,e){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...ee(e)})}function am(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ee(e)})}function cm(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ee(e)})}function um(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...ee(e)})}function lm(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...ee(e)})}function dm(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...ee(e)})}function pm(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...ee(e)})}function P_(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ee(e)})}function C_(t,e){return new t({type:"string",format:"date",check:"string_format",...ee(e)})}function A_(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...ee(e)})}function N_(t,e){return new t({type:"string",format:"duration",check:"string_format",...ee(e)})}function M_(t,e){return new t({type:"number",checks:[],...ee(e)})}function D_(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...ee(e)})}function j_(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...ee(e)})}function z_(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...ee(e)})}function L_(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...ee(e)})}function U_(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...ee(e)})}function q_(t,e){return new t({type:"boolean",...ee(e)})}function F_(t,e){return new t({type:"bigint",...ee(e)})}function H_(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...ee(e)})}function Z_(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...ee(e)})}function B_(t,e){return new t({type:"symbol",...ee(e)})}function V_(t,e){return new t({type:"undefined",...ee(e)})}function G_(t,e){return new t({type:"null",...ee(e)})}function W_(t){return new t({type:"any"})}function K_(t){return new t({type:"unknown"})}function J_(t,e){return new t({type:"never",...ee(e)})}function X_(t,e){return new t({type:"void",...ee(e)})}function Y_(t,e){return new t({type:"date",...ee(e)})}function Q_(t,e){return new t({type:"nan",...ee(e)})}function ji(t,e){return new hy({check:"less_than",...ee(e),value:t,inclusive:!1})}function fn(t,e){return new hy({check:"less_than",...ee(e),value:t,inclusive:!0})}function zi(t,e){return new gy({check:"greater_than",...ee(e),value:t,inclusive:!1})}function zr(t,e){return new gy({check:"greater_than",...ee(e),value:t,inclusive:!0})}function eb(t){return zi(0,t)}function tb(t){return ji(0,t)}function rb(t){return fn(0,t)}function nb(t){return zr(0,t)}function eo(t,e){return new $T({check:"multiple_of",...ee(e),value:t})}function to(t,e){return new RT({check:"max_size",...ee(e),maximum:t})}function Li(t,e){return new OT({check:"min_size",...ee(e),minimum:t})}function ga(t,e){return new PT({check:"size_equals",...ee(e),size:t})}function va(t,e){return new CT({check:"max_length",...ee(e),maximum:t})}function xs(t,e){return new AT({check:"min_length",...ee(e),minimum:t})}function ya(t,e){return new NT({check:"length_equals",...ee(e),length:t})}function Uu(t,e){return new MT({check:"string_format",format:"regex",...ee(e),pattern:t})}function qu(t){return new DT({check:"string_format",format:"lowercase",...ee(t)})}function Fu(t){return new jT({check:"string_format",format:"uppercase",...ee(t)})}function Hu(t,e){return new zT({check:"string_format",format:"includes",...ee(e),includes:t})}function Zu(t,e){return new LT({check:"string_format",format:"starts_with",...ee(e),prefix:t})}function Bu(t,e){return new UT({check:"string_format",format:"ends_with",...ee(e),suffix:t})}function ib(t,e,r){return new qT({check:"property",property:t,schema:e,...ee(r)})}function Vu(t,e){return new FT({check:"mime_type",mime:t,...ee(e)})}function ui(t){return new HT({check:"overwrite",tx:t})}function Gu(t){return ui(e=>e.normalize(t))}function Wu(){return ui(t=>t.trim())}function Ku(){return ui(t=>t.toLowerCase())}function Ju(){return ui(t=>t.toUpperCase())}function mm(){return ui(t=>Nv(t))}function uI(t,e,r){return new t({type:"array",element:e,...ee(r)})}function sb(t,e){return new t({type:"file",...ee(e)})}function ob(t,e,r){let n=ee(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function ab(t,e,r){return new t({type:"custom",check:"custom",fn:e,...ee(r)})}function cb(t){let e=I8(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(fa(n,r.value,e._zod.def));else{let i=n;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=e),i.continue??(i.continue=!e._zod.def.abort),r.issues.push(fa(i))}},t(r.value,r)));return e}function I8(t,e){let r=new _t({check:"custom",...ee(e)});return r._zod.check=t,r}function ub(t){let e=new _t({check:"describe"});return e._zod.onattach=[r=>{let n=jr.get(r)??{};jr.add(r,{...n,description:t})}],e._zod.check=()=>{},e}function lb(t){let e=new _t({check:"meta"});return e._zod.onattach=[r=>{let n=jr.get(r)??{};jr.add(r,{...n,...t})}],e._zod.check=()=>{},e}function db(t,e){let r=ee(e),n=r.truthy??["true","1","yes","on","y","enabled"],i=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(m=>typeof m=="string"?m.toLowerCase():m),i=i.map(m=>typeof m=="string"?m.toLowerCase():m));let s=new Set(n),o=new Set(i),a=t.Codec??ju,c=t.Boolean??Mu,u=t.String??Qs,l=new u({type:"string",error:r.error}),d=new c({type:"boolean",error:r.error}),p=new a({type:"pipe",in:l,out:d,transform:((m,f)=>{let g=m;return r.case!=="sensitive"&&(g=g.toLowerCase()),s.has(g)?!0:o.has(g)?!1:(f.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...o],input:f.value,inst:p,continue:!1}),{})}),reverseTransform:((m,f)=>m===!0?n[0]||"true":i[0]||"false"),error:r.error});return p}function _a(t,e,r,n={}){let i=ee(n),s={...ee(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:a=>r.test(a),...i};return r instanceof RegExp&&(s.pattern=r),new t(s)}function fm(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??jr,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function $t(t,e,r={path:[],schemaPath:[]}){var n;let i=t._zod.def,s=e.seen.get(t);if(s)return s.count++,r.schemaPath.includes(t)&&(s.cycle=r.path),s.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,o);let a=t._zod.toJSONSchema?.();if(a)o.schema=a;else{let l={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,o.schema,l);else{let p=o.schema,m=e.processors[i.type];if(!m)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);m(t,e,p,l)}let d=t._zod.parent;d&&(o.ref||(o.ref=d),$t(d,e,l),e.seen.get(d).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(o.schema,c),e.io==="input"&&Lr(t)&&(delete o.schema.examples,delete o.schema.default),e.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,e.seen.get(t).schema}function hm(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let o of t.seen.entries()){let a=t.metadataRegistry.get(o[0])?.id;if(a){let c=n.get(a);if(c&&c!==o[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,o[0])}}let i=o=>{let a=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let d=t.external.registry.get(o[0])?.id,p=t.external.uri??(f=>f);if(d)return{ref:p(d)};let m=o[1].defId??o[1].schema.id??`schema${t.counter++}`;return o[1].defId=m,{defId:m,ref:`${p("__shared")}#/${a}/${m}`}}if(o[1]===r)return{ref:"#"};let u=`#/${a}/`,l=o[1].schema.id??`__schema${t.counter++}`;return{defId:l,ref:u+l}},s=o=>{if(o[1].schema.$ref)return;let a=o[1],{ref:c,defId:u}=i(o);a.def={...a.schema},u&&(a.defId=u);let l=a.schema;for(let d in l)delete l[d];l.$ref=c};if(t.cycles==="throw")for(let o of t.seen.entries()){let a=o[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/ + `)}f.write("payload.value = newResult;"),f.write("return payload;");let S=f.compile();return(b,y)=>S(p,b,y)},s,o=Co,a=!qf.jitless,u=a&&k_.value,l=e.catchall,d;t._zod.parse=(p,f)=>{d??(d=n.value);let m=p.value;return o(m)?a&&u&&f?.async===!1&&f.jitless!==!0?(s||(s=i(e.shape)),p=s(p,f),l?i1([],m,p,f,d,t):p):r(p,f):(p.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),p)}});function GR(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;let i=t.filter(s=>!Vs(s));return i.length===1?(e.value=i[0].value,i[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(o=>on(o,n,tr())))}),e)}var Rl=O("$ZodUnion",(t,e)=>{Ce.init(t,e),Le(t._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),Le(t._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),Le(t._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),Le(t._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){let i=e.options.map(s=>s._zod.pattern);return new RegExp(`^(${i.map(s=>fl(s.source)).join("|")})$`)}});let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,s)=>{if(r)return n(i,s);let o=!1,a=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},s);if(u instanceof Promise)a.push(u),o=!0;else{if(u.issues.length===0)return u;a.push(u)}}return o?Promise.all(a).then(c=>GR(c,i,t,s)):GR(a,i,t,s)}});function WR(t,e,r,n){let i=t.filter(s=>s.issues.length===0);return i.length===1?(e.value=i[0].value,e):(i.length===0?e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(o=>on(o,n,tr())))}):e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:[],inclusive:!1}),e)}var Hb=O("$ZodXor",(t,e)=>{Rl.init(t,e),e.inclusive=!1;let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,s)=>{if(r)return n(i,s);let o=!1,a=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},s);u instanceof Promise?(a.push(u),o=!0):a.push(u)}return o?Promise.all(a).then(c=>WR(c,i,t,s)):WR(a,i,t,s)}}),Zb=O("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,Rl.init(t,e);let r=t._zod.parse;Le(t._zod,"propValues",()=>{let i={};for(let s of e.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let n=Ja(()=>{let i=e.options,s=new Map;for(let o of i){let a=o._zod.propValues?.[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});t._zod.parse=(i,s)=>{let o=i.value;if(!Co(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let a=n.value.get(o?.[e.discriminator]);return a?a._zod.run(i,s):e.unionFallback?r(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:o,path:[e.discriminator],inst:t}),i)}}),Bb=O("$ZodIntersection",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,s=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>VR(r,c,u)):VR(r,s,o)}});function ob(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(Ws(t)&&Ws(e)){let r=Object.keys(e),n=Object.keys(t).filter(s=>r.indexOf(s)!==-1),i={...t,...e};for(let s of n){let o=ob(t[s],e[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;na.l&&a.r).map(([a])=>a);if(s.length&&i&&t.issues.push({...i,keys:s}),Vs(t))return t;let o=ob(e.value,r.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return t.value=o.data,t}var im=O("$ZodTuple",(t,e)=>{Ce.init(t,e);let r=e.items;t._zod.parse=(n,i)=>{let s=n.value;if(!Array.isArray(s))return n.issues.push({input:s,inst:t,expected:"tuple",code:"invalid_type"}),n;n.value=[];let o=[],a=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),c=a===-1?0:r.length-a;if(!e.rest){let l=s.length>r.length,d=s.length=s.length&&u>=c)continue;let d=l._zod.run({value:s[u],issues:[]},i);d instanceof Promise?o.push(d.then(p=>Xf(p,n,u))):Xf(d,n,u)}if(e.rest){let l=s.slice(r.length);for(let d of l){u++;let p=e.rest._zod.run({value:d,issues:[]},i);p instanceof Promise?o.push(p.then(f=>Xf(f,n,u))):Xf(p,n,u)}}return o.length?Promise.all(o).then(()=>n):n}});function Xf(t,e,r){t.issues.length&&e.issues.push(...xn(r,t.issues)),e.value[r]=t.value}var Gb=O("$ZodRecord",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Ws(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let s=[],o=e.keyType._zod.values;if(o){r.value={};let a=new Set;for(let u of o)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){a.add(typeof u=="number"?u.toString():u);let l=e.valueType._zod.run({value:i[u],issues:[]},n);l instanceof Promise?s.push(l.then(d=>{d.issues.length&&r.issues.push(...xn(u,d.issues)),r.value[u]=d.value})):(l.issues.length&&r.issues.push(...xn(u,l.issues)),r.value[u]=l.value)}let c;for(let u in i)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:c})}else{r.value={};for(let a of Reflect.ownKeys(i)){if(a==="__proto__")continue;let c=e.keyType._zod.run({value:a,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&Kf.test(a)&&c.issues.length&&c.issues.some(d=>d.code==="invalid_type"&&d.expected==="number")){let d=e.keyType._zod.run({value:Number(a),issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(c=d)}if(c.issues.length){e.mode==="loose"?r.value[a]=i[a]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(d=>on(d,n,tr())),input:a,path:[a],inst:t});continue}let l=e.valueType._zod.run({value:i[a],issues:[]},n);l instanceof Promise?s.push(l.then(d=>{d.issues.length&&r.issues.push(...xn(a,d.issues)),r.value[c.value]=d.value})):(l.issues.length&&r.issues.push(...xn(a,l.issues)),r.value[c.value]=l.value)}}return s.length?Promise.all(s).then(()=>r):r}}),Wb=O("$ZodMap",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!(i instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:i,inst:t}),r;let s=[];r.value=new Map;for(let[o,a]of i){let c=e.keyType._zod.run({value:o,issues:[]},n),u=e.valueType._zod.run({value:a,issues:[]},n);c instanceof Promise||u instanceof Promise?s.push(Promise.all([c,u]).then(([l,d])=>{KR(l,d,r,o,i,t,n)})):KR(c,u,r,o,i,t,n)}return s.length?Promise.all(s).then(()=>r):r}});function KR(t,e,r,n,i,s,o){t.issues.length&&(ml.has(typeof n)?r.issues.push(...xn(n,t.issues)):r.issues.push({code:"invalid_key",origin:"map",input:i,inst:s,issues:t.issues.map(a=>on(a,o,tr()))})),e.issues.length&&(ml.has(typeof n)?r.issues.push(...xn(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:i,inst:s,key:n,issues:e.issues.map(a=>on(a,o,tr()))})),r.value.set(t.value,e.value)}var Vb=O("$ZodSet",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!(i instanceof Set))return r.issues.push({input:i,inst:t,expected:"set",code:"invalid_type"}),r;let s=[];r.value=new Set;for(let o of i){let a=e.valueType._zod.run({value:o,issues:[]},n);a instanceof Promise?s.push(a.then(c=>JR(c,r))):JR(a,r)}return s.length?Promise.all(s).then(()=>r):r}});function JR(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var Kb=O("$ZodEnum",(t,e)=>{Ce.init(t,e);let r=pl(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(i=>ml.has(typeof i)).map(i=>typeof i=="string"?Dn(i):i.toString()).join("|")})$`),t._zod.parse=(i,s)=>{let o=i.value;return n.has(o)||i.issues.push({code:"invalid_value",values:r,input:o,inst:t}),i}}),Jb=O("$ZodLiteral",(t,e)=>{if(Ce.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?Dn(n):n?Dn(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,i)=>{let s=n.value;return r.has(s)||n.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),n}}),Xb=O("$ZodFile",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;return i instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:i,inst:t}),r}}),Yb=O("$ZodTransform",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Oo(t.constructor.name);let i=e.transform(r.value,r);if(n.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(r.value=o,r));if(i instanceof Promise)throw new Ci;return r.value=i,r}});function XR(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var sm=O("$ZodOptional",(t,e)=>{Ce.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Le(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Le(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${fl(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>XR(s,r.value)):XR(i,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),Qb=O("$ZodExactOptional",(t,e)=>{sm.init(t,e),Le(t._zod,"values",()=>e.innerType._zod.values),Le(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),eS=O("$ZodNullable",(t,e)=>{Ce.init(t,e),Le(t._zod,"optin",()=>e.innerType._zod.optin),Le(t._zod,"optout",()=>e.innerType._zod.optout),Le(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${fl(r.source)}|null)$`):void 0}),Le(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)}),tS=O("$ZodDefault",(t,e)=>{Ce.init(t,e),t._zod.optin="optional",Le(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>YR(s,e)):YR(i,e)}});function YR(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var rS=O("$ZodPrefault",(t,e)=>{Ce.init(t,e),t._zod.optin="optional",Le(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),nS=O("$ZodNonOptional",(t,e)=>{Ce.init(t,e),Le(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 i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>QR(s,t)):QR(i,t)}});function QR(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 iS=O("$ZodSuccess",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Oo("ZodSuccess");let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>(r.value=s.issues.length===0,r)):(r.value=i.issues.length===0,r)}}),sS=O("$ZodCatch",(t,e)=>{Ce.init(t,e),Le(t._zod,"optin",()=>e.innerType._zod.optin),Le(t._zod,"optout",()=>e.innerType._zod.optout),Le(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(o=>on(o,n,tr()))},input:r.value}),r.issues=[]),r)):(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>on(s,n,tr()))},input:r.value}),r.issues=[]),r)}}),oS=O("$ZodNaN",(t,e)=>{Ce.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)}),aS=O("$ZodPipe",(t,e)=>{Ce.init(t,e),Le(t._zod,"values",()=>e.in._zod.values),Le(t._zod,"optin",()=>e.in._zod.optin),Le(t._zod,"optout",()=>e.out._zod.optout),Le(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let s=e.out._zod.run(r,n);return s instanceof Promise?s.then(o=>Yf(o,e.in,n)):Yf(s,e.in,n)}let i=e.in._zod.run(r,n);return i instanceof Promise?i.then(s=>Yf(s,e.out,n)):Yf(i,e.out,n)}});function Yf(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},r)}var Ol=O("$ZodCodec",(t,e)=>{Ce.init(t,e),Le(t._zod,"values",()=>e.in._zod.values),Le(t._zod,"optin",()=>e.in._zod.optin),Le(t._zod,"optout",()=>e.out._zod.optout),Le(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(o=>Qf(o,e,n)):Qf(s,e,n)}else{let s=e.out._zod.run(r,n);return s instanceof Promise?s.then(o=>Qf(o,e,n)):Qf(s,e,n)}}});function Qf(t,e,r){if(t.issues.length)return t.aborted=!0,t;if((r.direction||"forward")==="forward"){let i=e.transform(t.value,t);return i instanceof Promise?i.then(s=>em(t,s,e.out,r)):em(t,i,e.out,r)}else{let i=e.reverseTransform(t.value,t);return i instanceof Promise?i.then(s=>em(t,s,e.in,r)):em(t,i,e.in,r)}}function em(t,e,r,n){return t.issues.length?(t.aborted=!0,t):r._zod.run({value:e,issues:t.issues},n)}var cS=O("$ZodReadonly",(t,e)=>{Ce.init(t,e),Le(t._zod,"propValues",()=>e.innerType._zod.propValues),Le(t._zod,"values",()=>e.innerType._zod.values),Le(t._zod,"optin",()=>e.innerType?._zod?.optin),Le(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(e1):e1(i)}});function e1(t){return t.value=Object.freeze(t.value),t}var uS=O("$ZodTemplateLiteral",(t,e)=>{Ce.init(t,e);let r=[];for(let n of e.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let i=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!i)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let s=i.startsWith("^")?1:0,o=i.endsWith("$")?i.length-1:i.length;r.push(i.slice(s,o))}else if(n===null||T_.has(typeof n))r.push(Dn(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(n,i)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:t,expected:"string",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:e.format??"template_literal",pattern:t._zod.pattern.source}),n)}),lS=O("$ZodFunction",(t,e)=>(Ce.init(t,e),t._def=e,t._zod.def=e,t.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let i=t._def.input?_l(t._def.input,n):n,s=Reflect.apply(r,this,i);return t._def.output?_l(t._def.output,s):s}},t.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let i=t._def.input?await Sl(t._def.input,n):n,s=await Reflect.apply(r,this,i);return t._def.output?await Sl(t._def.output,s):s}},t._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:t}),r):(t._def.output&&t._def.output._zod.def.type==="promise"?r.value=t.implementAsync(r.value):r.value=t.implement(r.value),r),t.input=(...r)=>{let n=t.constructor;return Array.isArray(r[0])?new n({type:"function",input:new im({type:"tuple",items:r[0],rest:r[1]}),output:t._def.output}):new n({type:"function",input:r[0],output:t._def.output})},t.output=r=>{let n=t.constructor;return new n({type:"function",input:t._def.input,output:r})},t)),dS=O("$ZodPromise",(t,e)=>{Ce.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(i=>e.innerType._zod.run({value:i,issues:[]},n))}),pS=O("$ZodLazy",(t,e)=>{Ce.init(t,e),Le(t._zod,"innerType",()=>e.getter()),Le(t._zod,"pattern",()=>t._zod.innerType?._zod?.pattern),Le(t._zod,"propValues",()=>t._zod.innerType?._zod?.propValues),Le(t._zod,"optin",()=>t._zod.innerType?._zod?.optin??void 0),Le(t._zod,"optout",()=>t._zod.innerType?._zod?.optout??void 0),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),fS=O("$ZodCustom",(t,e)=>{_t.init(t,e),Ce.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,i=e.fn(n);if(i instanceof Promise)return i.then(s=>t1(s,r,n,t));t1(i,r,n,t)}});function t1(t,e,r,n){if(!t){let i={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(i.params=n._zod.def.params),e.issues.push(Xa(i))}}var j3=()=>{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"},map:{unit:"entries",verb:"to have"}};function e(i){return t[i]??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",mac:"MAC 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"},n={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=n[i.expected]??i.expected,o=Ee(i.input),a=n[o]??o;return`Invalid input: expected ${s}, received ${a}`}case"invalid_value":return i.values.length===1?`Invalid input: expected ${be(i.values[0])}`:`Invalid option: expected one of ${_e(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",o=e(i.origin);return o?`Too big: expected ${i.origin??"value"} to have ${s}${i.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${i.origin??"value"} to be ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",o=e(i.origin);return o?`Too small: expected ${i.origin} to have ${s}${i.minimum.toString()} ${o.unit}`:`Too small: expected ${i.origin} to be ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;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]??i.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${i.divisor}`;case"unrecognized_keys":return`Unrecognized key${i.keys.length>1?"s":""}: ${_e(i.keys,", ")}`;case"invalid_key":return`Invalid key in ${i.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${i.origin}`;default:return"Invalid input"}}};function mS(){return{localeError:j3()}}var a1;var gS=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,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)??{}};delete n.id;let i={...n,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function vS(){return new gS}(a1=globalThis).__zod_globalRegistry??(a1.__zod_globalRegistry=vS());var Br=globalThis.__zod_globalRegistry;function yS(t,e){return new t({type:"string",...ee(e)})}function om(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...ee(e)})}function Cl(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...ee(e)})}function am(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...ee(e)})}function cm(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ee(e)})}function um(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ee(e)})}function lm(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ee(e)})}function Pl(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...ee(e)})}function dm(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...ee(e)})}function pm(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...ee(e)})}function fm(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...ee(e)})}function mm(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...ee(e)})}function hm(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...ee(e)})}function gm(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...ee(e)})}function vm(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...ee(e)})}function ym(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...ee(e)})}function _m(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...ee(e)})}function _S(t,e){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...ee(e)})}function bm(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ee(e)})}function Sm(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ee(e)})}function xm(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...ee(e)})}function wm(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...ee(e)})}function Em(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...ee(e)})}function km(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...ee(e)})}function bS(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ee(e)})}function SS(t,e){return new t({type:"string",format:"date",check:"string_format",...ee(e)})}function xS(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...ee(e)})}function wS(t,e){return new t({type:"string",format:"duration",check:"string_format",...ee(e)})}function ES(t,e){return new t({type:"number",checks:[],...ee(e)})}function kS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...ee(e)})}function TS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...ee(e)})}function $S(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...ee(e)})}function IS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...ee(e)})}function RS(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...ee(e)})}function OS(t,e){return new t({type:"boolean",...ee(e)})}function CS(t,e){return new t({type:"bigint",...ee(e)})}function PS(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...ee(e)})}function AS(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...ee(e)})}function NS(t,e){return new t({type:"symbol",...ee(e)})}function MS(t,e){return new t({type:"undefined",...ee(e)})}function DS(t,e){return new t({type:"null",...ee(e)})}function jS(t){return new t({type:"any"})}function zS(t){return new t({type:"unknown"})}function LS(t,e){return new t({type:"never",...ee(e)})}function US(t,e){return new t({type:"void",...ee(e)})}function FS(t,e){return new t({type:"date",...ee(e)})}function qS(t,e){return new t({type:"nan",...ee(e)})}function us(t,e){return new ib({check:"less_than",...ee(e),value:t,inclusive:!1})}function wn(t,e){return new ib({check:"less_than",...ee(e),value:t,inclusive:!0})}function ls(t,e){return new sb({check:"greater_than",...ee(e),value:t,inclusive:!1})}function Gr(t,e){return new sb({check:"greater_than",...ee(e),value:t,inclusive:!0})}function HS(t){return ls(0,t)}function ZS(t){return us(0,t)}function BS(t){return wn(0,t)}function GS(t){return Gr(0,t)}function No(t,e){return new kR({check:"multiple_of",...ee(e),value:t})}function Mo(t,e){return new IR({check:"max_size",...ee(e),maximum:t})}function ds(t,e){return new RR({check:"min_size",...ee(e),minimum:t})}function Qa(t,e){return new OR({check:"size_equals",...ee(e),size:t})}function ec(t,e){return new CR({check:"max_length",...ee(e),maximum:t})}function Ks(t,e){return new PR({check:"min_length",...ee(e),minimum:t})}function tc(t,e){return new AR({check:"length_equals",...ee(e),length:t})}function Al(t,e){return new NR({check:"string_format",format:"regex",...ee(e),pattern:t})}function Nl(t){return new MR({check:"string_format",format:"lowercase",...ee(t)})}function Ml(t){return new DR({check:"string_format",format:"uppercase",...ee(t)})}function Dl(t,e){return new jR({check:"string_format",format:"includes",...ee(e),includes:t})}function jl(t,e){return new zR({check:"string_format",format:"starts_with",...ee(e),prefix:t})}function zl(t,e){return new LR({check:"string_format",format:"ends_with",...ee(e),suffix:t})}function WS(t,e,r){return new UR({check:"property",property:t,schema:e,...ee(r)})}function Ll(t,e){return new FR({check:"mime_type",mime:t,...ee(e)})}function Pi(t){return new qR({check:"overwrite",tx:t})}function Ul(t){return Pi(e=>e.normalize(t))}function Fl(){return Pi(t=>t.trim())}function ql(){return Pi(t=>t.toLowerCase())}function Hl(){return Pi(t=>t.toUpperCase())}function Tm(){return Pi(t=>E_(t))}function c1(t,e,r){return new t({type:"array",element:e,...ee(r)})}function VS(t,e){return new t({type:"file",...ee(e)})}function KS(t,e,r){let n=ee(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function JS(t,e,r){return new t({type:"custom",check:"custom",fn:e,...ee(r)})}function XS(t){let e=F3(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Xa(n,r.value,e._zod.def));else{let i=n;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=e),i.continue??(i.continue=!e._zod.def.abort),r.issues.push(Xa(i))}},t(r.value,r)));return e}function F3(t,e){let r=new _t({check:"custom",...ee(e)});return r._zod.check=t,r}function YS(t){let e=new _t({check:"describe"});return e._zod.onattach=[r=>{let n=Br.get(r)??{};Br.add(r,{...n,description:t})}],e._zod.check=()=>{},e}function QS(t){let e=new _t({check:"meta"});return e._zod.onattach=[r=>{let n=Br.get(r)??{};Br.add(r,{...n,...t})}],e._zod.check=()=>{},e}function ex(t,e){let r=ee(e),n=r.truthy??["true","1","yes","on","y","enabled"],i=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(f=>typeof f=="string"?f.toLowerCase():f),i=i.map(f=>typeof f=="string"?f.toLowerCase():f));let s=new Set(n),o=new Set(i),a=t.Codec??Ol,c=t.Boolean??Il,u=t.String??Ao,l=new u({type:"string",error:r.error}),d=new c({type:"boolean",error:r.error}),p=new a({type:"pipe",in:l,out:d,transform:((f,m)=>{let h=f;return r.case!=="sensitive"&&(h=h.toLowerCase()),s.has(h)?!0:o.has(h)?!1:(m.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...o],input:m.value,inst:p,continue:!1}),{})}),reverseTransform:((f,m)=>f===!0?n[0]||"true":i[0]||"false"),error:r.error});return p}function rc(t,e,r,n={}){let i=ee(n),s={...ee(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:a=>r.test(a),...i};return r instanceof RegExp&&(s.pattern=r),new t(s)}function $m(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??Br,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function kt(t,e,r={path:[],schemaPath:[]}){var n;let i=t._zod.def,s=e.seen.get(t);if(s)return s.count++,r.schemaPath.includes(t)&&(s.cycle=r.path),s.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,o);let a=t._zod.toJSONSchema?.();if(a)o.schema=a;else{let l={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,o.schema,l);else{let p=o.schema,f=e.processors[i.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);f(t,e,p,l)}let d=t._zod.parent;d&&(o.ref||(o.ref=d),kt(d,e,l),e.seen.get(d).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(o.schema,c),e.io==="input"&&Wr(t)&&(delete o.schema.examples,delete o.schema.default),e.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,e.seen.get(t).schema}function Im(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let o of t.seen.entries()){let a=t.metadataRegistry.get(o[0])?.id;if(a){let c=n.get(a);if(c&&c!==o[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,o[0])}}let i=o=>{let a=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let d=t.external.registry.get(o[0])?.id,p=t.external.uri??(m=>m);if(d)return{ref:p(d)};let f=o[1].defId??o[1].schema.id??`schema${t.counter++}`;return o[1].defId=f,{defId:f,ref:`${p("__shared")}#/${a}/${f}`}}if(o[1]===r)return{ref:"#"};let u=`#/${a}/`,l=o[1].schema.id??`__schema${t.counter++}`;return{defId:l,ref:u+l}},s=o=>{if(o[1].schema.$ref)return;let a=o[1],{ref:c,defId:u}=i(o);a.def={...a.schema},u&&(a.defId=u);let l=a.schema;for(let d in l)delete l[d];l.$ref=c};if(t.cycles==="throw")for(let o of t.seen.entries()){let a=o[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let o of t.seen.entries()){let a=o[1];if(e===o[0]){s(o);continue}if(t.external){let u=t.external.registry.get(o[0])?.id;if(e!==o[0]&&u){s(o);continue}}if(t.metadataRegistry.get(o[0])?.id){s(o);continue}if(a.cycle){s(o);continue}if(a.count>1&&t.reused==="ref"){s(o);continue}}}function gm(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=o=>{let a=t.seen.get(o);if(a.ref===null)return;let c=a.def??a.schema,u={...c},l=a.ref;if(a.ref=null,l){n(l);let p=t.seen.get(l),m=p.schema;if(m.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(m)):Object.assign(c,m),Object.assign(c,u),o._zod.parent===l)for(let g in c)g==="$ref"||g==="allOf"||g in u||delete c[g];if(m.$ref&&p.def)for(let g in c)g==="$ref"||g==="allOf"||g in p.def&&JSON.stringify(c[g])===JSON.stringify(p.def[g])&&delete c[g]}let d=o._zod.parent;if(d&&d!==l){n(d);let p=t.seen.get(d);if(p?.schema.$ref&&(c.$ref=p.schema.$ref,p.def))for(let m in c)m==="$ref"||m==="allOf"||m in p.def&&JSON.stringify(c[m])===JSON.stringify(p.def[m])&&delete c[m]}t.override({zodSchema:o,jsonSchema:c,path:a.path??[]})};for(let o of[...t.seen.entries()].reverse())n(o[0]);let i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let o=t.external.registry.get(e)?.id;if(!o)throw new Error("Schema is missing an `id` property");i.$id=t.external.uri(o)}Object.assign(i,r.def??r.schema);let s=t.external?.defs??{};for(let o of t.seen.entries()){let a=o[1];a.def&&a.defId&&(s[a.defId]=a.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?i.$defs=s:i.definitions=s);try{let o=JSON.parse(JSON.stringify(i));return Object.defineProperty(o,"~standard",{value:{...e["~standard"],jsonSchema:{input:Xu(e,"input",t.processors),output:Xu(e,"output",t.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function Lr(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Lr(n.element,r);if(n.type==="set")return Lr(n.valueType,r);if(n.type==="lazy")return Lr(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Lr(n.innerType,r);if(n.type==="intersection")return Lr(n.left,r)||Lr(n.right,r);if(n.type==="record"||n.type==="map")return Lr(n.keyType,r)||Lr(n.valueType,r);if(n.type==="pipe")return Lr(n.in,r)||Lr(n.out,r);if(n.type==="object"){for(let i in n.shape)if(Lr(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(let i of n.options)if(Lr(i,r))return!0;return!1}if(n.type==="tuple"){for(let i of n.items)if(Lr(i,r))return!0;return!!(n.rest&&Lr(n.rest,r))}return!1}var lI=(t,e={})=>r=>{let n=fm({...r,processors:e});return $t(t,n),hm(n,t),gm(n,t)},Xu=(t,e,r={})=>n=>{let{libraryOptions:i,target:s}=n??{},o=fm({...i??{},target:s,io:e,processors:r});return $t(t,o),hm(o,t),gm(o,t)};var R8={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},dI=(t,e,r,n)=>{let i=r;i.type="string";let{minimum:s,maximum:o,format:a,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof s=="number"&&(i.minLength=s),typeof o=="number"&&(i.maxLength=o),a&&(i.format=R8[a]??a,i.format===""&&delete i.format,a==="time"&&delete i.format),u&&(i.contentEncoding=u),c&&c.size>0){let l=[...c];l.length===1?i.pattern=l[0].source:l.length>1&&(i.allOf=[...l.map(d=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},pI=(t,e,r,n)=>{let i=r,{minimum:s,maximum:o,format:a,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=t._zod.bag;typeof a=="string"&&a.includes("int")?i.type="integer":i.type="number",typeof l=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l),typeof s=="number"&&(i.minimum=s,typeof l=="number"&&e.target!=="draft-04"&&(l>=s?delete i.minimum:delete i.exclusiveMinimum)),typeof u=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.maximum=u,i.exclusiveMaximum=!0):i.exclusiveMaximum=u),typeof o=="number"&&(i.maximum=o,typeof u=="number"&&e.target!=="draft-04"&&(u<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c=="number"&&(i.multipleOf=c)},mI=(t,e,r,n)=>{r.type="boolean"},fI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},hI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},gI=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},vI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},yI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},_I=(t,e,r,n)=>{r.not={}},bI=(t,e,r,n)=>{},xI=(t,e,r,n)=>{},SI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},wI=(t,e,r,n)=>{let i=t._zod.def,s=_u(i.entries);s.every(o=>typeof o=="number")&&(r.type="number"),s.every(o=>typeof o=="string")&&(r.type="string"),r.enum=s},EI=(t,e,r,n)=>{let i=t._zod.def,s=[];for(let o of i.values)if(o===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof o=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(o))}else s.push(o);if(s.length!==0)if(s.length===1){let o=s[0];r.type=o===null?"null":typeof o,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[o]:r.const=o}else s.every(o=>typeof o=="number")&&(r.type="number"),s.every(o=>typeof o=="string")&&(r.type="string"),s.every(o=>typeof o=="boolean")&&(r.type="boolean"),s.every(o=>o===null)&&(r.type="null"),r.enum=s},kI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},$I=(t,e,r,n)=>{let i=r,s=t._zod.pattern;if(!s)throw new Error("Pattern not found in template literal");i.type="string",i.pattern=s.source},TI=(t,e,r,n)=>{let i=r,s={type:"string",format:"binary",contentEncoding:"binary"},{minimum:o,maximum:a,mime:c}=t._zod.bag;o!==void 0&&(s.minLength=o),a!==void 0&&(s.maxLength=a),c?c.length===1?(s.contentMediaType=c[0],Object.assign(i,s)):(Object.assign(i,s),i.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(i,s)},II=(t,e,r,n)=>{r.type="boolean"},RI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},OI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},PI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},CI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},AI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},NI=(t,e,r,n)=>{let i=r,s=t._zod.def,{minimum:o,maximum:a}=t._zod.bag;typeof o=="number"&&(i.minItems=o),typeof a=="number"&&(i.maxItems=a),i.type="array",i.items=$t(s.element,e,{...n,path:[...n.path,"items"]})},MI=(t,e,r,n)=>{let i=r,s=t._zod.def;i.type="object",i.properties={};let o=s.shape;for(let u in o)i.properties[u]=$t(o[u],e,{...n,path:[...n.path,"properties",u]});let a=new Set(Object.keys(o)),c=new Set([...a].filter(u=>{let l=s.shape[u]._zod;return e.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(i.required=Array.from(c)),s.catchall?._zod.def.type==="never"?i.additionalProperties=!1:s.catchall?s.catchall&&(i.additionalProperties=$t(s.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},pb=(t,e,r,n)=>{let i=t._zod.def,s=i.inclusive===!1,o=i.options.map((a,c)=>$t(a,e,{...n,path:[...n.path,s?"oneOf":"anyOf",c]}));s?r.oneOf=o:r.anyOf=o},DI=(t,e,r,n)=>{let i=t._zod.def,s=$t(i.left,e,{...n,path:[...n.path,"allOf",0]}),o=$t(i.right,e,{...n,path:[...n.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(s)?s.allOf:[s],...a(o)?o.allOf:[o]];r.allOf=c},jI=(t,e,r,n)=>{let i=r,s=t._zod.def;i.type="array";let o=e.target==="draft-2020-12"?"prefixItems":"items",a=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",c=s.items.map((p,m)=>$t(p,e,{...n,path:[...n.path,o,m]})),u=s.rest?$t(s.rest,e,{...n,path:[...n.path,a,...e.target==="openapi-3.0"?[s.items.length]:[]]}):null;e.target==="draft-2020-12"?(i.prefixItems=c,u&&(i.items=u)):e.target==="openapi-3.0"?(i.items={anyOf:c},u&&i.items.anyOf.push(u),i.minItems=c.length,u||(i.maxItems=c.length)):(i.items=c,u&&(i.additionalItems=u));let{minimum:l,maximum:d}=t._zod.bag;typeof l=="number"&&(i.minItems=l),typeof d=="number"&&(i.maxItems=d)},zI=(t,e,r,n)=>{let i=r,s=t._zod.def;i.type="object";let o=s.keyType,c=o._zod.bag?.patterns;if(s.mode==="loose"&&c&&c.size>0){let l=$t(s.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});i.patternProperties={};for(let d of c)i.patternProperties[d.source]=l}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(i.propertyNames=$t(s.keyType,e,{...n,path:[...n.path,"propertyNames"]})),i.additionalProperties=$t(s.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let u=o._zod.values;if(u){let l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(i.required=l)}},LI=(t,e,r,n)=>{let i=t._zod.def,s=$t(i.innerType,e,n),o=e.seen.get(t);e.target==="openapi-3.0"?(o.ref=i.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},UI=(t,e,r,n)=>{let i=t._zod.def;$t(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType},qI=(t,e,r,n)=>{let i=t._zod.def;$t(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType,r.default=JSON.parse(JSON.stringify(i.defaultValue))},FI=(t,e,r,n)=>{let i=t._zod.def;$t(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},HI=(t,e,r,n)=>{let i=t._zod.def;$t(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=o},ZI=(t,e,r,n)=>{let i=t._zod.def,s=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;$t(s,e,n);let o=e.seen.get(t);o.ref=s},BI=(t,e,r,n)=>{let i=t._zod.def;$t(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType,r.readOnly=!0},VI=(t,e,r,n)=>{let i=t._zod.def;$t(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType},mb=(t,e,r,n)=>{let i=t._zod.def;$t(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType},GI=(t,e,r,n)=>{let i=t._zod.innerType;$t(i,e,n);let s=e.seen.get(t);s.ref=i};function ba(t){return!!t._zod}function Bn(t,e){return ba(t)?ha(t,e):t.safeParse(e)}function vm(t){if(!t)return;let e;if(ba(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function XI(t){if(ba(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 n=t.value;if(n!==void 0)return n}var Yu={};ln(Yu,{ZodAny:()=>hR,ZodArray:()=>_R,ZodBase64:()=>jb,ZodBase64URL:()=>zb,ZodBigInt:()=>$m,ZodBigIntFormat:()=>qb,ZodBoolean:()=>km,ZodCIDRv4:()=>Mb,ZodCIDRv6:()=>Db,ZodCUID:()=>Ib,ZodCUID2:()=>Rb,ZodCatch:()=>LR,ZodCodec:()=>Wb,ZodCustom:()=>Pm,ZodCustomStringFormat:()=>el,ZodDate:()=>Hb,ZodDefault:()=>AR,ZodDiscriminatedUnion:()=>xR,ZodE164:()=>Lb,ZodEmail:()=>kb,ZodEmoji:()=>$b,ZodEnum:()=>Qu,ZodExactOptional:()=>OR,ZodFile:()=>IR,ZodFunction:()=>WR,ZodGUID:()=>_m,ZodIPv4:()=>Ab,ZodIPv6:()=>Nb,ZodIntersection:()=>SR,ZodJWT:()=>Ub,ZodKSUID:()=>Cb,ZodLazy:()=>BR,ZodLiteral:()=>TR,ZodMAC:()=>dR,ZodMap:()=>kR,ZodNaN:()=>qR,ZodNanoID:()=>Tb,ZodNever:()=>vR,ZodNonOptional:()=>Vb,ZodNull:()=>fR,ZodNullable:()=>CR,ZodNumber:()=>Em,ZodNumberFormat:()=>xa,ZodObject:()=>Tm,ZodOptional:()=>Bb,ZodPipe:()=>Gb,ZodPrefault:()=>MR,ZodPromise:()=>GR,ZodReadonly:()=>FR,ZodRecord:()=>Om,ZodSet:()=>$R,ZodString:()=>Sm,ZodStringFormat:()=>bt,ZodSuccess:()=>zR,ZodSymbol:()=>pR,ZodTemplateLiteral:()=>ZR,ZodTransform:()=>RR,ZodTuple:()=>wR,ZodType:()=>De,ZodULID:()=>Ob,ZodURL:()=>wm,ZodUUID:()=>Ui,ZodUndefined:()=>mR,ZodUnion:()=>Im,ZodUnknown:()=>gR,ZodVoid:()=>yR,ZodXID:()=>Pb,ZodXor:()=>bR,_ZodString:()=>Eb,_default:()=>NR,_function:()=>G5,any:()=>R5,array:()=>We,base64:()=>p5,base64url:()=>m5,bigint:()=>E5,boolean:()=>Xt,catch:()=>UR,check:()=>W5,cidrv4:()=>l5,cidrv6:()=>d5,codec:()=>Z5,cuid:()=>r5,cuid2:()=>n5,custom:()=>Kb,date:()=>P5,describe:()=>K5,discriminatedUnion:()=>Rm,e164:()=>f5,email:()=>V8,emoji:()=>e5,enum:()=>Er,exactOptional:()=>PR,file:()=>U5,float32:()=>b5,float64:()=>x5,function:()=>G5,guid:()=>G8,hash:()=>_5,hex:()=>y5,hostname:()=>v5,httpUrl:()=>Q8,instanceof:()=>X5,int:()=>wb,int32:()=>S5,int64:()=>k5,intersection:()=>rl,ipv4:()=>a5,ipv6:()=>u5,json:()=>Q5,jwt:()=>h5,keyof:()=>C5,ksuid:()=>o5,lazy:()=>VR,literal:()=>me,looseObject:()=>wr,looseRecord:()=>D5,mac:()=>c5,map:()=>j5,meta:()=>J5,nan:()=>H5,nanoid:()=>t5,nativeEnum:()=>L5,never:()=>Fb,nonoptional:()=>jR,null:()=>tl,nullable:()=>bm,nullish:()=>q5,number:()=>ct,object:()=>ie,optional:()=>Ot,partialRecord:()=>M5,pipe:()=>xm,prefault:()=>DR,preprocess:()=>Cm,promise:()=>V5,readonly:()=>HR,record:()=>Tt,refine:()=>KR,set:()=>z5,strictObject:()=>A5,string:()=>z,stringFormat:()=>g5,stringbool:()=>Y5,success:()=>F5,superRefine:()=>JR,symbol:()=>T5,templateLiteral:()=>B5,transform:()=>Zb,tuple:()=>ER,uint32:()=>w5,uint64:()=>$5,ulid:()=>i5,undefined:()=>I5,union:()=>ft,unknown:()=>xt,url:()=>Y8,uuid:()=>W8,uuidv4:()=>K8,uuidv6:()=>J8,uuidv7:()=>X8,void:()=>O5,xid:()=>s5,xor:()=>N5});var ym={};ln(ym,{endsWith:()=>Bu,gt:()=>zi,gte:()=>zr,includes:()=>Hu,length:()=>ya,lowercase:()=>qu,lt:()=>ji,lte:()=>fn,maxLength:()=>va,maxSize:()=>to,mime:()=>Vu,minLength:()=>xs,minSize:()=>Li,multipleOf:()=>eo,negative:()=>tb,nonnegative:()=>nb,nonpositive:()=>rb,normalize:()=>Gu,overwrite:()=>ui,positive:()=>eb,property:()=>ib,regex:()=>Uu,size:()=>ga,slugify:()=>mm,startsWith:()=>Zu,toLowerCase:()=>Ku,toUpperCase:()=>Ju,trim:()=>Wu,uppercase:()=>Fu});var ro={};ln(ro,{ZodISODate:()=>vb,ZodISODateTime:()=>hb,ZodISODuration:()=>xb,ZodISOTime:()=>_b,date:()=>yb,datetime:()=>gb,duration:()=>Sb,time:()=>bb});var hb=O("ZodISODateTime",(t,e)=>{Ry.init(t,e),bt.init(t,e)});function gb(t){return P_(hb,t)}var vb=O("ZodISODate",(t,e)=>{Oy.init(t,e),bt.init(t,e)});function yb(t){return C_(vb,t)}var _b=O("ZodISOTime",(t,e)=>{Py.init(t,e),bt.init(t,e)});function bb(t){return A_(_b,t)}var xb=O("ZodISODuration",(t,e)=>{Cy.init(t,e),bt.init(t,e)});function Sb(t){return N_(xb,t)}var YI=(t,e)=>{Cp.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Np(t,r)},flatten:{value:r=>Ap(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,pa,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,pa,2)}},isEmpty:{get(){return t.issues.length===0}}})},Kxe=O("ZodError",YI),hn=O("ZodError",YI,{Parent:Error});var QI=ku(hn),eR=Tu(hn),tR=Ru(hn),rR=Ou(hn),nR=mT(hn),iR=fT(hn),sR=hT(hn),oR=gT(hn),aR=vT(hn),cR=yT(hn),uR=_T(hn),lR=bT(hn);var De=O("ZodType",(t,e)=>(Pe.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Xu(t,"input"),output:Xu(t,"output")}}),t.toJSONSchema=lI(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone(V.mergeDefs(e,{checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),t.with=t.check,t.clone=(r,n)=>Dr(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>QI(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>tR(t,r,n),t.parseAsync=async(r,n)=>eR(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>rR(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>nR(t,r,n),t.decode=(r,n)=>iR(t,r,n),t.encodeAsync=async(r,n)=>sR(t,r,n),t.decodeAsync=async(r,n)=>oR(t,r,n),t.safeEncode=(r,n)=>aR(t,r,n),t.safeDecode=(r,n)=>cR(t,r,n),t.safeEncodeAsync=async(r,n)=>uR(t,r,n),t.safeDecodeAsync=async(r,n)=>lR(t,r,n),t.refine=(r,n)=>t.check(KR(r,n)),t.superRefine=r=>t.check(JR(r)),t.overwrite=r=>t.check(ui(r)),t.optional=()=>Ot(t),t.exactOptional=()=>PR(t),t.nullable=()=>bm(t),t.nullish=()=>Ot(bm(t)),t.nonoptional=r=>jR(t,r),t.array=()=>We(t),t.or=r=>ft([t,r]),t.and=r=>rl(t,r),t.transform=r=>xm(t,Zb(r)),t.default=r=>NR(t,r),t.prefault=r=>DR(t,r),t.catch=r=>UR(t,r),t.pipe=r=>xm(t,r),t.readonly=()=>HR(t),t.describe=r=>{let n=t.clone();return jr.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return jr.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return jr.get(t);let n=t.clone();return jr.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=r=>r(t),t)),Eb=O("_ZodString",(t,e)=>{Qs.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>dI(t,n,i,s);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(Uu(...n)),t.includes=(...n)=>t.check(Hu(...n)),t.startsWith=(...n)=>t.check(Zu(...n)),t.endsWith=(...n)=>t.check(Bu(...n)),t.min=(...n)=>t.check(xs(...n)),t.max=(...n)=>t.check(va(...n)),t.length=(...n)=>t.check(ya(...n)),t.nonempty=(...n)=>t.check(xs(1,...n)),t.lowercase=n=>t.check(qu(n)),t.uppercase=n=>t.check(Fu(n)),t.trim=()=>t.check(Wu()),t.normalize=(...n)=>t.check(Gu(...n)),t.toLowerCase=()=>t.check(Ku()),t.toUpperCase=()=>t.check(Ju()),t.slugify=()=>t.check(mm())}),Sm=O("ZodString",(t,e)=>{Qs.init(t,e),Eb.init(t,e),t.email=r=>t.check(Gp(kb,r)),t.url=r=>t.check(Lu(wm,r)),t.jwt=r=>t.check(pm(Ub,r)),t.emoji=r=>t.check(Yp($b,r)),t.guid=r=>t.check(zu(_m,r)),t.uuid=r=>t.check(Wp(Ui,r)),t.uuidv4=r=>t.check(Kp(Ui,r)),t.uuidv6=r=>t.check(Jp(Ui,r)),t.uuidv7=r=>t.check(Xp(Ui,r)),t.nanoid=r=>t.check(Qp(Tb,r)),t.guid=r=>t.check(zu(_m,r)),t.cuid=r=>t.check(em(Ib,r)),t.cuid2=r=>t.check(tm(Rb,r)),t.ulid=r=>t.check(rm(Ob,r)),t.base64=r=>t.check(um(jb,r)),t.base64url=r=>t.check(lm(zb,r)),t.xid=r=>t.check(nm(Pb,r)),t.ksuid=r=>t.check(im(Cb,r)),t.ipv4=r=>t.check(sm(Ab,r)),t.ipv6=r=>t.check(om(Nb,r)),t.cidrv4=r=>t.check(am(Mb,r)),t.cidrv6=r=>t.check(cm(Db,r)),t.e164=r=>t.check(dm(Lb,r)),t.datetime=r=>t.check(gb(r)),t.date=r=>t.check(yb(r)),t.time=r=>t.check(bb(r)),t.duration=r=>t.check(Sb(r))});function z(t){return R_(Sm,t)}var bt=O("ZodStringFormat",(t,e)=>{mt.init(t,e),Eb.init(t,e)}),kb=O("ZodEmail",(t,e)=>{by.init(t,e),bt.init(t,e)});function V8(t){return Gp(kb,t)}var _m=O("ZodGUID",(t,e)=>{yy.init(t,e),bt.init(t,e)});function G8(t){return zu(_m,t)}var Ui=O("ZodUUID",(t,e)=>{_y.init(t,e),bt.init(t,e)});function W8(t){return Wp(Ui,t)}function K8(t){return Kp(Ui,t)}function J8(t){return Jp(Ui,t)}function X8(t){return Xp(Ui,t)}var wm=O("ZodURL",(t,e)=>{xy.init(t,e),bt.init(t,e)});function Y8(t){return Lu(wm,t)}function Q8(t){return Lu(wm,{protocol:/^https?$/,hostname:kn.domain,...V.normalizeParams(t)})}var $b=O("ZodEmoji",(t,e)=>{Sy.init(t,e),bt.init(t,e)});function e5(t){return Yp($b,t)}var Tb=O("ZodNanoID",(t,e)=>{wy.init(t,e),bt.init(t,e)});function t5(t){return Qp(Tb,t)}var Ib=O("ZodCUID",(t,e)=>{Ey.init(t,e),bt.init(t,e)});function r5(t){return em(Ib,t)}var Rb=O("ZodCUID2",(t,e)=>{ky.init(t,e),bt.init(t,e)});function n5(t){return tm(Rb,t)}var Ob=O("ZodULID",(t,e)=>{$y.init(t,e),bt.init(t,e)});function i5(t){return rm(Ob,t)}var Pb=O("ZodXID",(t,e)=>{Ty.init(t,e),bt.init(t,e)});function s5(t){return nm(Pb,t)}var Cb=O("ZodKSUID",(t,e)=>{Iy.init(t,e),bt.init(t,e)});function o5(t){return im(Cb,t)}var Ab=O("ZodIPv4",(t,e)=>{Ay.init(t,e),bt.init(t,e)});function a5(t){return sm(Ab,t)}var dR=O("ZodMAC",(t,e)=>{My.init(t,e),bt.init(t,e)});function c5(t){return O_(dR,t)}var Nb=O("ZodIPv6",(t,e)=>{Ny.init(t,e),bt.init(t,e)});function u5(t){return om(Nb,t)}var Mb=O("ZodCIDRv4",(t,e)=>{Dy.init(t,e),bt.init(t,e)});function l5(t){return am(Mb,t)}var Db=O("ZodCIDRv6",(t,e)=>{jy.init(t,e),bt.init(t,e)});function d5(t){return cm(Db,t)}var jb=O("ZodBase64",(t,e)=>{zy.init(t,e),bt.init(t,e)});function p5(t){return um(jb,t)}var zb=O("ZodBase64URL",(t,e)=>{Ly.init(t,e),bt.init(t,e)});function m5(t){return lm(zb,t)}var Lb=O("ZodE164",(t,e)=>{Uy.init(t,e),bt.init(t,e)});function f5(t){return dm(Lb,t)}var Ub=O("ZodJWT",(t,e)=>{qy.init(t,e),bt.init(t,e)});function h5(t){return pm(Ub,t)}var el=O("ZodCustomStringFormat",(t,e)=>{Fy.init(t,e),bt.init(t,e)});function g5(t,e,r={}){return _a(el,t,e,r)}function v5(t){return _a(el,"hostname",kn.hostname,t)}function y5(t){return _a(el,"hex",kn.hex,t)}function _5(t,e){let r=e?.enc??"hex",n=`${t}_${r}`,i=kn[n];if(!i)throw new Error(`Unrecognized hash format: ${n}`);return _a(el,n,i,e)}var Em=O("ZodNumber",(t,e)=>{Hp.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>pI(t,n,i,s),t.gt=(n,i)=>t.check(zi(n,i)),t.gte=(n,i)=>t.check(zr(n,i)),t.min=(n,i)=>t.check(zr(n,i)),t.lt=(n,i)=>t.check(ji(n,i)),t.lte=(n,i)=>t.check(fn(n,i)),t.max=(n,i)=>t.check(fn(n,i)),t.int=n=>t.check(wb(n)),t.safe=n=>t.check(wb(n)),t.positive=n=>t.check(zi(0,n)),t.nonnegative=n=>t.check(zr(0,n)),t.negative=n=>t.check(ji(0,n)),t.nonpositive=n=>t.check(fn(0,n)),t.multipleOf=(n,i)=>t.check(eo(n,i)),t.step=(n,i)=>t.check(eo(n,i)),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 ct(t){return M_(Em,t)}var xa=O("ZodNumberFormat",(t,e)=>{Hy.init(t,e),Em.init(t,e)});function wb(t){return D_(xa,t)}function b5(t){return j_(xa,t)}function x5(t){return z_(xa,t)}function S5(t){return L_(xa,t)}function w5(t){return U_(xa,t)}var km=O("ZodBoolean",(t,e)=>{Mu.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>mI(t,r,n,i)});function Xt(t){return q_(km,t)}var $m=O("ZodBigInt",(t,e)=>{Zp.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>fI(t,n,i,s),t.gte=(n,i)=>t.check(zr(n,i)),t.min=(n,i)=>t.check(zr(n,i)),t.gt=(n,i)=>t.check(zi(n,i)),t.gte=(n,i)=>t.check(zr(n,i)),t.min=(n,i)=>t.check(zr(n,i)),t.lt=(n,i)=>t.check(ji(n,i)),t.lte=(n,i)=>t.check(fn(n,i)),t.max=(n,i)=>t.check(fn(n,i)),t.positive=n=>t.check(zi(BigInt(0),n)),t.negative=n=>t.check(ji(BigInt(0),n)),t.nonpositive=n=>t.check(fn(BigInt(0),n)),t.nonnegative=n=>t.check(zr(BigInt(0),n)),t.multipleOf=(n,i)=>t.check(eo(n,i));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function E5(t){return F_($m,t)}var qb=O("ZodBigIntFormat",(t,e)=>{Zy.init(t,e),$m.init(t,e)});function k5(t){return H_(qb,t)}function $5(t){return Z_(qb,t)}var pR=O("ZodSymbol",(t,e)=>{By.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>hI(t,r,n,i)});function T5(t){return B_(pR,t)}var mR=O("ZodUndefined",(t,e)=>{Vy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>vI(t,r,n,i)});function I5(t){return V_(mR,t)}var fR=O("ZodNull",(t,e)=>{Gy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>gI(t,r,n,i)});function tl(t){return G_(fR,t)}var hR=O("ZodAny",(t,e)=>{Wy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>bI(t,r,n,i)});function R5(){return W_(hR)}var gR=O("ZodUnknown",(t,e)=>{Ky.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>xI(t,r,n,i)});function xt(){return K_(gR)}var vR=O("ZodNever",(t,e)=>{Jy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>_I(t,r,n,i)});function Fb(t){return J_(vR,t)}var yR=O("ZodVoid",(t,e)=>{Xy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>yI(t,r,n,i)});function O5(t){return X_(yR,t)}var Hb=O("ZodDate",(t,e)=>{Yy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>SI(t,n,i,s),t.min=(n,i)=>t.check(zr(n,i)),t.max=(n,i)=>t.check(fn(n,i));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function P5(t){return Y_(Hb,t)}var _R=O("ZodArray",(t,e)=>{Qy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>NI(t,r,n,i),t.element=e.element,t.min=(r,n)=>t.check(xs(r,n)),t.nonempty=r=>t.check(xs(1,r)),t.max=(r,n)=>t.check(va(r,n)),t.length=(r,n)=>t.check(ya(r,n)),t.unwrap=()=>t.element});function We(t,e){return uI(_R,t,e)}function C5(t){let e=t._zod.def.shape;return Er(Object.keys(e))}var Tm=O("ZodObject",(t,e)=>{aI.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>MI(t,r,n,i),V.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Er(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:xt()}),t.loose=()=>t.clone({...t._zod.def,catchall:xt()}),t.strict=()=>t.clone({...t._zod.def,catchall:Fb()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>V.extend(t,r),t.safeExtend=r=>V.safeExtend(t,r),t.merge=r=>V.merge(t,r),t.pick=r=>V.pick(t,r),t.omit=r=>V.omit(t,r),t.partial=(...r)=>V.partial(Bb,t,r[0]),t.required=(...r)=>V.required(Vb,t,r[0])});function ie(t,e){let r={type:"object",shape:t??{},...V.normalizeParams(e)};return new Tm(r)}function A5(t,e){return new Tm({type:"object",shape:t,catchall:Fb(),...V.normalizeParams(e)})}function wr(t,e){return new Tm({type:"object",shape:t,catchall:xt(),...V.normalizeParams(e)})}var Im=O("ZodUnion",(t,e)=>{Du.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>pb(t,r,n,i),t.options=e.options});function ft(t,e){return new Im({type:"union",options:t,...V.normalizeParams(e)})}var bR=O("ZodXor",(t,e)=>{Im.init(t,e),e_.init(t,e),t._zod.processJSONSchema=(r,n,i)=>pb(t,r,n,i),t.options=e.options});function N5(t,e){return new bR({type:"union",options:t,inclusive:!1,...V.normalizeParams(e)})}var xR=O("ZodDiscriminatedUnion",(t,e)=>{Im.init(t,e),t_.init(t,e)});function Rm(t,e,r){return new xR({type:"union",options:e,discriminator:t,...V.normalizeParams(r)})}var SR=O("ZodIntersection",(t,e)=>{r_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>DI(t,r,n,i)});function rl(t,e){return new SR({type:"intersection",left:t,right:e})}var wR=O("ZodTuple",(t,e)=>{Bp.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>jI(t,r,n,i),t.rest=r=>t.clone({...t._zod.def,rest:r})});function ER(t,e,r){let n=e instanceof Pe,i=n?r:e,s=n?e:null;return new wR({type:"tuple",items:t,rest:s,...V.normalizeParams(i)})}var Om=O("ZodRecord",(t,e)=>{n_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>zI(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType});function Tt(t,e,r){return new Om({type:"record",keyType:t,valueType:e,...V.normalizeParams(r)})}function M5(t,e,r){let n=Dr(t);return n._zod.values=void 0,new Om({type:"record",keyType:n,valueType:e,...V.normalizeParams(r)})}function D5(t,e,r){return new Om({type:"record",keyType:t,valueType:e,mode:"loose",...V.normalizeParams(r)})}var kR=O("ZodMap",(t,e)=>{i_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>CI(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...r)=>t.check(Li(...r)),t.nonempty=r=>t.check(Li(1,r)),t.max=(...r)=>t.check(to(...r)),t.size=(...r)=>t.check(ga(...r))});function j5(t,e,r){return new kR({type:"map",keyType:t,valueType:e,...V.normalizeParams(r)})}var $R=O("ZodSet",(t,e)=>{s_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>AI(t,r,n,i),t.min=(...r)=>t.check(Li(...r)),t.nonempty=r=>t.check(Li(1,r)),t.max=(...r)=>t.check(to(...r)),t.size=(...r)=>t.check(ga(...r))});function z5(t,e){return new $R({type:"set",valueType:t,...V.normalizeParams(e)})}var Qu=O("ZodEnum",(t,e)=>{o_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>wI(t,n,i,s),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let s={};for(let o of n)if(r.has(o))s[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Qu({...e,checks:[],...V.normalizeParams(i),entries:s})},t.exclude=(n,i)=>{let s={...e.entries};for(let o of n)if(r.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new Qu({...e,checks:[],...V.normalizeParams(i),entries:s})}});function Er(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Qu({type:"enum",entries:r,...V.normalizeParams(e)})}function L5(t,e){return new Qu({type:"enum",entries:t,...V.normalizeParams(e)})}var TR=O("ZodLiteral",(t,e)=>{a_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>EI(t,r,n,i),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 TR({type:"literal",values:Array.isArray(t)?t:[t],...V.normalizeParams(e)})}var IR=O("ZodFile",(t,e)=>{c_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>TI(t,r,n,i),t.min=(r,n)=>t.check(Li(r,n)),t.max=(r,n)=>t.check(to(r,n)),t.mime=(r,n)=>t.check(Vu(Array.isArray(r)?r:[r],n))});function U5(t){return sb(IR,t)}var RR=O("ZodTransform",(t,e)=>{u_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>PI(t,r,n,i),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Js(t.constructor.name);r.addIssue=s=>{if(typeof s=="string")r.issues.push(V.issue(s,r.value,e));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),r.issues.push(V.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(s=>(r.value=s,r)):(r.value=i,r)}});function Zb(t){return new RR({type:"transform",transform:t})}var Bb=O("ZodOptional",(t,e)=>{Vp.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>mb(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Ot(t){return new Bb({type:"optional",innerType:t})}var OR=O("ZodExactOptional",(t,e)=>{l_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>mb(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function PR(t){return new OR({type:"optional",innerType:t})}var CR=O("ZodNullable",(t,e)=>{d_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>LI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function bm(t){return new CR({type:"nullable",innerType:t})}function q5(t){return Ot(bm(t))}var AR=O("ZodDefault",(t,e)=>{p_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>qI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function NR(t,e){return new AR({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():V.shallowClone(e)}})}var MR=O("ZodPrefault",(t,e)=>{m_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>FI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function DR(t,e){return new MR({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():V.shallowClone(e)}})}var Vb=O("ZodNonOptional",(t,e)=>{f_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>UI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function jR(t,e){return new Vb({type:"nonoptional",innerType:t,...V.normalizeParams(e)})}var zR=O("ZodSuccess",(t,e)=>{h_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>II(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function F5(t){return new zR({type:"success",innerType:t})}var LR=O("ZodCatch",(t,e)=>{g_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>HI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function UR(t,e){return new LR({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var qR=O("ZodNaN",(t,e)=>{v_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>kI(t,r,n,i)});function H5(t){return Q_(qR,t)}var Gb=O("ZodPipe",(t,e)=>{y_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>ZI(t,r,n,i),t.in=e.in,t.out=e.out});function xm(t,e){return new Gb({type:"pipe",in:t,out:e})}var Wb=O("ZodCodec",(t,e)=>{Gb.init(t,e),ju.init(t,e)});function Z5(t,e,r){return new Wb({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var FR=O("ZodReadonly",(t,e)=>{__.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>BI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function HR(t){return new FR({type:"readonly",innerType:t})}var ZR=O("ZodTemplateLiteral",(t,e)=>{b_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>$I(t,r,n,i)});function B5(t,e){return new ZR({type:"template_literal",parts:t,...V.normalizeParams(e)})}var BR=O("ZodLazy",(t,e)=>{w_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>GI(t,r,n,i),t.unwrap=()=>t._zod.def.getter()});function VR(t){return new BR({type:"lazy",getter:t})}var GR=O("ZodPromise",(t,e)=>{S_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>VI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function V5(t){return new GR({type:"promise",innerType:t})}var WR=O("ZodFunction",(t,e)=>{x_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>OI(t,r,n,i)});function G5(t){return new WR({type:"function",input:Array.isArray(t?.input)?ER(t?.input):t?.input??We(xt()),output:t?.output??xt()})}var Pm=O("ZodCustom",(t,e)=>{E_.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>RI(t,r,n,i)});function W5(t){let e=new _t({check:"custom"});return e._zod.check=t,e}function Kb(t,e){return ob(Pm,t??(()=>!0),e)}function KR(t,e={}){return ab(Pm,t,e)}function JR(t){return cb(t)}var K5=ub,J5=lb;function X5(t,e={}){let r=new Pm({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...V.normalizeParams(e)});return r._zod.bag.Class=t,r._zod.check=n=>{n.value instanceof t||n.issues.push({code:"invalid_type",expected:t.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var Y5=(...t)=>db({Codec:Wb,Boolean:km,String:Sm},...t);function Q5(t){let e=VR(()=>ft([z(t),ct(),Xt(),tl(),We(e),Tt(z(),e)]));return e}function Cm(t,e){return xm(Zb(t),e)}var XR;XR||(XR={});var nSe={...Yu,...ym,iso:ro};tr(k_());var Xb="2025-11-25";var YR=[Xb,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Ss="io.modelcontextprotocol/related-task",Nm="2.0",mr=Kb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),QR=ft([z(),ct().int()]),eO=z(),SSe=wr({ttl:ft([ct(),tl()]).optional(),pollInterval:ct().optional()}),nH=ie({ttl:ct().optional()}),iH=ie({taskId:z()}),Yb=wr({progressToken:QR.optional(),[Ss]:iH.optional()}),gn=ie({_meta:Yb.optional()}),nl=gn.extend({task:nH.optional()}),tO=t=>nl.safeParse(t).success,fr=ie({method:z(),params:gn.loose().optional()}),$n=ie({_meta:Yb.optional()}),Tn=ie({method:z(),params:$n.loose().optional()}),hr=wr({_meta:Yb.optional()}),Mm=ft([z(),ct().int()]),rO=ie({jsonrpc:me(Nm),id:Mm,...fr.shape}).strict(),Qb=t=>rO.safeParse(t).success,nO=ie({jsonrpc:me(Nm),...Tn.shape}).strict(),iO=t=>nO.safeParse(t).success,ex=ie({jsonrpc:me(Nm),id:Mm,result:hr}).strict(),il=t=>ex.safeParse(t).success;var Te;(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"})(Te||(Te={}));var tx=ie({jsonrpc:me(Nm),id:Mm.optional(),error:ie({code:ct().int(),message:z(),data:xt().optional()})}).strict();var sO=t=>tx.safeParse(t).success;var oO=ft([rO,nO,ex,tx]),wSe=ft([ex,tx]),no=hr.strict(),sH=$n.extend({requestId:Mm.optional(),reason:z().optional()}),Dm=Tn.extend({method:me("notifications/cancelled"),params:sH}),oH=ie({src:z(),mimeType:z().optional(),sizes:We(z()).optional(),theme:Er(["light","dark"]).optional()}),sl=ie({icons:We(oH).optional()}),Sa=ie({name:z(),title:z().optional()}),aO=Sa.extend({...Sa.shape,...sl.shape,version:z(),websiteUrl:z().optional(),description:z().optional()}),aH=rl(ie({applyDefaults:Xt().optional()}),Tt(z(),xt())),cH=Cm(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,rl(ie({form:aH.optional(),url:mr.optional()}),Tt(z(),xt()).optional())),uH=wr({list:mr.optional(),cancel:mr.optional(),requests:wr({sampling:wr({createMessage:mr.optional()}).optional(),elicitation:wr({create:mr.optional()}).optional()}).optional()}),lH=wr({list:mr.optional(),cancel:mr.optional(),requests:wr({tools:wr({call:mr.optional()}).optional()}).optional()}),dH=ie({experimental:Tt(z(),mr).optional(),sampling:ie({context:mr.optional(),tools:mr.optional()}).optional(),elicitation:cH.optional(),roots:ie({listChanged:Xt().optional()}).optional(),tasks:uH.optional()}),pH=gn.extend({protocolVersion:z(),capabilities:dH,clientInfo:aO}),mH=fr.extend({method:me("initialize"),params:pH});var fH=ie({experimental:Tt(z(),mr).optional(),logging:mr.optional(),completions:mr.optional(),prompts:ie({listChanged:Xt().optional()}).optional(),resources:ie({subscribe:Xt().optional(),listChanged:Xt().optional()}).optional(),tools:ie({listChanged:Xt().optional()}).optional(),tasks:lH.optional()}),rx=hr.extend({protocolVersion:z(),capabilities:fH,serverInfo:aO,instructions:z().optional()}),hH=Tn.extend({method:me("notifications/initialized"),params:$n.optional()});var jm=fr.extend({method:me("ping"),params:gn.optional()}),gH=ie({progress:ct(),total:Ot(ct()),message:Ot(z())}),vH=ie({...$n.shape,...gH.shape,progressToken:QR}),zm=Tn.extend({method:me("notifications/progress"),params:vH}),yH=gn.extend({cursor:eO.optional()}),ol=fr.extend({params:yH.optional()}),al=hr.extend({nextCursor:eO.optional()}),_H=Er(["working","input_required","completed","failed","cancelled"]),cl=ie({taskId:z(),status:_H,ttl:ft([ct(),tl()]),createdAt:z(),lastUpdatedAt:z(),pollInterval:Ot(ct()),statusMessage:Ot(z())}),io=hr.extend({task:cl}),bH=$n.merge(cl),ul=Tn.extend({method:me("notifications/tasks/status"),params:bH}),Lm=fr.extend({method:me("tasks/get"),params:gn.extend({taskId:z()})}),Um=hr.merge(cl),qm=fr.extend({method:me("tasks/result"),params:gn.extend({taskId:z()})}),ESe=hr.loose(),Fm=ol.extend({method:me("tasks/list")}),Hm=al.extend({tasks:We(cl)}),Zm=fr.extend({method:me("tasks/cancel"),params:gn.extend({taskId:z()})}),cO=hr.merge(cl),uO=ie({uri:z(),mimeType:Ot(z()),_meta:Tt(z(),xt()).optional()}),lO=uO.extend({text:z()}),nx=z().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),dO=uO.extend({blob:nx}),ll=Er(["user","assistant"]),wa=ie({audience:We(ll).optional(),priority:ct().min(0).max(1).optional(),lastModified:ro.datetime({offset:!0}).optional()}),pO=ie({...Sa.shape,...sl.shape,uri:z(),description:Ot(z()),mimeType:Ot(z()),annotations:wa.optional(),_meta:Ot(wr({}))}),xH=ie({...Sa.shape,...sl.shape,uriTemplate:z(),description:Ot(z()),mimeType:Ot(z()),annotations:wa.optional(),_meta:Ot(wr({}))}),SH=ol.extend({method:me("resources/list")}),ix=al.extend({resources:We(pO)}),wH=ol.extend({method:me("resources/templates/list")}),sx=al.extend({resourceTemplates:We(xH)}),ox=gn.extend({uri:z()}),EH=ox,kH=fr.extend({method:me("resources/read"),params:EH}),ax=hr.extend({contents:We(ft([lO,dO]))}),cx=Tn.extend({method:me("notifications/resources/list_changed"),params:$n.optional()}),$H=ox,TH=fr.extend({method:me("resources/subscribe"),params:$H}),IH=ox,RH=fr.extend({method:me("resources/unsubscribe"),params:IH}),OH=$n.extend({uri:z()}),PH=Tn.extend({method:me("notifications/resources/updated"),params:OH}),CH=ie({name:z(),description:Ot(z()),required:Ot(Xt())}),AH=ie({...Sa.shape,...sl.shape,description:Ot(z()),arguments:Ot(We(CH)),_meta:Ot(wr({}))}),NH=ol.extend({method:me("prompts/list")}),ux=al.extend({prompts:We(AH)}),MH=gn.extend({name:z(),arguments:Tt(z(),z()).optional()}),DH=fr.extend({method:me("prompts/get"),params:MH}),lx=ie({type:me("text"),text:z(),annotations:wa.optional(),_meta:Tt(z(),xt()).optional()}),dx=ie({type:me("image"),data:nx,mimeType:z(),annotations:wa.optional(),_meta:Tt(z(),xt()).optional()}),px=ie({type:me("audio"),data:nx,mimeType:z(),annotations:wa.optional(),_meta:Tt(z(),xt()).optional()}),jH=ie({type:me("tool_use"),name:z(),id:z(),input:Tt(z(),xt()),_meta:Tt(z(),xt()).optional()}),zH=ie({type:me("resource"),resource:ft([lO,dO]),annotations:wa.optional(),_meta:Tt(z(),xt()).optional()}),LH=pO.extend({type:me("resource_link")}),mx=ft([lx,dx,px,LH,zH]),UH=ie({role:ll,content:mx}),fx=hr.extend({description:z().optional(),messages:We(UH)}),hx=Tn.extend({method:me("notifications/prompts/list_changed"),params:$n.optional()}),qH=ie({title:z().optional(),readOnlyHint:Xt().optional(),destructiveHint:Xt().optional(),idempotentHint:Xt().optional(),openWorldHint:Xt().optional()}),FH=ie({taskSupport:Er(["required","optional","forbidden"]).optional()}),mO=ie({...Sa.shape,...sl.shape,description:z().optional(),inputSchema:ie({type:me("object"),properties:Tt(z(),mr).optional(),required:We(z()).optional()}).catchall(xt()),outputSchema:ie({type:me("object"),properties:Tt(z(),mr).optional(),required:We(z()).optional()}).catchall(xt()).optional(),annotations:qH.optional(),execution:FH.optional(),_meta:Tt(z(),xt()).optional()}),HH=ol.extend({method:me("tools/list")}),gx=al.extend({tools:We(mO)}),Ea=hr.extend({content:We(mx).default([]),structuredContent:Tt(z(),xt()).optional(),isError:Xt().optional()}),kSe=Ea.or(hr.extend({toolResult:xt()})),ZH=nl.extend({name:z(),arguments:Tt(z(),xt()).optional()}),BH=fr.extend({method:me("tools/call"),params:ZH}),vx=Tn.extend({method:me("notifications/tools/list_changed"),params:$n.optional()}),fO=ie({autoRefresh:Xt().default(!0),debounceMs:ct().int().nonnegative().default(300)}),hO=Er(["debug","info","notice","warning","error","critical","alert","emergency"]),VH=gn.extend({level:hO}),GH=fr.extend({method:me("logging/setLevel"),params:VH}),WH=$n.extend({level:hO,logger:z().optional(),data:xt()}),KH=Tn.extend({method:me("notifications/message"),params:WH}),JH=ie({name:z().optional()}),XH=ie({hints:We(JH).optional(),costPriority:ct().min(0).max(1).optional(),speedPriority:ct().min(0).max(1).optional(),intelligencePriority:ct().min(0).max(1).optional()}),YH=ie({mode:Er(["auto","required","none"]).optional()}),QH=ie({type:me("tool_result"),toolUseId:z().describe("The unique identifier for the corresponding tool call."),content:We(mx).default([]),structuredContent:ie({}).loose().optional(),isError:Xt().optional(),_meta:Tt(z(),xt()).optional()}),e3=Rm("type",[lx,dx,px]),Am=Rm("type",[lx,dx,px,jH,QH]),t3=ie({role:ll,content:ft([Am,We(Am)]),_meta:Tt(z(),xt()).optional()}),r3=nl.extend({messages:We(t3),modelPreferences:XH.optional(),systemPrompt:z().optional(),includeContext:Er(["none","thisServer","allServers"]).optional(),temperature:ct().optional(),maxTokens:ct().int(),stopSequences:We(z()).optional(),metadata:mr.optional(),tools:We(mO).optional(),toolChoice:YH.optional()}),yx=fr.extend({method:me("sampling/createMessage"),params:r3}),_x=hr.extend({model:z(),stopReason:Ot(Er(["endTurn","stopSequence","maxTokens"]).or(z())),role:ll,content:e3}),bx=hr.extend({model:z(),stopReason:Ot(Er(["endTurn","stopSequence","maxTokens","toolUse"]).or(z())),role:ll,content:ft([Am,We(Am)])}),n3=ie({type:me("boolean"),title:z().optional(),description:z().optional(),default:Xt().optional()}),i3=ie({type:me("string"),title:z().optional(),description:z().optional(),minLength:ct().optional(),maxLength:ct().optional(),format:Er(["email","uri","date","date-time"]).optional(),default:z().optional()}),s3=ie({type:Er(["number","integer"]),title:z().optional(),description:z().optional(),minimum:ct().optional(),maximum:ct().optional(),default:ct().optional()}),o3=ie({type:me("string"),title:z().optional(),description:z().optional(),enum:We(z()),default:z().optional()}),a3=ie({type:me("string"),title:z().optional(),description:z().optional(),oneOf:We(ie({const:z(),title:z()})),default:z().optional()}),c3=ie({type:me("string"),title:z().optional(),description:z().optional(),enum:We(z()),enumNames:We(z()).optional(),default:z().optional()}),u3=ft([o3,a3]),l3=ie({type:me("array"),title:z().optional(),description:z().optional(),minItems:ct().optional(),maxItems:ct().optional(),items:ie({type:me("string"),enum:We(z())}),default:We(z()).optional()}),d3=ie({type:me("array"),title:z().optional(),description:z().optional(),minItems:ct().optional(),maxItems:ct().optional(),items:ie({anyOf:We(ie({const:z(),title:z()}))}),default:We(z()).optional()}),p3=ft([l3,d3]),m3=ft([c3,u3,p3]),f3=ft([m3,n3,i3,s3]),h3=nl.extend({mode:me("form").optional(),message:z(),requestedSchema:ie({type:me("object"),properties:Tt(z(),f3),required:We(z()).optional()})}),g3=nl.extend({mode:me("url"),message:z(),elicitationId:z(),url:z().url()}),v3=ft([h3,g3]),xx=fr.extend({method:me("elicitation/create"),params:v3}),y3=$n.extend({elicitationId:z()}),_3=Tn.extend({method:me("notifications/elicitation/complete"),params:y3}),Sx=hr.extend({action:Er(["accept","decline","cancel"]),content:Cm(t=>t===null?void 0:t,Tt(z(),ft([z(),ct(),Xt(),We(z())])).optional())}),b3=ie({type:me("ref/resource"),uri:z()});var x3=ie({type:me("ref/prompt"),name:z()}),S3=gn.extend({ref:ft([x3,b3]),argument:ie({name:z(),value:z()}),context:ie({arguments:Tt(z(),z()).optional()}).optional()}),w3=fr.extend({method:me("completion/complete"),params:S3});var wx=hr.extend({completion:wr({values:We(z()).max(100),total:Ot(ct().int()),hasMore:Ot(Xt())})}),E3=ie({uri:z().startsWith("file://"),name:z().optional(),_meta:Tt(z(),xt()).optional()}),k3=fr.extend({method:me("roots/list"),params:gn.optional()}),$3=hr.extend({roots:We(E3)}),T3=Tn.extend({method:me("notifications/roots/list_changed"),params:$n.optional()}),$Se=ft([jm,mH,w3,GH,DH,NH,SH,wH,kH,TH,RH,BH,HH,Lm,qm,Fm,Zm]),TSe=ft([Dm,zm,hH,T3,ul]),ISe=ft([no,_x,bx,Sx,$3,Um,Hm,io]),RSe=ft([jm,yx,xx,k3,Lm,qm,Fm,Zm]),OSe=ft([Dm,zm,KH,PH,cx,vx,hx,ul,_3]),PSe=ft([no,rx,wx,fx,ux,ix,sx,ax,Ea,gx,Um,Hm,io]),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===Te.UrlElicitationRequired&&n){let i=n;if(i.elicitations)return new Jb(i.elicitations,r)}return new t(e,r,n)}},Jb=class extends ve{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(Te.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function ws(t){return t==="completed"||t==="failed"||t==="cancelled"}var d0e=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Ex(t){let r=vm(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=XI(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function kx(t,e){let r=Bn(t,e);if(!r.success)throw r.error;return r.data}var A3=6e4,Bm=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(Dm,r=>{this._oncancel(r)}),this.setNotificationHandler(zm,r=>{this._onprogress(r)}),this.setRequestHandler(jm,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Lm,async(r,n)=>{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ve(Te.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(qm,async(r,n)=>{let i=async()=>{let s=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,n.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 ve(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:n.requestId})}}let o=await this._taskStore.getTask(s,n.sessionId);if(!o)throw new ve(Te.InvalidParams,`Task not found: ${s}`);if(!ws(o.status))return await this._waitForTaskUpdate(s,n.signal),await i();if(ws(o.status)){let a=await this._taskStore.getTaskResult(s,n.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[Ss]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(Fm,async(r,n)=>{try{let{tasks:i,nextCursor:s}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:i,nextCursor:s,_meta:{}}}catch(i){throw new ve(Te.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(Zm,async(r,n)=>{try{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ve(Te.InvalidParams,`Task not found: ${r.params.taskId}`);if(ws(i.status))throw new ve(Te.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(Te.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof ve?i:new ve(Te.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,i,s=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:s,onTimeout:i})}_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(Te.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=s=>{n?.(s),this._onerror(s)};let i=this._transport?.onmessage;this._transport.onmessage=(s,o)=>{i?.(s,o),il(s)||sO(s)?this._onresponse(s):Qb(s)?this._onrequest(s,o):iO(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 n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=ve.fromError(Te.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,i=this._transport,s=e.params?._meta?.[Ss]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:Te.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):i?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let a=tO(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{if(o.signal.aborted)return;let d={relatedRequestId:e.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{if(o.signal.aborted)throw new ve(Te.ConnectionClosed,"Request was cancelled");let m={...p,relatedRequestId:e.id};s&&!m.relatedTask&&(m.relatedTask={taskId:s});let f=m.relatedTask?.taskId??s;return f&&c&&await c.updateTaskStatus(f,"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(()=>n(e,u)).then(async l=>{if(o.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()},i?.sessionId):await i?.send(d)},async l=>{if(o.signal.aborted)return;let d={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:Te.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()},i?.sessionId):await i?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,i=Number(r),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),il(e))n(e);else{let o=new ve(e.error.code,e.error.message,e.error.data);n(o)}return}let i=this._responseHandlers.get(r);if(i===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(il(e)&&e.result&&typeof e.result=="object"){let o=e.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,r))}}if(s||this._progressHandlers.delete(r),il(e))i(e);else{let o=ve.fromError(e.error.code,e.error.message,e.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:i}=n??{};if(!i){try{yield{type:"result",result:await this.request(e,r,n)}}catch(o){yield{type:"error",error:o instanceof ve?o:new ve(Te.InternalError,String(o))}}return}let s;try{let o=await this.request(e,io,n);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new ve(Te.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},n);if(yield{type:"taskStatus",task:a},ws(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)}:a.status==="failed"?yield{type:"error",error:new ve(Te.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new ve(Te.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof ve?o:new ve(Te.InternalError,String(o))}}}request(e,r,n){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=x=>{l(x)};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(x){d(x);return}n?.signal?.throwIfAborted();let p=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:p};n?.onprogress&&(this._progressHandlers.set(p,n.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||{},[Ss]:c}});let f=x=>{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(x)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(_=>this._onerror(new Error(`Failed to send cancellation: ${_}`)));let b=x instanceof ve?x:new ve(Te.RequestTimeout,String(x));l(b)};this._responseHandlers.set(p,x=>{if(!n?.signal?.aborted){if(x instanceof Error)return l(x);try{let b=Bn(r,x.result);b.success?u(b.data):l(b.error)}catch(b){l(b)}}}),n?.signal?.addEventListener("abort",()=>{f(n?.signal?.reason)});let g=n?.timeout??A3,h=()=>f(ve.fromError(Te.RequestTimeout,"Request timed out",{timeout:g}));this._setupTimeout(p,g,n?.maxTotalTimeout,h,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let x=b=>{let _=this._responseHandlers.get(p);_?_(b):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,x),this._enqueueTaskMessage(v,{type:"request",message:m,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(p),l(b)})}else this._transport.send(m,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(x=>{this._cleanupTimeout(p),l(x)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},Um,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},Hm,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},cO,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 a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[Ss]:r.relatedTask}}};await this._enqueueTaskMessage(n,{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||{},[Ss]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[Ss]:r.relatedTask}}}),await this._transport.send(o,r)}setRequestHandler(e,r){let n=Ex(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,s)=>{let o=kx(e,i);return Promise.resolve(r(o,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 n=Ex(e);this._notificationHandlers.set(n,i=>{let s=kx(e,i);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,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,i)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let i of n)if(i.type==="request"&&Qb(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new ve(Te.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 n=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(e);i?.pollInterval&&(n=i.pollInterval)}catch{}return new Promise((i,s)=>{if(r.aborted){s(new ve(Te.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,n);r.addEventListener("abort",()=>{clearTimeout(o),s(new ve(Te.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async i=>{if(!e)throw new Error("No request provided");return await n.createTask(i,e.id,{method:e.method,params:e.params},r)},getTask:async i=>{let s=await n.getTask(i,r);if(!s)throw new ve(Te.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await n.storeTaskResult(i,s,o,r);let a=await n.getTask(i,r);if(a){let c=ul.parse({method:"notifications/tasks/status",params:a});await this.notification(c),ws(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>n.getTaskResult(i,r),updateTaskStatus:async(i,s,o)=>{let a=await n.getTask(i,r);if(!a)throw new ve(Te.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(ws(a.status))throw new ve(Te.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(i,s,o,r);let c=await n.getTask(i,r);if(c){let u=ul.parse({method:"notifications/tasks/status",params:c});await this.notification(u),ws(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>n.listTasks(i,r)}}};function gO(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function vO(t,e){let r={...t};for(let n in e){let i=n,s=e[i];if(s===void 0)continue;let o=r[i];gO(o)&&gO(s)?r[i]={...o,...s}:r[i]=s}return r}var nC=Ue(l0(),1),iC=Ue(rC(),1);function E7(){let t=new nC.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,iC.default)(t),t}var If=class{constructor(e){this._ajv=e??E7()}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 Rf=class{constructor(e){this._client=e}async*callToolStream(e,r=Ea,n){let i=this._client,s={...n,task:n?.task??(i.isToolTask(e.name)?{}:void 0)},o=i.requestStream({method:"tools/call",params:e},r,s),a=i.getToolOutputValidator(e.name);for await(let c of o){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new ve(Te.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let l=a(u.structuredContent);if(!l.valid){yield{type:"error",error:new ve(Te.InvalidParams,`Structured content does not match the tool's output schema: ${l.errorMessage}`)};return}}catch(l){if(l instanceof ve){yield{type:"error",error:l};return}yield{type:"error",error:new ve(Te.InvalidParams,`Failed to validate structured content: ${l instanceof Error?l.message:String(l)}`)};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 sC(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 oC(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 Of(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 i of Object.keys(n)){let s=n[i];r[i]===void 0&&Object.prototype.hasOwnProperty.call(s,"default")&&(r[i]=s.default),r[i]!==void 0&&Of(s,r[i])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Of(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Of(r,e)}}function k7(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 Fa=class extends Bm{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 If,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",vx,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",hx,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",cx,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Rf(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=vO(this._capabilities,e)}setRequestHandler(e,r){let i=vm(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(ba(i)){let a=i;s=a._zod?.def?.value??a.value}else{let a=i;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");let o=s;if(o==="elicitation/create"){let a=async(c,u)=>{let l=Bn(xx,c);if(!l.success){let x=l.error instanceof Error?l.error.message:String(l.error);throw new ve(Te.InvalidParams,`Invalid elicitation request: ${x}`)}let{params:d}=l.data;d.mode=d.mode??"form";let{supportsFormMode:p,supportsUrlMode:m}=k7(this._capabilities.elicitation);if(d.mode==="form"&&!p)throw new ve(Te.InvalidParams,"Client does not support form-mode elicitation requests");if(d.mode==="url"&&!m)throw new ve(Te.InvalidParams,"Client does not support URL-mode elicitation requests");let f=await Promise.resolve(r(c,u));if(d.task){let x=Bn(io,f);if(!x.success){let b=x.error instanceof Error?x.error.message:String(x.error);throw new ve(Te.InvalidParams,`Invalid task creation result: ${b}`)}return x.data}let g=Bn(Sx,f);if(!g.success){let x=g.error instanceof Error?g.error.message:String(g.error);throw new ve(Te.InvalidParams,`Invalid elicitation result: ${x}`)}let h=g.data,v=d.mode==="form"?d.requestedSchema:void 0;if(d.mode==="form"&&h.action==="accept"&&h.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{Of(v,h.content)}catch{}return h};return super.setRequestHandler(e,a)}if(o==="sampling/createMessage"){let a=async(c,u)=>{let l=Bn(yx,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new ve(Te.InvalidParams,`Invalid sampling request: ${h}`)}let{params:d}=l.data,p=await Promise.resolve(r(c,u));if(d.task){let h=Bn(io,p);if(!h.success){let v=h.error instanceof Error?h.error.message:String(h.error);throw new ve(Te.InvalidParams,`Invalid task creation result: ${v}`)}return h.data}let f=d.tools||d.toolChoice?bx:_x,g=Bn(f,p);if(!g.success){let h=g.error instanceof Error?g.error.message:String(g.error);throw new ve(Te.InvalidParams,`Invalid sampling result: ${h}`)}return g.data};return super.setRequestHandler(e,a)}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:Xb,capabilities:this._capabilities,clientInfo:this._clientInfo}},rx,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!YR.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){sC(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&oC(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},no,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},wx,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},no,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},fx,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},ux,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},ix,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},sx,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},ax,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},no,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},no,r)}async callTool(e,r=Ea,n){if(this.isToolTaskRequired(e.name))throw new ve(Te.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let i=await this.request({method:"tools/call",params:e},r,n),s=this.getToolOutputValidator(e.name);if(s){if(!i.structuredContent&&!i.isError)throw new ve(Te.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(i.structuredContent)try{let o=s(i.structuredContent);if(!o.valid)throw new ve(Te.InvalidParams,`Structured content does not match the tool's output schema: ${o.errorMessage}`)}catch(o){throw o instanceof ve?o:new ve(Te.InvalidParams,`Failed to validate structured content: ${o instanceof Error?o.message:String(o)}`)}}return i}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 i=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,i)}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},gx,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,i){let s=fO.safeParse(n);if(!s.success)throw new Error(`Invalid ${e} listChanged options: ${s.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:o,debounceMs:a}=s.data,{onChanged:c}=n,u=async()=>{if(!o){c(null,null);return}try{let d=await i();c(null,d)}catch(d){let p=d instanceof Error?d:new Error(String(d));c(p,null)}},l=()=>{if(a){let d=this._listChangedDebounceTimers.get(e);d&&clearTimeout(d);let p=setTimeout(u,a);this._listChangedDebounceTimers.set(e,p)}else u()};this.setNotificationHandler(r,l)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var JC=Ue(WC(),1),ql=Ue(require("node:process"),1),XC=require("node:stream");var Cf=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),Y7(r)}clear(){this._buffer=void 0}};function Y7(t){return oO.parse(JSON.parse(t))}function KC(t){return JSON.stringify(t)+` -`}var Q7=ql.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function eK(){let t={};for(let e of Q7){let r=ql.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var Ba=class{constructor(e){this._readBuffer=new Cf,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new XC.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,JC.default)(this._serverParams.command,this._serverParams.args??[],{env:{...eK(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:ql.default.platform==="win32"&&tK(),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=KC(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};function tK(){return"type"in ql.default}Or();en();Yt();var Va=require("fs"),M0=require("path"),pA=require("os");oe();var SK=(0,M0.join)((0,pA.homedir)(),".claude-mem"),N0=(0,M0.join)(SK,".env"),wK=["ANTHROPIC_API_KEY","CLAUDECODE"];function EK(t){let e={};for(let r of t.split(` -`)){let n=r.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");if(i===-1)continue;let s=n.slice(0,i).trim(),o=n.slice(i+1).trim();(o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),s&&(e[s]=o)}return e}function D0(){if(!(0,Va.existsSync)(N0))return{};try{let t=(0,Va.readFileSync)(N0,"utf-8"),e=EK(t),r={};return e.ANTHROPIC_API_KEY&&(r.ANTHROPIC_API_KEY=e.ANTHROPIC_API_KEY),e.GEMINI_API_KEY&&(r.GEMINI_API_KEY=e.GEMINI_API_KEY),e.OPENROUTER_API_KEY&&(r.OPENROUTER_API_KEY=e.OPENROUTER_API_KEY),r}catch(t){return y.warn("ENV","Failed to load .env file",{path:N0},t),{}}}function mA(t=!0){let e={};for(let[r,n]of Object.entries(process.env))n!==void 0&&!wK.includes(r)&&(e[r]=n);if(e.CLAUDE_CODE_ENTRYPOINT="sdk-ts",t){let r=D0();r.ANTHROPIC_API_KEY&&(e.ANTHROPIC_API_KEY=r.ANTHROPIC_API_KEY),r.GEMINI_API_KEY&&(e.GEMINI_API_KEY=r.GEMINI_API_KEY),r.OPENROUTER_API_KEY&&(e.OPENROUTER_API_KEY=r.OPENROUTER_API_KEY),!e.ANTHROPIC_API_KEY&&process.env.CLAUDE_CODE_OAUTH_TOKEN&&(e.CLAUDE_CODE_OAUTH_TOKEN=process.env.CLAUDE_CODE_OAUTH_TOKEN)}return e}function Ga(t){return D0()[t]}function kK(){return!!D0().ANTHROPIC_API_KEY}function zf(){return kK()?"API key (from ~/.claude-mem/.env)":process.env.CLAUDE_CODE_OAUTH_TOKEN?"Claude Code OAuth token (from parent process)":"Claude Code CLI (subscription billing)"}oe();var B0=require("child_process"),V0=Ue(require("path"),1),G0=Ue(require("os"),1),vo=Ue(require("fs"),1);oe();Yt();Nt();var j0=["CLAUDECODE_","CLAUDE_CODE_"],z0=new Set(["CLAUDECODE","CLAUDE_CODE_SESSION","CLAUDE_CODE_ENTRYPOINT","MCP_SESSION_ID"]),$K=new Set(["CLAUDE_CODE_OAUTH_TOKEN","CLAUDE_CODE_GIT_BASH_PATH"]);function vi(t=process.env){let e={};for(let[r,n]of Object.entries(t))if(n!==void 0){if($K.has(r)){e[r]=n;continue}z0.has(r)||j0.some(i=>r.startsWith(i))||(e[r]=n)}return e}var go=require("fs"),kA=require("os"),H0=Ue(require("path"),1);oe();var Ji=require("fs"),fA=require("os"),Vl=Ue(require("path"),1);oe();var TK=5e3,IK=1e3,RK=Vl.default.join((0,fA.homedir)(),".claude-mem"),OK=Vl.default.join(RK,"supervisor.json");function vn(t){if(!Number.isInteger(t)||t<0||t===0)return!1;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}var U0=class{registryPath;entries=new Map;runtimeProcesses=new Map;initialized=!1;constructor(e=OK){this.registryPath=e}initialize(){if(this.initialized)return;if(this.initialized=!0,(0,Ji.mkdirSync)(Vl.default.dirname(this.registryPath),{recursive:!0}),!(0,Ji.existsSync)(this.registryPath)){this.persist();return}try{let n=JSON.parse((0,Ji.readFileSync)(this.registryPath,"utf-8")).processes??{};for(let[i,s]of Object.entries(n))this.entries.set(i,s)}catch(r){y.warn("SYSTEM","Failed to parse supervisor registry, rebuilding",{path:this.registryPath},r),this.entries.clear()}let e=this.pruneDeadEntries();e>0&&y.info("SYSTEM","Removed dead processes from supervisor registry",{removed:e}),this.persist()}register(e,r,n){this.initialize(),this.entries.set(e,r),n&&this.runtimeProcesses.set(e,n),this.persist()}unregister(e){this.initialize(),this.entries.delete(e),this.runtimeProcesses.delete(e),this.persist()}clear(){this.entries.clear(),this.runtimeProcesses.clear(),this.persist()}getAll(){return this.initialize(),Array.from(this.entries.entries()).map(([e,r])=>({id:e,...r})).sort((e,r)=>{let n=Date.parse(e.startedAt),i=Date.parse(r.startedAt);return(Number.isNaN(n)?0:n)-(Number.isNaN(i)?0:i)})}getBySession(e){let r=String(e);return this.getAll().filter(n=>n.sessionId!==void 0&&String(n.sessionId)===r)}getRuntimeProcess(e){return this.runtimeProcesses.get(e)}getByPid(e){return this.getAll().filter(r=>r.pid===e)}pruneDeadEntries(){this.initialize();let e=0;for(let[r,n]of this.entries)vn(n.pid)||(this.entries.delete(r),this.runtimeProcesses.delete(r),e+=1);return e>0&&this.persist(),e}async reapSession(e){this.initialize();let r=this.getBySession(e);if(r.length===0)return 0;let n=typeof e=="number"?e:Number(e)||void 0;y.info("SYSTEM",`Reaping ${r.length} process(es) for session ${e}`,{sessionId:n,pids:r.map(a=>a.pid)});let i=r.filter(a=>vn(a.pid));for(let a of i)try{process.kill(a.pid,"SIGTERM")}catch(c){c.code!=="ESRCH"&&y.debug("SYSTEM",`Failed to SIGTERM session process PID ${a.pid}`,{pid:a.pid},c)}let s=Date.now()+TK;for(;Date.now()vn(c.pid)).length!==0;)await new Promise(c=>setTimeout(c,100));let o=i.filter(a=>vn(a.pid));for(let a of o){y.warn("SYSTEM",`Session process PID ${a.pid} did not exit after SIGTERM, sending SIGKILL`,{pid:a.pid,sessionId:n});try{process.kill(a.pid,"SIGKILL")}catch(c){c.code!=="ESRCH"&&y.debug("SYSTEM",`Failed to SIGKILL session process PID ${a.pid}`,{pid:a.pid},c)}}if(o.length>0){let a=Date.now()+IK;for(;Date.now()vn(u.pid)).length!==0;)await new Promise(u=>setTimeout(u,100))}for(let a of r)this.entries.delete(a.id),this.runtimeProcesses.delete(a.id);return this.persist(),y.info("SYSTEM",`Reaped ${r.length} process(es) for session ${e}`,{sessionId:n,reaped:r.length}),r.length}persist(){let e={processes:Object.fromEntries(this.entries.entries())};(0,Ji.mkdirSync)(Vl.default.dirname(this.registryPath),{recursive:!0}),(0,Ji.writeFileSync)(this.registryPath,JSON.stringify(e,null,2))}},L0=null;function Lf(){return L0||(L0=new U0),L0}var vA=require("child_process"),yA=require("fs"),_A=require("os"),q0=Ue(require("path"),1),bA=require("util");oe();en();var PK=(0,bA.promisify)(vA.execFile),CK=q0.default.join((0,_A.homedir)(),".claude-mem"),AK=q0.default.join(CK,"worker.pid");async function xA(t){let e=t.currentPid??process.pid,r=t.pidFilePath??AK,n=t.registry.getAll(),i=[...n].filter(o=>o.pid!==e).sort((o,a)=>Date.parse(a.startedAt)-Date.parse(o.startedAt));for(let o of i){if(!vn(o.pid)){t.registry.unregister(o.id);continue}try{await gA(o.pid,"SIGTERM")}catch(a){y.debug("SYSTEM","Failed to send SIGTERM to child process",{pid:o.pid,type:o.type},a)}}await hA(i,5e3);let s=i.filter(o=>vn(o.pid));for(let o of s)try{await gA(o.pid,"SIGKILL")}catch(a){y.debug("SYSTEM","Failed to force kill child process",{pid:o.pid,type:o.type},a)}await hA(s,1e3);for(let o of i)t.registry.unregister(o.id);for(let o of n.filter(a=>a.pid===e))t.registry.unregister(o.id);try{(0,yA.rmSync)(r,{force:!0})}catch(o){y.debug("SYSTEM","Failed to remove PID file during shutdown",{pidFilePath:r},o)}t.registry.pruneDeadEntries()}async function hA(t,e){let r=Date.now()+e;for(;Date.now()vn(i.pid)).length===0)return;await new Promise(i=>setTimeout(i,100))}}async function gA(t,e){if(e==="SIGTERM"){try{process.kill(t,e)}catch(r){if(r.code==="ESRCH")return;throw r}return}if(process.platform==="win32"){let r=await NK();if(r){await new Promise((i,s)=>{r(t,e,o=>{if(!o){i();return}if(o.code==="ESRCH"){i();return}s(o)})});return}let n=["/PID",String(t),"/T"];e==="SIGKILL"&&n.push("/F"),await PK("taskkill",n,{timeout:_r.POWERSHELL_COMMAND,windowsHide:!0});return}try{process.kill(t,e)}catch(r){if(r.code==="ESRCH")return;throw r}}async function NK(){let t="tree-kill";try{let e=await import(t);return e.default??e}catch{return null}}oe();var SA=3e4,Wa=null;function MK(){let e=Lf().pruneDeadEntries();e>0&&y.info("SYSTEM",`Health check: pruned ${e} dead process(es) from registry`)}function wA(){Wa===null&&(Wa=setInterval(MK,SA),Wa.unref(),y.debug("SYSTEM","Health checker started",{intervalMs:SA}))}function EA(){Wa!==null&&(clearInterval(Wa),Wa=null,y.debug("SYSTEM","Health checker stopped"))}var DK=H0.default.join((0,kA.homedir)(),".claude-mem"),jK=H0.default.join(DK,"worker.pid"),F0=class{registry;started=!1;stopPromise=null;signalHandlersRegistered=!1;shutdownInitiated=!1;shutdownHandler=null;constructor(e){this.registry=e}async start(){if(this.started)return;if(this.registry.initialize(),Z0({logAlive:!1})==="alive")throw new Error("Worker already running");this.started=!0,wA()}configureSignalHandlers(e){if(this.shutdownHandler=e,this.signalHandlersRegistered)return;this.signalHandlersRegistered=!0;let r=async n=>{if(this.shutdownInitiated){y.warn("SYSTEM",`Received ${n} but shutdown already in progress`);return}this.shutdownInitiated=!0,y.info("SYSTEM",`Received ${n}, shutting down...`);try{this.shutdownHandler?await this.shutdownHandler():await this.stop()}catch(i){y.error("SYSTEM","Error during shutdown",{},i);try{await this.stop()}catch(s){y.debug("SYSTEM","Supervisor shutdown fallback failed",{},s)}}process.exit(0)};process.on("SIGTERM",()=>{r("SIGTERM")}),process.on("SIGINT",()=>{r("SIGINT")}),process.platform!=="win32"&&(process.argv.includes("--daemon")?process.on("SIGHUP",()=>{y.debug("SYSTEM","Ignoring SIGHUP in daemon mode")}):process.on("SIGHUP",()=>{r("SIGHUP")}))}async stop(){if(this.stopPromise){await this.stopPromise;return}EA(),this.stopPromise=xA({registry:this.registry,currentPid:process.pid}).finally(()=>{this.started=!1,this.stopPromise=null}),await this.stopPromise}assertCanSpawn(e){if(this.stopPromise!==null)throw new Error(`Supervisor is shutting down, refusing to spawn ${e}`)}registerProcess(e,r,n){this.registry.register(e,r,n)}unregisterProcess(e){this.registry.unregister(e)}getRegistry(){return this.registry}},Uf=new F0(Lf());async function $A(){await Uf.start()}async function TA(){await Uf.stop()}function gt(){return Uf}function IA(t){Uf.configureSignalHandlers(t)}function Z0(t={}){let e=t.pidFilePath??jK;if(!(0,go.existsSync)(e))return"missing";let r=null;try{r=JSON.parse((0,go.readFileSync)(e,"utf-8"))}catch(n){return y.warn("SYSTEM","Failed to parse worker PID file, removing it",{path:e},n),(0,go.rmSync)(e,{force:!0}),"invalid"}return vn(r.pid)?((t.logAlive??!0)&&y.info("SYSTEM","Worker already running (PID alive)",{existingPid:r.pid,existingPort:r.port,startedAt:r.startedAt}),"alive"):(y.info("SYSTEM","Removing stale PID file (worker process is dead)",{pid:r.pid,port:r.port,startedAt:r.startedAt}),(0,go.rmSync)(e,{force:!0}),"stale")}var zK="claude-mem-chroma",LK="1.0.0",RA=3e4,OA=1e4,UK=V0.default.join(G0.default.homedir(),".claude-mem","chroma"),qf="chroma-mcp",Xi=class t{static instance=null;client=null;transport=null;connected=!1;lastConnectionFailureTimestamp=0;connecting=null;constructor(){}static getInstance(){return t.instance||(t.instance=new t),t.instance}async ensureConnected(){if(this.connected&&this.client)return;let e=Date.now()-this.lastConnectionFailureTimestamp;if(this.lastConnectionFailureTimestamp>0&&e{a=setTimeout(()=>d(new Error(`MCP connection to chroma-mcp timed out after ${RA}ms`)),RA)});try{await Promise.race([o,c])}catch(l){clearTimeout(a),y.warn("CHROMA_MCP","Connection failed, killing subprocess to prevent zombie",{error:l instanceof Error?l.message:String(l)});try{await this.transport.close()}catch{}try{await this.client.close()}catch{}throw this.client=null,this.transport=null,this.connected=!1,l}clearTimeout(a),this.connected=!0,this.registerManagedProcess(),y.info("CHROMA_MCP","Connected to chroma-mcp successfully");let u=this.transport;this.transport.onclose=()=>{if(this.transport!==u){y.debug("CHROMA_MCP","Ignoring stale onclose from previous transport");return}y.warn("CHROMA_MCP","chroma-mcp subprocess closed unexpectedly, applying reconnect backoff"),this.connected=!1,gt().unregisterProcess(qf),this.client=null,this.transport=null,this.lastConnectionFailureTimestamp=Date.now()}}buildCommandArgs(){let e=_e.loadFromFile(At),r=e.CLAUDE_MEM_CHROMA_MODE||"local",n=process.env.CLAUDE_MEM_PYTHON_VERSION||e.CLAUDE_MEM_PYTHON_VERSION||"3.13";if(r==="remote"){let i=e.CLAUDE_MEM_CHROMA_HOST||"127.0.0.1",s=e.CLAUDE_MEM_CHROMA_PORT||"8000",o=e.CLAUDE_MEM_CHROMA_SSL==="true",a=e.CLAUDE_MEM_CHROMA_TENANT||"default_tenant",c=e.CLAUDE_MEM_CHROMA_DATABASE||"default_database",u=e.CLAUDE_MEM_CHROMA_API_KEY||"",l=["--python",n,"chroma-mcp","--client-type","http","--host",i,"--port",s];return l.push("--ssl",o?"true":"false"),a!=="default_tenant"&&l.push("--tenant",a),c!=="default_database"&&l.push("--database",c),u&&l.push("--api-key",u),l}return["--python",n,"chroma-mcp","--client-type","persistent","--data-dir",UK.replace(/\\/g,"/")]}async callTool(e,r){await this.ensureConnected(),y.debug("CHROMA_MCP",`Calling tool: ${e}`,{arguments:JSON.stringify(r).slice(0,200)});let n;try{n=await this.client.callTool({name:e,arguments:r})}catch(o){this.connected=!1,this.client=null,this.transport=null,y.warn("CHROMA_MCP",`Transport error during "${e}", reconnecting and retrying once`,{error:o instanceof Error?o.message:String(o)});try{await this.ensureConnected(),n=await this.client.callTool({name:e,arguments:r})}catch(a){throw this.connected=!1,new Error(`chroma-mcp transport error during "${e}" (retry failed): ${a instanceof Error?a.message:String(a)}`)}}if(n.isError){let o=n.content?.find(a=>a.type==="text")?.text||"Unknown chroma-mcp error";throw new Error(`chroma-mcp tool "${e}" returned error: ${o}`)}let i=n.content;if(!i||i.length===0)return null;let s=i.find(o=>o.type==="text"&&o.text);if(!s||!s.text)return null;try{return JSON.parse(s.text)}catch{return null}}async isHealthy(){try{return await this.callTool("chroma_list_collections",{limit:1}),!0}catch{return!1}}async stop(){if(!this.client){y.debug("CHROMA_MCP","No active MCP connection to stop");return}y.info("CHROMA_MCP","Stopping chroma-mcp MCP connection");try{await this.client.close()}catch(e){y.debug("CHROMA_MCP","Error during client close (subprocess may already be dead)",{},e)}gt().unregisterProcess(qf),this.client=null,this.transport=null,this.connected=!1,this.connecting=null,y.info("CHROMA_MCP","chroma-mcp MCP connection stopped")}static async reset(){t.instance&&await t.instance.stop(),t.instance=null}getCombinedCertPath(){let e=V0.default.join(G0.default.homedir(),".claude-mem","combined_certs.pem");if(vo.default.existsSync(e)){let r=vo.default.statSync(e);if(Date.now()-r.mtimeMs<1440*60*1e3)return e}if(process.platform==="darwin")try{let r;try{r=(0,B0.execSync)('uvx --with certifi python -c "import certifi; print(certifi.where())"',{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:1e4}).trim()}catch{return}if(!r||!vo.default.existsSync(r))return;let n="";try{n=(0,B0.execSync)('security find-certificate -a -c "Zscaler" -p /Library/Keychains/System.keychain',{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:5e3})}catch{return}if(!n||!n.includes("-----BEGIN CERTIFICATE-----")||!n.includes("-----END CERTIFICATE-----"))return;let i=vo.default.readFileSync(r,"utf8"),s=e+".tmp";return vo.default.writeFileSync(s,i+` -`+n),vo.default.renameSync(s,e),y.info("CHROMA_MCP","Created combined SSL certificate bundle for Zscaler",{path:e}),e}catch(r){y.debug("CHROMA_MCP","Could not create combined cert bundle",{},r);return}}getSpawnEnv(){let e={};for(let[n,i]of Object.entries(vi(process.env)))i!==void 0&&(e[n]=i);let r=this.getCombinedCertPath();return r?(y.info("CHROMA_MCP","Using combined SSL certificates for enterprise compatibility",{certPath:r}),{...e,SSL_CERT_FILE:r,REQUESTS_CA_BUNDLE:r,CURL_CA_BUNDLE:r,NODE_EXTRA_CA_CERTS:r}):e}registerManagedProcess(){let e=this.transport._process;e?.pid&&(gt().registerProcess(qf,{pid:e.pid,type:"chroma",startedAt:new Date().toISOString()},e),e.once("exit",()=>{gt().unregisterProcess(qf)}))}};Zf();oe();var Ka=class t{project;collectionName;collectionCreated=!1;BATCH_SIZE=100;constructor(e){this.project=e;let r=e.replace(/[^a-zA-Z0-9._-]/g,"_").replace(/[^a-zA-Z0-9]+$/,"");this.collectionName=`cm__${r||"unknown"}`}async ensureCollectionExists(){if(this.collectionCreated)return;let e=Xi.getInstance();try{await e.callTool("chroma_create_collection",{collection_name:this.collectionName})}catch(r){if(!(r instanceof Error?r.message:String(r)).includes("already exists"))throw r}this.collectionCreated=!0,y.debug("CHROMA_SYNC","Collection ready",{collection:this.collectionName})}formatObservationDocs(e){let r=[],n=e.facts?JSON.parse(e.facts):[],i=e.concepts?JSON.parse(e.concepts):[],s=e.files_read?JSON.parse(e.files_read):[],o=e.files_modified?JSON.parse(e.files_modified):[],a={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&&(a.subtitle=e.subtitle),i.length>0&&(a.concepts=i.join(",")),s.length>0&&(a.files_read=s.join(",")),o.length>0&&(a.files_modified=o.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...a,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...a,field_type:"text"}}),n.forEach((c,u)=>{r.push({id:`obs_${e.id}_fact_${u}`,document:c,metadata:{...a,field_type:"fact",fact_index:u}})}),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;await this.ensureCollectionExists();let r=Xi.getInstance();for(let n=0;nObject.fromEntries(Object.entries(o.metadata).filter(([a,c])=>c!=null&&c!=="")));try{await r.callTool("chroma_add_documents",{collection_name:this.collectionName,ids:i.map(o=>o.id),documents:i.map(o=>o.document),metadatas:s})}catch(o){y.error("CHROMA_SYNC","Batch add failed, continuing with remaining batches",{collection:this.collectionName,batchStart:n,batchSize:i.length},o)}}y.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}async syncObservation(e,r,n,i,s,o,a=0){let c={id:e,memory_session_id:r,project:n,text:null,type:i.type,title:i.title,subtitle:i.subtitle,facts:JSON.stringify(i.facts),narrative:i.narrative,concepts:JSON.stringify(i.concepts),files_read:JSON.stringify(i.files_read),files_modified:JSON.stringify(i.files_modified),prompt_number:s,discovery_tokens:a,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatObservationDocs(c);y.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:u.length,project:n}),await this.addDocuments(u)}async syncSummary(e,r,n,i,s,o,a=0){let c={id:e,memory_session_id:r,project:n,request:i.request,investigated:i.investigated,learned:i.learned,completed:i.completed,next_steps:i.next_steps,notes:i.notes,prompt_number:s,discovery_tokens:a,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatSummaryDocs(c);y.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:u.length,project:n}),await this.addDocuments(u)}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,i,s,o){let a={id:e,content_session_id:"",prompt_number:s,prompt_text:i,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o,memory_session_id:r,project:n},c=this.formatUserPromptDoc(a);y.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:n}),await this.addDocuments([c])}async getExistingChromaIds(e){let r=e??this.project;await this.ensureCollectionExists();let n=Xi.getInstance(),i=new Set,s=new Set,o=new Set,a=0,c=1e3;for(y.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:r});;){let l=(await n.callTool("chroma_get_documents",{collection_name:this.collectionName,limit:c,offset:a,where:{project:r},include:["metadatas"]}))?.metadatas||[];if(l.length===0)break;for(let d of l)if(d&&d.sqlite_id){let p=d.sqlite_id;d.doc_type==="observation"?i.add(p):d.doc_type==="session_summary"?s.add(p):d.doc_type==="user_prompt"&&o.add(p)}a+=c,y.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:r,offset:a,batchSize:l.length})}return y.info("CHROMA_SYNC","Existing IDs fetched",{project:r,observations:i.size,summaries:s.size,prompts:o.size}),{observations:i,summaries:s,prompts:o}}async ensureBackfilled(e){let r=e??this.project;y.info("CHROMA_SYNC","Starting smart backfill",{project:r}),await this.ensureCollectionExists();let n=await this.getExistingChromaIds(r),i=new Yi;try{let s=Array.from(n.observations).filter(_=>Number.isInteger(_)&&_>0),o=s.length>0?`AND id NOT IN (${s.join(",")})`:"",a=i.db.prepare(` +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let o of t.seen.entries()){let a=o[1];if(e===o[0]){s(o);continue}if(t.external){let u=t.external.registry.get(o[0])?.id;if(e!==o[0]&&u){s(o);continue}}if(t.metadataRegistry.get(o[0])?.id){s(o);continue}if(a.cycle){s(o);continue}if(a.count>1&&t.reused==="ref"){s(o);continue}}}function Rm(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=o=>{let a=t.seen.get(o);if(a.ref===null)return;let c=a.def??a.schema,u={...c},l=a.ref;if(a.ref=null,l){n(l);let p=t.seen.get(l),f=p.schema;if(f.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(f)):Object.assign(c,f),Object.assign(c,u),o._zod.parent===l)for(let h in c)h==="$ref"||h==="allOf"||h in u||delete c[h];if(f.$ref)for(let h in c)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(c[h])===JSON.stringify(p.def[h])&&delete c[h]}let d=o._zod.parent;if(d&&d!==l){n(d);let p=t.seen.get(d);if(p?.schema.$ref&&(c.$ref=p.schema.$ref,p.def))for(let f in c)f==="$ref"||f==="allOf"||f in p.def&&JSON.stringify(c[f])===JSON.stringify(p.def[f])&&delete c[f]}t.override({zodSchema:o,jsonSchema:c,path:a.path??[]})};for(let o of[...t.seen.entries()].reverse())n(o[0]);let i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let o=t.external.registry.get(e)?.id;if(!o)throw new Error("Schema is missing an `id` property");i.$id=t.external.uri(o)}Object.assign(i,r.def??r.schema);let s=t.external?.defs??{};for(let o of t.seen.entries()){let a=o[1];a.def&&a.defId&&(s[a.defId]=a.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?i.$defs=s:i.definitions=s);try{let o=JSON.parse(JSON.stringify(i));return Object.defineProperty(o,"~standard",{value:{...e["~standard"],jsonSchema:{input:Zl(e,"input",t.processors),output:Zl(e,"output",t.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function Wr(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Wr(n.element,r);if(n.type==="set")return Wr(n.valueType,r);if(n.type==="lazy")return Wr(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Wr(n.innerType,r);if(n.type==="intersection")return Wr(n.left,r)||Wr(n.right,r);if(n.type==="record"||n.type==="map")return Wr(n.keyType,r)||Wr(n.valueType,r);if(n.type==="pipe")return Wr(n.in,r)||Wr(n.out,r);if(n.type==="object"){for(let i in n.shape)if(Wr(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(let i of n.options)if(Wr(i,r))return!0;return!1}if(n.type==="tuple"){for(let i of n.items)if(Wr(i,r))return!0;return!!(n.rest&&Wr(n.rest,r))}return!1}var u1=(t,e={})=>r=>{let n=$m({...r,processors:e});return kt(t,n),Im(n,t),Rm(n,t)},Zl=(t,e,r={})=>n=>{let{libraryOptions:i,target:s}=n??{},o=$m({...i??{},target:s,io:e,processors:r});return kt(t,o),Im(o,t),Rm(o,t)};var q3={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},l1=(t,e,r,n)=>{let i=r;i.type="string";let{minimum:s,maximum:o,format:a,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof s=="number"&&(i.minLength=s),typeof o=="number"&&(i.maxLength=o),a&&(i.format=q3[a]??a,i.format===""&&delete i.format,a==="time"&&delete i.format),u&&(i.contentEncoding=u),c&&c.size>0){let l=[...c];l.length===1?i.pattern=l[0].source:l.length>1&&(i.allOf=[...l.map(d=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},d1=(t,e,r,n)=>{let i=r,{minimum:s,maximum:o,format:a,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=t._zod.bag;typeof a=="string"&&a.includes("int")?i.type="integer":i.type="number",typeof l=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l),typeof s=="number"&&(i.minimum=s,typeof l=="number"&&e.target!=="draft-04"&&(l>=s?delete i.minimum:delete i.exclusiveMinimum)),typeof u=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.maximum=u,i.exclusiveMaximum=!0):i.exclusiveMaximum=u),typeof o=="number"&&(i.maximum=o,typeof u=="number"&&e.target!=="draft-04"&&(u<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c=="number"&&(i.multipleOf=c)},p1=(t,e,r,n)=>{r.type="boolean"},f1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},m1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},h1=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},g1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},v1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},y1=(t,e,r,n)=>{r.not={}},_1=(t,e,r,n)=>{},b1=(t,e,r,n)=>{},S1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},x1=(t,e,r,n)=>{let i=t._zod.def,s=pl(i.entries);s.every(o=>typeof o=="number")&&(r.type="number"),s.every(o=>typeof o=="string")&&(r.type="string"),r.enum=s},w1=(t,e,r,n)=>{let i=t._zod.def,s=[];for(let o of i.values)if(o===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof o=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(o))}else s.push(o);if(s.length!==0)if(s.length===1){let o=s[0];r.type=o===null?"null":typeof o,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[o]:r.const=o}else s.every(o=>typeof o=="number")&&(r.type="number"),s.every(o=>typeof o=="string")&&(r.type="string"),s.every(o=>typeof o=="boolean")&&(r.type="boolean"),s.every(o=>o===null)&&(r.type="null"),r.enum=s},E1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},k1=(t,e,r,n)=>{let i=r,s=t._zod.pattern;if(!s)throw new Error("Pattern not found in template literal");i.type="string",i.pattern=s.source},T1=(t,e,r,n)=>{let i=r,s={type:"string",format:"binary",contentEncoding:"binary"},{minimum:o,maximum:a,mime:c}=t._zod.bag;o!==void 0&&(s.minLength=o),a!==void 0&&(s.maxLength=a),c?c.length===1?(s.contentMediaType=c[0],Object.assign(i,s)):(Object.assign(i,s),i.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(i,s)},$1=(t,e,r,n)=>{r.type="boolean"},I1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},R1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},O1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},C1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},P1=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},A1=(t,e,r,n)=>{let i=r,s=t._zod.def,{minimum:o,maximum:a}=t._zod.bag;typeof o=="number"&&(i.minItems=o),typeof a=="number"&&(i.maxItems=a),i.type="array",i.items=kt(s.element,e,{...n,path:[...n.path,"items"]})},N1=(t,e,r,n)=>{let i=r,s=t._zod.def;i.type="object",i.properties={};let o=s.shape;for(let u in o)i.properties[u]=kt(o[u],e,{...n,path:[...n.path,"properties",u]});let a=new Set(Object.keys(o)),c=new Set([...a].filter(u=>{let l=s.shape[u]._zod;return e.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(i.required=Array.from(c)),s.catchall?._zod.def.type==="never"?i.additionalProperties=!1:s.catchall?s.catchall&&(i.additionalProperties=kt(s.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},tx=(t,e,r,n)=>{let i=t._zod.def,s=i.inclusive===!1,o=i.options.map((a,c)=>kt(a,e,{...n,path:[...n.path,s?"oneOf":"anyOf",c]}));s?r.oneOf=o:r.anyOf=o},M1=(t,e,r,n)=>{let i=t._zod.def,s=kt(i.left,e,{...n,path:[...n.path,"allOf",0]}),o=kt(i.right,e,{...n,path:[...n.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(s)?s.allOf:[s],...a(o)?o.allOf:[o]];r.allOf=c},D1=(t,e,r,n)=>{let i=r,s=t._zod.def;i.type="array";let o=e.target==="draft-2020-12"?"prefixItems":"items",a=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",c=s.items.map((p,f)=>kt(p,e,{...n,path:[...n.path,o,f]})),u=s.rest?kt(s.rest,e,{...n,path:[...n.path,a,...e.target==="openapi-3.0"?[s.items.length]:[]]}):null;e.target==="draft-2020-12"?(i.prefixItems=c,u&&(i.items=u)):e.target==="openapi-3.0"?(i.items={anyOf:c},u&&i.items.anyOf.push(u),i.minItems=c.length,u||(i.maxItems=c.length)):(i.items=c,u&&(i.additionalItems=u));let{minimum:l,maximum:d}=t._zod.bag;typeof l=="number"&&(i.minItems=l),typeof d=="number"&&(i.maxItems=d)},j1=(t,e,r,n)=>{let i=r,s=t._zod.def;i.type="object";let o=s.keyType,c=o._zod.bag?.patterns;if(s.mode==="loose"&&c&&c.size>0){let l=kt(s.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});i.patternProperties={};for(let d of c)i.patternProperties[d.source]=l}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(i.propertyNames=kt(s.keyType,e,{...n,path:[...n.path,"propertyNames"]})),i.additionalProperties=kt(s.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let u=o._zod.values;if(u){let l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(i.required=l)}},z1=(t,e,r,n)=>{let i=t._zod.def,s=kt(i.innerType,e,n),o=e.seen.get(t);e.target==="openapi-3.0"?(o.ref=i.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},L1=(t,e,r,n)=>{let i=t._zod.def;kt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType},U1=(t,e,r,n)=>{let i=t._zod.def;kt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType,r.default=JSON.parse(JSON.stringify(i.defaultValue))},F1=(t,e,r,n)=>{let i=t._zod.def;kt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},q1=(t,e,r,n)=>{let i=t._zod.def;kt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=o},H1=(t,e,r,n)=>{let i=t._zod.def,s=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;kt(s,e,n);let o=e.seen.get(t);o.ref=s},Z1=(t,e,r,n)=>{let i=t._zod.def;kt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType,r.readOnly=!0},B1=(t,e,r,n)=>{let i=t._zod.def;kt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType},rx=(t,e,r,n)=>{let i=t._zod.def;kt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType},G1=(t,e,r,n)=>{let i=t._zod.innerType;kt(i,e,n);let s=e.seen.get(t);s.ref=i};function nc(t){return!!t._zod}function oi(t,e){return nc(t)?Ya(t,e):t.safeParse(e)}function Om(t){if(!t)return;let e;if(nc(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function J1(t){if(nc(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 n=t.value;if(n!==void 0)return n}var Bl={};_n(Bl,{ZodAny:()=>mO,ZodArray:()=>yO,ZodBase64:()=>Tx,ZodBase64URL:()=>$x,ZodBigInt:()=>Lm,ZodBigIntFormat:()=>Ox,ZodBoolean:()=>zm,ZodCIDRv4:()=>Ex,ZodCIDRv6:()=>kx,ZodCUID:()=>vx,ZodCUID2:()=>yx,ZodCatch:()=>zO,ZodCodec:()=>jx,ZodCustom:()=>Zm,ZodCustomStringFormat:()=>Wl,ZodDate:()=>Px,ZodDefault:()=>PO,ZodDiscriminatedUnion:()=>bO,ZodE164:()=>Ix,ZodEmail:()=>mx,ZodEmoji:()=>hx,ZodEnum:()=>Gl,ZodExactOptional:()=>RO,ZodFile:()=>$O,ZodFunction:()=>WO,ZodGUID:()=>Pm,ZodIPv4:()=>xx,ZodIPv6:()=>wx,ZodIntersection:()=>SO,ZodJWT:()=>Rx,ZodKSUID:()=>Sx,ZodLazy:()=>ZO,ZodLiteral:()=>TO,ZodMAC:()=>lO,ZodMap:()=>EO,ZodNaN:()=>UO,ZodNanoID:()=>gx,ZodNever:()=>gO,ZodNonOptional:()=>Mx,ZodNull:()=>fO,ZodNullable:()=>CO,ZodNumber:()=>jm,ZodNumberFormat:()=>ic,ZodObject:()=>Um,ZodOptional:()=>Nx,ZodPipe:()=>Dx,ZodPrefault:()=>NO,ZodPromise:()=>GO,ZodReadonly:()=>FO,ZodRecord:()=>Hm,ZodSet:()=>kO,ZodString:()=>Mm,ZodStringFormat:()=>bt,ZodSuccess:()=>jO,ZodSymbol:()=>dO,ZodTemplateLiteral:()=>HO,ZodTransform:()=>IO,ZodTuple:()=>xO,ZodType:()=>De,ZodULID:()=>_x,ZodURL:()=>Dm,ZodUUID:()=>ps,ZodUndefined:()=>pO,ZodUnion:()=>Fm,ZodUnknown:()=>hO,ZodVoid:()=>vO,ZodXID:()=>bx,ZodXor:()=>_O,_ZodString:()=>fx,_default:()=>AO,_function:()=>oB,any:()=>qZ,array:()=>Ve,base64:()=>kZ,base64url:()=>TZ,bigint:()=>jZ,boolean:()=>Yt,catch:()=>LO,check:()=>aB,cidrv4:()=>wZ,cidrv6:()=>EZ,codec:()=>nB,cuid:()=>hZ,cuid2:()=>gZ,custom:()=>zx,date:()=>ZZ,describe:()=>cB,discriminatedUnion:()=>qm,e164:()=>$Z,email:()=>sZ,emoji:()=>fZ,enum:()=>Cr,exactOptional:()=>OO,file:()=>QZ,float32:()=>AZ,float64:()=>NZ,function:()=>oB,guid:()=>oZ,hash:()=>PZ,hex:()=>CZ,hostname:()=>OZ,httpUrl:()=>pZ,instanceof:()=>lB,int:()=>px,int32:()=>MZ,int64:()=>zZ,intersection:()=>Kl,ipv4:()=>bZ,ipv6:()=>xZ,json:()=>pB,jwt:()=>IZ,keyof:()=>BZ,ksuid:()=>_Z,lazy:()=>BO,literal:()=>fe,looseObject:()=>Or,looseRecord:()=>KZ,mac:()=>SZ,map:()=>JZ,meta:()=>uB,nan:()=>rB,nanoid:()=>mZ,nativeEnum:()=>YZ,never:()=>Cx,nonoptional:()=>DO,null:()=>Vl,nullable:()=>Am,nullish:()=>eB,number:()=>ct,object:()=>se,optional:()=>Ot,partialRecord:()=>VZ,pipe:()=>Nm,prefault:()=>MO,preprocess:()=>Bm,promise:()=>sB,readonly:()=>qO,record:()=>Tt,refine:()=>VO,set:()=>XZ,strictObject:()=>GZ,string:()=>z,stringFormat:()=>RZ,stringbool:()=>dB,success:()=>tB,superRefine:()=>KO,symbol:()=>UZ,templateLiteral:()=>iB,transform:()=>Ax,tuple:()=>wO,uint32:()=>DZ,uint64:()=>LZ,ulid:()=>vZ,undefined:()=>FZ,union:()=>ht,unknown:()=>St,url:()=>dZ,uuid:()=>aZ,uuidv4:()=>cZ,uuidv6:()=>uZ,uuidv7:()=>lZ,void:()=>HZ,xid:()=>yZ,xor:()=>WZ});var Cm={};_n(Cm,{endsWith:()=>zl,gt:()=>ls,gte:()=>Gr,includes:()=>Dl,length:()=>tc,lowercase:()=>Nl,lt:()=>us,lte:()=>wn,maxLength:()=>ec,maxSize:()=>Mo,mime:()=>Ll,minLength:()=>Ks,minSize:()=>ds,multipleOf:()=>No,negative:()=>ZS,nonnegative:()=>GS,nonpositive:()=>BS,normalize:()=>Ul,overwrite:()=>Pi,positive:()=>HS,property:()=>WS,regex:()=>Al,size:()=>Qa,slugify:()=>Tm,startsWith:()=>jl,toLowerCase:()=>ql,toUpperCase:()=>Hl,trim:()=>Fl,uppercase:()=>Ml});var Do={};_n(Do,{ZodISODate:()=>ox,ZodISODateTime:()=>ix,ZodISODuration:()=>lx,ZodISOTime:()=>cx,date:()=>ax,datetime:()=>sx,duration:()=>dx,time:()=>ux});var ix=O("ZodISODateTime",(t,e)=>{yb.init(t,e),bt.init(t,e)});function sx(t){return bS(ix,t)}var ox=O("ZodISODate",(t,e)=>{_b.init(t,e),bt.init(t,e)});function ax(t){return SS(ox,t)}var cx=O("ZodISOTime",(t,e)=>{bb.init(t,e),bt.init(t,e)});function ux(t){return xS(cx,t)}var lx=O("ZodISODuration",(t,e)=>{Sb.init(t,e),bt.init(t,e)});function dx(t){return wS(lx,t)}var X1=(t,e)=>{Bf.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Wf(t,r)},flatten:{value:r=>Gf(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,Ka,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,Ka,2)}},isEmpty:{get(){return t.issues.length===0}}})},Lke=O("ZodError",X1),En=O("ZodError",X1,{Parent:Error});var Y1=yl(En),Q1=bl(En),eO=xl(En),tO=wl(En),rO=pR(En),nO=fR(En),iO=mR(En),sO=hR(En),oO=gR(En),aO=vR(En),cO=yR(En),uO=_R(En);var De=O("ZodType",(t,e)=>(Ce.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Zl(t,"input"),output:Zl(t,"output")}}),t.toJSONSchema=u1(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone(G.mergeDefs(e,{checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),t.with=t.check,t.clone=(r,n)=>Zr(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>Y1(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>eO(t,r,n),t.parseAsync=async(r,n)=>Q1(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>tO(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>rO(t,r,n),t.decode=(r,n)=>nO(t,r,n),t.encodeAsync=async(r,n)=>iO(t,r,n),t.decodeAsync=async(r,n)=>sO(t,r,n),t.safeEncode=(r,n)=>oO(t,r,n),t.safeDecode=(r,n)=>aO(t,r,n),t.safeEncodeAsync=async(r,n)=>cO(t,r,n),t.safeDecodeAsync=async(r,n)=>uO(t,r,n),t.refine=(r,n)=>t.check(VO(r,n)),t.superRefine=r=>t.check(KO(r)),t.overwrite=r=>t.check(Pi(r)),t.optional=()=>Ot(t),t.exactOptional=()=>OO(t),t.nullable=()=>Am(t),t.nullish=()=>Ot(Am(t)),t.nonoptional=r=>DO(t,r),t.array=()=>Ve(t),t.or=r=>ht([t,r]),t.and=r=>Kl(t,r),t.transform=r=>Nm(t,Ax(r)),t.default=r=>AO(t,r),t.prefault=r=>MO(t,r),t.catch=r=>LO(t,r),t.pipe=r=>Nm(t,r),t.readonly=()=>qO(t),t.describe=r=>{let n=t.clone();return Br.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Br.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Br.get(t);let n=t.clone();return Br.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=r=>r(t),t)),fx=O("_ZodString",(t,e)=>{Ao.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>l1(t,n,i,s);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(Al(...n)),t.includes=(...n)=>t.check(Dl(...n)),t.startsWith=(...n)=>t.check(jl(...n)),t.endsWith=(...n)=>t.check(zl(...n)),t.min=(...n)=>t.check(Ks(...n)),t.max=(...n)=>t.check(ec(...n)),t.length=(...n)=>t.check(tc(...n)),t.nonempty=(...n)=>t.check(Ks(1,...n)),t.lowercase=n=>t.check(Nl(n)),t.uppercase=n=>t.check(Ml(n)),t.trim=()=>t.check(Fl()),t.normalize=(...n)=>t.check(Ul(...n)),t.toLowerCase=()=>t.check(ql()),t.toUpperCase=()=>t.check(Hl()),t.slugify=()=>t.check(Tm())}),Mm=O("ZodString",(t,e)=>{Ao.init(t,e),fx.init(t,e),t.email=r=>t.check(om(mx,r)),t.url=r=>t.check(Pl(Dm,r)),t.jwt=r=>t.check(km(Rx,r)),t.emoji=r=>t.check(dm(hx,r)),t.guid=r=>t.check(Cl(Pm,r)),t.uuid=r=>t.check(am(ps,r)),t.uuidv4=r=>t.check(cm(ps,r)),t.uuidv6=r=>t.check(um(ps,r)),t.uuidv7=r=>t.check(lm(ps,r)),t.nanoid=r=>t.check(pm(gx,r)),t.guid=r=>t.check(Cl(Pm,r)),t.cuid=r=>t.check(fm(vx,r)),t.cuid2=r=>t.check(mm(yx,r)),t.ulid=r=>t.check(hm(_x,r)),t.base64=r=>t.check(xm(Tx,r)),t.base64url=r=>t.check(wm($x,r)),t.xid=r=>t.check(gm(bx,r)),t.ksuid=r=>t.check(vm(Sx,r)),t.ipv4=r=>t.check(ym(xx,r)),t.ipv6=r=>t.check(_m(wx,r)),t.cidrv4=r=>t.check(bm(Ex,r)),t.cidrv6=r=>t.check(Sm(kx,r)),t.e164=r=>t.check(Em(Ix,r)),t.datetime=r=>t.check(sx(r)),t.date=r=>t.check(ax(r)),t.time=r=>t.check(ux(r)),t.duration=r=>t.check(dx(r))});function z(t){return yS(Mm,t)}var bt=O("ZodStringFormat",(t,e)=>{mt.init(t,e),fx.init(t,e)}),mx=O("ZodEmail",(t,e)=>{ub.init(t,e),bt.init(t,e)});function sZ(t){return om(mx,t)}var Pm=O("ZodGUID",(t,e)=>{ab.init(t,e),bt.init(t,e)});function oZ(t){return Cl(Pm,t)}var ps=O("ZodUUID",(t,e)=>{cb.init(t,e),bt.init(t,e)});function aZ(t){return am(ps,t)}function cZ(t){return cm(ps,t)}function uZ(t){return um(ps,t)}function lZ(t){return lm(ps,t)}var Dm=O("ZodURL",(t,e)=>{lb.init(t,e),bt.init(t,e)});function dZ(t){return Pl(Dm,t)}function pZ(t){return Pl(Dm,{protocol:/^https?$/,hostname:jn.domain,...G.normalizeParams(t)})}var hx=O("ZodEmoji",(t,e)=>{db.init(t,e),bt.init(t,e)});function fZ(t){return dm(hx,t)}var gx=O("ZodNanoID",(t,e)=>{pb.init(t,e),bt.init(t,e)});function mZ(t){return pm(gx,t)}var vx=O("ZodCUID",(t,e)=>{fb.init(t,e),bt.init(t,e)});function hZ(t){return fm(vx,t)}var yx=O("ZodCUID2",(t,e)=>{mb.init(t,e),bt.init(t,e)});function gZ(t){return mm(yx,t)}var _x=O("ZodULID",(t,e)=>{hb.init(t,e),bt.init(t,e)});function vZ(t){return hm(_x,t)}var bx=O("ZodXID",(t,e)=>{gb.init(t,e),bt.init(t,e)});function yZ(t){return gm(bx,t)}var Sx=O("ZodKSUID",(t,e)=>{vb.init(t,e),bt.init(t,e)});function _Z(t){return vm(Sx,t)}var xx=O("ZodIPv4",(t,e)=>{xb.init(t,e),bt.init(t,e)});function bZ(t){return ym(xx,t)}var lO=O("ZodMAC",(t,e)=>{Eb.init(t,e),bt.init(t,e)});function SZ(t){return _S(lO,t)}var wx=O("ZodIPv6",(t,e)=>{wb.init(t,e),bt.init(t,e)});function xZ(t){return _m(wx,t)}var Ex=O("ZodCIDRv4",(t,e)=>{kb.init(t,e),bt.init(t,e)});function wZ(t){return bm(Ex,t)}var kx=O("ZodCIDRv6",(t,e)=>{Tb.init(t,e),bt.init(t,e)});function EZ(t){return Sm(kx,t)}var Tx=O("ZodBase64",(t,e)=>{$b.init(t,e),bt.init(t,e)});function kZ(t){return xm(Tx,t)}var $x=O("ZodBase64URL",(t,e)=>{Ib.init(t,e),bt.init(t,e)});function TZ(t){return wm($x,t)}var Ix=O("ZodE164",(t,e)=>{Rb.init(t,e),bt.init(t,e)});function $Z(t){return Em(Ix,t)}var Rx=O("ZodJWT",(t,e)=>{Ob.init(t,e),bt.init(t,e)});function IZ(t){return km(Rx,t)}var Wl=O("ZodCustomStringFormat",(t,e)=>{Cb.init(t,e),bt.init(t,e)});function RZ(t,e,r={}){return rc(Wl,t,e,r)}function OZ(t){return rc(Wl,"hostname",jn.hostname,t)}function CZ(t){return rc(Wl,"hex",jn.hex,t)}function PZ(t,e){let r=e?.enc??"hex",n=`${t}_${r}`,i=jn[n];if(!i)throw new Error(`Unrecognized hash format: ${n}`);return rc(Wl,n,i,e)}var jm=O("ZodNumber",(t,e)=>{rm.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>d1(t,n,i,s),t.gt=(n,i)=>t.check(ls(n,i)),t.gte=(n,i)=>t.check(Gr(n,i)),t.min=(n,i)=>t.check(Gr(n,i)),t.lt=(n,i)=>t.check(us(n,i)),t.lte=(n,i)=>t.check(wn(n,i)),t.max=(n,i)=>t.check(wn(n,i)),t.int=n=>t.check(px(n)),t.safe=n=>t.check(px(n)),t.positive=n=>t.check(ls(0,n)),t.nonnegative=n=>t.check(Gr(0,n)),t.negative=n=>t.check(us(0,n)),t.nonpositive=n=>t.check(wn(0,n)),t.multipleOf=(n,i)=>t.check(No(n,i)),t.step=(n,i)=>t.check(No(n,i)),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 ct(t){return ES(jm,t)}var ic=O("ZodNumberFormat",(t,e)=>{Pb.init(t,e),jm.init(t,e)});function px(t){return kS(ic,t)}function AZ(t){return TS(ic,t)}function NZ(t){return $S(ic,t)}function MZ(t){return IS(ic,t)}function DZ(t){return RS(ic,t)}var zm=O("ZodBoolean",(t,e)=>{Il.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>p1(t,r,n,i)});function Yt(t){return OS(zm,t)}var Lm=O("ZodBigInt",(t,e)=>{nm.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>f1(t,n,i,s),t.gte=(n,i)=>t.check(Gr(n,i)),t.min=(n,i)=>t.check(Gr(n,i)),t.gt=(n,i)=>t.check(ls(n,i)),t.gte=(n,i)=>t.check(Gr(n,i)),t.min=(n,i)=>t.check(Gr(n,i)),t.lt=(n,i)=>t.check(us(n,i)),t.lte=(n,i)=>t.check(wn(n,i)),t.max=(n,i)=>t.check(wn(n,i)),t.positive=n=>t.check(ls(BigInt(0),n)),t.negative=n=>t.check(us(BigInt(0),n)),t.nonpositive=n=>t.check(wn(BigInt(0),n)),t.nonnegative=n=>t.check(Gr(BigInt(0),n)),t.multipleOf=(n,i)=>t.check(No(n,i));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function jZ(t){return CS(Lm,t)}var Ox=O("ZodBigIntFormat",(t,e)=>{Ab.init(t,e),Lm.init(t,e)});function zZ(t){return PS(Ox,t)}function LZ(t){return AS(Ox,t)}var dO=O("ZodSymbol",(t,e)=>{Nb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>m1(t,r,n,i)});function UZ(t){return NS(dO,t)}var pO=O("ZodUndefined",(t,e)=>{Mb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>g1(t,r,n,i)});function FZ(t){return MS(pO,t)}var fO=O("ZodNull",(t,e)=>{Db.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>h1(t,r,n,i)});function Vl(t){return DS(fO,t)}var mO=O("ZodAny",(t,e)=>{jb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>_1(t,r,n,i)});function qZ(){return jS(mO)}var hO=O("ZodUnknown",(t,e)=>{zb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>b1(t,r,n,i)});function St(){return zS(hO)}var gO=O("ZodNever",(t,e)=>{Lb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>y1(t,r,n,i)});function Cx(t){return LS(gO,t)}var vO=O("ZodVoid",(t,e)=>{Ub.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>v1(t,r,n,i)});function HZ(t){return US(vO,t)}var Px=O("ZodDate",(t,e)=>{Fb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>S1(t,n,i,s),t.min=(n,i)=>t.check(Gr(n,i)),t.max=(n,i)=>t.check(wn(n,i));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function ZZ(t){return FS(Px,t)}var yO=O("ZodArray",(t,e)=>{qb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>A1(t,r,n,i),t.element=e.element,t.min=(r,n)=>t.check(Ks(r,n)),t.nonempty=r=>t.check(Ks(1,r)),t.max=(r,n)=>t.check(ec(r,n)),t.length=(r,n)=>t.check(tc(r,n)),t.unwrap=()=>t.element});function Ve(t,e){return c1(yO,t,e)}function BZ(t){let e=t._zod.def.shape;return Cr(Object.keys(e))}var Um=O("ZodObject",(t,e)=>{o1.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>N1(t,r,n,i),G.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Cr(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:St()}),t.loose=()=>t.clone({...t._zod.def,catchall:St()}),t.strict=()=>t.clone({...t._zod.def,catchall:Cx()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>G.extend(t,r),t.safeExtend=r=>G.safeExtend(t,r),t.merge=r=>G.merge(t,r),t.pick=r=>G.pick(t,r),t.omit=r=>G.omit(t,r),t.partial=(...r)=>G.partial(Nx,t,r[0]),t.required=(...r)=>G.required(Mx,t,r[0])});function se(t,e){let r={type:"object",shape:t??{},...G.normalizeParams(e)};return new Um(r)}function GZ(t,e){return new Um({type:"object",shape:t,catchall:Cx(),...G.normalizeParams(e)})}function Or(t,e){return new Um({type:"object",shape:t,catchall:St(),...G.normalizeParams(e)})}var Fm=O("ZodUnion",(t,e)=>{Rl.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>tx(t,r,n,i),t.options=e.options});function ht(t,e){return new Fm({type:"union",options:t,...G.normalizeParams(e)})}var _O=O("ZodXor",(t,e)=>{Fm.init(t,e),Hb.init(t,e),t._zod.processJSONSchema=(r,n,i)=>tx(t,r,n,i),t.options=e.options});function WZ(t,e){return new _O({type:"union",options:t,inclusive:!1,...G.normalizeParams(e)})}var bO=O("ZodDiscriminatedUnion",(t,e)=>{Fm.init(t,e),Zb.init(t,e)});function qm(t,e,r){return new bO({type:"union",options:e,discriminator:t,...G.normalizeParams(r)})}var SO=O("ZodIntersection",(t,e)=>{Bb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>M1(t,r,n,i)});function Kl(t,e){return new SO({type:"intersection",left:t,right:e})}var xO=O("ZodTuple",(t,e)=>{im.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>D1(t,r,n,i),t.rest=r=>t.clone({...t._zod.def,rest:r})});function wO(t,e,r){let n=e instanceof Ce,i=n?r:e,s=n?e:null;return new xO({type:"tuple",items:t,rest:s,...G.normalizeParams(i)})}var Hm=O("ZodRecord",(t,e)=>{Gb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>j1(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType});function Tt(t,e,r){return new Hm({type:"record",keyType:t,valueType:e,...G.normalizeParams(r)})}function VZ(t,e,r){let n=Zr(t);return n._zod.values=void 0,new Hm({type:"record",keyType:n,valueType:e,...G.normalizeParams(r)})}function KZ(t,e,r){return new Hm({type:"record",keyType:t,valueType:e,mode:"loose",...G.normalizeParams(r)})}var EO=O("ZodMap",(t,e)=>{Wb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>C1(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...r)=>t.check(ds(...r)),t.nonempty=r=>t.check(ds(1,r)),t.max=(...r)=>t.check(Mo(...r)),t.size=(...r)=>t.check(Qa(...r))});function JZ(t,e,r){return new EO({type:"map",keyType:t,valueType:e,...G.normalizeParams(r)})}var kO=O("ZodSet",(t,e)=>{Vb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>P1(t,r,n,i),t.min=(...r)=>t.check(ds(...r)),t.nonempty=r=>t.check(ds(1,r)),t.max=(...r)=>t.check(Mo(...r)),t.size=(...r)=>t.check(Qa(...r))});function XZ(t,e){return new kO({type:"set",valueType:t,...G.normalizeParams(e)})}var Gl=O("ZodEnum",(t,e)=>{Kb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,s)=>x1(t,n,i,s),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let s={};for(let o of n)if(r.has(o))s[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Gl({...e,checks:[],...G.normalizeParams(i),entries:s})},t.exclude=(n,i)=>{let s={...e.entries};for(let o of n)if(r.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new Gl({...e,checks:[],...G.normalizeParams(i),entries:s})}});function Cr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Gl({type:"enum",entries:r,...G.normalizeParams(e)})}function YZ(t,e){return new Gl({type:"enum",entries:t,...G.normalizeParams(e)})}var TO=O("ZodLiteral",(t,e)=>{Jb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>w1(t,r,n,i),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 fe(t,e){return new TO({type:"literal",values:Array.isArray(t)?t:[t],...G.normalizeParams(e)})}var $O=O("ZodFile",(t,e)=>{Xb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>T1(t,r,n,i),t.min=(r,n)=>t.check(ds(r,n)),t.max=(r,n)=>t.check(Mo(r,n)),t.mime=(r,n)=>t.check(Ll(Array.isArray(r)?r:[r],n))});function QZ(t){return VS($O,t)}var IO=O("ZodTransform",(t,e)=>{Yb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>O1(t,r,n,i),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Oo(t.constructor.name);r.addIssue=s=>{if(typeof s=="string")r.issues.push(G.issue(s,r.value,e));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),r.issues.push(G.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(s=>(r.value=s,r)):(r.value=i,r)}});function Ax(t){return new IO({type:"transform",transform:t})}var Nx=O("ZodOptional",(t,e)=>{sm.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>rx(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Ot(t){return new Nx({type:"optional",innerType:t})}var RO=O("ZodExactOptional",(t,e)=>{Qb.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>rx(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function OO(t){return new RO({type:"optional",innerType:t})}var CO=O("ZodNullable",(t,e)=>{eS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>z1(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Am(t){return new CO({type:"nullable",innerType:t})}function eB(t){return Ot(Am(t))}var PO=O("ZodDefault",(t,e)=>{tS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>U1(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function AO(t,e){return new PO({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():G.shallowClone(e)}})}var NO=O("ZodPrefault",(t,e)=>{rS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>F1(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function MO(t,e){return new NO({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():G.shallowClone(e)}})}var Mx=O("ZodNonOptional",(t,e)=>{nS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>L1(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function DO(t,e){return new Mx({type:"nonoptional",innerType:t,...G.normalizeParams(e)})}var jO=O("ZodSuccess",(t,e)=>{iS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>$1(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function tB(t){return new jO({type:"success",innerType:t})}var zO=O("ZodCatch",(t,e)=>{sS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>q1(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function LO(t,e){return new zO({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var UO=O("ZodNaN",(t,e)=>{oS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>E1(t,r,n,i)});function rB(t){return qS(UO,t)}var Dx=O("ZodPipe",(t,e)=>{aS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>H1(t,r,n,i),t.in=e.in,t.out=e.out});function Nm(t,e){return new Dx({type:"pipe",in:t,out:e})}var jx=O("ZodCodec",(t,e)=>{Dx.init(t,e),Ol.init(t,e)});function nB(t,e,r){return new jx({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var FO=O("ZodReadonly",(t,e)=>{cS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Z1(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function qO(t){return new FO({type:"readonly",innerType:t})}var HO=O("ZodTemplateLiteral",(t,e)=>{uS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>k1(t,r,n,i)});function iB(t,e){return new HO({type:"template_literal",parts:t,...G.normalizeParams(e)})}var ZO=O("ZodLazy",(t,e)=>{pS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>G1(t,r,n,i),t.unwrap=()=>t._zod.def.getter()});function BO(t){return new ZO({type:"lazy",getter:t})}var GO=O("ZodPromise",(t,e)=>{dS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>B1(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function sB(t){return new GO({type:"promise",innerType:t})}var WO=O("ZodFunction",(t,e)=>{lS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>R1(t,r,n,i)});function oB(t){return new WO({type:"function",input:Array.isArray(t?.input)?wO(t?.input):t?.input??Ve(St()),output:t?.output??St()})}var Zm=O("ZodCustom",(t,e)=>{fS.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>I1(t,r,n,i)});function aB(t){let e=new _t({check:"custom"});return e._zod.check=t,e}function zx(t,e){return KS(Zm,t??(()=>!0),e)}function VO(t,e={}){return JS(Zm,t,e)}function KO(t){return XS(t)}var cB=YS,uB=QS;function lB(t,e={}){let r=new Zm({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...G.normalizeParams(e)});return r._zod.bag.Class=t,r._zod.check=n=>{n.value instanceof t||n.issues.push({code:"invalid_type",expected:t.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var dB=(...t)=>ex({Codec:jx,Boolean:zm,String:Mm},...t);function pB(t){let e=BO(()=>ht([z(t),ct(),Yt(),Vl(),Ve(e),Tt(z(),e)]));return e}function Bm(t,e){return Nm(Ax(t),e)}var JO;JO||(JO={});var Wke={...Bl,...Cm,iso:Do};tr(mS());var Ux="2025-11-25";var XO=[Ux,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Js="io.modelcontextprotocol/related-task",Wm="2.0",yr=zx(t=>t!==null&&(typeof t=="object"||typeof t=="function")),YO=ht([z(),ct().int()]),QO=z(),pTe=Or({ttl:ht([ct(),Vl()]).optional(),pollInterval:ct().optional()}),gB=se({ttl:ct().optional()}),vB=se({taskId:z()}),Fx=Or({progressToken:YO.optional(),[Js]:vB.optional()}),kn=se({_meta:Fx.optional()}),Jl=kn.extend({task:gB.optional()}),eC=t=>Jl.safeParse(t).success,_r=se({method:z(),params:kn.loose().optional()}),zn=se({_meta:Fx.optional()}),Ln=se({method:z(),params:zn.loose().optional()}),br=Or({_meta:Fx.optional()}),Vm=ht([z(),ct().int()]),tC=se({jsonrpc:fe(Wm),id:Vm,..._r.shape}).strict(),qx=t=>tC.safeParse(t).success,rC=se({jsonrpc:fe(Wm),...Ln.shape}).strict(),nC=t=>rC.safeParse(t).success,Hx=se({jsonrpc:fe(Wm),id:Vm,result:br}).strict(),Xl=t=>Hx.safeParse(t).success;var Ie;(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"})(Ie||(Ie={}));var Zx=se({jsonrpc:fe(Wm),id:Vm.optional(),error:se({code:ct().int(),message:z(),data:St().optional()})}).strict();var iC=t=>Zx.safeParse(t).success;var sC=ht([tC,rC,Hx,Zx]),fTe=ht([Hx,Zx]),jo=br.strict(),yB=zn.extend({requestId:Vm.optional(),reason:z().optional()}),Km=Ln.extend({method:fe("notifications/cancelled"),params:yB}),_B=se({src:z(),mimeType:z().optional(),sizes:Ve(z()).optional(),theme:Cr(["light","dark"]).optional()}),Yl=se({icons:Ve(_B).optional()}),sc=se({name:z(),title:z().optional()}),oC=sc.extend({...sc.shape,...Yl.shape,version:z(),websiteUrl:z().optional(),description:z().optional()}),bB=Kl(se({applyDefaults:Yt().optional()}),Tt(z(),St())),SB=Bm(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Kl(se({form:bB.optional(),url:yr.optional()}),Tt(z(),St()).optional())),xB=Or({list:yr.optional(),cancel:yr.optional(),requests:Or({sampling:Or({createMessage:yr.optional()}).optional(),elicitation:Or({create:yr.optional()}).optional()}).optional()}),wB=Or({list:yr.optional(),cancel:yr.optional(),requests:Or({tools:Or({call:yr.optional()}).optional()}).optional()}),EB=se({experimental:Tt(z(),yr).optional(),sampling:se({context:yr.optional(),tools:yr.optional()}).optional(),elicitation:SB.optional(),roots:se({listChanged:Yt().optional()}).optional(),tasks:xB.optional()}),kB=kn.extend({protocolVersion:z(),capabilities:EB,clientInfo:oC}),TB=_r.extend({method:fe("initialize"),params:kB});var $B=se({experimental:Tt(z(),yr).optional(),logging:yr.optional(),completions:yr.optional(),prompts:se({listChanged:Yt().optional()}).optional(),resources:se({subscribe:Yt().optional(),listChanged:Yt().optional()}).optional(),tools:se({listChanged:Yt().optional()}).optional(),tasks:wB.optional()}),Bx=br.extend({protocolVersion:z(),capabilities:$B,serverInfo:oC,instructions:z().optional()}),IB=Ln.extend({method:fe("notifications/initialized"),params:zn.optional()});var Jm=_r.extend({method:fe("ping"),params:kn.optional()}),RB=se({progress:ct(),total:Ot(ct()),message:Ot(z())}),OB=se({...zn.shape,...RB.shape,progressToken:YO}),Xm=Ln.extend({method:fe("notifications/progress"),params:OB}),CB=kn.extend({cursor:QO.optional()}),Ql=_r.extend({params:CB.optional()}),ed=br.extend({nextCursor:QO.optional()}),PB=Cr(["working","input_required","completed","failed","cancelled"]),td=se({taskId:z(),status:PB,ttl:ht([ct(),Vl()]),createdAt:z(),lastUpdatedAt:z(),pollInterval:Ot(ct()),statusMessage:Ot(z())}),zo=br.extend({task:td}),AB=zn.merge(td),rd=Ln.extend({method:fe("notifications/tasks/status"),params:AB}),Ym=_r.extend({method:fe("tasks/get"),params:kn.extend({taskId:z()})}),Qm=br.merge(td),eh=_r.extend({method:fe("tasks/result"),params:kn.extend({taskId:z()})}),mTe=br.loose(),th=Ql.extend({method:fe("tasks/list")}),rh=ed.extend({tasks:Ve(td)}),nh=_r.extend({method:fe("tasks/cancel"),params:kn.extend({taskId:z()})}),aC=br.merge(td),cC=se({uri:z(),mimeType:Ot(z()),_meta:Tt(z(),St()).optional()}),uC=cC.extend({text:z()}),Gx=z().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),lC=cC.extend({blob:Gx}),nd=Cr(["user","assistant"]),oc=se({audience:Ve(nd).optional(),priority:ct().min(0).max(1).optional(),lastModified:Do.datetime({offset:!0}).optional()}),dC=se({...sc.shape,...Yl.shape,uri:z(),description:Ot(z()),mimeType:Ot(z()),annotations:oc.optional(),_meta:Ot(Or({}))}),NB=se({...sc.shape,...Yl.shape,uriTemplate:z(),description:Ot(z()),mimeType:Ot(z()),annotations:oc.optional(),_meta:Ot(Or({}))}),MB=Ql.extend({method:fe("resources/list")}),Wx=ed.extend({resources:Ve(dC)}),DB=Ql.extend({method:fe("resources/templates/list")}),Vx=ed.extend({resourceTemplates:Ve(NB)}),Kx=kn.extend({uri:z()}),jB=Kx,zB=_r.extend({method:fe("resources/read"),params:jB}),Jx=br.extend({contents:Ve(ht([uC,lC]))}),Xx=Ln.extend({method:fe("notifications/resources/list_changed"),params:zn.optional()}),LB=Kx,UB=_r.extend({method:fe("resources/subscribe"),params:LB}),FB=Kx,qB=_r.extend({method:fe("resources/unsubscribe"),params:FB}),HB=zn.extend({uri:z()}),ZB=Ln.extend({method:fe("notifications/resources/updated"),params:HB}),BB=se({name:z(),description:Ot(z()),required:Ot(Yt())}),GB=se({...sc.shape,...Yl.shape,description:Ot(z()),arguments:Ot(Ve(BB)),_meta:Ot(Or({}))}),WB=Ql.extend({method:fe("prompts/list")}),Yx=ed.extend({prompts:Ve(GB)}),VB=kn.extend({name:z(),arguments:Tt(z(),z()).optional()}),KB=_r.extend({method:fe("prompts/get"),params:VB}),Qx=se({type:fe("text"),text:z(),annotations:oc.optional(),_meta:Tt(z(),St()).optional()}),ew=se({type:fe("image"),data:Gx,mimeType:z(),annotations:oc.optional(),_meta:Tt(z(),St()).optional()}),tw=se({type:fe("audio"),data:Gx,mimeType:z(),annotations:oc.optional(),_meta:Tt(z(),St()).optional()}),JB=se({type:fe("tool_use"),name:z(),id:z(),input:Tt(z(),St()),_meta:Tt(z(),St()).optional()}),XB=se({type:fe("resource"),resource:ht([uC,lC]),annotations:oc.optional(),_meta:Tt(z(),St()).optional()}),YB=dC.extend({type:fe("resource_link")}),rw=ht([Qx,ew,tw,YB,XB]),QB=se({role:nd,content:rw}),nw=br.extend({description:z().optional(),messages:Ve(QB)}),iw=Ln.extend({method:fe("notifications/prompts/list_changed"),params:zn.optional()}),eG=se({title:z().optional(),readOnlyHint:Yt().optional(),destructiveHint:Yt().optional(),idempotentHint:Yt().optional(),openWorldHint:Yt().optional()}),tG=se({taskSupport:Cr(["required","optional","forbidden"]).optional()}),pC=se({...sc.shape,...Yl.shape,description:z().optional(),inputSchema:se({type:fe("object"),properties:Tt(z(),yr).optional(),required:Ve(z()).optional()}).catchall(St()),outputSchema:se({type:fe("object"),properties:Tt(z(),yr).optional(),required:Ve(z()).optional()}).catchall(St()).optional(),annotations:eG.optional(),execution:tG.optional(),_meta:Tt(z(),St()).optional()}),rG=Ql.extend({method:fe("tools/list")}),sw=ed.extend({tools:Ve(pC)}),ac=br.extend({content:Ve(rw).default([]),structuredContent:Tt(z(),St()).optional(),isError:Yt().optional()}),hTe=ac.or(br.extend({toolResult:St()})),nG=Jl.extend({name:z(),arguments:Tt(z(),St()).optional()}),iG=_r.extend({method:fe("tools/call"),params:nG}),ow=Ln.extend({method:fe("notifications/tools/list_changed"),params:zn.optional()}),fC=se({autoRefresh:Yt().default(!0),debounceMs:ct().int().nonnegative().default(300)}),mC=Cr(["debug","info","notice","warning","error","critical","alert","emergency"]),sG=kn.extend({level:mC}),oG=_r.extend({method:fe("logging/setLevel"),params:sG}),aG=zn.extend({level:mC,logger:z().optional(),data:St()}),cG=Ln.extend({method:fe("notifications/message"),params:aG}),uG=se({name:z().optional()}),lG=se({hints:Ve(uG).optional(),costPriority:ct().min(0).max(1).optional(),speedPriority:ct().min(0).max(1).optional(),intelligencePriority:ct().min(0).max(1).optional()}),dG=se({mode:Cr(["auto","required","none"]).optional()}),pG=se({type:fe("tool_result"),toolUseId:z().describe("The unique identifier for the corresponding tool call."),content:Ve(rw).default([]),structuredContent:se({}).loose().optional(),isError:Yt().optional(),_meta:Tt(z(),St()).optional()}),fG=qm("type",[Qx,ew,tw]),Gm=qm("type",[Qx,ew,tw,JB,pG]),mG=se({role:nd,content:ht([Gm,Ve(Gm)]),_meta:Tt(z(),St()).optional()}),hG=Jl.extend({messages:Ve(mG),modelPreferences:lG.optional(),systemPrompt:z().optional(),includeContext:Cr(["none","thisServer","allServers"]).optional(),temperature:ct().optional(),maxTokens:ct().int(),stopSequences:Ve(z()).optional(),metadata:yr.optional(),tools:Ve(pC).optional(),toolChoice:dG.optional()}),aw=_r.extend({method:fe("sampling/createMessage"),params:hG}),cw=br.extend({model:z(),stopReason:Ot(Cr(["endTurn","stopSequence","maxTokens"]).or(z())),role:nd,content:fG}),gG=br.extend({model:z(),stopReason:Ot(Cr(["endTurn","stopSequence","maxTokens","toolUse"]).or(z())),role:nd,content:ht([Gm,Ve(Gm)])}),vG=se({type:fe("boolean"),title:z().optional(),description:z().optional(),default:Yt().optional()}),yG=se({type:fe("string"),title:z().optional(),description:z().optional(),minLength:ct().optional(),maxLength:ct().optional(),format:Cr(["email","uri","date","date-time"]).optional(),default:z().optional()}),_G=se({type:Cr(["number","integer"]),title:z().optional(),description:z().optional(),minimum:ct().optional(),maximum:ct().optional(),default:ct().optional()}),bG=se({type:fe("string"),title:z().optional(),description:z().optional(),enum:Ve(z()),default:z().optional()}),SG=se({type:fe("string"),title:z().optional(),description:z().optional(),oneOf:Ve(se({const:z(),title:z()})),default:z().optional()}),xG=se({type:fe("string"),title:z().optional(),description:z().optional(),enum:Ve(z()),enumNames:Ve(z()).optional(),default:z().optional()}),wG=ht([bG,SG]),EG=se({type:fe("array"),title:z().optional(),description:z().optional(),minItems:ct().optional(),maxItems:ct().optional(),items:se({type:fe("string"),enum:Ve(z())}),default:Ve(z()).optional()}),kG=se({type:fe("array"),title:z().optional(),description:z().optional(),minItems:ct().optional(),maxItems:ct().optional(),items:se({anyOf:Ve(se({const:z(),title:z()}))}),default:Ve(z()).optional()}),TG=ht([EG,kG]),$G=ht([xG,wG,TG]),IG=ht([$G,vG,yG,_G]),RG=Jl.extend({mode:fe("form").optional(),message:z(),requestedSchema:se({type:fe("object"),properties:Tt(z(),IG),required:Ve(z()).optional()})}),OG=Jl.extend({mode:fe("url"),message:z(),elicitationId:z(),url:z().url()}),CG=ht([RG,OG]),uw=_r.extend({method:fe("elicitation/create"),params:CG}),PG=zn.extend({elicitationId:z()}),AG=Ln.extend({method:fe("notifications/elicitation/complete"),params:PG}),lw=br.extend({action:Cr(["accept","decline","cancel"]),content:Bm(t=>t===null?void 0:t,Tt(z(),ht([z(),ct(),Yt(),Ve(z())])).optional())}),NG=se({type:fe("ref/resource"),uri:z()});var MG=se({type:fe("ref/prompt"),name:z()}),DG=kn.extend({ref:ht([MG,NG]),argument:se({name:z(),value:z()}),context:se({arguments:Tt(z(),z()).optional()}).optional()}),jG=_r.extend({method:fe("completion/complete"),params:DG});var dw=br.extend({completion:Or({values:Ve(z()).max(100),total:Ot(ct().int()),hasMore:Ot(Yt())})}),zG=se({uri:z().startsWith("file://"),name:z().optional(),_meta:Tt(z(),St()).optional()}),LG=_r.extend({method:fe("roots/list"),params:kn.optional()}),UG=br.extend({roots:Ve(zG)}),FG=Ln.extend({method:fe("notifications/roots/list_changed"),params:zn.optional()}),gTe=ht([Jm,TB,jG,oG,KB,WB,MB,DB,zB,UB,qB,iG,rG,Ym,eh,th,nh]),vTe=ht([Km,Xm,IB,FG,rd]),yTe=ht([jo,cw,gG,lw,UG,Qm,rh,zo]),_Te=ht([Jm,aw,uw,LG,Ym,eh,th,nh]),bTe=ht([Km,Xm,cG,ZB,Xx,ow,iw,rd,AG]),STe=ht([jo,Bx,dw,nw,Yx,Wx,Vx,Jx,ac,sw,Qm,rh,zo]),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===Ie.UrlElicitationRequired&&n){let i=n;if(i.elicitations)return new Lx(i.elicitations,r)}return new t(e,r,n)}},Lx=class extends ve{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(Ie.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Xs(t){return t==="completed"||t==="failed"||t==="cancelled"}var t$e=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function pw(t){let r=Om(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=J1(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function fw(t,e){let r=oi(t,e);if(!r.success)throw r.error;return r.data}var WG=6e4,ih=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(Km,r=>{this._oncancel(r)}),this.setNotificationHandler(Xm,r=>{this._onprogress(r)}),this.setRequestHandler(Jm,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Ym,async(r,n)=>{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ve(Ie.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(eh,async(r,n)=>{let i=async()=>{let s=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,n.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 ve(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:n.requestId})}}let o=await this._taskStore.getTask(s,n.sessionId);if(!o)throw new ve(Ie.InvalidParams,`Task not found: ${s}`);if(!Xs(o.status))return await this._waitForTaskUpdate(s,n.signal),await i();if(Xs(o.status)){let a=await this._taskStore.getTaskResult(s,n.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[Js]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(th,async(r,n)=>{try{let{tasks:i,nextCursor:s}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:i,nextCursor:s,_meta:{}}}catch(i){throw new ve(Ie.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(nh,async(r,n)=>{try{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ve(Ie.InvalidParams,`Task not found: ${r.params.taskId}`);if(Xs(i.status))throw new ve(Ie.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(Ie.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof ve?i:new ve(Ie.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,i,s=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:s,onTimeout:i})}_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(Ie.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){this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=s=>{n?.(s),this._onerror(s)};let i=this._transport?.onmessage;this._transport.onmessage=(s,o)=>{i?.(s,o),Xl(s)||iC(s)?this._onresponse(s):qx(s)?this._onrequest(s,o):nC(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();let r=ve.fromError(Ie.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,i=this._transport,s=e.params?._meta?.[Js]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:Ie.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):i?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let a=eC(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{let d={relatedRequestId:e.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{let f={...p,relatedRequestId:e.id};s&&!f.relatedTask&&(f.relatedTask={taskId:s});let m=f.relatedTask?.taskId??s;return m&&c&&await c.updateTaskStatus(m,"input_required"),await this.request(l,d,f)},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(()=>n(e,u)).then(async l=>{if(o.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()},i?.sessionId):await i?.send(d)},async l=>{if(o.signal.aborted)return;let d={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:Ie.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()},i?.sessionId):await i?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,i=Number(r),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Xl(e))n(e);else{let o=new ve(e.error.code,e.error.message,e.error.data);n(o)}return}let i=this._responseHandlers.get(r);if(i===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(Xl(e)&&e.result&&typeof e.result=="object"){let o=e.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,r))}}if(s||this._progressHandlers.delete(r),Xl(e))i(e);else{let o=ve.fromError(e.error.code,e.error.message,e.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:i}=n??{};if(!i){try{yield{type:"result",result:await this.request(e,r,n)}}catch(o){yield{type:"error",error:o instanceof ve?o:new ve(Ie.InternalError,String(o))}}return}let s;try{let o=await this.request(e,zo,n);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new ve(Ie.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},n);if(yield{type:"taskStatus",task:a},Xs(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)}:a.status==="failed"?yield{type:"error",error:new ve(Ie.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new ve(Ie.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof ve?o:new ve(Ie.InternalError,String(o))}}}request(e,r,n){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=S=>{l(S)};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(S){d(S);return}n?.signal?.throwIfAborted();let p=this._requestMessageId++,f={...e,jsonrpc:"2.0",id:p};n?.onprogress&&(this._progressHandlers.set(p,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:p}}),a&&(f.params={...f.params,task:a}),c&&(f.params={...f.params,_meta:{...f.params?._meta||{},[Js]:c}});let m=S=>{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(S)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(y=>this._onerror(new Error(`Failed to send cancellation: ${y}`)));let b=S instanceof ve?S:new ve(Ie.RequestTimeout,String(S));l(b)};this._responseHandlers.set(p,S=>{if(!n?.signal?.aborted){if(S instanceof Error)return l(S);try{let b=oi(r,S.result);b.success?u(b.data):l(b.error)}catch(b){l(b)}}}),n?.signal?.addEventListener("abort",()=>{m(n?.signal?.reason)});let h=n?.timeout??WG,g=()=>m(ve.fromError(Ie.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(p,h,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let S=b=>{let y=this._responseHandlers.get(p);y?y(b):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,S),this._enqueueTaskMessage(v,{type:"request",message:f,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(p),l(b)})}else this._transport.send(f,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(S=>{this._cleanupTimeout(p),l(S)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},Qm,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},rh,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},aC,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 a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[Js]:r.relatedTask}}};await this._enqueueTaskMessage(n,{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||{},[Js]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[Js]:r.relatedTask}}}),await this._transport.send(o,r)}setRequestHandler(e,r){let n=pw(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,s)=>{let o=fw(e,i);return Promise.resolve(r(o,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 n=pw(e);this._notificationHandlers.set(n,i=>{let s=fw(e,i);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,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,i)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let i of n)if(i.type==="request"&&qx(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new ve(Ie.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 n=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(e);i?.pollInterval&&(n=i.pollInterval)}catch{}return new Promise((i,s)=>{if(r.aborted){s(new ve(Ie.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,n);r.addEventListener("abort",()=>{clearTimeout(o),s(new ve(Ie.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async i=>{if(!e)throw new Error("No request provided");return await n.createTask(i,e.id,{method:e.method,params:e.params},r)},getTask:async i=>{let s=await n.getTask(i,r);if(!s)throw new ve(Ie.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await n.storeTaskResult(i,s,o,r);let a=await n.getTask(i,r);if(a){let c=rd.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Xs(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>n.getTaskResult(i,r),updateTaskStatus:async(i,s,o)=>{let a=await n.getTask(i,r);if(!a)throw new ve(Ie.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(Xs(a.status))throw new ve(Ie.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(i,s,o,r);let c=await n.getTask(i,r);if(c){let u=rd.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Xs(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>n.listTasks(i,r)}}};function hC(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function gC(t,e){let r={...t};for(let n in e){let i=n,s=e[i];if(s===void 0)continue;let o=r[i];hC(o)&&hC(s)?r[i]={...o,...s}:r[i]=s}return r}var rN=Pe(Y0(),1),nN=Pe(tN(),1);function jX(){let t=new rN.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,nN.default)(t),t}var Fh=class{constructor(e){this._ajv=e??jX()}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 qh=class{constructor(e){this._client=e}async*callToolStream(e,r=ac,n){let i=this._client,s={...n,task:n?.task??(i.isToolTask(e.name)?{}:void 0)},o=i.requestStream({method:"tools/call",params:e},r,s),a=i.getToolOutputValidator(e.name);for await(let c of o){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new ve(Ie.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let l=a(u.structuredContent);if(!l.valid){yield{type:"error",error:new ve(Ie.InvalidParams,`Structured content does not match the tool's output schema: ${l.errorMessage}`)};return}}catch(l){if(l instanceof ve){yield{type:"error",error:l};return}yield{type:"error",error:new ve(Ie.InvalidParams,`Failed to validate structured content: ${l instanceof Error?l.message:String(l)}`)};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 iN(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 sN(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 Hh(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 i of Object.keys(n)){let s=n[i];r[i]===void 0&&Object.prototype.hasOwnProperty.call(s,"default")&&(r[i]=s.default),r[i]!==void 0&&Hh(s,r[i])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Hh(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Hh(r,e)}}function zX(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 Ec=class extends ih{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 Fh,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",ow,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",iw,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",Xx,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new qh(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=gC(this._capabilities,e)}setRequestHandler(e,r){let i=Om(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(nc(i)){let a=i;s=a._zod?.def?.value??a.value}else{let a=i;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");let o=s;if(o==="elicitation/create"){let a=async(c,u)=>{let l=oi(uw,c);if(!l.success){let S=l.error instanceof Error?l.error.message:String(l.error);throw new ve(Ie.InvalidParams,`Invalid elicitation request: ${S}`)}let{params:d}=l.data;d.mode=d.mode??"form";let{supportsFormMode:p,supportsUrlMode:f}=zX(this._capabilities.elicitation);if(d.mode==="form"&&!p)throw new ve(Ie.InvalidParams,"Client does not support form-mode elicitation requests");if(d.mode==="url"&&!f)throw new ve(Ie.InvalidParams,"Client does not support URL-mode elicitation requests");let m=await Promise.resolve(r(c,u));if(d.task){let S=oi(zo,m);if(!S.success){let b=S.error instanceof Error?S.error.message:String(S.error);throw new ve(Ie.InvalidParams,`Invalid task creation result: ${b}`)}return S.data}let h=oi(lw,m);if(!h.success){let S=h.error instanceof Error?h.error.message:String(h.error);throw new ve(Ie.InvalidParams,`Invalid elicitation result: ${S}`)}let g=h.data,v=d.mode==="form"?d.requestedSchema:void 0;if(d.mode==="form"&&g.action==="accept"&&g.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{Hh(v,g.content)}catch{}return g};return super.setRequestHandler(e,a)}if(o==="sampling/createMessage"){let a=async(c,u)=>{let l=oi(aw,c);if(!l.success){let m=l.error instanceof Error?l.error.message:String(l.error);throw new ve(Ie.InvalidParams,`Invalid sampling request: ${m}`)}let{params:d}=l.data,p=await Promise.resolve(r(c,u));if(d.task){let m=oi(zo,p);if(!m.success){let h=m.error instanceof Error?m.error.message:String(m.error);throw new ve(Ie.InvalidParams,`Invalid task creation result: ${h}`)}return m.data}let f=oi(cw,p);if(!f.success){let m=f.error instanceof Error?f.error.message:String(f.error);throw new ve(Ie.InvalidParams,`Invalid sampling result: ${m}`)}return f.data};return super.setRequestHandler(e,a)}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:Ux,capabilities:this._capabilities,clientInfo:this._clientInfo}},Bx,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!XO.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){iN(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&sN(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},jo,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},dw,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},jo,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},nw,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Yx,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Wx,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Vx,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},Jx,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},jo,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},jo,r)}async callTool(e,r=ac,n){if(this.isToolTaskRequired(e.name))throw new ve(Ie.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let i=await this.request({method:"tools/call",params:e},r,n),s=this.getToolOutputValidator(e.name);if(s){if(!i.structuredContent&&!i.isError)throw new ve(Ie.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(i.structuredContent)try{let o=s(i.structuredContent);if(!o.valid)throw new ve(Ie.InvalidParams,`Structured content does not match the tool's output schema: ${o.errorMessage}`)}catch(o){throw o instanceof ve?o:new ve(Ie.InvalidParams,`Failed to validate structured content: ${o instanceof Error?o.message:String(o)}`)}}return i}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 i=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,i)}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},sw,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,i){let s=fC.safeParse(n);if(!s.success)throw new Error(`Invalid ${e} listChanged options: ${s.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:o,debounceMs:a}=s.data,{onChanged:c}=n,u=async()=>{if(!o){c(null,null);return}try{let d=await i();c(null,d)}catch(d){let p=d instanceof Error?d:new Error(String(d));c(p,null)}},l=()=>{if(a){let d=this._listChangedDebounceTimers.get(e);d&&clearTimeout(d);let p=setTimeout(u,a);this._listChangedDebounceTimers.set(e,p)}else u()};this.setNotificationHandler(r,l)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var KN=Pe(WN(),1),Nd=Pe(require("node:process"),1),JN=require("node:stream");var Bh=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),dY(r)}clear(){this._buffer=void 0}};function dY(t){return sC.parse(JSON.parse(t))}function VN(t){return JSON.stringify(t)+` +`}var pY=Nd.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function fY(){let t={};for(let e of pY){let r=Nd.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var $c=class{constructor(e){this._readBuffer=new Bh,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new JN.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,KN.default)(this._serverParams.command,this._serverParams.args??[],{env:{...fY(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Nd.default.platform==="win32"&&mY(),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=VN(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};function mY(){return"type"in Nd.default}Dr();Tn();rr();var Ic=require("fs"),wE=require("path"),dM=require("os");re();var MY=(0,wE.join)((0,dM.homedir)(),".claude-mem"),xE=(0,wE.join)(MY,".env"),DY=["ANTHROPIC_API_KEY","CLAUDECODE"];function jY(t){let e={};for(let r of t.split(` +`)){let n=r.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");if(i===-1)continue;let s=n.slice(0,i).trim(),o=n.slice(i+1).trim();(o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),s&&(e[s]=o)}return e}function EE(){if(!(0,Ic.existsSync)(xE))return{};try{let t=(0,Ic.readFileSync)(xE,"utf-8"),e=jY(t),r={};return e.ANTHROPIC_API_KEY&&(r.ANTHROPIC_API_KEY=e.ANTHROPIC_API_KEY),e.GEMINI_API_KEY&&(r.GEMINI_API_KEY=e.GEMINI_API_KEY),e.OPENROUTER_API_KEY&&(r.OPENROUTER_API_KEY=e.OPENROUTER_API_KEY),r}catch(t){return _.warn("ENV","Failed to load .env file",{path:xE},t),{}}}function pM(t=!0){let e={};for(let[r,n]of Object.entries(process.env))n!==void 0&&!DY.includes(r)&&(e[r]=n);if(e.CLAUDE_CODE_ENTRYPOINT="sdk-ts",t){let r=EE();r.ANTHROPIC_API_KEY&&(e.ANTHROPIC_API_KEY=r.ANTHROPIC_API_KEY),r.GEMINI_API_KEY&&(e.GEMINI_API_KEY=r.GEMINI_API_KEY),r.OPENROUTER_API_KEY&&(e.OPENROUTER_API_KEY=r.OPENROUTER_API_KEY),!e.ANTHROPIC_API_KEY&&process.env.CLAUDE_CODE_OAUTH_TOKEN&&(e.CLAUDE_CODE_OAUTH_TOKEN=process.env.CLAUDE_CODE_OAUTH_TOKEN)}return e}function Rc(t){return EE()[t]}function zY(){return!!EE().ANTHROPIC_API_KEY}function Xh(){return zY()?"API key (from ~/.claude-mem/.env)":process.env.CLAUDE_CODE_OAUTH_TOKEN?"Claude Code OAuth token (from parent process)":"Claude Code CLI (subscription billing)"}re();var AE=require("child_process"),NE=Pe(require("path"),1),ME=Pe(require("os"),1),Jo=Pe(require("fs"),1);re();rr();zt();var kE=["CLAUDECODE_","CLAUDE_CODE_"],TE=new Set(["CLAUDECODE","CLAUDE_CODE_SESSION","CLAUDE_CODE_ENTRYPOINT","MCP_SESSION_ID"]),LY=new Set(["CLAUDE_CODE_OAUTH_TOKEN","CLAUDE_CODE_GIT_BASH_PATH"]);function Ui(t=process.env){let e={};for(let[r,n]of Object.entries(t))if(n!==void 0){if(LY.has(r)){e[r]=n;continue}TE.has(r)||kE.some(i=>r.startsWith(i))||(e[r]=n)}return e}var Ko=require("fs"),EM=require("os"),CE=Pe(require("path"),1);re();var xs=require("fs"),fM=require("os"),Ld=Pe(require("path"),1);re();var UY=5e3,FY=1e3,qY=Ld.default.join((0,fM.homedir)(),".claude-mem"),HY=Ld.default.join(qY,"supervisor.json");function $n(t){if(!Number.isInteger(t)||t<0||t===0)return!1;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}var IE=class{registryPath;entries=new Map;runtimeProcesses=new Map;initialized=!1;constructor(e=HY){this.registryPath=e}initialize(){if(this.initialized)return;if(this.initialized=!0,(0,xs.mkdirSync)(Ld.default.dirname(this.registryPath),{recursive:!0}),!(0,xs.existsSync)(this.registryPath)){this.persist();return}try{let n=JSON.parse((0,xs.readFileSync)(this.registryPath,"utf-8")).processes??{};for(let[i,s]of Object.entries(n))this.entries.set(i,s)}catch(r){_.warn("SYSTEM","Failed to parse supervisor registry, rebuilding",{path:this.registryPath},r),this.entries.clear()}let e=this.pruneDeadEntries();e>0&&_.info("SYSTEM","Removed dead processes from supervisor registry",{removed:e}),this.persist()}register(e,r,n){this.initialize(),this.entries.set(e,r),n&&this.runtimeProcesses.set(e,n),this.persist()}unregister(e){this.initialize(),this.entries.delete(e),this.runtimeProcesses.delete(e),this.persist()}clear(){this.entries.clear(),this.runtimeProcesses.clear(),this.persist()}getAll(){return this.initialize(),Array.from(this.entries.entries()).map(([e,r])=>({id:e,...r})).sort((e,r)=>{let n=Date.parse(e.startedAt),i=Date.parse(r.startedAt);return(Number.isNaN(n)?0:n)-(Number.isNaN(i)?0:i)})}getBySession(e){let r=String(e);return this.getAll().filter(n=>n.sessionId!==void 0&&String(n.sessionId)===r)}getRuntimeProcess(e){return this.runtimeProcesses.get(e)}getByPid(e){return this.getAll().filter(r=>r.pid===e)}pruneDeadEntries(){this.initialize();let e=0;for(let[r,n]of this.entries)$n(n.pid)||(this.entries.delete(r),this.runtimeProcesses.delete(r),e+=1);return e>0&&this.persist(),e}async reapSession(e){this.initialize();let r=this.getBySession(e);if(r.length===0)return 0;let n=typeof e=="number"?e:Number(e)||void 0;_.info("SYSTEM",`Reaping ${r.length} process(es) for session ${e}`,{sessionId:n,pids:r.map(a=>a.pid)});let i=r.filter(a=>$n(a.pid));for(let a of i)try{process.kill(a.pid,"SIGTERM")}catch(c){c.code!=="ESRCH"&&_.debug("SYSTEM",`Failed to SIGTERM session process PID ${a.pid}`,{pid:a.pid},c)}let s=Date.now()+UY;for(;Date.now()$n(c.pid)).length!==0;)await new Promise(c=>setTimeout(c,100));let o=i.filter(a=>$n(a.pid));for(let a of o){_.warn("SYSTEM",`Session process PID ${a.pid} did not exit after SIGTERM, sending SIGKILL`,{pid:a.pid,sessionId:n});try{process.kill(a.pid,"SIGKILL")}catch(c){c.code!=="ESRCH"&&_.debug("SYSTEM",`Failed to SIGKILL session process PID ${a.pid}`,{pid:a.pid},c)}}if(o.length>0){let a=Date.now()+FY;for(;Date.now()$n(u.pid)).length!==0;)await new Promise(u=>setTimeout(u,100))}for(let a of r)this.entries.delete(a.id),this.runtimeProcesses.delete(a.id);return this.persist(),_.info("SYSTEM",`Reaped ${r.length} process(es) for session ${e}`,{sessionId:n,reaped:r.length}),r.length}persist(){let e={processes:Object.fromEntries(this.entries.entries())};(0,xs.mkdirSync)(Ld.default.dirname(this.registryPath),{recursive:!0}),(0,xs.writeFileSync)(this.registryPath,JSON.stringify(e,null,2))}},$E=null;function Yh(){return $E||($E=new IE),$E}var gM=require("child_process"),vM=require("fs"),yM=require("os"),RE=Pe(require("path"),1),_M=require("util");re();Tn();var ZY=(0,_M.promisify)(gM.execFile),BY=RE.default.join((0,yM.homedir)(),".claude-mem"),GY=RE.default.join(BY,"worker.pid");async function bM(t){let e=t.currentPid??process.pid,r=t.pidFilePath??GY,n=t.registry.getAll(),i=[...n].filter(o=>o.pid!==e).sort((o,a)=>Date.parse(a.startedAt)-Date.parse(o.startedAt));for(let o of i){if(!$n(o.pid)){t.registry.unregister(o.id);continue}try{await hM(o.pid,"SIGTERM")}catch(a){_.debug("SYSTEM","Failed to send SIGTERM to child process",{pid:o.pid,type:o.type},a)}}await mM(i,5e3);let s=i.filter(o=>$n(o.pid));for(let o of s)try{await hM(o.pid,"SIGKILL")}catch(a){_.debug("SYSTEM","Failed to force kill child process",{pid:o.pid,type:o.type},a)}await mM(s,1e3);for(let o of i)t.registry.unregister(o.id);for(let o of n.filter(a=>a.pid===e))t.registry.unregister(o.id);try{(0,vM.rmSync)(r,{force:!0})}catch(o){_.debug("SYSTEM","Failed to remove PID file during shutdown",{pidFilePath:r},o)}t.registry.pruneDeadEntries()}async function mM(t,e){let r=Date.now()+e;for(;Date.now()$n(i.pid)).length===0)return;await new Promise(i=>setTimeout(i,100))}}async function hM(t,e){if(e==="SIGTERM"){try{process.kill(t,e)}catch(r){if(r.code==="ESRCH")return;throw r}return}if(process.platform==="win32"){let r=await WY();if(r){await new Promise((i,s)=>{r(t,e,o=>{if(!o){i();return}if(o.code==="ESRCH"){i();return}s(o)})});return}let n=["/PID",String(t),"/T"];e==="SIGKILL"&&n.push("/F"),await ZY("taskkill",n,{timeout:Er.POWERSHELL_COMMAND,windowsHide:!0});return}try{process.kill(t,e)}catch(r){if(r.code==="ESRCH")return;throw r}}async function WY(){let t="tree-kill";try{let e=await import(t);return e.default??e}catch{return null}}re();var SM=3e4,Oc=null;function VY(){let e=Yh().pruneDeadEntries();e>0&&_.info("SYSTEM",`Health check: pruned ${e} dead process(es) from registry`)}function xM(){Oc===null&&(Oc=setInterval(VY,SM),Oc.unref(),_.debug("SYSTEM","Health checker started",{intervalMs:SM}))}function wM(){Oc!==null&&(clearInterval(Oc),Oc=null,_.debug("SYSTEM","Health checker stopped"))}var KY=CE.default.join((0,EM.homedir)(),".claude-mem"),JY=CE.default.join(KY,"worker.pid"),OE=class{registry;started=!1;stopPromise=null;signalHandlersRegistered=!1;shutdownInitiated=!1;shutdownHandler=null;constructor(e){this.registry=e}async start(){if(this.started)return;if(this.registry.initialize(),PE({logAlive:!1})==="alive")throw new Error("Worker already running");this.started=!0,xM()}configureSignalHandlers(e){if(this.shutdownHandler=e,this.signalHandlersRegistered)return;this.signalHandlersRegistered=!0;let r=async n=>{if(this.shutdownInitiated){_.warn("SYSTEM",`Received ${n} but shutdown already in progress`);return}this.shutdownInitiated=!0,_.info("SYSTEM",`Received ${n}, shutting down...`);try{this.shutdownHandler?await this.shutdownHandler():await this.stop()}catch(i){_.error("SYSTEM","Error during shutdown",{},i);try{await this.stop()}catch(s){_.debug("SYSTEM","Supervisor shutdown fallback failed",{},s)}}process.exit(0)};process.on("SIGTERM",()=>{r("SIGTERM")}),process.on("SIGINT",()=>{r("SIGINT")}),process.platform!=="win32"&&(process.argv.includes("--daemon")?process.on("SIGHUP",()=>{_.debug("SYSTEM","Ignoring SIGHUP in daemon mode")}):process.on("SIGHUP",()=>{r("SIGHUP")}))}async stop(){if(this.stopPromise){await this.stopPromise;return}wM(),this.stopPromise=bM({registry:this.registry,currentPid:process.pid}).finally(()=>{this.started=!1,this.stopPromise=null}),await this.stopPromise}assertCanSpawn(e){if(this.stopPromise!==null)throw new Error(`Supervisor is shutting down, refusing to spawn ${e}`)}registerProcess(e,r,n){this.registry.register(e,r,n)}unregisterProcess(e){this.registry.unregister(e)}getRegistry(){return this.registry}},Qh=new OE(Yh());async function kM(){await Qh.start()}async function TM(){await Qh.stop()}function vt(){return Qh}function $M(t){Qh.configureSignalHandlers(t)}function PE(t={}){let e=t.pidFilePath??JY;if(!(0,Ko.existsSync)(e))return"missing";let r=null;try{r=JSON.parse((0,Ko.readFileSync)(e,"utf-8"))}catch(n){return _.warn("SYSTEM","Failed to parse worker PID file, removing it",{path:e},n),(0,Ko.rmSync)(e,{force:!0}),"invalid"}return $n(r.pid)?((t.logAlive??!0)&&_.info("SYSTEM","Worker already running (PID alive)",{existingPid:r.pid,existingPort:r.port,startedAt:r.startedAt}),"alive"):(_.info("SYSTEM","Removing stale PID file (worker process is dead)",{pid:r.pid,port:r.port,startedAt:r.startedAt}),(0,Ko.rmSync)(e,{force:!0}),"stale")}var XY="claude-mem-chroma",YY="1.0.0",IM=3e4,RM=1e4,QY=NE.default.join(ME.default.homedir(),".claude-mem","chroma"),eg="chroma-mcp",ws=class t{static instance=null;client=null;transport=null;connected=!1;lastConnectionFailureTimestamp=0;connecting=null;constructor(){}static getInstance(){return t.instance||(t.instance=new t),t.instance}async ensureConnected(){if(this.connected&&this.client)return;let e=Date.now()-this.lastConnectionFailureTimestamp;if(this.lastConnectionFailureTimestamp>0&&e{a=setTimeout(()=>d(new Error(`MCP connection to chroma-mcp timed out after ${IM}ms`)),IM)});try{await Promise.race([o,c])}catch(l){clearTimeout(a),_.warn("CHROMA_MCP","Connection failed, killing subprocess to prevent zombie",{error:l instanceof Error?l.message:String(l)});try{await this.transport.close()}catch{}try{await this.client.close()}catch{}throw this.client=null,this.transport=null,this.connected=!1,l}clearTimeout(a),this.connected=!0,this.registerManagedProcess(),_.info("CHROMA_MCP","Connected to chroma-mcp successfully");let u=this.transport;this.transport.onclose=()=>{if(this.transport!==u){_.debug("CHROMA_MCP","Ignoring stale onclose from previous transport");return}_.warn("CHROMA_MCP","chroma-mcp subprocess closed unexpectedly, applying reconnect backoff"),this.connected=!1,vt().unregisterProcess(eg),this.client=null,this.transport=null,this.lastConnectionFailureTimestamp=Date.now()}}buildCommandArgs(){let e=Se.loadFromFile(jt),r=e.CLAUDE_MEM_CHROMA_MODE||"local",n=process.env.CLAUDE_MEM_PYTHON_VERSION||e.CLAUDE_MEM_PYTHON_VERSION||"3.13";if(r==="remote"){let i=e.CLAUDE_MEM_CHROMA_HOST||"127.0.0.1",s=e.CLAUDE_MEM_CHROMA_PORT||"8000",o=e.CLAUDE_MEM_CHROMA_SSL==="true",a=e.CLAUDE_MEM_CHROMA_TENANT||"default_tenant",c=e.CLAUDE_MEM_CHROMA_DATABASE||"default_database",u=e.CLAUDE_MEM_CHROMA_API_KEY||"",l=["--python",n,"chroma-mcp","--client-type","http","--host",i,"--port",s];return l.push("--ssl",o?"true":"false"),a!=="default_tenant"&&l.push("--tenant",a),c!=="default_database"&&l.push("--database",c),u&&l.push("--api-key",u),l}return["--python",n,"chroma-mcp","--client-type","persistent","--data-dir",QY.replace(/\\/g,"/")]}async callTool(e,r){await this.ensureConnected(),_.debug("CHROMA_MCP",`Calling tool: ${e}`,{arguments:JSON.stringify(r).slice(0,200)});let n;try{n=await this.client.callTool({name:e,arguments:r})}catch(o){this.connected=!1,this.client=null,this.transport=null,_.warn("CHROMA_MCP",`Transport error during "${e}", reconnecting and retrying once`,{error:o instanceof Error?o.message:String(o)});try{await this.ensureConnected(),n=await this.client.callTool({name:e,arguments:r})}catch(a){throw this.connected=!1,new Error(`chroma-mcp transport error during "${e}" (retry failed): ${a instanceof Error?a.message:String(a)}`)}}if(n.isError){let o=n.content?.find(a=>a.type==="text")?.text||"Unknown chroma-mcp error";throw new Error(`chroma-mcp tool "${e}" returned error: ${o}`)}let i=n.content;if(!i||i.length===0)return null;let s=i.find(o=>o.type==="text"&&o.text);if(!s||!s.text)return null;try{return JSON.parse(s.text)}catch{return null}}async isHealthy(){try{return await this.callTool("chroma_list_collections",{limit:1}),!0}catch{return!1}}async stop(){if(!this.client){_.debug("CHROMA_MCP","No active MCP connection to stop");return}_.info("CHROMA_MCP","Stopping chroma-mcp MCP connection");try{await this.client.close()}catch(e){_.debug("CHROMA_MCP","Error during client close (subprocess may already be dead)",{},e)}vt().unregisterProcess(eg),this.client=null,this.transport=null,this.connected=!1,this.connecting=null,_.info("CHROMA_MCP","chroma-mcp MCP connection stopped")}static async reset(){t.instance&&await t.instance.stop(),t.instance=null}getCombinedCertPath(){let e=NE.default.join(ME.default.homedir(),".claude-mem","combined_certs.pem");if(Jo.default.existsSync(e)){let r=Jo.default.statSync(e);if(Date.now()-r.mtimeMs<1440*60*1e3)return e}if(process.platform==="darwin")try{let r;try{r=(0,AE.execSync)('uvx --with certifi python -c "import certifi; print(certifi.where())"',{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:1e4}).trim()}catch{return}if(!r||!Jo.default.existsSync(r))return;let n="";try{n=(0,AE.execSync)('security find-certificate -a -c "Zscaler" -p /Library/Keychains/System.keychain',{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:5e3})}catch{return}if(!n||!n.includes("-----BEGIN CERTIFICATE-----")||!n.includes("-----END CERTIFICATE-----"))return;let i=Jo.default.readFileSync(r,"utf8"),s=e+".tmp";return Jo.default.writeFileSync(s,i+` +`+n),Jo.default.renameSync(s,e),_.info("CHROMA_MCP","Created combined SSL certificate bundle for Zscaler",{path:e}),e}catch(r){_.debug("CHROMA_MCP","Could not create combined cert bundle",{},r);return}}getSpawnEnv(){let e={};for(let[n,i]of Object.entries(Ui(process.env)))i!==void 0&&(e[n]=i);let r=this.getCombinedCertPath();return r?(_.info("CHROMA_MCP","Using combined SSL certificates for enterprise compatibility",{certPath:r}),{...e,SSL_CERT_FILE:r,REQUESTS_CA_BUNDLE:r,CURL_CA_BUNDLE:r,NODE_EXTRA_CA_CERTS:r}):e}registerManagedProcess(){let e=this.transport._process;e?.pid&&(vt().registerProcess(eg,{pid:e.pid,type:"chroma",startedAt:new Date().toISOString()},e),e.once("exit",()=>{vt().unregisterProcess(eg)}))}};ng();re();var Cc=class t{project;collectionName;collectionCreated=!1;BATCH_SIZE=100;constructor(e){this.project=e;let r=e.replace(/[^a-zA-Z0-9._-]/g,"_").replace(/[^a-zA-Z0-9]+$/,"");this.collectionName=`cm__${r||"unknown"}`}async ensureCollectionExists(){if(this.collectionCreated)return;let e=ws.getInstance();try{await e.callTool("chroma_create_collection",{collection_name:this.collectionName})}catch(r){if(!(r instanceof Error?r.message:String(r)).includes("already exists"))throw r}this.collectionCreated=!0,_.debug("CHROMA_SYNC","Collection ready",{collection:this.collectionName})}formatObservationDocs(e){let r=[],n=e.facts?JSON.parse(e.facts):[],i=e.concepts?JSON.parse(e.concepts):[],s=e.files_read?JSON.parse(e.files_read):[],o=e.files_modified?JSON.parse(e.files_modified):[],a={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&&(a.subtitle=e.subtitle),i.length>0&&(a.concepts=i.join(",")),s.length>0&&(a.files_read=s.join(",")),o.length>0&&(a.files_modified=o.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...a,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...a,field_type:"text"}}),n.forEach((c,u)=>{r.push({id:`obs_${e.id}_fact_${u}`,document:c,metadata:{...a,field_type:"fact",fact_index:u}})}),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;await this.ensureCollectionExists();let r=ws.getInstance();for(let n=0;nObject.fromEntries(Object.entries(o.metadata).filter(([a,c])=>c!=null&&c!=="")));try{await r.callTool("chroma_add_documents",{collection_name:this.collectionName,ids:i.map(o=>o.id),documents:i.map(o=>o.document),metadatas:s})}catch(o){if((o instanceof Error?o.message:String(o)).includes("already exist"))try{await r.callTool("chroma_delete_documents",{collection_name:this.collectionName,ids:i.map(c=>c.id)}),await r.callTool("chroma_add_documents",{collection_name:this.collectionName,ids:i.map(c=>c.id),documents:i.map(c=>c.document),metadatas:s}),_.info("CHROMA_SYNC","Batch reconciled via delete+add after duplicate conflict",{collection:this.collectionName,batchStart:n,batchSize:i.length})}catch(c){_.error("CHROMA_SYNC","Batch reconcile (delete+add) failed",{collection:this.collectionName,batchStart:n,batchSize:i.length},c)}else _.error("CHROMA_SYNC","Batch add failed, continuing with remaining batches",{collection:this.collectionName,batchStart:n,batchSize:i.length},o)}}_.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}async syncObservation(e,r,n,i,s,o,a=0){let c={id:e,memory_session_id:r,project:n,text:null,type:i.type,title:i.title,subtitle:i.subtitle,facts:JSON.stringify(i.facts),narrative:i.narrative,concepts:JSON.stringify(i.concepts),files_read:JSON.stringify(i.files_read),files_modified:JSON.stringify(i.files_modified),prompt_number:s,discovery_tokens:a,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatObservationDocs(c);_.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:u.length,project:n}),await this.addDocuments(u)}async syncSummary(e,r,n,i,s,o,a=0){let c={id:e,memory_session_id:r,project:n,request:i.request,investigated:i.investigated,learned:i.learned,completed:i.completed,next_steps:i.next_steps,notes:i.notes,prompt_number:s,discovery_tokens:a,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatSummaryDocs(c);_.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:u.length,project:n}),await this.addDocuments(u)}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,i,s,o){let a={id:e,content_session_id:"",prompt_number:s,prompt_text:i,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o,memory_session_id:r,project:n},c=this.formatUserPromptDoc(a);_.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:n}),await this.addDocuments([c])}async getExistingChromaIds(e){let r=e??this.project;await this.ensureCollectionExists();let n=ws.getInstance(),i=new Set,s=new Set,o=new Set,a=0,c=1e3;for(_.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:r});;){let l=(await n.callTool("chroma_get_documents",{collection_name:this.collectionName,limit:c,offset:a,where:{project:r},include:["metadatas"]}))?.metadatas||[];if(l.length===0)break;for(let d of l)if(d&&d.sqlite_id){let p=d.sqlite_id;d.doc_type==="observation"?i.add(p):d.doc_type==="session_summary"?s.add(p):d.doc_type==="user_prompt"&&o.add(p)}a+=c,_.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:r,offset:a,batchSize:l.length})}return _.info("CHROMA_SYNC","Existing IDs fetched",{project:r,observations:i.size,summaries:s.size,prompts:o.size}),{observations:i,summaries:s,prompts:o}}async ensureBackfilled(e){let r=e??this.project;_.info("CHROMA_SYNC","Starting smart backfill",{project:r}),await this.ensureCollectionExists();let n=await this.getExistingChromaIds(r),i=new Es;try{let s=Array.from(n.observations).filter(y=>Number.isInteger(y)&&y>0),o=s.length>0?`AND id NOT IN (${s.join(",")})`:"",a=i.db.prepare(` SELECT * FROM observations WHERE project = ? ${o} ORDER BY id ASC `).all(r),c=i.db.prepare(` SELECT COUNT(*) as count FROM observations WHERE project = ? - `).get(r);y.info("CHROMA_SYNC","Backfilling observations",{project:r,missing:a.length,existing:n.observations.size,total:c.count});let u=[];for(let _ of a)u.push(...this.formatObservationDocs(_));for(let _=0;_Number.isInteger(_)&&_>0),d=l.length>0?`AND id NOT IN (${l.join(",")})`:"",p=i.db.prepare(` + `).get(r);_.info("CHROMA_SYNC","Backfilling observations",{project:r,missing:a.length,existing:n.observations.size,total:c.count});let u=[];for(let y of a)u.push(...this.formatObservationDocs(y));for(let y=0;yNumber.isInteger(y)&&y>0),d=l.length>0?`AND id NOT IN (${l.join(",")})`:"",p=i.db.prepare(` SELECT * FROM session_summaries WHERE project = ? ${d} ORDER BY id ASC - `).all(r),m=i.db.prepare(` + `).all(r),f=i.db.prepare(` SELECT COUNT(*) as count FROM session_summaries WHERE project = ? - `).get(r);y.info("CHROMA_SYNC","Backfilling summaries",{project:r,missing:p.length,existing:n.summaries.size,total:m.count});let f=[];for(let _ of p)f.push(...this.formatSummaryDocs(_));for(let _=0;_Number.isInteger(_)&&_>0),h=g.length>0?`AND up.id NOT IN (${g.join(",")})`:"",v=i.db.prepare(` + `).get(r);_.info("CHROMA_SYNC","Backfilling summaries",{project:r,missing:p.length,existing:n.summaries.size,total:f.count});let m=[];for(let y of p)m.push(...this.formatSummaryDocs(y));for(let y=0;yNumber.isInteger(y)&&y>0),g=h.length>0?`AND up.id NOT IN (${h.join(",")})`:"",v=i.db.prepare(` SELECT up.*, s.project, s.memory_session_id FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id - WHERE s.project = ? ${h} + WHERE s.project = ? ${g} ORDER BY up.id ASC - `).all(r),x=i.db.prepare(` + `).all(r),S=i.db.prepare(` SELECT COUNT(*) as count FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id WHERE s.project = ? - `).get(r);y.info("CHROMA_SYNC","Backfilling user prompts",{project:r,missing:v.length,existing:n.prompts.size,total:x.count});let b=[];for(let _ of v)b.push(this.formatUserPromptDoc(_));for(let _=0;_s.trim()).find(s=>s.length>0)||null}catch{return null}}function ZK(t={}){let e=t.platform??process.platform,r=t.execPath??process.execPath;if(e!=="win32"||jA(r))return r;let n=t.env??process.env,i=t.homeDirectory??(0,J0.homedir)(),s=t.pathExists??Lt.existsSync,o=t.lookupInPath??HK,a=[n.BUN,n.BUN_PATH,yi.default.join(i,".bun","bin","bun.exe"),yi.default.join(i,".bun","bin","bun"),n.USERPROFILE?yi.default.join(n.USERPROFILE,".bun","bin","bun.exe"):void 0,n.LOCALAPPDATA?yi.default.join(n.LOCALAPPDATA,"bun","bun.exe"):void 0,n.LOCALAPPDATA?yi.default.join(n.LOCALAPPDATA,"bun","bin","bun.exe"):void 0];for(let c of a){let u=c?.trim();if(u&&(jA(u)&&s(u)||u.toLowerCase()==="bun"))return u}return o("bun",e)}function LA(t){(0,Lt.mkdirSync)(X0,{recursive:!0}),(0,Lt.writeFileSync)(_i,JSON.stringify(t,null,2))}function Y0(){if(!(0,Lt.existsSync)(_i))return null;try{return JSON.parse((0,Lt.readFileSync)(_i,"utf-8"))}catch(t){return y.warn("SYSTEM","Failed to parse PID file",{path:_i},t),null}}function yo(){if((0,Lt.existsSync)(_i))try{(0,Lt.unlinkSync)(_i)}catch(t){y.warn("SYSTEM","Failed to remove PID file",{path:_i},t)}}function es(t){return process.platform==="win32"?Math.round(t*2):t}function BK(t){if(!t||t.trim()==="")return-1;let e=t.trim(),r=0,n=e.match(/^(\d+)-(\d+):(\d+):(\d+)$/);if(n)return r=parseInt(n[1],10)*24*60+parseInt(n[2],10)*60+parseInt(n[3],10),r;let i=e.match(/^(\d+):(\d+):(\d+)$/);if(i)return r=parseInt(i[1],10)*60+parseInt(i[2],10),r;let s=e.match(/^(\d+):(\d+)$/);return s?parseInt(s[1],10):-1}var K0=["worker-service.cjs","chroma-mcp"],VK=["mcp-server.cjs"];async function UA(){let t=process.platform==="win32",e=process.pid,r=[],n=[...K0,...VK];try{if(t){let s=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process -Filter '(${n.map(l=>`CommandLine LIKE '%${l}%'`).join(" OR ")}) AND ProcessId != ${e}' | Select-Object ProcessId, CommandLine, CreationDate | ConvertTo-Json"`,{stdout:o}=await MA(s,{timeout:_r.POWERSHELL_COMMAND,windowsHide:!0});if(!o.trim()||o.trim()==="null"){y.debug("SYSTEM","No orphaned claude-mem processes found (Windows)");return}let a=JSON.parse(o),c=Array.isArray(a)?a:[a],u=Date.now();for(let l of c){let d=l.ProcessId;if(!Number.isInteger(d)||d<=0||d===e)continue;let p=l.CommandLine||"";if(K0.some(f=>p.includes(f)))r.push(d),y.debug("SYSTEM","Found orphaned process (aggressive)",{pid:d,commandLine:p.substring(0,80)});else{let f=l.CreationDate?.match(/\/Date\((\d+)\)\//);if(f){let g=parseInt(f[1],10),h=(u-g)/(1e3*60);h>=DA&&(r.push(d),y.debug("SYSTEM","Found orphaned process (age-gated)",{pid:d,ageMinutes:Math.round(h)}))}}}}else{let i=n.join("|"),{stdout:s}=await MA(`ps -eo pid,etime,command | grep -E "${i}" | grep -v grep || true`);if(!s.trim()){y.debug("SYSTEM","No orphaned claude-mem processes found (Unix)");return}let o=s.trim().split(` -`);for(let a of o){let c=a.trim().match(/^(\d+)\s+(\S+)\s+(.*)$/);if(!c)continue;let u=parseInt(c[1],10),l=c[2],d=c[3];if(!Number.isInteger(u)||u<=0||u===e)continue;if(K0.some(m=>d.includes(m)))r.push(u),y.debug("SYSTEM","Found orphaned process (aggressive)",{pid:u,command:d.substring(0,80)});else{let m=BK(l);m>=DA&&(r.push(u),y.debug("SYSTEM","Found orphaned process (age-gated)",{pid:u,ageMinutes:m,command:d.substring(0,80)}))}}}}catch(i){y.error("SYSTEM","Failed to enumerate orphaned processes during aggressive cleanup",{},i);return}if(r.length!==0){if(y.info("SYSTEM","Aggressive startup cleanup: killing orphaned processes",{platform:t?"Windows":"Unix",count:r.length,pids:r}),t){for(let i of r)if(!(!Number.isInteger(i)||i<=0))try{(0,Qi.execSync)(`taskkill /PID ${i} /T /F`,{timeout:_r.POWERSHELL_COMMAND,stdio:"ignore",windowsHide:!0})}catch(s){y.debug("SYSTEM","Failed to kill process, may have already exited",{pid:i},s)}}else for(let i of r)try{process.kill(i,"SIGKILL")}catch(s){y.debug("SYSTEM","Process already exited",{pid:i},s)}y.info("SYSTEM","Aggressive startup cleanup complete",{count:r.length})}}var GK=".chroma-cleaned-v10.3";function qA(t){let e=t??X0,r=yi.default.join(e,GK),n=yi.default.join(e,"chroma");if((0,Lt.existsSync)(r)){y.debug("SYSTEM","Chroma migration marker exists, skipping wipe");return}y.warn("SYSTEM","Running one-time chroma data wipe (upgrade from pre-v10.3)",{chromaDir:n}),(0,Lt.existsSync)(n)&&((0,Lt.rmSync)(n,{recursive:!0,force:!0}),y.info("SYSTEM","Chroma data directory removed",{chromaDir:n})),(0,Lt.mkdirSync)(e,{recursive:!0}),(0,Lt.writeFileSync)(r,new Date().toISOString()),y.info("SYSTEM","Chroma migration marker written",{markerPath:r})}function Q0(t,e,r={}){let n=process.platform==="win32";gt().assertCanSpawn("worker daemon");let i=vi({...process.env,CLAUDE_MEM_WORKER_PORT:String(e),...r});if(n){let a=ZK();if(!a){y.error("SYSTEM","Failed to locate Bun runtime for Windows worker spawn");return}let c=`Start-Process -FilePath '${a.replace(/'/g,"''")}' -ArgumentList @('${t.replace(/'/g,"''")}','--daemon') -WindowStyle Hidden`,u=Buffer.from(c,"utf16le").toString("base64");try{return(0,Qi.execSync)(`powershell -NoProfile -EncodedCommand ${u}`,{stdio:"ignore",windowsHide:!0,env:i}),0}catch(l){y.error("SYSTEM","Failed to spawn worker daemon on Windows",{runtimePath:a},l);return}}let s="/usr/bin/setsid";if((0,Lt.existsSync)(s)){let a=(0,Qi.spawn)(s,[process.execPath,t,"--daemon"],{detached:!0,stdio:"ignore",env:i});return a.pid===void 0?void 0:(a.unref(),a.pid)}let o=(0,Qi.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",env:i});if(o.pid!==void 0)return o.unref(),o.pid}function FA(t){if(t===0)return!0;if(!Number.isInteger(t)||t<0)return!1;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}function HA(t=15e3){try{let e=(0,Lt.statSync)(_i);return Date.now()-e.mtimeMssetTimeout(s,500))}return!1}function _o(t,e=3e4){return WA(t,"/api/health",e,"Service not ready yet, will retry")}function KA(t,e=3e4){return WA(t,"/api/readiness",e,"Worker not ready yet, will retry")}async function Gf(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Wf(t){try{let e=await ew(t,"/api/admin/shutdown","POST");return e.ok?!0:(y.warn("SYSTEM","Shutdown request returned error",{status:e.statusCode}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(y.debug("SYSTEM","Worker already stopped",{},e),!1):(y.error("SYSTEM","Shutdown request failed unexpectedly",{},e),!1)}}function WK(){try{let t=VA.default.join(Ki,"package.json");return JSON.parse((0,GA.readFileSync)(t,"utf-8")).version}catch(t){let e=t.code;if(e==="ENOENT"||e==="EBUSY")return y.debug("SYSTEM","Could not read plugin version (shutdown race)",{code:e}),"unknown";throw t}}async function KK(t){try{let e=await ew(t,"/api/version");return e.ok?JSON.parse(e.body).version:null}catch{return y.debug("SYSTEM","Could not fetch worker version",{}),null}}async function JA(t){let e=WK(),r=await KK(t);return!r||e==="unknown"?{matches:!0,pluginVersion:e,workerVersion:r}:{matches:e===r,pluginVersion:e,workerVersion:r}}oe();async function XA(t){y.info("SYSTEM","Shutdown initiated"),t.server&&(await JK(t.server),y.info("SYSTEM","HTTP server closed")),await t.sessionManager.shutdownAll(),t.mcpClient&&(await t.mcpClient.close(),y.info("SYSTEM","MCP client closed")),t.chromaMcpManager&&(y.info("SHUTDOWN","Stopping Chroma MCP connection..."),await t.chromaMcpManager.stop(),y.info("SHUTDOWN","Chroma MCP connection stopped")),t.dbManager&&await t.dbManager.close(),await TA(),y.info("SYSTEM","Worker shutdown complete")}async function JK(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)),y.info("SYSTEM","Waited for Windows port cleanup"))}var aU=Ue(tg(),1),ok=Ue(require("fs"),1),Cd=Ue(require("path"),1);var WL=["search","context","summarize","import","export"],KL=["workflow","search_params","examples","all"];oe();var nk=Ue(tg(),1),tU=Ue(eU(),1),rU=Ue(require("path"),1);Nt();oe();function ik(t){let e=[];e.push(nk.default.json({limit:"50mb"})),e.push((0,tU.default)({origin:(i,s)=>{!i||i.startsWith("http://localhost:")||i.startsWith("http://127.0.0.1:")?s(null,!0):s(new Error("CORS not allowed"))},methods:["GET","HEAD","POST","PUT","PATCH","DELETE"],allowedHeaders:["Content-Type","Authorization","X-Requested-With"],credentials:!1})),e.push((i,s,o)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(f=>i.path.endsWith(f)),u=i.path==="/api/logs";if(i.path.startsWith("/health")||i.path==="/"||c||u)return o();let l=Date.now(),d=`${i.method}-${Date.now()}`,p=t(i.method,i.path,i.body);y.debug("HTTP",`\u2192 ${i.method} ${i.path}`,{requestId:d},p);let m=s.send.bind(s);s.send=function(f){let g=Date.now()-l;return y.debug("HTTP",`\u2190 ${s.statusCode} ${i.path}`,{requestId:d,duration:`${g}ms`}),m(f)},o()});let r=tn(),n=rU.default.join(r,"plugin","ui");return e.push(nk.default.static(n)),e}function Pd(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")){y.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||"?",i=r.tool_input;return`tool=${y.formatTool(n,i)}`}return e.includes("/summarize")?"requesting summary":""}oe();var wc=class extends Error{constructor(r,n=500,i,s){super(r);this.statusCode=n;this.code=i;this.details=s;this.name="AppError"}};function nU(t,e,r,n){let i={error:t,message:e};return r&&(i.code=r),n&&(i.details=n),i}var iU=(t,e,r,n)=>{let i=t instanceof wc?t.statusCode:500;y.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:i,error:t.message,code:t instanceof wc?t.code:void 0},t);let s=nU(t.name||"Error",t.message,t instanceof wc?t.code:void 0,t instanceof wc?t.details:void 0);r.status(i).json(s)};function sU(t,e){e.status(404).json(nU("NotFound",`Cannot ${t.method} ${t.path}`))}var oU="10.6.3",rg=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,aU.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,i)=>{this.server=this.app.listen(e,r,()=>{y.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",i)})}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,y.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(sU),this.app.use(iU)}setupMiddleware(){ik(sk).forEach(r=>this.app.use(r))}setupCoreRoutes(){this.app.get("/api/health",(e,r)=>{r.status(200).json({status:"ok",version:oU,workerPath:this.options.workerPath,uptime:Date.now()-this.startTime,managed:process.env.CLAUDE_MEM_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),mcpReady:this.options.getMcpReady(),ai:this.options.getAiStatus()})}),this.app.get("/api/readiness",(e,r)=>{this.options.getInitializationComplete()?r.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):r.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(e,r)=>{r.status(200).json({version:oU})}),this.app.get("/api/instructions",async(e,r)=>{let n=e.query.topic||"all",i=e.query.operation;if(n&&!KL.includes(n))return r.status(400).json({error:"Invalid topic"});try{let s;if(i){if(!WL.includes(i))return r.status(400).json({error:"Invalid operation"});let o=Cd.default.resolve(__dirname,"../skills/mem-search/operations"),a=Cd.default.resolve(o,`${i}.md`);if(!a.startsWith(o+Cd.default.sep))return r.status(400).json({error:"Invalid request"});s=await ok.promises.readFile(a,"utf-8")}else{let o=Cd.default.join(__dirname,"../skills/mem-search/SKILL.md"),a=await ok.promises.readFile(o,"utf-8");s=this.extractInstructionSection(a,n)}r.json({content:[{type:"text",text:s}]})}catch{r.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",Pd,async(e,r)=>{r.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(y.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{try{await this.options.onRestart()}finally{process.exit(0)}},100)}),this.app.post("/api/admin/shutdown",Pd,async(e,r)=>{r.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(y.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{try{await this.options.onShutdown()}finally{process.exit(0)}},100)}),this.app.get("/api/admin/doctor",Pd,(e,r)=>{let o=gt().getRegistry().getAll().map(f=>({id:f.id,pid:f.pid,type:f.type,status:vn(f.pid)?"alive":"dead",startedAt:f.startedAt})),a=o.filter(f=>f.status==="dead").map(f=>f.pid),c=!Object.keys(process.env).some(f=>z0.has(f)||j0.some(g=>f.startsWith(g))),u=Date.now()-this.startTime,l=Math.floor(u/1e3),d=Math.floor(l/3600),p=Math.floor(l%3600/60),m=d>0?`${d}h ${p}m`:`${p}m`;r.json({supervisor:{running:!0,pid:process.pid,uptime:m},processes:o,health:{deadProcessPids:a,envClean:c}})})}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 i=e.indexOf(r),s=e.indexOf(n);return i===-1?e:s===-1?e.substring(i):e.substring(i,s).trim()}};var yt=Ue(require("path"),1),Nd=require("os"),Kt=require("fs"),lU=require("child_process"),dU=require("util");oe();Or();Nt();var Dn=require("fs"),Ad=require("path");oe();function cU(t){try{return(0,Dn.existsSync)(t)?JSON.parse((0,Dn.readFileSync)(t,"utf-8")):{}}catch(e){return y.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function uU(t,e){let r=(0,Ad.join)(t,"..");(0,Dn.mkdirSync)(r,{recursive:!0}),(0,Dn.writeFileSync)(t,JSON.stringify(e,null,2))}function ak(t,e){let r=(0,Ad.join)(t,".cursor","rules"),n=(0,Ad.join)(r,"claude-mem-context.mdc"),i=`${n}.tmp`;(0,Dn.mkdirSync)(r,{recursive:!0});let s=`--- + `).get(r);_.info("CHROMA_SYNC","Backfilling user prompts",{project:r,missing:v.length,existing:n.prompts.size,total:S.count});let b=[];for(let y of v)b.push(this.formatUserPromptDoc(y));for(let y=0;ys.trim()).find(s=>s.length>0)||null}catch{return null}}function nQ(t={}){let e=t.platform??process.platform,r=t.execPath??process.execPath;if(e!=="win32"||DM(r))return r;let n=t.env??process.env,i=t.homeDirectory??(0,zE.homedir)(),s=t.pathExists??Lt.existsSync,o=t.lookupInPath??rQ,a=[n.BUN,n.BUN_PATH,Fi.default.join(i,".bun","bin","bun.exe"),Fi.default.join(i,".bun","bin","bun"),n.USERPROFILE?Fi.default.join(n.USERPROFILE,".bun","bin","bun.exe"):void 0,n.LOCALAPPDATA?Fi.default.join(n.LOCALAPPDATA,"bun","bun.exe"):void 0,n.LOCALAPPDATA?Fi.default.join(n.LOCALAPPDATA,"bun","bin","bun.exe"):void 0];for(let c of a){let u=c?.trim();if(u&&(DM(u)&&s(u)||u.toLowerCase()==="bun"))return u}return o("bun",e)}function zM(t){(0,Lt.mkdirSync)(LE,{recursive:!0}),(0,Lt.writeFileSync)(qi,JSON.stringify(t,null,2))}function UE(){if(!(0,Lt.existsSync)(qi))return null;try{return JSON.parse((0,Lt.readFileSync)(qi,"utf-8"))}catch(t){return _.warn("SYSTEM","Failed to parse PID file",{path:qi},t),null}}function Xo(){if((0,Lt.existsSync)(qi))try{(0,Lt.unlinkSync)(qi)}catch(t){_.warn("SYSTEM","Failed to remove PID file",{path:qi},t)}}function Ts(t){return process.platform==="win32"?Math.round(t*2):t}function iQ(t){if(!t||t.trim()==="")return-1;let e=t.trim(),r=0,n=e.match(/^(\d+)-(\d+):(\d+):(\d+)$/);if(n)return r=parseInt(n[1],10)*24*60+parseInt(n[2],10)*60+parseInt(n[3],10),r;let i=e.match(/^(\d+):(\d+):(\d+)$/);if(i)return r=parseInt(i[1],10)*60+parseInt(i[2],10),r;let s=e.match(/^(\d+):(\d+)$/);return s?parseInt(s[1],10):-1}var jE=["worker-service.cjs","chroma-mcp"],sQ=["mcp-server.cjs"];async function LM(){let t=process.platform==="win32",e=process.pid,r=[],n=[...jE,...sQ];try{if(t){let s=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process -Filter '(${n.map(l=>`CommandLine LIKE '%${l}%'`).join(" OR ")}) AND ProcessId != ${e}' | Select-Object ProcessId, CommandLine, CreationDate | ConvertTo-Json"`,{stdout:o}=await NM(s,{timeout:Er.POWERSHELL_COMMAND,windowsHide:!0});if(!o.trim()||o.trim()==="null"){_.debug("SYSTEM","No orphaned claude-mem processes found (Windows)");return}let a=JSON.parse(o),c=Array.isArray(a)?a:[a],u=Date.now();for(let l of c){let d=l.ProcessId;if(!Number.isInteger(d)||d<=0||d===e)continue;let p=l.CommandLine||"";if(jE.some(m=>p.includes(m)))r.push(d),_.debug("SYSTEM","Found orphaned process (aggressive)",{pid:d,commandLine:p.substring(0,80)});else{let m=l.CreationDate?.match(/\/Date\((\d+)\)\//);if(m){let h=parseInt(m[1],10),g=(u-h)/(1e3*60);g>=MM&&(r.push(d),_.debug("SYSTEM","Found orphaned process (age-gated)",{pid:d,ageMinutes:Math.round(g)}))}}}}else{let i=n.join("|"),{stdout:s}=await NM(`ps -eo pid,etime,command | grep -E "${i}" | grep -v grep || true`);if(!s.trim()){_.debug("SYSTEM","No orphaned claude-mem processes found (Unix)");return}let o=s.trim().split(` +`);for(let a of o){let c=a.trim().match(/^(\d+)\s+(\S+)\s+(.*)$/);if(!c)continue;let u=parseInt(c[1],10),l=c[2],d=c[3];if(!Number.isInteger(u)||u<=0||u===e)continue;if(jE.some(f=>d.includes(f)))r.push(u),_.debug("SYSTEM","Found orphaned process (aggressive)",{pid:u,command:d.substring(0,80)});else{let f=iQ(l);f>=MM&&(r.push(u),_.debug("SYSTEM","Found orphaned process (age-gated)",{pid:u,ageMinutes:f,command:d.substring(0,80)}))}}}}catch(i){_.error("SYSTEM","Failed to enumerate orphaned processes during aggressive cleanup",{},i);return}if(r.length!==0){if(_.info("SYSTEM","Aggressive startup cleanup: killing orphaned processes",{platform:t?"Windows":"Unix",count:r.length,pids:r}),t){for(let i of r)if(!(!Number.isInteger(i)||i<=0))try{(0,ks.execSync)(`taskkill /PID ${i} /T /F`,{timeout:Er.POWERSHELL_COMMAND,stdio:"ignore",windowsHide:!0})}catch(s){_.debug("SYSTEM","Failed to kill process, may have already exited",{pid:i},s)}}else for(let i of r)try{process.kill(i,"SIGKILL")}catch(s){_.debug("SYSTEM","Process already exited",{pid:i},s)}_.info("SYSTEM","Aggressive startup cleanup complete",{count:r.length})}}var oQ=".chroma-cleaned-v10.3";function UM(t){let e=t??LE,r=Fi.default.join(e,oQ),n=Fi.default.join(e,"chroma");if((0,Lt.existsSync)(r)){_.debug("SYSTEM","Chroma migration marker exists, skipping wipe");return}_.warn("SYSTEM","Running one-time chroma data wipe (upgrade from pre-v10.3)",{chromaDir:n}),(0,Lt.existsSync)(n)&&((0,Lt.rmSync)(n,{recursive:!0,force:!0}),_.info("SYSTEM","Chroma data directory removed",{chromaDir:n})),(0,Lt.mkdirSync)(e,{recursive:!0}),(0,Lt.writeFileSync)(r,new Date().toISOString()),_.info("SYSTEM","Chroma migration marker written",{markerPath:r})}function FE(t,e,r={}){let n=process.platform==="win32";vt().assertCanSpawn("worker daemon");let i=Ui({...process.env,CLAUDE_MEM_WORKER_PORT:String(e),...r});if(n){let a=nQ();if(!a){_.error("SYSTEM","Failed to locate Bun runtime for Windows worker spawn");return}let c=`Start-Process -FilePath '${a.replace(/'/g,"''")}' -ArgumentList @('${t.replace(/'/g,"''")}','--daemon') -WindowStyle Hidden`,u=Buffer.from(c,"utf16le").toString("base64");try{return(0,ks.execSync)(`powershell -NoProfile -EncodedCommand ${u}`,{stdio:"ignore",windowsHide:!0,env:i}),0}catch(l){_.error("SYSTEM","Failed to spawn worker daemon on Windows",{runtimePath:a},l);return}}let s="/usr/bin/setsid";if((0,Lt.existsSync)(s)){let a=(0,ks.spawn)(s,[process.execPath,t,"--daemon"],{detached:!0,stdio:"ignore",env:i});return a.pid===void 0?void 0:(a.unref(),a.pid)}let o=(0,ks.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",env:i});if(o.pid!==void 0)return o.unref(),o.pid}function FM(t){if(t===0)return!0;if(!Number.isInteger(t)||t<0)return!1;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}function qM(t=15e3){try{let e=(0,Lt.statSync)(qi);return Date.now()-e.mtimeMs{let r=GM.default.createServer();r.once("error",n=>{n.code==="EADDRINUSE"?e(!0):e(!1)}),r.once("listening",()=>{r.close(()=>e(!1))}),r.listen(t,"127.0.0.1")})}async function VM(t,e,r,n){let i=Date.now();for(;Date.now()-isetTimeout(s,500))}return!1}function Yo(t,e=3e4){return VM(t,"/api/health",e,"Service not ready yet, will retry")}function KM(t,e=3e4){return VM(t,"/api/readiness",e,"Worker not ready yet, will retry")}async function og(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function ag(t){try{let e=await qE(t,"/api/admin/shutdown","POST");return e.ok?!0:(_.warn("SYSTEM","Shutdown request returned error",{status:e.statusCode}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(_.debug("SYSTEM","Worker already stopped",{},e),!1):(_.error("SYSTEM","Shutdown request failed unexpectedly",{},e),!1)}}function aQ(){try{let t=BM.default.join(Ss,"package.json");return JSON.parse((0,WM.readFileSync)(t,"utf-8")).version}catch(t){let e=t.code;if(e==="ENOENT"||e==="EBUSY")return _.debug("SYSTEM","Could not read plugin version (shutdown race)",{code:e}),"unknown";throw t}}async function cQ(t){try{let e=await qE(t,"/api/version");return e.ok?JSON.parse(e.body).version:null}catch{return _.debug("SYSTEM","Could not fetch worker version",{}),null}}async function JM(t){let e=aQ(),r=await cQ(t);return!r||e==="unknown"?{matches:!0,pluginVersion:e,workerVersion:r}:{matches:e===r,pluginVersion:e,workerVersion:r}}re();async function XM(t){_.info("SYSTEM","Shutdown initiated"),t.server&&(await uQ(t.server),_.info("SYSTEM","HTTP server closed")),await t.sessionManager.shutdownAll(),t.mcpClient&&(await t.mcpClient.close(),_.info("SYSTEM","MCP client closed")),t.chromaMcpManager&&(_.info("SHUTDOWN","Stopping Chroma MCP connection..."),await t.chromaMcpManager.stop(),_.info("SHUTDOWN","Chroma MCP connection stopped")),t.dbManager&&await t.dbManager.close(),await TM(),_.info("SYSTEM","Worker shutdown complete")}async function uQ(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"))}var l6=Pe(hv(),1),VT=Pe(require("fs"),1),wp=Pe(require("path"),1);var X2=["search","context","summarize","import","export"],Y2=["workflow","search_params","examples","all"];re();var BT=Pe(hv(),1),i6=Pe(n6(),1),s6=Pe(require("path"),1);zt();re();function GT(t){let e=[];e.push(BT.default.json({limit:"50mb"})),e.push((0,i6.default)({origin:(i,s)=>{!i||i.startsWith("http://localhost:")||i.startsWith("http://127.0.0.1:")?s(null,!0):s(new Error("CORS not allowed"))},methods:["GET","HEAD","POST","PUT","PATCH","DELETE"],allowedHeaders:["Content-Type","Authorization","X-Requested-With"],credentials:!1})),e.push((i,s,o)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(m=>i.path.endsWith(m)),u=i.path==="/api/logs";if(i.path.startsWith("/health")||i.path==="/"||c||u)return o();let l=Date.now(),d=`${i.method}-${Date.now()}`,p=t(i.method,i.path,i.body);_.debug("HTTP",`\u2192 ${i.method} ${i.path}`,{requestId:d},p);let f=s.send.bind(s);s.send=function(m){let h=Date.now()-l;return _.debug("HTTP",`\u2190 ${s.statusCode} ${i.path}`,{requestId:d,duration:`${h}ms`}),f(m)},o()});let r=dn(),n=s6.default.join(r,"plugin","ui");return e.push(BT.default.static(n)),e}function xp(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 WT(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",i=r.tool_input;return`tool=${_.formatTool(n,i)}`}return e.includes("/summarize")?"requesting summary":""}re();var iu=class extends Error{constructor(r,n=500,i,s){super(r);this.statusCode=n;this.code=i;this.details=s;this.name="AppError"}};function o6(t,e,r,n){let i={error:t,message:e};return r&&(i.code=r),n&&(i.details=n),i}var a6=(t,e,r,n)=>{let i=t instanceof iu?t.statusCode:500;_.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:i,error:t.message,code:t instanceof iu?t.code:void 0},t);let s=o6(t.name||"Error",t.message,t instanceof iu?t.code:void 0,t instanceof iu?t.details:void 0);r.status(i).json(s)};function c6(t,e){e.status(404).json(o6("NotFound",`Cannot ${t.method} ${t.path}`))}var u6="11.0.0",gv=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,l6.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,i)=>{this.server=this.app.listen(e,r,()=>{_.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",i)})}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(c6),this.app.use(a6)}setupMiddleware(){GT(WT).forEach(r=>this.app.use(r))}setupCoreRoutes(){this.app.get("/api/health",(e,r)=>{r.status(200).json({status:"ok",version:u6,workerPath:this.options.workerPath,uptime:Date.now()-this.startTime,managed:process.env.CLAUDE_MEM_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),mcpReady:this.options.getMcpReady(),ai:this.options.getAiStatus()})}),this.app.get("/api/readiness",(e,r)=>{this.options.getInitializationComplete()?r.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):r.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(e,r)=>{r.status(200).json({version:u6})}),this.app.get("/api/instructions",async(e,r)=>{let n=e.query.topic||"all",i=e.query.operation;if(n&&!Y2.includes(n))return r.status(400).json({error:"Invalid topic"});try{let s;if(i){if(!X2.includes(i))return r.status(400).json({error:"Invalid operation"});let o=wp.default.resolve(__dirname,"../skills/mem-search/operations"),a=wp.default.resolve(o,`${i}.md`);if(!a.startsWith(o+wp.default.sep))return r.status(400).json({error:"Invalid request"});s=await VT.promises.readFile(a,"utf-8")}else{let o=wp.default.join(__dirname,"../skills/mem-search/SKILL.md"),a=await VT.promises.readFile(o,"utf-8");s=this.extractInstructionSection(a,n)}r.json({content:[{type:"text",text:s}]})}catch{r.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",xp,async(e,r)=>{r.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{try{await this.options.onRestart()}finally{process.exit(0)}},100)}),this.app.post("/api/admin/shutdown",xp,async(e,r)=>{r.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{try{await this.options.onShutdown()}finally{process.exit(0)}},100)}),this.app.get("/api/admin/doctor",xp,(e,r)=>{let o=vt().getRegistry().getAll().map(m=>({id:m.id,pid:m.pid,type:m.type,status:$n(m.pid)?"alive":"dead",startedAt:m.startedAt})),a=o.filter(m=>m.status==="dead").map(m=>m.pid),c=!Object.keys(process.env).some(m=>TE.has(m)||kE.some(h=>m.startsWith(h))),u=Date.now()-this.startTime,l=Math.floor(u/1e3),d=Math.floor(l/3600),p=Math.floor(l%3600/60),f=d>0?`${d}h ${p}m`:`${p}m`;r.json({supervisor:{running:!0,pid:process.pid,uptime:f},processes:o,health:{deadProcessPids:a,envClean:c}})})}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 i=e.indexOf(r),s=e.indexOf(n);return i===-1?e:s===-1?e.substring(i):e.substring(i,s).trim()}};var It=Pe(require("path"),1),kp=require("os"),Kt=require("fs"),f6=require("child_process"),m6=require("util");re();Dr();zt();var Vn=require("fs"),Ep=require("path");re();function d6(t){try{return(0,Vn.existsSync)(t)?JSON.parse((0,Vn.readFileSync)(t,"utf-8")):{}}catch(e){return _.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function p6(t,e){let r=(0,Ep.join)(t,"..");(0,Vn.mkdirSync)(r,{recursive:!0}),(0,Vn.writeFileSync)(t,JSON.stringify(e,null,2))}function KT(t,e){let r=(0,Ep.join)(t,".cursor","rules"),n=(0,Ep.join)(r,"claude-mem-context.mdc"),i=`${n}.tmp`;(0,Vn.mkdirSync)(r,{recursive:!0});let s=`--- alwaysApply: true description: "Claude-mem context from past sessions (auto-updated)" --- @@ -935,9 +938,9 @@ ${e} --- *Updated after last session. Use claude-mem's MCP search tools for more detailed queries.* -`;(0,Dn.writeFileSync)(i,s),(0,Dn.renameSync)(i,n)}var u1e=(0,dU.promisify)(lU.exec),pU=yt.default.join(ar,"cursor-projects.json");function ck(){return cU(pU)}function mU(t){uU(pU,t)}function Jse(t,e){let r=ck();r[t]={workspacePath:e,installedAt:new Date().toISOString()},mU(r),y.info("CURSOR","Registered project for auto-context updates",{projectName:t,workspacePath:e})}function Xse(t){let e=ck();e[t]&&(delete e[t],mU(e),y.info("CURSOR","Unregistered project",{projectName:t}))}async function fU(t,e){let n=ck()[t];if(n)try{let i=await wt(`/api/context/inject?project=${encodeURIComponent(t)}`);if(!i.ok)return;let s=await i.text();if(!s||!s.trim())return;ak(n.workspacePath,s),y.debug("CURSOR","Updated context file",{projectName:t,workspacePath:n.workspacePath})}catch(i){y.error("CURSOR","Failed to update context file",{projectName:t},i)}}function Yse(){let t=[yt.default.join(Ki,"plugin","scripts","worker-service.cjs"),yt.default.join(yt.default.dirname(__filename),"worker-service.cjs"),yt.default.join(process.cwd(),"plugin","scripts","worker-service.cjs")];for(let e of t)if((0,Kt.existsSync)(e))return e;return null}function Qse(){let t=[yt.default.join((0,Nd.homedir)(),".bun","bin","bun"),"/usr/local/bin/bun","/usr/bin/bun",...process.platform==="win32"?[yt.default.join((0,Nd.homedir)(),".bun","bin","bun.exe"),yt.default.join(process.env.LOCALAPPDATA||"","bun","bun.exe")]:[]];for(let e of t)if(e&&(0,Kt.existsSync)(e))return e;return"bun"}function hU(t){switch(t){case"project":return yt.default.join(process.cwd(),".cursor");case"user":return yt.default.join((0,Nd.homedir)(),".cursor");case"enterprise":return process.platform==="darwin"?"/Library/Application Support/Cursor":process.platform==="linux"?"/etc/cursor":process.platform==="win32"?yt.default.join(process.env.ProgramData||"C:\\ProgramData","Cursor"):null;default:return null}}async function eoe(t){console.log(` +`;(0,Vn.writeFileSync)(i,s),(0,Vn.renameSync)(i,n)}var QNe=(0,m6.promisify)(f6.exec),h6=It.default.join(ur,"cursor-projects.json");function JT(){return d6(h6)}function g6(t){p6(h6,t)}function uue(t,e){let r=JT();r[t]={workspacePath:e,installedAt:new Date().toISOString()},g6(r),_.info("CURSOR","Registered project for auto-context updates",{projectName:t,workspacePath:e})}function lue(t){let e=JT();e[t]&&(delete e[t],g6(e),_.info("CURSOR","Unregistered project",{projectName:t}))}async function v6(t,e){let n=JT()[t];if(n)try{let i=await dt(`/api/context/inject?project=${encodeURIComponent(t)}`);if(!i.ok)return;let s=await i.text();if(!s||!s.trim())return;KT(n.workspacePath,s),_.debug("CURSOR","Updated context file",{projectName:t,workspacePath:n.workspacePath})}catch(i){_.error("CURSOR","Failed to update context file",{projectName:t},i)}}function XT(){let t=[It.default.join(Ss,"plugin","scripts","worker-service.cjs"),It.default.join(process.cwd(),"plugin","scripts","worker-service.cjs")];for(let e of t)if((0,Kt.existsSync)(e))return e;return null}function YT(){let t=[It.default.join((0,kp.homedir)(),".bun","bin","bun"),"/usr/local/bin/bun","/usr/bin/bun",...process.platform==="win32"?[It.default.join((0,kp.homedir)(),".bun","bin","bun.exe"),It.default.join(process.env.LOCALAPPDATA||"","bun","bun.exe")]:[]];for(let e of t)if(e&&(0,Kt.existsSync)(e))return e;return"bun"}function y6(t){switch(t){case"project":return It.default.join(process.cwd(),".cursor");case"user":return It.default.join((0,kp.homedir)(),".cursor");case"enterprise":return process.platform==="darwin"?"/Library/Application Support/Cursor":process.platform==="linux"?"/etc/cursor":process.platform==="win32"?It.default.join(process.env.ProgramData||"C:\\ProgramData","Cursor"):null;default:return null}}async function due(t){console.log(` Installing Claude-Mem Cursor hooks (${t} level)... -`);let e=hU(t);if(!e)return console.error(`Invalid target: ${t}. Use: project, user, or enterprise`),1;let r=Yse();if(!r)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let n=process.cwd();try{(0,Kt.mkdirSync)(e,{recursive:!0});let i=yt.default.join(e,"hooks.json"),s=Qse(),o=s.replace(/\\/g,"\\\\"),a=r.replace(/\\/g,"\\\\"),c=l=>`"${o}" "${a}" hook cursor ${l}`;console.log(` Using Bun runtime: ${s}`);let u={version:1,hooks:{beforeSubmitPrompt:[{command:c("session-init")},{command:c("context")}],afterMCPExecution:[{command:c("observation")}],afterShellExecution:[{command:c("observation")}],afterFileEdit:[{command:c("file-edit")}],stop:[{command:c("summarize")}]}};return(0,Kt.writeFileSync)(i,JSON.stringify(u,null,2)),console.log(" Created hooks.json (unified CLI mode)"),console.log(` Worker service: ${r}`),t==="project"&&await toe(e,n),console.log(` +`);let e=y6(t);if(!e)return console.error(`Invalid target: ${t}. Use: project, user, or enterprise`),1;let r=XT();if(!r)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let n=process.cwd();try{(0,Kt.mkdirSync)(e,{recursive:!0});let i=It.default.join(e,"hooks.json"),s=YT(),o=s.replace(/\\/g,"\\\\"),a=r.replace(/\\/g,"\\\\"),c=l=>`"${o}" "${a}" hook cursor ${l}`;console.log(` Using Bun runtime: ${s}`);let u={version:1,hooks:{beforeSubmitPrompt:[{command:c("session-init")},{command:c("context")}],afterMCPExecution:[{command:c("observation")}],afterShellExecution:[{command:c("observation")}],afterFileEdit:[{command:c("file-edit")}],stop:[{command:c("summarize")}]}};return(0,Kt.writeFileSync)(i,JSON.stringify(u,null,2)),console.log(" Created hooks.json (unified CLI mode)"),console.log(` Worker service: ${r}`),t==="project"&&await pue(e,n),console.log(` Installation complete! Hooks installed to: ${e}/hooks.json @@ -952,7 +955,7 @@ Context Injection: Context from past sessions is stored in .cursor/rules/claude-mem-context.mdc and automatically included in every chat. It updates after each session ends. `),0}catch(i){return console.error(` -Installation failed: ${i.message}`),t==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}async function toe(t,e){let r=yt.default.join(t,"rules");(0,Kt.mkdirSync)(r,{recursive:!0});let n=yt.default.basename(e),i=!1;console.log(" Generating initial context...");try{if((await wt("/api/readiness")).ok){let o=await wt(`/api/context/inject?project=${encodeURIComponent(n)}`);if(o.ok){let a=await o.text();a&&a.trim()&&(ak(e,a),i=!0,console.log(" Generated initial context from existing memory"))}}}catch(s){y.debug("CURSOR","Worker not running during install",{},s)}if(!i){let s=yt.default.join(r,"claude-mem-context.mdc");(0,Kt.writeFileSync)(s,`--- +Installation failed: ${i.message}`),t==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}async function pue(t,e){let r=It.default.join(t,"rules");(0,Kt.mkdirSync)(r,{recursive:!0});let n=It.default.basename(e),i=!1;console.log(" Generating initial context...");try{if((await dt("/api/readiness")).ok){let o=await dt(`/api/context/inject?project=${encodeURIComponent(n)}`);if(o.ok){let a=await o.text();a&&a.trim()&&(KT(e,a),i=!0,console.log(" Generated initial context from existing memory"))}}}catch(s){_.debug("CURSOR","Worker not running during install",{},s)}if(!i){let s=It.default.join(r,"claude-mem-context.mdc");(0,Kt.writeFileSync)(s,`--- alwaysApply: true description: "Claude-mem context from past sessions (auto-updated)" --- @@ -962,15 +965,15 @@ description: "Claude-mem context from past sessions (auto-updated)" *No context yet. Complete your first session and context will appear here.* Use claude-mem's MCP search tools for manual memory queries. -`),console.log(" Created placeholder context file (will populate after first session)")}Jse(n,e),console.log(" Registered for auto-context updates")}function roe(t){console.log(` +`),console.log(" Created placeholder context file (will populate after first session)")}uue(n,e),console.log(" Registered for auto-context updates")}function fue(t){console.log(` Uninstalling Claude-Mem Cursor hooks (${t} level)... -`);let e=hU(t);if(!e)return console.error(`Invalid target: ${t}`),1;try{let r=yt.default.join(e,"hooks"),n=yt.default.join(e,"hooks.json"),i=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],s=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],o=[...i,...s];for(let a of o){let c=yt.default.join(r,a);(0,Kt.existsSync)(c)&&((0,Kt.unlinkSync)(c),console.log(` Removed legacy script: ${a}`))}if((0,Kt.existsSync)(n)&&((0,Kt.unlinkSync)(n),console.log(" Removed hooks.json")),t==="project"){let a=yt.default.join(e,"rules","claude-mem-context.mdc");(0,Kt.existsSync)(a)&&((0,Kt.unlinkSync)(a),console.log(" Removed context file"));let c=yt.default.basename(process.cwd());Xse(c),console.log(" Unregistered from auto-context updates")}return console.log(` +`);let e=y6(t);if(!e)return console.error(`Invalid target: ${t}`),1;try{let r=It.default.join(e,"hooks"),n=It.default.join(e,"hooks.json"),i=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],s=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],o=[...i,...s];for(let a of o){let c=It.default.join(r,a);(0,Kt.existsSync)(c)&&((0,Kt.unlinkSync)(c),console.log(` Removed legacy script: ${a}`))}if((0,Kt.existsSync)(n)&&((0,Kt.unlinkSync)(n),console.log(" Removed hooks.json")),t==="project"){let a=It.default.join(e,"rules","claude-mem-context.mdc");(0,Kt.existsSync)(a)&&((0,Kt.unlinkSync)(a),console.log(" Removed context file"));let c=It.default.basename(process.cwd());lue(c),console.log(" Unregistered from auto-context updates")}return console.log(` Uninstallation complete! `),console.log("Restart Cursor to apply changes."),0}catch(r){return console.error(` -Uninstallation failed: ${r.message}`),1}}function noe(){console.log(` +Uninstallation failed: ${r.message}`),1}}function mue(){console.log(` Claude-Mem Cursor Hooks Status -`);let t=[{name:"Project",dir:yt.default.join(process.cwd(),".cursor")},{name:"User",dir:yt.default.join((0,Nd.homedir)(),".cursor")}];process.platform==="darwin"?t.push({name:"Enterprise",dir:"/Library/Application Support/Cursor"}):process.platform==="linux"&&t.push({name:"Enterprise",dir:"/etc/cursor"});let e=!1;for(let r of t){let n=yt.default.join(r.dir,"hooks.json"),i=yt.default.join(r.dir,"hooks");if((0,Kt.existsSync)(n)){e=!0,console.log(`${r.name}: Installed`),console.log(` Config: ${n}`);try{let o=JSON.parse((0,Kt.readFileSync)(n,"utf-8"))?.hooks?.beforeSubmitPrompt?.[0]?.command||"";if(o.includes("worker-service.cjs")&&o.includes("hook cursor"))console.log(" Mode: Unified CLI (bun worker-service.cjs)");else{let a=["session-init.sh","context-inject.sh","save-observation.sh"],c=["session-init.ps1","context-inject.ps1","save-observation.ps1"],u=a.some(d=>(0,Kt.existsSync)(yt.default.join(i,d))),l=c.some(d=>(0,Kt.existsSync)(yt.default.join(i,d)));u||l?(console.log(" Mode: Legacy shell scripts (consider reinstalling for unified CLI)"),u&&l?console.log(" Platform: Both (bash + PowerShell)"):u?console.log(" Platform: Unix (bash)"):l&&console.log(" Platform: Windows (PowerShell)")):console.log(" Mode: Unknown configuration")}}catch{console.log(" Mode: Unable to parse hooks.json")}if(r.name==="Project"){let s=yt.default.join(r.dir,"rules","claude-mem-context.mdc");(0,Kt.existsSync)(s)?console.log(" Context: Active"):console.log(" Context: Not yet generated (will be created on first prompt)")}}else console.log(`${r.name}: Not installed`);console.log("")}return e||console.log(`No hooks installed. Run: claude-mem cursor install -`),0}async function gU(t,e){switch(t){case"install":{let r=e[0]||"project";return eoe(r)}case"uninstall":{let r=e[0]||"project";return roe(r)}case"status":return noe();case"setup":return console.log("Use the main entry point for setup"),0;default:return console.log(` +`);let t=[{name:"Project",dir:It.default.join(process.cwd(),".cursor")},{name:"User",dir:It.default.join((0,kp.homedir)(),".cursor")}];process.platform==="darwin"?t.push({name:"Enterprise",dir:"/Library/Application Support/Cursor"}):process.platform==="linux"&&t.push({name:"Enterprise",dir:"/etc/cursor"});let e=!1;for(let r of t){let n=It.default.join(r.dir,"hooks.json"),i=It.default.join(r.dir,"hooks");if((0,Kt.existsSync)(n)){e=!0,console.log(`${r.name}: Installed`),console.log(` Config: ${n}`);try{let o=JSON.parse((0,Kt.readFileSync)(n,"utf-8"))?.hooks?.beforeSubmitPrompt?.[0]?.command||"";if(o.includes("worker-service.cjs")&&o.includes("hook cursor"))console.log(" Mode: Unified CLI (bun worker-service.cjs)");else{let a=["session-init.sh","context-inject.sh","save-observation.sh"],c=["session-init.ps1","context-inject.ps1","save-observation.ps1"],u=a.some(d=>(0,Kt.existsSync)(It.default.join(i,d))),l=c.some(d=>(0,Kt.existsSync)(It.default.join(i,d)));u||l?(console.log(" Mode: Legacy shell scripts (consider reinstalling for unified CLI)"),u&&l?console.log(" Platform: Both (bash + PowerShell)"):u?console.log(" Platform: Unix (bash)"):l&&console.log(" Platform: Windows (PowerShell)")):console.log(" Mode: Unknown configuration")}}catch{console.log(" Mode: Unable to parse hooks.json")}if(r.name==="Project"){let s=It.default.join(r.dir,"rules","claude-mem-context.mdc");(0,Kt.existsSync)(s)?console.log(" Context: Active"):console.log(" Context: Not yet generated (will be created on first prompt)")}}else console.log(`${r.name}: Not installed`);console.log("")}return e||console.log(`No hooks installed. Run: claude-mem cursor install +`),0}async function _6(t,e){switch(t){case"install":{let r=e[0]||"project";return due(r)}case"uninstall":{let r=e[0]||"project";return fue(r)}case"status":return mue();case"setup":return console.log("Use the main entry point for setup"),0;default:return console.log(` Claude-Mem Cursor Integration Usage: claude-mem cursor [options] @@ -994,7 +997,64 @@ Examples: claude-mem cursor status # Check if hooks are installed For more info: https://docs.claude-mem.ai/cursor - `),0}}Zf();var yU=require("bun:sqlite");Nt();oe();uk();var ng=class{db;constructor(e){e||(Ir(ar),e=Hl),this.db=new yU.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){if(!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")){if(!this.isFts5Available()){y.warn("DB","FTS5 not available on this platform \u2014 skipping FTS table creation (search uses ChromaDB)");return}y.info("DB","Creating FTS5 tables");try{this.db.run(` + `),0}}var vv=Pe(require("path"),1),b6=require("os"),ir=require("fs");var yv=vv.default.join((0,b6.homedir)(),".gemini"),gi=vv.default.join(yv,"settings.json"),hi=vv.default.join(yv,"GEMINI.md"),Tp="claude-mem",hue=1e4,su={SessionStart:"context",BeforeAgent:"user-message",AfterAgent:"observation",BeforeTool:"observation",AfterTool:"observation",PreCompress:"summarize",Notification:"observation",SessionEnd:"session-complete"};function gue(t,e,r){let n=su[r];if(!n)throw new Error(`Unknown Gemini CLI event: ${r}`);let i=t.replace(/\\/g,"\\\\"),s=e.replace(/\\/g,"\\\\");return`"${i}" "${s}" hook gemini-cli ${n}`}function vue(t){return{matcher:"*",hooks:[{name:Tp,type:"command",command:t,timeout:hue}]}}function QT(){if(!(0,ir.existsSync)(gi))return{};let t=(0,ir.readFileSync)(gi,"utf-8");try{return JSON.parse(t)}catch{throw new Error(`Corrupt JSON in ${gi}, refusing to overwrite user settings`)}}function S6(t){(0,ir.mkdirSync)(yv,{recursive:!0}),(0,ir.writeFileSync)(gi,JSON.stringify(t,null,2)+` +`)}function yue(t,e){let r={...t};r.hooks||(r.hooks={});for(let[n,i]of Object.entries(e)){let s=r.hooks[n]??[];for(let o of i){let a=s.findIndex(c=>c.hooks.some(u=>u.name===Tp));if(a>=0){let c=s[a],u=c.hooks.findIndex(l=>l.name===Tp);u>=0?c.hooks[u]=o.hooks[0]:c.hooks.push(o.hooks[0])}else s.push(o)}r.hooks[n]=s}return r}function _ue(){let t="",r=`${t} +# Memory Context from Past Sessions + +*No context yet. Complete your first session and context will appear here.* +`,n="";if((0,ir.existsSync)(hi)&&(n=(0,ir.readFileSync)(hi,"utf-8")),n.includes(t))return;let i=n.length>0&&!n.endsWith(` +`)?` + +`:n.length>0?` +`:"",s=n+i+r+` +`;(0,ir.mkdirSync)(yv,{recursive:!0}),(0,ir.writeFileSync)(hi,s)}async function bue(){console.log(` +Installing Claude-Mem Gemini CLI hooks... +`);let t=XT();if(!t)return console.error("Could not find worker-service.cjs"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs"),1;let e=YT();console.log(` Using Bun runtime: ${e}`),console.log(` Worker service: ${t}`);try{let r={};for(let o of Object.keys(su)){let a=gue(e,t,o);r[o]=[vue(a)]}let n=QT(),i=yue(n,r);S6(i),console.log(` Merged hooks into ${gi}`),_ue(),console.log(` Setup context injection in ${hi}`);let s=Object.keys(su);console.log(` Registered ${s.length} hook events:`);for(let o of s){let a=su[o];console.log(` ${o} \u2192 ${a}`)}return console.log(` +Installation complete! + +Hooks installed to: ${gi} +Using unified CLI: bun worker-service.cjs hook gemini-cli + +Next steps: + 1. Start claude-mem worker: claude-mem start + 2. Restart Gemini CLI to load the hooks + 3. Memory will be captured automatically during sessions + +Context Injection: + Context from past sessions is injected via ~/.gemini/GEMINI.md + and automatically included in Gemini CLI conversations. +`),0}catch(r){return console.error(` +Installation failed: ${r.message}`),1}}function Sue(){console.log(` +Uninstalling Claude-Mem Gemini CLI hooks... +`);try{if(!(0,ir.existsSync)(gi))return console.log(" No Gemini CLI settings found \u2014 nothing to uninstall."),0;let t=QT();if(!t.hooks)return console.log(" No hooks found in Gemini CLI settings \u2014 nothing to uninstall."),0;let e=0;for(let[r,n]of Object.entries(t.hooks)){let i=n.map(s=>{let o=s.hooks.filter(a=>a.name!==Tp);return e+=s.hooks.length-o.length,{...s,hooks:o}}).filter(s=>s.hooks.length>0);i.length>0?t.hooks[r]=i:delete t.hooks[r]}if(Object.keys(t.hooks).length===0&&delete t.hooks,S6(t),console.log(` Removed ${e} claude-mem hook(s) from ${gi}`),(0,ir.existsSync)(hi)){let r=(0,ir.readFileSync)(hi,"utf-8"),n=/\n?[\s\S]*?<\/claude-mem-context>\n?/;n.test(r)&&(r=r.replace(n,""),(0,ir.writeFileSync)(hi,r),console.log(` Removed context section from ${hi}`))}return console.log(` +Uninstallation complete! +`),console.log("Restart Gemini CLI to apply changes."),0}catch(t){return console.error(` +Uninstallation failed: ${t.message}`),1}}function xue(){if(console.log(` +Claude-Mem Gemini CLI Hooks Status +`),!(0,ir.existsSync)(gi))return console.log("Gemini CLI settings: Not found"),console.log(` Expected at: ${gi} +`),console.log(`No hooks installed. Run: claude-mem install --ide gemini-cli +`),0;let t;try{t=QT()}catch(r){return console.log(`Gemini CLI settings: ${r.message} +`),0}if(!t.hooks)return console.log(`Gemini CLI settings: Found, but no hooks configured +`),console.log(`No hooks installed. Run: claude-mem install --ide gemini-cli +`),0;let e=[];for(let[r,n]of Object.entries(t.hooks))n.some(s=>s.hooks.some(o=>o.name===Tp))&&e.push(r);if(e.length===0)return console.log(`Gemini CLI settings: Found, but no claude-mem hooks +`),console.log(`Run: claude-mem install --ide gemini-cli +`),0;console.log(`Settings: ${gi}`),console.log("Mode: Unified CLI (bun worker-service.cjs hook gemini-cli)"),console.log(`Events: ${e.length} of ${Object.keys(su).length} mapped`);for(let r of e){let n=su[r]??"unknown";console.log(` ${r} \u2192 ${n}`)}return(0,ir.existsSync)(hi)?(0,ir.readFileSync)(hi,"utf-8").includes("")?console.log(`Context: Active (${hi})`):console.log("Context: GEMINI.md exists but missing claude-mem section"):console.log("Context: No GEMINI.md found"),console.log(""),0}async function x6(t,e){switch(t){case"install":return bue();case"uninstall":return Sue();case"status":return xue();default:return console.log(` +Claude-Mem Gemini CLI Integration + +Usage: claude-mem gemini-cli + +Commands: + install Install hooks into ~/.gemini/settings.json + uninstall Remove claude-mem hooks (preserves other hooks) + status Check installation status + +Examples: + claude-mem gemini-cli install # Install hooks + claude-mem gemini-cli status # Check if installed + claude-mem gemini-cli uninstall # Remove hooks + +For more info: https://docs.claude-mem.ai/usage/gemini-provider + `),0}}ng();var E6=require("bun:sqlite");zt();re();e$();var _v=class{db;constructor(e){e||(Mr(ur),e=Dd),this.db=new E6.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){if(!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")){if(!this.isFts5Available()){_.warn("DB","FTS5 not available on this platform \u2014 skipping FTS table creation (search uses ChromaDB)");return}_.info("DB","Creating FTS5 tables");try{this.db.run(` CREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5( title, subtitle, @@ -1058,7 +1118,7 @@ For more info: https://docs.claude-mem.ai/cursor INSERT INTO session_summaries_fts(rowid, request, investigated, learned, completed, next_steps, notes) VALUES (new.id, new.request, new.investigated, new.learned, new.completed, new.next_steps, new.notes); END; - `),y.info("DB","FTS5 tables created successfully")}catch(n){y.warn("DB","FTS5 table creation failed \u2014 search will use ChromaDB and LIKE queries",{},n)}}}isFts5Available(){try{return this.db.run("CREATE VIRTUAL TABLE _fts5_probe USING fts5(test_column)"),this.db.run("DROP TABLE _fts5_probe"),!0}catch{return!1}}buildFilterClause(e,r,n="o"){let i=[];if(e.project&&(i.push(`${n}.project = ?`),r.push(e.project)),e.type)if(Array.isArray(e.type)){let s=e.type.map(()=>"?").join(",");i.push(`${n}.type IN (${s})`),r.push(...e.type)}else i.push(`${n}.type = ?`),r.push(e.type);if(e.dateRange){let{start:s,end:o}=e.dateRange;if(s){let a=typeof s=="number"?s:new Date(s).getTime();i.push(`${n}.created_at_epoch >= ?`),r.push(a)}if(o){let a=typeof o=="number"?o:new Date(o).getTime();i.push(`${n}.created_at_epoch <= ?`),r.push(a)}}if(e.concepts){let s=Array.isArray(e.concepts)?e.concepts:[e.concepts],o=s.map(()=>`EXISTS (SELECT 1 FROM json_each(${n}.concepts) WHERE value = ?)`);o.length>0&&(i.push(`(${o.join(" OR ")})`),r.push(...s))}if(e.files){let s=Array.isArray(e.files)?e.files:[e.files],o=s.map(()=>`( + `),_.info("DB","FTS5 tables created successfully")}catch(n){_.warn("DB","FTS5 table creation failed \u2014 search will use ChromaDB and LIKE queries",{},n)}}}isFts5Available(){try{return this.db.run("CREATE VIRTUAL TABLE _fts5_probe USING fts5(test_column)"),this.db.run("DROP TABLE _fts5_probe"),!0}catch{return!1}}buildFilterClause(e,r,n="o"){let i=[];if(e.project&&(i.push(`${n}.project = ?`),r.push(e.project)),e.type)if(Array.isArray(e.type)){let s=e.type.map(()=>"?").join(",");i.push(`${n}.type IN (${s})`),r.push(...e.type)}else i.push(`${n}.type = ?`),r.push(e.type);if(e.dateRange){let{start:s,end:o}=e.dateRange;if(s){let a=typeof s=="number"?s:new Date(s).getTime();i.push(`${n}.created_at_epoch >= ?`),r.push(a)}if(o){let a=typeof o=="number"?o:new Date(o).getTime();i.push(`${n}.created_at_epoch <= ?`),r.push(a)}}if(e.concepts){let s=Array.isArray(e.concepts)?e.concepts:[e.concepts],o=s.map(()=>`EXISTS (SELECT 1 FROM json_each(${n}.concepts) WHERE value = ?)`);o.length>0&&(i.push(`(${o.join(" OR ")})`),r.push(...s))}if(e.files){let s=Array.isArray(e.files)?e.files:[e.files],o=s.map(()=>`( EXISTS (SELECT 1 FROM json_each(${n}.files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(${n}.files_modified) WHERE value LIKE ?) )`);o.length>0&&(i.push(`(${o.join(" OR ")})`),s.forEach(a=>{r.push(`%${a}%`,`%${a}%`)}))}return i.length>0?i.join(" AND "):""}buildOrderClause(e="relevance",r=!0,n="observations_fts"){switch(e){case"relevance":return r?`ORDER BY ${n}.rank ASC`:"ORDER BY o.created_at_epoch DESC";case"date_desc":return"ORDER BY o.created_at_epoch DESC";case"date_asc":return"ORDER BY o.created_at_epoch ASC";default:return"ORDER BY o.created_at_epoch DESC"}}searchObservations(e,r={}){let n=[],{limit:i=50,offset:s=0,orderBy:o="relevance",...a}=r;if(!e){let c=this.buildFilterClause(a,n,"o");if(!c)throw new Error("Either query or filters required for search");let u=this.buildOrderClause(o,!1),l=` @@ -1067,34 +1127,34 @@ For more info: https://docs.claude-mem.ai/cursor WHERE ${c} ${u} LIMIT ? OFFSET ? - `;return n.push(i,s),this.db.prepare(l).all(...n)}return y.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}searchSessions(e,r={}){let n=[],{limit:i=50,offset:s=0,orderBy:o="relevance",...a}=r;if(!e){let c={...a};delete c.type;let u=this.buildFilterClause(c,n,"s");if(!u)throw new Error("Either query or filters required for search");let d=` + `;return n.push(i,s),this.db.prepare(l).all(...n)}return _.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}searchSessions(e,r={}){let n=[],{limit:i=50,offset:s=0,orderBy:o="relevance",...a}=r;if(!e){let c={...a};delete c.type;let u=this.buildFilterClause(c,n,"s");if(!u)throw new Error("Either query or filters required for search");let d=` SELECT s.*, s.discovery_tokens FROM session_summaries s WHERE ${u} ${o==="date_asc"?"ORDER BY s.created_at_epoch ASC":"ORDER BY s.created_at_epoch DESC"} LIMIT ? OFFSET ? - `;return n.push(i,s),this.db.prepare(d).all(...n)}return y.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}findByConcept(e,r={}){let n=[],{limit:i=50,offset:s=0,orderBy:o="date_desc",...a}=r,c={...a,concepts:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` + `;return n.push(i,s),this.db.prepare(d).all(...n)}return _.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}findByConcept(e,r={}){let n=[],{limit:i=50,offset:s=0,orderBy:o="date_desc",...a}=r,c={...a,concepts:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${u} ${l} LIMIT ? OFFSET ? - `;return n.push(i,s),this.db.prepare(d).all(...n)}hasDirectChildFile(e,r){let n=i=>{if(!i)return!1;try{let s=JSON.parse(i);if(Array.isArray(s))return s.some(o=>Do(o,r))}catch{}return!1};return n(e.files_modified)||n(e.files_read)}hasDirectChildFileSession(e,r){let n=i=>{if(!i)return!1;try{let s=JSON.parse(i);if(Array.isArray(s))return s.some(o=>Do(o,r))}catch{}return!1};return n(e.files_read)||n(e.files_edited)}findByFile(e,r={}){let n=[],{limit:i=50,offset:s=0,orderBy:o="date_desc",isFolder:a=!1,...c}=r,u=a?i*3:i,l={...c,files:e},d=this.buildFilterClause(l,n,"o"),p=this.buildOrderClause(o,!1),m=` + `;return n.push(i,s),this.db.prepare(d).all(...n)}hasDirectChildFile(e,r){let n=i=>{if(!i)return!1;try{let s=JSON.parse(i);if(Array.isArray(s))return s.some(o=>ma(o,r))}catch{}return!1};return n(e.files_modified)||n(e.files_read)}hasDirectChildFileSession(e,r){let n=i=>{if(!i)return!1;try{let s=JSON.parse(i);if(Array.isArray(s))return s.some(o=>ma(o,r))}catch{}return!1};return n(e.files_read)||n(e.files_edited)}findByFile(e,r={}){let n=[],{limit:i=50,offset:s=0,orderBy:o="date_desc",isFolder:a=!1,...c}=r,u=a?i*3:i,l={...c,files:e},d=this.buildFilterClause(l,n,"o"),p=this.buildOrderClause(o,!1),f=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${d} ${p} LIMIT ? OFFSET ? - `;n.push(u,s);let f=this.db.prepare(m).all(...n);a&&(f=f.filter(_=>this.hasDirectChildFile(_,e)).slice(0,i));let g=[],h={...c};delete h.type;let v=[];if(h.project&&(v.push("s.project = ?"),g.push(h.project)),h.dateRange){let{start:_,end:S}=h.dateRange;if(_){let w=typeof _=="number"?_:new Date(_).getTime();v.push("s.created_at_epoch >= ?"),g.push(w)}if(S){let w=typeof S=="number"?S:new Date(S).getTime();v.push("s.created_at_epoch <= ?"),g.push(w)}}v.push(`( + `;n.push(u,s);let m=this.db.prepare(f).all(...n);a&&(m=m.filter(y=>this.hasDirectChildFile(y,e)).slice(0,i));let h=[],g={...c};delete g.type;let v=[];if(g.project&&(v.push("s.project = ?"),h.push(g.project)),g.dateRange){let{start:y,end:x}=g.dateRange;if(y){let w=typeof y=="number"?y:new Date(y).getTime();v.push("s.created_at_epoch >= ?"),h.push(w)}if(x){let w=typeof x=="number"?x:new Date(x).getTime();v.push("s.created_at_epoch <= ?"),h.push(w)}}v.push(`( EXISTS (SELECT 1 FROM json_each(s.files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(s.files_edited) WHERE value LIKE ?) - )`),g.push(`%${e}%`,`%${e}%`);let x=` + )`),h.push(`%${e}%`,`%${e}%`);let S=` SELECT s.*, s.discovery_tokens FROM session_summaries s WHERE ${v.join(" AND ")} ORDER BY s.created_at_epoch DESC LIMIT ? OFFSET ? - `;g.push(u,s);let b=this.db.prepare(x).all(...g);return a&&(b=b.filter(_=>this.hasDirectChildFileSession(_,e)).slice(0,i)),{observations:f,sessions:b}}findByType(e,r={}){let n=[],{limit:i=50,offset:s=0,orderBy:o="date_desc",...a}=r,c={...a,type:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` + `;h.push(u,s);let b=this.db.prepare(S).all(...h);return a&&(b=b.filter(y=>this.hasDirectChildFileSession(y,e)).slice(0,i)),{observations:m,sessions:b}}findByType(e,r={}){let n=[],{limit:i=50,offset:s=0,orderBy:o="date_desc",...a}=r,c={...a,type:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${u} @@ -1107,7 +1167,7 @@ For more info: https://docs.claude-mem.ai/cursor ${`WHERE ${c.join(" AND ")}`} ${o==="date_asc"?"ORDER BY up.created_at_epoch ASC":"ORDER BY up.created_at_epoch DESC"} LIMIT ? OFFSET ? - `;return n.push(i,s),this.db.prepare(d).all(...n)}return y.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}getUserPromptsBySession(e){return this.db.prepare(` + `;return n.push(i,s),this.db.prepare(d).all(...n)}return _.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}getUserPromptsBySession(e){return this.db.prepare(` SELECT id, content_session_id, @@ -1118,13 +1178,13 @@ For more info: https://docs.claude-mem.ai/cursor FROM user_prompts WHERE content_session_id = ? ORDER BY prompt_number ASC - `).all(e)}close(){this.db.close()}};Yt();Nt();oe();var ig=class{sessionStore=null;sessionSearch=null;chromaSync=null;async initialize(){this.sessionStore=new Yi,this.sessionSearch=new ng,_e.loadFromFile(At).CLAUDE_MEM_CHROMA_ENABLED!=="false"?this.chromaSync=new Ka("claude-mem"):y.info("DB","Chroma disabled via CLAUDE_MEM_CHROMA_ENABLED=false, using SQLite-only search"),y.info("DB","Database initialized")}async close(){this.chromaSync&&(await this.chromaSync.close(),this.chromaSync=null),this.sessionStore&&(this.sessionStore.close(),this.sessionStore=null),this.sessionSearch&&(this.sessionSearch.close(),this.sessionSearch=null),y.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}getChromaSync(){return this.chromaSync}getSessionById(e){let r=this.getSessionStore().getSessionById(e);if(!r)throw new Error(`Session ${e} not found`);return r}};var TU=require("events");oe();jo();oe();var sg=180*1e3,og=class{constructor(e,r){this.store=e;this.events=r}async*createIterator(e){let{sessionDbId:r,signal:n,onIdleTimeout:i}=e,s=Date.now();for(;!n.aborted;)try{let o=this.store.claimNextMessage(r);if(o)s=Date.now(),yield this.toPendingMessageWithId(o);else if(!await this.waitForMessage(n,sg)&&!n.aborted){let c=Date.now()-s;if(c>=sg){y.info("SESSION","Idle timeout reached, triggering abort to kill subprocess",{sessionDbId:r,idleDurationMs:c,thresholdMs:sg}),i?.();return}s=Date.now()}}catch(o){if(n.aborted)return;y.error("SESSION","Error in queue processor loop",{sessionDbId:r},o),await new Promise(a=>setTimeout(a,1e3))}}toPendingMessageWithId(e){return{...this.store.toPendingMessage(e),_persistentId:e.id,_originalTimestamp:e.created_at_epoch}}waitForMessage(e,r=sg){return new Promise(n=>{let i,s=()=>{c(),n(!0)},o=()=>{c(),n(!1)},a=()=>{c(),n(!1)},c=()=>{i!==void 0&&clearTimeout(i),this.events.off("message",s),e.removeEventListener("abort",o)};this.events.once("message",s),e.addEventListener("abort",o,{once:!0}),i=setTimeout(a,r)})}};var jd=require("child_process"),xU=require("util");oe();var SU=(0,xU.promisify)(jd.exec);function soe(){return gt().getRegistry().getAll().filter(t=>t.type==="sdk").map(t=>{let e=gt().getRegistry().getRuntimeProcess(t.id);return e?{pid:t.pid,sessionDbId:Number(t.sessionId),spawnedAt:Date.parse(t.startedAt),process:e}:null}).filter(t=>t!==null)}function ooe(t,e,r){gt().registerProcess(`sdk:${e}:${t}`,{pid:t,type:"sdk",sessionId:e,startedAt:new Date().toISOString()},r),y.info("PROCESS",`Registered PID ${t} for session ${e}`,{pid:t,sessionDbId:e})}function ag(t){for(let e of gt().getRegistry().getByPid(t))e.type==="sdk"&>().unregisterProcess(e.id);y.debug("PROCESS",`Unregistered PID ${t}`,{pid:t}),wU()}function Us(t){let e=soe().filter(r=>r.sessionDbId===t);return e.length>1&&y.warn("PROCESS",`Multiple processes found for session ${t}`,{count:e.length,pids:e.map(r=>r.pid)}),e[0]}function _U(){return gt().getRegistry().getAll().filter(t=>t.type==="sdk").length}var Dd=[];function wU(){let t=Dd.shift();t&&t()}var bU=10;async function EU(t,e=6e4){let r=_U();if(r>=bU)throw new Error(`Hard cap exceeded: ${r} processes in registry (cap=${bU}). Refusing to spawn more.`);if(!(r{let s=setTimeout(()=>{let a=Dd.indexOf(o);a>=0&&Dd.splice(a,1),i(new Error(`Timed out waiting for agent pool slot after ${e}ms`))},e),o=()=>{clearTimeout(s),_U(){n.once("exit",()=>c())}),s=new Promise(c=>{setTimeout(c,e)});if(await Promise.race([i,s]),n.exitCode!==null){ag(r);return}y.warn("PROCESS",`PID ${r} did not exit after ${e}ms, sending SIGKILL`,{pid:r,timeoutMs:e});try{n.kill("SIGKILL")}catch{}let o=new Promise(c=>{n.once("exit",()=>c())}),a=new Promise(c=>{setTimeout(c,1e3)});await Promise.race([o,a]),ag(r)}async function aoe(){if(process.platform==="win32")return 0;let t=process.pid,e=0;try{let{stdout:r}=await SU('ps -eo pid,ppid,%cpu,etime,comm 2>/dev/null | grep "claude$" || true');for(let n of r.trim().split(` -`)){if(!n)continue;let i=n.trim().split(/\s+/);if(i.length<5)continue;let[s,o,a,c]=i,u=parseInt(s,10),l=parseInt(o,10),d=parseFloat(a);if(l!==t||d>0)continue;let p=0,m=c.match(/^(\d+)-(\d+):(\d+):(\d+)$/),f=c.match(/^(\d+):(\d+):(\d+)$/),g=c.match(/^(\d+):(\d+)$/);if(m?p=parseInt(m[1],10)*24*60+parseInt(m[2],10)*60+parseInt(m[3],10):f?p=parseInt(f[1],10)*60+parseInt(f[2],10):g&&(p=parseInt(g[1],10)),p>=1){y.info("PROCESS",`Killing idle daemon child PID ${u} (idle ${p}m)`,{pid:u,minutes:p});try{process.kill(u,"SIGKILL"),e++}catch{}}}}catch{}return e}async function coe(){if(process.platform==="win32")return 0;try{let{stdout:t}=await SU('ps -eo pid,ppid,args 2>/dev/null | grep -E "claude.*haiku|claude.*output-format" | grep -v grep'),e=0;for(let r of t.trim().split(` -`)){if(!r)continue;let n=r.trim().match(/^(\d+)\s+(\d+)/);if(n&&parseInt(n[2])===1){let i=parseInt(n[1]);y.warn("PROCESS",`Killing system orphan PID ${i}`,{pid:i});try{process.kill(i,"SIGKILL"),e++}catch{}}}return e}catch{return 0}}async function uoe(t){let e=0;for(let r of gt().getRegistry().getAll().filter(n=>n.type==="sdk")){let n=r.pid,i=Number(r.sessionId),s=gt().getRegistry().getRuntimeProcess(r.id);if(!t.has(i)){y.warn("PROCESS",`Killing orphan PID ${n} (session ${i} gone)`,{pid:n,sessionDbId:i});try{s?s.kill("SIGKILL"):process.kill(n,"SIGKILL"),e++}catch{}gt().unregisterProcess(r.id),wU()}}return e+=await coe(),e+=await aoe(),e}function kU(t){return e=>{gt().assertCanSpawn("claude sdk");let r=process.platform==="win32"&&e.command.endsWith(".cmd"),n=vi(e.env??process.env),i=r?(0,jd.spawn)("cmd.exe",["/d","/c",e.command,...e.args],{cwd:e.cwd,env:n,stdio:["pipe","pipe","pipe"],signal:e.signal,windowsHide:!0}):(0,jd.spawn)(e.command,e.args,{cwd:e.cwd,env:n,stdio:["pipe","pipe","pipe"],signal:e.signal,windowsHide:!0});return i.stderr&&i.stderr.on("data",s=>{y.debug("SDK_SPAWN",`[session-${t}] stderr: ${s.toString().trim()}`)}),i.pid&&(ooe(i.pid,t,i),i.on("exit",(s,o)=>{s!==0&&y.warn("SDK_SPAWN",`[session-${t}] Claude process exited`,{code:s,signal:o,pid:i.pid}),i.pid&&ag(i.pid)})),{stdin:i.stdin,stdout:i.stdout,stderr:i.stderr,get killed(){return i.killed},get exitCode(){return i.exitCode},kill:i.kill.bind(i),on:i.on.bind(i),once:i.once.bind(i),off:i.off.bind(i)}}}function $U(t,e=30*1e3){let r=setInterval(async()=>{try{let n=t(),i=await uoe(n);i>0&&y.info("PROCESS",`Reaper cleaned up ${i} orphaned processes`,{killed:i})}catch(n){y.error("PROCESS","Reaper error",{},n)}},e);return()=>clearInterval(r)}var cg=class t{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 Md(e.db,3)}return this.pendingStore}setOnSessionDeleted(e){this.onSessionDeletedCallback=e}initializeSession(e,r,n){y.debug("SESSION","initializeSession called",{sessionDbId:e,promptNumber:n,has_currentUserPrompt:!!r});let i=this.sessions.get(e);if(i){y.debug("SESSION","Returning cached session",{sessionDbId:e,contentSessionId:i.contentSessionId,lastPromptNumber:i.lastPromptNumber});let c=this.dbManager.getSessionById(e);return c.project&&c.project!==i.project&&(y.debug("SESSION","Updating project from database",{sessionDbId:e,oldProject:i.project,newProject:c.project}),i.project=c.project),r?(y.debug("SESSION","Updating userPrompt for continuation",{sessionDbId:e,promptNumber:n,oldPrompt:i.userPrompt.substring(0,80),newPrompt:r.substring(0,80)}),i.userPrompt=r,i.lastPromptNumber=n||i.lastPromptNumber):y.debug("SESSION","No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:n,usingCachedPrompt:i.userPrompt.substring(0,80)}),i}let s=this.dbManager.getSessionById(e);y.debug("SESSION","Fetched session from database",{sessionDbId:e,content_session_id:s.content_session_id,memory_session_id:s.memory_session_id}),s.memory_session_id&&y.warn("SESSION","Discarding stale memory_session_id from previous worker instance (Issue #817)",{sessionDbId:e,staleMemorySessionId:s.memory_session_id,reason:"SDK context lost on worker restart - will capture new ID"});let o=r||s.user_prompt;r?y.debug("SESSION","Initializing session with fresh userPrompt",{sessionDbId:e,promptNumber:n,userPrompt:r.substring(0,80)}):y.debug("SESSION","No currentUserPrompt provided for new session, using database",{sessionDbId:e,promptNumber:n,dbPrompt:s.user_prompt.substring(0,80)}),i={sessionDbId:e,contentSessionId:s.content_session_id,memorySessionId:null,project:s.project,userPrompt:o,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(s.content_session_id),startTime:Date.now(),cumulativeInputTokens:0,cumulativeOutputTokens:0,earliestPendingTimestamp:null,conversationHistory:[],currentProvider:null,consecutiveRestarts:0,processingMessageIds:[],lastGeneratorActivity:Date.now()},y.debug("SESSION","Creating new session object (memorySessionId cleared to prevent stale resume)",{sessionDbId:e,contentSessionId:s.content_session_id,dbMemorySessionId:s.memory_session_id||"(none in DB)",memorySessionId:"(cleared - will capture fresh from SDK)",lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(s.content_session_id)}),this.sessions.set(e,i);let a=new TU.EventEmitter;return this.sessionQueues.set(e,a),y.info("SESSION","Session initialized",{sessionId:e,project:i.project,contentSessionId:i.contentSessionId,queueDepth:0,hasGenerator:!1}),i}getSession(e){return this.sessions.get(e)}queueObservation(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e));let i={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 o=this.getPendingStore().enqueue(e,n.contentSessionId,i),a=this.getPendingStore().getPendingCount(e),c=y.formatTool(r.tool_name,r.tool_input);y.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${o} | type=observation | tool=${c} | depth=${a}`,{sessionId:e})}catch(o){throw y.error("SESSION","Failed to persist observation to DB",{sessionId:e,tool:r.tool_name},o),o}this.sessionQueues.get(e)?.emit("message")}queueSummarize(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e));let i={type:"summarize",last_assistant_message:r};try{let o=this.getPendingStore().enqueue(e,n.contentSessionId,i),a=this.getPendingStore().getPendingCount(e);y.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${o} | type=summarize | depth=${a}`,{sessionId:e})}catch(o){throw y.error("SESSION","Failed to persist summarize to DB",{sessionId:e},o),o}this.sessionQueues.get(e)?.emit("message")}async deleteSession(e){let r=this.sessions.get(e);if(!r)return;let n=Date.now()-r.startTime;if(r.abortController.abort(),r.generatorPromise){let s=r.generatorPromise.catch(()=>{y.debug("SYSTEM","Generator already failed, cleaning up",{sessionId:r.sessionDbId})}),o=new Promise(a=>{AbortSignal.timeout(3e4).addEventListener("abort",()=>a(),{once:!0})});await Promise.race([s,o]).then(()=>{},()=>{y.warn("SESSION","Generator did not exit within 30s after abort, forcing cleanup (#1099)",{sessionDbId:e})})}let i=Us(e);i&&i.process.exitCode===null&&(y.debug("SESSION",`Waiting for subprocess PID ${i.pid} to exit`,{sessionId:e,pid:i.pid}),await qs(i,5e3));try{await gt().getRegistry().reapSession(e)}catch(s){y.warn("SESSION","Supervisor reapSession failed (non-blocking)",{sessionId:e},s)}this.sessions.delete(e),this.sessionQueues.delete(e),y.info("SESSION","Session deleted",{sessionId:e,duration:`${(n/1e3).toFixed(1)}s`,project:r.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback()}removeSessionImmediate(e){let r=this.sessions.get(e);r&&(this.sessions.delete(e),this.sessionQueues.delete(e),y.info("SESSION","Session removed from active sessions",{sessionId:e,project:r.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback())}static MAX_SESSION_IDLE_MS=900*1e3;async reapStaleSessions(){let e=Date.now(),r=[];for(let[n,i]of this.sessions){if(i.generatorPromise||this.getPendingStore().getPendingCount(n)>0)continue;e-i.startTime>t.MAX_SESSION_IDLE_MS&&r.push(n)}for(let n of r)y.warn("SESSION",`Reaping stale session ${n} (no activity for >${Math.round(t.MAX_SESSION_IDLE_MS/6e4)}m)`,{sessionDbId:n}),await this.deleteSession(n);return r.length}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(r=>this.deleteSession(r)))}hasPendingMessages(){return this.getTotalQueueDepth()>0}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.getTotalQueueDepth()>0}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 i=new og(this.getPendingStore(),n);for await(let s of i.createIterator({sessionDbId:e,signal:r.abortController.signal,onIdleTimeout:()=>{y.info("SESSION","Triggering abort due to idle timeout to kill subprocess",{sessionDbId:e}),r.idleTimedOut=!0,r.abortController.abort()}}))r.earliestPendingTimestamp===null?r.earliestPendingTimestamp=s._originalTimestamp:r.earliestPendingTimestamp=Math.min(r.earliestPendingTimestamp,s._originalTimestamp),r.lastGeneratorActivity=Date.now(),yield s}getPendingMessageStore(){return this.getPendingStore()}};oe();var ug=class{sseClients=new Set;addClient(e){this.sseClients.add(e),y.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),y.debug("WORKER","Client disconnected",{total:this.sseClients.size})}broadcast(e){if(this.sseClients.size===0){y.debug("WORKER","SSE broadcast skipped (no clients)",{eventType:e.type});return}let r={...e,timestamp:Date.now()},n=`data: ${JSON.stringify(r)} + `).all(e)}close(){this.db.close()}};rr();zt();re();var bv=class{sessionStore=null;sessionSearch=null;chromaSync=null;async initialize(){this.sessionStore=new Es,this.sessionSearch=new _v,Se.loadFromFile(jt).CLAUDE_MEM_CHROMA_ENABLED!=="false"?this.chromaSync=new Cc("claude-mem"):_.info("DB","Chroma disabled via CLAUDE_MEM_CHROMA_ENABLED=false, using SQLite-only search"),_.info("DB","Database initialized")}async close(){this.chromaSync&&(await this.chromaSync.close(),this.chromaSync=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}getChromaSync(){return this.chromaSync}getSessionById(e){let r=this.getSessionStore().getSessionById(e);if(!r)throw new Error(`Session ${e} not found`);return r}};var A6=require("events");re();ha();re();var Sv=180*1e3,xv=class{constructor(e,r){this.store=e;this.events=r}async*createIterator(e){let{sessionDbId:r,signal:n,onIdleTimeout:i}=e,s=Date.now();for(;!n.aborted;)try{let o=this.store.claimNextMessage(r);if(o)s=Date.now(),yield this.toPendingMessageWithId(o);else if(!await this.waitForMessage(n,Sv)&&!n.aborted){let c=Date.now()-s;if(c>=Sv){_.info("SESSION","Idle timeout reached, triggering abort to kill subprocess",{sessionDbId:r,idleDurationMs:c,thresholdMs:Sv}),i?.();return}s=Date.now()}}catch(o){if(n.aborted)return;_.error("SESSION","Error in queue processor loop",{sessionDbId:r},o),await new Promise(a=>setTimeout(a,1e3))}}toPendingMessageWithId(e){return{...this.store.toPendingMessage(e),_persistentId:e.id,_originalTimestamp:e.created_at_epoch}}waitForMessage(e,r=Sv){return new Promise(n=>{let i,s=()=>{c(),n(!0)},o=()=>{c(),n(!1)},a=()=>{c(),n(!1)},c=()=>{i!==void 0&&clearTimeout(i),this.events.off("message",s),e.removeEventListener("abort",o)};this.events.once("message",s),e.addEventListener("abort",o,{once:!0}),i=setTimeout(a,r)})}};var Rp=require("child_process"),$6=require("util");re();var I6=(0,$6.promisify)(Rp.exec);function Eue(){return vt().getRegistry().getAll().filter(t=>t.type==="sdk").map(t=>{let e=vt().getRegistry().getRuntimeProcess(t.id);return e?{pid:t.pid,sessionDbId:Number(t.sessionId),spawnedAt:Date.parse(t.startedAt),process:e}:null}).filter(t=>t!==null)}function kue(t,e,r){vt().registerProcess(`sdk:${e}:${t}`,{pid:t,type:"sdk",sessionId:e,startedAt:new Date().toISOString()},r),_.info("PROCESS",`Registered PID ${t} for session ${e}`,{pid:t,sessionDbId:e})}function wv(t){for(let e of vt().getRegistry().getByPid(t))e.type==="sdk"&&vt().unregisterProcess(e.id);_.debug("PROCESS",`Unregistered PID ${t}`,{pid:t}),R6()}function go(t){let e=Eue().filter(r=>r.sessionDbId===t);return e.length>1&&_.warn("PROCESS",`Multiple processes found for session ${t}`,{count:e.length,pids:e.map(r=>r.pid)}),e[0]}function k6(){return vt().getRegistry().getAll().filter(t=>t.type==="sdk").length}var Ip=[];function R6(){let t=Ip.shift();t&&t()}var T6=10;async function O6(t,e=6e4){let r=k6();if(r>=T6)throw new Error(`Hard cap exceeded: ${r} processes in registry (cap=${T6}). Refusing to spawn more.`);if(!(r{let s=setTimeout(()=>{let a=Ip.indexOf(o);a>=0&&Ip.splice(a,1),i(new Error(`Timed out waiting for agent pool slot after ${e}ms`))},e),o=()=>{clearTimeout(s),k6(){n.once("exit",()=>c())}),s=new Promise(c=>{setTimeout(c,e)});if(await Promise.race([i,s]),n.exitCode!==null){wv(r);return}_.warn("PROCESS",`PID ${r} did not exit after ${e}ms, sending SIGKILL`,{pid:r,timeoutMs:e});try{n.kill("SIGKILL")}catch{}let o=new Promise(c=>{n.once("exit",()=>c())}),a=new Promise(c=>{setTimeout(c,1e3)});await Promise.race([o,a]),wv(r)}async function Tue(){if(process.platform==="win32")return 0;let t=process.pid,e=0;try{let{stdout:r}=await I6('ps -eo pid,ppid,%cpu,etime,comm 2>/dev/null | grep "claude$" || true');for(let n of r.trim().split(` +`)){if(!n)continue;let i=n.trim().split(/\s+/);if(i.length<5)continue;let[s,o,a,c]=i,u=parseInt(s,10),l=parseInt(o,10),d=parseFloat(a);if(l!==t||d>0)continue;let p=0,f=c.match(/^(\d+)-(\d+):(\d+):(\d+)$/),m=c.match(/^(\d+):(\d+):(\d+)$/),h=c.match(/^(\d+):(\d+)$/);if(f?p=parseInt(f[1],10)*24*60+parseInt(f[2],10)*60+parseInt(f[3],10):m?p=parseInt(m[1],10)*60+parseInt(m[2],10):h&&(p=parseInt(h[1],10)),p>=1){_.info("PROCESS",`Killing idle daemon child PID ${u} (idle ${p}m)`,{pid:u,minutes:p});try{process.kill(u,"SIGKILL"),e++}catch{}}}}catch{}return e}async function $ue(){if(process.platform==="win32")return 0;try{let{stdout:t}=await I6('ps -eo pid,ppid,args 2>/dev/null | grep -E "claude.*haiku|claude.*output-format" | grep -v grep'),e=0;for(let r of t.trim().split(` +`)){if(!r)continue;let n=r.trim().match(/^(\d+)\s+(\d+)/);if(n&&parseInt(n[2])===1){let i=parseInt(n[1]);_.warn("PROCESS",`Killing system orphan PID ${i}`,{pid:i});try{process.kill(i,"SIGKILL"),e++}catch{}}}return e}catch{return 0}}async function Iue(t){let e=0;for(let r of vt().getRegistry().getAll().filter(n=>n.type==="sdk")){let n=r.pid,i=Number(r.sessionId),s=vt().getRegistry().getRuntimeProcess(r.id);if(!t.has(i)){_.warn("PROCESS",`Killing orphan PID ${n} (session ${i} gone)`,{pid:n,sessionDbId:i});try{s?s.kill("SIGKILL"):process.kill(n,"SIGKILL"),e++}catch{}vt().unregisterProcess(r.id),R6()}}return e+=await $ue(),e+=await Tue(),e}function C6(t){return e=>{vt().assertCanSpawn("claude sdk");let r=process.platform==="win32"&&e.command.endsWith(".cmd"),n=Ui(e.env??process.env),i=r?(0,Rp.spawn)("cmd.exe",["/d","/c",e.command,...e.args],{cwd:e.cwd,env:n,stdio:["pipe","pipe","pipe"],signal:e.signal,windowsHide:!0}):(0,Rp.spawn)(e.command,e.args,{cwd:e.cwd,env:n,stdio:["pipe","pipe","pipe"],signal:e.signal,windowsHide:!0});return i.stderr&&i.stderr.on("data",s=>{_.debug("SDK_SPAWN",`[session-${t}] stderr: ${s.toString().trim()}`)}),i.pid&&(kue(i.pid,t,i),i.on("exit",(s,o)=>{s!==0&&_.warn("SDK_SPAWN",`[session-${t}] Claude process exited`,{code:s,signal:o,pid:i.pid}),i.pid&&wv(i.pid)})),{stdin:i.stdin,stdout:i.stdout,stderr:i.stderr,get killed(){return i.killed},get exitCode(){return i.exitCode},kill:i.kill.bind(i),on:i.on.bind(i),once:i.once.bind(i),off:i.off.bind(i)}}}function P6(t,e=30*1e3){let r=setInterval(async()=>{try{let n=t(),i=await Iue(n);i>0&&_.info("PROCESS",`Reaper cleaned up ${i} orphaned processes`,{killed:i})}catch(n){_.error("PROCESS","Reaper error",{},n)}},e);return()=>clearInterval(r)}var Ev=class t{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 $p(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 i=this.sessions.get(e);if(i){_.debug("SESSION","Returning cached session",{sessionDbId:e,contentSessionId:i.contentSessionId,lastPromptNumber:i.lastPromptNumber});let c=this.dbManager.getSessionById(e);return c.project&&c.project!==i.project&&(_.debug("SESSION","Updating project from database",{sessionDbId:e,oldProject:i.project,newProject:c.project}),i.project=c.project),r?(_.debug("SESSION","Updating userPrompt for continuation",{sessionDbId:e,promptNumber:n,oldPrompt:i.userPrompt.substring(0,80),newPrompt:r.substring(0,80)}),i.userPrompt=r,i.lastPromptNumber=n||i.lastPromptNumber):_.debug("SESSION","No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:n,usingCachedPrompt:i.userPrompt.substring(0,80)}),i}let s=this.dbManager.getSessionById(e);_.debug("SESSION","Fetched session from database",{sessionDbId:e,content_session_id:s.content_session_id,memory_session_id:s.memory_session_id}),s.memory_session_id&&_.warn("SESSION","Discarding stale memory_session_id from previous worker instance (Issue #817)",{sessionDbId:e,staleMemorySessionId:s.memory_session_id,reason:"SDK context lost on worker restart - will capture new ID"});let o=r||s.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:s.user_prompt.substring(0,80)}),i={sessionDbId:e,contentSessionId:s.content_session_id,memorySessionId:null,project:s.project,userPrompt:o,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(s.content_session_id),startTime:Date.now(),cumulativeInputTokens:0,cumulativeOutputTokens:0,earliestPendingTimestamp:null,conversationHistory:[],currentProvider:null,consecutiveRestarts:0,processingMessageIds:[],lastGeneratorActivity:Date.now()},_.debug("SESSION","Creating new session object (memorySessionId cleared to prevent stale resume)",{sessionDbId:e,contentSessionId:s.content_session_id,dbMemorySessionId:s.memory_session_id||"(none in DB)",memorySessionId:"(cleared - will capture fresh from SDK)",lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(s.content_session_id)}),this.sessions.set(e,i);let a=new A6.EventEmitter;return this.sessionQueues.set(e,a),_.info("SESSION","Session initialized",{sessionId:e,project:i.project,contentSessionId:i.contentSessionId,queueDepth:0,hasGenerator:!1}),i}getSession(e){return this.sessions.get(e)}queueObservation(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e));let i={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 o=this.getPendingStore().enqueue(e,n.contentSessionId,i),a=this.getPendingStore().getPendingCount(e),c=_.formatTool(r.tool_name,r.tool_input);_.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${o} | type=observation | tool=${c} | depth=${a}`,{sessionId:e})}catch(o){throw _.error("SESSION","Failed to persist observation to DB",{sessionId:e,tool:r.tool_name},o),o}this.sessionQueues.get(e)?.emit("message")}queueSummarize(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e));let i={type:"summarize",last_assistant_message:r};try{let o=this.getPendingStore().enqueue(e,n.contentSessionId,i),a=this.getPendingStore().getPendingCount(e);_.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${o} | type=summarize | depth=${a}`,{sessionId:e})}catch(o){throw _.error("SESSION","Failed to persist summarize to DB",{sessionId:e},o),o}this.sessionQueues.get(e)?.emit("message")}async deleteSession(e){let r=this.sessions.get(e);if(!r)return;let n=Date.now()-r.startTime;if(r.abortController.abort(),r.generatorPromise){let s=r.generatorPromise.catch(()=>{_.debug("SYSTEM","Generator already failed, cleaning up",{sessionId:r.sessionDbId})}),o=new Promise(a=>{AbortSignal.timeout(3e4).addEventListener("abort",()=>a(),{once:!0})});await Promise.race([s,o]).then(()=>{},()=>{_.warn("SESSION","Generator did not exit within 30s after abort, forcing cleanup (#1099)",{sessionDbId:e})})}let i=go(e);i&&i.process.exitCode===null&&(_.debug("SESSION",`Waiting for subprocess PID ${i.pid} to exit`,{sessionId:e,pid:i.pid}),await vo(i,5e3));try{await vt().getRegistry().reapSession(e)}catch(s){_.warn("SESSION","Supervisor reapSession failed (non-blocking)",{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()}removeSessionImmediate(e){let r=this.sessions.get(e);r&&(this.sessions.delete(e),this.sessionQueues.delete(e),_.info("SESSION","Session removed from active sessions",{sessionId:e,project:r.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback())}static MAX_SESSION_IDLE_MS=900*1e3;async reapStaleSessions(){let e=Date.now(),r=[];for(let[n,i]of this.sessions){if(i.generatorPromise||this.getPendingStore().getPendingCount(n)>0)continue;e-i.startTime>t.MAX_SESSION_IDLE_MS&&r.push(n)}for(let n of r)_.warn("SESSION",`Reaping stale session ${n} (no activity for >${Math.round(t.MAX_SESSION_IDLE_MS/6e4)}m)`,{sessionDbId:n}),await this.deleteSession(n);return r.length}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(r=>this.deleteSession(r)))}hasPendingMessages(){return this.getTotalQueueDepth()>0}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.getTotalQueueDepth()>0}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 i=new xv(this.getPendingStore(),n);for await(let s of i.createIterator({sessionDbId:e,signal:r.abortController.signal,onIdleTimeout:()=>{_.info("SESSION","Triggering abort due to idle timeout to kill subprocess",{sessionDbId:e}),r.idleTimedOut=!0,r.abortController.abort()}}))r.earliestPendingTimestamp===null?r.earliestPendingTimestamp=s._originalTimestamp:r.earliestPendingTimestamp=Math.min(r.earliestPendingTimestamp,s._originalTimestamp),r.lastGeneratorActivity=Date.now(),yield s}getPendingMessageStore(){return this.getPendingStore()}};re();var kv=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)} -`;y.debug("WORKER","SSE broadcast sent",{eventType:e.type,clients:this.sseClients.size});for(let i of this.sseClients)i.write(n)}getClientCount(){return this.sseClients.size}sendToClient(e,r){let n=`data: ${JSON.stringify(r)} +`;_.debug("WORKER","SSE broadcast sent",{eventType:e.type,clients:this.sseClients.size});for(let i of this.sseClients)i.write(n)}getClientCount(){return this.sseClients.size}sendToClient(e,r){let n=`data: ${JSON.stringify(r)} -`;e.write(n)}};var s$=require("child_process"),aq=require("os"),cq=Ue(require("path"),1);oe();oe();function kc(t,e,r,n){return`${n.prompts.system_identity} +`;e.write(n)}};var X$=require("child_process"),f9=require("os"),m9=Pe(require("path"),1);re();re();function au(t,e,r,n){return`${n.prompts.system_identity} ${r} @@ -1179,13 +1239,17 @@ ${n.prompts.format_examples} ${n.prompts.footer} -${n.prompts.header_memory_start}`}function $c(t){let e,r;try{e=typeof t.tool_input=="string"?JSON.parse(t.tool_input):t.tool_input}catch(n){y.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){y.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 cu(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}`:""} ${JSON.stringify(e,null,2)} ${JSON.stringify(r,null,2)} -`}function Tc(t,e){let r=t.last_assistant_message||(y.error("SDK","Missing last_assistant_message in session for summary prompt",{sessionId:t.id}),"");return`--- MODE SWITCH: PROGRESS SUMMARY --- + + +Return either one or more ... blocks, or an empty response if this tool use should be skipped. +Concrete debugging findings from logs, queue state, database rows, session routing, or code-path inspection count as durable discoveries and should be recorded. +Never reply with prose such as "Skipping", "No substantive tool executions", or any explanation outside XML. Non-XML text is discarded.`}function uu(t,e){let r=t.last_assistant_message||(_.error("SDK","Missing last_assistant_message in session for summary prompt",{sessionId:t.id}),"");return`--- MODE SWITCH: PROGRESS SUMMARY --- Do NOT output tags. This is a summary request, not an observation request. Your response MUST use tags ONLY. Any output will be discarded. @@ -1205,7 +1269,7 @@ ${e.prompts.summary_format_instruction} ${e.prompts.xml_summary_notes_placeholder} -${e.prompts.summary_footer}`}function Ic(t,e,r,n){return`${n.prompts.continuation_greeting} +${e.prompts.summary_footer}`}function lu(t,e,r,n){return`${n.prompts.continuation_greeting} ${t} @@ -1264,7 +1328,7 @@ ${n.prompts.format_examples} ${n.prompts.footer} -${n.prompts.header_memory_continued}`}Yt();Nt();Br();var lk=["429","500","502","503","ECONNREFUSED","ETIMEDOUT","fetch failed"];oe();oe();Br();function RU(t,e){let r=[],n=/([\s\S]*?)<\/observation>/g,i;for(;(i=n.exec(t))!==null;){let s=i[1],o=Ii(s,"type"),a=Ii(s,"title"),c=Ii(s,"subtitle"),u=Ii(s,"narrative"),l=dg(s,"facts","fact"),d=dg(s,"concepts","concept"),p=dg(s,"files_read","file"),m=dg(s,"files_modified","file"),g=He.getInstance().getActiveMode().observation_types.map(b=>b.id),h=g[0],v=h;o?g.includes(o.trim())?v=o.trim():y.error("PARSER",`Invalid observation type: ${o}, using "${h}"`,{correlationId:e}):y.error("PARSER",`Observation missing type field, using "${h}"`,{correlationId:e});let x=d.filter(b=>b!==v);x.length!==d.length&&y.error("PARSER","Removed observation type from concepts array",{correlationId:e,type:v,originalConcepts:d,cleanedConcepts:x}),r.push({type:v,title:a,subtitle:c,facts:l,narrative:u,concepts:x,files_read:p,files_modified:m})}return r}function OU(t,e){let n=//.exec(t);if(n)return y.info("PARSER","Summary skipped",{sessionId:e,reason:n[1]}),null;let s=/([\s\S]*?)<\/summary>/.exec(t);if(!s)return//.test(t)&&y.warn("PARSER","Summary response contained tags instead of \u2014 prompt conditioning may need strengthening",{sessionId:e}),null;let o=s[1],a=Ii(o,"request"),c=Ii(o,"investigated"),u=Ii(o,"learned"),l=Ii(o,"completed"),d=Ii(o,"next_steps"),p=Ii(o,"notes");return{request:a,investigated:c,learned:u,completed:l,next_steps:d,notes:p}}function Ii(t,e){let n=new RegExp(`<${e}>([\\s\\S]*?)`).exec(t);if(!n)return null;let i=n[1].trim();return i===""?null:i}function dg(t,e,r){let n=[],s=new RegExp(`<${e}>([\\s\\S]*?)`).exec(t);if(!s)return n;let o=s[1],a=new RegExp(`<${r}>([\\s\\S]*?)`,"g"),c;for(;(c=a.exec(o))!==null;){let u=c[1].trim();u&&n.push(u)}return n}var ti=require("fs"),Zt=Ue(require("path"),1),CU=Ue(require("os"),1);oe();zo();Yt();Or();var loe=Zt.default.join(CU.default.homedir(),".claude-mem","settings.json");function doe(t){let e=t.split(Zt.default.sep).filter(r=>r&&r!=="."&&r!=="..");for(let r=1;r([\s\S]*?)<\/observation>/g,i;for(;(i=n.exec(t))!==null;){let s=i[1],o=Ji(s,"type"),a=Ji(s,"title"),c=Ji(s,"subtitle"),u=Ji(s,"narrative"),l=$v(s,"facts","fact"),d=$v(s,"concepts","concept"),p=$v(s,"files_read","file"),f=$v(s,"files_modified","file"),h=He.getInstance().getActiveMode().observation_types.map(b=>b.id),g=h[0],v=g;o?h.includes(o.trim())?v=o.trim():_.error("PARSER",`Invalid observation type: ${o}, using "${g}"`,{correlationId:e}):_.error("PARSER",`Observation missing type field, using "${g}"`,{correlationId:e});let S=d.filter(b=>b!==v);S.length!==d.length&&_.debug("PARSER","Removed observation type from concepts array",{correlationId:e,type:v,originalConcepts:d,cleanedConcepts:S}),r.push({type:v,title:a,subtitle:c,facts:l,narrative:u,concepts:S,files_read:p,files_modified:f})}return r}function D6(t,e){let n=//.exec(t);if(n)return _.info("PARSER","Summary skipped",{sessionId:e,reason:n[1]}),null;let s=/([\s\S]*?)<\/summary>/.exec(t);if(!s)return//.test(t)&&_.warn("PARSER","Summary response contained tags instead of \u2014 prompt conditioning may need strengthening",{sessionId:e}),null;let o=s[1],a=Ji(o,"request"),c=Ji(o,"investigated"),u=Ji(o,"learned"),l=Ji(o,"completed"),d=Ji(o,"next_steps"),p=Ji(o,"notes");return{request:a,investigated:c,learned:u,completed:l,next_steps:d,notes:p}}function Ji(t,e){let n=new RegExp(`<${e}>([\\s\\S]*?)`).exec(t);if(!n)return null;let i=n[1].trim();return i===""?null:i}function $v(t,e,r){let n=[],s=new RegExp(`<${e}>([\\s\\S]*?)`).exec(t);if(!s)return n;let o=s[1],a=new RegExp(`<${r}>([\\s\\S]*?)`,"g"),c;for(;(c=a.exec(o))!==null;){let u=c[1].trim();u&&n.push(u)}return n}var yi=require("fs"),Zt=Pe(require("path"),1),z6=Pe(require("os"),1);re();ga();rr();Dr();var Rue=Zt.default.join(z6.default.homedir(),".claude-mem","settings.json");function Oue(t){let e=t.split(Zt.default.sep).filter(r=>r&&r!=="."&&r!=="..");for(let r=1;rnew Date(a.epoch).toISOString());for(let[a,c]of o){e.push(`### ${a}`),e.push(""),e.push("| ID | Time | T | Title | Read |"),e.push("|----|------|---|-------|------|");let u="";for(let l of c){let d=l.time===u?'"':l.time;u=l.time,e.push(`| ${l.id} | ${d} | ${l.typeEmoji} | ${l.title} | ${l.tokens} |`)}e.push("")}return e.join(` -`).trim()}var goe=new Set(["res",".git","build","node_modules","__pycache__"]);function voe(t){return Zt.default.normalize(t).split(Zt.default.sep).some(n=>goe.has(n))}function yoe(t){let e=Zt.default.join(t,".git");return(0,ti.existsSync)(e)}function _oe(t,e){let r=Zt.default.resolve(t);for(let n of e){let i=Zt.default.resolve(n);if(r===i||r.startsWith(i+Zt.default.sep))return!0}return!1}async function AU(t,e,r,n){let i=_e.loadFromFile(loe),s=parseInt(i.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10)||50,o=[];try{let u=JSON.parse(i.CLAUDE_MEM_FOLDER_MD_EXCLUDE||"[]");Array.isArray(u)&&(o=u.filter(l=>typeof l=="string"))}catch{y.warn("FOLDER_INDEX","Failed to parse CLAUDE_MEM_FOLDER_MD_EXCLUDE setting")}let a=new Set;for(let u of t){if(!u)continue;if(Zt.default.basename(u)==="CLAUDE.md"){let d=u;n&&!Zt.default.isAbsolute(u)&&(d=Zt.default.join(n,u));let p=Zt.default.dirname(d);a.add(p),y.debug("FOLDER_INDEX","Detected active CLAUDE.md, will skip folder",{folderPath:p})}}let c=new Set;for(let u of t){if(!u||u==="")continue;if(!poe(u,n)){y.debug("FOLDER_INDEX","Skipping invalid file path",{filePath:u,reason:"Failed path validation"});continue}let l=u;n&&!Zt.default.isAbsolute(u)&&(l=Zt.default.join(n,u));let d=Zt.default.dirname(l);if(d&&d!=="."&&d!=="/"){if(yoe(d)){y.debug("FOLDER_INDEX","Skipping project root CLAUDE.md",{folderPath:d});continue}if(voe(d)){y.debug("FOLDER_INDEX","Skipping unsafe directory for CLAUDE.md",{folderPath:d});continue}if(a.has(d)){y.debug("FOLDER_INDEX","Skipping folder with active CLAUDE.md to avoid race condition",{folderPath:d});continue}if(o.length>0&&_oe(d,o)){y.debug("FOLDER_INDEX","Skipping excluded folder",{folderPath:d});continue}c.add(d)}}if(c.size!==0){y.debug("FOLDER_INDEX","Updating CLAUDE.md files",{project:e,folderCount:c.size});for(let u of c)try{let l=await wt(`/api/search/by-file?filePath=${encodeURIComponent(u)}&limit=${s}&project=${encodeURIComponent(e)}&isFolder=true`);if(!l.ok){y.error("FOLDER_INDEX","Failed to fetch timeline",{folderPath:u,status:l.status});continue}let d=await l.json();if(!d.content?.[0]?.text){y.debug("FOLDER_INDEX","No content for folder",{folderPath:u});continue}let p=hoe(d.content[0].text),m=Zt.default.join(u,"CLAUDE.md"),f=p.includes("*No recent activity*"),g=(0,ti.existsSync)(m);if(f&&!g){y.debug("FOLDER_INDEX","Skipping empty CLAUDE.md creation",{folderPath:u});continue}foe(u,p),y.debug("FOLDER_INDEX","Updated CLAUDE.md",{folderPath:u})}catch(l){let d=l;y.error("FOLDER_INDEX","Failed to update CLAUDE.md",{folderPath:u,errorMessage:d.message,errorStack:d.stack})}}}Or();Yt();Nt();function pk(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:e})}function mk(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:e})}function fk(t,e){t.earliestPendingTimestamp=null,e&&typeof e.broadcastProcessingStatus=="function"&&e.broadcastProcessingStatus()}async function ri(t,e,r,n,i,s,o,a,c){e.lastGeneratorActivity=Date.now(),t&&e.conversationHistory.push({role:"assistant",content:t});let u=RU(t,e.contentSessionId),l=OU(t,e.sessionDbId),d=boe(l),p=r.getSessionStore();if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");p.ensureMemorySessionIdRegistered(e.sessionDbId,e.memorySessionId),y.info("DB",`STORING | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | obsCount=${u.length} | hasSummary=${!!d}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId});let m=p.storeObservations(e.memorySessionId,e.project,u,d,e.lastPromptNumber,s,o??void 0);y.info("DB",`STORED | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | obsCount=${m.observationIds.length} | obsIds=[${m.observationIds.join(",")}] | summaryId=${m.summaryId||"none"}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId});let f=n.getPendingMessageStore();for(let g of e.processingMessageIds)f.confirmProcessed(g);e.processingMessageIds.length>0&&y.debug("QUEUE",`CONFIRMED_BATCH | sessionDbId=${e.sessionDbId} | count=${e.processingMessageIds.length} | ids=[${e.processingMessageIds.join(",")}]`),e.processingMessageIds=[],await xoe(u,m,e,r,i,s,a,c),await Soe(l,d,m,e,r,i,s,a),fk(e,i)}function boe(t){return t?{request:t.request||"",investigated:t.investigated||"",learned:t.learned||"",completed:t.completed||"",next_steps:t.next_steps||"",notes:t.notes}:null}async function xoe(t,e,r,n,i,s,o,a){for(let d=0;d{let g=Date.now()-f;y.debug("CHROMA","Observation synced",{obsId:p,duration:`${g}ms`,type:m.type,title:m.title||"(untitled)"})}).catch(g=>{y.error("CHROMA",`${o} chroma sync failed, continuing without vector search`,{obsId:p,type:m.type,title:m.title||"(untitled)"},g)}),pk(i,{id:p,memory_session_id:r.memorySessionId,session_id:r.contentSessionId,type:m.type,title:m.title,subtitle:m.subtitle,text:null,narrative:m.narrative||null,facts:JSON.stringify(m.facts||[]),concepts:JSON.stringify(m.concepts||[]),files_read:JSON.stringify(m.files_read||[]),files_modified:JSON.stringify(m.files_modified||[]),project:r.project,prompt_number:r.lastPromptNumber,created_at_epoch:e.createdAtEpoch})}let u=_e.loadFromFile(At).CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED;if(u==="true"||u===!0){let d=[];for(let p of t)d.push(...p.files_modified||[]),d.push(...p.files_read||[]);d.length>0&&AU(d,r.project,Fr(),a).catch(p=>{y.warn("FOLDER_INDEX","CLAUDE.md update failed (non-critical)",{project:r.project},p)})}}async function Soe(t,e,r,n,i,s,o,a){if(!e||!r.summaryId)return;let c=Date.now();i.getChromaSync()?.syncSummary(r.summaryId,n.contentSessionId,n.project,e,n.lastPromptNumber,r.createdAtEpoch,o).then(()=>{let u=Date.now()-c;y.debug("CHROMA","Summary synced",{summaryId:r.summaryId,duration:`${u}ms`,request:e.request||"(no request)"})}).catch(u=>{y.error("CHROMA",`${a} chroma sync failed, continuing without vector search`,{summaryId:r.summaryId,request:e.request||"(no request)"},u)}),mk(s,{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:n.project,prompt_number:n.lastPromptNumber,created_at_epoch:r.createdAtEpoch}),fU(n.project,Fr()).catch(u=>{y.warn("CURSOR","Context update failed (non-critical)",{project:n.project},u)})}function Ld(t){let e=woe(t);return lk.some(r=>e.includes(r))}function woe(t){return t==null?"":typeof t=="string"?t:t instanceof Error?t.message:typeof t=="object"&&"message"in t?String(t.message):String(t)}function Ud(t){return t==null?!1:t instanceof Error&&t.name==="AbortError"?!0:typeof t=="object"&&"name"in t?t.name==="AbortError":!1}var xk=require("path"),b2=require("url"),x2=require("events"),w2=require("child_process"),E2=require("readline"),Ie=Ue(require("fs"),1),k2=require("fs/promises"),O2=require("path"),P2=require("os"),qo=require("path"),A2=require("process"),N2=require("fs"),M2=require("crypto"),H2=require("crypto"),Jc=require("fs"),Sk=require("path"),Z2=require("crypto");var Bhe={},Eoe=Object.create,koe=Object.getPrototypeOf,bk=Object.defineProperty,$oe=Object.getOwnPropertyNames,Toe=Object.prototype.hasOwnProperty,d2=(t,e,r)=>{r=t!=null?Eoe(koe(t)):{};let n=e||!t||!t.__esModule?bk(r,"default",{value:t,enumerable:!0}):r;for(let i of $oe(t))Toe.call(n,i)||bk(n,i,{get:()=>t[i],enumerable:!0});return n},re=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),p2=(t,e)=>{for(var r in e)bk(t,r,{get:e[r],enumerable:!0,configurable:!0,set:n=>e[r]=()=>n})};var _g=re(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(x){if(super(),!t.IDENTIFIER.test(x))throw new Error("CodeGen: name must be a valid identifier");this.str=x}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(x){super(),this._items=typeof x=="string"?[x]:x}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let x=this._items[0];return x===""||x==='""'}get str(){var x;return(x=this._str)!==null&&x!==void 0?x:this._str=this._items.reduce((b,_)=>`${b}${_}`,"")}get names(){var x;return(x=this._names)!==null&&x!==void 0?x:this._names=this._items.reduce((b,_)=>(_ instanceof r&&(b[_.str]=(b[_.str]||0)+1),b),{})}}t._Code=n,t.nil=new n("");function i(v,...x){let b=[v[0]],_=0;for(;_{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=_g();class r extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.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 i{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof e.Name?u:this.name(u)}name(u){return new e.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}t.Scope=i;class s extends e.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,e._)`.${new e.Name(l)}[${d}]`}}t.ValueScopeName=s;var o=(0,e._)`\n`;class a extends i{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?o:e.nil}}get(){return this._scope}name(u){return new s(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let p=this.toName(u),{prefix:m}=p,f=(d=l.key)!==null&&d!==void 0?d:l.ref,g=this._values[m];if(g){let x=g.get(f);if(x)return x}else g=this._values[m]=new Map;g.set(f,p);let h=this._scope[m]||(this._scope[m]=[]),v=h.length;return h[v]=l.ref,p.setValue(l,{property:m,itemIndex:v}),p}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,e._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,p=>{if(p.value===void 0)throw new Error(`CodeGen: name "${p}" has no value`);return p.value.code},l,d)}_reduceValues(u,l,d={},p){let m=e.nil;for(let f in u){let g=u[f];if(!g)continue;let h=d[f]=d[f]||new Map;g.forEach(v=>{if(h.has(v))return;h.set(v,n.Started);let x=l(v);if(x){let b=this.opts.es5?t.varKinds.var:t.varKinds.const;m=(0,e._)`${m}${b} ${v} = ${x};${this.opts._n}`}else if(x=p?.(v))m=(0,e._)`${m}${x}${this.opts._n}`;else throw new r(v);h.set(v,n.Completed)})}return m}}t.ValueScope=a}),Ze=re(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=_g(),r=NU(),n=_g();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 i=NU();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return i.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 s{optimizeNodes(){return this}optimizeNames(k,I){return this}}class o extends s{constructor(k,I,q){super(),this.varKind=k,this.name=I,this.rhs=q}render({es5:k,_n:I}){let q=k?r.varKinds.var:this.varKind,le=this.rhs===void 0?"":` = ${this.rhs}`;return`${q} ${this.name}${le};`+I}optimizeNames(k,I){if(k[this.name.str])return this.rhs&&(this.rhs=j(this.rhs,k,I)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(k,I,q){super(),this.lhs=k,this.rhs=I,this.sideEffects=q}render({_n:k}){return`${this.lhs} = ${this.rhs};`+k}optimizeNames(k,I){if(!(this.lhs instanceof e.Name&&!k[this.lhs.str]&&!this.sideEffects))return this.rhs=j(this.rhs,k,I),this}get names(){let k=this.lhs instanceof e.Name?{}:{...this.lhs.names};return W(k,this.rhs)}}class c extends a{constructor(k,I,q,le){super(k,q,le),this.op=I}render({_n:k}){return`${this.lhs} ${this.op}= ${this.rhs};`+k}}class u extends s{constructor(k){super(),this.label=k,this.names={}}render({_n:k}){return`${this.label}:`+k}}class l extends s{constructor(k){super(),this.label=k,this.names={}}render({_n:k}){return`break${this.label?` ${this.label}`:""};`+k}}class d extends s{constructor(k){super(),this.error=k}render({_n:k}){return`throw ${this.error};`+k}get names(){return this.error.names}}class p extends s{constructor(k){super(),this.code=k}render({_n:k}){return`${this.code};`+k}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(k,I){return this.code=j(this.code,k,I),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class m extends s{constructor(k=[]){super(),this.nodes=k}render(k){return this.nodes.reduce((I,q)=>I+q.render(k),"")}optimizeNodes(){let{nodes:k}=this,I=k.length;for(;I--;){let q=k[I].optimizeNodes();Array.isArray(q)?k.splice(I,1,...q):q?k[I]=q:k.splice(I,1)}return k.length>0?this:void 0}optimizeNames(k,I){let{nodes:q}=this,le=q.length;for(;le--;){let ce=q[le];ce.optimizeNames(k,I)||(ae(k,ce.names),q.splice(le,1))}return q.length>0?this:void 0}get names(){return this.nodes.reduce((k,I)=>U(k,I.names),{})}}class f extends m{render(k){return"{"+k._n+super.render(k)+"}"+k._n}}class g extends m{}class h extends f{}h.kind="else";class v extends f{constructor(k,I){super(I),this.condition=k}render(k){let I=`if(${this.condition})`+super.render(k);return this.else&&(I+="else "+this.else.render(k)),I}optimizeNodes(){super.optimizeNodes();let k=this.condition;if(k===!0)return this.nodes;let I=this.else;if(I){let q=I.optimizeNodes();I=this.else=Array.isArray(q)?new h(q):q}if(I)return k===!1?I instanceof v?I:I.nodes:this.nodes.length?this:new v(Ne(k),I instanceof v?[I]:I.nodes);if(!(k===!1||!this.nodes.length))return this}optimizeNames(k,I){var q;if(this.else=(q=this.else)===null||q===void 0?void 0:q.optimizeNames(k,I),!!(super.optimizeNames(k,I)||this.else))return this.condition=j(this.condition,k,I),this}get names(){let k=super.names;return W(k,this.condition),this.else&&U(k,this.else.names),k}}v.kind="if";class x extends f{}x.kind="for";class b extends x{constructor(k){super(),this.iteration=k}render(k){return`for(${this.iteration})`+super.render(k)}optimizeNames(k,I){if(super.optimizeNames(k,I))return this.iteration=j(this.iteration,k,I),this}get names(){return U(super.names,this.iteration.names)}}class _ extends x{constructor(k,I,q,le){super(),this.varKind=k,this.name=I,this.from=q,this.to=le}render(k){let I=k.es5?r.varKinds.var:this.varKind,{name:q,from:le,to:ce}=this;return`for(${I} ${q}=${le}; ${q}<${ce}; ${q}++)`+super.render(k)}get names(){let k=W(super.names,this.from);return W(k,this.to)}}class S extends x{constructor(k,I,q,le){super(),this.loop=k,this.varKind=I,this.name=q,this.iterable=le}render(k){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(k)}optimizeNames(k,I){if(super.optimizeNames(k,I))return this.iterable=j(this.iterable,k,I),this}get names(){return U(super.names,this.iterable.names)}}class w extends f{constructor(k,I,q){super(),this.name=k,this.args=I,this.async=q}render(k){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(k)}}w.kind="func";class E extends m{render(k){return"return "+super.render(k)}}E.kind="return";class $ extends f{render(k){let I="try"+super.render(k);return this.catch&&(I+=this.catch.render(k)),this.finally&&(I+=this.finally.render(k)),I}optimizeNodes(){var k,I;return super.optimizeNodes(),(k=this.catch)===null||k===void 0||k.optimizeNodes(),(I=this.finally)===null||I===void 0||I.optimizeNodes(),this}optimizeNames(k,I){var q,le;return super.optimizeNames(k,I),(q=this.catch)===null||q===void 0||q.optimizeNames(k,I),(le=this.finally)===null||le===void 0||le.optimizeNames(k,I),this}get names(){let k=super.names;return this.catch&&U(k,this.catch.names),this.finally&&U(k,this.finally.names),k}}class R extends f{constructor(k){super(),this.error=k}render(k){return`catch(${this.error})`+super.render(k)}}R.kind="catch";class A extends f{render(k){return"finally"+super.render(k)}}A.kind="finally";class N{constructor(k,I={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...I,_n:I.lines?` -`:""},this._extScope=k,this._scope=new r.Scope({parent:k}),this._nodes=[new g]}toString(){return this._root.render(this.opts)}name(k){return this._scope.name(k)}scopeName(k){return this._extScope.name(k)}scopeValue(k,I){let q=this._extScope.value(k,I);return(this._values[q.prefix]||(this._values[q.prefix]=new Set)).add(q),q}getScopeValue(k,I){return this._extScope.getValue(k,I)}scopeRefs(k){return this._extScope.scopeRefs(k,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(k,I,q,le){let ce=this._scope.toName(I);return q!==void 0&&le&&(this._constants[ce.str]=q),this._leafNode(new o(k,ce,q)),ce}const(k,I,q){return this._def(r.varKinds.const,k,I,q)}let(k,I,q){return this._def(r.varKinds.let,k,I,q)}var(k,I,q){return this._def(r.varKinds.var,k,I,q)}assign(k,I,q){return this._leafNode(new a(k,I,q))}add(k,I){return this._leafNode(new c(k,t.operators.ADD,I))}code(k){return typeof k=="function"?k():k!==e.nil&&this._leafNode(new p(k)),this}object(...k){let I=["{"];for(let[q,le]of k)I.length>1&&I.push(","),I.push(q),(q!==le||this.opts.es5)&&(I.push(":"),(0,e.addCodeArg)(I,le));return I.push("}"),new e._Code(I)}if(k,I,q){if(this._blockNode(new v(k)),I&&q)this.code(I).else().code(q).endIf();else if(I)this.code(I).endIf();else if(q)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(k){return this._elseNode(new v(k))}else(){return this._elseNode(new h)}endIf(){return this._endBlockNode(v,h)}_for(k,I){return this._blockNode(k),I&&this.code(I).endFor(),this}for(k,I){return this._for(new b(k),I)}forRange(k,I,q,le,ce=this.opts.es5?r.varKinds.var:r.varKinds.let){let et=this._scope.toName(k);return this._for(new _(ce,et,I,q),()=>le(et))}forOf(k,I,q,le=r.varKinds.const){let ce=this._scope.toName(k);if(this.opts.es5){let et=I instanceof e.Name?I:this.var("_arr",I);return this.forRange("_i",0,(0,e._)`${et}.length`,Xe=>{this.var(ce,(0,e._)`${et}[${Xe}]`),q(ce)})}return this._for(new S("of",le,ce,I),()=>q(ce))}forIn(k,I,q,le=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(k,(0,e._)`Object.keys(${I})`,q);let ce=this._scope.toName(k);return this._for(new S("in",le,ce,I),()=>q(ce))}endFor(){return this._endBlockNode(x)}label(k){return this._leafNode(new u(k))}break(k){return this._leafNode(new l(k))}return(k){let I=new E;if(this._blockNode(I),this.code(k),I.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(E)}try(k,I,q){if(!I&&!q)throw new Error('CodeGen: "try" without "catch" and "finally"');let le=new $;if(this._blockNode(le),this.code(k),I){let ce=this.name("e");this._currNode=le.catch=new R(ce),I(ce)}return q&&(this._currNode=le.finally=new A,this.code(q)),this._endBlockNode(R,A)}throw(k){return this._leafNode(new d(k))}block(k,I){return this._blockStarts.push(this._nodes.length),k&&this.code(k).endBlock(I),this}endBlock(k){let I=this._blockStarts.pop();if(I===void 0)throw new Error("CodeGen: not in self-balancing block");let q=this._nodes.length-I;if(q<0||k!==void 0&&q!==k)throw new Error(`CodeGen: wrong number of nodes: ${q} vs ${k} expected`);return this._nodes.length=I,this}func(k,I=e.nil,q,le){return this._blockNode(new w(k,I,q)),le&&this.code(le).endFunc(),this}endFunc(){return this._endBlockNode(w)}optimize(k=1){for(;k-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(k){return this._currNode.nodes.push(k),this}_blockNode(k){this._currNode.nodes.push(k),this._nodes.push(k)}_endBlockNode(k,I){let q=this._currNode;if(q instanceof k||I&&q instanceof I)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${I?`${k.kind}/${I.kind}`:k.kind}"`)}_elseNode(k){let I=this._currNode;if(!(I instanceof v))throw new Error('CodeGen: "else" without "if"');return this._currNode=I.else=k,this}get _root(){return this._nodes[0]}get _currNode(){let k=this._nodes;return k[k.length-1]}set _currNode(k){let I=this._nodes;I[I.length-1]=k}}t.CodeGen=N;function U(M,k){for(let I in k)M[I]=(M[I]||0)+(k[I]||0);return M}function W(M,k){return k instanceof e._CodeOrName?U(M,k.names):M}function j(M,k,I){if(M instanceof e.Name)return q(M);if(!le(M))return M;return new e._Code(M._items.reduce((ce,et)=>(et instanceof e.Name&&(et=q(et)),et instanceof e._Code?ce.push(...et._items):ce.push(et),ce),[]));function q(ce){let et=I[ce.str];return et===void 0||k[ce.str]!==1?ce:(delete k[ce.str],et)}function le(ce){return ce instanceof e._Code&&ce._items.some(et=>et instanceof e.Name&&k[et.str]===1&&I[et.str]!==void 0)}}function ae(M,k){for(let I in k)M[I]=(M[I]||0)-(k[I]||0)}function Ne(M){return typeof M=="boolean"||typeof M=="number"||M===null?!M:(0,e._)`!${H(M)}`}t.not=Ne;var ze=P(t.operators.AND);function kt(...M){return M.reduce(ze)}t.and=kt;var Ve=P(t.operators.OR);function K(...M){return M.reduce(Ve)}t.or=K;function P(M){return(k,I)=>k===e.nil?I:I===e.nil?k:(0,e._)`${H(k)} ${M} ${H(I)}`}function H(M){return M instanceof e.Name?M:(0,e._)`(${M})`}}),at=re(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=Ze(),r=_g();function n(w){let E={};for(let $ of w)E[$]=!0;return E}t.toHash=n;function i(w,E){return typeof E=="boolean"?E:Object.keys(E).length===0?!0:(s(w,E),!o(E,w.self.RULES.all))}t.alwaysValidSchema=i;function s(w,E=w.schema){let{opts:$,self:R}=w;if(!$.strictSchema||typeof E=="boolean")return;let A=R.RULES.keywords;for(let N in E)A[N]||S(w,`unknown keyword: "${N}"`)}t.checkUnknownRules=s;function o(w,E){if(typeof w=="boolean")return!w;for(let $ in w)if(E[$])return!0;return!1}t.schemaHasRules=o;function a(w,E){if(typeof w=="boolean")return!w;for(let $ in w)if($!=="$ref"&&E.all[$])return!0;return!1}t.schemaHasRulesButRef=a;function c({topSchemaRef:w,schemaPath:E},$,R,A){if(!A){if(typeof $=="number"||typeof $=="boolean")return $;if(typeof $=="string")return(0,e._)`${$}`}return(0,e._)`${w}${E}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function u(w){return p(decodeURIComponent(w))}t.unescapeFragment=u;function l(w){return encodeURIComponent(d(w))}t.escapeFragment=l;function d(w){return typeof w=="number"?`${w}`:w.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(w){return w.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function m(w,E){if(Array.isArray(w))for(let $ of w)E($);else E(w)}t.eachItem=m;function f({mergeNames:w,mergeToName:E,mergeValues:$,resultToName:R}){return(A,N,U,W)=>{let j=U===void 0?N:U instanceof e.Name?(N instanceof e.Name?w(A,N,U):E(A,N,U),U):N instanceof e.Name?(E(A,U,N),N):$(N,U);return W===e.Name&&!(j instanceof e.Name)?R(A,j):j}}t.mergeEvaluated={props:f({mergeNames:(w,E,$)=>w.if((0,e._)`${$} !== true && ${E} !== undefined`,()=>{w.if((0,e._)`${E} === true`,()=>w.assign($,!0),()=>w.assign($,(0,e._)`${$} || {}`).code((0,e._)`Object.assign(${$}, ${E})`))}),mergeToName:(w,E,$)=>w.if((0,e._)`${$} !== true`,()=>{E===!0?w.assign($,!0):(w.assign($,(0,e._)`${$} || {}`),h(w,$,E))}),mergeValues:(w,E)=>w===!0?!0:{...w,...E},resultToName:g}),items:f({mergeNames:(w,E,$)=>w.if((0,e._)`${$} !== true && ${E} !== undefined`,()=>w.assign($,(0,e._)`${E} === true ? true : ${$} > ${E} ? ${$} : ${E}`)),mergeToName:(w,E,$)=>w.if((0,e._)`${$} !== true`,()=>w.assign($,E===!0?!0:(0,e._)`${$} > ${E} ? ${$} : ${E}`)),mergeValues:(w,E)=>w===!0?!0:Math.max(w,E),resultToName:(w,E)=>w.var("items",E)})};function g(w,E){if(E===!0)return w.var("props",!0);let $=w.var("props",(0,e._)`{}`);return E!==void 0&&h(w,$,E),$}t.evaluatedPropsToName=g;function h(w,E,$){Object.keys($).forEach(R=>w.assign((0,e._)`${E}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=h;var v={};function x(w,E){return w.scopeValue("func",{ref:E,code:v[E.code]||(v[E.code]=new r._Code(E.code))})}t.useFunc=x;var b;(function(w){w[w.Num=0]="Num",w[w.Str=1]="Str"})(b||(t.Type=b={}));function _(w,E,$){if(w instanceof e.Name){let R=E===b.Num;return $?R?(0,e._)`"[" + ${w} + "]"`:(0,e._)`"['" + ${w} + "']"`:R?(0,e._)`"/" + ${w}`:(0,e._)`"/" + ${w}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return $?(0,e.getProperty)(w).toString():"/"+d(w)}t.getErrorPath=_;function S(w,E,$=w.opts.strictSchema){if($){if(E=`strict mode: ${E}`,$===!0)throw new Error(E);w.self.logger.warn(E)}}t.checkStrictMode=S}),Vs=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),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}),Tg=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=Ze(),r=at(),n=Vs();t.keywordError={message:({keyword:h})=>(0,e.str)`must pass "${h}" keyword validation`},t.keyword$DataError={message:({keyword:h,schemaType:v})=>v?(0,e.str)`"${h}" keyword must be ${v} ($data)`:(0,e.str)`"${h}" keyword is invalid ($data)`};function i(h,v=t.keywordError,x,b){let{it:_}=h,{gen:S,compositeRule:w,allErrors:E}=_,$=d(h,v,x);b??(w||E)?c(S,$):u(_,(0,e._)`[${$}]`)}t.reportError=i;function s(h,v=t.keywordError,x){let{it:b}=h,{gen:_,compositeRule:S,allErrors:w}=b,E=d(h,v,x);c(_,E),S||w||u(b,n.default.vErrors)}t.reportExtraError=s;function o(h,v){h.assign(n.default.errors,v),h.if((0,e._)`${n.default.vErrors} !== null`,()=>h.if(v,()=>h.assign((0,e._)`${n.default.vErrors}.length`,v),()=>h.assign(n.default.vErrors,null)))}t.resetErrorsCount=o;function a({gen:h,keyword:v,schemaValue:x,data:b,errsCount:_,it:S}){if(_===void 0)throw new Error("ajv implementation error");let w=h.name("err");h.forRange("i",_,n.default.errors,E=>{h.const(w,(0,e._)`${n.default.vErrors}[${E}]`),h.if((0,e._)`${w}.instancePath === undefined`,()=>h.assign((0,e._)`${w}.instancePath`,(0,e.strConcat)(n.default.instancePath,S.errorPath))),h.assign((0,e._)`${w}.schemaPath`,(0,e.str)`${S.errSchemaPath}/${v}`),S.opts.verbose&&(h.assign((0,e._)`${w}.schema`,x),h.assign((0,e._)`${w}.data`,b))})}t.extendErrors=a;function c(h,v){let x=h.const("err",v);h.if((0,e._)`${n.default.vErrors} === null`,()=>h.assign(n.default.vErrors,(0,e._)`[${x}]`),(0,e._)`${n.default.vErrors}.push(${x})`),h.code((0,e._)`${n.default.errors}++`)}function u(h,v){let{gen:x,validateName:b,schemaEnv:_}=h;_.$async?x.throw((0,e._)`new ${h.ValidationError}(${v})`):(x.assign((0,e._)`${b}.errors`,v),x.return(!1))}var l={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 d(h,v,x){let{createErrors:b}=h.it;return b===!1?(0,e._)`{}`:p(h,v,x)}function p(h,v,x={}){let{gen:b,it:_}=h,S=[m(_,x),f(h,x)];return g(h,v,S),b.object(...S)}function m({errorPath:h},{instancePath:v}){let x=v?(0,e.str)`${h}${(0,r.getErrorPath)(v,r.Type.Str)}`:h;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,x)]}function f({keyword:h,it:{errSchemaPath:v}},{schemaPath:x,parentSchema:b}){let _=b?v:(0,e.str)`${v}/${h}`;return x&&(_=(0,e.str)`${_}${(0,r.getErrorPath)(x,r.Type.Str)}`),[l.schemaPath,_]}function g(h,{params:v,message:x},b){let{keyword:_,data:S,schemaValue:w,it:E}=h,{opts:$,propertyName:R,topSchemaRef:A,schemaPath:N}=E;b.push([l.keyword,_],[l.params,typeof v=="function"?v(h):v||(0,e._)`{}`]),$.messages&&b.push([l.message,typeof x=="function"?x(h):x]),$.verbose&&b.push([l.schema,w],[l.parentSchema,(0,e._)`${A}${N}`],[n.default.data,S]),R&&b.push([l.propertyName,R])}}),Ioe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=Tg(),r=Ze(),n=Vs(),i={message:"boolean schema is false"};function s(c){let{gen:u,schema:l,validateName:d}=c;l===!1?a(c,!1):typeof l=="object"&&l.$async===!0?u.return(n.default.data):(u.assign((0,r._)`${d}.errors`,null),u.return(!0))}t.topBoolOrEmptySchema=s;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),a(c)):l.var(u,!0)}t.boolOrEmptySchema=o;function a(c,u){let{gen:l,data:d}=c,p={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,e.reportError)(p,i,void 0,u)}}),m2=re(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(s){return typeof s=="string"&&r.has(s)}t.isJSONType=n;function i(){let s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=i}),f2=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:i,self:s},o){let a=s.RULES.types[o];return a&&a!==!0&&r(i,a)}t.schemaHasRulesForType=e;function r(i,s){return s.rules.some(o=>n(i,o))}t.shouldUseGroup=r;function n(i,s){var o;return i[s.keyword]!==void 0||((o=s.definition.implements)===null||o===void 0?void 0:o.some(a=>i[a]!==void 0))}t.shouldUseRule=n}),bg=re(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=m2(),r=f2(),n=Tg(),i=Ze(),s=at(),o;(function(b){b[b.Correct=0]="Correct",b[b.Wrong=1]="Wrong"})(o||(t.DataType=o={}));function a(b){let _=c(b.type);if(_.includes("null")){if(b.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!_.length&&b.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');b.nullable===!0&&_.push("null")}return _}t.getSchemaTypes=a;function c(b){let _=Array.isArray(b)?b:b?[b]:[];if(_.every(e.isJSONType))return _;throw new Error("type must be JSONType or JSONType[]: "+_.join(","))}t.getJSONTypes=c;function u(b,_){let{gen:S,data:w,opts:E}=b,$=d(_,E.coerceTypes),R=_.length>0&&!($.length===0&&_.length===1&&(0,r.schemaHasRulesForType)(b,_[0]));if(R){let A=g(_,w,E.strictNumbers,o.Wrong);S.if(A,()=>{$.length?p(b,_,$):v(b)})}return R}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(b,_){return _?b.filter(S=>l.has(S)||_==="array"&&S==="array"):[]}function p(b,_,S){let{gen:w,data:E,opts:$}=b,R=w.let("dataType",(0,i._)`typeof ${E}`),A=w.let("coerced",(0,i._)`undefined`);$.coerceTypes==="array"&&w.if((0,i._)`${R} == 'object' && Array.isArray(${E}) && ${E}.length == 1`,()=>w.assign(E,(0,i._)`${E}[0]`).assign(R,(0,i._)`typeof ${E}`).if(g(_,E,$.strictNumbers),()=>w.assign(A,E))),w.if((0,i._)`${A} !== undefined`);for(let U of S)(l.has(U)||U==="array"&&$.coerceTypes==="array")&&N(U);w.else(),v(b),w.endIf(),w.if((0,i._)`${A} !== undefined`,()=>{w.assign(E,A),m(b,A)});function N(U){switch(U){case"string":w.elseIf((0,i._)`${R} == "number" || ${R} == "boolean"`).assign(A,(0,i._)`"" + ${E}`).elseIf((0,i._)`${E} === null`).assign(A,(0,i._)`""`);return;case"number":w.elseIf((0,i._)`${R} == "boolean" || ${E} === null - || (${R} == "string" && ${E} && ${E} == +${E})`).assign(A,(0,i._)`+${E}`);return;case"integer":w.elseIf((0,i._)`${R} === "boolean" || ${E} === null - || (${R} === "string" && ${E} && ${E} == +${E} && !(${E} % 1))`).assign(A,(0,i._)`+${E}`);return;case"boolean":w.elseIf((0,i._)`${E} === "false" || ${E} === 0 || ${E} === null`).assign(A,!1).elseIf((0,i._)`${E} === "true" || ${E} === 1`).assign(A,!0);return;case"null":w.elseIf((0,i._)`${E} === "" || ${E} === 0 || ${E} === false`),w.assign(A,null);return;case"array":w.elseIf((0,i._)`${R} === "string" || ${R} === "number" - || ${R} === "boolean" || ${E} === null`).assign(A,(0,i._)`[${E}]`)}}}function m({gen:b,parentData:_,parentDataProperty:S},w){b.if((0,i._)`${_} !== undefined`,()=>b.assign((0,i._)`${_}[${S}]`,w))}function f(b,_,S,w=o.Correct){let E=w===o.Correct?i.operators.EQ:i.operators.NEQ,$;switch(b){case"null":return(0,i._)`${_} ${E} null`;case"array":$=(0,i._)`Array.isArray(${_})`;break;case"object":$=(0,i._)`${_} && typeof ${_} == "object" && !Array.isArray(${_})`;break;case"integer":$=R((0,i._)`!(${_} % 1) && !isNaN(${_})`);break;case"number":$=R();break;default:return(0,i._)`typeof ${_} ${E} ${b}`}return w===o.Correct?$:(0,i.not)($);function R(A=i.nil){return(0,i.and)((0,i._)`typeof ${_} == "number"`,A,S?(0,i._)`isFinite(${_})`:i.nil)}}t.checkDataType=f;function g(b,_,S,w){if(b.length===1)return f(b[0],_,S,w);let E,$=(0,s.toHash)(b);if($.array&&$.object){let R=(0,i._)`typeof ${_} != "object"`;E=$.null?R:(0,i._)`!${_} || ${R}`,delete $.null,delete $.array,delete $.object}else E=i.nil;$.number&&delete $.integer;for(let R in $)E=(0,i.and)(E,f(R,_,S,w));return E}t.checkDataTypes=g;var h={message:({schema:b})=>`must be ${b}`,params:({schema:b,schemaValue:_})=>typeof b=="string"?(0,i._)`{type: ${b}}`:(0,i._)`{type: ${_}}`};function v(b){let _=x(b);(0,n.reportError)(_,h)}t.reportTypeError=v;function x(b){let{gen:_,data:S,schema:w}=b,E=(0,s.schemaRefOrVal)(b,w,"type");return{gen:_,keyword:"type",data:S,schema:w.type,schemaCode:E,schemaValue:E,parentSchema:w,params:{},it:b}}}),Roe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=Ze(),r=at();function n(s,o){let{properties:a,items:c}=s.schema;if(o==="object"&&a)for(let u in a)i(s,u,a[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(s,l,u.default))}t.assignDefaults=n;function i(s,o,a){let{gen:c,compositeRule:u,data:l,opts:d}=s;if(a===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(o)}`;if(u){(0,r.checkStrictMode)(s,`default is ignored for: ${p}`);return}let m=(0,e._)`${p} === undefined`;d.useDefaults==="empty"&&(m=(0,e._)`${m} || ${p} === null || ${p} === ""`),c.if(m,(0,e._)`${p} = ${(0,e.stringify)(a)}`)}}),oi=re(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=Ze(),r=at(),n=Vs(),i=at();function s(b,_){let{gen:S,data:w,it:E}=b;S.if(d(S,w,_,E.opts.ownProperties),()=>{b.setParams({missingProperty:(0,e._)`${_}`},!0),b.error()})}t.checkReportMissingProp=s;function o({gen:b,data:_,it:{opts:S}},w,E){return(0,e.or)(...w.map($=>(0,e.and)(d(b,_,$,S.ownProperties),(0,e._)`${E} = ${$}`)))}t.checkMissingProp=o;function a(b,_){b.setParams({missingProperty:_},!0),b.error()}t.reportMissingProp=a;function c(b){return b.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(b,_,S){return(0,e._)`${c(b)}.call(${_}, ${S})`}t.isOwnProperty=u;function l(b,_,S,w){let E=(0,e._)`${_}${(0,e.getProperty)(S)} !== undefined`;return w?(0,e._)`${E} && ${u(b,_,S)}`:E}t.propertyInData=l;function d(b,_,S,w){let E=(0,e._)`${_}${(0,e.getProperty)(S)} === undefined`;return w?(0,e.or)(E,(0,e.not)(u(b,_,S))):E}t.noPropertyInData=d;function p(b){return b?Object.keys(b).filter(_=>_!=="__proto__"):[]}t.allSchemaProperties=p;function m(b,_){return p(_).filter(S=>!(0,r.alwaysValidSchema)(b,_[S]))}t.schemaProperties=m;function f({schemaCode:b,data:_,it:{gen:S,topSchemaRef:w,schemaPath:E,errorPath:$},it:R},A,N,U){let W=U?(0,e._)`${b}, ${_}, ${w}${E}`:_,j=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,$)],[n.default.parentData,R.parentData],[n.default.parentDataProperty,R.parentDataProperty],[n.default.rootData,n.default.rootData]];R.opts.dynamicRef&&j.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let ae=(0,e._)`${W}, ${S.object(...j)}`;return N!==e.nil?(0,e._)`${A}.call(${N}, ${ae})`:(0,e._)`${A}(${ae})`}t.callValidateCode=f;var g=(0,e._)`new RegExp`;function h({gen:b,it:{opts:_}},S){let w=_.unicodeRegExp?"u":"",{regExp:E}=_.code,$=E(S,w);return b.scopeValue("pattern",{key:$.toString(),ref:$,code:(0,e._)`${E.code==="new RegExp"?g:(0,i.useFunc)(b,E)}(${S}, ${w})`})}t.usePattern=h;function v(b){let{gen:_,data:S,keyword:w,it:E}=b,$=_.name("valid");if(E.allErrors){let A=_.let("valid",!0);return R(()=>_.assign(A,!1)),A}return _.var($,!0),R(()=>_.break()),$;function R(A){let N=_.const("len",(0,e._)`${S}.length`);_.forRange("i",0,N,U=>{b.subschema({keyword:w,dataProp:U,dataPropType:r.Type.Num},$),_.if((0,e.not)($),A)})}}t.validateArray=v;function x(b){let{gen:_,schema:S,keyword:w,it:E}=b;if(!Array.isArray(S))throw new Error("ajv implementation error");if(S.some(N=>(0,r.alwaysValidSchema)(E,N))&&!E.opts.unevaluated)return;let R=_.let("valid",!1),A=_.name("_valid");_.block(()=>S.forEach((N,U)=>{let W=b.subschema({keyword:w,schemaProp:U,compositeRule:!0},A);_.assign(R,(0,e._)`${R} || ${A}`),b.mergeValidEvaluated(W,A)||_.if((0,e.not)(R))})),b.result(R,()=>b.reset(),()=>b.error(!0))}t.validateUnion=x}),Ooe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=Ze(),r=Vs(),n=oi(),i=Tg();function s(m,f){let{gen:g,keyword:h,schema:v,parentSchema:x,it:b}=m,_=f.macro.call(b.self,v,x,b),S=l(g,h,_);b.opts.validateSchema!==!1&&b.self.validateSchema(_,!0);let w=g.name("valid");m.subschema({schema:_,schemaPath:e.nil,errSchemaPath:`${b.errSchemaPath}/${h}`,topSchemaRef:S,compositeRule:!0},w),m.pass(w,()=>m.error(!0))}t.macroKeywordCode=s;function o(m,f){var g;let{gen:h,keyword:v,schema:x,parentSchema:b,$data:_,it:S}=m;u(S,f);let w=!_&&f.compile?f.compile.call(S.self,x,b,S):f.validate,E=l(h,v,w),$=h.let("valid");m.block$data($,R),m.ok((g=f.valid)!==null&&g!==void 0?g:$);function R(){if(f.errors===!1)U(),f.modifying&&a(m),W(()=>m.error());else{let j=f.async?A():N();f.modifying&&a(m),W(()=>c(m,j))}}function A(){let j=h.let("ruleErrs",null);return h.try(()=>U((0,e._)`await `),ae=>h.assign($,!1).if((0,e._)`${ae} instanceof ${S.ValidationError}`,()=>h.assign(j,(0,e._)`${ae}.errors`),()=>h.throw(ae))),j}function N(){let j=(0,e._)`${E}.errors`;return h.assign(j,null),U(e.nil),j}function U(j=f.async?(0,e._)`await `:e.nil){let ae=S.opts.passContext?r.default.this:r.default.self,Ne=!("compile"in f&&!_||f.schema===!1);h.assign($,(0,e._)`${j}${(0,n.callValidateCode)(m,E,ae,Ne)}`,f.modifying)}function W(j){var ae;h.if((0,e.not)((ae=f.valid)!==null&&ae!==void 0?ae:$),j)}}t.funcKeywordCode=o;function a(m){let{gen:f,data:g,it:h}=m;f.if(h.parentData,()=>f.assign(g,(0,e._)`${h.parentData}[${h.parentDataProperty}]`))}function c(m,f){let{gen:g}=m;g.if((0,e._)`Array.isArray(${f})`,()=>{g.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${f} : ${r.default.vErrors}.concat(${f})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,i.extendErrors)(m)},()=>m.error())}function u({schemaEnv:m},f){if(f.async&&!m.$async)throw new Error("async keyword in sync schema")}function l(m,f,g){if(g===void 0)throw new Error(`keyword "${f}" failed to compile`);return m.scopeValue("keyword",typeof g=="function"?{ref:g}:{ref:g,code:(0,e.stringify)(g)})}function d(m,f,g=!1){return!f.length||f.some(h=>h==="array"?Array.isArray(m):h==="object"?m&&typeof m=="object"&&!Array.isArray(m):typeof m==h||g&&typeof m>"u")}t.validSchemaType=d;function p({schema:m,opts:f,self:g,errSchemaPath:h},v,x){if(Array.isArray(v.keyword)?!v.keyword.includes(x):v.keyword!==x)throw new Error("ajv implementation error");let b=v.dependencies;if(b?.some(_=>!Object.prototype.hasOwnProperty.call(m,_)))throw new Error(`parent schema must have dependencies of ${x}: ${b.join(",")}`);if(v.validateSchema&&!v.validateSchema(m[x])){let S=`keyword "${x}" value is invalid at path "${h}": `+g.errorsText(v.validateSchema.errors);if(f.validateSchema==="log")g.logger.error(S);else throw new Error(S)}}t.validateKeywordUsage=p}),Poe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=Ze(),r=at();function n(o,{keyword:a,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(a!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){let m=o.schema[a];return c===void 0?{schema:m,schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(a)}`,errSchemaPath:`${o.errSchemaPath}/${a}`}:{schema:m[c],schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(a)}${(0,e.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${a}/${(0,r.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||p===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:p,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=n;function i(o,a,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:p}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:m}=a;if(c!==void 0){let{errorPath:g,dataPathArr:h,opts:v}=a,x=m.let("data",(0,e._)`${a.data}${(0,e.getProperty)(c)}`,!0);f(x),o.errorPath=(0,e.str)`${g}${(0,r.getErrorPath)(c,u,v.jsPropertySyntax)}`,o.parentDataProperty=(0,e._)`${c}`,o.dataPathArr=[...h,o.parentDataProperty]}if(l!==void 0){let g=l instanceof e.Name?l:m.let("data",l,!0);f(g),p!==void 0&&(o.propertyName=p)}d&&(o.dataTypes=d);function f(g){o.data=g,o.dataLevel=a.dataLevel+1,o.dataTypes=[],a.definedProperties=new Set,o.parentData=a.data,o.dataNames=[...a.dataNames,g]}}t.extendSubschemaData=i;function s(o,{jtdDiscriminator:a,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(o.compositeRule=u),l!==void 0&&(o.createErrors=l),d!==void 0&&(o.allErrors=d),o.jtdDiscriminator=a,o.jtdMetadata=c}t.extendSubschemaMode=s}),h2=re((t,e)=>{e.exports=function r(n,i){if(n===i)return!0;if(n&&i&&typeof n=="object"&&typeof i=="object"){if(n.constructor!==i.constructor)return!1;var s,o,a;if(Array.isArray(n)){if(s=n.length,s!=i.length)return!1;for(o=s;o--!==0;)if(!r(n[o],i[o]))return!1;return!0}if(n.constructor===RegExp)return n.source===i.source&&n.flags===i.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===i.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===i.toString();if(a=Object.keys(n),s=a.length,s!==Object.keys(i).length)return!1;for(o=s;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,a[o]))return!1;for(o=s;o--!==0;){var c=a[o];if(!r(n[c],i[c]))return!1}return!0}return n!==n&&i!==i}}),Coe=re((t,e)=>{var r=e.exports=function(s,o,a){typeof o=="function"&&(a=o,o={}),a=o.cb||a;var c=typeof a=="function"?a:a.pre||function(){},u=a.post||function(){};n(o,c,u,s,"",s)};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(s,o,a,c,u,l,d,p,m,f){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,p,m,f);for(var g in c){var h=c[g];if(Array.isArray(h)){if(g in r.arrayKeywords)for(var v=0;v{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=at(),r=h2(),n=Coe(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function s(h,v=!0){return typeof h=="boolean"?!0:v===!0?!a(h):v?c(h)<=v:!1}t.inlineRef=s;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function a(h){for(let v in h){if(o.has(v))return!0;let x=h[v];if(Array.isArray(x)&&x.some(a)||typeof x=="object"&&a(x))return!0}return!1}function c(h){let v=0;for(let x in h){if(x==="$ref")return 1/0;if(v++,!i.has(x)&&(typeof h[x]=="object"&&(0,e.eachItem)(h[x],b=>v+=c(b)),v===1/0))return 1/0}return v}function u(h,v="",x){x!==!1&&(v=p(v));let b=h.parse(v);return l(h,b)}t.getFullPath=u;function l(h,v){return h.serialize(v).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(h){return h?h.replace(d,""):""}t.normalizeId=p;function m(h,v,x){return x=p(x),h.resolve(v,x)}t.resolveUrl=m;var f=/^[a-z_][-a-z0-9._]*$/i;function g(h,v){if(typeof h=="boolean")return{};let{schemaId:x,uriResolver:b}=this.opts,_=p(h[x]||v),S={"":_},w=u(b,_,!1),E={},$=new Set;return n(h,{allKeys:!0},(N,U,W,j)=>{if(j===void 0)return;let ae=w+U,Ne=S[j];typeof N[x]=="string"&&(Ne=ze.call(this,N[x])),kt.call(this,N.$anchor),kt.call(this,N.$dynamicAnchor),S[U]=Ne;function ze(Ve){let K=this.opts.uriResolver.resolve;if(Ve=p(Ne?K(Ne,Ve):Ve),$.has(Ve))throw A(Ve);$.add(Ve);let P=this.refs[Ve];return typeof P=="string"&&(P=this.refs[P]),typeof P=="object"?R(N,P.schema,Ve):Ve!==p(ae)&&(Ve[0]==="#"?(R(N,E[Ve],Ve),E[Ve]=N):this.refs[Ve]=ae),Ve}function kt(Ve){if(typeof Ve=="string"){if(!f.test(Ve))throw new Error(`invalid anchor "${Ve}"`);ze.call(this,`#${Ve}`)}}}),E;function R(N,U,W){if(U!==void 0&&!r(N,U))throw A(W)}function A(N){return new Error(`reference "${N}" resolves to more than one schema`)}}t.getSchemaRefs=g}),Rg=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=Ioe(),r=bg(),n=f2(),i=bg(),s=Roe(),o=Ooe(),a=Poe(),c=Ze(),u=Vs(),l=Ig(),d=at(),p=Tg();function m(C){if(w(C)&&($(C),S(C))){v(C);return}f(C,()=>(0,e.topBoolOrEmptySchema)(C))}t.validateFunctionCode=m;function f({gen:C,validateName:D,schema:Z,schemaEnv:J,opts:ue},Ge){ue.code.es5?C.func(D,(0,c._)`${u.default.data}, ${u.default.valCxt}`,J.$async,()=>{C.code((0,c._)`"use strict"; ${b(Z,ue)}`),h(C,ue),C.code(Ge)}):C.func(D,(0,c._)`${u.default.data}, ${g(ue)}`,J.$async,()=>C.code(b(Z,ue)).code(Ge))}function g(C){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${C.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function h(C,D){C.if(u.default.valCxt,()=>{C.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),C.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),C.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),C.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),D.dynamicRef&&C.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{C.var(u.default.instancePath,(0,c._)`""`),C.var(u.default.parentData,(0,c._)`undefined`),C.var(u.default.parentDataProperty,(0,c._)`undefined`),C.var(u.default.rootData,u.default.data),D.dynamicRef&&C.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function v(C){let{schema:D,opts:Z,gen:J}=C;f(C,()=>{Z.$comment&&D.$comment&&j(C),N(C),J.let(u.default.vErrors,null),J.let(u.default.errors,0),Z.unevaluated&&x(C),R(C),ae(C)})}function x(C){let{gen:D,validateName:Z}=C;C.evaluated=D.const("evaluated",(0,c._)`${Z}.evaluated`),D.if((0,c._)`${C.evaluated}.dynamicProps`,()=>D.assign((0,c._)`${C.evaluated}.props`,(0,c._)`undefined`)),D.if((0,c._)`${C.evaluated}.dynamicItems`,()=>D.assign((0,c._)`${C.evaluated}.items`,(0,c._)`undefined`))}function b(C,D){let Z=typeof C=="object"&&C[D.schemaId];return Z&&(D.code.source||D.code.process)?(0,c._)`/*# sourceURL=${Z} */`:c.nil}function _(C,D){if(w(C)&&($(C),S(C))){E(C,D);return}(0,e.boolOrEmptySchema)(C,D)}function S({schema:C,self:D}){if(typeof C=="boolean")return!C;for(let Z in C)if(D.RULES.all[Z])return!0;return!1}function w(C){return typeof C.schema!="boolean"}function E(C,D){let{schema:Z,gen:J,opts:ue}=C;ue.$comment&&Z.$comment&&j(C),U(C),W(C);let Ge=J.const("_errs",u.default.errors);R(C,Ge),J.var(D,(0,c._)`${Ge} === ${u.default.errors}`)}function $(C){(0,d.checkUnknownRules)(C),A(C)}function R(C,D){if(C.opts.jtd)return ze(C,[],!1,D);let Z=(0,r.getSchemaTypes)(C.schema),J=(0,r.coerceAndCheckDataType)(C,Z);ze(C,Z,!J,D)}function A(C){let{schema:D,errSchemaPath:Z,opts:J,self:ue}=C;D.$ref&&J.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(D,ue.RULES)&&ue.logger.warn(`$ref: keywords ignored in schema at path "${Z}"`)}function N(C){let{schema:D,opts:Z}=C;D.default!==void 0&&Z.useDefaults&&Z.strictSchema&&(0,d.checkStrictMode)(C,"default is ignored in the schema root")}function U(C){let D=C.schema[C.opts.schemaId];D&&(C.baseId=(0,l.resolveUrl)(C.opts.uriResolver,C.baseId,D))}function W(C){if(C.schema.$async&&!C.schemaEnv.$async)throw new Error("async schema in sync schema")}function j({gen:C,schemaEnv:D,schema:Z,errSchemaPath:J,opts:ue}){let Ge=Z.$comment;if(ue.$comment===!0)C.code((0,c._)`${u.default.self}.logger.log(${Ge})`);else if(typeof ue.$comment=="function"){let dr=(0,c.str)`${J}/$comment`,qn=C.scopeValue("root",{ref:D.root});C.code((0,c._)`${u.default.self}.opts.$comment(${Ge}, ${dr}, ${qn}.schema)`)}}function ae(C){let{gen:D,schemaEnv:Z,validateName:J,ValidationError:ue,opts:Ge}=C;Z.$async?D.if((0,c._)`${u.default.errors} === 0`,()=>D.return(u.default.data),()=>D.throw((0,c._)`new ${ue}(${u.default.vErrors})`)):(D.assign((0,c._)`${J}.errors`,u.default.vErrors),Ge.unevaluated&&Ne(C),D.return((0,c._)`${u.default.errors} === 0`))}function Ne({gen:C,evaluated:D,props:Z,items:J}){Z instanceof c.Name&&C.assign((0,c._)`${D}.props`,Z),J instanceof c.Name&&C.assign((0,c._)`${D}.items`,J)}function ze(C,D,Z,J){let{gen:ue,schema:Ge,data:dr,allErrors:qn,opts:Gr,self:Wr}=C,{RULES:pr}=Wr;if(Ge.$ref&&(Gr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(Ge,pr))){ue.block(()=>ce(C,"$ref",pr.all.$ref.definition));return}Gr.jtd||Ve(C,D),ue.block(()=>{for(let Sn of pr.rules)Xo(Sn);Xo(pr.post)});function Xo(Sn){(0,n.shouldUseGroup)(Ge,Sn)&&(Sn.type?(ue.if((0,i.checkDataType)(Sn.type,dr,Gr.strictNumbers)),kt(C,Sn),D.length===1&&D[0]===Sn.type&&Z&&(ue.else(),(0,i.reportTypeError)(C)),ue.endIf()):kt(C,Sn),qn||ue.if((0,c._)`${u.default.errors} === ${J||0}`))}}function kt(C,D){let{gen:Z,schema:J,opts:{useDefaults:ue}}=C;ue&&(0,s.assignDefaults)(C,D.type),Z.block(()=>{for(let Ge of D.rules)(0,n.shouldUseRule)(J,Ge)&&ce(C,Ge.keyword,Ge.definition,D.type)})}function Ve(C,D){C.schemaEnv.meta||!C.opts.strictTypes||(K(C,D),C.opts.allowUnionTypes||P(C,D),H(C,C.dataTypes))}function K(C,D){if(D.length){if(!C.dataTypes.length){C.dataTypes=D;return}D.forEach(Z=>{k(C.dataTypes,Z)||q(C,`type "${Z}" not allowed by context "${C.dataTypes.join(",")}"`)}),I(C,D)}}function P(C,D){D.length>1&&!(D.length===2&&D.includes("null"))&&q(C,"use allowUnionTypes to allow union type keyword")}function H(C,D){let Z=C.self.RULES.all;for(let J in Z){let ue=Z[J];if(typeof ue=="object"&&(0,n.shouldUseRule)(C.schema,ue)){let{type:Ge}=ue.definition;Ge.length&&!Ge.some(dr=>M(D,dr))&&q(C,`missing type "${Ge.join(",")}" for keyword "${J}"`)}}}function M(C,D){return C.includes(D)||D==="number"&&C.includes("integer")}function k(C,D){return C.includes(D)||D==="integer"&&C.includes("number")}function I(C,D){let Z=[];for(let J of C.dataTypes)k(D,J)?Z.push(J):D.includes("integer")&&J==="number"&&Z.push("integer");C.dataTypes=Z}function q(C,D){let Z=C.schemaEnv.baseId+C.errSchemaPath;D+=` at "${Z}" (strictTypes)`,(0,d.checkStrictMode)(C,D,C.opts.strictTypes)}class le{constructor(D,Z,J){if((0,o.validateKeywordUsage)(D,Z,J),this.gen=D.gen,this.allErrors=D.allErrors,this.keyword=J,this.data=D.data,this.schema=D.schema[J],this.$data=Z.$data&&D.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(D,this.schema,J,this.$data),this.schemaType=Z.schemaType,this.parentSchema=D.schema,this.params={},this.it=D,this.def=Z,this.$data)this.schemaCode=D.gen.const("vSchema",Ft(this.$data,D));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,Z.schemaType,Z.allowUndefined))throw new Error(`${J} value must be ${JSON.stringify(Z.schemaType)}`);("code"in Z?Z.trackErrors:Z.errors!==!1)&&(this.errsCount=D.gen.const("_errs",u.default.errors))}result(D,Z,J){this.failResult((0,c.not)(D),Z,J)}failResult(D,Z,J){this.gen.if(D),J?J():this.error(),Z?(this.gen.else(),Z(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(D,Z){this.failResult((0,c.not)(D),void 0,Z)}fail(D){if(D===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(D),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(D){if(!this.$data)return this.fail(D);let{schemaCode:Z}=this;this.fail((0,c._)`${Z} !== undefined && (${(0,c.or)(this.invalid$data(),D)})`)}error(D,Z,J){if(Z){this.setParams(Z),this._error(D,J),this.setParams({});return}this._error(D,J)}_error(D,Z){(D?p.reportExtraError:p.reportError)(this,this.def.error,Z)}$dataError(){(0,p.reportError)(this,this.def.$dataError||p.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,p.resetErrorsCount)(this.gen,this.errsCount)}ok(D){this.allErrors||this.gen.if(D)}setParams(D,Z){Z?Object.assign(this.params,D):this.params=D}block$data(D,Z,J=c.nil){this.gen.block(()=>{this.check$data(D,J),Z()})}check$data(D=c.nil,Z=c.nil){if(!this.$data)return;let{gen:J,schemaCode:ue,schemaType:Ge,def:dr}=this;J.if((0,c.or)((0,c._)`${ue} === undefined`,Z)),D!==c.nil&&J.assign(D,!0),(Ge.length||dr.validateSchema)&&(J.elseIf(this.invalid$data()),this.$dataError(),D!==c.nil&&J.assign(D,!1)),J.else()}invalid$data(){let{gen:D,schemaCode:Z,schemaType:J,def:ue,it:Ge}=this;return(0,c.or)(dr(),qn());function dr(){if(J.length){if(!(Z instanceof c.Name))throw new Error("ajv implementation error");let Gr=Array.isArray(J)?J:[J];return(0,c._)`${(0,i.checkDataTypes)(Gr,Z,Ge.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function qn(){if(ue.validateSchema){let Gr=D.scopeValue("validate$data",{ref:ue.validateSchema});return(0,c._)`!${Gr}(${Z})`}return c.nil}}subschema(D,Z){let J=(0,a.getSubschema)(this.it,D);(0,a.extendSubschemaData)(J,this.it,D),(0,a.extendSubschemaMode)(J,D);let ue={...this.it,...J,items:void 0,props:void 0};return _(ue,Z),ue}mergeEvaluated(D,Z){let{it:J,gen:ue}=this;J.opts.unevaluated&&(J.props!==!0&&D.props!==void 0&&(J.props=d.mergeEvaluated.props(ue,D.props,J.props,Z)),J.items!==!0&&D.items!==void 0&&(J.items=d.mergeEvaluated.items(ue,D.items,J.items,Z)))}mergeValidEvaluated(D,Z){let{it:J,gen:ue}=this;if(J.opts.unevaluated&&(J.props!==!0||J.items!==!0))return ue.if(Z,()=>this.mergeEvaluated(D,c.Name)),!0}}t.KeywordCxt=le;function ce(C,D,Z,J){let ue=new le(C,Z,D);"code"in Z?Z.code(ue,J):ue.$data&&Z.validate?(0,o.funcKeywordCode)(ue,Z):"macro"in Z?(0,o.macroKeywordCode)(ue,Z):(Z.compile||Z.validate)&&(0,o.funcKeywordCode)(ue,Z)}var et=/^\/(?:[^~]|~0|~1)*$/,Xe=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ft(C,{dataLevel:D,dataNames:Z,dataPathArr:J}){let ue,Ge;if(C==="")return u.default.rootData;if(C[0]==="/"){if(!et.test(C))throw new Error(`Invalid JSON-pointer: ${C}`);ue=C,Ge=u.default.rootData}else{let Wr=Xe.exec(C);if(!Wr)throw new Error(`Invalid JSON-pointer: ${C}`);let pr=+Wr[1];if(ue=Wr[2],ue==="#"){if(pr>=D)throw new Error(Gr("property/index",pr));return J[D-pr]}if(pr>D)throw new Error(Gr("data",pr));if(Ge=Z[D-pr],!ue)return Ge}let dr=Ge,qn=ue.split("/");for(let Wr of qn)Wr&&(Ge=(0,c._)`${Ge}${(0,c.getProperty)((0,d.unescapeJsonPointer)(Wr))}`,dr=(0,c._)`${dr} && ${Ge}`);return dr;function Gr(Wr,pr){return`Cannot access ${Wr} ${pr} levels up, current level is ${D}`}}t.getData=Ft}),qk=re(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}),Og=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ig();class r extends Error{constructor(i,s,o,a){super(a||`can't resolve reference ${o} from id ${s}`),this.missingRef=(0,e.resolveUrl)(i,s,o),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(i,this.missingRef))}}t.default=r}),Fk=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=Ze(),r=qk(),n=Vs(),i=Ig(),s=at(),o=Rg();class a{constructor(x){var b;this.refs={},this.dynamicAnchors={};let _;typeof x.schema=="object"&&(_=x.schema),this.schema=x.schema,this.schemaId=x.schemaId,this.root=x.root||this,this.baseId=(b=x.baseId)!==null&&b!==void 0?b:(0,i.normalizeId)(_?.[x.schemaId||"$id"]),this.schemaPath=x.schemaPath,this.localRefs=x.localRefs,this.meta=x.meta,this.$async=_?.$async,this.refs={}}}t.SchemaEnv=a;function c(v){let x=d.call(this,v);if(x)return x;let b=(0,i.getFullPath)(this.opts.uriResolver,v.root.baseId),{es5:_,lines:S}=this.opts.code,{ownProperties:w}=this.opts,E=new e.CodeGen(this.scope,{es5:_,lines:S,ownProperties:w}),$;v.$async&&($=E.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let R=E.scopeName("validate");v.validateName=R;let A={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:v.schema,code:(0,e.stringify)(v.schema)}:{ref:v.schema}),validateName:R,ValidationError:$,schema:v.schema,schemaEnv:v,rootId:b,baseId:v.baseId||b,schemaPath:e.nil,errSchemaPath:v.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},N;try{this._compilations.add(v),(0,o.validateFunctionCode)(A),E.optimize(this.opts.code.optimize);let U=E.toString();N=`${E.scopeRefs(n.default.scope)}return ${U}`,this.opts.code.process&&(N=this.opts.code.process(N,v));let j=new Function(`${n.default.self}`,`${n.default.scope}`,N)(this,this.scope.get());if(this.scope.value(R,{ref:j}),j.errors=null,j.schema=v.schema,j.schemaEnv=v,v.$async&&(j.$async=!0),this.opts.code.source===!0&&(j.source={validateName:R,validateCode:U,scopeValues:E._values}),this.opts.unevaluated){let{props:ae,items:Ne}=A;j.evaluated={props:ae instanceof e.Name?void 0:ae,items:Ne instanceof e.Name?void 0:Ne,dynamicProps:ae instanceof e.Name,dynamicItems:Ne instanceof e.Name},j.source&&(j.source.evaluated=(0,e.stringify)(j.evaluated))}return v.validate=j,v}catch(U){throw delete v.validate,delete v.validateName,N&&this.logger.error("Error compiling schema, function code:",N),U}finally{this._compilations.delete(v)}}t.compileSchema=c;function u(v,x,b){var _;b=(0,i.resolveUrl)(this.opts.uriResolver,x,b);let S=v.refs[b];if(S)return S;let w=m.call(this,v,b);if(w===void 0){let E=(_=v.localRefs)===null||_===void 0?void 0:_[b],{schemaId:$}=this.opts;E&&(w=new a({schema:E,schemaId:$,root:v,baseId:x}))}if(w!==void 0)return v.refs[b]=l.call(this,w)}t.resolveRef=u;function l(v){return(0,i.inlineRef)(v.schema,this.opts.inlineRefs)?v.schema:v.validate?v:c.call(this,v)}function d(v){for(let x of this._compilations)if(p(x,v))return x}t.getCompilingSchema=d;function p(v,x){return v.schema===x.schema&&v.root===x.root&&v.baseId===x.baseId}function m(v,x){let b;for(;typeof(b=this.refs[x])=="string";)x=b;return b||this.schemas[x]||f.call(this,v,x)}function f(v,x){let b=this.opts.uriResolver.parse(x),_=(0,i._getFullPath)(this.opts.uriResolver,b),S=(0,i.getFullPath)(this.opts.uriResolver,v.baseId,void 0);if(Object.keys(v.schema).length>0&&_===S)return h.call(this,b,v);let w=(0,i.normalizeId)(_),E=this.refs[w]||this.schemas[w];if(typeof E=="string"){let $=f.call(this,v,E);return typeof $?.schema!="object"?void 0:h.call(this,b,$)}if(typeof E?.schema=="object"){if(E.validate||c.call(this,E),w===(0,i.normalizeId)(x)){let{schema:$}=E,{schemaId:R}=this.opts,A=$[R];return A&&(S=(0,i.resolveUrl)(this.opts.uriResolver,S,A)),new a({schema:$,schemaId:R,root:v,baseId:S})}return h.call(this,b,E)}}t.resolveSchema=f;var g=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function h(v,{baseId:x,schema:b,root:_}){var S;if(((S=v.fragment)===null||S===void 0?void 0:S[0])!=="/")return;for(let $ of v.fragment.slice(1).split("/")){if(typeof b=="boolean")return;let R=b[(0,s.unescapeFragment)($)];if(R===void 0)return;b=R;let A=typeof b=="object"&&b[this.opts.schemaId];!g.has($)&&A&&(x=(0,i.resolveUrl)(this.opts.uriResolver,x,A))}let w;if(typeof b!="boolean"&&b.$ref&&!(0,s.schemaHasRulesButRef)(b,this.RULES)){let $=(0,i.resolveUrl)(this.opts.uriResolver,x,b.$ref);w=f.call(this,_,$)}let{schemaId:E}=this.opts;if(w=w||new a({schema:b,schemaId:E,root:_,baseId:x}),w.schema!==w.root.schema)return w}}),Aoe=re((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}}),Noe=re((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}}),Moe=re((t,e)=>{var{HEX:r}=Noe(),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 i(v){if(u(v,".")<3)return{host:v,isIPV4:!1};let x=v.match(n)||[],[b]=x;return b?{host:c(b,"."),isIPV4:!0}:{host:v,isIPV4:!1}}function s(v,x=!1){let b="",_=!0;for(let S of v){if(r[S]===void 0)return;S!=="0"&&_===!0&&(_=!1),_||(b+=S)}return x&&b.length===0&&(b="0"),b}function o(v){let x=0,b={error:!1,address:"",zone:""},_=[],S=[],w=!1,E=!1,$=!1;function R(){if(S.length){if(w===!1){let A=s(S);if(A!==void 0)_.push(A);else return b.error=!0,!1}S.length=0}return!0}for(let A=0;A7){b.error=!0;break}A-1>=0&&v[A-1]===":"&&(E=!0);continue}else if(N==="%"){if(!R())break;w=!0}else{S.push(N);continue}}return S.length&&(w?b.zone=S.join(""):$?_.push(S.join("")):_.push(s(S))),b.address=_.join(""),b}function a(v){if(u(v,":")<2)return{host:v,isIPV6:!1};let x=o(v);if(x.error)return{host:v,isIPV6:!1};{let b=x.address,_=x.address;return x.zone&&(b+="%"+x.zone,_+="%25"+x.zone),{host:b,escapedHost:_,isIPV6:!0}}}function c(v,x){let b="",_=!0,S=v.length;for(let w=0;w{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 i(_){return typeof _.secure=="boolean"?_.secure:String(_.scheme).toLowerCase()==="wss"}function s(_){return _.host||(_.error=_.error||"HTTP URIs must have a host."),_}function o(_){let S=String(_.scheme).toLowerCase()==="https";return(_.port===(S?443:80)||_.port==="")&&(_.port=void 0),_.path||(_.path="/"),_}function a(_){return _.secure=i(_),_.resourceName=(_.path||"/")+(_.query?"?"+_.query:""),_.path=void 0,_.query=void 0,_}function c(_){if((_.port===(i(_)?443:80)||_.port==="")&&(_.port=void 0),typeof _.secure=="boolean"&&(_.scheme=_.secure?"wss":"ws",_.secure=void 0),_.resourceName){let[S,w]=_.resourceName.split("?");_.path=S&&S!=="/"?S:void 0,_.query=w,_.resourceName=void 0}return _.fragment=void 0,_}function u(_,S){if(!_.path)return _.error="URN can not be parsed",_;let w=_.path.match(n);if(w){let E=S.scheme||_.scheme||"urn";_.nid=w[1].toLowerCase(),_.nss=w[2];let $=`${E}:${S.nid||_.nid}`,R=b[$];_.path=void 0,R&&(_=R.parse(_,S))}else _.error=_.error||"URN can not be parsed.";return _}function l(_,S){let w=S.scheme||_.scheme||"urn",E=_.nid.toLowerCase(),$=`${w}:${S.nid||E}`,R=b[$];R&&(_=R.serialize(_,S));let A=_,N=_.nss;return A.path=`${E||S.nid}:${N}`,S.skipEscape=!0,A}function d(_,S){let w=_;return w.uuid=w.nss,w.nss=void 0,!S.tolerant&&(!w.uuid||!r.test(w.uuid))&&(w.error=w.error||"UUID is not valid."),w}function p(_){let S=_;return S.nss=(_.uuid||"").toLowerCase(),S}var m={scheme:"http",domainHost:!0,parse:s,serialize:o},f={scheme:"https",domainHost:m.domainHost,parse:s,serialize:o},g={scheme:"ws",domainHost:!0,parse:a,serialize:c},h={scheme:"wss",domainHost:g.domainHost,parse:g.parse,serialize:g.serialize},v={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},x={scheme:"urn:uuid",parse:d,serialize:p,skipNormalize:!0},b={http:m,https:f,ws:g,wss:h,urn:v,"urn:uuid":x};e.exports=b}),joe=re((t,e)=>{var{normalizeIPv6:r,normalizeIPv4:n,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Moe(),a=Doe();function c(x,b){return typeof x=="string"?x=p(h(x,b),b):typeof x=="object"&&(x=h(p(x,b),b)),x}function u(x,b,_){let S=Object.assign({scheme:"null"},_),w=l(h(x,S),h(b,S),S,!0);return p(w,{...S,skipEscape:!0})}function l(x,b,_,S){let w={};return S||(x=h(p(x,_),_),b=h(p(b,_),_)),_=_||{},!_.tolerant&&b.scheme?(w.scheme=b.scheme,w.userinfo=b.userinfo,w.host=b.host,w.port=b.port,w.path=i(b.path||""),w.query=b.query):(b.userinfo!==void 0||b.host!==void 0||b.port!==void 0?(w.userinfo=b.userinfo,w.host=b.host,w.port=b.port,w.path=i(b.path||""),w.query=b.query):(b.path?(b.path.charAt(0)==="/"?w.path=i(b.path):((x.userinfo!==void 0||x.host!==void 0||x.port!==void 0)&&!x.path?w.path="/"+b.path:x.path?w.path=x.path.slice(0,x.path.lastIndexOf("/")+1)+b.path:w.path=b.path,w.path=i(w.path)),w.query=b.query):(w.path=x.path,b.query!==void 0?w.query=b.query:w.query=x.query),w.userinfo=x.userinfo,w.host=x.host,w.port=x.port),w.scheme=x.scheme),w.fragment=b.fragment,w}function d(x,b,_){return typeof x=="string"?(x=unescape(x),x=p(o(h(x,_),!0),{..._,skipEscape:!0})):typeof x=="object"&&(x=p(o(x,!0),{..._,skipEscape:!0})),typeof b=="string"?(b=unescape(b),b=p(o(h(b,_),!0),{..._,skipEscape:!0})):typeof b=="object"&&(b=p(o(b,!0),{..._,skipEscape:!0})),x.toLowerCase()===b.toLowerCase()}function p(x,b){let _={host:x.host,scheme:x.scheme,userinfo:x.userinfo,port:x.port,path:x.path,query:x.query,nid:x.nid,nss:x.nss,uuid:x.uuid,fragment:x.fragment,reference:x.reference,resourceName:x.resourceName,secure:x.secure,error:""},S=Object.assign({},b),w=[],E=a[(S.scheme||_.scheme||"").toLowerCase()];E&&E.serialize&&E.serialize(_,S),_.path!==void 0&&(S.skipEscape?_.path=unescape(_.path):(_.path=escape(_.path),_.scheme!==void 0&&(_.path=_.path.split("%3A").join(":")))),S.reference!=="suffix"&&_.scheme&&w.push(_.scheme,":");let $=s(_);if($!==void 0&&(S.reference!=="suffix"&&w.push("//"),w.push($),_.path&&_.path.charAt(0)!=="/"&&w.push("/")),_.path!==void 0){let R=_.path;!S.absolutePath&&(!E||!E.absolutePath)&&(R=i(R)),$===void 0&&(R=R.replace(/^\/\//u,"/%2F")),w.push(R)}return _.query!==void 0&&w.push("?",_.query),_.fragment!==void 0&&w.push("#",_.fragment),w.join("")}var m=Array.from({length:127},(x,b)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(b)));function f(x){let b=0;for(let _=0,S=x.length;_126||m[b])return!0;return!1}var g=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function h(x,b){let _=Object.assign({},b),S={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},w=x.indexOf("%")!==-1,E=!1;_.reference==="suffix"&&(x=(_.scheme?_.scheme+":":"")+"//"+x);let $=x.match(g);if($){if(S.scheme=$[1],S.userinfo=$[3],S.host=$[4],S.port=parseInt($[5],10),S.path=$[6]||"",S.query=$[7],S.fragment=$[8],isNaN(S.port)&&(S.port=$[5]),S.host){let A=n(S.host);if(A.isIPV4===!1){let N=r(A.host);S.host=N.host.toLowerCase(),E=N.isIPV6}else S.host=A.host,E=!0}S.scheme===void 0&&S.userinfo===void 0&&S.host===void 0&&S.port===void 0&&S.query===void 0&&!S.path?S.reference="same-document":S.scheme===void 0?S.reference="relative":S.fragment===void 0?S.reference="absolute":S.reference="uri",_.reference&&_.reference!=="suffix"&&_.reference!==S.reference&&(S.error=S.error||"URI is not a "+_.reference+" reference.");let R=a[(_.scheme||S.scheme||"").toLowerCase()];if(!_.unicodeSupport&&(!R||!R.unicodeSupport)&&S.host&&(_.domainHost||R&&R.domainHost)&&E===!1&&f(S.host))try{S.host=URL.domainToASCII(S.host.toLowerCase())}catch(A){S.error=S.error||"Host's domain name can not be converted to ASCII: "+A}(!R||R&&!R.skipNormalize)&&(w&&S.scheme!==void 0&&(S.scheme=unescape(S.scheme)),w&&S.host!==void 0&&(S.host=unescape(S.host)),S.path&&(S.path=escape(unescape(S.path))),S.fragment&&(S.fragment=encodeURI(decodeURIComponent(S.fragment)))),R&&R.parse&&R.parse(S,_)}else S.error=S.error||"URI can not be parsed.";return S}var v={SCHEMES:a,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:p,parse:h};e.exports=v,e.exports.default=v,e.exports.fastUri=v}),zoe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=joe();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),Loe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=Rg();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=Ze();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=qk(),i=Og(),s=m2(),o=Fk(),a=Ze(),c=Ig(),u=bg(),l=at(),d=Aoe(),p=zoe(),m=(K,P)=>new RegExp(K,P);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"]),h={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."},v={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},x=200;function b(K){var P,H,M,k,I,q,le,ce,et,Xe,Ft,C,D,Z,J,ue,Ge,dr,qn,Gr,Wr,pr,Xo,Sn,Sv;let su=K.strict,wv=(P=K.code)===null||P===void 0?void 0:P.optimize,W$=wv===!0||wv===void 0?1:wv||0,K$=(M=(H=K.code)===null||H===void 0?void 0:H.regExp)!==null&&M!==void 0?M:m,K9=(k=K.uriResolver)!==null&&k!==void 0?k:p.default;return{strictSchema:(q=(I=K.strictSchema)!==null&&I!==void 0?I:su)!==null&&q!==void 0?q:!0,strictNumbers:(ce=(le=K.strictNumbers)!==null&&le!==void 0?le:su)!==null&&ce!==void 0?ce:!0,strictTypes:(Xe=(et=K.strictTypes)!==null&&et!==void 0?et:su)!==null&&Xe!==void 0?Xe:"log",strictTuples:(C=(Ft=K.strictTuples)!==null&&Ft!==void 0?Ft:su)!==null&&C!==void 0?C:"log",strictRequired:(Z=(D=K.strictRequired)!==null&&D!==void 0?D:su)!==null&&Z!==void 0?Z:!1,code:K.code?{...K.code,optimize:W$,regExp:K$}:{optimize:W$,regExp:K$},loopRequired:(J=K.loopRequired)!==null&&J!==void 0?J:x,loopEnum:(ue=K.loopEnum)!==null&&ue!==void 0?ue:x,meta:(Ge=K.meta)!==null&&Ge!==void 0?Ge:!0,messages:(dr=K.messages)!==null&&dr!==void 0?dr:!0,inlineRefs:(qn=K.inlineRefs)!==null&&qn!==void 0?qn:!0,schemaId:(Gr=K.schemaId)!==null&&Gr!==void 0?Gr:"$id",addUsedSchema:(Wr=K.addUsedSchema)!==null&&Wr!==void 0?Wr:!0,validateSchema:(pr=K.validateSchema)!==null&&pr!==void 0?pr:!0,validateFormats:(Xo=K.validateFormats)!==null&&Xo!==void 0?Xo:!0,unicodeRegExp:(Sn=K.unicodeRegExp)!==null&&Sn!==void 0?Sn:!0,int32range:(Sv=K.int32range)!==null&&Sv!==void 0?Sv:!0,uriResolver:K9}}class _{constructor(P={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,P=this.opts={...P,...b(P)};let{es5:H,lines:M}=this.opts.code;this.scope=new a.ValueScope({scope:{},prefixes:g,es5:H,lines:M}),this.logger=U(P.logger);let k=P.validateFormats;P.validateFormats=!1,this.RULES=(0,s.getRules)(),S.call(this,h,P,"NOT SUPPORTED"),S.call(this,v,P,"DEPRECATED","warn"),this._metaOpts=A.call(this),P.formats&&$.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),P.keywords&&R.call(this,P.keywords),typeof P.meta=="object"&&this.addMetaSchema(P.meta),E.call(this),P.validateFormats=k}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:P,meta:H,schemaId:M}=this.opts,k=d;M==="id"&&(k={...d},k.id=k.$id,delete k.$id),H&&P&&this.addMetaSchema(k,k[M],!1)}defaultMeta(){let{meta:P,schemaId:H}=this.opts;return this.opts.defaultMeta=typeof P=="object"?P[H]||P:void 0}validate(P,H){let M;if(typeof P=="string"){if(M=this.getSchema(P),!M)throw new Error(`no schema with key or ref "${P}"`)}else M=this.compile(P);let k=M(H);return"$async"in M||(this.errors=M.errors),k}compile(P,H){let M=this._addSchema(P,H);return M.validate||this._compileSchemaEnv(M)}compileAsync(P,H){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:M}=this.opts;return k.call(this,P,H);async function k(Xe,Ft){await I.call(this,Xe.$schema);let C=this._addSchema(Xe,Ft);return C.validate||q.call(this,C)}async function I(Xe){Xe&&!this.getSchema(Xe)&&await k.call(this,{$ref:Xe},!0)}async function q(Xe){try{return this._compileSchemaEnv(Xe)}catch(Ft){if(!(Ft instanceof i.default))throw Ft;return le.call(this,Ft),await ce.call(this,Ft.missingSchema),q.call(this,Xe)}}function le({missingSchema:Xe,missingRef:Ft}){if(this.refs[Xe])throw new Error(`AnySchema ${Xe} is loaded but ${Ft} cannot be resolved`)}async function ce(Xe){let Ft=await et.call(this,Xe);this.refs[Xe]||await I.call(this,Ft.$schema),this.refs[Xe]||this.addSchema(Ft,Xe,H)}async function et(Xe){let Ft=this._loading[Xe];if(Ft)return Ft;try{return await(this._loading[Xe]=M(Xe))}finally{delete this._loading[Xe]}}}addSchema(P,H,M,k=this.opts.validateSchema){if(Array.isArray(P)){for(let q of P)this.addSchema(q,void 0,M,k);return this}let I;if(typeof P=="object"){let{schemaId:q}=this.opts;if(I=P[q],I!==void 0&&typeof I!="string")throw new Error(`schema ${q} must be string`)}return H=(0,c.normalizeId)(H||I),this._checkUnique(H),this.schemas[H]=this._addSchema(P,M,H,k,!0),this}addMetaSchema(P,H,M=this.opts.validateSchema){return this.addSchema(P,H,!0,M),this}validateSchema(P,H){if(typeof P=="boolean")return!0;let M;if(M=P.$schema,M!==void 0&&typeof M!="string")throw new Error("$schema must be a string");if(M=M||this.opts.defaultMeta||this.defaultMeta(),!M)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let k=this.validate(M,P);if(!k&&H){let I="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(I);else throw new Error(I)}return k}getSchema(P){let H;for(;typeof(H=w.call(this,P))=="string";)P=H;if(H===void 0){let{schemaId:M}=this.opts,k=new o.SchemaEnv({schema:{},schemaId:M});if(H=o.resolveSchema.call(this,k,P),!H)return;this.refs[P]=H}return H.validate||this._compileSchemaEnv(H)}removeSchema(P){if(P instanceof RegExp)return this._removeAllSchemas(this.schemas,P),this._removeAllSchemas(this.refs,P),this;switch(typeof P){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let H=w.call(this,P);return typeof H=="object"&&this._cache.delete(H.schema),delete this.schemas[P],delete this.refs[P],this}case"object":{let H=P;this._cache.delete(H);let M=P[this.opts.schemaId];return M&&(M=(0,c.normalizeId)(M),delete this.schemas[M],delete this.refs[M]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(P){for(let H of P)this.addKeyword(H);return this}addKeyword(P,H){let M;if(typeof P=="string")M=P,typeof H=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),H.keyword=M);else if(typeof P=="object"&&H===void 0){if(H=P,M=H.keyword,Array.isArray(M)&&!M.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(j.call(this,M,H),!H)return(0,l.eachItem)(M,I=>ae.call(this,I)),this;ze.call(this,H);let k={...H,type:(0,u.getJSONTypes)(H.type),schemaType:(0,u.getJSONTypes)(H.schemaType)};return(0,l.eachItem)(M,k.type.length===0?I=>ae.call(this,I,k):I=>k.type.forEach(q=>ae.call(this,I,k,q))),this}getKeyword(P){let H=this.RULES.all[P];return typeof H=="object"?H.definition:!!H}removeKeyword(P){let{RULES:H}=this;delete H.keywords[P],delete H.all[P];for(let M of H.rules){let k=M.rules.findIndex(I=>I.keyword===P);k>=0&&M.rules.splice(k,1)}return this}addFormat(P,H){return typeof H=="string"&&(H=new RegExp(H)),this.formats[P]=H,this}errorsText(P=this.errors,{separator:H=", ",dataVar:M="data"}={}){return!P||P.length===0?"No errors":P.map(k=>`${M}${k.instancePath} ${k.message}`).reduce((k,I)=>k+H+I)}$dataMetaSchema(P,H){let M=this.RULES.all;P=JSON.parse(JSON.stringify(P));for(let k of H){let I=k.split("/").slice(1),q=P;for(let le of I)q=q[le];for(let le in M){let ce=M[le];if(typeof ce!="object")continue;let{$data:et}=ce.definition,Xe=q[le];et&&Xe&&(q[le]=Ve(Xe))}}return P}_removeAllSchemas(P,H){for(let M in P){let k=P[M];(!H||H.test(M))&&(typeof k=="string"?delete P[M]:k&&!k.meta&&(this._cache.delete(k.schema),delete P[M]))}}_addSchema(P,H,M,k=this.opts.validateSchema,I=this.opts.addUsedSchema){let q,{schemaId:le}=this.opts;if(typeof P=="object")q=P[le];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof P!="boolean")throw new Error("schema must be object or boolean")}let ce=this._cache.get(P);if(ce!==void 0)return ce;M=(0,c.normalizeId)(q||M);let et=c.getSchemaRefs.call(this,P,M);return ce=new o.SchemaEnv({schema:P,schemaId:le,meta:H,baseId:M,localRefs:et}),this._cache.set(ce.schema,ce),I&&!M.startsWith("#")&&(M&&this._checkUnique(M),this.refs[M]=ce),k&&this.validateSchema(P,!0),ce}_checkUnique(P){if(this.schemas[P]||this.refs[P])throw new Error(`schema with key or id "${P}" already exists`)}_compileSchemaEnv(P){if(P.meta?this._compileMetaSchema(P):o.compileSchema.call(this,P),!P.validate)throw new Error("ajv implementation error");return P.validate}_compileMetaSchema(P){let H=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,P)}finally{this.opts=H}}}_.ValidationError=n.default,_.MissingRefError=i.default,t.default=_;function S(K,P,H,M="error"){for(let k in K){let I=k;I in P&&this.logger[M](`${H}: option ${k}. ${K[I]}`)}}function w(K){return K=(0,c.normalizeId)(K),this.schemas[K]||this.refs[K]}function E(){let K=this.opts.schemas;if(K)if(Array.isArray(K))this.addSchema(K);else for(let P in K)this.addSchema(K[P],P)}function $(){for(let K in this.opts.formats){let P=this.opts.formats[K];P&&this.addFormat(K,P)}}function R(K){if(Array.isArray(K)){this.addVocabulary(K);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let P in K){let H=K[P];H.keyword||(H.keyword=P),this.addKeyword(H)}}function A(){let K={...this.opts};for(let P of f)delete K[P];return K}var N={log(){},warn(){},error(){}};function U(K){if(K===!1)return N;if(K===void 0)return console;if(K.log&&K.warn&&K.error)return K;throw new Error("logger must implement log, warn and error methods")}var W=/^[a-z_$][a-z0-9_$:-]*$/i;function j(K,P){let{RULES:H}=this;if((0,l.eachItem)(K,M=>{if(H.keywords[M])throw new Error(`Keyword ${M} is already defined`);if(!W.test(M))throw new Error(`Keyword ${M} has invalid name`)}),!!P&&P.$data&&!("code"in P||"validate"in P))throw new Error('$data keyword must have "code" or "validate" function')}function ae(K,P,H){var M;let k=P?.post;if(H&&k)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:I}=this,q=k?I.post:I.rules.find(({type:ce})=>ce===H);if(q||(q={type:H,rules:[]},I.rules.push(q)),I.keywords[K]=!0,!P)return;let le={keyword:K,definition:{...P,type:(0,u.getJSONTypes)(P.type),schemaType:(0,u.getJSONTypes)(P.schemaType)}};P.before?Ne.call(this,q,le,P.before):q.rules.push(le),I.all[K]=le,(M=P.implements)===null||M===void 0||M.forEach(ce=>this.addKeyword(ce))}function Ne(K,P,H){let M=K.rules.findIndex(k=>k.keyword===H);M>=0?K.rules.splice(M,0,P):(K.rules.push(P),this.logger.warn(`rule ${H} is not defined`))}function ze(K){let{metaSchema:P}=K;P!==void 0&&(K.$data&&this.opts.$data&&(P=Ve(P)),K.validateSchema=this.compile(P,!0))}var kt={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Ve(K){return{anyOf:[K,kt]}}}),Uoe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=e}),qoe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=Og(),r=oi(),n=Ze(),i=Vs(),s=Fk(),o=at(),a={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:m}=l,{baseId:f,schemaEnv:g,validateName:h,opts:v,self:x}=m,{root:b}=g;if((p==="#"||p==="#/")&&f===b.baseId)return S();let _=s.resolveRef.call(x,b,f,p);if(_===void 0)throw new e.default(m.opts.uriResolver,f,p);if(_ instanceof s.SchemaEnv)return w(_);return E(_);function S(){if(g===b)return u(l,h,g,g.$async);let $=d.scopeValue("root",{ref:b});return u(l,(0,n._)`${$}.validate`,b,b.$async)}function w($){let R=c(l,$);u(l,R,$,$.$async)}function E($){let R=d.scopeValue("schema",v.code.source===!0?{ref:$,code:(0,n.stringify)($)}:{ref:$}),A=d.name("valid"),N=l.subschema({schema:$,dataTypes:[],schemaPath:n.nil,topSchemaRef:R,errSchemaPath:p},A);l.mergeEvaluated(N),l.ok(A)}}};function c(l,d){let{gen:p}=l;return d.validate?p.scopeValue("validate",{ref:d.validate}):(0,n._)`${p.scopeValue("wrapper",{ref:d})}.validate`}t.getValidate=c;function u(l,d,p,m){let{gen:f,it:g}=l,{allErrors:h,schemaEnv:v,opts:x}=g,b=x.passContext?i.default.this:n.nil;m?_():S();function _(){if(!v.$async)throw new Error("async schema referenced by sync schema");let $=f.let("valid");f.try(()=>{f.code((0,n._)`await ${(0,r.callValidateCode)(l,d,b)}`),E(d),h||f.assign($,!0)},R=>{f.if((0,n._)`!(${R} instanceof ${g.ValidationError})`,()=>f.throw(R)),w(R),h||f.assign($,!1)}),l.ok($)}function S(){l.result((0,r.callValidateCode)(l,d,b),()=>E(d),()=>w(d))}function w($){let R=(0,n._)`${$}.errors`;f.assign(i.default.vErrors,(0,n._)`${i.default.vErrors} === null ? ${R} : ${i.default.vErrors}.concat(${R})`),f.assign(i.default.errors,(0,n._)`${i.default.vErrors}.length`)}function E($){var R;if(!g.opts.unevaluated)return;let A=(R=p?.validate)===null||R===void 0?void 0:R.evaluated;if(g.props!==!0)if(A&&!A.dynamicProps)A.props!==void 0&&(g.props=o.mergeEvaluated.props(f,A.props,g.props));else{let N=f.var("props",(0,n._)`${$}.evaluated.props`);g.props=o.mergeEvaluated.props(f,N,g.props,n.Name)}if(g.items!==!0)if(A&&!A.dynamicItems)A.items!==void 0&&(g.items=o.mergeEvaluated.items(f,A.items,g.items));else{let N=f.var("items",(0,n._)`${$}.evaluated.items`);g.items=o.mergeEvaluated.items(f,N,g.items,n.Name)}}}t.callRef=u,t.default=a}),Foe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Uoe(),r=qoe(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),Hoe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),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}},i={message:({keyword:o,schemaCode:a})=>(0,e.str)`must be ${n[o].okStr} ${a}`,params:({keyword:o,schemaCode:a})=>(0,e._)`{comparison: ${n[o].okStr}, limit: ${a}}`},s={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u}=o;o.fail$data((0,e._)`${c} ${n[a].fail} ${u} || isNaN(${c})`)}};t.default=s}),Zoe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message:({schemaCode:i})=>(0,e.str)`must be multiple of ${i}`,params:({schemaCode:i})=>(0,e._)`{multipleOf: ${i}}`},n={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(i){let{gen:s,data:o,schemaCode:a,it:c}=i,u=c.opts.multipleOfPrecision,l=s.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;i.fail$data((0,e._)`(${a} === 0 || (${l} = ${o}/${a}, ${d}))`)}};t.default=n}),Boe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,i=0,s=0,o;for(;s=55296&&o<=56319&&s{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n=Boe(),i={message({keyword:o,schemaCode:a}){let c=o==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${a} characters`},params:({schemaCode:o})=>(0,e._)`{limit: ${o}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u,it:l}=o,d=a==="maxLength"?e.operators.GT:e.operators.LT,p=l.opts.unicode===!1?(0,e._)`${c}.length`:(0,e._)`${(0,r.useFunc)(o.gen,n.default)}(${c})`;o.fail$data((0,e._)`${p} ${d} ${u}`)}};t.default=s}),Goe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=oi(),r=Ze(),n={message:({schemaCode:s})=>(0,r.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,r._)`{pattern: ${s}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n,code(s){let{data:o,$data:a,schema:c,schemaCode:u,it:l}=s,d=l.opts.unicodeRegExp?"u":"",p=a?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(s,c);s.fail$data((0,r._)`!${p}.test(${o})`)}};t.default=i}),Woe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message({keyword:i,schemaCode:s}){let o=i==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${s} properties`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxProperties"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`Object.keys(${o}).length ${c} ${a}`)}};t.default=n}),Koe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=oi(),r=Ze(),n=at(),i={message:({params:{missingProperty:o}})=>(0,r.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,r._)`{missingProperty: ${o}}`},s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,schema:c,schemaCode:u,data:l,$data:d,it:p}=o,{opts:m}=p;if(!d&&c.length===0)return;let f=c.length>=m.loopRequired;if(p.allErrors?g():h(),m.strictRequired){let b=o.parentSchema.properties,{definedProperties:_}=o.it;for(let S of c)if(b?.[S]===void 0&&!_.has(S)){let w=p.schemaEnv.baseId+p.errSchemaPath,E=`required property "${S}" is not defined at "${w}" (strictRequired)`;(0,n.checkStrictMode)(p,E,p.opts.strictRequired)}}function g(){if(f||d)o.block$data(r.nil,v);else for(let b of c)(0,e.checkReportMissingProp)(o,b)}function h(){let b=a.let("missing");if(f||d){let _=a.let("valid",!0);o.block$data(_,()=>x(b,_)),o.ok(_)}else a.if((0,e.checkMissingProp)(o,c,b)),(0,e.reportMissingProp)(o,b),a.else()}function v(){a.forOf("prop",u,b=>{o.setParams({missingProperty:b}),a.if((0,e.noPropertyInData)(a,l,b,m.ownProperties),()=>o.error())})}function x(b,_){o.setParams({missingProperty:b}),a.forOf(b,u,()=>{a.assign(_,(0,e.propertyInData)(a,l,b,m.ownProperties)),a.if((0,r.not)(_),()=>{o.error(),a.break()})},r.nil)}}};t.default=s}),Joe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message({keyword:i,schemaCode:s}){let o=i==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${s} items`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxItems"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`${o}.length ${c} ${a}`)}};t.default=n}),Hk=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=h2();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),Xoe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=bg(),r=Ze(),n=at(),i=Hk(),s={message:({params:{i:a,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${a} are identical)`,params:({params:{i:a,j:c}})=>(0,r._)`{i: ${a}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:s,code(a){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:m,it:f}=a;if(!l&&!d)return;let g=c.let("valid"),h=p.items?(0,e.getSchemaTypes)(p.items):[];a.block$data(g,v,(0,r._)`${m} === false`),a.ok(g);function v(){let S=c.let("i",(0,r._)`${u}.length`),w=c.let("j");a.setParams({i:S,j:w}),c.assign(g,!0),c.if((0,r._)`${S} > 1`,()=>(x()?b:_)(S,w))}function x(){return h.length>0&&!h.some(S=>S==="object"||S==="array")}function b(S,w){let E=c.name("item"),$=(0,e.checkDataTypes)(h,E,f.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${S}--;`,()=>{c.let(E,(0,r._)`${u}[${S}]`),c.if($,(0,r._)`continue`),h.length>1&&c.if((0,r._)`typeof ${E} == "string"`,(0,r._)`${E} += "_"`),c.if((0,r._)`typeof ${R}[${E}] == "number"`,()=>{c.assign(w,(0,r._)`${R}[${E}]`),a.error(),c.assign(g,!1).break()}).code((0,r._)`${R}[${E}] = ${S}`)})}function _(S,w){let E=(0,n.useFunc)(c,i.default),$=c.name("outer");c.label($).for((0,r._)`;${S}--;`,()=>c.for((0,r._)`${w} = ${S}; ${w}--;`,()=>c.if((0,r._)`${E}(${u}[${S}], ${u}[${w}])`,()=>{a.error(),c.assign(g,!1).break($)})))}}};t.default=o}),Yoe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n=Hk(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,e._)`{allowedValue: ${o}}`},s={keyword:"const",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,e._)`!${(0,r.useFunc)(a,n.default)}(${c}, ${l})`):o.fail((0,e._)`${d} !== ${c}`)}};t.default=s}),Qoe=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n=Hk(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,e._)`{allowedValues: ${o}}`},s={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schema:l,schemaCode:d,it:p}=o;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let m=l.length>=p.opts.loopEnum,f,g=()=>f??(f=(0,r.useFunc)(a,n.default)),h;if(m||u)h=a.let("valid"),o.block$data(h,v);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let b=a.const("vSchema",d);h=(0,e.or)(...l.map((_,S)=>x(b,S)))}o.pass(h);function v(){a.assign(h,!1),a.forOf("v",d,b=>a.if((0,e._)`${g()}(${c}, ${b})`,()=>a.assign(h,!0).break()))}function x(b,_){let S=l[_];return typeof S=="object"&&S!==null?(0,e._)`${g()}(${c}, ${b}[${_}])`:(0,e._)`${c} === ${S}`}}};t.default=s}),eae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Hoe(),r=Zoe(),n=Voe(),i=Goe(),s=Woe(),o=Koe(),a=Joe(),c=Xoe(),u=Yoe(),l=Qoe(),d=[e.default,r.default,n.default,i.default,s.default,o.default,a.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),g2=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=Ze(),r=at(),n={message:({params:{len:o}})=>(0,e.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,e._)`{limit: ${o}}`},i={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:n,code(o){let{parentSchema:a,it:c}=o,{items:u}=a;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(o,u)}};function s(o,a){let{gen:c,schema:u,data:l,keyword:d,it:p}=o;p.items=!0;let m=c.const("len",(0,e._)`${l}.length`);if(u===!1)o.setParams({len:a.length}),o.pass((0,e._)`${m} <= ${a.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let g=c.var("valid",(0,e._)`${m} <= ${a.length}`);c.if((0,e.not)(g),()=>f(g)),o.ok(g)}function f(g){c.forRange("i",a.length,m,h=>{o.subschema({keyword:d,dataProp:h,dataPropType:r.Type.Num},g),p.allErrors||c.if((0,e.not)(g),()=>c.break())})}}t.validateAdditionalItems=s,t.default=i}),v2=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=Ze(),r=at(),n=oi(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:a,it:c}=o;if(Array.isArray(a))return s(o,"additionalItems",a);c.items=!0,!(0,r.alwaysValidSchema)(c,a)&&o.ok((0,n.validateArray)(o))}};function s(o,a,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:p,it:m}=o;h(l),m.opts.unevaluated&&c.length&&m.items!==!0&&(m.items=r.mergeEvaluated.items(u,c.length,m.items));let f=u.name("valid"),g=u.const("len",(0,e._)`${d}.length`);c.forEach((v,x)=>{(0,r.alwaysValidSchema)(m,v)||(u.if((0,e._)`${g} > ${x}`,()=>o.subschema({keyword:p,schemaProp:x,dataProp:x},f)),o.ok(f))});function h(v){let{opts:x,errSchemaPath:b}=m,_=c.length,S=_===v.minItems&&(_===v.maxItems||v[a]===!1);if(x.strictTuples&&!S){let w=`"${p}" is ${_}-tuple, but minItems or maxItems/${a} are not specified or different at path "${b}"`;(0,r.checkStrictMode)(m,w,x.strictTuples)}}}t.validateTuple=s,t.default=i}),tae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=v2(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),rae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n=oi(),i=g2(),s={message:({params:{len:a}})=>(0,e.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,e._)`{limit: ${a}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(a){let{schema:c,parentSchema:u,it:l}=a,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(a,d):a.ok((0,n.validateArray)(a)))}};t.default=o}),nae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n={message:({params:{min:s,max:o}})=>o===void 0?(0,e.str)`must contain at least ${s} valid item(s)`:(0,e.str)`must contain at least ${s} and no more than ${o} valid item(s)`,params:({params:{min:s,max:o}})=>o===void 0?(0,e._)`{minContains: ${s}}`:(0,e._)`{minContains: ${s}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(s){let{gen:o,schema:a,parentSchema:c,data:u,it:l}=s,d,p,{minContains:m,maxContains:f}=c;l.opts.next?(d=m===void 0?1:m,p=f):d=1;let g=o.const("len",(0,e._)`${u}.length`);if(s.setParams({min:d,max:p}),p===void 0&&d===0){(0,r.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(p!==void 0&&d>p){(0,r.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,r.alwaysValidSchema)(l,a)){let _=(0,e._)`${g} >= ${d}`;p!==void 0&&(_=(0,e._)`${_} && ${g} <= ${p}`),s.pass(_);return}l.items=!0;let h=o.name("valid");p===void 0&&d===1?x(h,()=>o.if(h,()=>o.break())):d===0?(o.let(h,!0),p!==void 0&&o.if((0,e._)`${u}.length > 0`,v)):(o.let(h,!1),v()),s.result(h,()=>s.reset());function v(){let _=o.name("_valid"),S=o.let("count",0);x(_,()=>o.if(_,()=>b(S)))}function x(_,S){o.forRange("i",0,g,w=>{s.subschema({keyword:"contains",dataProp:w,dataPropType:r.Type.Num,compositeRule:!0},_),S()})}function b(_){o.code((0,e._)`${_}++`),p===void 0?o.if((0,e._)`${_} >= ${d}`,()=>o.assign(h,!0).break()):(o.if((0,e._)`${_} > ${p}`,()=>o.assign(h,!1).break()),d===1?o.assign(h,!0):o.if((0,e._)`${_} >= ${d}`,()=>o.assign(h,!0)))}}};t.default=i}),iae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=Ze(),r=at(),n=oi();t.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,e.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,e._)`{property: ${c}, +${n}`}function Pue(t,e){let r=Zt.default.resolve(t);if(r.includes("/.git/")||r.includes("\\.git\\")||r.endsWith("/.git")||r.endsWith("\\.git"))return;let n=Zt.default.join(t,"CLAUDE.md"),i=`${n}.tmp`;if(!(0,yi.existsSync)(t)){_.debug("FOLDER_INDEX","Skipping non-existent folder",{folderPath:t});return}let s="";(0,yi.existsSync)(n)&&(s=(0,yi.readFileSync)(n,"utf-8"));let o=n$(s,e);(0,yi.writeFileSync)(i,o),(0,yi.renameSync)(i,n)}function Aue(t){let e=[];e.push("# Recent Activity"),e.push("");let r=t.split(` +`),n=[],i="",s=null;for(let a of r){let c=a.match(/^###\s+(.+)$/);if(c){let l=c[1].trim(),d=new Date(l);isNaN(d.getTime())||(s=d);continue}let u=a.match(/^\|\s*(#[S]?\d+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|/);if(u){let[,l,d,p,f,m]=u,h;d.trim()==="\u2033"||d.trim()==='"'?h=i:(h=d.trim(),i=h);let g=s?new Date(s):new Date,v=h.match(/(\d+):(\d+)\s*(AM|PM)/i),S=g.getTime();if(v){let b=parseInt(v[1],10),y=parseInt(v[2],10),x=v[3].toUpperCase()==="PM";x&&b!==12&&(b+=12),!x&&b===12&&(b=0),g.setHours(b,y,0,0),S=g.getTime()}n.push({id:l.trim(),time:h,typeEmoji:p.trim(),title:f.trim(),tokens:m.trim(),epoch:S})}}if(n.length===0)return"";let o=Os(n,a=>new Date(a.epoch).toISOString());for(let[a,c]of o){e.push(`### ${a}`),e.push(""),e.push("| ID | Time | T | Title | Read |"),e.push("|----|------|---|-------|------|");let u="";for(let l of c){let d=l.time===u?'"':l.time;u=l.time,e.push(`| ${l.id} | ${d} | ${l.typeEmoji} | ${l.title} | ${l.tokens} |`)}e.push("")}return e.join(` +`).trim()}var Nue=new Set(["res",".git","build","node_modules","__pycache__"]);function Mue(t){return Zt.default.normalize(t).split(Zt.default.sep).some(n=>Nue.has(n))}function Due(t){let e=Zt.default.join(t,".git");return(0,yi.existsSync)(e)}function jue(t,e){let r=Zt.default.resolve(t);for(let n of e){let i=Zt.default.resolve(n);if(r===i||r.startsWith(i+Zt.default.sep))return!0}return!1}async function L6(t,e,r,n){let i=Se.loadFromFile(Rue),s=parseInt(i.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10)||50,o=[];try{let u=JSON.parse(i.CLAUDE_MEM_FOLDER_MD_EXCLUDE||"[]");Array.isArray(u)&&(o=u.filter(l=>typeof l=="string"))}catch{_.warn("FOLDER_INDEX","Failed to parse CLAUDE_MEM_FOLDER_MD_EXCLUDE setting")}let a=new Set;for(let u of t){if(!u)continue;if(Zt.default.basename(u)==="CLAUDE.md"){let d=u;n&&!Zt.default.isAbsolute(u)&&(d=Zt.default.join(n,u));let p=Zt.default.dirname(d);a.add(p),_.debug("FOLDER_INDEX","Detected active CLAUDE.md, will skip folder",{folderPath:p})}}let c=new Set;for(let u of t){if(!u||u==="")continue;if(!Cue(u,n)){_.debug("FOLDER_INDEX","Skipping invalid file path",{filePath:u,reason:"Failed path validation"});continue}let l=u;n&&!Zt.default.isAbsolute(u)&&(l=Zt.default.join(n,u));let d=Zt.default.dirname(l);if(d&&d!=="."&&d!=="/"){if(Due(d)){_.debug("FOLDER_INDEX","Skipping project root CLAUDE.md",{folderPath:d});continue}if(Mue(d)){_.debug("FOLDER_INDEX","Skipping unsafe directory for CLAUDE.md",{folderPath:d});continue}if(a.has(d)){_.debug("FOLDER_INDEX","Skipping folder with active CLAUDE.md to avoid race condition",{folderPath:d});continue}if(o.length>0&&jue(d,o)){_.debug("FOLDER_INDEX","Skipping excluded folder",{folderPath:d});continue}c.add(d)}}if(c.size!==0){_.debug("FOLDER_INDEX","Updating CLAUDE.md files",{project:e,folderCount:c.size});for(let u of c)try{let l=await dt(`/api/search/by-file?filePath=${encodeURIComponent(u)}&limit=${s}&project=${encodeURIComponent(e)}&isFolder=true`);if(!l.ok){_.error("FOLDER_INDEX","Failed to fetch timeline",{folderPath:u,status:l.status});continue}let d=await l.json();if(!d.content?.[0]?.text){_.debug("FOLDER_INDEX","No content for folder",{folderPath:u});continue}let p=Aue(d.content[0].text),f=Zt.default.join(u,"CLAUDE.md"),m=p.includes("*No recent activity*"),h=(0,yi.existsSync)(f);if(m&&!h){_.debug("FOLDER_INDEX","Skipping empty CLAUDE.md creation",{folderPath:u});continue}Pue(u,p),_.debug("FOLDER_INDEX","Updated CLAUDE.md",{folderPath:u})}catch(l){let d=l;_.error("FOLDER_INDEX","Failed to update CLAUDE.md",{folderPath:u,errorMessage:d.message,errorStack:d.stack})}}}Dr();rr();zt();function i$(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:e})}function s$(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:e})}function o$(t,e){t.earliestPendingTimestamp=null,e&&typeof e.broadcastProcessingStatus=="function"&&e.broadcastProcessingStatus()}async function _i(t,e,r,n,i,s,o,a,c){e.lastGeneratorActivity=Date.now(),t&&e.conversationHistory.push({role:"assistant",content:t});let u=M6(t,e.contentSessionId),l=D6(t,e.sessionDbId);if(t.trim()&&u.length===0&&!l&&!/||200?`${t.slice(0,200)}...`:t;_.warn("PARSER",`${a} returned non-XML response; observation content was discarded`,{sessionId:e.sessionDbId,preview:h})}let d=zue(l),p=r.getSessionStore();if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");p.ensureMemorySessionIdRegistered(e.sessionDbId,e.memorySessionId),_.info("DB",`STORING | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | obsCount=${u.length} | hasSummary=${!!d}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId});let f=p.storeObservations(e.memorySessionId,e.project,u,d,e.lastPromptNumber,s,o??void 0);_.info("DB",`STORED | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | obsCount=${f.observationIds.length} | obsIds=[${f.observationIds.join(",")}] | summaryId=${f.summaryId||"none"}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId});let m=n.getPendingMessageStore();for(let h of e.processingMessageIds)m.confirmProcessed(h);e.processingMessageIds.length>0&&_.debug("QUEUE",`CONFIRMED_BATCH | sessionDbId=${e.sessionDbId} | count=${e.processingMessageIds.length} | ids=[${e.processingMessageIds.join(",")}]`),e.processingMessageIds=[],await Lue(u,f,e,r,i,s,a,c),await Uue(l,d,f,e,r,i,s,a),o$(e,i)}function zue(t){return t?{request:t.request||"",investigated:t.investigated||"",learned:t.learned||"",completed:t.completed||"",next_steps:t.next_steps||"",notes:t.notes}:null}async function Lue(t,e,r,n,i,s,o,a){for(let d=0;d{let h=Date.now()-m;_.debug("CHROMA","Observation synced",{obsId:p,duration:`${h}ms`,type:f.type,title:f.title||"(untitled)"})}).catch(h=>{_.error("CHROMA",`${o} chroma sync failed, continuing without vector search`,{obsId:p,type:f.type,title:f.title||"(untitled)"},h)}),i$(i,{id:p,memory_session_id:r.memorySessionId,session_id:r.contentSessionId,type:f.type,title:f.title,subtitle:f.subtitle,text:null,narrative:f.narrative||null,facts:JSON.stringify(f.facts||[]),concepts:JSON.stringify(f.concepts||[]),files_read:JSON.stringify(f.files_read||[]),files_modified:JSON.stringify(f.files_modified||[]),project:r.project,prompt_number:r.lastPromptNumber,created_at_epoch:e.createdAtEpoch})}let u=Se.loadFromFile(jt).CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED;if(u==="true"||u===!0){let d=[];for(let p of t)d.push(...p.files_modified||[]),d.push(...p.files_read||[]);d.length>0&&L6(d,r.project,Jr(),a).catch(p=>{_.warn("FOLDER_INDEX","CLAUDE.md update failed (non-critical)",{project:r.project},p)})}}async function Uue(t,e,r,n,i,s,o,a){if(!e||!r.summaryId)return;let c=Date.now();i.getChromaSync()?.syncSummary(r.summaryId,n.contentSessionId,n.project,e,n.lastPromptNumber,r.createdAtEpoch,o).then(()=>{let u=Date.now()-c;_.debug("CHROMA","Summary synced",{summaryId:r.summaryId,duration:`${u}ms`,request:e.request||"(no request)"})}).catch(u=>{_.error("CHROMA",`${a} chroma sync failed, continuing without vector search`,{summaryId:r.summaryId,request:e.request||"(no request)"},u)}),s$(s,{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:n.project,prompt_number:n.lastPromptNumber,created_at_epoch:r.createdAtEpoch}),v6(n.project,Jr()).catch(u=>{_.warn("CURSOR","Context update failed (non-critical)",{project:n.project},u)})}function Cp(t){let e=Fue(t);return t$.some(r=>e.includes(r))}function Fue(t){return t==null?"":typeof t=="string"?t:t instanceof Error?t.message:typeof t=="object"&&"message"in t?String(t.message):String(t)}function Pp(t){return t==null?!1:t instanceof Error&&t.name==="AbortError"?!0:typeof t=="object"&&"name"in t?t.name==="AbortError":!1}var f$=require("path"),TF=require("url"),$F=require("events"),RF=require("child_process"),OF=require("readline"),$e=Pe(require("fs"),1),CF=require("fs/promises"),DF=require("path"),jF=require("os"),_a=require("path"),LF=require("process"),UF=require("fs"),FF=require("crypto"),KF=require("crypto"),Pu=require("fs"),m$=require("path"),JF=require("crypto");var u_e={},que=Object.create,Hue=Object.getPrototypeOf,p$=Object.defineProperty,Zue=Object.getOwnPropertyNames,Bue=Object.prototype.hasOwnProperty,vF=(t,e,r)=>{r=t!=null?que(Hue(t)):{};let n=e||!t||!t.__esModule?p$(r,"default",{value:t,enumerable:!0}):r;for(let i of Zue(t))Bue.call(n,i)||p$(n,i,{get:()=>t[i],enumerable:!0});return n},ne=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),yF=(t,e)=>{for(var r in e)p$(t,r,{get:e[r],enumerable:!0,configurable:!0,set:n=>e[r]=()=>n})};var Mv=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(S){if(super(),!t.IDENTIFIER.test(S))throw new Error("CodeGen: name must be a valid identifier");this.str=S}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(S){super(),this._items=typeof S=="string"?[S]:S}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let S=this._items[0];return S===""||S==='""'}get str(){var S;return(S=this._str)!==null&&S!==void 0?S:this._str=this._items.reduce((b,y)=>`${b}${y}`,"")}get names(){var S;return(S=this._names)!==null&&S!==void 0?S:this._names=this._items.reduce((b,y)=>(y instanceof r&&(b[y.str]=(b[y.str]||0)+1),b),{})}}t._Code=n,t.nil=new n("");function i(v,...S){let b=[v[0]],y=0;for(;y{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=Mv();class r extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.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 i{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof e.Name?u:this.name(u)}name(u){return new e.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}t.Scope=i;class s extends e.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,e._)`.${new e.Name(l)}[${d}]`}}t.ValueScopeName=s;var o=(0,e._)`\n`;class a extends i{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?o:e.nil}}get(){return this._scope}name(u){return new s(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let p=this.toName(u),{prefix:f}=p,m=(d=l.key)!==null&&d!==void 0?d:l.ref,h=this._values[f];if(h){let S=h.get(m);if(S)return S}else h=this._values[f]=new Map;h.set(m,p);let g=this._scope[f]||(this._scope[f]=[]),v=g.length;return g[v]=l.ref,p.setValue(l,{property:f,itemIndex:v}),p}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,e._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,p=>{if(p.value===void 0)throw new Error(`CodeGen: name "${p}" has no value`);return p.value.code},l,d)}_reduceValues(u,l,d={},p){let f=e.nil;for(let m in u){let h=u[m];if(!h)continue;let g=d[m]=d[m]||new Map;h.forEach(v=>{if(g.has(v))return;g.set(v,n.Started);let S=l(v);if(S){let b=this.opts.es5?t.varKinds.var:t.varKinds.const;f=(0,e._)`${f}${b} ${v} = ${S};${this.opts._n}`}else if(S=p?.(v))f=(0,e._)`${f}${S}${this.opts._n}`;else throw new r(v);g.set(v,n.Completed)})}return f}}t.ValueScope=a}),Ze=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=Mv(),r=U6(),n=Mv();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 i=U6();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return i.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 s{optimizeNodes(){return this}optimizeNames(k,R){return this}}class o extends s{constructor(k,R,F){super(),this.varKind=k,this.name=R,this.rhs=F}render({es5:k,_n:R}){let F=k?r.varKinds.var:this.varKind,le=this.rhs===void 0?"":` = ${this.rhs}`;return`${F} ${this.name}${le};`+R}optimizeNames(k,R){if(k[this.name.str])return this.rhs&&(this.rhs=j(this.rhs,k,R)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(k,R,F){super(),this.lhs=k,this.rhs=R,this.sideEffects=F}render({_n:k}){return`${this.lhs} = ${this.rhs};`+k}optimizeNames(k,R){if(!(this.lhs instanceof e.Name&&!k[this.lhs.str]&&!this.sideEffects))return this.rhs=j(this.rhs,k,R),this}get names(){let k=this.lhs instanceof e.Name?{}:{...this.lhs.names};return V(k,this.rhs)}}class c extends a{constructor(k,R,F,le){super(k,F,le),this.op=R}render({_n:k}){return`${this.lhs} ${this.op}= ${this.rhs};`+k}}class u extends s{constructor(k){super(),this.label=k,this.names={}}render({_n:k}){return`${this.label}:`+k}}class l extends s{constructor(k){super(),this.label=k,this.names={}}render({_n:k}){return`break${this.label?` ${this.label}`:""};`+k}}class d extends s{constructor(k){super(),this.error=k}render({_n:k}){return`throw ${this.error};`+k}get names(){return this.error.names}}class p extends s{constructor(k){super(),this.code=k}render({_n:k}){return`${this.code};`+k}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(k,R){return this.code=j(this.code,k,R),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class f extends s{constructor(k=[]){super(),this.nodes=k}render(k){return this.nodes.reduce((R,F)=>R+F.render(k),"")}optimizeNodes(){let{nodes:k}=this,R=k.length;for(;R--;){let F=k[R].optimizeNodes();Array.isArray(F)?k.splice(R,1,...F):F?k[R]=F:k.splice(R,1)}return k.length>0?this:void 0}optimizeNames(k,R){let{nodes:F}=this,le=F.length;for(;le--;){let ce=F[le];ce.optimizeNames(k,R)||(ae(k,ce.names),F.splice(le,1))}return F.length>0?this:void 0}get names(){return this.nodes.reduce((k,R)=>U(k,R.names),{})}}class m extends f{render(k){return"{"+k._n+super.render(k)+"}"+k._n}}class h extends f{}class g extends m{}g.kind="else";class v extends m{constructor(k,R){super(R),this.condition=k}render(k){let R=`if(${this.condition})`+super.render(k);return this.else&&(R+="else "+this.else.render(k)),R}optimizeNodes(){super.optimizeNodes();let k=this.condition;if(k===!0)return this.nodes;let R=this.else;if(R){let F=R.optimizeNodes();R=this.else=Array.isArray(F)?new g(F):F}if(R)return k===!1?R instanceof v?R:R.nodes:this.nodes.length?this:new v(Me(k),R instanceof v?[R]:R.nodes);if(!(k===!1||!this.nodes.length))return this}optimizeNames(k,R){var F;if(this.else=(F=this.else)===null||F===void 0?void 0:F.optimizeNames(k,R),!!(super.optimizeNames(k,R)||this.else))return this.condition=j(this.condition,k,R),this}get names(){let k=super.names;return V(k,this.condition),this.else&&U(k,this.else.names),k}}v.kind="if";class S extends m{}S.kind="for";class b extends S{constructor(k){super(),this.iteration=k}render(k){return`for(${this.iteration})`+super.render(k)}optimizeNames(k,R){if(super.optimizeNames(k,R))return this.iteration=j(this.iteration,k,R),this}get names(){return U(super.names,this.iteration.names)}}class y extends S{constructor(k,R,F,le){super(),this.varKind=k,this.name=R,this.from=F,this.to=le}render(k){let R=k.es5?r.varKinds.var:this.varKind,{name:F,from:le,to:ce}=this;return`for(${R} ${F}=${le}; ${F}<${ce}; ${F}++)`+super.render(k)}get names(){let k=V(super.names,this.from);return V(k,this.to)}}class x extends S{constructor(k,R,F,le){super(),this.loop=k,this.varKind=R,this.name=F,this.iterable=le}render(k){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(k)}optimizeNames(k,R){if(super.optimizeNames(k,R))return this.iterable=j(this.iterable,k,R),this}get names(){return U(super.names,this.iterable.names)}}class w extends m{constructor(k,R,F){super(),this.name=k,this.args=R,this.async=F}render(k){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(k)}}w.kind="func";class E extends f{render(k){return"return "+super.render(k)}}E.kind="return";class T extends m{render(k){let R="try"+super.render(k);return this.catch&&(R+=this.catch.render(k)),this.finally&&(R+=this.finally.render(k)),R}optimizeNodes(){var k,R;return super.optimizeNodes(),(k=this.catch)===null||k===void 0||k.optimizeNodes(),(R=this.finally)===null||R===void 0||R.optimizeNodes(),this}optimizeNames(k,R){var F,le;return super.optimizeNames(k,R),(F=this.catch)===null||F===void 0||F.optimizeNames(k,R),(le=this.finally)===null||le===void 0||le.optimizeNames(k,R),this}get names(){let k=super.names;return this.catch&&U(k,this.catch.names),this.finally&&U(k,this.finally.names),k}}class I extends m{constructor(k){super(),this.error=k}render(k){return`catch(${this.error})`+super.render(k)}}I.kind="catch";class A extends m{render(k){return"finally"+super.render(k)}}A.kind="finally";class N{constructor(k,R={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...R,_n:R.lines?` +`:""},this._extScope=k,this._scope=new r.Scope({parent:k}),this._nodes=[new h]}toString(){return this._root.render(this.opts)}name(k){return this._scope.name(k)}scopeName(k){return this._extScope.name(k)}scopeValue(k,R){let F=this._extScope.value(k,R);return(this._values[F.prefix]||(this._values[F.prefix]=new Set)).add(F),F}getScopeValue(k,R){return this._extScope.getValue(k,R)}scopeRefs(k){return this._extScope.scopeRefs(k,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(k,R,F,le){let ce=this._scope.toName(R);return F!==void 0&&le&&(this._constants[ce.str]=F),this._leafNode(new o(k,ce,F)),ce}const(k,R,F){return this._def(r.varKinds.const,k,R,F)}let(k,R,F){return this._def(r.varKinds.let,k,R,F)}var(k,R,F){return this._def(r.varKinds.var,k,R,F)}assign(k,R,F){return this._leafNode(new a(k,R,F))}add(k,R){return this._leafNode(new c(k,t.operators.ADD,R))}code(k){return typeof k=="function"?k():k!==e.nil&&this._leafNode(new p(k)),this}object(...k){let R=["{"];for(let[F,le]of k)R.length>1&&R.push(","),R.push(F),(F!==le||this.opts.es5)&&(R.push(":"),(0,e.addCodeArg)(R,le));return R.push("}"),new e._Code(R)}if(k,R,F){if(this._blockNode(new v(k)),R&&F)this.code(R).else().code(F).endIf();else if(R)this.code(R).endIf();else if(F)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(k){return this._elseNode(new v(k))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(v,g)}_for(k,R){return this._blockNode(k),R&&this.code(R).endFor(),this}for(k,R){return this._for(new b(k),R)}forRange(k,R,F,le,ce=this.opts.es5?r.varKinds.var:r.varKinds.let){let Qe=this._scope.toName(k);return this._for(new y(ce,Qe,R,F),()=>le(Qe))}forOf(k,R,F,le=r.varKinds.const){let ce=this._scope.toName(k);if(this.opts.es5){let Qe=R instanceof e.Name?R:this.var("_arr",R);return this.forRange("_i",0,(0,e._)`${Qe}.length`,Xe=>{this.var(ce,(0,e._)`${Qe}[${Xe}]`),F(ce)})}return this._for(new x("of",le,ce,R),()=>F(ce))}forIn(k,R,F,le=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(k,(0,e._)`Object.keys(${R})`,F);let ce=this._scope.toName(k);return this._for(new x("in",le,ce,R),()=>F(ce))}endFor(){return this._endBlockNode(S)}label(k){return this._leafNode(new u(k))}break(k){return this._leafNode(new l(k))}return(k){let R=new E;if(this._blockNode(R),this.code(k),R.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(E)}try(k,R,F){if(!R&&!F)throw new Error('CodeGen: "try" without "catch" and "finally"');let le=new T;if(this._blockNode(le),this.code(k),R){let ce=this.name("e");this._currNode=le.catch=new I(ce),R(ce)}return F&&(this._currNode=le.finally=new A,this.code(F)),this._endBlockNode(I,A)}throw(k){return this._leafNode(new d(k))}block(k,R){return this._blockStarts.push(this._nodes.length),k&&this.code(k).endBlock(R),this}endBlock(k){let R=this._blockStarts.pop();if(R===void 0)throw new Error("CodeGen: not in self-balancing block");let F=this._nodes.length-R;if(F<0||k!==void 0&&F!==k)throw new Error(`CodeGen: wrong number of nodes: ${F} vs ${k} expected`);return this._nodes.length=R,this}func(k,R=e.nil,F,le){return this._blockNode(new w(k,R,F)),le&&this.code(le).endFunc(),this}endFunc(){return this._endBlockNode(w)}optimize(k=1){for(;k-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(k){return this._currNode.nodes.push(k),this}_blockNode(k){this._currNode.nodes.push(k),this._nodes.push(k)}_endBlockNode(k,R){let F=this._currNode;if(F instanceof k||R&&F instanceof R)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${R?`${k.kind}/${R.kind}`:k.kind}"`)}_elseNode(k){let R=this._currNode;if(!(R instanceof v))throw new Error('CodeGen: "else" without "if"');return this._currNode=R.else=k,this}get _root(){return this._nodes[0]}get _currNode(){let k=this._nodes;return k[k.length-1]}set _currNode(k){let R=this._nodes;R[R.length-1]=k}}t.CodeGen=N;function U(M,k){for(let R in k)M[R]=(M[R]||0)+(k[R]||0);return M}function V(M,k){return k instanceof e._CodeOrName?U(M,k.names):M}function j(M,k,R){if(M instanceof e.Name)return F(M);if(!le(M))return M;return new e._Code(M._items.reduce((ce,Qe)=>(Qe instanceof e.Name&&(Qe=F(Qe)),Qe instanceof e._Code?ce.push(...Qe._items):ce.push(Qe),ce),[]));function F(ce){let Qe=R[ce.str];return Qe===void 0||k[ce.str]!==1?ce:(delete k[ce.str],Qe)}function le(ce){return ce instanceof e._Code&&ce._items.some(Qe=>Qe instanceof e.Name&&k[Qe.str]===1&&R[Qe.str]!==void 0)}}function ae(M,k){for(let R in k)M[R]=(M[R]||0)-(k[R]||0)}function Me(M){return typeof M=="boolean"||typeof M=="number"||M===null?!M:(0,e._)`!${H(M)}`}t.not=Me;var ze=C(t.operators.AND);function Et(...M){return M.reduce(ze)}t.and=Et;var Ge=C(t.operators.OR);function K(...M){return M.reduce(Ge)}t.or=K;function C(M){return(k,R)=>k===e.nil?R:R===e.nil?k:(0,e._)`${H(k)} ${M} ${H(R)}`}function H(M){return M instanceof e.Name?M:(0,e._)`(${M})`}}),at=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=Ze(),r=Mv();function n(w){let E={};for(let T of w)E[T]=!0;return E}t.toHash=n;function i(w,E){return typeof E=="boolean"?E:Object.keys(E).length===0?!0:(s(w,E),!o(E,w.self.RULES.all))}t.alwaysValidSchema=i;function s(w,E=w.schema){let{opts:T,self:I}=w;if(!T.strictSchema||typeof E=="boolean")return;let A=I.RULES.keywords;for(let N in E)A[N]||x(w,`unknown keyword: "${N}"`)}t.checkUnknownRules=s;function o(w,E){if(typeof w=="boolean")return!w;for(let T in w)if(E[T])return!0;return!1}t.schemaHasRules=o;function a(w,E){if(typeof w=="boolean")return!w;for(let T in w)if(T!=="$ref"&&E.all[T])return!0;return!1}t.schemaHasRulesButRef=a;function c({topSchemaRef:w,schemaPath:E},T,I,A){if(!A){if(typeof T=="number"||typeof T=="boolean")return T;if(typeof T=="string")return(0,e._)`${T}`}return(0,e._)`${w}${E}${(0,e.getProperty)(I)}`}t.schemaRefOrVal=c;function u(w){return p(decodeURIComponent(w))}t.unescapeFragment=u;function l(w){return encodeURIComponent(d(w))}t.escapeFragment=l;function d(w){return typeof w=="number"?`${w}`:w.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(w){return w.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function f(w,E){if(Array.isArray(w))for(let T of w)E(T);else E(w)}t.eachItem=f;function m({mergeNames:w,mergeToName:E,mergeValues:T,resultToName:I}){return(A,N,U,V)=>{let j=U===void 0?N:U instanceof e.Name?(N instanceof e.Name?w(A,N,U):E(A,N,U),U):N instanceof e.Name?(E(A,U,N),N):T(N,U);return V===e.Name&&!(j instanceof e.Name)?I(A,j):j}}t.mergeEvaluated={props:m({mergeNames:(w,E,T)=>w.if((0,e._)`${T} !== true && ${E} !== undefined`,()=>{w.if((0,e._)`${E} === true`,()=>w.assign(T,!0),()=>w.assign(T,(0,e._)`${T} || {}`).code((0,e._)`Object.assign(${T}, ${E})`))}),mergeToName:(w,E,T)=>w.if((0,e._)`${T} !== true`,()=>{E===!0?w.assign(T,!0):(w.assign(T,(0,e._)`${T} || {}`),g(w,T,E))}),mergeValues:(w,E)=>w===!0?!0:{...w,...E},resultToName:h}),items:m({mergeNames:(w,E,T)=>w.if((0,e._)`${T} !== true && ${E} !== undefined`,()=>w.assign(T,(0,e._)`${E} === true ? true : ${T} > ${E} ? ${T} : ${E}`)),mergeToName:(w,E,T)=>w.if((0,e._)`${T} !== true`,()=>w.assign(T,E===!0?!0:(0,e._)`${T} > ${E} ? ${T} : ${E}`)),mergeValues:(w,E)=>w===!0?!0:Math.max(w,E),resultToName:(w,E)=>w.var("items",E)})};function h(w,E){if(E===!0)return w.var("props",!0);let T=w.var("props",(0,e._)`{}`);return E!==void 0&&g(w,T,E),T}t.evaluatedPropsToName=h;function g(w,E,T){Object.keys(T).forEach(I=>w.assign((0,e._)`${E}${(0,e.getProperty)(I)}`,!0))}t.setEvaluated=g;var v={};function S(w,E){return w.scopeValue("func",{ref:E,code:v[E.code]||(v[E.code]=new r._Code(E.code))})}t.useFunc=S;var b;(function(w){w[w.Num=0]="Num",w[w.Str=1]="Str"})(b||(t.Type=b={}));function y(w,E,T){if(w instanceof e.Name){let I=E===b.Num;return T?I?(0,e._)`"[" + ${w} + "]"`:(0,e._)`"['" + ${w} + "']"`:I?(0,e._)`"/" + ${w}`:(0,e._)`"/" + ${w}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return T?(0,e.getProperty)(w).toString():"/"+d(w)}t.getErrorPath=y;function x(w,E,T=w.opts.strictSchema){if(T){if(E=`strict mode: ${E}`,T===!0)throw new Error(E);w.self.logger.warn(E)}}t.checkStrictMode=x}),xo=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),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}),Hv=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=Ze(),r=at(),n=xo();t.keywordError={message:({keyword:g})=>(0,e.str)`must pass "${g}" keyword validation`},t.keyword$DataError={message:({keyword:g,schemaType:v})=>v?(0,e.str)`"${g}" keyword must be ${v} ($data)`:(0,e.str)`"${g}" keyword is invalid ($data)`};function i(g,v=t.keywordError,S,b){let{it:y}=g,{gen:x,compositeRule:w,allErrors:E}=y,T=d(g,v,S);b??(w||E)?c(x,T):u(y,(0,e._)`[${T}]`)}t.reportError=i;function s(g,v=t.keywordError,S){let{it:b}=g,{gen:y,compositeRule:x,allErrors:w}=b,E=d(g,v,S);c(y,E),x||w||u(b,n.default.vErrors)}t.reportExtraError=s;function o(g,v){g.assign(n.default.errors,v),g.if((0,e._)`${n.default.vErrors} !== null`,()=>g.if(v,()=>g.assign((0,e._)`${n.default.vErrors}.length`,v),()=>g.assign(n.default.vErrors,null)))}t.resetErrorsCount=o;function a({gen:g,keyword:v,schemaValue:S,data:b,errsCount:y,it:x}){if(y===void 0)throw new Error("ajv implementation error");let w=g.name("err");g.forRange("i",y,n.default.errors,E=>{g.const(w,(0,e._)`${n.default.vErrors}[${E}]`),g.if((0,e._)`${w}.instancePath === undefined`,()=>g.assign((0,e._)`${w}.instancePath`,(0,e.strConcat)(n.default.instancePath,x.errorPath))),g.assign((0,e._)`${w}.schemaPath`,(0,e.str)`${x.errSchemaPath}/${v}`),x.opts.verbose&&(g.assign((0,e._)`${w}.schema`,S),g.assign((0,e._)`${w}.data`,b))})}t.extendErrors=a;function c(g,v){let S=g.const("err",v);g.if((0,e._)`${n.default.vErrors} === null`,()=>g.assign(n.default.vErrors,(0,e._)`[${S}]`),(0,e._)`${n.default.vErrors}.push(${S})`),g.code((0,e._)`${n.default.errors}++`)}function u(g,v){let{gen:S,validateName:b,schemaEnv:y}=g;y.$async?S.throw((0,e._)`new ${g.ValidationError}(${v})`):(S.assign((0,e._)`${b}.errors`,v),S.return(!1))}var l={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 d(g,v,S){let{createErrors:b}=g.it;return b===!1?(0,e._)`{}`:p(g,v,S)}function p(g,v,S={}){let{gen:b,it:y}=g,x=[f(y,S),m(g,S)];return h(g,v,x),b.object(...x)}function f({errorPath:g},{instancePath:v}){let S=v?(0,e.str)`${g}${(0,r.getErrorPath)(v,r.Type.Str)}`:g;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,S)]}function m({keyword:g,it:{errSchemaPath:v}},{schemaPath:S,parentSchema:b}){let y=b?v:(0,e.str)`${v}/${g}`;return S&&(y=(0,e.str)`${y}${(0,r.getErrorPath)(S,r.Type.Str)}`),[l.schemaPath,y]}function h(g,{params:v,message:S},b){let{keyword:y,data:x,schemaValue:w,it:E}=g,{opts:T,propertyName:I,topSchemaRef:A,schemaPath:N}=E;b.push([l.keyword,y],[l.params,typeof v=="function"?v(g):v||(0,e._)`{}`]),T.messages&&b.push([l.message,typeof S=="function"?S(g):S]),T.verbose&&b.push([l.schema,w],[l.parentSchema,(0,e._)`${A}${N}`],[n.default.data,x]),I&&b.push([l.propertyName,I])}}),Gue=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=Hv(),r=Ze(),n=xo(),i={message:"boolean schema is false"};function s(c){let{gen:u,schema:l,validateName:d}=c;l===!1?a(c,!1):typeof l=="object"&&l.$async===!0?u.return(n.default.data):(u.assign((0,r._)`${d}.errors`,null),u.return(!0))}t.topBoolOrEmptySchema=s;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),a(c)):l.var(u,!0)}t.boolOrEmptySchema=o;function a(c,u){let{gen:l,data:d}=c,p={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,e.reportError)(p,i,void 0,u)}}),_F=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(s){return typeof s=="string"&&r.has(s)}t.isJSONType=n;function i(){let s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=i}),bF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:i,self:s},o){let a=s.RULES.types[o];return a&&a!==!0&&r(i,a)}t.schemaHasRulesForType=e;function r(i,s){return s.rules.some(o=>n(i,o))}t.shouldUseGroup=r;function n(i,s){var o;return i[s.keyword]!==void 0||((o=s.definition.implements)===null||o===void 0?void 0:o.some(a=>i[a]!==void 0))}t.shouldUseRule=n}),Dv=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=_F(),r=bF(),n=Hv(),i=Ze(),s=at(),o;(function(b){b[b.Correct=0]="Correct",b[b.Wrong=1]="Wrong"})(o||(t.DataType=o={}));function a(b){let y=c(b.type);if(y.includes("null")){if(b.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!y.length&&b.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');b.nullable===!0&&y.push("null")}return y}t.getSchemaTypes=a;function c(b){let y=Array.isArray(b)?b:b?[b]:[];if(y.every(e.isJSONType))return y;throw new Error("type must be JSONType or JSONType[]: "+y.join(","))}t.getJSONTypes=c;function u(b,y){let{gen:x,data:w,opts:E}=b,T=d(y,E.coerceTypes),I=y.length>0&&!(T.length===0&&y.length===1&&(0,r.schemaHasRulesForType)(b,y[0]));if(I){let A=h(y,w,E.strictNumbers,o.Wrong);x.if(A,()=>{T.length?p(b,y,T):v(b)})}return I}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(b,y){return y?b.filter(x=>l.has(x)||y==="array"&&x==="array"):[]}function p(b,y,x){let{gen:w,data:E,opts:T}=b,I=w.let("dataType",(0,i._)`typeof ${E}`),A=w.let("coerced",(0,i._)`undefined`);T.coerceTypes==="array"&&w.if((0,i._)`${I} == 'object' && Array.isArray(${E}) && ${E}.length == 1`,()=>w.assign(E,(0,i._)`${E}[0]`).assign(I,(0,i._)`typeof ${E}`).if(h(y,E,T.strictNumbers),()=>w.assign(A,E))),w.if((0,i._)`${A} !== undefined`);for(let U of x)(l.has(U)||U==="array"&&T.coerceTypes==="array")&&N(U);w.else(),v(b),w.endIf(),w.if((0,i._)`${A} !== undefined`,()=>{w.assign(E,A),f(b,A)});function N(U){switch(U){case"string":w.elseIf((0,i._)`${I} == "number" || ${I} == "boolean"`).assign(A,(0,i._)`"" + ${E}`).elseIf((0,i._)`${E} === null`).assign(A,(0,i._)`""`);return;case"number":w.elseIf((0,i._)`${I} == "boolean" || ${E} === null + || (${I} == "string" && ${E} && ${E} == +${E})`).assign(A,(0,i._)`+${E}`);return;case"integer":w.elseIf((0,i._)`${I} === "boolean" || ${E} === null + || (${I} === "string" && ${E} && ${E} == +${E} && !(${E} % 1))`).assign(A,(0,i._)`+${E}`);return;case"boolean":w.elseIf((0,i._)`${E} === "false" || ${E} === 0 || ${E} === null`).assign(A,!1).elseIf((0,i._)`${E} === "true" || ${E} === 1`).assign(A,!0);return;case"null":w.elseIf((0,i._)`${E} === "" || ${E} === 0 || ${E} === false`),w.assign(A,null);return;case"array":w.elseIf((0,i._)`${I} === "string" || ${I} === "number" + || ${I} === "boolean" || ${E} === null`).assign(A,(0,i._)`[${E}]`)}}}function f({gen:b,parentData:y,parentDataProperty:x},w){b.if((0,i._)`${y} !== undefined`,()=>b.assign((0,i._)`${y}[${x}]`,w))}function m(b,y,x,w=o.Correct){let E=w===o.Correct?i.operators.EQ:i.operators.NEQ,T;switch(b){case"null":return(0,i._)`${y} ${E} null`;case"array":T=(0,i._)`Array.isArray(${y})`;break;case"object":T=(0,i._)`${y} && typeof ${y} == "object" && !Array.isArray(${y})`;break;case"integer":T=I((0,i._)`!(${y} % 1) && !isNaN(${y})`);break;case"number":T=I();break;default:return(0,i._)`typeof ${y} ${E} ${b}`}return w===o.Correct?T:(0,i.not)(T);function I(A=i.nil){return(0,i.and)((0,i._)`typeof ${y} == "number"`,A,x?(0,i._)`isFinite(${y})`:i.nil)}}t.checkDataType=m;function h(b,y,x,w){if(b.length===1)return m(b[0],y,x,w);let E,T=(0,s.toHash)(b);if(T.array&&T.object){let I=(0,i._)`typeof ${y} != "object"`;E=T.null?I:(0,i._)`!${y} || ${I}`,delete T.null,delete T.array,delete T.object}else E=i.nil;T.number&&delete T.integer;for(let I in T)E=(0,i.and)(E,m(I,y,x,w));return E}t.checkDataTypes=h;var g={message:({schema:b})=>`must be ${b}`,params:({schema:b,schemaValue:y})=>typeof b=="string"?(0,i._)`{type: ${b}}`:(0,i._)`{type: ${y}}`};function v(b){let y=S(b);(0,n.reportError)(y,g)}t.reportTypeError=v;function S(b){let{gen:y,data:x,schema:w}=b,E=(0,s.schemaRefOrVal)(b,w,"type");return{gen:y,keyword:"type",data:x,schema:w.type,schemaCode:E,schemaValue:E,parentSchema:w,params:{},it:b}}}),Wue=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=Ze(),r=at();function n(s,o){let{properties:a,items:c}=s.schema;if(o==="object"&&a)for(let u in a)i(s,u,a[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(s,l,u.default))}t.assignDefaults=n;function i(s,o,a){let{gen:c,compositeRule:u,data:l,opts:d}=s;if(a===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(o)}`;if(u){(0,r.checkStrictMode)(s,`default is ignored for: ${p}`);return}let f=(0,e._)`${p} === undefined`;d.useDefaults==="empty"&&(f=(0,e._)`${f} || ${p} === null || ${p} === ""`),c.if(f,(0,e._)`${p} = ${(0,e.stringify)(a)}`)}}),wi=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=Ze(),r=at(),n=xo(),i=at();function s(b,y){let{gen:x,data:w,it:E}=b;x.if(d(x,w,y,E.opts.ownProperties),()=>{b.setParams({missingProperty:(0,e._)`${y}`},!0),b.error()})}t.checkReportMissingProp=s;function o({gen:b,data:y,it:{opts:x}},w,E){return(0,e.or)(...w.map(T=>(0,e.and)(d(b,y,T,x.ownProperties),(0,e._)`${E} = ${T}`)))}t.checkMissingProp=o;function a(b,y){b.setParams({missingProperty:y},!0),b.error()}t.reportMissingProp=a;function c(b){return b.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(b,y,x){return(0,e._)`${c(b)}.call(${y}, ${x})`}t.isOwnProperty=u;function l(b,y,x,w){let E=(0,e._)`${y}${(0,e.getProperty)(x)} !== undefined`;return w?(0,e._)`${E} && ${u(b,y,x)}`:E}t.propertyInData=l;function d(b,y,x,w){let E=(0,e._)`${y}${(0,e.getProperty)(x)} === undefined`;return w?(0,e.or)(E,(0,e.not)(u(b,y,x))):E}t.noPropertyInData=d;function p(b){return b?Object.keys(b).filter(y=>y!=="__proto__"):[]}t.allSchemaProperties=p;function f(b,y){return p(y).filter(x=>!(0,r.alwaysValidSchema)(b,y[x]))}t.schemaProperties=f;function m({schemaCode:b,data:y,it:{gen:x,topSchemaRef:w,schemaPath:E,errorPath:T},it:I},A,N,U){let V=U?(0,e._)`${b}, ${y}, ${w}${E}`:y,j=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,T)],[n.default.parentData,I.parentData],[n.default.parentDataProperty,I.parentDataProperty],[n.default.rootData,n.default.rootData]];I.opts.dynamicRef&&j.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let ae=(0,e._)`${V}, ${x.object(...j)}`;return N!==e.nil?(0,e._)`${A}.call(${N}, ${ae})`:(0,e._)`${A}(${ae})`}t.callValidateCode=m;var h=(0,e._)`new RegExp`;function g({gen:b,it:{opts:y}},x){let w=y.unicodeRegExp?"u":"",{regExp:E}=y.code,T=E(x,w);return b.scopeValue("pattern",{key:T.toString(),ref:T,code:(0,e._)`${E.code==="new RegExp"?h:(0,i.useFunc)(b,E)}(${x}, ${w})`})}t.usePattern=g;function v(b){let{gen:y,data:x,keyword:w,it:E}=b,T=y.name("valid");if(E.allErrors){let A=y.let("valid",!0);return I(()=>y.assign(A,!1)),A}return y.var(T,!0),I(()=>y.break()),T;function I(A){let N=y.const("len",(0,e._)`${x}.length`);y.forRange("i",0,N,U=>{b.subschema({keyword:w,dataProp:U,dataPropType:r.Type.Num},T),y.if((0,e.not)(T),A)})}}t.validateArray=v;function S(b){let{gen:y,schema:x,keyword:w,it:E}=b;if(!Array.isArray(x))throw new Error("ajv implementation error");if(x.some(N=>(0,r.alwaysValidSchema)(E,N))&&!E.opts.unevaluated)return;let I=y.let("valid",!1),A=y.name("_valid");y.block(()=>x.forEach((N,U)=>{let V=b.subschema({keyword:w,schemaProp:U,compositeRule:!0},A);y.assign(I,(0,e._)`${I} || ${A}`),b.mergeValidEvaluated(V,A)||y.if((0,e.not)(I))})),b.result(I,()=>b.reset(),()=>b.error(!0))}t.validateUnion=S}),Vue=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=Ze(),r=xo(),n=wi(),i=Hv();function s(f,m){let{gen:h,keyword:g,schema:v,parentSchema:S,it:b}=f,y=m.macro.call(b.self,v,S,b),x=l(h,g,y);b.opts.validateSchema!==!1&&b.self.validateSchema(y,!0);let w=h.name("valid");f.subschema({schema:y,schemaPath:e.nil,errSchemaPath:`${b.errSchemaPath}/${g}`,topSchemaRef:x,compositeRule:!0},w),f.pass(w,()=>f.error(!0))}t.macroKeywordCode=s;function o(f,m){var h;let{gen:g,keyword:v,schema:S,parentSchema:b,$data:y,it:x}=f;u(x,m);let w=!y&&m.compile?m.compile.call(x.self,S,b,x):m.validate,E=l(g,v,w),T=g.let("valid");f.block$data(T,I),f.ok((h=m.valid)!==null&&h!==void 0?h:T);function I(){if(m.errors===!1)U(),m.modifying&&a(f),V(()=>f.error());else{let j=m.async?A():N();m.modifying&&a(f),V(()=>c(f,j))}}function A(){let j=g.let("ruleErrs",null);return g.try(()=>U((0,e._)`await `),ae=>g.assign(T,!1).if((0,e._)`${ae} instanceof ${x.ValidationError}`,()=>g.assign(j,(0,e._)`${ae}.errors`),()=>g.throw(ae))),j}function N(){let j=(0,e._)`${E}.errors`;return g.assign(j,null),U(e.nil),j}function U(j=m.async?(0,e._)`await `:e.nil){let ae=x.opts.passContext?r.default.this:r.default.self,Me=!("compile"in m&&!y||m.schema===!1);g.assign(T,(0,e._)`${j}${(0,n.callValidateCode)(f,E,ae,Me)}`,m.modifying)}function V(j){var ae;g.if((0,e.not)((ae=m.valid)!==null&&ae!==void 0?ae:T),j)}}t.funcKeywordCode=o;function a(f){let{gen:m,data:h,it:g}=f;m.if(g.parentData,()=>m.assign(h,(0,e._)`${g.parentData}[${g.parentDataProperty}]`))}function c(f,m){let{gen:h}=f;h.if((0,e._)`Array.isArray(${m})`,()=>{h.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${m} : ${r.default.vErrors}.concat(${m})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,i.extendErrors)(f)},()=>f.error())}function u({schemaEnv:f},m){if(m.async&&!f.$async)throw new Error("async keyword in sync schema")}function l(f,m,h){if(h===void 0)throw new Error(`keyword "${m}" failed to compile`);return f.scopeValue("keyword",typeof h=="function"?{ref:h}:{ref:h,code:(0,e.stringify)(h)})}function d(f,m,h=!1){return!m.length||m.some(g=>g==="array"?Array.isArray(f):g==="object"?f&&typeof f=="object"&&!Array.isArray(f):typeof f==g||h&&typeof f>"u")}t.validSchemaType=d;function p({schema:f,opts:m,self:h,errSchemaPath:g},v,S){if(Array.isArray(v.keyword)?!v.keyword.includes(S):v.keyword!==S)throw new Error("ajv implementation error");let b=v.dependencies;if(b?.some(y=>!Object.prototype.hasOwnProperty.call(f,y)))throw new Error(`parent schema must have dependencies of ${S}: ${b.join(",")}`);if(v.validateSchema&&!v.validateSchema(f[S])){let x=`keyword "${S}" value is invalid at path "${g}": `+h.errorsText(v.validateSchema.errors);if(m.validateSchema==="log")h.logger.error(x);else throw new Error(x)}}t.validateKeywordUsage=p}),Kue=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=Ze(),r=at();function n(o,{keyword:a,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(a!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){let f=o.schema[a];return c===void 0?{schema:f,schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(a)}`,errSchemaPath:`${o.errSchemaPath}/${a}`}:{schema:f[c],schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(a)}${(0,e.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${a}/${(0,r.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||p===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:p,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=n;function i(o,a,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:p}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:f}=a;if(c!==void 0){let{errorPath:h,dataPathArr:g,opts:v}=a,S=f.let("data",(0,e._)`${a.data}${(0,e.getProperty)(c)}`,!0);m(S),o.errorPath=(0,e.str)`${h}${(0,r.getErrorPath)(c,u,v.jsPropertySyntax)}`,o.parentDataProperty=(0,e._)`${c}`,o.dataPathArr=[...g,o.parentDataProperty]}if(l!==void 0){let h=l instanceof e.Name?l:f.let("data",l,!0);m(h),p!==void 0&&(o.propertyName=p)}d&&(o.dataTypes=d);function m(h){o.data=h,o.dataLevel=a.dataLevel+1,o.dataTypes=[],a.definedProperties=new Set,o.parentData=a.data,o.dataNames=[...a.dataNames,h]}}t.extendSubschemaData=i;function s(o,{jtdDiscriminator:a,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(o.compositeRule=u),l!==void 0&&(o.createErrors=l),d!==void 0&&(o.allErrors=d),o.jtdDiscriminator=a,o.jtdMetadata=c}t.extendSubschemaMode=s}),SF=ne((t,e)=>{e.exports=function r(n,i){if(n===i)return!0;if(n&&i&&typeof n=="object"&&typeof i=="object"){if(n.constructor!==i.constructor)return!1;var s,o,a;if(Array.isArray(n)){if(s=n.length,s!=i.length)return!1;for(o=s;o--!==0;)if(!r(n[o],i[o]))return!1;return!0}if(n.constructor===RegExp)return n.source===i.source&&n.flags===i.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===i.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===i.toString();if(a=Object.keys(n),s=a.length,s!==Object.keys(i).length)return!1;for(o=s;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,a[o]))return!1;for(o=s;o--!==0;){var c=a[o];if(!r(n[c],i[c]))return!1}return!0}return n!==n&&i!==i}}),Jue=ne((t,e)=>{var r=e.exports=function(s,o,a){typeof o=="function"&&(a=o,o={}),a=o.cb||a;var c=typeof a=="function"?a:a.pre||function(){},u=a.post||function(){};n(o,c,u,s,"",s)};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(s,o,a,c,u,l,d,p,f,m){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,p,f,m);for(var h in c){var g=c[h];if(Array.isArray(g)){if(h in r.arrayKeywords)for(var v=0;v{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=at(),r=SF(),n=Jue(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function s(g,v=!0){return typeof g=="boolean"?!0:v===!0?!a(g):v?c(g)<=v:!1}t.inlineRef=s;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function a(g){for(let v in g){if(o.has(v))return!0;let S=g[v];if(Array.isArray(S)&&S.some(a)||typeof S=="object"&&a(S))return!0}return!1}function c(g){let v=0;for(let S in g){if(S==="$ref")return 1/0;if(v++,!i.has(S)&&(typeof g[S]=="object"&&(0,e.eachItem)(g[S],b=>v+=c(b)),v===1/0))return 1/0}return v}function u(g,v="",S){S!==!1&&(v=p(v));let b=g.parse(v);return l(g,b)}t.getFullPath=u;function l(g,v){return g.serialize(v).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(g){return g?g.replace(d,""):""}t.normalizeId=p;function f(g,v,S){return S=p(S),g.resolve(v,S)}t.resolveUrl=f;var m=/^[a-z_][-a-z0-9._]*$/i;function h(g,v){if(typeof g=="boolean")return{};let{schemaId:S,uriResolver:b}=this.opts,y=p(g[S]||v),x={"":y},w=u(b,y,!1),E={},T=new Set;return n(g,{allKeys:!0},(N,U,V,j)=>{if(j===void 0)return;let ae=w+U,Me=x[j];typeof N[S]=="string"&&(Me=ze.call(this,N[S])),Et.call(this,N.$anchor),Et.call(this,N.$dynamicAnchor),x[U]=Me;function ze(Ge){let K=this.opts.uriResolver.resolve;if(Ge=p(Me?K(Me,Ge):Ge),T.has(Ge))throw A(Ge);T.add(Ge);let C=this.refs[Ge];return typeof C=="string"&&(C=this.refs[C]),typeof C=="object"?I(N,C.schema,Ge):Ge!==p(ae)&&(Ge[0]==="#"?(I(N,E[Ge],Ge),E[Ge]=N):this.refs[Ge]=ae),Ge}function Et(Ge){if(typeof Ge=="string"){if(!m.test(Ge))throw new Error(`invalid anchor "${Ge}"`);ze.call(this,`#${Ge}`)}}}),E;function I(N,U,V){if(U!==void 0&&!r(N,U))throw A(V)}function A(N){return new Error(`reference "${N}" resolves to more than one schema`)}}t.getSchemaRefs=h}),Bv=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=Gue(),r=Dv(),n=bF(),i=Dv(),s=Wue(),o=Vue(),a=Kue(),c=Ze(),u=xo(),l=Zv(),d=at(),p=Hv();function f(P){if(w(P)&&(T(P),x(P))){v(P);return}m(P,()=>(0,e.topBoolOrEmptySchema)(P))}t.validateFunctionCode=f;function m({gen:P,validateName:D,schema:Z,schemaEnv:J,opts:ue},We){ue.code.es5?P.func(D,(0,c._)`${u.default.data}, ${u.default.valCxt}`,J.$async,()=>{P.code((0,c._)`"use strict"; ${b(Z,ue)}`),g(P,ue),P.code(We)}):P.func(D,(0,c._)`${u.default.data}, ${h(ue)}`,J.$async,()=>P.code(b(Z,ue)).code(We))}function h(P){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${P.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function g(P,D){P.if(u.default.valCxt,()=>{P.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),P.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),P.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),P.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),D.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{P.var(u.default.instancePath,(0,c._)`""`),P.var(u.default.parentData,(0,c._)`undefined`),P.var(u.default.parentDataProperty,(0,c._)`undefined`),P.var(u.default.rootData,u.default.data),D.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function v(P){let{schema:D,opts:Z,gen:J}=P;m(P,()=>{Z.$comment&&D.$comment&&j(P),N(P),J.let(u.default.vErrors,null),J.let(u.default.errors,0),Z.unevaluated&&S(P),I(P),ae(P)})}function S(P){let{gen:D,validateName:Z}=P;P.evaluated=D.const("evaluated",(0,c._)`${Z}.evaluated`),D.if((0,c._)`${P.evaluated}.dynamicProps`,()=>D.assign((0,c._)`${P.evaluated}.props`,(0,c._)`undefined`)),D.if((0,c._)`${P.evaluated}.dynamicItems`,()=>D.assign((0,c._)`${P.evaluated}.items`,(0,c._)`undefined`))}function b(P,D){let Z=typeof P=="object"&&P[D.schemaId];return Z&&(D.code.source||D.code.process)?(0,c._)`/*# sourceURL=${Z} */`:c.nil}function y(P,D){if(w(P)&&(T(P),x(P))){E(P,D);return}(0,e.boolOrEmptySchema)(P,D)}function x({schema:P,self:D}){if(typeof P=="boolean")return!P;for(let Z in P)if(D.RULES.all[Z])return!0;return!1}function w(P){return typeof P.schema!="boolean"}function E(P,D){let{schema:Z,gen:J,opts:ue}=P;ue.$comment&&Z.$comment&&j(P),U(P),V(P);let We=J.const("_errs",u.default.errors);I(P,We),J.var(D,(0,c._)`${We} === ${u.default.errors}`)}function T(P){(0,d.checkUnknownRules)(P),A(P)}function I(P,D){if(P.opts.jtd)return ze(P,[],!1,D);let Z=(0,r.getSchemaTypes)(P.schema),J=(0,r.coerceAndCheckDataType)(P,Z);ze(P,Z,!J,D)}function A(P){let{schema:D,errSchemaPath:Z,opts:J,self:ue}=P;D.$ref&&J.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(D,ue.RULES)&&ue.logger.warn(`$ref: keywords ignored in schema at path "${Z}"`)}function N(P){let{schema:D,opts:Z}=P;D.default!==void 0&&Z.useDefaults&&Z.strictSchema&&(0,d.checkStrictMode)(P,"default is ignored in the schema root")}function U(P){let D=P.schema[P.opts.schemaId];D&&(P.baseId=(0,l.resolveUrl)(P.opts.uriResolver,P.baseId,D))}function V(P){if(P.schema.$async&&!P.schemaEnv.$async)throw new Error("async schema in sync schema")}function j({gen:P,schemaEnv:D,schema:Z,errSchemaPath:J,opts:ue}){let We=Z.$comment;if(ue.$comment===!0)P.code((0,c._)`${u.default.self}.logger.log(${We})`);else if(typeof ue.$comment=="function"){let gr=(0,c.str)`${J}/$comment`,ri=P.scopeValue("root",{ref:D.root});P.code((0,c._)`${u.default.self}.opts.$comment(${We}, ${gr}, ${ri}.schema)`)}}function ae(P){let{gen:D,schemaEnv:Z,validateName:J,ValidationError:ue,opts:We}=P;Z.$async?D.if((0,c._)`${u.default.errors} === 0`,()=>D.return(u.default.data),()=>D.throw((0,c._)`new ${ue}(${u.default.vErrors})`)):(D.assign((0,c._)`${J}.errors`,u.default.vErrors),We.unevaluated&&Me(P),D.return((0,c._)`${u.default.errors} === 0`))}function Me({gen:P,evaluated:D,props:Z,items:J}){Z instanceof c.Name&&P.assign((0,c._)`${D}.props`,Z),J instanceof c.Name&&P.assign((0,c._)`${D}.items`,J)}function ze(P,D,Z,J){let{gen:ue,schema:We,data:gr,allErrors:ri,opts:nn,self:sn}=P,{RULES:vr}=sn;if(We.$ref&&(nn.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(We,vr))){ue.block(()=>ce(P,"$ref",vr.all.$ref.definition));return}nn.jtd||Ge(P,D),ue.block(()=>{for(let Nn of vr.rules)Na(Nn);Na(vr.post)});function Na(Nn){(0,n.shouldUseGroup)(We,Nn)&&(Nn.type?(ue.if((0,i.checkDataType)(Nn.type,gr,nn.strictNumbers)),Et(P,Nn),D.length===1&&D[0]===Nn.type&&Z&&(ue.else(),(0,i.reportTypeError)(P)),ue.endIf()):Et(P,Nn),ri||ue.if((0,c._)`${u.default.errors} === ${J||0}`))}}function Et(P,D){let{gen:Z,schema:J,opts:{useDefaults:ue}}=P;ue&&(0,s.assignDefaults)(P,D.type),Z.block(()=>{for(let We of D.rules)(0,n.shouldUseRule)(J,We)&&ce(P,We.keyword,We.definition,D.type)})}function Ge(P,D){P.schemaEnv.meta||!P.opts.strictTypes||(K(P,D),P.opts.allowUnionTypes||C(P,D),H(P,P.dataTypes))}function K(P,D){if(D.length){if(!P.dataTypes.length){P.dataTypes=D;return}D.forEach(Z=>{k(P.dataTypes,Z)||F(P,`type "${Z}" not allowed by context "${P.dataTypes.join(",")}"`)}),R(P,D)}}function C(P,D){D.length>1&&!(D.length===2&&D.includes("null"))&&F(P,"use allowUnionTypes to allow union type keyword")}function H(P,D){let Z=P.self.RULES.all;for(let J in Z){let ue=Z[J];if(typeof ue=="object"&&(0,n.shouldUseRule)(P.schema,ue)){let{type:We}=ue.definition;We.length&&!We.some(gr=>M(D,gr))&&F(P,`missing type "${We.join(",")}" for keyword "${J}"`)}}}function M(P,D){return P.includes(D)||D==="number"&&P.includes("integer")}function k(P,D){return P.includes(D)||D==="integer"&&P.includes("number")}function R(P,D){let Z=[];for(let J of P.dataTypes)k(D,J)?Z.push(J):D.includes("integer")&&J==="number"&&Z.push("integer");P.dataTypes=Z}function F(P,D){let Z=P.schemaEnv.baseId+P.errSchemaPath;D+=` at "${Z}" (strictTypes)`,(0,d.checkStrictMode)(P,D,P.opts.strictTypes)}class le{constructor(D,Z,J){if((0,o.validateKeywordUsage)(D,Z,J),this.gen=D.gen,this.allErrors=D.allErrors,this.keyword=J,this.data=D.data,this.schema=D.schema[J],this.$data=Z.$data&&D.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(D,this.schema,J,this.$data),this.schemaType=Z.schemaType,this.parentSchema=D.schema,this.params={},this.it=D,this.def=Z,this.$data)this.schemaCode=D.gen.const("vSchema",qt(this.$data,D));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,Z.schemaType,Z.allowUndefined))throw new Error(`${J} value must be ${JSON.stringify(Z.schemaType)}`);("code"in Z?Z.trackErrors:Z.errors!==!1)&&(this.errsCount=D.gen.const("_errs",u.default.errors))}result(D,Z,J){this.failResult((0,c.not)(D),Z,J)}failResult(D,Z,J){this.gen.if(D),J?J():this.error(),Z?(this.gen.else(),Z(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(D,Z){this.failResult((0,c.not)(D),void 0,Z)}fail(D){if(D===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(D),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(D){if(!this.$data)return this.fail(D);let{schemaCode:Z}=this;this.fail((0,c._)`${Z} !== undefined && (${(0,c.or)(this.invalid$data(),D)})`)}error(D,Z,J){if(Z){this.setParams(Z),this._error(D,J),this.setParams({});return}this._error(D,J)}_error(D,Z){(D?p.reportExtraError:p.reportError)(this,this.def.error,Z)}$dataError(){(0,p.reportError)(this,this.def.$dataError||p.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,p.resetErrorsCount)(this.gen,this.errsCount)}ok(D){this.allErrors||this.gen.if(D)}setParams(D,Z){Z?Object.assign(this.params,D):this.params=D}block$data(D,Z,J=c.nil){this.gen.block(()=>{this.check$data(D,J),Z()})}check$data(D=c.nil,Z=c.nil){if(!this.$data)return;let{gen:J,schemaCode:ue,schemaType:We,def:gr}=this;J.if((0,c.or)((0,c._)`${ue} === undefined`,Z)),D!==c.nil&&J.assign(D,!0),(We.length||gr.validateSchema)&&(J.elseIf(this.invalid$data()),this.$dataError(),D!==c.nil&&J.assign(D,!1)),J.else()}invalid$data(){let{gen:D,schemaCode:Z,schemaType:J,def:ue,it:We}=this;return(0,c.or)(gr(),ri());function gr(){if(J.length){if(!(Z instanceof c.Name))throw new Error("ajv implementation error");let nn=Array.isArray(J)?J:[J];return(0,c._)`${(0,i.checkDataTypes)(nn,Z,We.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function ri(){if(ue.validateSchema){let nn=D.scopeValue("validate$data",{ref:ue.validateSchema});return(0,c._)`!${nn}(${Z})`}return c.nil}}subschema(D,Z){let J=(0,a.getSubschema)(this.it,D);(0,a.extendSubschemaData)(J,this.it,D),(0,a.extendSubschemaMode)(J,D);let ue={...this.it,...J,items:void 0,props:void 0};return y(ue,Z),ue}mergeEvaluated(D,Z){let{it:J,gen:ue}=this;J.opts.unevaluated&&(J.props!==!0&&D.props!==void 0&&(J.props=d.mergeEvaluated.props(ue,D.props,J.props,Z)),J.items!==!0&&D.items!==void 0&&(J.items=d.mergeEvaluated.items(ue,D.items,J.items,Z)))}mergeValidEvaluated(D,Z){let{it:J,gen:ue}=this;if(J.opts.unevaluated&&(J.props!==!0||J.items!==!0))return ue.if(Z,()=>this.mergeEvaluated(D,c.Name)),!0}}t.KeywordCxt=le;function ce(P,D,Z,J){let ue=new le(P,Z,D);"code"in Z?Z.code(ue,J):ue.$data&&Z.validate?(0,o.funcKeywordCode)(ue,Z):"macro"in Z?(0,o.macroKeywordCode)(ue,Z):(Z.compile||Z.validate)&&(0,o.funcKeywordCode)(ue,Z)}var Qe=/^\/(?:[^~]|~0|~1)*$/,Xe=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function qt(P,{dataLevel:D,dataNames:Z,dataPathArr:J}){let ue,We;if(P==="")return u.default.rootData;if(P[0]==="/"){if(!Qe.test(P))throw new Error(`Invalid JSON-pointer: ${P}`);ue=P,We=u.default.rootData}else{let sn=Xe.exec(P);if(!sn)throw new Error(`Invalid JSON-pointer: ${P}`);let vr=+sn[1];if(ue=sn[2],ue==="#"){if(vr>=D)throw new Error(nn("property/index",vr));return J[D-vr]}if(vr>D)throw new Error(nn("data",vr));if(We=Z[D-vr],!ue)return We}let gr=We,ri=ue.split("/");for(let sn of ri)sn&&(We=(0,c._)`${We}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,gr=(0,c._)`${gr} && ${We}`);return gr;function nn(sn,vr){return`Cannot access ${sn} ${vr} levels up, current level is ${D}`}}t.getData=qt}),A$=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}),Gv=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Zv();class r extends Error{constructor(i,s,o,a){super(a||`can't resolve reference ${o} from id ${s}`),this.missingRef=(0,e.resolveUrl)(i,s,o),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(i,this.missingRef))}}t.default=r}),N$=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=Ze(),r=A$(),n=xo(),i=Zv(),s=at(),o=Bv();class a{constructor(S){var b;this.refs={},this.dynamicAnchors={};let y;typeof S.schema=="object"&&(y=S.schema),this.schema=S.schema,this.schemaId=S.schemaId,this.root=S.root||this,this.baseId=(b=S.baseId)!==null&&b!==void 0?b:(0,i.normalizeId)(y?.[S.schemaId||"$id"]),this.schemaPath=S.schemaPath,this.localRefs=S.localRefs,this.meta=S.meta,this.$async=y?.$async,this.refs={}}}t.SchemaEnv=a;function c(v){let S=d.call(this,v);if(S)return S;let b=(0,i.getFullPath)(this.opts.uriResolver,v.root.baseId),{es5:y,lines:x}=this.opts.code,{ownProperties:w}=this.opts,E=new e.CodeGen(this.scope,{es5:y,lines:x,ownProperties:w}),T;v.$async&&(T=E.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let I=E.scopeName("validate");v.validateName=I;let A={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:v.schema,code:(0,e.stringify)(v.schema)}:{ref:v.schema}),validateName:I,ValidationError:T,schema:v.schema,schemaEnv:v,rootId:b,baseId:v.baseId||b,schemaPath:e.nil,errSchemaPath:v.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},N;try{this._compilations.add(v),(0,o.validateFunctionCode)(A),E.optimize(this.opts.code.optimize);let U=E.toString();N=`${E.scopeRefs(n.default.scope)}return ${U}`,this.opts.code.process&&(N=this.opts.code.process(N,v));let j=new Function(`${n.default.self}`,`${n.default.scope}`,N)(this,this.scope.get());if(this.scope.value(I,{ref:j}),j.errors=null,j.schema=v.schema,j.schemaEnv=v,v.$async&&(j.$async=!0),this.opts.code.source===!0&&(j.source={validateName:I,validateCode:U,scopeValues:E._values}),this.opts.unevaluated){let{props:ae,items:Me}=A;j.evaluated={props:ae instanceof e.Name?void 0:ae,items:Me instanceof e.Name?void 0:Me,dynamicProps:ae instanceof e.Name,dynamicItems:Me instanceof e.Name},j.source&&(j.source.evaluated=(0,e.stringify)(j.evaluated))}return v.validate=j,v}catch(U){throw delete v.validate,delete v.validateName,N&&this.logger.error("Error compiling schema, function code:",N),U}finally{this._compilations.delete(v)}}t.compileSchema=c;function u(v,S,b){var y;b=(0,i.resolveUrl)(this.opts.uriResolver,S,b);let x=v.refs[b];if(x)return x;let w=f.call(this,v,b);if(w===void 0){let E=(y=v.localRefs)===null||y===void 0?void 0:y[b],{schemaId:T}=this.opts;E&&(w=new a({schema:E,schemaId:T,root:v,baseId:S}))}if(w!==void 0)return v.refs[b]=l.call(this,w)}t.resolveRef=u;function l(v){return(0,i.inlineRef)(v.schema,this.opts.inlineRefs)?v.schema:v.validate?v:c.call(this,v)}function d(v){for(let S of this._compilations)if(p(S,v))return S}t.getCompilingSchema=d;function p(v,S){return v.schema===S.schema&&v.root===S.root&&v.baseId===S.baseId}function f(v,S){let b;for(;typeof(b=this.refs[S])=="string";)S=b;return b||this.schemas[S]||m.call(this,v,S)}function m(v,S){let b=this.opts.uriResolver.parse(S),y=(0,i._getFullPath)(this.opts.uriResolver,b),x=(0,i.getFullPath)(this.opts.uriResolver,v.baseId,void 0);if(Object.keys(v.schema).length>0&&y===x)return g.call(this,b,v);let w=(0,i.normalizeId)(y),E=this.refs[w]||this.schemas[w];if(typeof E=="string"){let T=m.call(this,v,E);return typeof T?.schema!="object"?void 0:g.call(this,b,T)}if(typeof E?.schema=="object"){if(E.validate||c.call(this,E),w===(0,i.normalizeId)(S)){let{schema:T}=E,{schemaId:I}=this.opts,A=T[I];return A&&(x=(0,i.resolveUrl)(this.opts.uriResolver,x,A)),new a({schema:T,schemaId:I,root:v,baseId:x})}return g.call(this,b,E)}}t.resolveSchema=m;var h=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function g(v,{baseId:S,schema:b,root:y}){var x;if(((x=v.fragment)===null||x===void 0?void 0:x[0])!=="/")return;for(let T of v.fragment.slice(1).split("/")){if(typeof b=="boolean")return;let I=b[(0,s.unescapeFragment)(T)];if(I===void 0)return;b=I;let A=typeof b=="object"&&b[this.opts.schemaId];!h.has(T)&&A&&(S=(0,i.resolveUrl)(this.opts.uriResolver,S,A))}let w;if(typeof b!="boolean"&&b.$ref&&!(0,s.schemaHasRulesButRef)(b,this.RULES)){let T=(0,i.resolveUrl)(this.opts.uriResolver,S,b.$ref);w=m.call(this,y,T)}let{schemaId:E}=this.opts;if(w=w||new a({schema:b,schemaId:E,root:y,baseId:S}),w.schema!==w.root.schema)return w}}),Xue=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}}),Yue=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}}),Que=ne((t,e)=>{var{HEX:r}=Yue(),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 i(v){if(u(v,".")<3)return{host:v,isIPV4:!1};let S=v.match(n)||[],[b]=S;return b?{host:c(b,"."),isIPV4:!0}:{host:v,isIPV4:!1}}function s(v,S=!1){let b="",y=!0;for(let x of v){if(r[x]===void 0)return;x!=="0"&&y===!0&&(y=!1),y||(b+=x)}return S&&b.length===0&&(b="0"),b}function o(v){let S=0,b={error:!1,address:"",zone:""},y=[],x=[],w=!1,E=!1,T=!1;function I(){if(x.length){if(w===!1){let A=s(x);if(A!==void 0)y.push(A);else return b.error=!0,!1}x.length=0}return!0}for(let A=0;A7){b.error=!0;break}A-1>=0&&v[A-1]===":"&&(E=!0);continue}else if(N==="%"){if(!I())break;w=!0}else{x.push(N);continue}}return x.length&&(w?b.zone=x.join(""):T?y.push(x.join("")):y.push(s(x))),b.address=y.join(""),b}function a(v){if(u(v,":")<2)return{host:v,isIPV6:!1};let S=o(v);if(S.error)return{host:v,isIPV6:!1};{let b=S.address,y=S.address;return S.zone&&(b+="%"+S.zone,y+="%25"+S.zone),{host:b,escapedHost:y,isIPV6:!0}}}function c(v,S){let b="",y=!0,x=v.length;for(let w=0;w{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 i(y){return typeof y.secure=="boolean"?y.secure:String(y.scheme).toLowerCase()==="wss"}function s(y){return y.host||(y.error=y.error||"HTTP URIs must have a host."),y}function o(y){let x=String(y.scheme).toLowerCase()==="https";return(y.port===(x?443:80)||y.port==="")&&(y.port=void 0),y.path||(y.path="/"),y}function a(y){return y.secure=i(y),y.resourceName=(y.path||"/")+(y.query?"?"+y.query:""),y.path=void 0,y.query=void 0,y}function c(y){if((y.port===(i(y)?443:80)||y.port==="")&&(y.port=void 0),typeof y.secure=="boolean"&&(y.scheme=y.secure?"wss":"ws",y.secure=void 0),y.resourceName){let[x,w]=y.resourceName.split("?");y.path=x&&x!=="/"?x:void 0,y.query=w,y.resourceName=void 0}return y.fragment=void 0,y}function u(y,x){if(!y.path)return y.error="URN can not be parsed",y;let w=y.path.match(n);if(w){let E=x.scheme||y.scheme||"urn";y.nid=w[1].toLowerCase(),y.nss=w[2];let T=`${E}:${x.nid||y.nid}`,I=b[T];y.path=void 0,I&&(y=I.parse(y,x))}else y.error=y.error||"URN can not be parsed.";return y}function l(y,x){let w=x.scheme||y.scheme||"urn",E=y.nid.toLowerCase(),T=`${w}:${x.nid||E}`,I=b[T];I&&(y=I.serialize(y,x));let A=y,N=y.nss;return A.path=`${E||x.nid}:${N}`,x.skipEscape=!0,A}function d(y,x){let w=y;return w.uuid=w.nss,w.nss=void 0,!x.tolerant&&(!w.uuid||!r.test(w.uuid))&&(w.error=w.error||"UUID is not valid."),w}function p(y){let x=y;return x.nss=(y.uuid||"").toLowerCase(),x}var f={scheme:"http",domainHost:!0,parse:s,serialize:o},m={scheme:"https",domainHost:f.domainHost,parse:s,serialize:o},h={scheme:"ws",domainHost:!0,parse:a,serialize:c},g={scheme:"wss",domainHost:h.domainHost,parse:h.parse,serialize:h.serialize},v={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},S={scheme:"urn:uuid",parse:d,serialize:p,skipNormalize:!0},b={http:f,https:m,ws:h,wss:g,urn:v,"urn:uuid":S};e.exports=b}),tle=ne((t,e)=>{var{normalizeIPv6:r,normalizeIPv4:n,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Que(),a=ele();function c(S,b){return typeof S=="string"?S=p(g(S,b),b):typeof S=="object"&&(S=g(p(S,b),b)),S}function u(S,b,y){let x=Object.assign({scheme:"null"},y),w=l(g(S,x),g(b,x),x,!0);return p(w,{...x,skipEscape:!0})}function l(S,b,y,x){let w={};return x||(S=g(p(S,y),y),b=g(p(b,y),y)),y=y||{},!y.tolerant&&b.scheme?(w.scheme=b.scheme,w.userinfo=b.userinfo,w.host=b.host,w.port=b.port,w.path=i(b.path||""),w.query=b.query):(b.userinfo!==void 0||b.host!==void 0||b.port!==void 0?(w.userinfo=b.userinfo,w.host=b.host,w.port=b.port,w.path=i(b.path||""),w.query=b.query):(b.path?(b.path.charAt(0)==="/"?w.path=i(b.path):((S.userinfo!==void 0||S.host!==void 0||S.port!==void 0)&&!S.path?w.path="/"+b.path:S.path?w.path=S.path.slice(0,S.path.lastIndexOf("/")+1)+b.path:w.path=b.path,w.path=i(w.path)),w.query=b.query):(w.path=S.path,b.query!==void 0?w.query=b.query:w.query=S.query),w.userinfo=S.userinfo,w.host=S.host,w.port=S.port),w.scheme=S.scheme),w.fragment=b.fragment,w}function d(S,b,y){return typeof S=="string"?(S=unescape(S),S=p(o(g(S,y),!0),{...y,skipEscape:!0})):typeof S=="object"&&(S=p(o(S,!0),{...y,skipEscape:!0})),typeof b=="string"?(b=unescape(b),b=p(o(g(b,y),!0),{...y,skipEscape:!0})):typeof b=="object"&&(b=p(o(b,!0),{...y,skipEscape:!0})),S.toLowerCase()===b.toLowerCase()}function p(S,b){let y={host:S.host,scheme:S.scheme,userinfo:S.userinfo,port:S.port,path:S.path,query:S.query,nid:S.nid,nss:S.nss,uuid:S.uuid,fragment:S.fragment,reference:S.reference,resourceName:S.resourceName,secure:S.secure,error:""},x=Object.assign({},b),w=[],E=a[(x.scheme||y.scheme||"").toLowerCase()];E&&E.serialize&&E.serialize(y,x),y.path!==void 0&&(x.skipEscape?y.path=unescape(y.path):(y.path=escape(y.path),y.scheme!==void 0&&(y.path=y.path.split("%3A").join(":")))),x.reference!=="suffix"&&y.scheme&&w.push(y.scheme,":");let T=s(y);if(T!==void 0&&(x.reference!=="suffix"&&w.push("//"),w.push(T),y.path&&y.path.charAt(0)!=="/"&&w.push("/")),y.path!==void 0){let I=y.path;!x.absolutePath&&(!E||!E.absolutePath)&&(I=i(I)),T===void 0&&(I=I.replace(/^\/\//u,"/%2F")),w.push(I)}return y.query!==void 0&&w.push("?",y.query),y.fragment!==void 0&&w.push("#",y.fragment),w.join("")}var f=Array.from({length:127},(S,b)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(b)));function m(S){let b=0;for(let y=0,x=S.length;y126||f[b])return!0;return!1}var h=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(S,b){let y=Object.assign({},b),x={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},w=S.indexOf("%")!==-1,E=!1;y.reference==="suffix"&&(S=(y.scheme?y.scheme+":":"")+"//"+S);let T=S.match(h);if(T){if(x.scheme=T[1],x.userinfo=T[3],x.host=T[4],x.port=parseInt(T[5],10),x.path=T[6]||"",x.query=T[7],x.fragment=T[8],isNaN(x.port)&&(x.port=T[5]),x.host){let A=n(x.host);if(A.isIPV4===!1){let N=r(A.host);x.host=N.host.toLowerCase(),E=N.isIPV6}else x.host=A.host,E=!0}x.scheme===void 0&&x.userinfo===void 0&&x.host===void 0&&x.port===void 0&&x.query===void 0&&!x.path?x.reference="same-document":x.scheme===void 0?x.reference="relative":x.fragment===void 0?x.reference="absolute":x.reference="uri",y.reference&&y.reference!=="suffix"&&y.reference!==x.reference&&(x.error=x.error||"URI is not a "+y.reference+" reference.");let I=a[(y.scheme||x.scheme||"").toLowerCase()];if(!y.unicodeSupport&&(!I||!I.unicodeSupport)&&x.host&&(y.domainHost||I&&I.domainHost)&&E===!1&&m(x.host))try{x.host=URL.domainToASCII(x.host.toLowerCase())}catch(A){x.error=x.error||"Host's domain name can not be converted to ASCII: "+A}(!I||I&&!I.skipNormalize)&&(w&&x.scheme!==void 0&&(x.scheme=unescape(x.scheme)),w&&x.host!==void 0&&(x.host=unescape(x.host)),x.path&&(x.path=escape(unescape(x.path))),x.fragment&&(x.fragment=encodeURI(decodeURIComponent(x.fragment)))),I&&I.parse&&I.parse(x,y)}else x.error=x.error||"URI can not be parsed.";return x}var v={SCHEMES:a,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:p,parse:g};e.exports=v,e.exports.default=v,e.exports.fastUri=v}),rle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=tle();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),nle=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=Bv();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=Ze();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=A$(),i=Gv(),s=_F(),o=N$(),a=Ze(),c=Zv(),u=Dv(),l=at(),d=Xue(),p=rle(),f=(K,C)=>new RegExp(K,C);f.code="new RegExp";var m=["removeAdditional","useDefaults","coerceTypes"],h=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={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."},v={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},S=200;function b(K){var C,H,M,k,R,F,le,ce,Qe,Xe,qt,P,D,Z,J,ue,We,gr,ri,nn,sn,vr,Na,Nn,p_;let Yu=K.strict,f_=(C=K.code)===null||C===void 0?void 0:C.optimize,YI=f_===!0||f_===void 0?1:f_||0,QI=(M=(H=K.code)===null||H===void 0?void 0:H.regExp)!==null&&M!==void 0?M:f,rH=(k=K.uriResolver)!==null&&k!==void 0?k:p.default;return{strictSchema:(F=(R=K.strictSchema)!==null&&R!==void 0?R:Yu)!==null&&F!==void 0?F:!0,strictNumbers:(ce=(le=K.strictNumbers)!==null&&le!==void 0?le:Yu)!==null&&ce!==void 0?ce:!0,strictTypes:(Xe=(Qe=K.strictTypes)!==null&&Qe!==void 0?Qe:Yu)!==null&&Xe!==void 0?Xe:"log",strictTuples:(P=(qt=K.strictTuples)!==null&&qt!==void 0?qt:Yu)!==null&&P!==void 0?P:"log",strictRequired:(Z=(D=K.strictRequired)!==null&&D!==void 0?D:Yu)!==null&&Z!==void 0?Z:!1,code:K.code?{...K.code,optimize:YI,regExp:QI}:{optimize:YI,regExp:QI},loopRequired:(J=K.loopRequired)!==null&&J!==void 0?J:S,loopEnum:(ue=K.loopEnum)!==null&&ue!==void 0?ue:S,meta:(We=K.meta)!==null&&We!==void 0?We:!0,messages:(gr=K.messages)!==null&&gr!==void 0?gr:!0,inlineRefs:(ri=K.inlineRefs)!==null&&ri!==void 0?ri:!0,schemaId:(nn=K.schemaId)!==null&&nn!==void 0?nn:"$id",addUsedSchema:(sn=K.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(vr=K.validateSchema)!==null&&vr!==void 0?vr:!0,validateFormats:(Na=K.validateFormats)!==null&&Na!==void 0?Na:!0,unicodeRegExp:(Nn=K.unicodeRegExp)!==null&&Nn!==void 0?Nn:!0,int32range:(p_=K.int32range)!==null&&p_!==void 0?p_:!0,uriResolver:rH}}class y{constructor(C={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,C=this.opts={...C,...b(C)};let{es5:H,lines:M}=this.opts.code;this.scope=new a.ValueScope({scope:{},prefixes:h,es5:H,lines:M}),this.logger=U(C.logger);let k=C.validateFormats;C.validateFormats=!1,this.RULES=(0,s.getRules)(),x.call(this,g,C,"NOT SUPPORTED"),x.call(this,v,C,"DEPRECATED","warn"),this._metaOpts=A.call(this),C.formats&&T.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),C.keywords&&I.call(this,C.keywords),typeof C.meta=="object"&&this.addMetaSchema(C.meta),E.call(this),C.validateFormats=k}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:C,meta:H,schemaId:M}=this.opts,k=d;M==="id"&&(k={...d},k.id=k.$id,delete k.$id),H&&C&&this.addMetaSchema(k,k[M],!1)}defaultMeta(){let{meta:C,schemaId:H}=this.opts;return this.opts.defaultMeta=typeof C=="object"?C[H]||C:void 0}validate(C,H){let M;if(typeof C=="string"){if(M=this.getSchema(C),!M)throw new Error(`no schema with key or ref "${C}"`)}else M=this.compile(C);let k=M(H);return"$async"in M||(this.errors=M.errors),k}compile(C,H){let M=this._addSchema(C,H);return M.validate||this._compileSchemaEnv(M)}compileAsync(C,H){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:M}=this.opts;return k.call(this,C,H);async function k(Xe,qt){await R.call(this,Xe.$schema);let P=this._addSchema(Xe,qt);return P.validate||F.call(this,P)}async function R(Xe){Xe&&!this.getSchema(Xe)&&await k.call(this,{$ref:Xe},!0)}async function F(Xe){try{return this._compileSchemaEnv(Xe)}catch(qt){if(!(qt instanceof i.default))throw qt;return le.call(this,qt),await ce.call(this,qt.missingSchema),F.call(this,Xe)}}function le({missingSchema:Xe,missingRef:qt}){if(this.refs[Xe])throw new Error(`AnySchema ${Xe} is loaded but ${qt} cannot be resolved`)}async function ce(Xe){let qt=await Qe.call(this,Xe);this.refs[Xe]||await R.call(this,qt.$schema),this.refs[Xe]||this.addSchema(qt,Xe,H)}async function Qe(Xe){let qt=this._loading[Xe];if(qt)return qt;try{return await(this._loading[Xe]=M(Xe))}finally{delete this._loading[Xe]}}}addSchema(C,H,M,k=this.opts.validateSchema){if(Array.isArray(C)){for(let F of C)this.addSchema(F,void 0,M,k);return this}let R;if(typeof C=="object"){let{schemaId:F}=this.opts;if(R=C[F],R!==void 0&&typeof R!="string")throw new Error(`schema ${F} must be string`)}return H=(0,c.normalizeId)(H||R),this._checkUnique(H),this.schemas[H]=this._addSchema(C,M,H,k,!0),this}addMetaSchema(C,H,M=this.opts.validateSchema){return this.addSchema(C,H,!0,M),this}validateSchema(C,H){if(typeof C=="boolean")return!0;let M;if(M=C.$schema,M!==void 0&&typeof M!="string")throw new Error("$schema must be a string");if(M=M||this.opts.defaultMeta||this.defaultMeta(),!M)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let k=this.validate(M,C);if(!k&&H){let R="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(R);else throw new Error(R)}return k}getSchema(C){let H;for(;typeof(H=w.call(this,C))=="string";)C=H;if(H===void 0){let{schemaId:M}=this.opts,k=new o.SchemaEnv({schema:{},schemaId:M});if(H=o.resolveSchema.call(this,k,C),!H)return;this.refs[C]=H}return H.validate||this._compileSchemaEnv(H)}removeSchema(C){if(C instanceof RegExp)return this._removeAllSchemas(this.schemas,C),this._removeAllSchemas(this.refs,C),this;switch(typeof C){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let H=w.call(this,C);return typeof H=="object"&&this._cache.delete(H.schema),delete this.schemas[C],delete this.refs[C],this}case"object":{let H=C;this._cache.delete(H);let M=C[this.opts.schemaId];return M&&(M=(0,c.normalizeId)(M),delete this.schemas[M],delete this.refs[M]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(C){for(let H of C)this.addKeyword(H);return this}addKeyword(C,H){let M;if(typeof C=="string")M=C,typeof H=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),H.keyword=M);else if(typeof C=="object"&&H===void 0){if(H=C,M=H.keyword,Array.isArray(M)&&!M.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(j.call(this,M,H),!H)return(0,l.eachItem)(M,R=>ae.call(this,R)),this;ze.call(this,H);let k={...H,type:(0,u.getJSONTypes)(H.type),schemaType:(0,u.getJSONTypes)(H.schemaType)};return(0,l.eachItem)(M,k.type.length===0?R=>ae.call(this,R,k):R=>k.type.forEach(F=>ae.call(this,R,k,F))),this}getKeyword(C){let H=this.RULES.all[C];return typeof H=="object"?H.definition:!!H}removeKeyword(C){let{RULES:H}=this;delete H.keywords[C],delete H.all[C];for(let M of H.rules){let k=M.rules.findIndex(R=>R.keyword===C);k>=0&&M.rules.splice(k,1)}return this}addFormat(C,H){return typeof H=="string"&&(H=new RegExp(H)),this.formats[C]=H,this}errorsText(C=this.errors,{separator:H=", ",dataVar:M="data"}={}){return!C||C.length===0?"No errors":C.map(k=>`${M}${k.instancePath} ${k.message}`).reduce((k,R)=>k+H+R)}$dataMetaSchema(C,H){let M=this.RULES.all;C=JSON.parse(JSON.stringify(C));for(let k of H){let R=k.split("/").slice(1),F=C;for(let le of R)F=F[le];for(let le in M){let ce=M[le];if(typeof ce!="object")continue;let{$data:Qe}=ce.definition,Xe=F[le];Qe&&Xe&&(F[le]=Ge(Xe))}}return C}_removeAllSchemas(C,H){for(let M in C){let k=C[M];(!H||H.test(M))&&(typeof k=="string"?delete C[M]:k&&!k.meta&&(this._cache.delete(k.schema),delete C[M]))}}_addSchema(C,H,M,k=this.opts.validateSchema,R=this.opts.addUsedSchema){let F,{schemaId:le}=this.opts;if(typeof C=="object")F=C[le];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof C!="boolean")throw new Error("schema must be object or boolean")}let ce=this._cache.get(C);if(ce!==void 0)return ce;M=(0,c.normalizeId)(F||M);let Qe=c.getSchemaRefs.call(this,C,M);return ce=new o.SchemaEnv({schema:C,schemaId:le,meta:H,baseId:M,localRefs:Qe}),this._cache.set(ce.schema,ce),R&&!M.startsWith("#")&&(M&&this._checkUnique(M),this.refs[M]=ce),k&&this.validateSchema(C,!0),ce}_checkUnique(C){if(this.schemas[C]||this.refs[C])throw new Error(`schema with key or id "${C}" already exists`)}_compileSchemaEnv(C){if(C.meta?this._compileMetaSchema(C):o.compileSchema.call(this,C),!C.validate)throw new Error("ajv implementation error");return C.validate}_compileMetaSchema(C){let H=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,C)}finally{this.opts=H}}}y.ValidationError=n.default,y.MissingRefError=i.default,t.default=y;function x(K,C,H,M="error"){for(let k in K){let R=k;R in C&&this.logger[M](`${H}: option ${k}. ${K[R]}`)}}function w(K){return K=(0,c.normalizeId)(K),this.schemas[K]||this.refs[K]}function E(){let K=this.opts.schemas;if(K)if(Array.isArray(K))this.addSchema(K);else for(let C in K)this.addSchema(K[C],C)}function T(){for(let K in this.opts.formats){let C=this.opts.formats[K];C&&this.addFormat(K,C)}}function I(K){if(Array.isArray(K)){this.addVocabulary(K);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let C in K){let H=K[C];H.keyword||(H.keyword=C),this.addKeyword(H)}}function A(){let K={...this.opts};for(let C of m)delete K[C];return K}var N={log(){},warn(){},error(){}};function U(K){if(K===!1)return N;if(K===void 0)return console;if(K.log&&K.warn&&K.error)return K;throw new Error("logger must implement log, warn and error methods")}var V=/^[a-z_$][a-z0-9_$:-]*$/i;function j(K,C){let{RULES:H}=this;if((0,l.eachItem)(K,M=>{if(H.keywords[M])throw new Error(`Keyword ${M} is already defined`);if(!V.test(M))throw new Error(`Keyword ${M} has invalid name`)}),!!C&&C.$data&&!("code"in C||"validate"in C))throw new Error('$data keyword must have "code" or "validate" function')}function ae(K,C,H){var M;let k=C?.post;if(H&&k)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:R}=this,F=k?R.post:R.rules.find(({type:ce})=>ce===H);if(F||(F={type:H,rules:[]},R.rules.push(F)),R.keywords[K]=!0,!C)return;let le={keyword:K,definition:{...C,type:(0,u.getJSONTypes)(C.type),schemaType:(0,u.getJSONTypes)(C.schemaType)}};C.before?Me.call(this,F,le,C.before):F.rules.push(le),R.all[K]=le,(M=C.implements)===null||M===void 0||M.forEach(ce=>this.addKeyword(ce))}function Me(K,C,H){let M=K.rules.findIndex(k=>k.keyword===H);M>=0?K.rules.splice(M,0,C):(K.rules.push(C),this.logger.warn(`rule ${H} is not defined`))}function ze(K){let{metaSchema:C}=K;C!==void 0&&(K.$data&&this.opts.$data&&(C=Ge(C)),K.validateSchema=this.compile(C,!0))}var Et={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Ge(K){return{anyOf:[K,Et]}}}),ile=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=e}),sle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=Gv(),r=wi(),n=Ze(),i=xo(),s=N$(),o=at(),a={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:f}=l,{baseId:m,schemaEnv:h,validateName:g,opts:v,self:S}=f,{root:b}=h;if((p==="#"||p==="#/")&&m===b.baseId)return x();let y=s.resolveRef.call(S,b,m,p);if(y===void 0)throw new e.default(f.opts.uriResolver,m,p);if(y instanceof s.SchemaEnv)return w(y);return E(y);function x(){if(h===b)return u(l,g,h,h.$async);let T=d.scopeValue("root",{ref:b});return u(l,(0,n._)`${T}.validate`,b,b.$async)}function w(T){let I=c(l,T);u(l,I,T,T.$async)}function E(T){let I=d.scopeValue("schema",v.code.source===!0?{ref:T,code:(0,n.stringify)(T)}:{ref:T}),A=d.name("valid"),N=l.subschema({schema:T,dataTypes:[],schemaPath:n.nil,topSchemaRef:I,errSchemaPath:p},A);l.mergeEvaluated(N),l.ok(A)}}};function c(l,d){let{gen:p}=l;return d.validate?p.scopeValue("validate",{ref:d.validate}):(0,n._)`${p.scopeValue("wrapper",{ref:d})}.validate`}t.getValidate=c;function u(l,d,p,f){let{gen:m,it:h}=l,{allErrors:g,schemaEnv:v,opts:S}=h,b=S.passContext?i.default.this:n.nil;f?y():x();function y(){if(!v.$async)throw new Error("async schema referenced by sync schema");let T=m.let("valid");m.try(()=>{m.code((0,n._)`await ${(0,r.callValidateCode)(l,d,b)}`),E(d),g||m.assign(T,!0)},I=>{m.if((0,n._)`!(${I} instanceof ${h.ValidationError})`,()=>m.throw(I)),w(I),g||m.assign(T,!1)}),l.ok(T)}function x(){l.result((0,r.callValidateCode)(l,d,b),()=>E(d),()=>w(d))}function w(T){let I=(0,n._)`${T}.errors`;m.assign(i.default.vErrors,(0,n._)`${i.default.vErrors} === null ? ${I} : ${i.default.vErrors}.concat(${I})`),m.assign(i.default.errors,(0,n._)`${i.default.vErrors}.length`)}function E(T){var I;if(!h.opts.unevaluated)return;let A=(I=p?.validate)===null||I===void 0?void 0:I.evaluated;if(h.props!==!0)if(A&&!A.dynamicProps)A.props!==void 0&&(h.props=o.mergeEvaluated.props(m,A.props,h.props));else{let N=m.var("props",(0,n._)`${T}.evaluated.props`);h.props=o.mergeEvaluated.props(m,N,h.props,n.Name)}if(h.items!==!0)if(A&&!A.dynamicItems)A.items!==void 0&&(h.items=o.mergeEvaluated.items(m,A.items,h.items));else{let N=m.var("items",(0,n._)`${T}.evaluated.items`);h.items=o.mergeEvaluated.items(m,N,h.items,n.Name)}}}t.callRef=u,t.default=a}),ole=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ile(),r=sle(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),ale=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),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}},i={message:({keyword:o,schemaCode:a})=>(0,e.str)`must be ${n[o].okStr} ${a}`,params:({keyword:o,schemaCode:a})=>(0,e._)`{comparison: ${n[o].okStr}, limit: ${a}}`},s={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u}=o;o.fail$data((0,e._)`${c} ${n[a].fail} ${u} || isNaN(${c})`)}};t.default=s}),cle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message:({schemaCode:i})=>(0,e.str)`must be multiple of ${i}`,params:({schemaCode:i})=>(0,e._)`{multipleOf: ${i}}`},n={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(i){let{gen:s,data:o,schemaCode:a,it:c}=i,u=c.opts.multipleOfPrecision,l=s.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;i.fail$data((0,e._)`(${a} === 0 || (${l} = ${o}/${a}, ${d}))`)}};t.default=n}),ule=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,i=0,s=0,o;for(;s=55296&&o<=56319&&s{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n=ule(),i={message({keyword:o,schemaCode:a}){let c=o==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${a} characters`},params:({schemaCode:o})=>(0,e._)`{limit: ${o}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u,it:l}=o,d=a==="maxLength"?e.operators.GT:e.operators.LT,p=l.opts.unicode===!1?(0,e._)`${c}.length`:(0,e._)`${(0,r.useFunc)(o.gen,n.default)}(${c})`;o.fail$data((0,e._)`${p} ${d} ${u}`)}};t.default=s}),dle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=wi(),r=Ze(),n={message:({schemaCode:s})=>(0,r.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,r._)`{pattern: ${s}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n,code(s){let{data:o,$data:a,schema:c,schemaCode:u,it:l}=s,d=l.opts.unicodeRegExp?"u":"",p=a?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(s,c);s.fail$data((0,r._)`!${p}.test(${o})`)}};t.default=i}),ple=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message({keyword:i,schemaCode:s}){let o=i==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${s} properties`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxProperties"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`Object.keys(${o}).length ${c} ${a}`)}};t.default=n}),fle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=wi(),r=Ze(),n=at(),i={message:({params:{missingProperty:o}})=>(0,r.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,r._)`{missingProperty: ${o}}`},s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,schema:c,schemaCode:u,data:l,$data:d,it:p}=o,{opts:f}=p;if(!d&&c.length===0)return;let m=c.length>=f.loopRequired;if(p.allErrors?h():g(),f.strictRequired){let b=o.parentSchema.properties,{definedProperties:y}=o.it;for(let x of c)if(b?.[x]===void 0&&!y.has(x)){let w=p.schemaEnv.baseId+p.errSchemaPath,E=`required property "${x}" is not defined at "${w}" (strictRequired)`;(0,n.checkStrictMode)(p,E,p.opts.strictRequired)}}function h(){if(m||d)o.block$data(r.nil,v);else for(let b of c)(0,e.checkReportMissingProp)(o,b)}function g(){let b=a.let("missing");if(m||d){let y=a.let("valid",!0);o.block$data(y,()=>S(b,y)),o.ok(y)}else a.if((0,e.checkMissingProp)(o,c,b)),(0,e.reportMissingProp)(o,b),a.else()}function v(){a.forOf("prop",u,b=>{o.setParams({missingProperty:b}),a.if((0,e.noPropertyInData)(a,l,b,f.ownProperties),()=>o.error())})}function S(b,y){o.setParams({missingProperty:b}),a.forOf(b,u,()=>{a.assign(y,(0,e.propertyInData)(a,l,b,f.ownProperties)),a.if((0,r.not)(y),()=>{o.error(),a.break()})},r.nil)}}};t.default=s}),mle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message({keyword:i,schemaCode:s}){let o=i==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${s} items`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxItems"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`${o}.length ${c} ${a}`)}};t.default=n}),M$=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=SF();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),hle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Dv(),r=Ze(),n=at(),i=M$(),s={message:({params:{i:a,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${a} are identical)`,params:({params:{i:a,j:c}})=>(0,r._)`{i: ${a}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:s,code(a){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:f,it:m}=a;if(!l&&!d)return;let h=c.let("valid"),g=p.items?(0,e.getSchemaTypes)(p.items):[];a.block$data(h,v,(0,r._)`${f} === false`),a.ok(h);function v(){let x=c.let("i",(0,r._)`${u}.length`),w=c.let("j");a.setParams({i:x,j:w}),c.assign(h,!0),c.if((0,r._)`${x} > 1`,()=>(S()?b:y)(x,w))}function S(){return g.length>0&&!g.some(x=>x==="object"||x==="array")}function b(x,w){let E=c.name("item"),T=(0,e.checkDataTypes)(g,E,m.opts.strictNumbers,e.DataType.Wrong),I=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${x}--;`,()=>{c.let(E,(0,r._)`${u}[${x}]`),c.if(T,(0,r._)`continue`),g.length>1&&c.if((0,r._)`typeof ${E} == "string"`,(0,r._)`${E} += "_"`),c.if((0,r._)`typeof ${I}[${E}] == "number"`,()=>{c.assign(w,(0,r._)`${I}[${E}]`),a.error(),c.assign(h,!1).break()}).code((0,r._)`${I}[${E}] = ${x}`)})}function y(x,w){let E=(0,n.useFunc)(c,i.default),T=c.name("outer");c.label(T).for((0,r._)`;${x}--;`,()=>c.for((0,r._)`${w} = ${x}; ${w}--;`,()=>c.if((0,r._)`${E}(${u}[${x}], ${u}[${w}])`,()=>{a.error(),c.assign(h,!1).break(T)})))}}};t.default=o}),gle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n=M$(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,e._)`{allowedValue: ${o}}`},s={keyword:"const",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,e._)`!${(0,r.useFunc)(a,n.default)}(${c}, ${l})`):o.fail((0,e._)`${d} !== ${c}`)}};t.default=s}),vle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n=M$(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,e._)`{allowedValues: ${o}}`},s={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schema:l,schemaCode:d,it:p}=o;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let f=l.length>=p.opts.loopEnum,m,h=()=>m??(m=(0,r.useFunc)(a,n.default)),g;if(f||u)g=a.let("valid"),o.block$data(g,v);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let b=a.const("vSchema",d);g=(0,e.or)(...l.map((y,x)=>S(b,x)))}o.pass(g);function v(){a.assign(g,!1),a.forOf("v",d,b=>a.if((0,e._)`${h()}(${c}, ${b})`,()=>a.assign(g,!0).break()))}function S(b,y){let x=l[y];return typeof x=="object"&&x!==null?(0,e._)`${h()}(${c}, ${b}[${y}])`:(0,e._)`${c} === ${x}`}}};t.default=s}),yle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ale(),r=cle(),n=lle(),i=dle(),s=ple(),o=fle(),a=mle(),c=hle(),u=gle(),l=vle(),d=[e.default,r.default,n.default,i.default,s.default,o.default,a.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),xF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=Ze(),r=at(),n={message:({params:{len:o}})=>(0,e.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,e._)`{limit: ${o}}`},i={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:n,code(o){let{parentSchema:a,it:c}=o,{items:u}=a;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(o,u)}};function s(o,a){let{gen:c,schema:u,data:l,keyword:d,it:p}=o;p.items=!0;let f=c.const("len",(0,e._)`${l}.length`);if(u===!1)o.setParams({len:a.length}),o.pass((0,e._)`${f} <= ${a.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let h=c.var("valid",(0,e._)`${f} <= ${a.length}`);c.if((0,e.not)(h),()=>m(h)),o.ok(h)}function m(h){c.forRange("i",a.length,f,g=>{o.subschema({keyword:d,dataProp:g,dataPropType:r.Type.Num},h),p.allErrors||c.if((0,e.not)(h),()=>c.break())})}}t.validateAdditionalItems=s,t.default=i}),wF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=Ze(),r=at(),n=wi(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:a,it:c}=o;if(Array.isArray(a))return s(o,"additionalItems",a);c.items=!0,!(0,r.alwaysValidSchema)(c,a)&&o.ok((0,n.validateArray)(o))}};function s(o,a,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:p,it:f}=o;g(l),f.opts.unevaluated&&c.length&&f.items!==!0&&(f.items=r.mergeEvaluated.items(u,c.length,f.items));let m=u.name("valid"),h=u.const("len",(0,e._)`${d}.length`);c.forEach((v,S)=>{(0,r.alwaysValidSchema)(f,v)||(u.if((0,e._)`${h} > ${S}`,()=>o.subschema({keyword:p,schemaProp:S,dataProp:S},m)),o.ok(m))});function g(v){let{opts:S,errSchemaPath:b}=f,y=c.length,x=y===v.minItems&&(y===v.maxItems||v[a]===!1);if(S.strictTuples&&!x){let w=`"${p}" is ${y}-tuple, but minItems or maxItems/${a} are not specified or different at path "${b}"`;(0,r.checkStrictMode)(f,w,S.strictTuples)}}}t.validateTuple=s,t.default=i}),_le=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=wF(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),ble=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n=wi(),i=xF(),s={message:({params:{len:a}})=>(0,e.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,e._)`{limit: ${a}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(a){let{schema:c,parentSchema:u,it:l}=a,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(a,d):a.ok((0,n.validateArray)(a)))}};t.default=o}),Sle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n={message:({params:{min:s,max:o}})=>o===void 0?(0,e.str)`must contain at least ${s} valid item(s)`:(0,e.str)`must contain at least ${s} and no more than ${o} valid item(s)`,params:({params:{min:s,max:o}})=>o===void 0?(0,e._)`{minContains: ${s}}`:(0,e._)`{minContains: ${s}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(s){let{gen:o,schema:a,parentSchema:c,data:u,it:l}=s,d,p,{minContains:f,maxContains:m}=c;l.opts.next?(d=f===void 0?1:f,p=m):d=1;let h=o.const("len",(0,e._)`${u}.length`);if(s.setParams({min:d,max:p}),p===void 0&&d===0){(0,r.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(p!==void 0&&d>p){(0,r.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,r.alwaysValidSchema)(l,a)){let y=(0,e._)`${h} >= ${d}`;p!==void 0&&(y=(0,e._)`${y} && ${h} <= ${p}`),s.pass(y);return}l.items=!0;let g=o.name("valid");p===void 0&&d===1?S(g,()=>o.if(g,()=>o.break())):d===0?(o.let(g,!0),p!==void 0&&o.if((0,e._)`${u}.length > 0`,v)):(o.let(g,!1),v()),s.result(g,()=>s.reset());function v(){let y=o.name("_valid"),x=o.let("count",0);S(y,()=>o.if(y,()=>b(x)))}function S(y,x){o.forRange("i",0,h,w=>{s.subschema({keyword:"contains",dataProp:w,dataPropType:r.Type.Num,compositeRule:!0},y),x()})}function b(y){o.code((0,e._)`${y}++`),p===void 0?o.if((0,e._)`${y} >= ${d}`,()=>o.assign(g,!0).break()):(o.if((0,e._)`${y} > ${p}`,()=>o.assign(g,!1).break()),d===1?o.assign(g,!0):o.if((0,e._)`${y} >= ${d}`,()=>o.assign(g,!0)))}}};t.default=i}),xle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=Ze(),r=at(),n=wi();t.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,e.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,e._)`{property: ${c}, missingProperty: ${d}, depsCount: ${u}, - deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let p=Array.isArray(c[d])?u:l;p[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:p}=c;if(Object.keys(u).length===0)return;let m=l.let("missing");for(let f in u){let g=u[f];if(g.length===0)continue;let h=(0,n.propertyInData)(l,d,f,p.opts.ownProperties);c.setParams({property:f,depsCount:g.length,deps:g.join(", ")}),p.allErrors?l.if(h,()=>{for(let v of g)(0,n.checkReportMissingProp)(c,v)}):(l.if((0,e._)`${h} && (${(0,n.checkMissingProp)(c,g,m)})`),(0,n.reportMissingProp)(c,m),l.else())}}t.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:p,it:m}=c,f=l.name("valid");for(let g in u)(0,r.alwaysValidSchema)(m,u[g])||(l.if((0,n.propertyInData)(l,d,g,m.opts.ownProperties),()=>{let h=c.subschema({keyword:p,schemaProp:g},f);c.mergeValidEvaluated(h,f)},()=>l.var(f,!0)),c.ok(f))}t.validateSchemaDeps=a,t.default=i}),sae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n={message:"property name must be valid",params:({params:s})=>(0,e._)`{propertyName: ${s.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(s){let{gen:o,schema:a,data:c,it:u}=s;if((0,r.alwaysValidSchema)(u,a))return;let l=o.name("valid");o.forIn("key",c,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,e.not)(l),()=>{s.error(!0),u.allErrors||o.break()})}),s.ok(l)}};t.default=i}),y2=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=oi(),r=Ze(),n=Vs(),i=at(),s={message:"must NOT have additional properties",params:({params:a})=>(0,r._)`{additionalProperty: ${a.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(a){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:m}=a;if(!p)throw new Error("ajv implementation error");let{allErrors:f,opts:g}=m;if(m.props=!0,g.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(m,u))return;let h=(0,e.allSchemaProperties)(l.properties),v=(0,e.allSchemaProperties)(l.patternProperties);x(),a.ok((0,r._)`${p} === ${n.default.errors}`);function x(){c.forIn("key",d,E=>{!h.length&&!v.length?S(E):c.if(b(E),()=>S(E))})}function b(E){let $;if(h.length>8){let R=(0,i.schemaRefOrVal)(m,l.properties,"properties");$=(0,e.isOwnProperty)(c,R,E)}else h.length?$=(0,r.or)(...h.map(R=>(0,r._)`${E} === ${R}`)):$=r.nil;return v.length&&($=(0,r.or)($,...v.map(R=>(0,r._)`${(0,e.usePattern)(a,R)}.test(${E})`))),(0,r.not)($)}function _(E){c.code((0,r._)`delete ${d}[${E}]`)}function S(E){if(g.removeAdditional==="all"||g.removeAdditional&&u===!1){_(E);return}if(u===!1){a.setParams({additionalProperty:E}),a.error(),f||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(m,u)){let $=c.name("valid");g.removeAdditional==="failing"?(w(E,$,!1),c.if((0,r.not)($),()=>{a.reset(),_(E)})):(w(E,$),f||c.if((0,r.not)($),()=>c.break()))}}function w(E,$,R){let A={keyword:"additionalProperties",dataProp:E,dataPropType:i.Type.Str};R===!1&&Object.assign(A,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema(A,$)}}};t.default=o}),oae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Rg(),r=oi(),n=at(),i=y2(),s={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,parentSchema:u,data:l,it:d}=o;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&i.default.code(new e.KeywordCxt(d,i.default,"additionalProperties"));let p=(0,r.allSchemaProperties)(c);for(let v of p)d.definedProperties.add(v);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=n.mergeEvaluated.props(a,(0,n.toHash)(p),d.props));let m=p.filter(v=>!(0,n.alwaysValidSchema)(d,c[v]));if(m.length===0)return;let f=a.name("valid");for(let v of m)g(v)?h(v):(a.if((0,r.propertyInData)(a,l,v,d.opts.ownProperties)),h(v),d.allErrors||a.else().var(f,!0),a.endIf()),o.it.definedProperties.add(v),o.ok(f);function g(v){return d.opts.useDefaults&&!d.compositeRule&&c[v].default!==void 0}function h(v){o.subschema({keyword:"properties",schemaProp:v,dataProp:v},f)}}};t.default=s}),aae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=oi(),r=Ze(),n=at(),i=at(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,data:u,parentSchema:l,it:d}=o,{opts:p}=d,m=(0,e.allSchemaProperties)(c),f=m.filter(S=>(0,n.alwaysValidSchema)(d,c[S]));if(m.length===0||f.length===m.length&&(!d.opts.unevaluated||d.props===!0))return;let g=p.strictSchema&&!p.allowMatchingProperties&&l.properties,h=a.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,i.evaluatedPropsToName)(a,d.props));let{props:v}=d;x();function x(){for(let S of m)g&&b(S),d.allErrors?_(S):(a.var(h,!0),_(S),a.if(h))}function b(S){for(let w in g)new RegExp(S).test(w)&&(0,n.checkStrictMode)(d,`property ${w} matches pattern ${S} (use allowMatchingProperties)`)}function _(S){a.forIn("key",u,w=>{a.if((0,r._)`${(0,e.usePattern)(o,S)}.test(${w})`,()=>{let E=f.includes(S);E||o.subschema({keyword:"patternProperties",schemaProp:S,dataProp:w,dataPropType:i.Type.Str},h),d.opts.unevaluated&&v!==!0?a.assign((0,r._)`${v}[${w}]`,!0):!E&&!d.allErrors&&a.if((0,r.not)(h),()=>a.break())})})}}};t.default=s}),cae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=at(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:i,schema:s,it:o}=n;if((0,e.alwaysValidSchema)(o,s)){n.fail();return}let a=i.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),n.failResult(a,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),uae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=oi(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),lae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,e._)`{passingSchemas: ${s.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(s){let{gen:o,schema:a,parentSchema:c,it:u}=s;if(!Array.isArray(a))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=a,d=o.let("valid",!1),p=o.let("passing",null),m=o.name("_valid");s.setParams({passing:p}),o.block(f),s.result(d,()=>s.reset(),()=>s.error(!0));function f(){l.forEach((g,h)=>{let v;(0,r.alwaysValidSchema)(u,g)?o.var(m,!0):v=s.subschema({keyword:"oneOf",schemaProp:h,compositeRule:!0},m),h>0&&o.if((0,e._)`${m} && ${d}`).assign(d,!1).assign(p,(0,e._)`[${p}, ${h}]`).else(),o.if(m,()=>{o.assign(d,!0),o.assign(p,h),v&&s.mergeEvaluated(v,e.Name)})})}}};t.default=i}),dae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=at(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:i,schema:s,it:o}=n;if(!Array.isArray(s))throw new Error("ajv implementation error");let a=i.name("valid");s.forEach((c,u)=>{if((0,e.alwaysValidSchema)(o,c))return;let l=n.subschema({keyword:"allOf",schemaProp:u},a);n.ok(a),n.mergeEvaluated(l)})}};t.default=r}),pae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n={message:({params:o})=>(0,e.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,e._)`{failingKeyword: ${o.ifClause}}`},i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:n,code(o){let{gen:a,parentSchema:c,it:u}=o;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=s(u,"then"),d=s(u,"else");if(!l&&!d)return;let p=a.let("valid",!0),m=a.name("_valid");if(f(),o.reset(),l&&d){let h=a.let("ifClause");o.setParams({ifClause:h}),a.if(m,g("then",h),g("else",h))}else l?a.if(m,g("then")):a.if((0,e.not)(m),g("else"));o.pass(p,()=>o.error(!0));function f(){let h=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},m);o.mergeEvaluated(h)}function g(h,v){return()=>{let x=o.subschema({keyword:h},m);a.assign(p,m),o.mergeValidEvaluated(x,p),v?a.assign(v,(0,e._)`${h}`):o.setParams({ifClause:h})}}}};function s(o,a){let c=o.schema[a];return c!==void 0&&!(0,r.alwaysValidSchema)(o,c)}t.default=i}),mae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=at(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:i,it:s}){i.if===void 0&&(0,e.checkStrictMode)(s,`"${n}" without "if" is ignored`)}};t.default=r}),fae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=g2(),r=tae(),n=v2(),i=rae(),s=nae(),o=iae(),a=sae(),c=y2(),u=oae(),l=aae(),d=cae(),p=uae(),m=lae(),f=dae(),g=pae(),h=mae();function v(x=!1){let b=[d.default,p.default,m.default,f.default,g.default,h.default,a.default,c.default,o.default,u.default,l.default];return x?b.push(r.default,i.default):b.push(e.default,n.default),b.push(s.default),b}t.default=v}),hae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message:({schemaCode:i})=>(0,e.str)`must match format "${i}"`,params:({schemaCode:i})=>(0,e._)`{format: ${i}}`},n={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(i,s){let{gen:o,data:a,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:p,errSchemaPath:m,schemaEnv:f,self:g}=d;if(!p.validateFormats)return;c?h():v();function h(){let x=o.scopeValue("formats",{ref:g.formats,code:p.code.formats}),b=o.const("fDef",(0,e._)`${x}[${l}]`),_=o.let("fType"),S=o.let("format");o.if((0,e._)`typeof ${b} == "object" && !(${b} instanceof RegExp)`,()=>o.assign(_,(0,e._)`${b}.type || "string"`).assign(S,(0,e._)`${b}.validate`),()=>o.assign(_,(0,e._)`"string"`).assign(S,b)),i.fail$data((0,e.or)(w(),E()));function w(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${S}`}function E(){let $=f.$async?(0,e._)`(${b}.async ? await ${S}(${a}) : ${S}(${a}))`:(0,e._)`${S}(${a})`,R=(0,e._)`(typeof ${S} == "function" ? ${$} : ${S}.test(${a}))`;return(0,e._)`${S} && ${S} !== true && ${_} === ${s} && !${R}`}}function v(){let x=g.formats[u];if(!x){w();return}if(x===!0)return;let[b,_,S]=E(x);b===s&&i.pass($());function w(){if(p.strictSchema===!1){g.logger.warn(R());return}throw new Error(R());function R(){return`unknown format "${u}" ignored in schema at path "${m}"`}}function E(R){let A=R instanceof RegExp?(0,e.regexpCode)(R):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,N=o.scopeValue("formats",{key:u,ref:R,code:A});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,(0,e._)`${N}.validate`]:["string",R,N]}function $(){if(typeof x=="object"&&!(x instanceof RegExp)&&x.async){if(!f.$async)throw new Error("async format in sync schema");return(0,e._)`await ${S}(${a})`}return typeof _=="function"?(0,e._)`${S}(${a})`:(0,e._)`${S}.test(${a})`}}}};t.default=n}),gae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=hae(),r=[e.default];t.default=r}),vae=re(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"]}),yae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Foe(),r=eae(),n=fae(),i=gae(),s=vae(),o=[e.default,r.default,(0,n.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];t.default=o}),_ae=re(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={}))}),bae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=_ae(),n=Fk(),i=Og(),s=at(),o={message:({params:{discrError:c,tagName:u}})=>c===r.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,e._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},a={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:m}=c,{oneOf:f}=p;if(!m.opts.discriminator)throw new Error("discriminator: requires discriminator option");let g=d.propertyName;if(typeof g!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!f)throw new Error("discriminator: requires oneOf keyword");let h=u.let("valid",!1),v=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(g)}`);u.if((0,e._)`typeof ${v} == "string"`,()=>x(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:v,tagName:g})),c.ok(h);function x(){let S=_();u.if(!1);for(let w in S)u.elseIf((0,e._)`${v} === ${w}`),u.assign(h,b(S[w]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:v,tagName:g}),u.endIf()}function b(S){let w=u.name("valid"),E=c.subschema({keyword:"oneOf",schemaProp:S},w);return c.mergeEvaluated(E,e.Name),w}function _(){var S;let w={},E=R(p),$=!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}}),_2=re((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=Loe(),n=yae(),i=bae(),s=xae(),o=["/properties"],a="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(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let f=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(f,a,!1),this.refs["http://json-schema.org/schema"]=a}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(a)?a:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Rg();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=Ze();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=qk();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=Og();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),Sae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(N,U){return{validate:N,compare:U}}t.fullFormats={date:e(s,o),time:e(c(!0),u),"date-time":e(p(!0),m),"iso-time":e(c(),l),"iso-date-time":e(p(),f),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:v,"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:A,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:w},int64:{type:"number",validate:E},float:{type:"number",validate:$},double:{type:"number",validate:$},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,u),"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,l),"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(N){return N%4===0&&(N%100!==0||N%400===0)}var n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s(N){let U=n.exec(N);if(!U)return!1;let W=+U[1],j=+U[2],ae=+U[3];return j>=1&&j<=12&&ae>=1&&ae<=(j===2&&r(W)?29:i[j])}function o(N,U){if(N&&U)return N>U?1:N23||P>59||N&&!kt)return!1;if(ae<=23&&Ne<=59&&ze<60)return!0;let H=Ne-P*Ve,M=ae-K*Ve-(H<0?1:0);return(M===23||M===-1)&&(H===59||H===-1)&&ze<61}}function u(N,U){if(!(N&&U))return;let W=new Date("2020-01-01T"+N).valueOf(),j=new Date("2020-01-01T"+U).valueOf();if(W&&j)return W-j}function l(N,U){if(!(N&&U))return;let W=a.exec(N),j=a.exec(U);if(W&&j)return N=W[1]+W[2]+W[3],U=j[1]+j[2]+j[3],N>U?1:N=_}function E(N){return Number.isInteger(N)}function $(){return!0}var R=/[^\\]\\Z/;function A(N){if(R.test(N))return!1;try{return new RegExp(N),!0}catch{return!1}}}),wae=re(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=_2(),r=Ze(),n=r.operators,i={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}},s={message:({keyword:a,schemaCode:c})=>(0,r.str)`should be ${i[a].okStr} ${c}`,params:({keyword:a,schemaCode:c})=>(0,r._)`{comparison: ${i[a].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:s,code(a){let{gen:c,data:u,schemaCode:l,keyword:d,it:p}=a,{opts:m,self:f}=p;if(!m.validateFormats)return;let g=new e.KeywordCxt(p,f.RULES.all.format.definition,"format");g.$data?h():v();function h(){let b=c.scopeValue("formats",{ref:f.formats,code:m.code.formats}),_=c.const("fmt",(0,r._)`${b}[${g.schemaCode}]`);a.fail$data((0,r.or)((0,r._)`typeof ${_} != "object"`,(0,r._)`${_} instanceof RegExp`,(0,r._)`typeof ${_}.compare != "function"`,x(_)))}function v(){let b=g.schema,_=f.formats[b];if(!_||_===!0)return;if(typeof _!="object"||_ instanceof RegExp||typeof _.compare!="function")throw new Error(`"${d}": format "${b}" does not define "compare" function`);let S=c.scopeValue("formats",{key:b,ref:_,code:m.code.formats?(0,r._)`${m.code.formats}${(0,r.getProperty)(b)}`:void 0});a.fail$data(x(S))}function x(b){return(0,r._)`${b}.compare(${u}, ${l}) ${i[d].fail} 0`}},dependencies:["format"]};var o=a=>(a.addKeyword(t.formatLimitDefinition),a);t.default=o}),Eae=re((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=Sae(),n=wae(),i=Ze(),s=new i.Name("fullFormats"),o=new i.Name("fastFormats"),a=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,r.fullFormats,s),u;let[d,p]=l.mode==="fast"?[r.fastFormats,o]:[r.fullFormats,s],m=l.formats||r.formatNames;return c(u,m,d,p),l.keywords&&(0,n.default)(u),u};a.get=(u,l="full")=>{let p=(l==="fast"?r.fastFormats:r.fullFormats)[u];if(!p)throw new Error(`Unknown format "${u}"`);return p};function c(u,l,d,p){var m,f;(m=(f=u.opts.code).formats)!==null&&m!==void 0||(f.formats=(0,i._)`require("ajv-formats/dist/formats").${p}`);for(let g of l)u.addFormat(g,d[g])}e.exports=t=a,Object.defineProperty(t,"__esModule",{value:!0}),t.default=a}),kae=50;function S2(t=kae){let e=new AbortController;return(0,x2.setMaxListeners)(t,e.signal),e}var $ae=typeof global=="object"&&global&&global.Object===Object&&global,Tae=$ae,Iae=typeof self=="object"&&self&&self.Object===Object&&self,Rae=Tae||Iae||Function("return this")(),Zk=Rae,Oae=Zk.Symbol,xg=Oae,$2=Object.prototype,Pae=$2.hasOwnProperty,Cae=$2.toString,qd=xg?xg.toStringTag:void 0;function Aae(t){var e=Pae.call(t,qd),r=t[qd];try{t[qd]=void 0;var n=!0}catch{}var i=Cae.call(t);return n&&(e?t[qd]=r:delete t[qd]),i}var Nae=Aae,Mae=Object.prototype,Dae=Mae.toString;function jae(t){return Dae.call(t)}var zae=jae,Lae="[object Null]",Uae="[object Undefined]",MU=xg?xg.toStringTag:void 0;function qae(t){return t==null?t===void 0?Uae:Lae:MU&&MU in Object(t)?Nae(t):zae(t)}var Fae=qae;function Hae(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var T2=Hae,Zae="[object AsyncFunction]",Bae="[object Function]",Vae="[object GeneratorFunction]",Gae="[object Proxy]";function Wae(t){if(!T2(t))return!1;var e=Fae(t);return e==Bae||e==Vae||e==Zae||e==Gae}var Kae=Wae,Jae=Zk["__core-js_shared__"],hk=Jae,DU=(function(){var t=/[^.]+$/.exec(hk&&hk.keys&&hk.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function Xae(t){return!!DU&&DU in t}var Yae=Xae,Qae=Function.prototype,ece=Qae.toString;function tce(t){if(t!=null){try{return ece.call(t)}catch{}try{return t+""}catch{}}return""}var rce=tce,nce=/[\\^$.*+?()[\]{}|]/g,ice=/^\[object .+?Constructor\]$/,sce=Function.prototype,oce=Object.prototype,ace=sce.toString,cce=oce.hasOwnProperty,uce=RegExp("^"+ace.call(cce).replace(nce,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function lce(t){if(!T2(t)||Yae(t))return!1;var e=Kae(t)?uce:ice;return e.test(rce(t))}var dce=lce;function pce(t,e){return t?.[e]}var mce=pce;function fce(t,e){var r=mce(t,e);return dce(r)?r:void 0}var I2=fce,hce=I2(Object,"create"),Zd=hce;function gce(){this.__data__=Zd?Zd(null):{},this.size=0}var vce=gce;function yce(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var _ce=yce,bce="__lodash_hash_undefined__",xce=Object.prototype,Sce=xce.hasOwnProperty;function wce(t){var e=this.__data__;if(Zd){var r=e[t];return r===bce?void 0:r}return Sce.call(e,t)?e[t]:void 0}var Ece=wce,kce=Object.prototype,$ce=kce.hasOwnProperty;function Tce(t){var e=this.__data__;return Zd?e[t]!==void 0:$ce.call(e,t)}var Ice=Tce,Rce="__lodash_hash_undefined__";function Oce(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Zd&&e===void 0?Rce:e,this}var Pce=Oce;function Gc(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var Zce=Hce;function Bce(t,e){var r=this.__data__,n=Pg(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var Vce=Bce;function Wc(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{if(!t||t.trim()==="")return null;let e=t.split(",").map(s=>s.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(s=>s.startsWith("!")),n=e.some(s=>!s.startsWith("!"));if(r&&n)return null;let i=e.map(s=>s.replace(/^!/,"").toLowerCase());return{include:r?[]:i,exclude:r?i:[],isExclusive:r}});function pue(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let s=t.match(/^([^:[]+):/);s&&s[1]&&e.push(s[1].trim().toLowerCase())}let n=t.match(/^\[([^\]]+)]/);n&&n[1]&&e.push(n[1].trim().toLowerCase()),t.toLowerCase().includes("statsig event:")&&e.push("statsig");let i=t.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(i&&i[1]){let s=i[1].trim().toLowerCase();s.length<30&&!s.includes(" ")&&e.push(s)}return Array.from(new Set(e))}function mue(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 fue(t,e){if(!e)return!0;let r=pue(t);return mue(r,e)}function C2(){return process.env.CLAUDE_CONFIG_DIR??(0,O2.join)((0,P2.homedir)(),".claude")}function LU(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}var gk=15e4,mg=3e4;function D2(t){return{name:t,default:mg,validate:e=>{if(!e)return{effective:mg,status:"valid"};let r=parseInt(e,10);return isNaN(r)||r<=0?{effective:mg,status:"invalid",message:`Invalid value "${e}" (using default: ${mg})`}:r>gk?{effective:gk,status:"capped",message:`Capped from ${r} to ${gk}`}:{effective:r,status:"valid"}}}}var hue=D2("BASH_MAX_OUTPUT_LENGTH"),SPe=D2("TASK_MAX_OUTPUT_LENGTH"),gue={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:t=>{if(!t)return{effective:32e3,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:32e3,status:"invalid",message:`Invalid value "${t}" (using default: 32000)`}:n>64e3?{effective:64e3,status:"capped",message:`Capped from ${n} to 64000`}:{effective:n,status:"valid"}}};function vue(){let t="";return typeof process<"u"&&typeof process.cwd=="function"&&(t=(0,N2.realpathSync)((0,A2.cwd)())),{originalCwd:t,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration: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,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:(0,M2.randomUUID)(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[hue,gue],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],sessionBypassPermissionsMode:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0}}var yue=vue();function _ue(){return yue.sessionId}function bue({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,immediateMode:n=!1}){let i=[],s=null;function o(){s&&(clearTimeout(s),s=null)}function a(){i.length!==0&&(t(i.join("")),i=[],o())}function c(){s||(s=setTimeout(a,e))}return{write(u){if(n){t(u);return}i.push(u),c(),i.length>=r&&a()},flush:a,dispose(){a()}}}var UU=new Set;function xue(t){return UU.add(t),()=>UU.delete(t)}var j2=1/0;function Sue(t){return t===null?"null":t===void 0?"undefined":Array.isArray(t)?`Array[${t.length}]`:typeof t=="object"?`Object{${Object.keys(t).length} keys}`:typeof t=="string"?`string(${t.length} chars)`:typeof t}function z2(t,e){let r=performance.now();try{return e()}finally{let n=performance.now()-r;n>j2&&(os(`[SLOW OPERATION DETECTED] ${t} (${n.toFixed(1)}ms)`),void 0)}}function Ri(t,e,r){let n=Sue(t);return z2(`JSON.stringify(${n})`,()=>JSON.stringify(t,e,r))}var L2=(t,e)=>{let r=typeof t=="string"?t.length:0;return z2(`JSON.parse(${r} chars)`,()=>JSON.parse(t,e))},wue=ip(()=>LU(process.env.DEBUG)||LU(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||U2()||process.argv.some(t=>t.startsWith("--debug="))),Eue=ip(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return due(e)}),U2=ip(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));function kue(t){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=Eue();return fue(t,e)}var $ue=!1,fg=null;function Tue(){return fg||(fg=bue({writeFn:t=>{let e=q2();as().existsSync((0,qo.dirname)(e))||as().mkdirSync((0,qo.dirname)(e)),as().appendFileSync(e,t),Iue()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:wue()}),xue(async()=>fg?.dispose())),fg}function os(t,{level:e}={level:"debug"}){if(!kue(t))return;$ue&&t.includes(` -`)&&(t=Ri(t));let n=`${new Date().toISOString()} [${e.toUpperCase()}] ${t.trim()} -`;if(U2()){lue(n);return}Tue().write(n)}function q2(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,qo.join)(C2(),"debug",`${_ue()}.txt`)}var Iue=ip(()=>{if(process.argv[2]!=="--ripgrep")try{let t=q2(),e=(0,qo.dirname)(t),r=(0,qo.join)(e,"latest");if(as().existsSync(e)||as().mkdirSync(e),as().existsSync(r))try{as().unlinkSync(r)}catch{}as().symlinkSync(t,r)}catch{}});function er(t,e){let r=performance.now();try{return e()}finally{let n=performance.now()-r;n>j2&&(os(`[SLOW OPERATION DETECTED] fs.${t} (${n.toFixed(1)}ms)`),`${t}`,void 0)}}var Rue={cwd(){return process.cwd()},existsSync(t){return er(`existsSync(${t})`,()=>Ie.existsSync(t))},async stat(t){return(0,k2.stat)(t)},statSync(t){return er(`statSync(${t})`,()=>Ie.statSync(t))},lstatSync(t){return er(`lstatSync(${t})`,()=>Ie.lstatSync(t))},readFileSync(t,e){return er(`readFileSync(${t})`,()=>Ie.readFileSync(t,{encoding:e.encoding}))},readFileBytesSync(t){return er(`readFileBytesSync(${t})`,()=>Ie.readFileSync(t))},readSync(t,e){return er(`readSync(${t}, ${e.length} bytes)`,()=>{let r;try{r=Ie.openSync(t,"r");let n=Buffer.alloc(e.length),i=Ie.readSync(r,n,0,e.length,0);return{buffer:n,bytesRead:i}}finally{r&&Ie.closeSync(r)}})},appendFileSync(t,e,r){return er(`appendFileSync(${t}, ${e.length} chars)`,()=>{if(!Ie.existsSync(t)&&r?.mode!==void 0){let n=Ie.openSync(t,"a",r.mode);try{Ie.appendFileSync(n,e)}finally{Ie.closeSync(n)}}else Ie.appendFileSync(t,e)})},copyFileSync(t,e){return er(`copyFileSync(${t} \u2192 ${e})`,()=>Ie.copyFileSync(t,e))},unlinkSync(t){return er(`unlinkSync(${t})`,()=>Ie.unlinkSync(t))},renameSync(t,e){return er(`renameSync(${t} \u2192 ${e})`,()=>Ie.renameSync(t,e))},linkSync(t,e){return er(`linkSync(${t} \u2192 ${e})`,()=>Ie.linkSync(t,e))},symlinkSync(t,e){return er(`symlinkSync(${t} \u2192 ${e})`,()=>Ie.symlinkSync(t,e))},readlinkSync(t){return er(`readlinkSync(${t})`,()=>Ie.readlinkSync(t))},realpathSync(t){return er(`realpathSync(${t})`,()=>Ie.realpathSync(t))},mkdirSync(t,e){return er(`mkdirSync(${t})`,()=>{if(!Ie.existsSync(t)){let r={recursive:!0};e?.mode!==void 0&&(r.mode=e.mode),Ie.mkdirSync(t,r)}})},readdirSync(t){return er(`readdirSync(${t})`,()=>Ie.readdirSync(t,{withFileTypes:!0}))},readdirStringSync(t){return er(`readdirStringSync(${t})`,()=>Ie.readdirSync(t))},isDirEmptySync(t){return er(`isDirEmptySync(${t})`,()=>this.readdirSync(t).length===0)},rmdirSync(t){return er(`rmdirSync(${t})`,()=>Ie.rmdirSync(t))},rmSync(t,e){return er(`rmSync(${t})`,()=>Ie.rmSync(t,e))},createWriteStream(t){return Ie.createWriteStream(t)}},Oue=Rue;function as(){return Oue}var Uo=class extends Error{};function F2(){return process.versions.bun!==void 0}var hg=null,qU=!1;function Pue(){if(qU)return hg;if(qU=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let t=(0,Sk.join)(C2(),"debug");return hg=(0,Sk.join)(t,`sdk-${(0,H2.randomUUID)()}.txt`),(0,Jc.existsSync)(t)||(0,Jc.mkdirSync)(t,{recursive:!0}),process.stderr.write(`SDK debug logs: ${hg} -`),hg}function Lo(t){let e=Pue();if(!e)return;let n=`${new Date().toISOString()} ${t} -`;(0,Jc.appendFileSync)(e,n)}function Cue(t,e){let r={...t};if(e){let n={sandbox:e};if(r.settings)try{n={...L2(r.settings),sandbox:e}}catch{}r.settings=Ri(n)}return r}var wk=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||S2(),this.initialize()}getDefaultExecutable(){return F2()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:n,cwd:i,env:s,signal:o}=e,a=s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=(0,w2.spawn)(r,n,{cwd:i,stdio:["pipe","pipe",a],signal:o,env:s,windowsHide:!0});return(s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();Lo(d),this.options.stderr&&this.options.stderr(d)}),{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=[],betas:r,cwd:n,executable:i=this.getDefaultExecutable(),executableArgs:s=[],extraArgs:o={},pathToClaudeCodeExecutable:a,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:p,fallbackModel:m,jsonSchema:f,permissionMode:g,allowDangerouslySkipPermissions:h,permissionPromptToolName:v,continueConversation:x,resume:b,settingSources:_,allowedTools:S=[],disallowedTools:w=[],tools:E,mcpServers:$,strictMcpConfig:R,canUseTool:A,includePartialMessages:N,plugins:U,sandbox:W}=this.options,j=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&j.push("--max-thinking-tokens",u.toString()),l&&j.push("--max-turns",l.toString()),d!==void 0&&j.push("--max-budget-usd",d.toString()),p&&j.push("--model",p),r&&r.length>0&&j.push("--betas",r.join(",")),f&&j.push("--json-schema",Ri(f)),c.DEBUG_CLAUDE_AGENT_SDK&&j.push("--debug-to-stderr"),A){if(v)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");j.push("--permission-prompt-tool","stdio")}else v&&j.push("--permission-prompt-tool",v);if(x&&j.push("--continue"),b&&j.push("--resume",b),S.length>0&&j.push("--allowedTools",S.join(",")),w.length>0&&j.push("--disallowedTools",w.join(",")),E!==void 0&&(Array.isArray(E)?E.length===0?j.push("--tools",""):j.push("--tools",E.join(",")):j.push("--tools","default")),$&&Object.keys($).length>0&&j.push("--mcp-config",Ri({mcpServers:$})),_&&j.push("--setting-sources",_.join(",")),R&&j.push("--strict-mcp-config"),g&&j.push("--permission-mode",g),h&&j.push("--allow-dangerously-skip-permissions"),m){if(p&&m===p)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");j.push("--fallback-model",m)}N&&j.push("--include-partial-messages");for(let P of e)j.push("--add-dir",P);if(U&&U.length>0)for(let P of U)if(P.type==="local")j.push("--plugin-dir",P.path);else throw new Error(`Unsupported plugin type: ${P.type}`);this.options.forkSession&&j.push("--fork-session"),this.options.resumeSessionAt&&j.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&j.push("--no-session-persistence");let ae=Cue(o??{},W);for(let[P,H]of Object.entries(ae))H===null?j.push(`--${P}`):j.push(`--${P}`,H);c.CLAUDE_CODE_ENTRYPOINT||(c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete c.NODE_OPTIONS,c.DEBUG_CLAUDE_AGENT_SDK?c.DEBUG="1":delete c.DEBUG;let Ne=Aue(a),ze=Ne?a:i,kt=Ne?[...s,...j]:[...s,a,...j],Ve={command:ze,args:kt,cwd:n,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)Lo(`Spawning Claude Code (custom): ${ze} ${kt.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(Ve);else{if(!as().existsSync(a)){let H=Ne?`Claude Code native binary not found at ${a}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${a}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(H)}Lo(`Spawning Claude Code: ${ze} ${kt.join(" ")}`),this.process=this.spawnLocalProcess(Ve)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let K=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=K,this.abortHandler=K,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",P=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new Uo("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${P.message}`),Lo(this.exitError.message))}),this.process.on("exit",(P,H)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Uo("Claude Code process aborted by user");else{let M=this.getProcessExitError(P,H);M&&(this.exitError=M,Lo(M.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,r){if(e!==0&&e!==null)return new Error(`Claude Code process exited with code ${e}`);if(r)return new Error(`Claude Code process terminated by signal ${r}`)}write(e){if(this.abortController.signal.aborted)throw new Uo("Operation aborted");if(!this.ready||!this.processStdin)throw new Error("ProcessTransport is not ready for writing");if(this.process?.killed||this.process?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);Lo(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||Lo("[ProcessTransport] Write buffer full, data queued")}catch(r){throw this.ready=!1,new Error(`Failed to write to process stdin: ${r.message}`)}}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:e}of this.exitListeners)this.process?.off("exit",e);this.exitListeners=[],this.process&&!this.process.killed&&(this.process.kill("SIGTERM"),setTimeout(()=>{this.process&&!this.process.killed&&this.process.kill("SIGKILL")},5e3)),this.ready=!1,this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw new Error("ProcessTransport output stream not available");let e=(0,E2.createInterface)({input:this.processStdout});try{for await(let r of e)r.trim()&&(yield L2(r));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,i)=>{let s=this.getProcessExitError(n,i);e(s)};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(i=>i.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=(s,o)=>{if(this.abortController.signal.aborted){r(new Uo("Operation aborted"));return}let a=this.getProcessExitError(s,o);a?r(a):e()};this.process.once("exit",n);let i=s=>{this.process.off("exit",n),r(s)};this.process.once("error",i),this.process.once("exit",()=>{this.process.off("error",i)})})}};function Aue(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(r=>t.endsWith(r))}var Ek=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw new 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})}},kk=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},$k=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new Ek;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0}constructor(e,r,n,i,s,o=new Map,a,c){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=n,this.hooks=i,this.abortController=s,this.jsonSchema=a,this.initConfig=c;for(let[u,l]of o)this.connectSdkMcpServer(u,l);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),this.cancelControllers.clear(),this.hookCallbacks.clear();for(let r of this.sdkMcpTransports.values())try{r.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(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==="result"&&(this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(os("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())),this.inputStream.enqueue(e)}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(e){this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),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),i={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:n}};await Promise.resolve(this.transport.write(Ri(i)+` -`))}catch(n){let i={type:"control_response",response:{subtype:"error",request_id:e.request_id,error:n.message||String(n)}};await Promise.resolve(this.transport.write(Ri(i)+` -`))}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 new 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,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,i=this.sdkMcpTransports.get(n.server_name);if(!i)throw new 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,i)}:(i.onmessage&&i.onmessage(n.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}}throw new 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,o]of Object.entries(this.hooks))o.length>0&&(e[s]=o.map(a=>{let c=[];for(let u of a.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,u),c.push(l)}return{matcher:a.matcher,hookCallbackIds:c,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};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 rewindFiles(e,r){return(await this.request({subtype:"rewind_files",user_message_id:e,dry_run:r?.dryRun})).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((i,s)=>{this.pendingControlResponses.set(r,o=>{o.subtype==="success"?i(o):(s(new Error(o.error)),o.pending_permission_requests&&this.processPendingPermissionRequests(o.pending_permission_requests))}),Promise.resolve(this.transport.write(Ri(n)+` -`))})}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async setMcpServers(e){let r={},n={};for(let[c,u]of Object.entries(e))u.type==="sdk"&&"instance"in u?r[c]=u.instance:n[c]=u;let i=new Set(this.sdkMcpServerInstances.keys()),s=new Set(Object.keys(r));for(let c of i)s.has(c)||await this.disconnectSdkMcpServer(c);for(let[c,u]of Object.entries(r))i.has(c)||this.connectSdkMcpServer(c,u);let o={};for(let c of Object.keys(r))o[c]={type:"sdk",name:c};return(await this.request({subtype:"mcp_set_servers",servers:{...n,...o}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(e){os("[Query.streamInput] Starting to process input stream");try{let r=0;for await(let n of e){if(r++,os(`[Query.streamInput] Processing message ${r}: ${n.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(Ri(n)+` -`))}os(`[Query.streamInput] Finished processing ${r} messages from input stream`),r>0&&this.hasBidirectionalNeeds()&&(os("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),os("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(r){if(!(r instanceof Uo))throw r}}waitForFirstResult(){return this.firstResultReceived?(os("[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,i){let s=this.hookCallbacks.get(e);if(!s)throw new Error(`No hook callback found for ID: ${e}`);return s(r,n,{signal:i})}connectSdkMcpServer(e,r){let n=new kk(i=>this.sendMcpServerMessageToCli(e,i));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 i=`${e}:${r.id}`,s=this.pendingMcpResponses.get(i);if(s){s.resolve(r),this.pendingMcpResponses.delete(i);return}}let n={type:"control_request",request_id:(0,Z2.randomUUID)(),request:{subtype:"mcp_message",server_name:e,message:r}};this.transport.write(Ri(n)+` -`)}handleMcpControlRequest(e,r,n){let i="id"in r.message?r.message.id:null,s=`${e}:${i}`;return new Promise((o,a)=>{let c=()=>{this.pendingMcpResponses.delete(s)},u=d=>{c(),o(d)},l=d=>{c(),a(d)};if(this.pendingMcpResponses.set(s,{resolve:u,reject:l}),n.onmessage)n.onmessage(r.message);else{c(),a(new Error("No message handler registered"));return}})}};var ot;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ot||(ot={}));var FU;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(FU||(FU={}));var se=ot.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Fs=t=>{switch(typeof t){case"undefined":return se.undefined;case"string":return se.string;case"number":return Number.isNaN(t)?se.nan:se.number;case"boolean":return se.boolean;case"function":return se.function;case"bigint":return se.bigint;case"symbol":return se.symbol;case"object":return Array.isArray(t)?se.array:t===null?se.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?se.promise:typeof Map<"u"&&t instanceof Map?se.map:typeof Set<"u"&&t instanceof Set?se.set:typeof Date<"u"&&t instanceof Date?se.date:se.object;default:return se.unknown}},G=ot.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"]),jn=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(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,c=0;for(;cr.message){let r={},n=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];r[s]=r[s]||[],r[s].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};jn.create=t=>new jn(t);var Nue=(t,e)=>{let r;switch(t.code){case G.invalid_type:t.received===se.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case G.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ot.jsonStringifyReplacer)}`;break;case G.unrecognized_keys:r=`Unrecognized key(s) in object: ${ot.joinValues(t.keys,", ")}`;break;case G.invalid_union:r="Invalid input";break;case G.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ot.joinValues(t.options)}`;break;case G.invalid_enum_value:r=`Invalid enum value. Expected ${ot.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}"`:ot.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,ot.assertNever(t)}return{message:r}},Bd=Nue,Mue=Bd;function Tk(){return Mue}var Ik=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}};function te(t,e){let r=Tk(),n=Ik({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Bd?void 0:Bd].filter(i=>!!i)});t.common.issues.push(n)}var Vr=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 i of r){if(i.status==="aborted")return ke;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return ke;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},ke=Object.freeze({status:"aborted"}),Fd=t=>({status:"dirty",value:t}),an=t=>({status:"valid",value:t}),HU=t=>t.status==="aborted",ZU=t=>t.status==="dirty",Ac=t=>t.status==="valid",Sg=t=>typeof Promise<"u"&&t instanceof Promise,pe;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(pe||(pe={}));var zn=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}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}},BU=(t,e)=>{if(Ac(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new jn(t.common.issues);return this._error=r,this._error}}};function Ae(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:i}}var Be=class{get description(){return this._def.description}_getType(e){return Fs(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Fs(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Vr,ctx:{common:e.parent.common,data:e.data,parsedType:Fs(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Sg(r))throw new 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:Fs(e)},i=this._parseSync({data:e,path:n.path,parent:n});return BU(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Fs(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Ac(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=>Ac(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:Fs(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Sg(i)?i:Promise.resolve(i));return BU(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:G.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new ii({schema:this,typeName:$e.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 ni.create(this,this._def)}nullable(){return us.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Bs.create(this)}promise(){return Fo.create(this,this._def)}or(e){return jc.create([this,e],this._def)}and(e){return zc.create(this,e,this._def)}transform(e){return new ii({...Ae(this._def),schema:this,typeName:$e.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Hc({...Ae(this._def),innerType:this,defaultValue:r,typeName:$e.ZodDefault})}brand(){return new wg({typeName:$e.ZodBranded,type:this,...Ae(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Zc({...Ae(this._def),innerType:this,catchValue:r,typeName:$e.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Eg.create(this,e)}readonly(){return Bc.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Due=/^c[^\s-]{8,}$/i,jue=/^[0-9a-z]+$/,zue=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Lue=/^[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,Uue=/^[a-z0-9_-]{21}$/i,que=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Fue=/^[-+]?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)?)??$/,Hue=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Zue="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",vk,Bue=/^(?:(?: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])$/,Vue=/^(?:(?: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])$/,Gue=/^(([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]))$/,Wue=/^(([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])$/,Kue=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Jue=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,B2="((\\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])))",Xue=new RegExp(`^${B2}$`);function V2(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 Yue(t){return new RegExp(`^${V2(t)}$`)}function Que(t){let e=`${B2}T${V2(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 ele(t,e){return!!((e==="v4"||!e)&&Bue.test(t)||(e==="v6"||!e)&&Gue.test(t))}function tle(t,e){if(!que.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,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function rle(t,e){return!!((e==="v4"||!e)&&Vue.test(t)||(e==="v6"||!e)&&Wue.test(t))}var Nc=class t extends Be{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==se.string){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_type,expected:se.string,received:s.parsedType}),ke}let n=new Vr,i;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(i=this._getOrReturnCtx(e,i),te(i,{code:G.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.lengthe.test(i),{validation:r,code:G.invalid_string,...pe.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...pe.errToObj(e)})}url(e){return this._addCheck({kind:"url",...pe.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...pe.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...pe.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...pe.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...pe.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...pe.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...pe.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...pe.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...pe.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...pe.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...pe.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...pe.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,...pe.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,...pe.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...pe.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...pe.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...pe.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...pe.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...pe.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...pe.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...pe.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...pe.errToObj(r)})}nonempty(e){return this.min(1,pe.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 Nc({checks:[],typeName:$e.ZodString,coerce:t?.coerce??!1,...Ae(t)});function nle(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return s%o/10**i}var Vd=class t extends Be{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)!==se.number){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_type,expected:se.number,received:s.parsedType}),ke}let n,i=new Vr;for(let s of this._def.checks)s.kind==="int"?ot.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),te(n,{code:G.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),te(n,{code:G.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?nle(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),te(n,{code:G.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),te(n,{code:G.not_finite,message:s.message}),i.dirty()):ot.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,pe.toString(r))}gt(e,r){return this.setLimit("min",e,!1,pe.toString(r))}lte(e,r){return this.setLimit("max",e,!0,pe.toString(r))}lt(e,r){return this.setLimit("max",e,!1,pe.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:pe.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:pe.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:pe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:pe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:pe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:pe.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:pe.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:pe.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:pe.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:pe.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"&&ot.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 Vd({checks:[],typeName:$e.ZodNumber,coerce:t?.coerce||!1,...Ae(t)});var Gd=class t extends Be{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)!==se.bigint)return this._getInvalidInput(e);let n,i=new Vr;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),te(n,{code:G.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),te(n,{code:G.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ot.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:se.bigint,received:r.parsedType}),ke}gte(e,r){return this.setLimit("min",e,!0,pe.toString(r))}gt(e,r){return this.setLimit("min",e,!1,pe.toString(r))}lte(e,r){return this.setLimit("max",e,!0,pe.toString(r))}lt(e,r){return this.setLimit("max",e,!1,pe.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:pe.toString(i)}]})}_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:pe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:pe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:pe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:pe.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:pe.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 Gd({checks:[],typeName:$e.ZodBigInt,coerce:t?.coerce??!1,...Ae(t)});var Wd=class extends Be{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==se.boolean){let n=this._getOrReturnCtx(e);return te(n,{code:G.invalid_type,expected:se.boolean,received:n.parsedType}),ke}return an(e.data)}};Wd.create=t=>new Wd({typeName:$e.ZodBoolean,coerce:t?.coerce||!1,...Ae(t)});var Kd=class t extends Be{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==se.date){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_type,expected:se.date,received:s.parsedType}),ke}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_date}),ke}let n=new Vr,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(i=this._getOrReturnCtx(e,i),te(i,{code:G.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):ot.assertNever(s);return{status:n.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:pe.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:pe.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 Kd({checks:[],coerce:t?.coerce||!1,typeName:$e.ZodDate,...Ae(t)});var Jd=class extends Be{_parse(e){if(this._getType(e)!==se.symbol){let n=this._getOrReturnCtx(e);return te(n,{code:G.invalid_type,expected:se.symbol,received:n.parsedType}),ke}return an(e.data)}};Jd.create=t=>new Jd({typeName:$e.ZodSymbol,...Ae(t)});var Mc=class extends Be{_parse(e){if(this._getType(e)!==se.undefined){let n=this._getOrReturnCtx(e);return te(n,{code:G.invalid_type,expected:se.undefined,received:n.parsedType}),ke}return an(e.data)}};Mc.create=t=>new Mc({typeName:$e.ZodUndefined,...Ae(t)});var Dc=class extends Be{_parse(e){if(this._getType(e)!==se.null){let n=this._getOrReturnCtx(e);return te(n,{code:G.invalid_type,expected:se.null,received:n.parsedType}),ke}return an(e.data)}};Dc.create=t=>new Dc({typeName:$e.ZodNull,...Ae(t)});var Xd=class extends Be{constructor(){super(...arguments),this._any=!0}_parse(e){return an(e.data)}};Xd.create=t=>new Xd({typeName:$e.ZodAny,...Ae(t)});var Zs=class extends Be{constructor(){super(...arguments),this._unknown=!0}_parse(e){return an(e.data)}};Zs.create=t=>new Zs({typeName:$e.ZodUnknown,...Ae(t)});var Pi=class extends Be{_parse(e){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:se.never,received:r.parsedType}),ke}};Pi.create=t=>new Pi({typeName:$e.ZodNever,...Ae(t)});var Yd=class extends Be{_parse(e){if(this._getType(e)!==se.undefined){let n=this._getOrReturnCtx(e);return te(n,{code:G.invalid_type,expected:se.void,received:n.parsedType}),ke}return an(e.data)}};Yd.create=t=>new Yd({typeName:$e.ZodVoid,...Ae(t)});var Bs=class t extends Be{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==se.array)return te(r,{code:G.invalid_type,expected:se.array,received:r.parsedType}),ke;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.lengthi.maxLength.value&&(te(r,{code:G.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new zn(r,o,r.path,a)))).then(o=>Vr.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new zn(r,o,r.path,a)));return Vr.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:pe.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:pe.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:pe.toString(r)}})}nonempty(e){return this.min(1,e)}};Bs.create=(t,e)=>new Bs({type:t,minLength:null,maxLength:null,exactLength:null,typeName:$e.ZodArray,...Ae(e)});function Oc(t){if(t instanceof bn){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=ni.create(Oc(n))}return new bn({...t._def,shape:()=>e})}else return t instanceof Bs?new Bs({...t._def,type:Oc(t.element)}):t instanceof ni?ni.create(Oc(t.unwrap())):t instanceof us?us.create(Oc(t.unwrap())):t instanceof cs?cs.create(t.items.map(e=>Oc(e))):t}var bn=class t extends Be{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=ot.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==se.object){let u=this._getOrReturnCtx(e);return te(u,{code:G.invalid_type,expected:se.object,received:u.parsedType}),ke}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Pi&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new zn(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Pi){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(te(i,{code:G.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new zn(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,p=await l.value;u.push({key:d,value:p,alwaysSet:l.alwaysSet})}return u}).then(u=>Vr.mergeObjectSync(n,u)):Vr.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return pe.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:pe.errToObj(e).message??i}:{message:i}}}:{}})}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:$e.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 ot.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 ot.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Oc(this)}partial(e){let r={};for(let n of ot.objectKeys(this.shape)){let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of ot.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof ni;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return G2(ot.objectKeys(this.shape))}};bn.create=(t,e)=>new bn({shape:()=>t,unknownKeys:"strip",catchall:Pi.create(),typeName:$e.ZodObject,...Ae(e)});bn.strictCreate=(t,e)=>new bn({shape:()=>t,unknownKeys:"strict",catchall:Pi.create(),typeName:$e.ZodObject,...Ae(e)});bn.lazycreate=(t,e)=>new bn({shape:t,unknownKeys:"strip",catchall:Pi.create(),typeName:$e.ZodObject,...Ae(e)});var jc=class extends Be{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new jn(a.ctx.common.issues));return te(r,{code:G.invalid_union,unionErrors:o}),ke}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new jn(c));return te(r,{code:G.invalid_union,unionErrors:a}),ke}}get options(){return this._def.options}};jc.create=(t,e)=>new jc({options:t,typeName:$e.ZodUnion,...Ae(e)});var ss=t=>t instanceof Lc?ss(t.schema):t instanceof ii?ss(t.innerType()):t instanceof Uc?[t.value]:t instanceof qc?t.options:t instanceof Fc?ot.objectValues(t.enum):t instanceof Hc?ss(t._def.innerType):t instanceof Mc?[void 0]:t instanceof Dc?[null]:t instanceof ni?[void 0,...ss(t.unwrap())]:t instanceof us?[null,...ss(t.unwrap())]:t instanceof wg||t instanceof Bc?ss(t.unwrap()):t instanceof Zc?ss(t._def.innerType):[],Rk=class t extends Be{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==se.object)return te(r,{code:G.invalid_type,expected:se.object,received:r.parsedType}),ke;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(te(r,{code:G.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),ke)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=ss(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:$e.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Ae(n)})}};function Ok(t,e){let r=Fs(t),n=Fs(e);if(t===e)return{valid:!0,data:t};if(r===se.object&&n===se.object){let i=ot.objectKeys(e),s=ot.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let c=Ok(t[a],e[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(r===se.array&&n===se.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s{if(HU(s)||HU(o))return ke;let a=Ok(s.value,o.value);return a.valid?((ZU(s)||ZU(o))&&r.dirty(),{status:r.value,value:a.data}):(te(n,{code:G.invalid_intersection_types}),ke)};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(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};zc.create=(t,e,r)=>new zc({left:t,right:e,typeName:$e.ZodIntersection,...Ae(r)});var cs=class t extends Be{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==se.array)return te(n,{code:G.invalid_type,expected:se.array,received:n.parsedType}),ke;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((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new zn(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Vr.mergeArray(r,o)):Vr.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};cs.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new cs({items:t,typeName:$e.ZodTuple,rest:null,...Ae(e)})};var Pk=class t extends Be{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!==se.object)return te(n,{code:G.invalid_type,expected:se.object,received:n.parsedType}),ke;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new zn(n,a,n.path,a)),value:o._parse(new zn(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Vr.mergeObjectAsync(r,i):Vr.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Be?new t({keyType:e,valueType:r,typeName:$e.ZodRecord,...Ae(n)}):new t({keyType:Nc.create(),valueType:e,typeName:$e.ZodRecord,...Ae(r)})}},Qd=class extends Be{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!==se.map)return te(n,{code:G.invalid_type,expected:se.map,received:n.parsedType}),ke;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,c],u)=>({key:i._parse(new zn(n,a,n.path,[u,"key"])),value:s._parse(new zn(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return ke;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return ke;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}}}};Qd.create=(t,e,r)=>new Qd({valueType:e,keyType:t,typeName:$e.ZodMap,...Ae(r)});var ep=class t extends Be{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==se.set)return te(n,{code:G.invalid_type,expected:se.set,received:n.parsedType}),ke;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(te(n,{code:G.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return ke;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>s._parse(new zn(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:pe.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:pe.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};ep.create=(t,e)=>new ep({valueType:t,minSize:null,maxSize:null,typeName:$e.ZodSet,...Ae(e)});var Ck=class t extends Be{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==se.function)return te(r,{code:G.invalid_type,expected:se.function,received:r.parsedType}),ke;function n(a,c){return Ik({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Tk(),Bd].filter(u=>!!u),issueData:{code:G.invalid_arguments,argumentsError:c}})}function i(a,c){return Ik({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Tk(),Bd].filter(u=>!!u),issueData:{code:G.invalid_return_type,returnTypeError:c}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Fo){let a=this;return an(async function(...c){let u=new jn([]),l=await a._def.args.parseAsync(c,s).catch(m=>{throw u.addIssue(n(c,m)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(m=>{throw u.addIssue(i(d,m)),u})})}else{let a=this;return an(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new jn([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new jn([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:cs.create(e).rest(Zs.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||cs.create([]).rest(Zs.create()),returns:r||Zs.create(),typeName:$e.ZodFunction,...Ae(n)})}},Lc=class extends Be{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})}};Lc.create=(t,e)=>new Lc({getter:t,typeName:$e.ZodLazy,...Ae(e)});var Uc=class extends Be{_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}),ke}return{status:"valid",value:e.data}}get value(){return this._def.value}};Uc.create=(t,e)=>new Uc({value:t,typeName:$e.ZodLiteral,...Ae(e)});function G2(t,e){return new qc({values:t,typeName:$e.ZodEnum,...Ae(e)})}var qc=class t extends Be{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{expected:ot.joinValues(n),received:r.parsedType,code:G.invalid_type}),ke}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}),ke}return an(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})}};qc.create=G2;var Fc=class extends Be{_parse(e){let r=ot.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==se.string&&n.parsedType!==se.number){let i=ot.objectValues(r);return te(n,{expected:ot.joinValues(i),received:n.parsedType,code:G.invalid_type}),ke}if(this._cache||(this._cache=new Set(ot.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=ot.objectValues(r);return te(n,{received:n.data,code:G.invalid_enum_value,options:i}),ke}return an(e.data)}get enum(){return this._def.values}};Fc.create=(t,e)=>new Fc({values:t,typeName:$e.ZodNativeEnum,...Ae(e)});var Fo=class extends Be{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==se.promise&&r.common.async===!1)return te(r,{code:G.invalid_type,expected:se.promise,received:r.parsedType}),ke;let n=r.parsedType===se.promise?r.data:Promise.resolve(r.data);return an(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Fo.create=(t,e)=>new Fo({type:t,typeName:$e.ZodPromise,...Ae(e)});var ii=class extends Be{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$e.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{te(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return ke;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?ke:c.status==="dirty"||r.value==="dirty"?Fd(c.value):c});{if(r.value==="aborted")return ke;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?ke:a.status==="dirty"||r.value==="dirty"?Fd(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?ke:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?ke:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ac(o))return ke;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Ac(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):ke);ot.assertNever(i)}};ii.create=(t,e,r)=>new ii({schema:t,typeName:$e.ZodEffects,effect:e,...Ae(r)});ii.createWithPreprocess=(t,e,r)=>new ii({schema:e,effect:{type:"preprocess",transform:t},typeName:$e.ZodEffects,...Ae(r)});var ni=class extends Be{_parse(e){return this._getType(e)===se.undefined?an(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ni.create=(t,e)=>new ni({innerType:t,typeName:$e.ZodOptional,...Ae(e)});var us=class extends Be{_parse(e){return this._getType(e)===se.null?an(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};us.create=(t,e)=>new us({innerType:t,typeName:$e.ZodNullable,...Ae(e)});var Hc=class extends Be{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===se.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Hc.create=(t,e)=>new Hc({innerType:t,typeName:$e.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ae(e)});var Zc=class extends Be{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Sg(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new jn(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new jn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Zc.create=(t,e)=>new Zc({innerType:t,typeName:$e.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ae(e)});var tp=class extends Be{_parse(e){if(this._getType(e)!==se.nan){let n=this._getOrReturnCtx(e);return te(n,{code:G.invalid_type,expected:se.nan,received:n.parsedType}),ke}return{status:"valid",value:e.data}}};tp.create=t=>new tp({typeName:$e.ZodNaN,...Ae(t)});var wg=class extends Be{_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}},Eg=class t extends Be{_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"?ke:s.status==="dirty"?(r.dirty(),Fd(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?ke:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:$e.ZodPipeline})}},Bc=class extends Be{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Ac(i)&&(i.value=Object.freeze(i.value)),i);return Sg(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Bc.create=(t,e)=>new Bc({innerType:t,typeName:$e.ZodReadonly,...Ae(e)});var wPe={object:bn.lazycreate},$e;(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"})($e||($e={}));var EPe=Nc.create,kPe=Vd.create,$Pe=tp.create,TPe=Gd.create,IPe=Wd.create,RPe=Kd.create,OPe=Jd.create,PPe=Mc.create,CPe=Dc.create,APe=Xd.create,NPe=Zs.create,MPe=Pi.create,DPe=Yd.create,jPe=Bs.create,zPe=bn.create,LPe=bn.strictCreate,UPe=jc.create,qPe=Rk.create,FPe=zc.create,HPe=cs.create,ZPe=Pk.create,BPe=Qd.create,VPe=ep.create,GPe=Ck.create,WPe=Lc.create,KPe=Uc.create,JPe=qc.create,XPe=Fc.create,YPe=Fo.create,QPe=ii.create,eCe=ni.create,tCe=us.create,rCe=ii.createWithPreprocess,nCe=Eg.create,iCe=Object.freeze({status:"aborted"});function F(t,e,r){function n(a,c){var u;Object.defineProperty(a,"_zod",{value:a._zod??{},enumerable:!1}),(u=a._zod).traits??(u.traits=new Set),a._zod.traits.add(t),e(a,c);for(let l in o.prototype)l in a||Object.defineProperty(a,l,{value:o.prototype[l].bind(a)});a._zod.constr=o,a._zod.def=c}let i=r?.Parent??Object;class s extends i{}Object.defineProperty(s,"name",{value:t});function o(a){var c;let u=r?.Parent?new s:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(o,"init",{value:n}),Object.defineProperty(o,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var Ho=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Ak={};function ls(t){return t&&Object.assign(Ak,t),Ak}var Mt={};p2(Mt,{unwrapMessage:()=>Hd,stringifyPrimitive:()=>Wk,required:()=>Sle,randomString:()=>dle,propertyKeyTypes:()=>Y2,promiseAllObject:()=>lle,primitiveTypes:()=>fle,prefixIssues:()=>Hs,pick:()=>vle,partial:()=>xle,optionalKeys:()=>Q2,omit:()=>yle,numKeys:()=>ple,nullish:()=>Ng,normalizeParams:()=>Se,merge:()=>ble,jsonStringifyReplacer:()=>K2,joinValues:()=>Nk,issue:()=>t6,isPlainObject:()=>np,isObject:()=>rp,getSizableOrigin:()=>wle,getParsedType:()=>mle,getLengthableOrigin:()=>Dg,getEnumValues:()=>W2,getElementAtPath:()=>ule,floatSafeRemainder:()=>J2,finalizeIssue:()=>ds,extend:()=>_le,escapeRegex:()=>Xc,esc:()=>Pc,defineLazy:()=>Dt,createTransparentProxy:()=>hle,clone:()=>Gs,cleanRegex:()=>Mg,cleanEnum:()=>Ele,captureStackTrace:()=>Gk,cached:()=>Ag,assignProp:()=>Vk,assertNotEqual:()=>sle,assertNever:()=>ale,assertIs:()=>ole,assertEqual:()=>ile,assert:()=>cle,allowsEval:()=>X2,aborted:()=>Cc,NUMBER_FORMAT_RANGES:()=>e6,Class:()=>Mk,BIGINT_FORMAT_RANGES:()=>gle});function ile(t){return t}function sle(t){return t}function ole(t){}function ale(t){throw new Error}function cle(t){}function W2(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,i])=>e.indexOf(+n)===-1).map(([n,i])=>i)}function Nk(t,e="|"){return t.map(r=>Wk(r)).join(e)}function K2(t,e){return typeof e=="bigint"?e.toString():e}function Ag(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ng(t){return t==null}function Mg(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function J2(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return s%o/10**i}function Dt(t,e,r){Object.defineProperty(t,e,{get(){{let i=r();return t[e]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function Vk(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ule(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function lle(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let s=0;s{};function rp(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var X2=Ag(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function np(t){if(rp(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(rp(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function ple(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var mle=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}`)}},Y2=new Set(["string","number","symbol"]),fle=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Xc(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Gs(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function Se(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 hle(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,s){return e??(e=t()),Reflect.set(e,n,i,s)},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,i){return e??(e=t()),Reflect.defineProperty(e,n,i)}})}function Wk(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function Q2(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var e6={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]},gle={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function vle(t,e){let r={},n=t._zod.def;for(let i in e){if(!(i in n.shape))throw new Error(`Unrecognized key: "${i}"`);e[i]&&(r[i]=n.shape[i])}return Gs(t,{...t._zod.def,shape:r,checks:[]})}function yle(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let i in e){if(!(i in n.shape))throw new Error(`Unrecognized key: "${i}"`);e[i]&&delete r[i]}return Gs(t,{...t._zod.def,shape:r,checks:[]})}function _le(t,e){if(!np(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 Vk(this,"shape",n),n},checks:[]};return Gs(t,r)}function ble(t,e){return Gs(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return Vk(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function xle(t,e,r){let n=e._zod.def.shape,i={...n};if(r)for(let s in r){if(!(s in n))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=t?new t({type:"optional",innerType:n[s]}):n[s])}else for(let s in n)i[s]=t?new t({type:"optional",innerType:n[s]}):n[s];return Gs(e,{...e._zod.def,shape:i,checks:[]})}function Sle(t,e,r){let n=e._zod.def.shape,i={...n};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new t({type:"nonoptional",innerType:n[s]}))}else for(let s in n)i[s]=new t({type:"nonoptional",innerType:n[s]});return Gs(e,{...e._zod.def,shape:i,checks:[]})}function Cc(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Hd(t){return typeof t=="string"?t:t?.message}function ds(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=Hd(t.inst?._zod.def?.error?.(t))??Hd(e?.error?.(t))??Hd(r.customError?.(t))??Hd(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function wle(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Dg(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function t6(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function Ele(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var Mk=class{constructor(...e){}},r6=(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,K2,2)},enumerable:!0})},n6=F("$ZodError",r6),i6=F("$ZodError",r6,{Parent:Error});function kle(t,e=r=>r.message){let r={},n=[];for(let i of t.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}function $le(t,e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)n._errors.push(r(o));else{let a=n,c=0;for(;c(e,r,n,i)=>{let s=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},s);if(o instanceof Promise)throw new Ho;if(o.issues.length){let a=new(i?.Err??t)(o.issues.map(c=>ds(c,s,ls())));throw Gk(a,i?.callee),a}return o.value};var Ile=t=>async(e,r,n,i)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??t)(o.issues.map(c=>ds(c,s,ls())));throw Gk(a,i?.callee),a}return o.value};var s6=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Ho;return s.issues.length?{success:!1,error:new(t??n6)(s.issues.map(o=>ds(o,i,ls())))}:{success:!0,data:s.value}},Rle=s6(i6),o6=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},s=e._zod.run({value:r,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new t(s.issues.map(o=>ds(o,i,ls())))}:{success:!0,data:s.value}},Ole=o6(i6),Ple=/^[cC][^\s-]{8,}$/,Cle=/^[0-9a-z]+$/,Ale=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Nle=/^[0-9a-vA-V]{20}$/,Mle=/^[A-Za-z0-9]{27}$/,Dle=/^[a-zA-Z0-9_-]{21}$/,jle=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,zle=/^([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})$/,VU=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)$/,Lle=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Ule="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function qle(){return new RegExp(Ule,"u")}var Fle=/^(?:(?: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])$/,Hle=/^(([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})$/,Zle=/^((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])$/,Ble=/^(([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])$/,Vle=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,a6=/^[A-Za-z0-9_-]*$/,Gle=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,Wle=/^\+(?:[0-9]){6,14}[0-9]$/,c6="(?:(?:\\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])))",Kle=new RegExp(`^${c6}$`);function u6(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 Jle(t){return new RegExp(`^${u6(t)}$`)}function Xle(t){let e=u6({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(`^${c6}T(?:${n})$`)}var Yle=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Qle=/^\d+$/,ede=/^-?\d+(?:\.\d+)?/i,tde=/true|false/i,rde=/null/i,nde=/^[^A-Z]*$/,ide=/^[^a-z]*$/,cn=F("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),l6={number:"number",bigint:"bigint",object:"date"},d6=F("$ZodCheckLessThan",(t,e)=>{cn.init(t,e);let r=l6[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,s=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{cn.init(t,e);let r=l6[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,s=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>s&&(e.inclusive?i.minimum=e.value:i.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})}}),sde=F("$ZodCheckMultipleOf",(t,e)=>{cn.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):J2(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})}}),ode=F("$ZodCheckNumberFormat",(t,e)=>{cn.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,s]=e6[e.format];t._zod.onattach.push(o=>{let a=o._zod.bag;a.format=e.format,a.minimum=i,a.maximum=s,r&&(a.pattern=Qle)}),t._zod.check=o=>{let a=o.value;if(r){if(!Number.isInteger(a)){o.issues.push({expected:n,format:e.format,code:"invalid_type",input:a,inst:t});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):o.issues.push({input:a,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}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:t})}}),ade=F("$ZodCheckMaxLength",(t,e)=>{cn.init(t,e),t._zod.when=r=>{let n=r.value;return!Ng(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=Dg(n);r.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),cde=F("$ZodCheckMinLength",(t,e)=>{cn.init(t,e),t._zod.when=r=>{let n=r.value;return!Ng(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=Dg(n);r.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),ude=F("$ZodCheckLengthEquals",(t,e)=>{cn.init(t,e),t._zod.when=r=>{let n=r.value;return!Ng(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,i=n.length;if(i===e.length)return;let s=Dg(n),o=i>e.length;r.issues.push({origin:s,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),jg=F("$ZodCheckStringFormat",(t,e)=>{var r,n;cn.init(t,e),t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,e.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),lde=F("$ZodCheckRegex",(t,e)=>{jg.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})}}),dde=F("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=nde),jg.init(t,e)}),pde=F("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=ide),jg.init(t,e)}),mde=F("$ZodCheckIncludes",(t,e)=>{cn.init(t,e);let r=Xc(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),fde=F("$ZodCheckStartsWith",(t,e)=>{cn.init(t,e);let r=new RegExp(`^${Xc(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.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})}}),hde=F("$ZodCheckEndsWith",(t,e)=>{cn.init(t,e);let r=new RegExp(`.*${Xc(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.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})}}),gde=F("$ZodCheckOverwrite",(t,e)=>{cn.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),Dk=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(` + deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let p=Array.isArray(c[d])?u:l;p[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:p}=c;if(Object.keys(u).length===0)return;let f=l.let("missing");for(let m in u){let h=u[m];if(h.length===0)continue;let g=(0,n.propertyInData)(l,d,m,p.opts.ownProperties);c.setParams({property:m,depsCount:h.length,deps:h.join(", ")}),p.allErrors?l.if(g,()=>{for(let v of h)(0,n.checkReportMissingProp)(c,v)}):(l.if((0,e._)`${g} && (${(0,n.checkMissingProp)(c,h,f)})`),(0,n.reportMissingProp)(c,f),l.else())}}t.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:p,it:f}=c,m=l.name("valid");for(let h in u)(0,r.alwaysValidSchema)(f,u[h])||(l.if((0,n.propertyInData)(l,d,h,f.opts.ownProperties),()=>{let g=c.subschema({keyword:p,schemaProp:h},m);c.mergeValidEvaluated(g,m)},()=>l.var(m,!0)),c.ok(m))}t.validateSchemaDeps=a,t.default=i}),wle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n={message:"property name must be valid",params:({params:s})=>(0,e._)`{propertyName: ${s.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(s){let{gen:o,schema:a,data:c,it:u}=s;if((0,r.alwaysValidSchema)(u,a))return;let l=o.name("valid");o.forIn("key",c,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,e.not)(l),()=>{s.error(!0),u.allErrors||o.break()})}),s.ok(l)}};t.default=i}),EF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=wi(),r=Ze(),n=xo(),i=at(),s={message:"must NOT have additional properties",params:({params:a})=>(0,r._)`{additionalProperty: ${a.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(a){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:f}=a;if(!p)throw new Error("ajv implementation error");let{allErrors:m,opts:h}=f;if(f.props=!0,h.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(f,u))return;let g=(0,e.allSchemaProperties)(l.properties),v=(0,e.allSchemaProperties)(l.patternProperties);S(),a.ok((0,r._)`${p} === ${n.default.errors}`);function S(){c.forIn("key",d,E=>{!g.length&&!v.length?x(E):c.if(b(E),()=>x(E))})}function b(E){let T;if(g.length>8){let I=(0,i.schemaRefOrVal)(f,l.properties,"properties");T=(0,e.isOwnProperty)(c,I,E)}else g.length?T=(0,r.or)(...g.map(I=>(0,r._)`${E} === ${I}`)):T=r.nil;return v.length&&(T=(0,r.or)(T,...v.map(I=>(0,r._)`${(0,e.usePattern)(a,I)}.test(${E})`))),(0,r.not)(T)}function y(E){c.code((0,r._)`delete ${d}[${E}]`)}function x(E){if(h.removeAdditional==="all"||h.removeAdditional&&u===!1){y(E);return}if(u===!1){a.setParams({additionalProperty:E}),a.error(),m||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(f,u)){let T=c.name("valid");h.removeAdditional==="failing"?(w(E,T,!1),c.if((0,r.not)(T),()=>{a.reset(),y(E)})):(w(E,T),m||c.if((0,r.not)(T),()=>c.break()))}}function w(E,T,I){let A={keyword:"additionalProperties",dataProp:E,dataPropType:i.Type.Str};I===!1&&Object.assign(A,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema(A,T)}}};t.default=o}),Ele=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Bv(),r=wi(),n=at(),i=EF(),s={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,parentSchema:u,data:l,it:d}=o;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&i.default.code(new e.KeywordCxt(d,i.default,"additionalProperties"));let p=(0,r.allSchemaProperties)(c);for(let v of p)d.definedProperties.add(v);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=n.mergeEvaluated.props(a,(0,n.toHash)(p),d.props));let f=p.filter(v=>!(0,n.alwaysValidSchema)(d,c[v]));if(f.length===0)return;let m=a.name("valid");for(let v of f)h(v)?g(v):(a.if((0,r.propertyInData)(a,l,v,d.opts.ownProperties)),g(v),d.allErrors||a.else().var(m,!0),a.endIf()),o.it.definedProperties.add(v),o.ok(m);function h(v){return d.opts.useDefaults&&!d.compositeRule&&c[v].default!==void 0}function g(v){o.subschema({keyword:"properties",schemaProp:v,dataProp:v},m)}}};t.default=s}),kle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=wi(),r=Ze(),n=at(),i=at(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,data:u,parentSchema:l,it:d}=o,{opts:p}=d,f=(0,e.allSchemaProperties)(c),m=f.filter(x=>(0,n.alwaysValidSchema)(d,c[x]));if(f.length===0||m.length===f.length&&(!d.opts.unevaluated||d.props===!0))return;let h=p.strictSchema&&!p.allowMatchingProperties&&l.properties,g=a.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,i.evaluatedPropsToName)(a,d.props));let{props:v}=d;S();function S(){for(let x of f)h&&b(x),d.allErrors?y(x):(a.var(g,!0),y(x),a.if(g))}function b(x){for(let w in h)new RegExp(x).test(w)&&(0,n.checkStrictMode)(d,`property ${w} matches pattern ${x} (use allowMatchingProperties)`)}function y(x){a.forIn("key",u,w=>{a.if((0,r._)`${(0,e.usePattern)(o,x)}.test(${w})`,()=>{let E=m.includes(x);E||o.subschema({keyword:"patternProperties",schemaProp:x,dataProp:w,dataPropType:i.Type.Str},g),d.opts.unevaluated&&v!==!0?a.assign((0,r._)`${v}[${w}]`,!0):!E&&!d.allErrors&&a.if((0,r.not)(g),()=>a.break())})})}}};t.default=s}),Tle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=at(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:i,schema:s,it:o}=n;if((0,e.alwaysValidSchema)(o,s)){n.fail();return}let a=i.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),n.failResult(a,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),$le=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=wi(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),Ile=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,e._)`{passingSchemas: ${s.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(s){let{gen:o,schema:a,parentSchema:c,it:u}=s;if(!Array.isArray(a))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=a,d=o.let("valid",!1),p=o.let("passing",null),f=o.name("_valid");s.setParams({passing:p}),o.block(m),s.result(d,()=>s.reset(),()=>s.error(!0));function m(){l.forEach((h,g)=>{let v;(0,r.alwaysValidSchema)(u,h)?o.var(f,!0):v=s.subschema({keyword:"oneOf",schemaProp:g,compositeRule:!0},f),g>0&&o.if((0,e._)`${f} && ${d}`).assign(d,!1).assign(p,(0,e._)`[${p}, ${g}]`).else(),o.if(f,()=>{o.assign(d,!0),o.assign(p,g),v&&s.mergeEvaluated(v,e.Name)})})}}};t.default=i}),Rle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=at(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:i,schema:s,it:o}=n;if(!Array.isArray(s))throw new Error("ajv implementation error");let a=i.name("valid");s.forEach((c,u)=>{if((0,e.alwaysValidSchema)(o,c))return;let l=n.subschema({keyword:"allOf",schemaProp:u},a);n.ok(a),n.mergeEvaluated(l)})}};t.default=r}),Ole=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=at(),n={message:({params:o})=>(0,e.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,e._)`{failingKeyword: ${o.ifClause}}`},i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:n,code(o){let{gen:a,parentSchema:c,it:u}=o;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=s(u,"then"),d=s(u,"else");if(!l&&!d)return;let p=a.let("valid",!0),f=a.name("_valid");if(m(),o.reset(),l&&d){let g=a.let("ifClause");o.setParams({ifClause:g}),a.if(f,h("then",g),h("else",g))}else l?a.if(f,h("then")):a.if((0,e.not)(f),h("else"));o.pass(p,()=>o.error(!0));function m(){let g=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},f);o.mergeEvaluated(g)}function h(g,v){return()=>{let S=o.subschema({keyword:g},f);a.assign(p,f),o.mergeValidEvaluated(S,p),v?a.assign(v,(0,e._)`${g}`):o.setParams({ifClause:g})}}}};function s(o,a){let c=o.schema[a];return c!==void 0&&!(0,r.alwaysValidSchema)(o,c)}t.default=i}),Cle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=at(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:i,it:s}){i.if===void 0&&(0,e.checkStrictMode)(s,`"${n}" without "if" is ignored`)}};t.default=r}),Ple=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xF(),r=_le(),n=wF(),i=ble(),s=Sle(),o=xle(),a=wle(),c=EF(),u=Ele(),l=kle(),d=Tle(),p=$le(),f=Ile(),m=Rle(),h=Ole(),g=Cle();function v(S=!1){let b=[d.default,p.default,f.default,m.default,h.default,g.default,a.default,c.default,o.default,u.default,l.default];return S?b.push(r.default,i.default):b.push(e.default,n.default),b.push(s.default),b}t.default=v}),Ale=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message:({schemaCode:i})=>(0,e.str)`must match format "${i}"`,params:({schemaCode:i})=>(0,e._)`{format: ${i}}`},n={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(i,s){let{gen:o,data:a,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:p,errSchemaPath:f,schemaEnv:m,self:h}=d;if(!p.validateFormats)return;c?g():v();function g(){let S=o.scopeValue("formats",{ref:h.formats,code:p.code.formats}),b=o.const("fDef",(0,e._)`${S}[${l}]`),y=o.let("fType"),x=o.let("format");o.if((0,e._)`typeof ${b} == "object" && !(${b} instanceof RegExp)`,()=>o.assign(y,(0,e._)`${b}.type || "string"`).assign(x,(0,e._)`${b}.validate`),()=>o.assign(y,(0,e._)`"string"`).assign(x,b)),i.fail$data((0,e.or)(w(),E()));function w(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${x}`}function E(){let T=m.$async?(0,e._)`(${b}.async ? await ${x}(${a}) : ${x}(${a}))`:(0,e._)`${x}(${a})`,I=(0,e._)`(typeof ${x} == "function" ? ${T} : ${x}.test(${a}))`;return(0,e._)`${x} && ${x} !== true && ${y} === ${s} && !${I}`}}function v(){let S=h.formats[u];if(!S){w();return}if(S===!0)return;let[b,y,x]=E(S);b===s&&i.pass(T());function w(){if(p.strictSchema===!1){h.logger.warn(I());return}throw new Error(I());function I(){return`unknown format "${u}" ignored in schema at path "${f}"`}}function E(I){let A=I instanceof RegExp?(0,e.regexpCode)(I):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,N=o.scopeValue("formats",{key:u,ref:I,code:A});return typeof I=="object"&&!(I instanceof RegExp)?[I.type||"string",I.validate,(0,e._)`${N}.validate`]:["string",I,N]}function T(){if(typeof S=="object"&&!(S instanceof RegExp)&&S.async){if(!m.$async)throw new Error("async format in sync schema");return(0,e._)`await ${x}(${a})`}return typeof y=="function"?(0,e._)`${x}(${a})`:(0,e._)`${x}.test(${a})`}}}};t.default=n}),Nle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ale(),r=[e.default];t.default=r}),Mle=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"]}),Dle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ole(),r=yle(),n=Ple(),i=Nle(),s=Mle(),o=[e.default,r.default,(0,n.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];t.default=o}),jle=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={}))}),zle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=jle(),n=N$(),i=Gv(),s=at(),o={message:({params:{discrError:c,tagName:u}})=>c===r.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,e._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},a={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:f}=c,{oneOf:m}=p;if(!f.opts.discriminator)throw new Error("discriminator: requires discriminator option");let h=d.propertyName;if(typeof h!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!m)throw new Error("discriminator: requires oneOf keyword");let g=u.let("valid",!1),v=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(h)}`);u.if((0,e._)`typeof ${v} == "string"`,()=>S(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:v,tagName:h})),c.ok(g);function S(){let x=y();u.if(!1);for(let w in x)u.elseIf((0,e._)`${v} === ${w}`),u.assign(g,b(x[w]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:v,tagName:h}),u.endIf()}function b(x){let w=u.name("valid"),E=c.subschema({keyword:"oneOf",schemaProp:x},w);return c.mergeEvaluated(E,e.Name),w}function y(){var x;let w={},E=I(p),T=!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}}),kF=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=nle(),n=Dle(),i=zle(),s=Lle(),o=["/properties"],a="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(m=>this.addVocabulary(m)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let m=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(m,a,!1),this.refs["http://json-schema.org/schema"]=a}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(a)?a:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Bv();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=Ze();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=A$();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=Gv();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),Ule=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(N,U){return{validate:N,compare:U}}t.fullFormats={date:e(s,o),time:e(c(!0),u),"date-time":e(p(!0),f),"iso-time":e(c(),l),"iso-date-time":e(p(),m),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:v,"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:A,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:w},int64:{type:"number",validate:E},float:{type:"number",validate:T},double:{type:"number",validate:T},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,u),"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,f),"iso-time":e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"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,m),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(N){return N%4===0&&(N%100!==0||N%400===0)}var n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s(N){let U=n.exec(N);if(!U)return!1;let V=+U[1],j=+U[2],ae=+U[3];return j>=1&&j<=12&&ae>=1&&ae<=(j===2&&r(V)?29:i[j])}function o(N,U){if(N&&U)return N>U?1:N23||C>59||N&&!Et)return!1;if(ae<=23&&Me<=59&&ze<60)return!0;let H=Me-C*Ge,M=ae-K*Ge-(H<0?1:0);return(M===23||M===-1)&&(H===59||H===-1)&&ze<61}}function u(N,U){if(!(N&&U))return;let V=new Date("2020-01-01T"+N).valueOf(),j=new Date("2020-01-01T"+U).valueOf();if(V&&j)return V-j}function l(N,U){if(!(N&&U))return;let V=a.exec(N),j=a.exec(U);if(V&&j)return N=V[1]+V[2]+V[3],U=j[1]+j[2]+j[3],N>U?1:N=y}function E(N){return Number.isInteger(N)}function T(){return!0}var I=/[^\\]\\Z/;function A(N){if(I.test(N))return!1;try{return new RegExp(N),!0}catch{return!1}}}),Fle=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=kF(),r=Ze(),n=r.operators,i={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}},s={message:({keyword:a,schemaCode:c})=>(0,r.str)`should be ${i[a].okStr} ${c}`,params:({keyword:a,schemaCode:c})=>(0,r._)`{comparison: ${i[a].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:s,code(a){let{gen:c,data:u,schemaCode:l,keyword:d,it:p}=a,{opts:f,self:m}=p;if(!f.validateFormats)return;let h=new e.KeywordCxt(p,m.RULES.all.format.definition,"format");h.$data?g():v();function g(){let b=c.scopeValue("formats",{ref:m.formats,code:f.code.formats}),y=c.const("fmt",(0,r._)`${b}[${h.schemaCode}]`);a.fail$data((0,r.or)((0,r._)`typeof ${y} != "object"`,(0,r._)`${y} instanceof RegExp`,(0,r._)`typeof ${y}.compare != "function"`,S(y)))}function v(){let b=h.schema,y=m.formats[b];if(!y||y===!0)return;if(typeof y!="object"||y instanceof RegExp||typeof y.compare!="function")throw new Error(`"${d}": format "${b}" does not define "compare" function`);let x=c.scopeValue("formats",{key:b,ref:y,code:f.code.formats?(0,r._)`${f.code.formats}${(0,r.getProperty)(b)}`:void 0});a.fail$data(S(x))}function S(b){return(0,r._)`${b}.compare(${u}, ${l}) ${i[d].fail} 0`}},dependencies:["format"]};var o=a=>(a.addKeyword(t.formatLimitDefinition),a);t.default=o}),qle=ne((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=Ule(),n=Fle(),i=Ze(),s=new i.Name("fullFormats"),o=new i.Name("fastFormats"),a=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,r.fullFormats,s),u;let[d,p]=l.mode==="fast"?[r.fastFormats,o]:[r.fullFormats,s],f=l.formats||r.formatNames;return c(u,f,d,p),l.keywords&&(0,n.default)(u),u};a.get=(u,l="full")=>{let p=(l==="fast"?r.fastFormats:r.fullFormats)[u];if(!p)throw new Error(`Unknown format "${u}"`);return p};function c(u,l,d,p){var f,m;(f=(m=u.opts.code).formats)!==null&&f!==void 0||(m.formats=(0,i._)`require("ajv-formats/dist/formats").${p}`);for(let h of l)u.addFormat(h,d[h])}e.exports=t=a,Object.defineProperty(t,"__esModule",{value:!0}),t.default=a}),Hle=50;function IF(t=Hle){let e=new AbortController;return(0,$F.setMaxListeners)(t,e.signal),e}var Zle=typeof global=="object"&&global&&global.Object===Object&&global,Ble=Zle,Gle=typeof self=="object"&&self&&self.Object===Object&&self,Wle=Ble||Gle||Function("return this")(),D$=Wle,Vle=D$.Symbol,jv=Vle,PF=Object.prototype,Kle=PF.hasOwnProperty,Jle=PF.toString,Ap=jv?jv.toStringTag:void 0;function Xle(t){var e=Kle.call(t,Ap),r=t[Ap];try{t[Ap]=void 0;var n=!0}catch{}var i=Jle.call(t);return n&&(e?t[Ap]=r:delete t[Ap]),i}var Yle=Xle,Qle=Object.prototype,ede=Qle.toString;function tde(t){return ede.call(t)}var rde=tde,nde="[object Null]",ide="[object Undefined]",F6=jv?jv.toStringTag:void 0;function sde(t){return t==null?t===void 0?ide:nde:F6&&F6 in Object(t)?Yle(t):rde(t)}var ode=sde;function ade(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var AF=ade,cde="[object AsyncFunction]",ude="[object Function]",lde="[object GeneratorFunction]",dde="[object Proxy]";function pde(t){if(!AF(t))return!1;var e=ode(t);return e==ude||e==lde||e==cde||e==dde}var fde=pde,mde=D$["__core-js_shared__"],a$=mde,q6=(function(){var t=/[^.]+$/.exec(a$&&a$.keys&&a$.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function hde(t){return!!q6&&q6 in t}var gde=hde,vde=Function.prototype,yde=vde.toString;function _de(t){if(t!=null){try{return yde.call(t)}catch{}try{return t+""}catch{}}return""}var bde=_de,Sde=/[\\^$.*+?()[\]{}|]/g,xde=/^\[object .+?Constructor\]$/,wde=Function.prototype,Ede=Object.prototype,kde=wde.toString,Tde=Ede.hasOwnProperty,$de=RegExp("^"+kde.call(Tde).replace(Sde,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ide(t){if(!AF(t)||gde(t))return!1;var e=fde(t)?$de:xde;return e.test(bde(t))}var Rde=Ide;function Ode(t,e){return t?.[e]}var Cde=Ode;function Pde(t,e){var r=Cde(t,e);return Rde(r)?r:void 0}var NF=Pde,Ade=NF(Object,"create"),Dp=Ade;function Nde(){this.__data__=Dp?Dp(null):{},this.size=0}var Mde=Nde;function Dde(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var jde=Dde,zde="__lodash_hash_undefined__",Lde=Object.prototype,Ude=Lde.hasOwnProperty;function Fde(t){var e=this.__data__;if(Dp){var r=e[t];return r===zde?void 0:r}return Ude.call(e,t)?e[t]:void 0}var qde=Fde,Hde=Object.prototype,Zde=Hde.hasOwnProperty;function Bde(t){var e=this.__data__;return Dp?e[t]!==void 0:Zde.call(e,t)}var Gde=Bde,Wde="__lodash_hash_undefined__";function Vde(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Dp&&e===void 0?Wde:e,this}var Kde=Vde;function Ru(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var cpe=ape;function upe(t,e){var r=this.__data__,n=Wv(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var lpe=upe;function Ou(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{if(!t||t.trim()==="")return null;let e=t.split(",").map(s=>s.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(s=>s.startsWith("!")),n=e.some(s=>!s.startsWith("!"));if(r&&n)return null;let i=e.map(s=>s.replace(/^!/,"").toLowerCase());return{include:r?[]:i,exclude:r?i:[],isExclusive:r}});function Ope(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let s=t.match(/^([^:[]+):/);s&&s[1]&&e.push(s[1].trim().toLowerCase())}let n=t.match(/^\[([^\]]+)]/);n&&n[1]&&e.push(n[1].trim().toLowerCase()),t.toLowerCase().includes("statsig event:")&&e.push("statsig");let i=t.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(i&&i[1]){let s=i[1].trim().toLowerCase();s.length<30&&!s.includes(" ")&&e.push(s)}return Array.from(new Set(e))}function Cpe(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 Ppe(t,e){if(!e)return!0;let r=Ope(t);return Cpe(r,e)}function zF(){return process.env.CLAUDE_CONFIG_DIR??(0,DF.join)((0,jF.homedir)(),".claude")}function B6(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}var c$=15e4,Rv=3e4;function qF(t){return{name:t,default:Rv,validate:e=>{if(!e)return{effective:Rv,status:"valid"};let r=parseInt(e,10);return isNaN(r)||r<=0?{effective:Rv,status:"invalid",message:`Invalid value "${e}" (using default: ${Rv})`}:r>c$?{effective:c$,status:"capped",message:`Capped from ${r} to ${c$}`}:{effective:r,status:"valid"}}}}var Ape=qF("BASH_MAX_OUTPUT_LENGTH"),mDe=qF("TASK_MAX_OUTPUT_LENGTH"),Npe={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:t=>{if(!t)return{effective:32e3,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:32e3,status:"invalid",message:`Invalid value "${t}" (using default: 32000)`}:n>64e3?{effective:64e3,status:"capped",message:`Capped from ${n} to 64000`}:{effective:n,status:"valid"}}};function Mpe(){let t="";return typeof process<"u"&&typeof process.cwd=="function"&&(t=(0,UF.realpathSync)((0,LF.cwd)())),{originalCwd:t,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration: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,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:(0,FF.randomUUID)(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[Ape,Npe],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],sessionBypassPermissionsMode:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0}}var Dpe=Mpe();function jpe(){return Dpe.sessionId}function zpe({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,immediateMode:n=!1}){let i=[],s=null;function o(){s&&(clearTimeout(s),s=null)}function a(){i.length!==0&&(t(i.join("")),i=[],o())}function c(){s||(s=setTimeout(a,e))}return{write(u){if(n){t(u);return}i.push(u),c(),i.length>=r&&a()},flush:a,dispose(){a()}}}var G6=new Set;function Lpe(t){return G6.add(t),()=>G6.delete(t)}var HF=1/0;function Upe(t){return t===null?"null":t===void 0?"undefined":Array.isArray(t)?`Array[${t.length}]`:typeof t=="object"?`Object{${Object.keys(t).length} keys}`:typeof t=="string"?`string(${t.length} chars)`:typeof t}function ZF(t,e){let r=performance.now();try{return e()}finally{let n=performance.now()-r;n>HF&&(Ps(`[SLOW OPERATION DETECTED] ${t} (${n.toFixed(1)}ms)`),void 0)}}function Xi(t,e,r){let n=Upe(t);return ZF(`JSON.stringify(${n})`,()=>JSON.stringify(t,e,r))}var BF=(t,e)=>{let r=typeof t=="string"?t.length:0;return ZF(`JSON.parse(${r} chars)`,()=>JSON.parse(t,e))},Fpe=Jp(()=>B6(process.env.DEBUG)||B6(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||GF()||process.argv.some(t=>t.startsWith("--debug="))),qpe=Jp(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return Rpe(e)}),GF=Jp(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));function Hpe(t){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=qpe();return Ppe(t,e)}var Zpe=!1,Ov=null;function Bpe(){return Ov||(Ov=zpe({writeFn:t=>{let e=WF();As().existsSync((0,_a.dirname)(e))||As().mkdirSync((0,_a.dirname)(e)),As().appendFileSync(e,t),Gpe()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Fpe()}),Lpe(async()=>Ov?.dispose())),Ov}function Ps(t,{level:e}={level:"debug"}){if(!Hpe(t))return;Zpe&&t.includes(` +`)&&(t=Xi(t));let n=`${new Date().toISOString()} [${e.toUpperCase()}] ${t.trim()} +`;if(GF()){Ipe(n);return}Bpe().write(n)}function WF(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,_a.join)(zF(),"debug",`${jpe()}.txt`)}var Gpe=Jp(()=>{if(process.argv[2]!=="--ripgrep")try{let t=WF(),e=(0,_a.dirname)(t),r=(0,_a.join)(e,"latest");if(As().existsSync(e)||As().mkdirSync(e),As().existsSync(r))try{As().unlinkSync(r)}catch{}As().symlinkSync(t,r)}catch{}});function er(t,e){let r=performance.now();try{return e()}finally{let n=performance.now()-r;n>HF&&(Ps(`[SLOW OPERATION DETECTED] fs.${t} (${n.toFixed(1)}ms)`),`${t}`,void 0)}}var Wpe={cwd(){return process.cwd()},existsSync(t){return er(`existsSync(${t})`,()=>$e.existsSync(t))},async stat(t){return(0,CF.stat)(t)},statSync(t){return er(`statSync(${t})`,()=>$e.statSync(t))},lstatSync(t){return er(`lstatSync(${t})`,()=>$e.lstatSync(t))},readFileSync(t,e){return er(`readFileSync(${t})`,()=>$e.readFileSync(t,{encoding:e.encoding}))},readFileBytesSync(t){return er(`readFileBytesSync(${t})`,()=>$e.readFileSync(t))},readSync(t,e){return er(`readSync(${t}, ${e.length} bytes)`,()=>{let r;try{r=$e.openSync(t,"r");let n=Buffer.alloc(e.length),i=$e.readSync(r,n,0,e.length,0);return{buffer:n,bytesRead:i}}finally{r&&$e.closeSync(r)}})},appendFileSync(t,e,r){return er(`appendFileSync(${t}, ${e.length} chars)`,()=>{if(!$e.existsSync(t)&&r?.mode!==void 0){let n=$e.openSync(t,"a",r.mode);try{$e.appendFileSync(n,e)}finally{$e.closeSync(n)}}else $e.appendFileSync(t,e)})},copyFileSync(t,e){return er(`copyFileSync(${t} \u2192 ${e})`,()=>$e.copyFileSync(t,e))},unlinkSync(t){return er(`unlinkSync(${t})`,()=>$e.unlinkSync(t))},renameSync(t,e){return er(`renameSync(${t} \u2192 ${e})`,()=>$e.renameSync(t,e))},linkSync(t,e){return er(`linkSync(${t} \u2192 ${e})`,()=>$e.linkSync(t,e))},symlinkSync(t,e){return er(`symlinkSync(${t} \u2192 ${e})`,()=>$e.symlinkSync(t,e))},readlinkSync(t){return er(`readlinkSync(${t})`,()=>$e.readlinkSync(t))},realpathSync(t){return er(`realpathSync(${t})`,()=>$e.realpathSync(t))},mkdirSync(t,e){return er(`mkdirSync(${t})`,()=>{if(!$e.existsSync(t)){let r={recursive:!0};e?.mode!==void 0&&(r.mode=e.mode),$e.mkdirSync(t,r)}})},readdirSync(t){return er(`readdirSync(${t})`,()=>$e.readdirSync(t,{withFileTypes:!0}))},readdirStringSync(t){return er(`readdirStringSync(${t})`,()=>$e.readdirSync(t))},isDirEmptySync(t){return er(`isDirEmptySync(${t})`,()=>this.readdirSync(t).length===0)},rmdirSync(t){return er(`rmdirSync(${t})`,()=>$e.rmdirSync(t))},rmSync(t,e){return er(`rmSync(${t})`,()=>$e.rmSync(t,e))},createWriteStream(t){return $e.createWriteStream(t)}},Vpe=Wpe;function As(){return Vpe}var ya=class extends Error{};function VF(){return process.versions.bun!==void 0}var Cv=null,W6=!1;function Kpe(){if(W6)return Cv;if(W6=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let t=(0,m$.join)(zF(),"debug");return Cv=(0,m$.join)(t,`sdk-${(0,KF.randomUUID)()}.txt`),(0,Pu.existsSync)(t)||(0,Pu.mkdirSync)(t,{recursive:!0}),process.stderr.write(`SDK debug logs: ${Cv} +`),Cv}function va(t){let e=Kpe();if(!e)return;let n=`${new Date().toISOString()} ${t} +`;(0,Pu.appendFileSync)(e,n)}function Jpe(t,e){let r={...t};if(e){let n={sandbox:e};if(r.settings)try{n={...BF(r.settings),sandbox:e}}catch{}r.settings=Xi(n)}return r}var h$=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||IF(),this.initialize()}getDefaultExecutable(){return VF()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:n,cwd:i,env:s,signal:o}=e,a=s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=(0,RF.spawn)(r,n,{cwd:i,stdio:["pipe","pipe",a],signal:o,env:s,windowsHide:!0});return(s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();va(d),this.options.stderr&&this.options.stderr(d)}),{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=[],betas:r,cwd:n,executable:i=this.getDefaultExecutable(),executableArgs:s=[],extraArgs:o={},pathToClaudeCodeExecutable:a,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:p,fallbackModel:f,jsonSchema:m,permissionMode:h,allowDangerouslySkipPermissions:g,permissionPromptToolName:v,continueConversation:S,resume:b,settingSources:y,allowedTools:x=[],disallowedTools:w=[],tools:E,mcpServers:T,strictMcpConfig:I,canUseTool:A,includePartialMessages:N,plugins:U,sandbox:V}=this.options,j=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&j.push("--max-thinking-tokens",u.toString()),l&&j.push("--max-turns",l.toString()),d!==void 0&&j.push("--max-budget-usd",d.toString()),p&&j.push("--model",p),r&&r.length>0&&j.push("--betas",r.join(",")),m&&j.push("--json-schema",Xi(m)),c.DEBUG_CLAUDE_AGENT_SDK&&j.push("--debug-to-stderr"),A){if(v)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");j.push("--permission-prompt-tool","stdio")}else v&&j.push("--permission-prompt-tool",v);if(S&&j.push("--continue"),b&&j.push("--resume",b),x.length>0&&j.push("--allowedTools",x.join(",")),w.length>0&&j.push("--disallowedTools",w.join(",")),E!==void 0&&(Array.isArray(E)?E.length===0?j.push("--tools",""):j.push("--tools",E.join(",")):j.push("--tools","default")),T&&Object.keys(T).length>0&&j.push("--mcp-config",Xi({mcpServers:T})),y&&j.push("--setting-sources",y.join(",")),I&&j.push("--strict-mcp-config"),h&&j.push("--permission-mode",h),g&&j.push("--allow-dangerously-skip-permissions"),f){if(p&&f===p)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");j.push("--fallback-model",f)}N&&j.push("--include-partial-messages");for(let C of e)j.push("--add-dir",C);if(U&&U.length>0)for(let C of U)if(C.type==="local")j.push("--plugin-dir",C.path);else throw new Error(`Unsupported plugin type: ${C.type}`);this.options.forkSession&&j.push("--fork-session"),this.options.resumeSessionAt&&j.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&j.push("--no-session-persistence");let ae=Jpe(o??{},V);for(let[C,H]of Object.entries(ae))H===null?j.push(`--${C}`):j.push(`--${C}`,H);c.CLAUDE_CODE_ENTRYPOINT||(c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete c.NODE_OPTIONS,c.DEBUG_CLAUDE_AGENT_SDK?c.DEBUG="1":delete c.DEBUG;let Me=Xpe(a),ze=Me?a:i,Et=Me?[...s,...j]:[...s,a,...j],Ge={command:ze,args:Et,cwd:n,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)va(`Spawning Claude Code (custom): ${ze} ${Et.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(Ge);else{if(!As().existsSync(a)){let H=Me?`Claude Code native binary not found at ${a}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${a}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(H)}va(`Spawning Claude Code: ${ze} ${Et.join(" ")}`),this.process=this.spawnLocalProcess(Ge)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let K=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=K,this.abortHandler=K,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",C=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new ya("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${C.message}`),va(this.exitError.message))}),this.process.on("exit",(C,H)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new ya("Claude Code process aborted by user");else{let M=this.getProcessExitError(C,H);M&&(this.exitError=M,va(M.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,r){if(e!==0&&e!==null)return new Error(`Claude Code process exited with code ${e}`);if(r)return new Error(`Claude Code process terminated by signal ${r}`)}write(e){if(this.abortController.signal.aborted)throw new ya("Operation aborted");if(!this.ready||!this.processStdin)throw new Error("ProcessTransport is not ready for writing");if(this.process?.killed||this.process?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);va(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||va("[ProcessTransport] Write buffer full, data queued")}catch(r){throw this.ready=!1,new Error(`Failed to write to process stdin: ${r.message}`)}}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:e}of this.exitListeners)this.process?.off("exit",e);this.exitListeners=[],this.process&&!this.process.killed&&(this.process.kill("SIGTERM"),setTimeout(()=>{this.process&&!this.process.killed&&this.process.kill("SIGKILL")},5e3)),this.ready=!1,this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw new Error("ProcessTransport output stream not available");let e=(0,OF.createInterface)({input:this.processStdout});try{for await(let r of e)r.trim()&&(yield BF(r));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,i)=>{let s=this.getProcessExitError(n,i);e(s)};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(i=>i.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=(s,o)=>{if(this.abortController.signal.aborted){r(new ya("Operation aborted"));return}let a=this.getProcessExitError(s,o);a?r(a):e()};this.process.once("exit",n);let i=s=>{this.process.off("exit",n),r(s)};this.process.once("error",i),this.process.once("exit",()=>{this.process.off("error",i)})})}};function Xpe(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(r=>t.endsWith(r))}var g$=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw new 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})}},v$=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},y$=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new g$;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0}constructor(e,r,n,i,s,o=new Map,a,c){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=n,this.hooks=i,this.abortController=s,this.jsonSchema=a,this.initConfig=c;for(let[u,l]of o)this.connectSdkMcpServer(u,l);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),this.cancelControllers.clear(),this.hookCallbacks.clear();for(let r of this.sdkMcpTransports.values())try{r.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(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==="result"&&(this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Ps("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())),this.inputStream.enqueue(e)}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(e){this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),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),i={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:n}};await Promise.resolve(this.transport.write(Xi(i)+` +`))}catch(n){let i={type:"control_response",response:{subtype:"error",request_id:e.request_id,error:n.message||String(n)}};await Promise.resolve(this.transport.write(Xi(i)+` +`))}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 new 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,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,i=this.sdkMcpTransports.get(n.server_name);if(!i)throw new 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,i)}:(i.onmessage&&i.onmessage(n.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}}throw new 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,o]of Object.entries(this.hooks))o.length>0&&(e[s]=o.map(a=>{let c=[];for(let u of a.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,u),c.push(l)}return{matcher:a.matcher,hookCallbackIds:c,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};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 rewindFiles(e,r){return(await this.request({subtype:"rewind_files",user_message_id:e,dry_run:r?.dryRun})).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((i,s)=>{this.pendingControlResponses.set(r,o=>{o.subtype==="success"?i(o):(s(new Error(o.error)),o.pending_permission_requests&&this.processPendingPermissionRequests(o.pending_permission_requests))}),Promise.resolve(this.transport.write(Xi(n)+` +`))})}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async setMcpServers(e){let r={},n={};for(let[c,u]of Object.entries(e))u.type==="sdk"&&"instance"in u?r[c]=u.instance:n[c]=u;let i=new Set(this.sdkMcpServerInstances.keys()),s=new Set(Object.keys(r));for(let c of i)s.has(c)||await this.disconnectSdkMcpServer(c);for(let[c,u]of Object.entries(r))i.has(c)||this.connectSdkMcpServer(c,u);let o={};for(let c of Object.keys(r))o[c]={type:"sdk",name:c};return(await this.request({subtype:"mcp_set_servers",servers:{...n,...o}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(e){Ps("[Query.streamInput] Starting to process input stream");try{let r=0;for await(let n of e){if(r++,Ps(`[Query.streamInput] Processing message ${r}: ${n.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(Xi(n)+` +`))}Ps(`[Query.streamInput] Finished processing ${r} messages from input stream`),r>0&&this.hasBidirectionalNeeds()&&(Ps("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Ps("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(r){if(!(r instanceof ya))throw r}}waitForFirstResult(){return this.firstResultReceived?(Ps("[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,i){let s=this.hookCallbacks.get(e);if(!s)throw new Error(`No hook callback found for ID: ${e}`);return s(r,n,{signal:i})}connectSdkMcpServer(e,r){let n=new v$(i=>this.sendMcpServerMessageToCli(e,i));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 i=`${e}:${r.id}`,s=this.pendingMcpResponses.get(i);if(s){s.resolve(r),this.pendingMcpResponses.delete(i);return}}let n={type:"control_request",request_id:(0,JF.randomUUID)(),request:{subtype:"mcp_message",server_name:e,message:r}};this.transport.write(Xi(n)+` +`)}handleMcpControlRequest(e,r,n){let i="id"in r.message?r.message.id:null,s=`${e}:${i}`;return new Promise((o,a)=>{let c=()=>{this.pendingMcpResponses.delete(s)},u=d=>{c(),o(d)},l=d=>{c(),a(d)};if(this.pendingMcpResponses.set(s,{resolve:u,reject:l}),n.onmessage)n.onmessage(r.message);else{c(),a(new Error("No message handler registered"));return}})}};var ot;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ot||(ot={}));var V6;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(V6||(V6={}));var oe=ot.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),yo=t=>{switch(typeof t){case"undefined":return oe.undefined;case"string":return oe.string;case"number":return Number.isNaN(t)?oe.nan:oe.number;case"boolean":return oe.boolean;case"function":return oe.function;case"bigint":return oe.bigint;case"symbol":return oe.symbol;case"object":return Array.isArray(t)?oe.array:t===null?oe.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?oe.promise:typeof Map<"u"&&t instanceof Map?oe.map:typeof Set<"u"&&t instanceof Set?oe.set:typeof Date<"u"&&t instanceof Date?oe.date:oe.object;default:return oe.unknown}},W=ot.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(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,c=0;for(;cr.message){let r={},n=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];r[s]=r[s]||[],r[s].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Kn.create=t=>new Kn(t);var Ype=(t,e)=>{let r;switch(t.code){case W.invalid_type:t.received===oe.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case W.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ot.jsonStringifyReplacer)}`;break;case W.unrecognized_keys:r=`Unrecognized key(s) in object: ${ot.joinValues(t.keys,", ")}`;break;case W.invalid_union:r="Invalid input";break;case W.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ot.joinValues(t.options)}`;break;case W.invalid_enum_value:r=`Invalid enum value. Expected ${ot.joinValues(t.options)}, received '${t.received}'`;break;case W.invalid_arguments:r="Invalid function arguments";break;case W.invalid_return_type:r="Invalid function return type";break;case W.invalid_date:r="Invalid date";break;case W.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}"`:ot.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case W.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 W.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 W.custom:r="Invalid input";break;case W.invalid_intersection_types:r="Intersection results could not be merged";break;case W.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case W.not_finite:r="Number must be finite";break;default:r=e.defaultError,ot.assertNever(t)}return{message:r}},jp=Ype,Qpe=jp;function _$(){return Qpe}var b$=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}};function te(t,e){let r=_$(),n=b$({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===jp?void 0:jp].filter(i=>!!i)});t.common.issues.push(n)}var en=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 i of r){if(i.status==="aborted")return ke;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return ke;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},ke=Object.freeze({status:"aborted"}),Np=t=>({status:"dirty",value:t}),gn=t=>({status:"valid",value:t}),K6=t=>t.status==="aborted",J6=t=>t.status==="dirty",hu=t=>t.status==="valid",zv=t=>typeof Promise<"u"&&t instanceof Promise,pe;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(pe||(pe={}));var Jn=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}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}},X6=(t,e)=>{if(hu(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new 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 Ne(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:i}}var Be=class{get description(){return this._def.description}_getType(e){return yo(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:yo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new en,ctx:{common:e.parent.common,data:e.data,parsedType:yo(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(zv(r))throw new 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:yo(e)},i=this._parseSync({data:e,path:n.path,parent:n});return X6(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:yo(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return hu(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=>hu(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:yo(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(zv(i)?i:Promise.resolve(i));return X6(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:W.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Si({schema:this,typeName:Te.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 bi.create(this,this._def)}nullable(){return Ms.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return So.create(this)}promise(){return ba.create(this,this._def)}or(e){return _u.create([this,e],this._def)}and(e){return bu.create(this,e,this._def)}transform(e){return new Si({...Ne(this._def),schema:this,typeName:Te.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new ku({...Ne(this._def),innerType:this,defaultValue:r,typeName:Te.ZodDefault})}brand(){return new Lv({typeName:Te.ZodBranded,type:this,...Ne(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Tu({...Ne(this._def),innerType:this,catchValue:r,typeName:Te.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Uv.create(this,e)}readonly(){return $u.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},efe=/^c[^\s-]{8,}$/i,tfe=/^[0-9a-z]+$/,rfe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,nfe=/^[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,ife=/^[a-z0-9_-]{21}$/i,sfe=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,ofe=/^[-+]?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)?)??$/,afe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,cfe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",u$,ufe=/^(?:(?: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])$/,lfe=/^(?:(?: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])$/,dfe=/^(([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]))$/,pfe=/^(([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])$/,ffe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,mfe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,XF="((\\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])))",hfe=new RegExp(`^${XF}$`);function YF(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 gfe(t){return new RegExp(`^${YF(t)}$`)}function vfe(t){let e=`${XF}T${YF(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 yfe(t,e){return!!((e==="v4"||!e)&&ufe.test(t)||(e==="v6"||!e)&&dfe.test(t))}function _fe(t,e){if(!sfe.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,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function bfe(t,e){return!!((e==="v4"||!e)&&lfe.test(t)||(e==="v6"||!e)&&pfe.test(t))}var gu=class t extends Be{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==oe.string){let s=this._getOrReturnCtx(e);return te(s,{code:W.invalid_type,expected:oe.string,received:s.parsedType}),ke}let n=new en,i;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(i=this._getOrReturnCtx(e,i),te(i,{code:W.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.lengthe.test(i),{validation:r,code:W.invalid_string,...pe.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...pe.errToObj(e)})}url(e){return this._addCheck({kind:"url",...pe.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...pe.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...pe.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...pe.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...pe.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...pe.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...pe.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...pe.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...pe.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...pe.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...pe.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...pe.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,...pe.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,...pe.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...pe.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...pe.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...pe.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...pe.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...pe.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...pe.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...pe.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...pe.errToObj(r)})}nonempty(e){return this.min(1,pe.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 gu({checks:[],typeName:Te.ZodString,coerce:t?.coerce??!1,...Ne(t)});function Sfe(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return s%o/10**i}var zp=class t extends Be{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)!==oe.number){let s=this._getOrReturnCtx(e);return te(s,{code:W.invalid_type,expected:oe.number,received:s.parsedType}),ke}let n,i=new en;for(let s of this._def.checks)s.kind==="int"?ot.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),te(n,{code:W.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),te(n,{code:W.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Sfe(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),te(n,{code:W.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),te(n,{code:W.not_finite,message:s.message}),i.dirty()):ot.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,pe.toString(r))}gt(e,r){return this.setLimit("min",e,!1,pe.toString(r))}lte(e,r){return this.setLimit("max",e,!0,pe.toString(r))}lt(e,r){return this.setLimit("max",e,!1,pe.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:pe.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:pe.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:pe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:pe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:pe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:pe.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:pe.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:pe.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:pe.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:pe.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"&&ot.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 zp({checks:[],typeName:Te.ZodNumber,coerce:t?.coerce||!1,...Ne(t)});var Lp=class t extends Be{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)!==oe.bigint)return this._getInvalidInput(e);let n,i=new en;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),te(n,{code:W.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),te(n,{code:W.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ot.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return te(r,{code:W.invalid_type,expected:oe.bigint,received:r.parsedType}),ke}gte(e,r){return this.setLimit("min",e,!0,pe.toString(r))}gt(e,r){return this.setLimit("min",e,!1,pe.toString(r))}lte(e,r){return this.setLimit("max",e,!0,pe.toString(r))}lt(e,r){return this.setLimit("max",e,!1,pe.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:pe.toString(i)}]})}_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:pe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:pe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:pe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:pe.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:pe.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 Lp({checks:[],typeName:Te.ZodBigInt,coerce:t?.coerce??!1,...Ne(t)});var Up=class extends Be{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==oe.boolean){let n=this._getOrReturnCtx(e);return te(n,{code:W.invalid_type,expected:oe.boolean,received:n.parsedType}),ke}return gn(e.data)}};Up.create=t=>new Up({typeName:Te.ZodBoolean,coerce:t?.coerce||!1,...Ne(t)});var Fp=class t extends Be{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==oe.date){let s=this._getOrReturnCtx(e);return te(s,{code:W.invalid_type,expected:oe.date,received:s.parsedType}),ke}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return te(s,{code:W.invalid_date}),ke}let n=new en,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(i=this._getOrReturnCtx(e,i),te(i,{code:W.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):ot.assertNever(s);return{status:n.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:pe.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:pe.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 Fp({checks:[],coerce:t?.coerce||!1,typeName:Te.ZodDate,...Ne(t)});var qp=class extends Be{_parse(e){if(this._getType(e)!==oe.symbol){let n=this._getOrReturnCtx(e);return te(n,{code:W.invalid_type,expected:oe.symbol,received:n.parsedType}),ke}return gn(e.data)}};qp.create=t=>new qp({typeName:Te.ZodSymbol,...Ne(t)});var vu=class extends Be{_parse(e){if(this._getType(e)!==oe.undefined){let n=this._getOrReturnCtx(e);return te(n,{code:W.invalid_type,expected:oe.undefined,received:n.parsedType}),ke}return gn(e.data)}};vu.create=t=>new vu({typeName:Te.ZodUndefined,...Ne(t)});var yu=class extends Be{_parse(e){if(this._getType(e)!==oe.null){let n=this._getOrReturnCtx(e);return te(n,{code:W.invalid_type,expected:oe.null,received:n.parsedType}),ke}return gn(e.data)}};yu.create=t=>new yu({typeName:Te.ZodNull,...Ne(t)});var Hp=class extends Be{constructor(){super(...arguments),this._any=!0}_parse(e){return gn(e.data)}};Hp.create=t=>new Hp({typeName:Te.ZodAny,...Ne(t)});var bo=class extends Be{constructor(){super(...arguments),this._unknown=!0}_parse(e){return gn(e.data)}};bo.create=t=>new bo({typeName:Te.ZodUnknown,...Ne(t)});var Qi=class extends Be{_parse(e){let r=this._getOrReturnCtx(e);return te(r,{code:W.invalid_type,expected:oe.never,received:r.parsedType}),ke}};Qi.create=t=>new Qi({typeName:Te.ZodNever,...Ne(t)});var Zp=class extends Be{_parse(e){if(this._getType(e)!==oe.undefined){let n=this._getOrReturnCtx(e);return te(n,{code:W.invalid_type,expected:oe.void,received:n.parsedType}),ke}return gn(e.data)}};Zp.create=t=>new Zp({typeName:Te.ZodVoid,...Ne(t)});var So=class t extends Be{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==oe.array)return te(r,{code:W.invalid_type,expected:oe.array,received:r.parsedType}),ke;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.lengthi.maxLength.value&&(te(r,{code:W.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new Jn(r,o,r.path,a)))).then(o=>en.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new Jn(r,o,r.path,a)));return en.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:pe.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:pe.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:pe.toString(r)}})}nonempty(e){return this.min(1,e)}};So.create=(t,e)=>new So({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Te.ZodArray,...Ne(e)});function pu(t){if(t instanceof On){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=bi.create(pu(n))}return new On({...t._def,shape:()=>e})}else return t instanceof So?new So({...t._def,type:pu(t.element)}):t instanceof bi?bi.create(pu(t.unwrap())):t instanceof Ms?Ms.create(pu(t.unwrap())):t instanceof Ns?Ns.create(t.items.map(e=>pu(e))):t}var On=class t extends Be{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=ot.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==oe.object){let u=this._getOrReturnCtx(e);return te(u,{code:W.invalid_type,expected:oe.object,received:u.parsedType}),ke}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Qi&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Jn(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Qi){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(te(i,{code:W.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Jn(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,p=await l.value;u.push({key:d,value:p,alwaysSet:l.alwaysSet})}return u}).then(u=>en.mergeObjectSync(n,u)):en.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return pe.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:pe.errToObj(e).message??i}:{message:i}}}:{}})}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:Te.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 ot.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 ot.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return pu(this)}partial(e){let r={};for(let n of ot.objectKeys(this.shape)){let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of ot.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof bi;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return QF(ot.objectKeys(this.shape))}};On.create=(t,e)=>new On({shape:()=>t,unknownKeys:"strip",catchall:Qi.create(),typeName:Te.ZodObject,...Ne(e)});On.strictCreate=(t,e)=>new On({shape:()=>t,unknownKeys:"strict",catchall:Qi.create(),typeName:Te.ZodObject,...Ne(e)});On.lazycreate=(t,e)=>new On({shape:t,unknownKeys:"strip",catchall:Qi.create(),typeName:Te.ZodObject,...Ne(e)});var _u=class extends Be{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Kn(a.ctx.common.issues));return te(r,{code:W.invalid_union,unionErrors:o}),ke}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Kn(c));return te(r,{code:W.invalid_union,unionErrors:a}),ke}}get options(){return this._def.options}};_u.create=(t,e)=>new _u({options:t,typeName:Te.ZodUnion,...Ne(e)});var Cs=t=>t instanceof Su?Cs(t.schema):t instanceof Si?Cs(t.innerType()):t instanceof xu?[t.value]:t instanceof wu?t.options:t instanceof Eu?ot.objectValues(t.enum):t instanceof ku?Cs(t._def.innerType):t instanceof vu?[void 0]:t instanceof yu?[null]:t instanceof bi?[void 0,...Cs(t.unwrap())]:t instanceof Ms?[null,...Cs(t.unwrap())]:t instanceof Lv||t instanceof $u?Cs(t.unwrap()):t instanceof Tu?Cs(t._def.innerType):[],S$=class t extends Be{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==oe.object)return te(r,{code:W.invalid_type,expected:oe.object,received:r.parsedType}),ke;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(te(r,{code:W.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),ke)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Cs(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Te.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Ne(n)})}};function x$(t,e){let r=yo(t),n=yo(e);if(t===e)return{valid:!0,data:t};if(r===oe.object&&n===oe.object){let i=ot.objectKeys(e),s=ot.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let c=x$(t[a],e[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(r===oe.array&&n===oe.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s{if(K6(s)||K6(o))return ke;let a=x$(s.value,o.value);return a.valid?((J6(s)||J6(o))&&r.dirty(),{status:r.value,value:a.data}):(te(n,{code:W.invalid_intersection_types}),ke)};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(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};bu.create=(t,e,r)=>new bu({left:t,right:e,typeName:Te.ZodIntersection,...Ne(r)});var Ns=class t extends Be{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==oe.array)return te(n,{code:W.invalid_type,expected:oe.array,received:n.parsedType}),ke;if(n.data.lengththis._def.items.length&&(te(n,{code:W.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new Jn(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>en.mergeArray(r,o)):en.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Ns.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ns({items:t,typeName:Te.ZodTuple,rest:null,...Ne(e)})};var w$=class t extends Be{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!==oe.object)return te(n,{code:W.invalid_type,expected:oe.object,received:n.parsedType}),ke;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new Jn(n,a,n.path,a)),value:o._parse(new Jn(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?en.mergeObjectAsync(r,i):en.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Be?new t({keyType:e,valueType:r,typeName:Te.ZodRecord,...Ne(n)}):new t({keyType:gu.create(),valueType:e,typeName:Te.ZodRecord,...Ne(r)})}},Bp=class extends Be{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!==oe.map)return te(n,{code:W.invalid_type,expected:oe.map,received:n.parsedType}),ke;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,c],u)=>({key:i._parse(new Jn(n,a,n.path,[u,"key"])),value:s._parse(new Jn(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return ke;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return ke;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}}}};Bp.create=(t,e,r)=>new Bp({valueType:e,keyType:t,typeName:Te.ZodMap,...Ne(r)});var Gp=class t extends Be{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==oe.set)return te(n,{code:W.invalid_type,expected:oe.set,received:n.parsedType}),ke;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(te(n,{code:W.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return ke;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>s._parse(new Jn(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:pe.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:pe.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Gp.create=(t,e)=>new Gp({valueType:t,minSize:null,maxSize:null,typeName:Te.ZodSet,...Ne(e)});var E$=class t extends Be{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==oe.function)return te(r,{code:W.invalid_type,expected:oe.function,received:r.parsedType}),ke;function n(a,c){return b$({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,_$(),jp].filter(u=>!!u),issueData:{code:W.invalid_arguments,argumentsError:c}})}function i(a,c){return b$({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,_$(),jp].filter(u=>!!u),issueData:{code:W.invalid_return_type,returnTypeError:c}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof ba){let a=this;return gn(async function(...c){let u=new Kn([]),l=await a._def.args.parseAsync(c,s).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(f=>{throw u.addIssue(i(d,f)),u})})}else{let a=this;return gn(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Kn([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Kn([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Ns.create(e).rest(bo.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||Ns.create([]).rest(bo.create()),returns:r||bo.create(),typeName:Te.ZodFunction,...Ne(n)})}},Su=class extends Be{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})}};Su.create=(t,e)=>new Su({getter:t,typeName:Te.ZodLazy,...Ne(e)});var xu=class extends Be{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return te(r,{received:r.data,code:W.invalid_literal,expected:this._def.value}),ke}return{status:"valid",value:e.data}}get value(){return this._def.value}};xu.create=(t,e)=>new xu({value:t,typeName:Te.ZodLiteral,...Ne(e)});function QF(t,e){return new wu({values:t,typeName:Te.ZodEnum,...Ne(e)})}var wu=class t extends Be{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{expected:ot.joinValues(n),received:r.parsedType,code:W.invalid_type}),ke}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:W.invalid_enum_value,options:n}),ke}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})}};wu.create=QF;var Eu=class extends Be{_parse(e){let r=ot.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==oe.string&&n.parsedType!==oe.number){let i=ot.objectValues(r);return te(n,{expected:ot.joinValues(i),received:n.parsedType,code:W.invalid_type}),ke}if(this._cache||(this._cache=new Set(ot.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=ot.objectValues(r);return te(n,{received:n.data,code:W.invalid_enum_value,options:i}),ke}return gn(e.data)}get enum(){return this._def.values}};Eu.create=(t,e)=>new Eu({values:t,typeName:Te.ZodNativeEnum,...Ne(e)});var ba=class extends Be{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==oe.promise&&r.common.async===!1)return te(r,{code:W.invalid_type,expected:oe.promise,received:r.parsedType}),ke;let n=r.parsedType===oe.promise?r.data:Promise.resolve(r.data);return gn(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};ba.create=(t,e)=>new ba({type:t,typeName:Te.ZodPromise,...Ne(e)});var Si=class extends Be{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Te.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{te(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return ke;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?ke:c.status==="dirty"||r.value==="dirty"?Np(c.value):c});{if(r.value==="aborted")return ke;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?ke:a.status==="dirty"||r.value==="dirty"?Np(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?ke:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?ke:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!hu(o))return ke;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>hu(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):ke);ot.assertNever(i)}};Si.create=(t,e,r)=>new Si({schema:t,typeName:Te.ZodEffects,effect:e,...Ne(r)});Si.createWithPreprocess=(t,e,r)=>new Si({schema:e,effect:{type:"preprocess",transform:t},typeName:Te.ZodEffects,...Ne(r)});var bi=class extends Be{_parse(e){return this._getType(e)===oe.undefined?gn(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};bi.create=(t,e)=>new bi({innerType:t,typeName:Te.ZodOptional,...Ne(e)});var Ms=class extends Be{_parse(e){return this._getType(e)===oe.null?gn(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Ms.create=(t,e)=>new Ms({innerType:t,typeName:Te.ZodNullable,...Ne(e)});var ku=class extends Be{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===oe.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ku.create=(t,e)=>new ku({innerType:t,typeName:Te.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ne(e)});var Tu=class extends Be{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return zv(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Tu.create=(t,e)=>new Tu({innerType:t,typeName:Te.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ne(e)});var Wp=class extends Be{_parse(e){if(this._getType(e)!==oe.nan){let n=this._getOrReturnCtx(e);return te(n,{code:W.invalid_type,expected:oe.nan,received:n.parsedType}),ke}return{status:"valid",value:e.data}}};Wp.create=t=>new Wp({typeName:Te.ZodNaN,...Ne(t)});var Lv=class extends Be{_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}},Uv=class t extends Be{_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"?ke:s.status==="dirty"?(r.dirty(),Np(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?ke:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Te.ZodPipeline})}},$u=class extends Be{_parse(e){let r=this._def.innerType._parse(e),n=i=>(hu(i)&&(i.value=Object.freeze(i.value)),i);return zv(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};$u.create=(t,e)=>new $u({innerType:t,typeName:Te.ZodReadonly,...Ne(e)});var hDe={object:On.lazycreate},Te;(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"})(Te||(Te={}));var gDe=gu.create,vDe=zp.create,yDe=Wp.create,_De=Lp.create,bDe=Up.create,SDe=Fp.create,xDe=qp.create,wDe=vu.create,EDe=yu.create,kDe=Hp.create,TDe=bo.create,$De=Qi.create,IDe=Zp.create,RDe=So.create,ODe=On.create,CDe=On.strictCreate,PDe=_u.create,ADe=S$.create,NDe=bu.create,MDe=Ns.create,DDe=w$.create,jDe=Bp.create,zDe=Gp.create,LDe=E$.create,UDe=Su.create,FDe=xu.create,qDe=wu.create,HDe=Eu.create,ZDe=ba.create,BDe=Si.create,GDe=bi.create,WDe=Ms.create,VDe=Si.createWithPreprocess,KDe=Uv.create,JDe=Object.freeze({status:"aborted"});function q(t,e,r){function n(a,c){var u;Object.defineProperty(a,"_zod",{value:a._zod??{},enumerable:!1}),(u=a._zod).traits??(u.traits=new Set),a._zod.traits.add(t),e(a,c);for(let l in o.prototype)l in a||Object.defineProperty(a,l,{value:o.prototype[l].bind(a)});a._zod.constr=o,a._zod.def=c}let i=r?.Parent??Object;class s extends i{}Object.defineProperty(s,"name",{value:t});function o(a){var c;let u=r?.Parent?new s:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(o,"init",{value:n}),Object.defineProperty(o,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var Sa=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},k$={};function Ds(t){return t&&Object.assign(k$,t),k$}var At={};yF(At,{unwrapMessage:()=>Mp,stringifyPrimitive:()=>U$,required:()=>Ufe,randomString:()=>Rfe,propertyKeyTypes:()=>iq,promiseAllObject:()=>Ife,primitiveTypes:()=>Pfe,prefixIssues:()=>_o,pick:()=>Mfe,partial:()=>Lfe,optionalKeys:()=>sq,omit:()=>Dfe,numKeys:()=>Ofe,nullish:()=>Jv,normalizeParams:()=>xe,merge:()=>zfe,jsonStringifyReplacer:()=>tq,joinValues:()=>T$,issue:()=>aq,isPlainObject:()=>Kp,isObject:()=>Vp,getSizableOrigin:()=>Ffe,getParsedType:()=>Cfe,getLengthableOrigin:()=>Yv,getEnumValues:()=>eq,getElementAtPath:()=>$fe,floatSafeRemainder:()=>rq,finalizeIssue:()=>js,extend:()=>jfe,escapeRegex:()=>Au,esc:()=>fu,defineLazy:()=>Nt,createTransparentProxy:()=>Afe,clone:()=>wo,cleanRegex:()=>Xv,cleanEnum:()=>qfe,captureStackTrace:()=>L$,cached:()=>Kv,assignProp:()=>z$,assertNotEqual:()=>wfe,assertNever:()=>kfe,assertIs:()=>Efe,assertEqual:()=>xfe,assert:()=>Tfe,allowsEval:()=>nq,aborted:()=>mu,NUMBER_FORMAT_RANGES:()=>oq,Class:()=>$$,BIGINT_FORMAT_RANGES:()=>Nfe});function xfe(t){return t}function wfe(t){return t}function Efe(t){}function kfe(t){throw new Error}function Tfe(t){}function eq(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,i])=>e.indexOf(+n)===-1).map(([n,i])=>i)}function T$(t,e="|"){return t.map(r=>U$(r)).join(e)}function tq(t,e){return typeof e=="bigint"?e.toString():e}function Kv(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Jv(t){return t==null}function Xv(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function rq(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return s%o/10**i}function Nt(t,e,r){Object.defineProperty(t,e,{get(){{let i=r();return t[e]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function z$(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function $fe(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function Ife(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let s=0;s{};function Vp(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var nq=Kv(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Kp(t){if(Vp(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(Vp(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ofe(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var Cfe=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}`)}},iq=new Set(["string","number","symbol"]),Pfe=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Au(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function wo(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function xe(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 Afe(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,s){return e??(e=t()),Reflect.set(e,n,i,s)},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,i){return e??(e=t()),Reflect.defineProperty(e,n,i)}})}function U$(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function sq(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var oq={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]},Nfe={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Mfe(t,e){let r={},n=t._zod.def;for(let i in e){if(!(i in n.shape))throw new Error(`Unrecognized key: "${i}"`);e[i]&&(r[i]=n.shape[i])}return wo(t,{...t._zod.def,shape:r,checks:[]})}function Dfe(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let i in e){if(!(i in n.shape))throw new Error(`Unrecognized key: "${i}"`);e[i]&&delete r[i]}return wo(t,{...t._zod.def,shape:r,checks:[]})}function jfe(t,e){if(!Kp(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 z$(this,"shape",n),n},checks:[]};return wo(t,r)}function zfe(t,e){return wo(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return z$(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function Lfe(t,e,r){let n=e._zod.def.shape,i={...n};if(r)for(let s in r){if(!(s in n))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=t?new t({type:"optional",innerType:n[s]}):n[s])}else for(let s in n)i[s]=t?new t({type:"optional",innerType:n[s]}):n[s];return wo(e,{...e._zod.def,shape:i,checks:[]})}function Ufe(t,e,r){let n=e._zod.def.shape,i={...n};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new t({type:"nonoptional",innerType:n[s]}))}else for(let s in n)i[s]=new t({type:"nonoptional",innerType:n[s]});return wo(e,{...e._zod.def,shape:i,checks:[]})}function mu(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Mp(t){return typeof t=="string"?t:t?.message}function js(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=Mp(t.inst?._zod.def?.error?.(t))??Mp(e?.error?.(t))??Mp(r.customError?.(t))??Mp(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Ffe(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Yv(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function aq(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function qfe(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var $$=class{constructor(...e){}},cq=(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,tq,2)},enumerable:!0})},uq=q("$ZodError",cq),lq=q("$ZodError",cq,{Parent:Error});function Hfe(t,e=r=>r.message){let r={},n=[];for(let i of t.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}function Zfe(t,e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)n._errors.push(r(o));else{let a=n,c=0;for(;c(e,r,n,i)=>{let s=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},s);if(o instanceof Promise)throw new Sa;if(o.issues.length){let a=new(i?.Err??t)(o.issues.map(c=>js(c,s,Ds())));throw L$(a,i?.callee),a}return o.value};var Gfe=t=>async(e,r,n,i)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??t)(o.issues.map(c=>js(c,s,Ds())));throw L$(a,i?.callee),a}return o.value};var dq=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Sa;return s.issues.length?{success:!1,error:new(t??uq)(s.issues.map(o=>js(o,i,Ds())))}:{success:!0,data:s.value}},Wfe=dq(lq),pq=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},s=e._zod.run({value:r,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new t(s.issues.map(o=>js(o,i,Ds())))}:{success:!0,data:s.value}},Vfe=pq(lq),Kfe=/^[cC][^\s-]{8,}$/,Jfe=/^[0-9a-z]+$/,Xfe=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Yfe=/^[0-9a-vA-V]{20}$/,Qfe=/^[A-Za-z0-9]{27}$/,eme=/^[a-zA-Z0-9_-]{21}$/,tme=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,rme=/^([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})$/,Y6=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)$/,nme=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,ime="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function sme(){return new RegExp(ime,"u")}var ome=/^(?:(?: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])$/,ame=/^(([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})$/,cme=/^((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])$/,ume=/^(([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])$/,lme=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,fq=/^[A-Za-z0-9_-]*$/,dme=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,pme=/^\+(?:[0-9]){6,14}[0-9]$/,mq="(?:(?:\\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])))",fme=new RegExp(`^${mq}$`);function hq(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 mme(t){return new RegExp(`^${hq(t)}$`)}function hme(t){let e=hq({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(`^${mq}T(?:${n})$`)}var gme=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},vme=/^\d+$/,yme=/^-?\d+(?:\.\d+)?/i,_me=/true|false/i,bme=/null/i,Sme=/^[^A-Z]*$/,xme=/^[^a-z]*$/,vn=q("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),gq={number:"number",bigint:"bigint",object:"date"},vq=q("$ZodCheckLessThan",(t,e)=>{vn.init(t,e);let r=gq[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,s=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{vn.init(t,e);let r=gq[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,s=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>s&&(e.inclusive?i.minimum=e.value:i.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})}}),wme=q("$ZodCheckMultipleOf",(t,e)=>{vn.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):rq(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})}}),Eme=q("$ZodCheckNumberFormat",(t,e)=>{vn.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,s]=oq[e.format];t._zod.onattach.push(o=>{let a=o._zod.bag;a.format=e.format,a.minimum=i,a.maximum=s,r&&(a.pattern=vme)}),t._zod.check=o=>{let a=o.value;if(r){if(!Number.isInteger(a)){o.issues.push({expected:n,format:e.format,code:"invalid_type",input:a,inst:t});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):o.issues.push({input:a,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}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:t})}}),kme=q("$ZodCheckMaxLength",(t,e)=>{vn.init(t,e),t._zod.when=r=>{let n=r.value;return!Jv(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=Yv(n);r.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),Tme=q("$ZodCheckMinLength",(t,e)=>{vn.init(t,e),t._zod.when=r=>{let n=r.value;return!Jv(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=Yv(n);r.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),$me=q("$ZodCheckLengthEquals",(t,e)=>{vn.init(t,e),t._zod.when=r=>{let n=r.value;return!Jv(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,i=n.length;if(i===e.length)return;let s=Yv(n),o=i>e.length;r.issues.push({origin:s,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),Qv=q("$ZodCheckStringFormat",(t,e)=>{var r,n;vn.init(t,e),t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,e.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),Ime=q("$ZodCheckRegex",(t,e)=>{Qv.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})}}),Rme=q("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Sme),Qv.init(t,e)}),Ome=q("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=xme),Qv.init(t,e)}),Cme=q("$ZodCheckIncludes",(t,e)=>{vn.init(t,e);let r=Au(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),Pme=q("$ZodCheckStartsWith",(t,e)=>{vn.init(t,e);let r=new RegExp(`^${Au(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.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})}}),Ame=q("$ZodCheckEndsWith",(t,e)=>{vn.init(t,e);let r=new RegExp(`.*${Au(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.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})}}),Nme=q("$ZodCheckOverwrite",(t,e)=>{vn.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),I$=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(o=>o),i=Math.min(...n.map(o=>o.length-o.trimStart().length)),s=n.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of s)this.content.push(o)}compile(){let e=Function,r=this?.args,i=[...(this?.content??[""]).map(s=>` ${s}`)];return new e(...r,i.join(` -`))}},vde={major:4,minor:0,patch:0},jt=F("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=vde;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let s of i._zod.onattach)s(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let i=(s,o,a)=>{let c=Cc(s),u;for(let l of o){if(l._zod.when){if(!l._zod.when(s))continue}else if(c)continue;let d=s.issues.length,p=l._zod.check(s);if(p instanceof Promise&&a?.async===!1)throw new Ho;if(u||p instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await p,s.issues.length!==d&&(c||(c=Cc(s,d)))});else{if(s.issues.length===d)continue;c||(c=Cc(s,d))}}return u?u.then(()=>s):s};t._zod.run=(s,o)=>{let a=t._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new Ho;return a.then(c=>i(c,n,o))}return i(a,n,o)}}t["~standard"]={validate:i=>{try{let s=Rle(t,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Ole(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),Kk=F("$ZodString",(t,e)=>{jt.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Yle(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}}),Ut=F("$ZodStringFormat",(t,e)=>{jg.init(t,e),Kk.init(t,e)}),yde=F("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=zle),Ut.init(t,e)}),_de=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=VU(n))}else e.pattern??(e.pattern=VU());Ut.init(t,e)}),bde=F("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Lle),Ut.init(t,e)}),xde=F("$ZodURL",(t,e)=>{Ut.init(t,e),t._zod.check=r=>{try{let n=r.value,i=new URL(n),s=i.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(i.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:Gle.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.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("/")&&s.endsWith("/")?r.value=s.slice(0,-1):r.value=s;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),Sde=F("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=qle()),Ut.init(t,e)}),wde=F("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Dle),Ut.init(t,e)}),Ede=F("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=Ple),Ut.init(t,e)}),kde=F("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Cle),Ut.init(t,e)}),$de=F("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Ale),Ut.init(t,e)}),Tde=F("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Nle),Ut.init(t,e)}),Ide=F("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Mle),Ut.init(t,e)}),Rde=F("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=Xle(e)),Ut.init(t,e)}),Ode=F("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Kle),Ut.init(t,e)}),Pde=F("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Jle(e)),Ut.init(t,e)}),Cde=F("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=jle),Ut.init(t,e)}),Ade=F("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Fle),Ut.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),Nde=F("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=Hle),Ut.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})}}}),Mde=F("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Zle),Ut.init(t,e)}),Dde=F("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=Ble),Ut.init(t,e),t._zod.check=r=>{let[n,i]=r.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>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 m6(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var jde=F("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Vle),Ut.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{m6(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function zde(t){if(!a6.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return m6(r)}var Lde=F("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=a6),Ut.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{zde(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),Ude=F("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Wle),Ut.init(t,e)});function qde(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let i=JSON.parse(atob(n));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}var Fde=F("$ZodJWT",(t,e)=>{Ut.init(t,e),t._zod.check=r=>{qde(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),f6=F("$ZodNumber",(t,e)=>{jt.init(t,e),t._zod.pattern=t._zod.bag.pattern??ede,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let i=r.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return r;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...s?{received:s}:{}}),r}}),Hde=F("$ZodNumber",(t,e)=>{ode.init(t,e),f6.init(t,e)}),Zde=F("$ZodBoolean",(t,e)=>{jt.init(t,e),t._zod.pattern=tde,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let i=r.value;return typeof i=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),r}}),Bde=F("$ZodNull",(t,e)=>{jt.init(t,e),t._zod.pattern=rde,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let i=r.value;return i===null||r.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),r}}),Vde=F("$ZodUnknown",(t,e)=>{jt.init(t,e),t._zod.parse=r=>r}),Gde=F("$ZodNever",(t,e)=>{jt.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function GU(t,e,r){t.issues.length&&e.issues.push(...Hs(r,t.issues)),e.value[r]=t.value}var Wde=F("$ZodArray",(t,e)=>{jt.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),r;r.value=Array(i.length);let s=[];for(let o=0;oGU(u,r,o))):GU(c,r,o)}return s.length?Promise.all(s).then(()=>r):r}});function gg(t,e,r){t.issues.length&&e.issues.push(...Hs(r,t.issues)),e.value[r]=t.value}function WU(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(...Hs(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var Kde=F("$ZodObject",(t,e)=>{jt.init(t,e);let r=Ag(()=>{let d=Object.keys(e.shape);for(let m of d)if(!(e.shape[m]instanceof jt))throw new Error(`Invalid element at key "${m}": expected a Zod schema`);let p=Q2(e.shape);return{shape:e.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(p)}});Dt(t._zod,"propValues",()=>{let d=e.shape,p={};for(let m in d){let f=d[m]._zod;if(f.values){p[m]??(p[m]=new Set);for(let g of f.values)p[m].add(g)}}return p});let n=d=>{let p=new Dk(["shape","payload","ctx"]),m=r.value,f=x=>{let b=Pc(x);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};p.write("const input = payload.value;");let g=Object.create(null),h=0;for(let x of m.keys)g[x]=`key_${h++}`;p.write("const newResult = {}");for(let x of m.keys)if(m.optionalKeys.has(x)){let b=g[x];p.write(`const ${b} = ${f(x)};`);let _=Pc(x);p.write(` +`))}},Mme={major:4,minor:0,patch:0},Mt=q("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Mme;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let s of i._zod.onattach)s(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let i=(s,o,a)=>{let c=mu(s),u;for(let l of o){if(l._zod.when){if(!l._zod.when(s))continue}else if(c)continue;let d=s.issues.length,p=l._zod.check(s);if(p instanceof Promise&&a?.async===!1)throw new Sa;if(u||p instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await p,s.issues.length!==d&&(c||(c=mu(s,d)))});else{if(s.issues.length===d)continue;c||(c=mu(s,d))}}return u?u.then(()=>s):s};t._zod.run=(s,o)=>{let a=t._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new Sa;return a.then(c=>i(c,n,o))}return i(a,n,o)}}t["~standard"]={validate:i=>{try{let s=Wfe(t,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Vfe(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),F$=q("$ZodString",(t,e)=>{Mt.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??gme(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}}),Ut=q("$ZodStringFormat",(t,e)=>{Qv.init(t,e),F$.init(t,e)}),Dme=q("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=rme),Ut.init(t,e)}),jme=q("$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=Y6(n))}else e.pattern??(e.pattern=Y6());Ut.init(t,e)}),zme=q("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=nme),Ut.init(t,e)}),Lme=q("$ZodURL",(t,e)=>{Ut.init(t,e),t._zod.check=r=>{try{let n=r.value,i=new URL(n),s=i.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(i.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:dme.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.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("/")&&s.endsWith("/")?r.value=s.slice(0,-1):r.value=s;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),Ume=q("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=sme()),Ut.init(t,e)}),Fme=q("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=eme),Ut.init(t,e)}),qme=q("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=Kfe),Ut.init(t,e)}),Hme=q("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Jfe),Ut.init(t,e)}),Zme=q("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Xfe),Ut.init(t,e)}),Bme=q("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Yfe),Ut.init(t,e)}),Gme=q("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Qfe),Ut.init(t,e)}),Wme=q("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=hme(e)),Ut.init(t,e)}),Vme=q("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=fme),Ut.init(t,e)}),Kme=q("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=mme(e)),Ut.init(t,e)}),Jme=q("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=tme),Ut.init(t,e)}),Xme=q("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=ome),Ut.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),Yme=q("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=ame),Ut.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})}}}),Qme=q("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=cme),Ut.init(t,e)}),ehe=q("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=ume),Ut.init(t,e),t._zod.check=r=>{let[n,i]=r.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>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 _q(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var the=q("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=lme),Ut.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{_q(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function rhe(t){if(!fq.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return _q(r)}var nhe=q("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=fq),Ut.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{rhe(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),ihe=q("$ZodE164",(t,e)=>{e.pattern??(e.pattern=pme),Ut.init(t,e)});function she(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let i=JSON.parse(atob(n));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}var ohe=q("$ZodJWT",(t,e)=>{Ut.init(t,e),t._zod.check=r=>{she(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),bq=q("$ZodNumber",(t,e)=>{Mt.init(t,e),t._zod.pattern=t._zod.bag.pattern??yme,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let i=r.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return r;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...s?{received:s}:{}}),r}}),ahe=q("$ZodNumber",(t,e)=>{Eme.init(t,e),bq.init(t,e)}),che=q("$ZodBoolean",(t,e)=>{Mt.init(t,e),t._zod.pattern=_me,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let i=r.value;return typeof i=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),r}}),uhe=q("$ZodNull",(t,e)=>{Mt.init(t,e),t._zod.pattern=bme,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let i=r.value;return i===null||r.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),r}}),lhe=q("$ZodUnknown",(t,e)=>{Mt.init(t,e),t._zod.parse=r=>r}),dhe=q("$ZodNever",(t,e)=>{Mt.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function Q6(t,e,r){t.issues.length&&e.issues.push(..._o(r,t.issues)),e.value[r]=t.value}var phe=q("$ZodArray",(t,e)=>{Mt.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),r;r.value=Array(i.length);let s=[];for(let o=0;oQ6(u,r,o))):Q6(c,r,o)}return s.length?Promise.all(s).then(()=>r):r}});function Pv(t,e,r){t.issues.length&&e.issues.push(..._o(r,t.issues)),e.value[r]=t.value}function eF(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(..._o(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var fhe=q("$ZodObject",(t,e)=>{Mt.init(t,e);let r=Kv(()=>{let d=Object.keys(e.shape);for(let f of d)if(!(e.shape[f]instanceof Mt))throw new Error(`Invalid element at key "${f}": expected a Zod schema`);let p=sq(e.shape);return{shape:e.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(p)}});Nt(t._zod,"propValues",()=>{let d=e.shape,p={};for(let f in d){let m=d[f]._zod;if(m.values){p[f]??(p[f]=new Set);for(let h of m.values)p[f].add(h)}}return p});let n=d=>{let p=new I$(["shape","payload","ctx"]),f=r.value,m=S=>{let b=fu(S);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};p.write("const input = payload.value;");let h=Object.create(null),g=0;for(let S of f.keys)h[S]=`key_${g++}`;p.write("const newResult = {}");for(let S of f.keys)if(f.optionalKeys.has(S)){let b=h[S];p.write(`const ${b} = ${m(S)};`);let y=fu(S);p.write(` if (${b}.issues.length) { - if (input[${_}] === undefined) { - if (${_} in input) { - newResult[${_}] = undefined; + if (input[${y}] === undefined) { + if (${y} in input) { + newResult[${y}] = undefined; } } else { payload.issues = payload.issues.concat( ${b}.issues.map((iss) => ({ ...iss, - path: iss.path ? [${_}, ...iss.path] : [${_}], + path: iss.path ? [${y}, ...iss.path] : [${y}], })) ); } } else if (${b}.value === undefined) { - if (${_} in input) newResult[${_}] = undefined; + if (${y} in input) newResult[${y}] = undefined; } else { - newResult[${_}] = ${b}.value; + newResult[${y}] = ${b}.value; } - `)}else{let b=g[x];p.write(`const ${b} = ${f(x)};`),p.write(` + `)}else{let b=h[S];p.write(`const ${b} = ${m(S)};`),p.write(` if (${b}.issues.length) payload.issues = payload.issues.concat(${b}.issues.map(iss => ({ ...iss, - path: iss.path ? [${Pc(x)}, ...iss.path] : [${Pc(x)}] - })));`),p.write(`newResult[${Pc(x)}] = ${b}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let v=p.compile();return(x,b)=>v(d,x,b)},i,s=rp,o=!Ak.jitless,c=o&&X2.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 f=[];if(o&&c&&p?.async===!1&&p.jitless!==!0)i||(i=n(e.shape)),d=i(d,p);else{d.value={};let b=l.shape;for(let _ of l.keys){let S=b[_],w=S._zod.run({value:m[_],issues:[]},p),E=S._zod.optin==="optional"&&S._zod.optout==="optional";w instanceof Promise?f.push(w.then($=>E?WU($,d,_,m):gg($,d,_))):E?WU(w,d,_,m):gg(w,d,_)}}if(!u)return f.length?Promise.all(f).then(()=>d):d;let g=[],h=l.keySet,v=u._zod,x=v.def.type;for(let b of Object.keys(m)){if(h.has(b))continue;if(x==="never"){g.push(b);continue}let _=v.run({value:m[b],issues:[]},p);_ instanceof Promise?f.push(_.then(S=>gg(S,d,b))):gg(_,d,b)}return g.length&&d.issues.push({code:"unrecognized_keys",keys:g,input:m,inst:t}),f.length?Promise.all(f).then(()=>d):d}});function KU(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(s=>ds(s,n,ls())))}),e}var h6=F("$ZodUnion",(t,e)=>{jt.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=>Mg(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let i=!1,s=[];for(let o of e.options){let a=o._zod.run({value:r.value,issues:[]},n);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>KU(o,r,t,n)):KU(s,r,t,n)}}),Jde=F("$ZodDiscriminatedUnion",(t,e)=>{h6.init(t,e);let r=t._zod.parse;Dt(t._zod,"propValues",()=>{let i={};for(let s of e.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let n=Ag(()=>{let i=e.options,s=new Map;for(let o of i){let a=o._zod.propValues[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});t._zod.parse=(i,s)=>{let o=i.value;if(!rp(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let a=n.value.get(o?.[e.discriminator]);return a?a._zod.run(i,s):e.unionFallback?r(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[e.discriminator],inst:t}),i)}}),Xde=F("$ZodIntersection",(t,e)=>{jt.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,s=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>JU(r,c,u)):JU(r,s,o)}});function jk(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(np(t)&&np(e)){let r=Object.keys(e),n=Object.keys(t).filter(s=>r.indexOf(s)!==-1),i={...t,...e};for(let s of n){let o=jk(t[s],e[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{jt.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!np(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let s=[];if(e.keyType._zod.values){let o=e.keyType._zod.values;r.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=e.valueType._zod.run({value:i[c],issues:[]},n);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&r.issues.push(...Hs(c,l.issues)),r.value[c]=l.value})):(u.issues.length&&r.issues.push(...Hs(c,u.issues)),r.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&r.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:a})}else{r.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=e.keyType._zod.run({value:o,issues:[]},n);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=>ds(u,n,ls())),input:o,path:[o],inst:t}),r.value[a.value]=a.value;continue}let c=e.valueType._zod.run({value:i[o],issues:[]},n);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&r.issues.push(...Hs(o,u.issues)),r.value[a.value]=u.value})):(c.issues.length&&r.issues.push(...Hs(o,c.issues)),r.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>r):r}}),Qde=F("$ZodEnum",(t,e)=>{jt.init(t,e);let r=W2(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>Y2.has(typeof n)).map(n=>typeof n=="string"?Xc(n):n.toString()).join("|")})$`),t._zod.parse=(n,i)=>{let s=n.value;return t._zod.values.has(s)||n.issues.push({code:"invalid_value",values:r,input:s,inst:t}),n}}),epe=F("$ZodLiteral",(t,e)=>{jt.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?Xc(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let i=r.value;return t._zod.values.has(i)||r.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),r}}),tpe=F("$ZodTransform",(t,e)=>{jt.init(t,e),t._zod.parse=(r,n)=>{let i=e.transform(r.value,r);if(n.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(r.value=o,r));if(i instanceof Promise)throw new Ho;return r.value=i,r}}),rpe=F("$ZodOptional",(t,e)=>{jt.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(`^(${Mg(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)}),npe=F("$ZodNullable",(t,e)=>{jt.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(`^(${Mg(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)}),ipe=F("$ZodDefault",(t,e)=>{jt.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 i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>XU(s,e)):XU(i,e)}});function XU(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var spe=F("$ZodPrefault",(t,e)=>{jt.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))}),ope=F("$ZodNonOptional",(t,e)=>{jt.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 i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>YU(s,t)):YU(i,t)}});function YU(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 ape=F("$ZodCatch",(t,e)=>{jt.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 i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(o=>ds(o,n,ls()))},input:r.value}),r.issues=[]),r)):(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>ds(s,n,ls()))},input:r.value}),r.issues=[]),r)}}),cpe=F("$ZodPipe",(t,e)=>{jt.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 i=e.in._zod.run(r,n);return i instanceof Promise?i.then(s=>QU(s,e,n)):QU(i,e,n)}});function QU(t,e,r){return Cc(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var upe=F("$ZodReadonly",(t,e)=>{jt.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 i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(e2):e2(i)}});function e2(t){return t.value=Object.freeze(t.value),t}var lpe=F("$ZodCustom",(t,e)=>{cn.init(t,e),jt.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,i=e.fn(n);if(i instanceof Promise)return i.then(s=>t2(s,r,n,t));t2(i,r,n,t)}});function t2(t,e,r,n){if(!t){let i={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(i.params=n._zod.def.params),e.issues.push(t6(i))}}var dpe=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},ppe=()=>{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 ${dpe(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${Wk(n.values[0])}`:`Invalid option: expected one of ${Nk(n.values,"|")}`;case"too_big":{let i=n.inclusive?"<=":"<",s=e(n.origin);return s?`Too big: expected ${n.origin??"value"} to have ${i}${n.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${i}${n.maximum.toString()}`}case"too_small":{let i=n.inclusive?">=":">",s=e(n.origin);return s?`Too small: expected ${n.origin} to have ${i}${n.minimum.toString()} ${s.unit}`:`Too small: expected ${n.origin} to be ${i}${n.minimum.toString()}`}case"invalid_format":{let i=n;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.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":""}: ${Nk(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 mpe(){return{localeError:ppe()}}var zk=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 new 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 fpe(){return new zk}var vg=fpe();function hpe(t,e){return new t({type:"string",...Se(e)})}function gpe(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...Se(e)})}function r2(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...Se(e)})}function vpe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...Se(e)})}function ype(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Se(e)})}function _pe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Se(e)})}function bpe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Se(e)})}function xpe(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...Se(e)})}function Spe(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...Se(e)})}function wpe(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...Se(e)})}function Epe(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...Se(e)})}function kpe(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...Se(e)})}function $pe(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...Se(e)})}function Tpe(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...Se(e)})}function Ipe(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...Se(e)})}function Rpe(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...Se(e)})}function Ope(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...Se(e)})}function Ppe(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Se(e)})}function Cpe(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Se(e)})}function Ape(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...Se(e)})}function Npe(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...Se(e)})}function Mpe(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...Se(e)})}function Dpe(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...Se(e)})}function jpe(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Se(e)})}function zpe(t,e){return new t({type:"string",format:"date",check:"string_format",...Se(e)})}function Lpe(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...Se(e)})}function Upe(t,e){return new t({type:"string",format:"duration",check:"string_format",...Se(e)})}function qpe(t,e){return new t({type:"number",checks:[],...Se(e)})}function Fpe(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...Se(e)})}function Hpe(t,e){return new t({type:"boolean",...Se(e)})}function Zpe(t,e){return new t({type:"null",...Se(e)})}function Bpe(t){return new t({type:"unknown"})}function Vpe(t,e){return new t({type:"never",...Se(e)})}function n2(t,e){return new d6({check:"less_than",...Se(e),value:t,inclusive:!1})}function yk(t,e){return new d6({check:"less_than",...Se(e),value:t,inclusive:!0})}function i2(t,e){return new p6({check:"greater_than",...Se(e),value:t,inclusive:!1})}function _k(t,e){return new p6({check:"greater_than",...Se(e),value:t,inclusive:!0})}function s2(t,e){return new sde({check:"multiple_of",...Se(e),value:t})}function g6(t,e){return new ade({check:"max_length",...Se(e),maximum:t})}function kg(t,e){return new cde({check:"min_length",...Se(e),minimum:t})}function v6(t,e){return new ude({check:"length_equals",...Se(e),length:t})}function Gpe(t,e){return new lde({check:"string_format",format:"regex",...Se(e),pattern:t})}function Wpe(t){return new dde({check:"string_format",format:"lowercase",...Se(t)})}function Kpe(t){return new pde({check:"string_format",format:"uppercase",...Se(t)})}function Jpe(t,e){return new mde({check:"string_format",format:"includes",...Se(e),includes:t})}function Xpe(t,e){return new fde({check:"string_format",format:"starts_with",...Se(e),prefix:t})}function Ype(t,e){return new hde({check:"string_format",format:"ends_with",...Se(e),suffix:t})}function sp(t){return new gde({check:"overwrite",tx:t})}function Qpe(t){return sp(e=>e.normalize(t))}function eme(){return sp(t=>t.trim())}function tme(){return sp(t=>t.toLowerCase())}function rme(){return sp(t=>t.toUpperCase())}function nme(t,e,r){return new t({type:"array",element:e,...Se(r)})}function ime(t,e,r){let n=Se(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function sme(t,e,r){return new t({type:"custom",check:"custom",fn:e,...Se(r)})}var y6={};p2(y6,{time:()=>E6,duration:()=>$6,datetime:()=>b6,date:()=>S6,ZodISOTime:()=>w6,ZodISODuration:()=>k6,ZodISODateTime:()=>_6,ZodISODate:()=>x6});var _6=F("ZodISODateTime",(t,e)=>{Rde.init(t,e),Vt.init(t,e)});function b6(t){return jpe(_6,t)}var x6=F("ZodISODate",(t,e)=>{Ode.init(t,e),Vt.init(t,e)});function S6(t){return zpe(x6,t)}var w6=F("ZodISOTime",(t,e)=>{Pde.init(t,e),Vt.init(t,e)});function E6(t){return Lpe(w6,t)}var k6=F("ZodISODuration",(t,e)=>{Cde.init(t,e),Vt.init(t,e)});function $6(t){return Upe(k6,t)}var T6=(t,e)=>{n6.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>$le(t,r)},flatten:{value:r=>kle(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},sCe=F("ZodError",T6),zg=F("ZodError",T6,{Parent:Error}),ome=Tle(zg),ame=Ile(zg),cme=s6(zg),ume=o6(zg),Bt=F("ZodType",(t,e)=>(jt.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)=>Gs(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>ome(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>cme(t,r,n),t.parseAsync=async(r,n)=>ame(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>ume(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(Qme(r,n)),t.superRefine=r=>t.check(efe(r)),t.overwrite=r=>t.check(sp(r)),t.optional=()=>he(t),t.nullable=()=>c2(t),t.nullish=()=>he(c2(t)),t.nonoptional=r=>Bme(t,r),t.array=()=>it(t),t.or=r=>qt([t,r]),t.and=r=>Jk(t,r),t.transform=r=>Uk(t,N6(r)),t.default=r=>Fme(t,r),t.prefault=r=>Zme(t,r),t.catch=r=>Gme(t,r),t.pipe=r=>Uk(t,r),t.readonly=()=>Jme(t),t.describe=r=>{let n=t.clone();return vg.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return vg.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return vg.get(t);let n=t.clone();return vg.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),I6=F("_ZodString",(t,e)=>{Kk.init(t,e),Bt.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(Gpe(...n)),t.includes=(...n)=>t.check(Jpe(...n)),t.startsWith=(...n)=>t.check(Xpe(...n)),t.endsWith=(...n)=>t.check(Ype(...n)),t.min=(...n)=>t.check(kg(...n)),t.max=(...n)=>t.check(g6(...n)),t.length=(...n)=>t.check(v6(...n)),t.nonempty=(...n)=>t.check(kg(1,...n)),t.lowercase=n=>t.check(Wpe(n)),t.uppercase=n=>t.check(Kpe(n)),t.trim=()=>t.check(eme()),t.normalize=(...n)=>t.check(Qpe(...n)),t.toLowerCase=()=>t.check(tme()),t.toUpperCase=()=>t.check(rme())}),lme=F("ZodString",(t,e)=>{Kk.init(t,e),I6.init(t,e),t.email=r=>t.check(gpe(dme,r)),t.url=r=>t.check(xpe(pme,r)),t.jwt=r=>t.check(Dpe(Tme,r)),t.emoji=r=>t.check(Spe(mme,r)),t.guid=r=>t.check(r2(o2,r)),t.uuid=r=>t.check(vpe(yg,r)),t.uuidv4=r=>t.check(ype(yg,r)),t.uuidv6=r=>t.check(_pe(yg,r)),t.uuidv7=r=>t.check(bpe(yg,r)),t.nanoid=r=>t.check(wpe(fme,r)),t.guid=r=>t.check(r2(o2,r)),t.cuid=r=>t.check(Epe(hme,r)),t.cuid2=r=>t.check(kpe(gme,r)),t.ulid=r=>t.check($pe(vme,r)),t.base64=r=>t.check(Ape(Eme,r)),t.base64url=r=>t.check(Npe(kme,r)),t.xid=r=>t.check(Tpe(yme,r)),t.ksuid=r=>t.check(Ipe(_me,r)),t.ipv4=r=>t.check(Rpe(bme,r)),t.ipv6=r=>t.check(Ope(xme,r)),t.cidrv4=r=>t.check(Ppe(Sme,r)),t.cidrv6=r=>t.check(Cpe(wme,r)),t.e164=r=>t.check(Mpe($me,r)),t.datetime=r=>t.check(b6(r)),t.date=r=>t.check(S6(r)),t.time=r=>t.check(E6(r)),t.duration=r=>t.check($6(r))});function L(t){return hpe(lme,t)}var Vt=F("ZodStringFormat",(t,e)=>{Ut.init(t,e),I6.init(t,e)}),dme=F("ZodEmail",(t,e)=>{bde.init(t,e),Vt.init(t,e)}),o2=F("ZodGUID",(t,e)=>{yde.init(t,e),Vt.init(t,e)}),yg=F("ZodUUID",(t,e)=>{_de.init(t,e),Vt.init(t,e)}),pme=F("ZodURL",(t,e)=>{xde.init(t,e),Vt.init(t,e)}),mme=F("ZodEmoji",(t,e)=>{Sde.init(t,e),Vt.init(t,e)}),fme=F("ZodNanoID",(t,e)=>{wde.init(t,e),Vt.init(t,e)}),hme=F("ZodCUID",(t,e)=>{Ede.init(t,e),Vt.init(t,e)}),gme=F("ZodCUID2",(t,e)=>{kde.init(t,e),Vt.init(t,e)}),vme=F("ZodULID",(t,e)=>{$de.init(t,e),Vt.init(t,e)}),yme=F("ZodXID",(t,e)=>{Tde.init(t,e),Vt.init(t,e)}),_me=F("ZodKSUID",(t,e)=>{Ide.init(t,e),Vt.init(t,e)}),bme=F("ZodIPv4",(t,e)=>{Ade.init(t,e),Vt.init(t,e)}),xme=F("ZodIPv6",(t,e)=>{Nde.init(t,e),Vt.init(t,e)}),Sme=F("ZodCIDRv4",(t,e)=>{Mde.init(t,e),Vt.init(t,e)}),wme=F("ZodCIDRv6",(t,e)=>{Dde.init(t,e),Vt.init(t,e)}),Eme=F("ZodBase64",(t,e)=>{jde.init(t,e),Vt.init(t,e)}),kme=F("ZodBase64URL",(t,e)=>{Lde.init(t,e),Vt.init(t,e)}),$me=F("ZodE164",(t,e)=>{Ude.init(t,e),Vt.init(t,e)}),Tme=F("ZodJWT",(t,e)=>{Fde.init(t,e),Vt.init(t,e)}),R6=F("ZodNumber",(t,e)=>{f6.init(t,e),Bt.init(t,e),t.gt=(n,i)=>t.check(i2(n,i)),t.gte=(n,i)=>t.check(_k(n,i)),t.min=(n,i)=>t.check(_k(n,i)),t.lt=(n,i)=>t.check(n2(n,i)),t.lte=(n,i)=>t.check(yk(n,i)),t.max=(n,i)=>t.check(yk(n,i)),t.int=n=>t.check(a2(n)),t.safe=n=>t.check(a2(n)),t.positive=n=>t.check(i2(0,n)),t.nonnegative=n=>t.check(_k(0,n)),t.negative=n=>t.check(n2(0,n)),t.nonpositive=n=>t.check(yk(0,n)),t.multipleOf=(n,i)=>t.check(s2(n,i)),t.step=(n,i)=>t.check(s2(n,i)),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 Rt(t){return qpe(R6,t)}var Ime=F("ZodNumberFormat",(t,e)=>{Hde.init(t,e),R6.init(t,e)});function a2(t){return Fpe(Ime,t)}var Rme=F("ZodBoolean",(t,e)=>{Zde.init(t,e),Bt.init(t,e)});function Pr(t){return Hpe(Rme,t)}var Ome=F("ZodNull",(t,e)=>{Bde.init(t,e),Bt.init(t,e)});function O6(t){return Zpe(Ome,t)}var Pme=F("ZodUnknown",(t,e)=>{Vde.init(t,e),Bt.init(t,e)});function nr(){return Bpe(Pme)}var Cme=F("ZodNever",(t,e)=>{Gde.init(t,e),Bt.init(t,e)});function Ame(t){return Vpe(Cme,t)}var Nme=F("ZodArray",(t,e)=>{Wde.init(t,e),Bt.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(kg(r,n)),t.nonempty=r=>t.check(kg(1,r)),t.max=(r,n)=>t.check(g6(r,n)),t.length=(r,n)=>t.check(v6(r,n)),t.unwrap=()=>t.element});function it(t,e){return nme(Nme,t,e)}var P6=F("ZodObject",(t,e)=>{Kde.init(t,e),Bt.init(t,e),Mt.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Cr(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:nr()}),t.loose=()=>t.clone({...t._zod.def,catchall:nr()}),t.strict=()=>t.clone({...t._zod.def,catchall:Ame()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>Mt.extend(t,r),t.merge=r=>Mt.merge(t,r),t.pick=r=>Mt.pick(t,r),t.omit=r=>Mt.omit(t,r),t.partial=(...r)=>Mt.partial(M6,t,r[0]),t.required=(...r)=>Mt.required(D6,t,r[0])});function X(t,e){let r={type:"object",get shape(){return Mt.assignProp(this,"shape",{...t}),this.shape},...Mt.normalizeParams(e)};return new P6(r)}function si(t,e){return new P6({type:"object",get shape(){return Mt.assignProp(this,"shape",{...t}),this.shape},catchall:nr(),...Mt.normalizeParams(e)})}var C6=F("ZodUnion",(t,e)=>{h6.init(t,e),Bt.init(t,e),t.options=e.options});function qt(t,e){return new C6({type:"union",options:t,...Mt.normalizeParams(e)})}var Mme=F("ZodDiscriminatedUnion",(t,e)=>{C6.init(t,e),Jde.init(t,e)});function A6(t,e,r){return new Mme({type:"union",options:e,discriminator:t,...Mt.normalizeParams(r)})}var Dme=F("ZodIntersection",(t,e)=>{Xde.init(t,e),Bt.init(t,e)});function Jk(t,e){return new Dme({type:"intersection",left:t,right:e})}var jme=F("ZodRecord",(t,e)=>{Yde.init(t,e),Bt.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function ir(t,e,r){return new jme({type:"record",keyType:t,valueType:e,...Mt.normalizeParams(r)})}var Lk=F("ZodEnum",(t,e)=>{Qde.init(t,e),Bt.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let s={};for(let o of n)if(r.has(o))s[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Lk({...e,checks:[],...Mt.normalizeParams(i),entries:s})},t.exclude=(n,i)=>{let s={...e.entries};for(let o of n)if(r.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new Lk({...e,checks:[],...Mt.normalizeParams(i),entries:s})}});function Cr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Lk({type:"enum",entries:r,...Mt.normalizeParams(e)})}var zme=F("ZodLiteral",(t,e)=>{epe.init(t,e),Bt.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 ge(t,e){return new zme({type:"literal",values:Array.isArray(t)?t:[t],...Mt.normalizeParams(e)})}var Lme=F("ZodTransform",(t,e)=>{tpe.init(t,e),Bt.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=s=>{if(typeof s=="string")r.issues.push(Mt.issue(s,r.value,e));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!0),r.issues.push(Mt.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(s=>(r.value=s,r)):(r.value=i,r)}});function N6(t){return new Lme({type:"transform",transform:t})}var M6=F("ZodOptional",(t,e)=>{rpe.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function he(t){return new M6({type:"optional",innerType:t})}var Ume=F("ZodNullable",(t,e)=>{npe.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function c2(t){return new Ume({type:"nullable",innerType:t})}var qme=F("ZodDefault",(t,e)=>{ipe.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function Fme(t,e){return new qme({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var Hme=F("ZodPrefault",(t,e)=>{spe.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Zme(t,e){return new Hme({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var D6=F("ZodNonOptional",(t,e)=>{ope.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Bme(t,e){return new D6({type:"nonoptional",innerType:t,...Mt.normalizeParams(e)})}var Vme=F("ZodCatch",(t,e)=>{ape.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function Gme(t,e){return new Vme({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var Wme=F("ZodPipe",(t,e)=>{cpe.init(t,e),Bt.init(t,e),t.in=e.in,t.out=e.out});function Uk(t,e){return new Wme({type:"pipe",in:t,out:e})}var Kme=F("ZodReadonly",(t,e)=>{upe.init(t,e),Bt.init(t,e)});function Jme(t){return new Kme({type:"readonly",innerType:t})}var j6=F("ZodCustom",(t,e)=>{lpe.init(t,e),Bt.init(t,e)});function Xme(t,e){let r=new cn({check:"custom",...Mt.normalizeParams(e)});return r._zod.check=t,r}function Yme(t,e){return ime(j6,t??(()=>!0),e)}function Qme(t,e={}){return sme(j6,t,e)}function efe(t,e){let r=Xme(n=>(n.addIssue=i=>{if(typeof i=="string")n.issues.push(Mt.issue(i,n.value,r._zod.def));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=n.value),s.inst??(s.inst=r),s.continue??(s.continue=!r._zod.def.abort),n.issues.push(Mt.issue(s))}},t(n.value,n)),e);return r}function z6(t,e){return Uk(N6(t),e)}ls(mpe());var Xk="io.modelcontextprotocol/related-task",Lg="2.0",Oi=Yme(t=>t!==null&&(typeof t=="object"||typeof t=="function")),L6=qt([L(),Rt().int()]),U6=L(),tfe=si({ttl:qt([Rt(),O6()]).optional(),pollInterval:Rt().optional()}),Yk=si({taskId:L()}),rfe=si({progressToken:L6.optional(),[Xk]:Yk.optional()}),un=si({task:tfe.optional(),_meta:rfe.optional()}),br=X({method:L(),params:un.optional()}),Zo=si({_meta:X({[Xk]:he(Yk)}).passthrough().optional()}),Ln=X({method:L(),params:Zo.optional()}),Ar=si({_meta:si({[Xk]:Yk.optional()}).optional()}),Ug=qt([L(),Rt().int()]),nfe=X({jsonrpc:ge(Lg),id:Ug,...br.shape}).strict();var ife=X({jsonrpc:ge(Lg),...Ln.shape}).strict();var sfe=X({jsonrpc:ge(Lg),id:Ug,result:Ar}).strict();var u2;(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"})(u2||(u2={}));var ofe=X({jsonrpc:ge(Lg),id:Ug,error:X({code:Rt().int(),message:L(),data:he(nr())})}).strict();var oCe=qt([nfe,ife,sfe,ofe]),q6=Ar.strict(),afe=Zo.extend({requestId:Ug,reason:L().optional()}),F6=Ln.extend({method:ge("notifications/cancelled"),params:afe}),cfe=X({src:L(),mimeType:L().optional(),sizes:it(L()).optional()}),op=X({icons:it(cfe).optional()}),Vc=X({name:L(),title:L().optional()}),H6=Vc.extend({...Vc.shape,...op.shape,version:L(),websiteUrl:L().optional()}),ufe=Jk(X({applyDefaults:Pr().optional()}),ir(L(),nr())),lfe=z6(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Jk(X({form:ufe.optional(),url:Oi.optional()}),ir(L(),nr()).optional())),dfe=X({list:he(X({}).passthrough()),cancel:he(X({}).passthrough()),requests:he(X({sampling:he(X({createMessage:he(X({}).passthrough())}).passthrough()),elicitation:he(X({create:he(X({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),pfe=X({list:he(X({}).passthrough()),cancel:he(X({}).passthrough()),requests:he(X({tools:he(X({call:he(X({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),mfe=X({experimental:ir(L(),Oi).optional(),sampling:X({context:Oi.optional(),tools:Oi.optional()}).optional(),elicitation:lfe.optional(),roots:X({listChanged:Pr().optional()}).optional(),tasks:he(dfe)}),ffe=un.extend({protocolVersion:L(),capabilities:mfe,clientInfo:H6}),hfe=br.extend({method:ge("initialize"),params:ffe}),gfe=X({experimental:ir(L(),Oi).optional(),logging:Oi.optional(),completions:Oi.optional(),prompts:he(X({listChanged:he(Pr())})),resources:X({subscribe:Pr().optional(),listChanged:Pr().optional()}).optional(),tools:X({listChanged:Pr().optional()}).optional(),tasks:he(pfe)}).passthrough(),vfe=Ar.extend({protocolVersion:L(),capabilities:gfe,serverInfo:H6,instructions:L().optional()}),yfe=Ln.extend({method:ge("notifications/initialized")}),Z6=br.extend({method:ge("ping")}),_fe=X({progress:Rt(),total:he(Rt()),message:he(L())}),bfe=X({...Zo.shape,..._fe.shape,progressToken:L6}),B6=Ln.extend({method:ge("notifications/progress"),params:bfe}),xfe=un.extend({cursor:U6.optional()}),ap=br.extend({params:xfe.optional()}),cp=Ar.extend({nextCursor:he(U6)}),up=X({taskId:L(),status:Cr(["working","input_required","completed","failed","cancelled"]),ttl:qt([Rt(),O6()]),createdAt:L(),lastUpdatedAt:L(),pollInterval:he(Rt()),statusMessage:he(L())}),V6=Ar.extend({task:up}),Sfe=Zo.merge(up),G6=Ln.extend({method:ge("notifications/tasks/status"),params:Sfe}),W6=br.extend({method:ge("tasks/get"),params:un.extend({taskId:L()})}),K6=Ar.merge(up),J6=br.extend({method:ge("tasks/result"),params:un.extend({taskId:L()})}),X6=ap.extend({method:ge("tasks/list")}),Y6=cp.extend({tasks:it(up)}),aCe=br.extend({method:ge("tasks/cancel"),params:un.extend({taskId:L()})}),cCe=Ar.merge(up),Q6=X({uri:L(),mimeType:he(L()),_meta:ir(L(),nr()).optional()}),eq=Q6.extend({text:L()}),Qk=L().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),tq=Q6.extend({blob:Qk}),Yc=X({audience:it(Cr(["user","assistant"])).optional(),priority:Rt().min(0).max(1).optional(),lastModified:y6.datetime({offset:!0}).optional()}),rq=X({...Vc.shape,...op.shape,uri:L(),description:he(L()),mimeType:he(L()),annotations:Yc.optional(),_meta:he(si({}))}),wfe=X({...Vc.shape,...op.shape,uriTemplate:L(),description:he(L()),mimeType:he(L()),annotations:Yc.optional(),_meta:he(si({}))}),Efe=ap.extend({method:ge("resources/list")}),kfe=cp.extend({resources:it(rq)}),$fe=ap.extend({method:ge("resources/templates/list")}),Tfe=cp.extend({resourceTemplates:it(wfe)}),e$=un.extend({uri:L()}),Ife=e$,Rfe=br.extend({method:ge("resources/read"),params:Ife}),Ofe=Ar.extend({contents:it(qt([eq,tq]))}),Pfe=Ln.extend({method:ge("notifications/resources/list_changed")}),Cfe=e$,Afe=br.extend({method:ge("resources/subscribe"),params:Cfe}),Nfe=e$,Mfe=br.extend({method:ge("resources/unsubscribe"),params:Nfe}),Dfe=Zo.extend({uri:L()}),jfe=Ln.extend({method:ge("notifications/resources/updated"),params:Dfe}),zfe=X({name:L(),description:he(L()),required:he(Pr())}),Lfe=X({...Vc.shape,...op.shape,description:he(L()),arguments:he(it(zfe)),_meta:he(si({}))}),Ufe=ap.extend({method:ge("prompts/list")}),qfe=cp.extend({prompts:it(Lfe)}),Ffe=un.extend({name:L(),arguments:ir(L(),L()).optional()}),Hfe=br.extend({method:ge("prompts/get"),params:Ffe}),t$=X({type:ge("text"),text:L(),annotations:Yc.optional(),_meta:ir(L(),nr()).optional()}),r$=X({type:ge("image"),data:Qk,mimeType:L(),annotations:Yc.optional(),_meta:ir(L(),nr()).optional()}),n$=X({type:ge("audio"),data:Qk,mimeType:L(),annotations:Yc.optional(),_meta:ir(L(),nr()).optional()}),Zfe=X({type:ge("tool_use"),name:L(),id:L(),input:X({}).passthrough(),_meta:he(X({}).passthrough())}).passthrough(),Bfe=X({type:ge("resource"),resource:qt([eq,tq]),annotations:Yc.optional(),_meta:ir(L(),nr()).optional()}),Vfe=rq.extend({type:ge("resource_link")}),i$=qt([t$,r$,n$,Vfe,Bfe]),Gfe=X({role:Cr(["user","assistant"]),content:i$}),Wfe=Ar.extend({description:he(L()),messages:it(Gfe)}),Kfe=Ln.extend({method:ge("notifications/prompts/list_changed")}),Jfe=X({title:L().optional(),readOnlyHint:Pr().optional(),destructiveHint:Pr().optional(),idempotentHint:Pr().optional(),openWorldHint:Pr().optional()}),Xfe=X({taskSupport:Cr(["required","optional","forbidden"]).optional()}),nq=X({...Vc.shape,...op.shape,description:L().optional(),inputSchema:X({type:ge("object"),properties:ir(L(),Oi).optional(),required:it(L()).optional()}).catchall(nr()),outputSchema:X({type:ge("object"),properties:ir(L(),Oi).optional(),required:it(L()).optional()}).catchall(nr()).optional(),annotations:he(Jfe),execution:he(Xfe),_meta:ir(L(),nr()).optional()}),Yfe=ap.extend({method:ge("tools/list")}),Qfe=cp.extend({tools:it(nq)}),iq=Ar.extend({content:it(i$).default([]),structuredContent:ir(L(),nr()).optional(),isError:he(Pr())}),uCe=iq.or(Ar.extend({toolResult:nr()})),ehe=un.extend({name:L(),arguments:he(ir(L(),nr()))}),the=br.extend({method:ge("tools/call"),params:ehe}),rhe=Ln.extend({method:ge("notifications/tools/list_changed")}),sq=Cr(["debug","info","notice","warning","error","critical","alert","emergency"]),nhe=un.extend({level:sq}),ihe=br.extend({method:ge("logging/setLevel"),params:nhe}),she=Zo.extend({level:sq,logger:L().optional(),data:nr()}),ohe=Ln.extend({method:ge("notifications/message"),params:she}),ahe=X({name:L().optional()}),che=X({hints:he(it(ahe)),costPriority:he(Rt().min(0).max(1)),speedPriority:he(Rt().min(0).max(1)),intelligencePriority:he(Rt().min(0).max(1))}),uhe=X({mode:he(Cr(["auto","required","none"]))}),lhe=X({type:ge("tool_result"),toolUseId:L().describe("The unique identifier for the corresponding tool call."),content:it(i$).default([]),structuredContent:X({}).passthrough().optional(),isError:he(Pr()),_meta:he(X({}).passthrough())}).passthrough(),dhe=A6("type",[t$,r$,n$]),$g=A6("type",[t$,r$,n$,Zfe,lhe]),phe=X({role:Cr(["user","assistant"]),content:qt([$g,it($g)]),_meta:he(X({}).passthrough())}).passthrough(),mhe=un.extend({messages:it(phe),modelPreferences:che.optional(),systemPrompt:L().optional(),includeContext:Cr(["none","thisServer","allServers"]).optional(),temperature:Rt().optional(),maxTokens:Rt().int(),stopSequences:it(L()).optional(),metadata:Oi.optional(),tools:he(it(nq)),toolChoice:he(uhe)}),fhe=br.extend({method:ge("sampling/createMessage"),params:mhe}),hhe=Ar.extend({model:L(),stopReason:he(Cr(["endTurn","stopSequence","maxTokens"]).or(L())),role:Cr(["user","assistant"]),content:dhe}),ghe=Ar.extend({model:L(),stopReason:he(Cr(["endTurn","stopSequence","maxTokens","toolUse"]).or(L())),role:Cr(["user","assistant"]),content:qt([$g,it($g)])}),vhe=X({type:ge("boolean"),title:L().optional(),description:L().optional(),default:Pr().optional()}),yhe=X({type:ge("string"),title:L().optional(),description:L().optional(),minLength:Rt().optional(),maxLength:Rt().optional(),format:Cr(["email","uri","date","date-time"]).optional(),default:L().optional()}),_he=X({type:Cr(["number","integer"]),title:L().optional(),description:L().optional(),minimum:Rt().optional(),maximum:Rt().optional(),default:Rt().optional()}),bhe=X({type:ge("string"),title:L().optional(),description:L().optional(),enum:it(L()),default:L().optional()}),xhe=X({type:ge("string"),title:L().optional(),description:L().optional(),oneOf:it(X({const:L(),title:L()})),default:L().optional()}),She=X({type:ge("string"),title:L().optional(),description:L().optional(),enum:it(L()),enumNames:it(L()).optional(),default:L().optional()}),whe=qt([bhe,xhe]),Ehe=X({type:ge("array"),title:L().optional(),description:L().optional(),minItems:Rt().optional(),maxItems:Rt().optional(),items:X({type:ge("string"),enum:it(L())}),default:it(L()).optional()}),khe=X({type:ge("array"),title:L().optional(),description:L().optional(),minItems:Rt().optional(),maxItems:Rt().optional(),items:X({anyOf:it(X({const:L(),title:L()}))}),default:it(L()).optional()}),$he=qt([Ehe,khe]),The=qt([She,whe,$he]),Ihe=qt([The,vhe,yhe,_he]),Rhe=un.extend({mode:ge("form").optional(),message:L(),requestedSchema:X({type:ge("object"),properties:ir(L(),Ihe),required:it(L()).optional()})}),Ohe=un.extend({mode:ge("url"),message:L(),elicitationId:L(),url:L().url()}),Phe=qt([Rhe,Ohe]),Che=br.extend({method:ge("elicitation/create"),params:Phe}),Ahe=Zo.extend({elicitationId:L()}),Nhe=Ln.extend({method:ge("notifications/elicitation/complete"),params:Ahe}),Mhe=Ar.extend({action:Cr(["accept","decline","cancel"]),content:z6(t=>t===null?void 0:t,ir(L(),qt([L(),Rt(),Pr(),it(L())])).optional())}),Dhe=X({type:ge("ref/resource"),uri:L()}),jhe=X({type:ge("ref/prompt"),name:L()}),zhe=un.extend({ref:qt([jhe,Dhe]),argument:X({name:L(),value:L()}),context:X({arguments:ir(L(),L()).optional()}).optional()}),Lhe=br.extend({method:ge("completion/complete"),params:zhe});var Uhe=Ar.extend({completion:si({values:it(L()).max(100),total:he(Rt().int()),hasMore:he(Pr())})}),qhe=X({uri:L().startsWith("file://"),name:L().optional(),_meta:ir(L(),nr()).optional()}),Fhe=br.extend({method:ge("roots/list")}),Hhe=Ar.extend({roots:it(qhe)}),Zhe=Ln.extend({method:ge("notifications/roots/list_changed")}),lCe=qt([Z6,hfe,Lhe,ihe,Hfe,Ufe,Efe,$fe,Rfe,Afe,Mfe,the,Yfe,W6,J6,X6]),dCe=qt([F6,B6,yfe,Zhe,G6]),pCe=qt([q6,hhe,ghe,Mhe,Hhe,K6,Y6,V6]),mCe=qt([Z6,fhe,Che,Fhe,W6,J6,X6]),fCe=qt([F6,B6,ohe,jfe,Pfe,rhe,Kfe,G6,Nhe]),hCe=qt([q6,vfe,Uhe,Wfe,qfe,kfe,Tfe,Ofe,iq,Qfe,K6,Y6,V6]);var gCe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var vCe=d2(_2(),1),yCe=d2(Eae(),1);var l2;(function(t){t.Completable="McpCompletable"})(l2||(l2={}));function oq({prompt:t,options:e}){let{systemPrompt:r,settingSources:n,sandbox:i,...s}=e??{},o,a;r===void 0?o="":typeof r=="string"?o=r:r.type==="preset"&&(a=r.append);let c=s.pathToClaudeCodeExecutable;if(!c){let J=(0,b2.fileURLToPath)(Bhe.url),ue=(0,xk.join)(J,"..");c=(0,xk.join)(ue,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=S2(),additionalDirectories:l=[],agents:d,allowedTools:p=[],betas:m,canUseTool:f,continue:g,cwd:h,disallowedTools:v=[],tools:x,env:b,executable:_=F2()?"bun":"node",executableArgs:S=[],extraArgs:w={},fallbackModel:E,enableFileCheckpointing:$,forkSession:R,hooks:A,includePartialMessages:N,persistSession:U,maxThinkingTokens:W,maxTurns:j,maxBudgetUsd:ae,mcpServers:Ne,model:ze,outputFormat:kt,permissionMode:Ve="default",allowDangerouslySkipPermissions:K=!1,permissionPromptToolName:P,plugins:H,resume:M,resumeSessionAt:k,stderr:I,strictMcpConfig:q}=s,le=kt?.type==="json_schema"?kt.schema:void 0,ce=b;if(ce||(ce={...process.env}),ce.CLAUDE_CODE_ENTRYPOINT||(ce.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),$&&(ce.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let et={},Xe=new Map;if(Ne)for(let[J,ue]of Object.entries(Ne))ue.type==="sdk"&&"instance"in ue?(Xe.set(J,ue.instance),et[J]={type:"sdk",name:J}):et[J]=ue;let Ft=typeof t=="string",C=new wk({abortController:u,additionalDirectories:l,betas:m,cwd:h,executable:_,executableArgs:S,extraArgs:w,pathToClaudeCodeExecutable:c,env:ce,forkSession:R,stderr:I,maxThinkingTokens:W,maxTurns:j,maxBudgetUsd:ae,model:ze,fallbackModel:E,jsonSchema:le,permissionMode:Ve,allowDangerouslySkipPermissions:K,permissionPromptToolName:P,continueConversation:g,resume:M,resumeSessionAt:k,settingSources:n??[],allowedTools:p,disallowedTools:v,tools:x,mcpServers:et,strictMcpConfig:q,canUseTool:!!f,hooks:!!A,includePartialMessages:N,persistSession:U,plugins:H,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),D={systemPrompt:o,appendSystemPrompt:a,agents:d},Z=new $k(C,Ft,f,A,u,Xe,le,D);return typeof t=="string"?C.write(Ri({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null})+` -`):Z.streamInput(t),Z}var qg=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let n={lastCwd:void 0},i=this.findClaudeExecutable(),s=this.getModelId(),o=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"],a=this.createMessageGenerator(e,n),c=!!e.memorySessionId,u=c&&e.lastPromptNumber>1&&!e.forceInit;e.forceInit&&(y.info("SDK","forceInit flag set, starting fresh SDK session",{sessionDbId:e.sessionDbId,previousMemorySessionId:e.memorySessionId}),e.forceInit=!1);let l=_e.loadFromFile(At),d=parseInt(l.CLAUDE_MEM_MAX_CONCURRENT_AGENTS,10)||2;await EU(d);let p=vi(mA()),m=zf();if(y.info("SDK","Starting SDK query",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,hasRealMemorySessionId:c,shouldResume:u,resume_parameter:u?e.memorySessionId:"(none - fresh start)",lastPromptNumber:e.lastPromptNumber,authMethod:m}),e.lastPromptNumber>1)y.debug("SDK",`[ALIGNMENT] Resume Decision | contentSessionId=${e.contentSessionId} | memorySessionId=${e.memorySessionId} | prompt#=${e.lastPromptNumber} | hasRealMemorySessionId=${c} | shouldResume=${u} | resumeWith=${u?e.memorySessionId:"NONE"}`);else{let h=c;y.debug("SDK",`[ALIGNMENT] First Prompt (INIT) | contentSessionId=${e.contentSessionId} | prompt#=${e.lastPromptNumber} | hasStaleMemoryId=${h} | action=START_FRESH | Will capture new memorySessionId from SDK response`),h&&y.warn("SDK",`Skipping resume for INIT prompt despite existing memorySessionId=${e.memorySessionId} - SDK context was lost (worker restart or crash recovery)`)}Ir(Df);let f=oq({prompt:a,options:{model:s,cwd:Df,...u&&{resume:e.memorySessionId},disallowedTools:o,abortController:e.abortController,pathToClaudeCodeExecutable:i,spawnClaudeCodeProcess:kU(e.sessionDbId),env:p}});try{for await(let h of f){if(h.session_id&&h.session_id!==e.memorySessionId){let v=e.memorySessionId;e.memorySessionId=h.session_id,this.dbManager.getSessionStore().ensureMemorySessionIdRegistered(e.sessionDbId,h.session_id);let x=this.dbManager.getSessionStore().getSessionById(e.sessionDbId),b=x?.memory_session_id===h.session_id,_=v?`MEMORY_ID_CHANGED | sessionDbId=${e.sessionDbId} | from=${v} | to=${h.session_id} | dbVerified=${b}`:`MEMORY_ID_CAPTURED | sessionDbId=${e.sessionDbId} | memorySessionId=${h.session_id} | dbVerified=${b}`;y.info("SESSION",_,{sessionId:e.sessionDbId,memorySessionId:h.session_id,previousId:v}),b||y.error("SESSION",`MEMORY_ID_MISMATCH | sessionDbId=${e.sessionDbId} | expected=${h.session_id} | got=${x?.memory_session_id}`,{sessionId:e.sessionDbId}),y.debug("SDK",`[ALIGNMENT] ${v?"Updated":"Captured"} | contentSessionId=${e.contentSessionId} \u2192 memorySessionId=${h.session_id} | Future prompts will resume with this ID`)}if(h.type==="assistant"){let v=h.message.content,x=Array.isArray(v)?v.filter($=>$.type==="text").map($=>$.text).join(` -`):typeof v=="string"?v:"";if(x.includes("prompt is too long")||x.includes("context window")){y.error("SDK","Context overflow detected - terminating session"),e.abortController.abort();return}let b=x.length,_=e.cumulativeInputTokens+e.cumulativeOutputTokens,S=h.message.usage;S&&(e.cumulativeInputTokens+=S.input_tokens||0,e.cumulativeOutputTokens+=S.output_tokens||0,S.cache_creation_input_tokens&&(e.cumulativeInputTokens+=S.cache_creation_input_tokens),y.debug("SDK","Token usage captured",{sessionId:e.sessionDbId,inputTokens:S.input_tokens,outputTokens:S.output_tokens,cacheCreation:S.cache_creation_input_tokens||0,cacheRead:S.cache_read_input_tokens||0,cumulativeInput:e.cumulativeInputTokens,cumulativeOutput:e.cumulativeOutputTokens}));let w=e.cumulativeInputTokens+e.cumulativeOutputTokens-_,E=e.earliestPendingTimestamp;if(b>0){let $=b>100?x.substring(0,100)+"...":x;y.dataOut("SDK",`Response received (${b} chars)`,{sessionId:e.sessionDbId,promptNumber:e.lastPromptNumber},$)}if(typeof x=="string"&&x.includes("Prompt is too long"))throw new Error("Claude session context overflow: prompt is too long");if(typeof x=="string"&&x.includes("Invalid API key"))throw new Error("Invalid API key: check your API key configuration in ~/.claude-mem/settings.json or ~/.claude-mem/.env");await ri(x,e,this.dbManager,this.sessionManager,r,w,E,"SDK",n.lastCwd)}h.type==="result"&&h.subtype}}finally{let h=Us(e.sessionDbId);h&&h.process.exitCode===null&&await qs(h,5e3)}let g=Date.now()-e.startTime;y.success("SDK","Agent completed",{sessionId:e.sessionDbId,duration:`${(g/1e3).toFixed(1)}s`})}async*createMessageGenerator(e,r){let n=He.getInstance().getActiveMode(),i=e.lastPromptNumber===1;y.info("SDK","Creating message generator",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,lastPromptNumber:e.lastPromptNumber,isInitPrompt:i,promptType:i?"INIT":"CONTINUATION"});let s=i?kc(e.project,e.contentSessionId,e.userPrompt,n):Ic(e.userPrompt,e.lastPromptNumber,e.contentSessionId,n);e.conversationHistory.push({role:"user",content:s}),yield{type:"user",message:{role:"user",content:s},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0};for await(let o of this.sessionManager.getMessageIterator(e.sessionDbId))if(e.processingMessageIds.push(o._persistentId),o.cwd&&(r.lastCwd=o.cwd),o.type==="observation"){o.prompt_number!==void 0&&(e.lastPromptNumber=o.prompt_number);let a=$c({id:0,tool_name:o.tool_name,tool_input:JSON.stringify(o.tool_input),tool_output:JSON.stringify(o.tool_response),created_at_epoch:Date.now(),cwd:o.cwd});e.conversationHistory.push({role:"user",content:a}),yield{type:"user",message:{role:"user",content:a},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}else if(o.type==="summarize"){let a=Tc({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:o.last_assistant_message||""},n);e.conversationHistory.push({role:"user",content:a}),yield{type:"user",message:{role:"user",content:a},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}}findClaudeExecutable(){let e=_e.loadFromFile(At);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}if(process.platform==="win32")try{return(0,s$.execSync)("where claude.cmd",{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}),"claude.cmd"}catch{}try{let r=(0,s$.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){y.debug("SDK","Claude executable auto-detection failed",{},r)}throw new Error(`Claude executable not found. Please either: + path: iss.path ? [${fu(S)}, ...iss.path] : [${fu(S)}] + })));`),p.write(`newResult[${fu(S)}] = ${b}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let v=p.compile();return(S,b)=>v(d,S,b)},i,s=Vp,o=!k$.jitless,c=o&&nq.value,u=e.catchall,l;t._zod.parse=(d,p)=>{l??(l=r.value);let f=d.value;if(!s(f))return d.issues.push({expected:"object",code:"invalid_type",input:f,inst:t}),d;let m=[];if(o&&c&&p?.async===!1&&p.jitless!==!0)i||(i=n(e.shape)),d=i(d,p);else{d.value={};let b=l.shape;for(let y of l.keys){let x=b[y],w=x._zod.run({value:f[y],issues:[]},p),E=x._zod.optin==="optional"&&x._zod.optout==="optional";w instanceof Promise?m.push(w.then(T=>E?eF(T,d,y,f):Pv(T,d,y))):E?eF(w,d,y,f):Pv(w,d,y)}}if(!u)return m.length?Promise.all(m).then(()=>d):d;let h=[],g=l.keySet,v=u._zod,S=v.def.type;for(let b of Object.keys(f)){if(g.has(b))continue;if(S==="never"){h.push(b);continue}let y=v.run({value:f[b],issues:[]},p);y instanceof Promise?m.push(y.then(x=>Pv(x,d,b))):Pv(y,d,b)}return h.length&&d.issues.push({code:"unrecognized_keys",keys:h,input:f,inst:t}),m.length?Promise.all(m).then(()=>d):d}});function tF(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(s=>js(s,n,Ds())))}),e}var Sq=q("$ZodUnion",(t,e)=>{Mt.init(t,e),Nt(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),Nt(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),Nt(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),Nt(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=>Xv(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let i=!1,s=[];for(let o of e.options){let a=o._zod.run({value:r.value,issues:[]},n);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>tF(o,r,t,n)):tF(s,r,t,n)}}),mhe=q("$ZodDiscriminatedUnion",(t,e)=>{Sq.init(t,e);let r=t._zod.parse;Nt(t._zod,"propValues",()=>{let i={};for(let s of e.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let n=Kv(()=>{let i=e.options,s=new Map;for(let o of i){let a=o._zod.propValues[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});t._zod.parse=(i,s)=>{let o=i.value;if(!Vp(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let a=n.value.get(o?.[e.discriminator]);return a?a._zod.run(i,s):e.unionFallback?r(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[e.discriminator],inst:t}),i)}}),hhe=q("$ZodIntersection",(t,e)=>{Mt.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,s=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>rF(r,c,u)):rF(r,s,o)}});function R$(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(Kp(t)&&Kp(e)){let r=Object.keys(e),n=Object.keys(t).filter(s=>r.indexOf(s)!==-1),i={...t,...e};for(let s of n){let o=R$(t[s],e[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{Mt.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Kp(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let s=[];if(e.keyType._zod.values){let o=e.keyType._zod.values;r.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=e.valueType._zod.run({value:i[c],issues:[]},n);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&r.issues.push(..._o(c,l.issues)),r.value[c]=l.value})):(u.issues.length&&r.issues.push(..._o(c,u.issues)),r.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&r.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:a})}else{r.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=e.keyType._zod.run({value:o,issues:[]},n);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=>js(u,n,Ds())),input:o,path:[o],inst:t}),r.value[a.value]=a.value;continue}let c=e.valueType._zod.run({value:i[o],issues:[]},n);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&r.issues.push(..._o(o,u.issues)),r.value[a.value]=u.value})):(c.issues.length&&r.issues.push(..._o(o,c.issues)),r.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>r):r}}),vhe=q("$ZodEnum",(t,e)=>{Mt.init(t,e);let r=eq(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>iq.has(typeof n)).map(n=>typeof n=="string"?Au(n):n.toString()).join("|")})$`),t._zod.parse=(n,i)=>{let s=n.value;return t._zod.values.has(s)||n.issues.push({code:"invalid_value",values:r,input:s,inst:t}),n}}),yhe=q("$ZodLiteral",(t,e)=>{Mt.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?Au(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let i=r.value;return t._zod.values.has(i)||r.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),r}}),_he=q("$ZodTransform",(t,e)=>{Mt.init(t,e),t._zod.parse=(r,n)=>{let i=e.transform(r.value,r);if(n.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(r.value=o,r));if(i instanceof Promise)throw new Sa;return r.value=i,r}}),bhe=q("$ZodOptional",(t,e)=>{Mt.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Nt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Nt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Xv(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)}),She=q("$ZodNullable",(t,e)=>{Mt.init(t,e),Nt(t._zod,"optin",()=>e.innerType._zod.optin),Nt(t._zod,"optout",()=>e.innerType._zod.optout),Nt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Xv(r.source)}|null)$`):void 0}),Nt(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)}),xhe=q("$ZodDefault",(t,e)=>{Mt.init(t,e),t._zod.optin="optional",Nt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>nF(s,e)):nF(i,e)}});function nF(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var whe=q("$ZodPrefault",(t,e)=>{Mt.init(t,e),t._zod.optin="optional",Nt(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))}),Ehe=q("$ZodNonOptional",(t,e)=>{Mt.init(t,e),Nt(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 i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>iF(s,t)):iF(i,t)}});function iF(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 khe=q("$ZodCatch",(t,e)=>{Mt.init(t,e),t._zod.optin="optional",Nt(t._zod,"optout",()=>e.innerType._zod.optout),Nt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(o=>js(o,n,Ds()))},input:r.value}),r.issues=[]),r)):(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(s=>js(s,n,Ds()))},input:r.value}),r.issues=[]),r)}}),The=q("$ZodPipe",(t,e)=>{Mt.init(t,e),Nt(t._zod,"values",()=>e.in._zod.values),Nt(t._zod,"optin",()=>e.in._zod.optin),Nt(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let i=e.in._zod.run(r,n);return i instanceof Promise?i.then(s=>sF(s,e,n)):sF(i,e,n)}});function sF(t,e,r){return mu(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var $he=q("$ZodReadonly",(t,e)=>{Mt.init(t,e),Nt(t._zod,"propValues",()=>e.innerType._zod.propValues),Nt(t._zod,"values",()=>e.innerType._zod.values),Nt(t._zod,"optin",()=>e.innerType._zod.optin),Nt(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(oF):oF(i)}});function oF(t){return t.value=Object.freeze(t.value),t}var Ihe=q("$ZodCustom",(t,e)=>{vn.init(t,e),Mt.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,i=e.fn(n);if(i instanceof Promise)return i.then(s=>aF(s,r,n,t));aF(i,r,n,t)}});function aF(t,e,r,n){if(!t){let i={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(i.params=n._zod.def.params),e.issues.push(aq(i))}}var Rhe=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},Ohe=()=>{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 ${Rhe(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${U$(n.values[0])}`:`Invalid option: expected one of ${T$(n.values,"|")}`;case"too_big":{let i=n.inclusive?"<=":"<",s=e(n.origin);return s?`Too big: expected ${n.origin??"value"} to have ${i}${n.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${i}${n.maximum.toString()}`}case"too_small":{let i=n.inclusive?">=":">",s=e(n.origin);return s?`Too small: expected ${n.origin} to have ${i}${n.minimum.toString()} ${s.unit}`:`Too small: expected ${n.origin} to be ${i}${n.minimum.toString()}`}case"invalid_format":{let i=n;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.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":""}: ${T$(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 Che(){return{localeError:Ohe()}}var O$=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 new 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 Phe(){return new O$}var Av=Phe();function Ahe(t,e){return new t({type:"string",...xe(e)})}function Nhe(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...xe(e)})}function cF(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...xe(e)})}function Mhe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...xe(e)})}function Dhe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...xe(e)})}function jhe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...xe(e)})}function zhe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...xe(e)})}function Lhe(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...xe(e)})}function Uhe(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...xe(e)})}function Fhe(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...xe(e)})}function qhe(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...xe(e)})}function Hhe(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...xe(e)})}function Zhe(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...xe(e)})}function Bhe(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...xe(e)})}function Ghe(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...xe(e)})}function Whe(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...xe(e)})}function Vhe(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...xe(e)})}function Khe(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...xe(e)})}function Jhe(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...xe(e)})}function Xhe(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...xe(e)})}function Yhe(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...xe(e)})}function Qhe(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...xe(e)})}function ege(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...xe(e)})}function tge(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...xe(e)})}function rge(t,e){return new t({type:"string",format:"date",check:"string_format",...xe(e)})}function nge(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...xe(e)})}function ige(t,e){return new t({type:"string",format:"duration",check:"string_format",...xe(e)})}function sge(t,e){return new t({type:"number",checks:[],...xe(e)})}function oge(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...xe(e)})}function age(t,e){return new t({type:"boolean",...xe(e)})}function cge(t,e){return new t({type:"null",...xe(e)})}function uge(t){return new t({type:"unknown"})}function lge(t,e){return new t({type:"never",...xe(e)})}function uF(t,e){return new vq({check:"less_than",...xe(e),value:t,inclusive:!1})}function l$(t,e){return new vq({check:"less_than",...xe(e),value:t,inclusive:!0})}function lF(t,e){return new yq({check:"greater_than",...xe(e),value:t,inclusive:!1})}function d$(t,e){return new yq({check:"greater_than",...xe(e),value:t,inclusive:!0})}function dF(t,e){return new wme({check:"multiple_of",...xe(e),value:t})}function xq(t,e){return new kme({check:"max_length",...xe(e),maximum:t})}function Fv(t,e){return new Tme({check:"min_length",...xe(e),minimum:t})}function wq(t,e){return new $me({check:"length_equals",...xe(e),length:t})}function dge(t,e){return new Ime({check:"string_format",format:"regex",...xe(e),pattern:t})}function pge(t){return new Rme({check:"string_format",format:"lowercase",...xe(t)})}function fge(t){return new Ome({check:"string_format",format:"uppercase",...xe(t)})}function mge(t,e){return new Cme({check:"string_format",format:"includes",...xe(e),includes:t})}function hge(t,e){return new Pme({check:"string_format",format:"starts_with",...xe(e),prefix:t})}function gge(t,e){return new Ame({check:"string_format",format:"ends_with",...xe(e),suffix:t})}function Xp(t){return new Nme({check:"overwrite",tx:t})}function vge(t){return Xp(e=>e.normalize(t))}function yge(){return Xp(t=>t.trim())}function _ge(){return Xp(t=>t.toLowerCase())}function bge(){return Xp(t=>t.toUpperCase())}function Sge(t,e,r){return new t({type:"array",element:e,...xe(r)})}function xge(t,e,r){let n=xe(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function wge(t,e,r){return new t({type:"custom",check:"custom",fn:e,...xe(r)})}var Eq={};yF(Eq,{time:()=>Oq,duration:()=>Pq,datetime:()=>Tq,date:()=>Iq,ZodISOTime:()=>Rq,ZodISODuration:()=>Cq,ZodISODateTime:()=>kq,ZodISODate:()=>$q});var kq=q("ZodISODateTime",(t,e)=>{Wme.init(t,e),Gt.init(t,e)});function Tq(t){return tge(kq,t)}var $q=q("ZodISODate",(t,e)=>{Vme.init(t,e),Gt.init(t,e)});function Iq(t){return rge($q,t)}var Rq=q("ZodISOTime",(t,e)=>{Kme.init(t,e),Gt.init(t,e)});function Oq(t){return nge(Rq,t)}var Cq=q("ZodISODuration",(t,e)=>{Jme.init(t,e),Gt.init(t,e)});function Pq(t){return ige(Cq,t)}var Aq=(t,e)=>{uq.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Zfe(t,r)},flatten:{value:r=>Hfe(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},XDe=q("ZodError",Aq),ey=q("ZodError",Aq,{Parent:Error}),Ege=Bfe(ey),kge=Gfe(ey),Tge=dq(ey),$ge=pq(ey),Bt=q("ZodType",(t,e)=>(Mt.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)=>wo(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>Ege(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Tge(t,r,n),t.parseAsync=async(r,n)=>kge(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>$ge(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(vve(r,n)),t.superRefine=r=>t.check(yve(r)),t.overwrite=r=>t.check(Xp(r)),t.optional=()=>he(t),t.nullable=()=>mF(t),t.nullish=()=>he(mF(t)),t.nonoptional=r=>uve(t,r),t.array=()=>nt(t),t.or=r=>Ft([t,r]),t.and=r=>q$(t,r),t.transform=r=>P$(t,Uq(r)),t.default=r=>ove(t,r),t.prefault=r=>cve(t,r),t.catch=r=>dve(t,r),t.pipe=r=>P$(t,r),t.readonly=()=>mve(t),t.describe=r=>{let n=t.clone();return Av.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Av.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Av.get(t);let n=t.clone();return Av.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),Nq=q("_ZodString",(t,e)=>{F$.init(t,e),Bt.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(dge(...n)),t.includes=(...n)=>t.check(mge(...n)),t.startsWith=(...n)=>t.check(hge(...n)),t.endsWith=(...n)=>t.check(gge(...n)),t.min=(...n)=>t.check(Fv(...n)),t.max=(...n)=>t.check(xq(...n)),t.length=(...n)=>t.check(wq(...n)),t.nonempty=(...n)=>t.check(Fv(1,...n)),t.lowercase=n=>t.check(pge(n)),t.uppercase=n=>t.check(fge(n)),t.trim=()=>t.check(yge()),t.normalize=(...n)=>t.check(vge(...n)),t.toLowerCase=()=>t.check(_ge()),t.toUpperCase=()=>t.check(bge())}),Ige=q("ZodString",(t,e)=>{F$.init(t,e),Nq.init(t,e),t.email=r=>t.check(Nhe(Rge,r)),t.url=r=>t.check(Lhe(Oge,r)),t.jwt=r=>t.check(ege(Bge,r)),t.emoji=r=>t.check(Uhe(Cge,r)),t.guid=r=>t.check(cF(pF,r)),t.uuid=r=>t.check(Mhe(Nv,r)),t.uuidv4=r=>t.check(Dhe(Nv,r)),t.uuidv6=r=>t.check(jhe(Nv,r)),t.uuidv7=r=>t.check(zhe(Nv,r)),t.nanoid=r=>t.check(Fhe(Pge,r)),t.guid=r=>t.check(cF(pF,r)),t.cuid=r=>t.check(qhe(Age,r)),t.cuid2=r=>t.check(Hhe(Nge,r)),t.ulid=r=>t.check(Zhe(Mge,r)),t.base64=r=>t.check(Xhe(qge,r)),t.base64url=r=>t.check(Yhe(Hge,r)),t.xid=r=>t.check(Bhe(Dge,r)),t.ksuid=r=>t.check(Ghe(jge,r)),t.ipv4=r=>t.check(Whe(zge,r)),t.ipv6=r=>t.check(Vhe(Lge,r)),t.cidrv4=r=>t.check(Khe(Uge,r)),t.cidrv6=r=>t.check(Jhe(Fge,r)),t.e164=r=>t.check(Qhe(Zge,r)),t.datetime=r=>t.check(Tq(r)),t.date=r=>t.check(Iq(r)),t.time=r=>t.check(Oq(r)),t.duration=r=>t.check(Pq(r))});function L(t){return Ahe(Ige,t)}var Gt=q("ZodStringFormat",(t,e)=>{Ut.init(t,e),Nq.init(t,e)}),Rge=q("ZodEmail",(t,e)=>{zme.init(t,e),Gt.init(t,e)}),pF=q("ZodGUID",(t,e)=>{Dme.init(t,e),Gt.init(t,e)}),Nv=q("ZodUUID",(t,e)=>{jme.init(t,e),Gt.init(t,e)}),Oge=q("ZodURL",(t,e)=>{Lme.init(t,e),Gt.init(t,e)}),Cge=q("ZodEmoji",(t,e)=>{Ume.init(t,e),Gt.init(t,e)}),Pge=q("ZodNanoID",(t,e)=>{Fme.init(t,e),Gt.init(t,e)}),Age=q("ZodCUID",(t,e)=>{qme.init(t,e),Gt.init(t,e)}),Nge=q("ZodCUID2",(t,e)=>{Hme.init(t,e),Gt.init(t,e)}),Mge=q("ZodULID",(t,e)=>{Zme.init(t,e),Gt.init(t,e)}),Dge=q("ZodXID",(t,e)=>{Bme.init(t,e),Gt.init(t,e)}),jge=q("ZodKSUID",(t,e)=>{Gme.init(t,e),Gt.init(t,e)}),zge=q("ZodIPv4",(t,e)=>{Xme.init(t,e),Gt.init(t,e)}),Lge=q("ZodIPv6",(t,e)=>{Yme.init(t,e),Gt.init(t,e)}),Uge=q("ZodCIDRv4",(t,e)=>{Qme.init(t,e),Gt.init(t,e)}),Fge=q("ZodCIDRv6",(t,e)=>{ehe.init(t,e),Gt.init(t,e)}),qge=q("ZodBase64",(t,e)=>{the.init(t,e),Gt.init(t,e)}),Hge=q("ZodBase64URL",(t,e)=>{nhe.init(t,e),Gt.init(t,e)}),Zge=q("ZodE164",(t,e)=>{ihe.init(t,e),Gt.init(t,e)}),Bge=q("ZodJWT",(t,e)=>{ohe.init(t,e),Gt.init(t,e)}),Mq=q("ZodNumber",(t,e)=>{bq.init(t,e),Bt.init(t,e),t.gt=(n,i)=>t.check(lF(n,i)),t.gte=(n,i)=>t.check(d$(n,i)),t.min=(n,i)=>t.check(d$(n,i)),t.lt=(n,i)=>t.check(uF(n,i)),t.lte=(n,i)=>t.check(l$(n,i)),t.max=(n,i)=>t.check(l$(n,i)),t.int=n=>t.check(fF(n)),t.safe=n=>t.check(fF(n)),t.positive=n=>t.check(lF(0,n)),t.nonnegative=n=>t.check(d$(0,n)),t.negative=n=>t.check(uF(0,n)),t.nonpositive=n=>t.check(l$(0,n)),t.multipleOf=(n,i)=>t.check(dF(n,i)),t.step=(n,i)=>t.check(dF(n,i)),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 Rt(t){return sge(Mq,t)}var Gge=q("ZodNumberFormat",(t,e)=>{ahe.init(t,e),Mq.init(t,e)});function fF(t){return oge(Gge,t)}var Wge=q("ZodBoolean",(t,e)=>{che.init(t,e),Bt.init(t,e)});function jr(t){return age(Wge,t)}var Vge=q("ZodNull",(t,e)=>{uhe.init(t,e),Bt.init(t,e)});function Dq(t){return cge(Vge,t)}var Kge=q("ZodUnknown",(t,e)=>{lhe.init(t,e),Bt.init(t,e)});function sr(){return uge(Kge)}var Jge=q("ZodNever",(t,e)=>{dhe.init(t,e),Bt.init(t,e)});function Xge(t){return lge(Jge,t)}var Yge=q("ZodArray",(t,e)=>{phe.init(t,e),Bt.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(Fv(r,n)),t.nonempty=r=>t.check(Fv(1,r)),t.max=(r,n)=>t.check(xq(r,n)),t.length=(r,n)=>t.check(wq(r,n)),t.unwrap=()=>t.element});function nt(t,e){return Sge(Yge,t,e)}var jq=q("ZodObject",(t,e)=>{fhe.init(t,e),Bt.init(t,e),At.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>zr(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:sr()}),t.loose=()=>t.clone({...t._zod.def,catchall:sr()}),t.strict=()=>t.clone({...t._zod.def,catchall:Xge()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>At.extend(t,r),t.merge=r=>At.merge(t,r),t.pick=r=>At.pick(t,r),t.omit=r=>At.omit(t,r),t.partial=(...r)=>At.partial(Fq,t,r[0]),t.required=(...r)=>At.required(qq,t,r[0])});function X(t,e){let r={type:"object",get shape(){return At.assignProp(this,"shape",{...t}),this.shape},...At.normalizeParams(e)};return new jq(r)}function xi(t,e){return new jq({type:"object",get shape(){return At.assignProp(this,"shape",{...t}),this.shape},catchall:sr(),...At.normalizeParams(e)})}var zq=q("ZodUnion",(t,e)=>{Sq.init(t,e),Bt.init(t,e),t.options=e.options});function Ft(t,e){return new zq({type:"union",options:t,...At.normalizeParams(e)})}var Qge=q("ZodDiscriminatedUnion",(t,e)=>{zq.init(t,e),mhe.init(t,e)});function Lq(t,e,r){return new Qge({type:"union",options:e,discriminator:t,...At.normalizeParams(r)})}var eve=q("ZodIntersection",(t,e)=>{hhe.init(t,e),Bt.init(t,e)});function q$(t,e){return new eve({type:"intersection",left:t,right:e})}var tve=q("ZodRecord",(t,e)=>{ghe.init(t,e),Bt.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function or(t,e,r){return new tve({type:"record",keyType:t,valueType:e,...At.normalizeParams(r)})}var C$=q("ZodEnum",(t,e)=>{vhe.init(t,e),Bt.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let s={};for(let o of n)if(r.has(o))s[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new C$({...e,checks:[],...At.normalizeParams(i),entries:s})},t.exclude=(n,i)=>{let s={...e.entries};for(let o of n)if(r.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new C$({...e,checks:[],...At.normalizeParams(i),entries:s})}});function zr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new C$({type:"enum",entries:r,...At.normalizeParams(e)})}var rve=q("ZodLiteral",(t,e)=>{yhe.init(t,e),Bt.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 ge(t,e){return new rve({type:"literal",values:Array.isArray(t)?t:[t],...At.normalizeParams(e)})}var nve=q("ZodTransform",(t,e)=>{_he.init(t,e),Bt.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=s=>{if(typeof s=="string")r.issues.push(At.issue(s,r.value,e));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!0),r.issues.push(At.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(s=>(r.value=s,r)):(r.value=i,r)}});function Uq(t){return new nve({type:"transform",transform:t})}var Fq=q("ZodOptional",(t,e)=>{bhe.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function he(t){return new Fq({type:"optional",innerType:t})}var ive=q("ZodNullable",(t,e)=>{She.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function mF(t){return new ive({type:"nullable",innerType:t})}var sve=q("ZodDefault",(t,e)=>{xhe.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function ove(t,e){return new sve({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var ave=q("ZodPrefault",(t,e)=>{whe.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function cve(t,e){return new ave({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var qq=q("ZodNonOptional",(t,e)=>{Ehe.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function uve(t,e){return new qq({type:"nonoptional",innerType:t,...At.normalizeParams(e)})}var lve=q("ZodCatch",(t,e)=>{khe.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function dve(t,e){return new lve({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var pve=q("ZodPipe",(t,e)=>{The.init(t,e),Bt.init(t,e),t.in=e.in,t.out=e.out});function P$(t,e){return new pve({type:"pipe",in:t,out:e})}var fve=q("ZodReadonly",(t,e)=>{$he.init(t,e),Bt.init(t,e)});function mve(t){return new fve({type:"readonly",innerType:t})}var Hq=q("ZodCustom",(t,e)=>{Ihe.init(t,e),Bt.init(t,e)});function hve(t,e){let r=new vn({check:"custom",...At.normalizeParams(e)});return r._zod.check=t,r}function gve(t,e){return xge(Hq,t??(()=>!0),e)}function vve(t,e={}){return wge(Hq,t,e)}function yve(t,e){let r=hve(n=>(n.addIssue=i=>{if(typeof i=="string")n.issues.push(At.issue(i,n.value,r._zod.def));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=n.value),s.inst??(s.inst=r),s.continue??(s.continue=!r._zod.def.abort),n.issues.push(At.issue(s))}},t(n.value,n)),e);return r}function Zq(t,e){return P$(Uq(t),e)}Ds(Che());var H$="io.modelcontextprotocol/related-task",ty="2.0",Yi=gve(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Bq=Ft([L(),Rt().int()]),Gq=L(),_ve=xi({ttl:Ft([Rt(),Dq()]).optional(),pollInterval:Rt().optional()}),Z$=xi({taskId:L()}),bve=xi({progressToken:Bq.optional(),[H$]:Z$.optional()}),yn=xi({task:_ve.optional(),_meta:bve.optional()}),Tr=X({method:L(),params:yn.optional()}),xa=xi({_meta:X({[H$]:he(Z$)}).passthrough().optional()}),Xn=X({method:L(),params:xa.optional()}),Lr=xi({_meta:xi({[H$]:Z$.optional()}).optional()}),ry=Ft([L(),Rt().int()]),Sve=X({jsonrpc:ge(ty),id:ry,...Tr.shape}).strict();var xve=X({jsonrpc:ge(ty),...Xn.shape}).strict();var wve=X({jsonrpc:ge(ty),id:ry,result:Lr}).strict();var hF;(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"})(hF||(hF={}));var Eve=X({jsonrpc:ge(ty),id:ry,error:X({code:Rt().int(),message:L(),data:he(sr())})}).strict();var YDe=Ft([Sve,xve,wve,Eve]),Wq=Lr.strict(),kve=xa.extend({requestId:ry,reason:L().optional()}),Vq=Xn.extend({method:ge("notifications/cancelled"),params:kve}),Tve=X({src:L(),mimeType:L().optional(),sizes:nt(L()).optional()}),Yp=X({icons:nt(Tve).optional()}),Iu=X({name:L(),title:L().optional()}),Kq=Iu.extend({...Iu.shape,...Yp.shape,version:L(),websiteUrl:L().optional()}),$ve=q$(X({applyDefaults:jr().optional()}),or(L(),sr())),Ive=Zq(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,q$(X({form:$ve.optional(),url:Yi.optional()}),or(L(),sr()).optional())),Rve=X({list:he(X({}).passthrough()),cancel:he(X({}).passthrough()),requests:he(X({sampling:he(X({createMessage:he(X({}).passthrough())}).passthrough()),elicitation:he(X({create:he(X({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Ove=X({list:he(X({}).passthrough()),cancel:he(X({}).passthrough()),requests:he(X({tools:he(X({call:he(X({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Cve=X({experimental:or(L(),Yi).optional(),sampling:X({context:Yi.optional(),tools:Yi.optional()}).optional(),elicitation:Ive.optional(),roots:X({listChanged:jr().optional()}).optional(),tasks:he(Rve)}),Pve=yn.extend({protocolVersion:L(),capabilities:Cve,clientInfo:Kq}),Ave=Tr.extend({method:ge("initialize"),params:Pve}),Nve=X({experimental:or(L(),Yi).optional(),logging:Yi.optional(),completions:Yi.optional(),prompts:he(X({listChanged:he(jr())})),resources:X({subscribe:jr().optional(),listChanged:jr().optional()}).optional(),tools:X({listChanged:jr().optional()}).optional(),tasks:he(Ove)}).passthrough(),Mve=Lr.extend({protocolVersion:L(),capabilities:Nve,serverInfo:Kq,instructions:L().optional()}),Dve=Xn.extend({method:ge("notifications/initialized")}),Jq=Tr.extend({method:ge("ping")}),jve=X({progress:Rt(),total:he(Rt()),message:he(L())}),zve=X({...xa.shape,...jve.shape,progressToken:Bq}),Xq=Xn.extend({method:ge("notifications/progress"),params:zve}),Lve=yn.extend({cursor:Gq.optional()}),Qp=Tr.extend({params:Lve.optional()}),ef=Lr.extend({nextCursor:he(Gq)}),tf=X({taskId:L(),status:zr(["working","input_required","completed","failed","cancelled"]),ttl:Ft([Rt(),Dq()]),createdAt:L(),lastUpdatedAt:L(),pollInterval:he(Rt()),statusMessage:he(L())}),Yq=Lr.extend({task:tf}),Uve=xa.merge(tf),Qq=Xn.extend({method:ge("notifications/tasks/status"),params:Uve}),e9=Tr.extend({method:ge("tasks/get"),params:yn.extend({taskId:L()})}),t9=Lr.merge(tf),r9=Tr.extend({method:ge("tasks/result"),params:yn.extend({taskId:L()})}),n9=Qp.extend({method:ge("tasks/list")}),i9=ef.extend({tasks:nt(tf)}),QDe=Tr.extend({method:ge("tasks/cancel"),params:yn.extend({taskId:L()})}),eje=Lr.merge(tf),s9=X({uri:L(),mimeType:he(L()),_meta:or(L(),sr()).optional()}),o9=s9.extend({text:L()}),B$=L().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),a9=s9.extend({blob:B$}),Nu=X({audience:nt(zr(["user","assistant"])).optional(),priority:Rt().min(0).max(1).optional(),lastModified:Eq.datetime({offset:!0}).optional()}),c9=X({...Iu.shape,...Yp.shape,uri:L(),description:he(L()),mimeType:he(L()),annotations:Nu.optional(),_meta:he(xi({}))}),Fve=X({...Iu.shape,...Yp.shape,uriTemplate:L(),description:he(L()),mimeType:he(L()),annotations:Nu.optional(),_meta:he(xi({}))}),qve=Qp.extend({method:ge("resources/list")}),Hve=ef.extend({resources:nt(c9)}),Zve=Qp.extend({method:ge("resources/templates/list")}),Bve=ef.extend({resourceTemplates:nt(Fve)}),G$=yn.extend({uri:L()}),Gve=G$,Wve=Tr.extend({method:ge("resources/read"),params:Gve}),Vve=Lr.extend({contents:nt(Ft([o9,a9]))}),Kve=Xn.extend({method:ge("notifications/resources/list_changed")}),Jve=G$,Xve=Tr.extend({method:ge("resources/subscribe"),params:Jve}),Yve=G$,Qve=Tr.extend({method:ge("resources/unsubscribe"),params:Yve}),eye=xa.extend({uri:L()}),tye=Xn.extend({method:ge("notifications/resources/updated"),params:eye}),rye=X({name:L(),description:he(L()),required:he(jr())}),nye=X({...Iu.shape,...Yp.shape,description:he(L()),arguments:he(nt(rye)),_meta:he(xi({}))}),iye=Qp.extend({method:ge("prompts/list")}),sye=ef.extend({prompts:nt(nye)}),oye=yn.extend({name:L(),arguments:or(L(),L()).optional()}),aye=Tr.extend({method:ge("prompts/get"),params:oye}),W$=X({type:ge("text"),text:L(),annotations:Nu.optional(),_meta:or(L(),sr()).optional()}),V$=X({type:ge("image"),data:B$,mimeType:L(),annotations:Nu.optional(),_meta:or(L(),sr()).optional()}),K$=X({type:ge("audio"),data:B$,mimeType:L(),annotations:Nu.optional(),_meta:or(L(),sr()).optional()}),cye=X({type:ge("tool_use"),name:L(),id:L(),input:X({}).passthrough(),_meta:he(X({}).passthrough())}).passthrough(),uye=X({type:ge("resource"),resource:Ft([o9,a9]),annotations:Nu.optional(),_meta:or(L(),sr()).optional()}),lye=c9.extend({type:ge("resource_link")}),J$=Ft([W$,V$,K$,lye,uye]),dye=X({role:zr(["user","assistant"]),content:J$}),pye=Lr.extend({description:he(L()),messages:nt(dye)}),fye=Xn.extend({method:ge("notifications/prompts/list_changed")}),mye=X({title:L().optional(),readOnlyHint:jr().optional(),destructiveHint:jr().optional(),idempotentHint:jr().optional(),openWorldHint:jr().optional()}),hye=X({taskSupport:zr(["required","optional","forbidden"]).optional()}),u9=X({...Iu.shape,...Yp.shape,description:L().optional(),inputSchema:X({type:ge("object"),properties:or(L(),Yi).optional(),required:nt(L()).optional()}).catchall(sr()),outputSchema:X({type:ge("object"),properties:or(L(),Yi).optional(),required:nt(L()).optional()}).catchall(sr()).optional(),annotations:he(mye),execution:he(hye),_meta:or(L(),sr()).optional()}),gye=Qp.extend({method:ge("tools/list")}),vye=ef.extend({tools:nt(u9)}),l9=Lr.extend({content:nt(J$).default([]),structuredContent:or(L(),sr()).optional(),isError:he(jr())}),tje=l9.or(Lr.extend({toolResult:sr()})),yye=yn.extend({name:L(),arguments:he(or(L(),sr()))}),_ye=Tr.extend({method:ge("tools/call"),params:yye}),bye=Xn.extend({method:ge("notifications/tools/list_changed")}),d9=zr(["debug","info","notice","warning","error","critical","alert","emergency"]),Sye=yn.extend({level:d9}),xye=Tr.extend({method:ge("logging/setLevel"),params:Sye}),wye=xa.extend({level:d9,logger:L().optional(),data:sr()}),Eye=Xn.extend({method:ge("notifications/message"),params:wye}),kye=X({name:L().optional()}),Tye=X({hints:he(nt(kye)),costPriority:he(Rt().min(0).max(1)),speedPriority:he(Rt().min(0).max(1)),intelligencePriority:he(Rt().min(0).max(1))}),$ye=X({mode:he(zr(["auto","required","none"]))}),Iye=X({type:ge("tool_result"),toolUseId:L().describe("The unique identifier for the corresponding tool call."),content:nt(J$).default([]),structuredContent:X({}).passthrough().optional(),isError:he(jr()),_meta:he(X({}).passthrough())}).passthrough(),Rye=Lq("type",[W$,V$,K$]),qv=Lq("type",[W$,V$,K$,cye,Iye]),Oye=X({role:zr(["user","assistant"]),content:Ft([qv,nt(qv)]),_meta:he(X({}).passthrough())}).passthrough(),Cye=yn.extend({messages:nt(Oye),modelPreferences:Tye.optional(),systemPrompt:L().optional(),includeContext:zr(["none","thisServer","allServers"]).optional(),temperature:Rt().optional(),maxTokens:Rt().int(),stopSequences:nt(L()).optional(),metadata:Yi.optional(),tools:he(nt(u9)),toolChoice:he($ye)}),Pye=Tr.extend({method:ge("sampling/createMessage"),params:Cye}),Aye=Lr.extend({model:L(),stopReason:he(zr(["endTurn","stopSequence","maxTokens"]).or(L())),role:zr(["user","assistant"]),content:Rye}),Nye=Lr.extend({model:L(),stopReason:he(zr(["endTurn","stopSequence","maxTokens","toolUse"]).or(L())),role:zr(["user","assistant"]),content:Ft([qv,nt(qv)])}),Mye=X({type:ge("boolean"),title:L().optional(),description:L().optional(),default:jr().optional()}),Dye=X({type:ge("string"),title:L().optional(),description:L().optional(),minLength:Rt().optional(),maxLength:Rt().optional(),format:zr(["email","uri","date","date-time"]).optional(),default:L().optional()}),jye=X({type:zr(["number","integer"]),title:L().optional(),description:L().optional(),minimum:Rt().optional(),maximum:Rt().optional(),default:Rt().optional()}),zye=X({type:ge("string"),title:L().optional(),description:L().optional(),enum:nt(L()),default:L().optional()}),Lye=X({type:ge("string"),title:L().optional(),description:L().optional(),oneOf:nt(X({const:L(),title:L()})),default:L().optional()}),Uye=X({type:ge("string"),title:L().optional(),description:L().optional(),enum:nt(L()),enumNames:nt(L()).optional(),default:L().optional()}),Fye=Ft([zye,Lye]),qye=X({type:ge("array"),title:L().optional(),description:L().optional(),minItems:Rt().optional(),maxItems:Rt().optional(),items:X({type:ge("string"),enum:nt(L())}),default:nt(L()).optional()}),Hye=X({type:ge("array"),title:L().optional(),description:L().optional(),minItems:Rt().optional(),maxItems:Rt().optional(),items:X({anyOf:nt(X({const:L(),title:L()}))}),default:nt(L()).optional()}),Zye=Ft([qye,Hye]),Bye=Ft([Uye,Fye,Zye]),Gye=Ft([Bye,Mye,Dye,jye]),Wye=yn.extend({mode:ge("form").optional(),message:L(),requestedSchema:X({type:ge("object"),properties:or(L(),Gye),required:nt(L()).optional()})}),Vye=yn.extend({mode:ge("url"),message:L(),elicitationId:L(),url:L().url()}),Kye=Ft([Wye,Vye]),Jye=Tr.extend({method:ge("elicitation/create"),params:Kye}),Xye=xa.extend({elicitationId:L()}),Yye=Xn.extend({method:ge("notifications/elicitation/complete"),params:Xye}),Qye=Lr.extend({action:zr(["accept","decline","cancel"]),content:Zq(t=>t===null?void 0:t,or(L(),Ft([L(),Rt(),jr(),nt(L())])).optional())}),e_e=X({type:ge("ref/resource"),uri:L()}),t_e=X({type:ge("ref/prompt"),name:L()}),r_e=yn.extend({ref:Ft([t_e,e_e]),argument:X({name:L(),value:L()}),context:X({arguments:or(L(),L()).optional()}).optional()}),n_e=Tr.extend({method:ge("completion/complete"),params:r_e});var i_e=Lr.extend({completion:xi({values:nt(L()).max(100),total:he(Rt().int()),hasMore:he(jr())})}),s_e=X({uri:L().startsWith("file://"),name:L().optional(),_meta:or(L(),sr()).optional()}),o_e=Tr.extend({method:ge("roots/list")}),a_e=Lr.extend({roots:nt(s_e)}),c_e=Xn.extend({method:ge("notifications/roots/list_changed")}),rje=Ft([Jq,Ave,n_e,xye,aye,iye,qve,Zve,Wve,Xve,Qve,_ye,gye,e9,r9,n9]),nje=Ft([Vq,Xq,Dve,c_e,Qq]),ije=Ft([Wq,Aye,Nye,Qye,a_e,t9,i9,Yq]),sje=Ft([Jq,Pye,Jye,o_e,e9,r9,n9]),oje=Ft([Vq,Xq,Eye,tye,Kve,bye,fye,Qq,Yye]),aje=Ft([Wq,Mve,i_e,pye,sye,Hve,Bve,Vve,l9,vye,t9,i9,Yq]);var cje=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var uje=vF(kF(),1),lje=vF(qle(),1);var gF;(function(t){t.Completable="McpCompletable"})(gF||(gF={}));function p9({prompt:t,options:e}){let{systemPrompt:r,settingSources:n,sandbox:i,...s}=e??{},o,a;r===void 0?o="":typeof r=="string"?o=r:r.type==="preset"&&(a=r.append);let c=s.pathToClaudeCodeExecutable;if(!c){let J=(0,TF.fileURLToPath)(u_e.url),ue=(0,f$.join)(J,"..");c=(0,f$.join)(ue,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=IF(),additionalDirectories:l=[],agents:d,allowedTools:p=[],betas:f,canUseTool:m,continue:h,cwd:g,disallowedTools:v=[],tools:S,env:b,executable:y=VF()?"bun":"node",executableArgs:x=[],extraArgs:w={},fallbackModel:E,enableFileCheckpointing:T,forkSession:I,hooks:A,includePartialMessages:N,persistSession:U,maxThinkingTokens:V,maxTurns:j,maxBudgetUsd:ae,mcpServers:Me,model:ze,outputFormat:Et,permissionMode:Ge="default",allowDangerouslySkipPermissions:K=!1,permissionPromptToolName:C,plugins:H,resume:M,resumeSessionAt:k,stderr:R,strictMcpConfig:F}=s,le=Et?.type==="json_schema"?Et.schema:void 0,ce=b;if(ce||(ce={...process.env}),ce.CLAUDE_CODE_ENTRYPOINT||(ce.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),T&&(ce.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let Qe={},Xe=new Map;if(Me)for(let[J,ue]of Object.entries(Me))ue.type==="sdk"&&"instance"in ue?(Xe.set(J,ue.instance),Qe[J]={type:"sdk",name:J}):Qe[J]=ue;let qt=typeof t=="string",P=new h$({abortController:u,additionalDirectories:l,betas:f,cwd:g,executable:y,executableArgs:x,extraArgs:w,pathToClaudeCodeExecutable:c,env:ce,forkSession:I,stderr:R,maxThinkingTokens:V,maxTurns:j,maxBudgetUsd:ae,model:ze,fallbackModel:E,jsonSchema:le,permissionMode:Ge,allowDangerouslySkipPermissions:K,permissionPromptToolName:C,continueConversation:h,resume:M,resumeSessionAt:k,settingSources:n??[],allowedTools:p,disallowedTools:v,tools:S,mcpServers:Qe,strictMcpConfig:F,canUseTool:!!m,hooks:!!A,includePartialMessages:N,persistSession:U,plugins:H,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),D={systemPrompt:o,appendSystemPrompt:a,agents:d},Z=new y$(P,qt,m,A,u,Xe,le,D);return typeof t=="string"?P.write(Xi({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null})+` +`):Z.streamInput(t),Z}var ny=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let n={lastCwd:void 0},i=this.findClaudeExecutable(),s=e.modelOverride||this.getModelId(),o=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"],a=this.createMessageGenerator(e,n),c=!!e.memorySessionId,u=c&&e.lastPromptNumber>1&&!e.forceInit;e.forceInit&&(_.info("SDK","forceInit flag set, starting fresh SDK session",{sessionDbId:e.sessionDbId,previousMemorySessionId:e.memorySessionId}),e.forceInit=!1);let l=Se.loadFromFile(jt),d=parseInt(l.CLAUDE_MEM_MAX_CONCURRENT_AGENTS,10)||2;await O6(d);let p=Ui(pM()),f=Xh();if(_.info("SDK","Starting SDK query",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,hasRealMemorySessionId:c,shouldResume:u,resume_parameter:u?e.memorySessionId:"(none - fresh start)",lastPromptNumber:e.lastPromptNumber,authMethod:f}),e.lastPromptNumber>1)_.debug("SDK",`[ALIGNMENT] Resume Decision | contentSessionId=${e.contentSessionId} | memorySessionId=${e.memorySessionId} | prompt#=${e.lastPromptNumber} | hasRealMemorySessionId=${c} | shouldResume=${u} | resumeWith=${u?e.memorySessionId:"NONE"}`);else{let g=c;_.debug("SDK",`[ALIGNMENT] First Prompt (INIT) | contentSessionId=${e.contentSessionId} | prompt#=${e.lastPromptNumber} | hasStaleMemoryId=${g} | action=START_FRESH | Will capture new memorySessionId from SDK response`),g&&_.warn("SDK",`Skipping resume for INIT prompt despite existing memorySessionId=${e.memorySessionId} - SDK context was lost (worker restart or crash recovery)`)}Mr(Kh);let m=p9({prompt:a,options:{model:s,cwd:Kh,...u&&{resume:e.memorySessionId},disallowedTools:o,abortController:e.abortController,pathToClaudeCodeExecutable:i,spawnClaudeCodeProcess:C6(e.sessionDbId),env:p}});try{for await(let g of m){if(g.session_id&&g.session_id!==e.memorySessionId){let v=e.memorySessionId;e.memorySessionId=g.session_id,this.dbManager.getSessionStore().ensureMemorySessionIdRegistered(e.sessionDbId,g.session_id);let S=this.dbManager.getSessionStore().getSessionById(e.sessionDbId),b=S?.memory_session_id===g.session_id,y=v?`MEMORY_ID_CHANGED | sessionDbId=${e.sessionDbId} | from=${v} | to=${g.session_id} | dbVerified=${b}`:`MEMORY_ID_CAPTURED | sessionDbId=${e.sessionDbId} | memorySessionId=${g.session_id} | dbVerified=${b}`;_.info("SESSION",y,{sessionId:e.sessionDbId,memorySessionId:g.session_id,previousId:v}),b||_.error("SESSION",`MEMORY_ID_MISMATCH | sessionDbId=${e.sessionDbId} | expected=${g.session_id} | got=${S?.memory_session_id}`,{sessionId:e.sessionDbId}),_.debug("SDK",`[ALIGNMENT] ${v?"Updated":"Captured"} | contentSessionId=${e.contentSessionId} \u2192 memorySessionId=${g.session_id} | Future prompts will resume with this ID`)}if(g.type==="assistant"){let v=g.message.content,S=Array.isArray(v)?v.filter(T=>T.type==="text").map(T=>T.text).join(` +`):typeof v=="string"?v:"";if(S.includes("prompt is too long")||S.includes("context window")){_.error("SDK","Context overflow detected - terminating session"),e.abortController.abort();return}let b=S.length,y=e.cumulativeInputTokens+e.cumulativeOutputTokens,x=g.message.usage;x&&(e.cumulativeInputTokens+=x.input_tokens||0,e.cumulativeOutputTokens+=x.output_tokens||0,x.cache_creation_input_tokens&&(e.cumulativeInputTokens+=x.cache_creation_input_tokens),_.debug("SDK","Token usage captured",{sessionId:e.sessionDbId,inputTokens:x.input_tokens,outputTokens:x.output_tokens,cacheCreation:x.cache_creation_input_tokens||0,cacheRead:x.cache_read_input_tokens||0,cumulativeInput:e.cumulativeInputTokens,cumulativeOutput:e.cumulativeOutputTokens}));let w=e.cumulativeInputTokens+e.cumulativeOutputTokens-y,E=e.earliestPendingTimestamp;if(b>0){let T=b>100?S.substring(0,100)+"...":S;_.dataOut("SDK",`Response received (${b} chars)`,{sessionId:e.sessionDbId,promptNumber:e.lastPromptNumber},T)}if(typeof S=="string"&&S.includes("Prompt is too long"))throw new Error("Claude session context overflow: prompt is too long");if(typeof S=="string"&&S.includes("Invalid API key"))throw new Error("Invalid API key: check your API key configuration in ~/.claude-mem/settings.json or ~/.claude-mem/.env");await _i(S,e,this.dbManager,this.sessionManager,r,w,E,"SDK",n.lastCwd)}g.type==="result"&&g.subtype}}finally{let g=go(e.sessionDbId);g&&g.process.exitCode===null&&await vo(g,5e3)}let h=Date.now()-e.startTime;_.success("SDK","Agent completed",{sessionId:e.sessionDbId,duration:`${(h/1e3).toFixed(1)}s`})}async*createMessageGenerator(e,r){let n=He.getInstance().getActiveMode(),i=e.lastPromptNumber===1;_.info("SDK","Creating message generator",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,lastPromptNumber:e.lastPromptNumber,isInitPrompt:i,promptType:i?"INIT":"CONTINUATION"});let s=i?au(e.project,e.contentSessionId,e.userPrompt,n):lu(e.userPrompt,e.lastPromptNumber,e.contentSessionId,n);e.conversationHistory.push({role:"user",content:s}),yield{type:"user",message:{role:"user",content:s},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0};for await(let o of this.sessionManager.getMessageIterator(e.sessionDbId))if(e.processingMessageIds.push(o._persistentId),o.cwd&&(r.lastCwd=o.cwd),o.type==="observation"){o.prompt_number!==void 0&&(e.lastPromptNumber=o.prompt_number);let a=cu({id:0,tool_name:o.tool_name,tool_input:JSON.stringify(o.tool_input),tool_output:JSON.stringify(o.tool_response),created_at_epoch:Date.now(),cwd:o.cwd});e.conversationHistory.push({role:"user",content:a}),yield{type:"user",message:{role:"user",content:a},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}else if(o.type==="summarize"){let a=uu({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:o.last_assistant_message||""},n);e.conversationHistory.push({role:"user",content:a}),yield{type:"user",message:{role:"user",content:a},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}}findClaudeExecutable(){let e=Se.loadFromFile(jt);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}if(process.platform==="win32")try{return(0,X$.execSync)("where claude.cmd",{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}),"claude.cmd"}catch{}try{let r=(0,X$.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 ~/.claude-mem/settings.json`)}getModelId(){let e=cq.default.join((0,aq.homedir)(),".claude-mem","settings.json");return _e.loadFromFile(e).CLAUDE_MEM_MODEL}};var Hg=Ue(require("path"),1),Zg=require("os");oe();Yt();Br();var Vhe="https://generativelanguage.googleapis.com/v1/models",Ghe={"gemini-2.5-flash-lite":10,"gemini-2.5-flash":10,"gemini-2.5-pro":5,"gemini-2.0-flash":15,"gemini-2.0-flash-lite":30,"gemini-3-flash":10,"gemini-3-flash-preview":5},uq=0;async function Whe(t,e){if(!e)return;let r=Ghe[t]||5,n=Math.ceil(6e4/r)+100,s=Date.now()-uq;if(ssetTimeout(a,o))}uq=Date.now()}var Fg=class{dbManager;sessionManager;fallbackAgent=null;constructor(e,r){this.dbManager=e,this.sessionManager=r}setFallbackAgent(e){this.fallbackAgent=e}async startSession(e,r){try{let{apiKey:n,model:i,rateLimitingEnabled:s}=this.getGeminiConfig();if(!n)throw new Error("Gemini API key not configured. Set CLAUDE_MEM_GEMINI_API_KEY in settings or GEMINI_API_KEY environment variable.");if(!e.memorySessionId){let d=`gemini-${e.contentSessionId}-${Date.now()}`;e.memorySessionId=d,this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,d),y.info("SESSION",`MEMORY_ID_GENERATED | sessionDbId=${e.sessionDbId} | provider=Gemini`)}let o=He.getInstance().getActiveMode(),a=e.lastPromptNumber===1?kc(e.project,e.contentSessionId,e.userPrompt,o):Ic(e.userPrompt,e.lastPromptNumber,e.contentSessionId,o);e.conversationHistory.push({role:"user",content:a});let c=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,s);if(c.content){e.conversationHistory.push({role:"assistant",content:c.content});let d=c.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(d*.7),e.cumulativeOutputTokens+=Math.floor(d*.3),await ri(c.content,e,this.dbManager,this.sessionManager,r,d,null,"Gemini")}else y.error("SDK","Empty Gemini init response - session may lack context",{sessionId:e.sessionDbId,model:i});let u;for await(let d of this.sessionManager.getMessageIterator(e.sessionDbId)){e.processingMessageIds.push(d._persistentId),d.cwd&&(u=d.cwd);let p=e.earliestPendingTimestamp;if(d.type==="observation"){if(d.prompt_number!==void 0&&(e.lastPromptNumber=d.prompt_number),!e.memorySessionId)throw new Error("Cannot process observations: memorySessionId not yet captured. This session may need to be reinitialized.");let m=$c({id:0,tool_name:d.tool_name,tool_input:JSON.stringify(d.tool_input),tool_output:JSON.stringify(d.tool_response),created_at_epoch:p??Date.now(),cwd:d.cwd});e.conversationHistory.push({role:"user",content:m});let f=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,s),g=0;f.content&&(e.conversationHistory.push({role:"assistant",content:f.content}),g=f.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(g*.7),e.cumulativeOutputTokens+=Math.floor(g*.3)),f.content?await ri(f.content,e,this.dbManager,this.sessionManager,r,g,p,"Gemini",u):y.warn("SDK","Empty Gemini observation response, skipping processing to preserve message",{sessionId:e.sessionDbId,messageId:e.processingMessageIds[e.processingMessageIds.length-1]})}else if(d.type==="summarize"){if(!e.memorySessionId)throw new Error("Cannot process summary: memorySessionId not yet captured. This session may need to be reinitialized.");let m=Tc({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:d.last_assistant_message||""},o);e.conversationHistory.push({role:"user",content:m});let f=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,s),g=0;f.content&&(e.conversationHistory.push({role:"assistant",content:f.content}),g=f.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(g*.7),e.cumulativeOutputTokens+=Math.floor(g*.3)),f.content?await ri(f.content,e,this.dbManager,this.sessionManager,r,g,p,"Gemini",u):y.warn("SDK","Empty Gemini summary response, skipping processing to preserve message",{sessionId:e.sessionDbId,messageId:e.processingMessageIds[e.processingMessageIds.length-1]})}}let l=Date.now()-e.startTime;y.success("SDK","Gemini agent completed",{sessionId:e.sessionDbId,duration:`${(l/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length})}catch(n){if(Ud(n))throw y.warn("SDK","Gemini agent aborted",{sessionId:e.sessionDbId}),n;if(Ld(n)&&this.fallbackAgent)return y.warn("SDK","Gemini API failed, falling back to Claude SDK",{sessionDbId:e.sessionDbId,error:n instanceof Error?n.message:String(n),historyLength:e.conversationHistory.length}),this.fallbackAgent.startSession(e,r);throw y.failure("SDK","Gemini agent error",{sessionDbId:e.sessionDbId},n),n}}conversationToGeminiContents(e){return e.map(r=>({role:r.role==="assistant"?"model":"user",parts:[{text:r.content}]}))}async queryGeminiMultiTurn(e,r,n,i){let s=this.conversationToGeminiContents(e),o=e.reduce((p,m)=>p+m.content.length,0);y.debug("SDK",`Querying Gemini multi-turn (${n})`,{turns:e.length,totalChars:o});let a=`${Vhe}/${n}:generateContent?key=${r}`;await Whe(n,i);let c=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:s,generationConfig:{temperature:.3,maxOutputTokens:4096}})});if(!c.ok){let p=await c.text();throw new Error(`Gemini API error: ${c.status} - ${p}`)}let u=await c.json();if(!u.candidates?.[0]?.content?.parts?.[0]?.text)return y.error("SDK","Empty response from Gemini"),{content:""};let l=u.candidates[0].content.parts[0].text,d=u.usageMetadata?.totalTokenCount;return{content:l,tokensUsed:d}}getGeminiConfig(){let e=Hg.default.join((0,Zg.homedir)(),".claude-mem","settings.json"),r=_e.loadFromFile(e),n=r.CLAUDE_MEM_GEMINI_API_KEY||Ga("GEMINI_API_KEY")||"",i="gemini-2.5-flash",s=r.CLAUDE_MEM_GEMINI_MODEL||i,o=["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-2.5-pro","gemini-2.0-flash","gemini-2.0-flash-lite","gemini-3-flash","gemini-3-flash-preview"],a;o.includes(s)?a=s:(y.warn("SDK",`Invalid Gemini model "${s}", falling back to ${i}`,{configured:s,validModels:o}),a=i);let c=r.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED!=="false";return{apiKey:n,model:a,rateLimitingEnabled:c}}};function Bo(){let t=Hg.default.join((0,Zg.homedir)(),".claude-mem","settings.json");return!!(_e.loadFromFile(t).CLAUDE_MEM_GEMINI_API_KEY||Ga("GEMINI_API_KEY"))}function Qc(){let t=Hg.default.join((0,Zg.homedir)(),".claude-mem","settings.json");return _e.loadFromFile(t).CLAUDE_MEM_PROVIDER==="gemini"}Yt();Nt();oe();Br();var Khe="https://openrouter.ai/api/v1/chat/completions",Jhe=20,Xhe=1e5,Yhe=4,Bg=class{dbManager;sessionManager;fallbackAgent=null;constructor(e,r){this.dbManager=e,this.sessionManager=r}setFallbackAgent(e){this.fallbackAgent=e}async startSession(e,r){try{let{apiKey:n,model:i,siteUrl:s,appName:o}=this.getOpenRouterConfig();if(!n)throw new Error("OpenRouter API key not configured. Set CLAUDE_MEM_OPENROUTER_API_KEY in settings or OPENROUTER_API_KEY environment variable.");if(!e.memorySessionId){let p=`openrouter-${e.contentSessionId}-${Date.now()}`;e.memorySessionId=p,this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,p),y.info("SESSION",`MEMORY_ID_GENERATED | sessionDbId=${e.sessionDbId} | provider=OpenRouter`)}let a=He.getInstance().getActiveMode(),c=e.lastPromptNumber===1?kc(e.project,e.contentSessionId,e.userPrompt,a):Ic(e.userPrompt,e.lastPromptNumber,e.contentSessionId,a);e.conversationHistory.push({role:"user",content:c});let u=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,s,o);if(u.content){let p=u.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(p*.7),e.cumulativeOutputTokens+=Math.floor(p*.3),await ri(u.content,e,this.dbManager,this.sessionManager,r,p,null,"OpenRouter",void 0)}else y.error("SDK","Empty OpenRouter init response - session may lack context",{sessionId:e.sessionDbId,model:i});let l;for await(let p of this.sessionManager.getMessageIterator(e.sessionDbId)){e.processingMessageIds.push(p._persistentId),p.cwd&&(l=p.cwd);let m=e.earliestPendingTimestamp;if(p.type==="observation"){if(p.prompt_number!==void 0&&(e.lastPromptNumber=p.prompt_number),!e.memorySessionId)throw new Error("Cannot process observations: memorySessionId not yet captured. This session may need to be reinitialized.");let f=$c({id:0,tool_name:p.tool_name,tool_input:JSON.stringify(p.tool_input),tool_output:JSON.stringify(p.tool_response),created_at_epoch:m??Date.now(),cwd:p.cwd});e.conversationHistory.push({role:"user",content:f});let g=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,s,o),h=0;g.content&&(h=g.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(h*.7),e.cumulativeOutputTokens+=Math.floor(h*.3)),await ri(g.content||"",e,this.dbManager,this.sessionManager,r,h,m,"OpenRouter",l)}else if(p.type==="summarize"){if(!e.memorySessionId)throw new Error("Cannot process summary: memorySessionId not yet captured. This session may need to be reinitialized.");let f=Tc({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:p.last_assistant_message||""},a);e.conversationHistory.push({role:"user",content:f});let g=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,s,o),h=0;g.content&&(h=g.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(h*.7),e.cumulativeOutputTokens+=Math.floor(h*.3)),await ri(g.content||"",e,this.dbManager,this.sessionManager,r,h,m,"OpenRouter",l)}}let d=Date.now()-e.startTime;y.success("SDK","OpenRouter agent completed",{sessionId:e.sessionDbId,duration:`${(d/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length,model:i})}catch(n){if(Ud(n))throw y.warn("SDK","OpenRouter agent aborted",{sessionId:e.sessionDbId}),n;if(Ld(n)&&this.fallbackAgent)return y.warn("SDK","OpenRouter API failed, falling back to Claude SDK",{sessionDbId:e.sessionDbId,error:n instanceof Error?n.message:String(n),historyLength:e.conversationHistory.length}),this.fallbackAgent.startSession(e,r);throw y.failure("SDK","OpenRouter agent error",{sessionDbId:e.sessionDbId},n),n}}estimateTokens(e){return Math.ceil(e.length/Yhe)}truncateHistory(e){let r=_e.loadFromFile(At),n=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES)||Jhe,i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS)||Xhe;if(e.length<=n&&e.reduce((c,u)=>c+this.estimateTokens(u.content),0)<=i)return e;let s=[],o=0;for(let a=e.length-1;a>=0;a--){let c=e[a],u=this.estimateTokens(c.content);if(s.length>=n||o+u>i){y.warn("SDK","Context window truncated to prevent runaway costs",{originalMessages:e.length,keptMessages:s.length,droppedMessages:a+1,estimatedTokens:o,tokenLimit:i});break}s.unshift(c),o+=u}return s}conversationToOpenAIMessages(e){return e.map(r=>({role:r.role==="assistant"?"assistant":"user",content:r.content}))}async queryOpenRouterMultiTurn(e,r,n,i,s){let o=this.truncateHistory(e),a=this.conversationToOpenAIMessages(o),c=o.reduce((f,g)=>f+g.content.length,0),u=this.estimateTokens(o.map(f=>f.content).join(""));y.debug("SDK",`Querying OpenRouter multi-turn (${n})`,{turns:o.length,totalChars:c,estimatedTokens:u});let l=await fetch(Khe,{method:"POST",headers:{Authorization:`Bearer ${r}`,"HTTP-Referer":i||"https://github.com/thedotmack/claude-mem","X-Title":s||"claude-mem","Content-Type":"application/json"},body:JSON.stringify({model:n,messages:a,temperature:.3,max_tokens:4096})});if(!l.ok){let f=await l.text();throw new Error(`OpenRouter API error: ${l.status} - ${f}`)}let d=await l.json();if(d.error)throw new Error(`OpenRouter API error: ${d.error.code} - ${d.error.message}`);if(!d.choices?.[0]?.message?.content)return y.error("SDK","Empty response from OpenRouter"),{content:""};let p=d.choices[0].message.content,m=d.usage?.total_tokens;if(m){let f=d.usage?.prompt_tokens||0,g=d.usage?.completion_tokens||0,h=f/1e6*3+g/1e6*15;y.info("SDK","OpenRouter API usage",{model:n,inputTokens:f,outputTokens:g,totalTokens:m,estimatedCostUSD:h.toFixed(4),messagesInContext:o.length}),m>5e4&&y.warn("SDK","High token usage detected - consider reducing context",{totalTokens:m,estimatedCost:h.toFixed(4)})}return{content:p,tokensUsed:m}}getOpenRouterConfig(){let e=At,r=_e.loadFromFile(e),n=r.CLAUDE_MEM_OPENROUTER_API_KEY||Ga("OPENROUTER_API_KEY")||"",i=r.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",s=r.CLAUDE_MEM_OPENROUTER_SITE_URL||"",o=r.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem";return{apiKey:n,model:i,siteUrl:s,appName:o}}};function Vo(){let t=At;return!!(_e.loadFromFile(t).CLAUDE_MEM_OPENROUTER_API_KEY||Ga("OPENROUTER_API_KEY"))}function eu(){let t=At;return _e.loadFromFile(t).CLAUDE_MEM_PROVIDER==="openrouter"}oe();var Vg=class{dbManager;constructor(e){this.dbManager=e}stripProjectPath(e,r){let n=`/${r}/`,i=e.indexOf(n);return i!==-1?e.substring(i+n.length):e}stripProjectPaths(e,r){if(!e)return e;try{let i=JSON.parse(e).map(s=>this.stripProjectPath(s,r));return JSON.stringify(i)}catch(n){return y.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 i=this.paginate("observations","id, memory_session_id, project, type, title, subtitle, narrative, text, facts, concepts, files_read, files_modified, prompt_number, created_at, created_at_epoch",e,r,n);return{...i,items:i.items.map(s=>this.sanitizeObservation(s))}}getSummaries(e,r,n){let i=this.dbManager.getSessionStore().db,s=` +2. Set CLAUDE_CODE_PATH in ~/.claude-mem/settings.json`)}getModelId(){let e=m9.default.join((0,f9.homedir)(),".claude-mem","settings.json");return Se.loadFromFile(e).CLAUDE_MEM_MODEL}};var sy=Pe(require("path"),1),oy=require("os");re();rr();Qr();var l_e="https://generativelanguage.googleapis.com/v1/models",d_e={"gemini-2.5-flash-lite":10,"gemini-2.5-flash":10,"gemini-2.5-pro":5,"gemini-2.0-flash":15,"gemini-2.0-flash-lite":30,"gemini-3-flash":10,"gemini-3-flash-preview":5},h9=0;async function p_e(t,e){if(!e)return;let r=d_e[t]||5,n=Math.ceil(6e4/r)+100,s=Date.now()-h9;if(ssetTimeout(a,o))}h9=Date.now()}var iy=class{dbManager;sessionManager;fallbackAgent=null;constructor(e,r){this.dbManager=e,this.sessionManager=r}setFallbackAgent(e){this.fallbackAgent=e}async startSession(e,r){try{let{apiKey:n,model:i,rateLimitingEnabled:s}=this.getGeminiConfig();if(!n)throw new Error("Gemini API key not configured. Set CLAUDE_MEM_GEMINI_API_KEY in settings or GEMINI_API_KEY environment variable.");if(!e.memorySessionId){let d=`gemini-${e.contentSessionId}-${Date.now()}`;e.memorySessionId=d,this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,d),_.info("SESSION",`MEMORY_ID_GENERATED | sessionDbId=${e.sessionDbId} | provider=Gemini`)}let o=He.getInstance().getActiveMode(),a=e.lastPromptNumber===1?au(e.project,e.contentSessionId,e.userPrompt,o):lu(e.userPrompt,e.lastPromptNumber,e.contentSessionId,o);e.conversationHistory.push({role:"user",content:a});let c=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,s);if(c.content){e.conversationHistory.push({role:"assistant",content:c.content});let d=c.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(d*.7),e.cumulativeOutputTokens+=Math.floor(d*.3),await _i(c.content,e,this.dbManager,this.sessionManager,r,d,null,"Gemini")}else _.error("SDK","Empty Gemini init response - session may lack context",{sessionId:e.sessionDbId,model:i});let u;for await(let d of this.sessionManager.getMessageIterator(e.sessionDbId)){e.processingMessageIds.push(d._persistentId),d.cwd&&(u=d.cwd);let p=e.earliestPendingTimestamp;if(d.type==="observation"){if(d.prompt_number!==void 0&&(e.lastPromptNumber=d.prompt_number),!e.memorySessionId)throw new Error("Cannot process observations: memorySessionId not yet captured. This session may need to be reinitialized.");let f=cu({id:0,tool_name:d.tool_name,tool_input:JSON.stringify(d.tool_input),tool_output:JSON.stringify(d.tool_response),created_at_epoch:p??Date.now(),cwd:d.cwd});e.conversationHistory.push({role:"user",content:f});let m=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,s),h=0;m.content&&(e.conversationHistory.push({role:"assistant",content:m.content}),h=m.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(h*.7),e.cumulativeOutputTokens+=Math.floor(h*.3)),m.content?await _i(m.content,e,this.dbManager,this.sessionManager,r,h,p,"Gemini",u):_.warn("SDK","Empty Gemini observation response, skipping processing to preserve message",{sessionId:e.sessionDbId,messageId:e.processingMessageIds[e.processingMessageIds.length-1]})}else if(d.type==="summarize"){if(!e.memorySessionId)throw new Error("Cannot process summary: memorySessionId not yet captured. This session may need to be reinitialized.");let f=uu({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:d.last_assistant_message||""},o);e.conversationHistory.push({role:"user",content:f});let m=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,s),h=0;m.content&&(e.conversationHistory.push({role:"assistant",content:m.content}),h=m.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(h*.7),e.cumulativeOutputTokens+=Math.floor(h*.3)),m.content?await _i(m.content,e,this.dbManager,this.sessionManager,r,h,p,"Gemini",u):_.warn("SDK","Empty Gemini summary response, skipping processing to preserve message",{sessionId:e.sessionDbId,messageId:e.processingMessageIds[e.processingMessageIds.length-1]})}}let l=Date.now()-e.startTime;_.success("SDK","Gemini agent completed",{sessionId:e.sessionDbId,duration:`${(l/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length})}catch(n){if(Pp(n))throw _.warn("SDK","Gemini agent aborted",{sessionId:e.sessionDbId}),n;if(Cp(n)&&this.fallbackAgent)return _.warn("SDK","Gemini API failed, falling back to Claude SDK",{sessionDbId:e.sessionDbId,error:n instanceof Error?n.message:String(n),historyLength:e.conversationHistory.length}),this.fallbackAgent.startSession(e,r);throw _.failure("SDK","Gemini agent error",{sessionDbId:e.sessionDbId},n),n}}conversationToGeminiContents(e){return e.map(r=>({role:r.role==="assistant"?"model":"user",parts:[{text:r.content}]}))}async queryGeminiMultiTurn(e,r,n,i){let s=this.conversationToGeminiContents(e),o=e.reduce((p,f)=>p+f.content.length,0);_.debug("SDK",`Querying Gemini multi-turn (${n})`,{turns:e.length,totalChars:o});let a=`${l_e}/${n}:generateContent?key=${r}`;await p_e(n,i);let c=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:s,generationConfig:{temperature:.3,maxOutputTokens:4096}})});if(!c.ok){let p=await c.text();throw new Error(`Gemini API error: ${c.status} - ${p}`)}let u=await c.json();if(!u.candidates?.[0]?.content?.parts?.[0]?.text)return _.error("SDK","Empty response from Gemini"),{content:""};let l=u.candidates[0].content.parts[0].text,d=u.usageMetadata?.totalTokenCount;return{content:l,tokensUsed:d}}getGeminiConfig(){let e=sy.default.join((0,oy.homedir)(),".claude-mem","settings.json"),r=Se.loadFromFile(e),n=r.CLAUDE_MEM_GEMINI_API_KEY||Rc("GEMINI_API_KEY")||"",i="gemini-2.5-flash",s=r.CLAUDE_MEM_GEMINI_MODEL||i,o=["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-2.5-pro","gemini-2.0-flash","gemini-2.0-flash-lite","gemini-3-flash","gemini-3-flash-preview"],a;o.includes(s)?a=s:(_.warn("SDK",`Invalid Gemini model "${s}", falling back to ${i}`,{configured:s,validModels:o}),a=i);let c=r.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED!=="false";return{apiKey:n,model:a,rateLimitingEnabled:c}}};function wa(){let t=sy.default.join((0,oy.homedir)(),".claude-mem","settings.json");return!!(Se.loadFromFile(t).CLAUDE_MEM_GEMINI_API_KEY||Rc("GEMINI_API_KEY"))}function Mu(){let t=sy.default.join((0,oy.homedir)(),".claude-mem","settings.json");return Se.loadFromFile(t).CLAUDE_MEM_PROVIDER==="gemini"}rr();zt();re();Qr();var f_e="https://openrouter.ai/api/v1/chat/completions",m_e=20,h_e=1e5,g_e=4,ay=class{dbManager;sessionManager;fallbackAgent=null;constructor(e,r){this.dbManager=e,this.sessionManager=r}setFallbackAgent(e){this.fallbackAgent=e}async startSession(e,r){try{let{apiKey:n,model:i,siteUrl:s,appName:o}=this.getOpenRouterConfig();if(!n)throw new Error("OpenRouter API key not configured. Set CLAUDE_MEM_OPENROUTER_API_KEY in settings or OPENROUTER_API_KEY environment variable.");if(!e.memorySessionId){let p=`openrouter-${e.contentSessionId}-${Date.now()}`;e.memorySessionId=p,this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,p),_.info("SESSION",`MEMORY_ID_GENERATED | sessionDbId=${e.sessionDbId} | provider=OpenRouter`)}let a=He.getInstance().getActiveMode(),c=e.lastPromptNumber===1?au(e.project,e.contentSessionId,e.userPrompt,a):lu(e.userPrompt,e.lastPromptNumber,e.contentSessionId,a);e.conversationHistory.push({role:"user",content:c});let u=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,s,o);if(u.content){let p=u.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(p*.7),e.cumulativeOutputTokens+=Math.floor(p*.3),await _i(u.content,e,this.dbManager,this.sessionManager,r,p,null,"OpenRouter",void 0)}else _.error("SDK","Empty OpenRouter init response - session may lack context",{sessionId:e.sessionDbId,model:i});let l;for await(let p of this.sessionManager.getMessageIterator(e.sessionDbId)){e.processingMessageIds.push(p._persistentId),p.cwd&&(l=p.cwd);let f=e.earliestPendingTimestamp;if(p.type==="observation"){if(p.prompt_number!==void 0&&(e.lastPromptNumber=p.prompt_number),!e.memorySessionId)throw new Error("Cannot process observations: memorySessionId not yet captured. This session may need to be reinitialized.");let m=cu({id:0,tool_name:p.tool_name,tool_input:JSON.stringify(p.tool_input),tool_output:JSON.stringify(p.tool_response),created_at_epoch:f??Date.now(),cwd:p.cwd});e.conversationHistory.push({role:"user",content:m});let h=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,s,o),g=0;h.content&&(g=h.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(g*.7),e.cumulativeOutputTokens+=Math.floor(g*.3)),await _i(h.content||"",e,this.dbManager,this.sessionManager,r,g,f,"OpenRouter",l)}else if(p.type==="summarize"){if(!e.memorySessionId)throw new Error("Cannot process summary: memorySessionId not yet captured. This session may need to be reinitialized.");let m=uu({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:p.last_assistant_message||""},a);e.conversationHistory.push({role:"user",content:m});let h=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,s,o),g=0;h.content&&(g=h.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(g*.7),e.cumulativeOutputTokens+=Math.floor(g*.3)),await _i(h.content||"",e,this.dbManager,this.sessionManager,r,g,f,"OpenRouter",l)}}let d=Date.now()-e.startTime;_.success("SDK","OpenRouter agent completed",{sessionId:e.sessionDbId,duration:`${(d/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length,model:i})}catch(n){if(Pp(n))throw _.warn("SDK","OpenRouter agent aborted",{sessionId:e.sessionDbId}),n;if(Cp(n)&&this.fallbackAgent)return _.warn("SDK","OpenRouter API failed, falling back to Claude SDK",{sessionDbId:e.sessionDbId,error:n instanceof Error?n.message:String(n),historyLength:e.conversationHistory.length}),this.fallbackAgent.startSession(e,r);throw _.failure("SDK","OpenRouter agent error",{sessionDbId:e.sessionDbId},n),n}}estimateTokens(e){return Math.ceil(e.length/g_e)}truncateHistory(e){let r=Se.loadFromFile(jt),n=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES)||m_e,i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS)||h_e;if(e.length<=n&&e.reduce((c,u)=>c+this.estimateTokens(u.content),0)<=i)return e;let s=[],o=0;for(let a=e.length-1;a>=0;a--){let c=e[a],u=this.estimateTokens(c.content);if(s.length>=n||o+u>i){_.warn("SDK","Context window truncated to prevent runaway costs",{originalMessages:e.length,keptMessages:s.length,droppedMessages:a+1,estimatedTokens:o,tokenLimit:i});break}s.unshift(c),o+=u}return s}conversationToOpenAIMessages(e){return e.map(r=>({role:r.role==="assistant"?"assistant":"user",content:r.content}))}async queryOpenRouterMultiTurn(e,r,n,i,s){let o=this.truncateHistory(e),a=this.conversationToOpenAIMessages(o),c=o.reduce((m,h)=>m+h.content.length,0),u=this.estimateTokens(o.map(m=>m.content).join(""));_.debug("SDK",`Querying OpenRouter multi-turn (${n})`,{turns:o.length,totalChars:c,estimatedTokens:u});let l=await fetch(f_e,{method:"POST",headers:{Authorization:`Bearer ${r}`,"HTTP-Referer":i||"https://github.com/thedotmack/claude-mem","X-Title":s||"claude-mem","Content-Type":"application/json"},body:JSON.stringify({model:n,messages:a,temperature:.3,max_tokens:4096})});if(!l.ok){let m=await l.text();throw new Error(`OpenRouter API error: ${l.status} - ${m}`)}let d=await l.json();if(d.error)throw new Error(`OpenRouter API error: ${d.error.code} - ${d.error.message}`);if(!d.choices?.[0]?.message?.content)return _.error("SDK","Empty response from OpenRouter"),{content:""};let p=d.choices[0].message.content,f=d.usage?.total_tokens;if(f){let m=d.usage?.prompt_tokens||0,h=d.usage?.completion_tokens||0,g=m/1e6*3+h/1e6*15;_.info("SDK","OpenRouter API usage",{model:n,inputTokens:m,outputTokens:h,totalTokens:f,estimatedCostUSD:g.toFixed(4),messagesInContext:o.length}),f>5e4&&_.warn("SDK","High token usage detected - consider reducing context",{totalTokens:f,estimatedCost:g.toFixed(4)})}return{content:p,tokensUsed:f}}getOpenRouterConfig(){let e=jt,r=Se.loadFromFile(e),n=r.CLAUDE_MEM_OPENROUTER_API_KEY||Rc("OPENROUTER_API_KEY")||"",i=r.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",s=r.CLAUDE_MEM_OPENROUTER_SITE_URL||"",o=r.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem";return{apiKey:n,model:i,siteUrl:s,appName:o}}};function Ea(){let t=jt;return!!(Se.loadFromFile(t).CLAUDE_MEM_OPENROUTER_API_KEY||Rc("OPENROUTER_API_KEY"))}function Du(){let t=jt;return Se.loadFromFile(t).CLAUDE_MEM_PROVIDER==="openrouter"}re();var cy=class{dbManager;constructor(e){this.dbManager=e}stripProjectPath(e,r){let n=`/${r}/`,i=e.indexOf(n);return i!==-1?e.substring(i+n.length):e}stripProjectPaths(e,r){if(!e)return e;try{let i=JSON.parse(e).map(s=>this.stripProjectPath(s,r));return JSON.stringify(i)}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 i=this.paginate("observations","id, memory_session_id, project, type, title, subtitle, narrative, text, facts, concepts, files_read, files_modified, prompt_number, created_at, created_at_epoch",e,r,n);return{...i,items:i.items.map(s=>this.sanitizeObservation(s))}}getSummaries(e,r,n){let i=this.dbManager.getSessionStore().db,s=` SELECT ss.id, s.content_session_id as session_id, @@ -1338,13 +1402,13 @@ ${n}`}function foe(t,e){let r=Zt.default.resolve(t);if(r.includes("/.git/")||r.i 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 - `,o=[];n&&(s+=" WHERE s.project = ?",o.push(n)),s+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",o.push(r+1,e);let c=i.prepare(s).all(...o);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,n,i,s){let o=this.dbManager.getSessionStore().db,a=`SELECT ${r} FROM ${e}`,c=[];s&&(a+=" WHERE project = ?",c.push(s)),a+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",c.push(i+1,n);let l=o.prepare(a).all(...c);return{items:l.slice(0,i),hasMore:l.length>i,offset:n,limit:i}}};oe();var Gg=class{dbManager;defaultSettings={sidebarOpen:!0,selectedProject:null,theme:"system"};constructor(e){this.dbManager=e}getSettings(){let e=this.dbManager.getSessionStore().db;try{let n=e.prepare("SELECT key, value FROM viewer_settings").all(),i={...this.defaultSettings};for(let s of n){let o=s.key;o in i&&(i[o]=JSON.parse(s.value))}return i}catch(r){return y.debug("WORKER","Failed to load settings, using defaults",{},r),{...this.defaultSettings}}}updateSettings(e){let n=this.dbManager.getSessionStore().db.prepare(` + `,o=[];n&&(s+=" WHERE s.project = ?",o.push(n)),s+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",o.push(r+1,e);let c=i.prepare(s).all(...o);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,n,i,s){let o=this.dbManager.getSessionStore().db,a=`SELECT ${r} FROM ${e}`,c=[];s&&(a+=" WHERE project = ?",c.push(s)),a+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",c.push(i+1,n);let l=o.prepare(a).all(...c);return{items:l.slice(0,i),hasMore:l.length>i,offset:n,limit:i}}};re();var uy=class{dbManager;defaultSettings={sidebarOpen:!0,selectedProject:null,theme:"system"};constructor(e){this.dbManager=e}getSettings(){let e=this.dbManager.getSessionStore().db;try{let n=e.prepare("SELECT key, value FROM viewer_settings").all(),i={...this.defaultSettings};for(let s of n){let o=s.key;o in i&&(i[o]=JSON.parse(s.value))}return i}catch(r){return _.debug("WORKER","Failed to load settings, using defaults",{},r),{...this.defaultSettings}}}updateSettings(e){let n=this.dbManager.getSessionStore().db.prepare(` INSERT OR REPLACE INTO viewer_settings (key, value) VALUES (?, ?) - `);for(let[i,s]of Object.entries(e))n.run(i,JSON.stringify(s));return this.getSettings()}};var lq=require("path");oe();zo();Br();var ps=class{emptyResult(e){return{results:{observations:[],sessions:[],prompts:[]},usedChroma:e==="chroma"||e==="hybrid",fellBack:!1,strategy:e}}};var zt={RECENCY_WINDOW_DAYS:90,RECENCY_WINDOW_MS:7776e6,DEFAULT_LIMIT:20,CHROMA_BATCH_SIZE:100};oe();var lp=class extends ps{constructor(r,n){super();this.chromaSync=r;this.sessionStore=n}name="chroma";canHandle(r){return!!r.query&&!!this.chromaSync}async search(r){let{query:n,searchType:i="all",obsType:s,concepts:o,files:a,limit:c=zt.DEFAULT_LIMIT,project:u,orderBy:l="date_desc"}=r;if(!n)return this.emptyResult("chroma");let d=i==="all"||i==="observations",p=i==="all"||i==="sessions",m=i==="all"||i==="prompts",f=[],g=[],h=[];try{let v=this.buildWhereFilter(i,u);y.debug("SEARCH","ChromaSearchStrategy: Querying Chroma",{query:n,searchType:i});let x=await this.chromaSync.queryChroma(n,zt.CHROMA_BATCH_SIZE,v);if(y.debug("SEARCH","ChromaSearchStrategy: Chroma returned matches",{matchCount:x.ids.length}),x.ids.length===0)return{results:{observations:[],sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"chroma"};let b=this.filterByRecency(x);y.debug("SEARCH","ChromaSearchStrategy: Filtered by recency",{count:b.length});let _=this.categorizeByDocType(b,{searchObservations:d,searchSessions:p,searchPrompts:m});if(_.obsIds.length>0){let S={type:s,concepts:o,files:a,orderBy:l,limit:c,project:u};f=this.sessionStore.getObservationsByIds(_.obsIds,S)}return _.sessionIds.length>0&&(g=this.sessionStore.getSessionSummariesByIds(_.sessionIds,{orderBy:l,limit:c,project:u})),_.promptIds.length>0&&(h=this.sessionStore.getUserPromptsByIds(_.promptIds,{orderBy:l,limit:c,project:u})),y.debug("SEARCH","ChromaSearchStrategy: Hydrated results",{observations:f.length,sessions:g.length,prompts:h.length}),{results:{observations:f,sessions:g,prompts:h},usedChroma:!0,fellBack:!1,strategy:"chroma"}}catch(v){return y.error("SEARCH","ChromaSearchStrategy: Search failed",{},v),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"chroma"}}}buildWhereFilter(r,n){let i;switch(r){case"observations":i={doc_type:"observation"};break;case"sessions":i={doc_type:"session_summary"};break;case"prompts":i={doc_type:"user_prompt"};break;default:i=void 0}if(n){let s={project:n};return i?{$and:[i,s]}:s}return i}filterByRecency(r){let n=Date.now()-zt.RECENCY_WINDOW_MS,i=new Map;for(let s of r.metadatas)s?.sqlite_id!==void 0&&!i.has(s.sqlite_id)&&i.set(s.sqlite_id,s);return r.ids.map(s=>({id:s,meta:i.get(s)})).filter(s=>s.meta&&s.meta.created_at_epoch>n)}categorizeByDocType(r,n){let i=[],s=[],o=[];for(let a of r){let c=a.meta?.doc_type;c==="observation"&&n.searchObservations?i.push(a.id):c==="session_summary"&&n.searchSessions?s.push(a.id):c==="user_prompt"&&n.searchPrompts&&o.push(a.id)}return{obsIds:i,sessionIds:s,promptIds:o}}};oe();var dp=class extends ps{constructor(r){super();this.sessionSearch=r}name="sqlite";canHandle(r){return!r.query||r.strategyHint==="sqlite"}async search(r){let{searchType:n="all",obsType:i,concepts:s,files:o,limit:a=zt.DEFAULT_LIMIT,offset:c=0,project:u,dateRange:l,orderBy:d="date_desc"}=r,p=n==="all"||n==="observations",m=n==="all"||n==="sessions",f=n==="all"||n==="prompts",g=[],h=[],v=[],x={limit:a,offset:c,orderBy:d,project:u,dateRange:l};y.debug("SEARCH","SQLiteSearchStrategy: Filter-only query",{searchType:n,hasDateRange:!!l,hasProject:!!u});try{if(p){let b={...x,type:i,concepts:s,files:o};g=this.sessionSearch.searchObservations(void 0,b)}return m&&(h=this.sessionSearch.searchSessions(void 0,x)),f&&(v=this.sessionSearch.searchUserPrompts(void 0,x)),y.debug("SEARCH","SQLiteSearchStrategy: Results",{observations:g.length,sessions:h.length,prompts:v.length}),{results:{observations:g,sessions:h,prompts:v},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}catch(b){return y.error("SEARCH","SQLiteSearchStrategy: Search failed",{},b),this.emptyResult("sqlite")}}findByConcept(r,n){let{limit:i=zt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a="date_desc"}=n;return this.sessionSearch.findByConcept(r,{limit:i,project:s,dateRange:o,orderBy:a})}findByType(r,n){let{limit:i=zt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a="date_desc"}=n;return this.sessionSearch.findByType(r,{limit:i,project:s,dateRange:o,orderBy:a})}findByFile(r,n){let{limit:i=zt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a="date_desc"}=n;return this.sessionSearch.findByFile(r,{limit:i,project:s,dateRange:o,orderBy:a})}};oe();var pp=class extends ps{constructor(r,n,i){super();this.chromaSync=r;this.sessionStore=n;this.sessionSearch=i}name="hybrid";canHandle(r){return!!this.chromaSync&&(!!r.concepts||!!r.files||!!r.type&&!!r.query||r.strategyHint==="hybrid")}async search(r){let{query:n,limit:i=zt.DEFAULT_LIMIT,project:s}=r;return n?this.emptyResult("hybrid"):this.emptyResult("hybrid")}async findByConcept(r,n){let{limit:i=zt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a}=n,c={limit:i,project:s,dateRange:o,orderBy:a};try{y.debug("SEARCH","HybridSearchStrategy: findByConcept",{concept:r});let u=this.sessionSearch.findByConcept(r,c);if(y.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:u.length}),u.length===0)return this.emptyResult("hybrid");let l=u.map(m=>m.id),d=await this.chromaSync.queryChroma(r,Math.min(l.length,zt.CHROMA_BATCH_SIZE)),p=this.intersectWithRanking(l,d.ids);if(y.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:p.length}),p.length>0){let m=this.sessionStore.getObservationsByIds(p,{limit:i});return m.sort((f,g)=>p.indexOf(f.id)-p.indexOf(g.id)),{results:{observations:m,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(u){return y.error("SEARCH","HybridSearchStrategy: findByConcept failed",{},u),{results:{observations:this.sessionSearch.findByConcept(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByType(r,n){let{limit:i=zt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a}=n,c={limit:i,project:s,dateRange:o,orderBy:a},u=Array.isArray(r)?r.join(", "):r;try{y.debug("SEARCH","HybridSearchStrategy: findByType",{type:u});let l=this.sessionSearch.findByType(r,c);if(y.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:l.length}),l.length===0)return this.emptyResult("hybrid");let d=l.map(f=>f.id),p=await this.chromaSync.queryChroma(u,Math.min(d.length,zt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(d,p.ids);if(y.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:i});return f.sort((g,h)=>m.indexOf(g.id)-m.indexOf(h.id)),{results:{observations:f,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(l){return y.error("SEARCH","HybridSearchStrategy: findByType failed",{},l),{results:{observations:this.sessionSearch.findByType(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByFile(r,n){let{limit:i=zt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a}=n,c={limit:i,project:s,dateRange:o,orderBy:a};try{y.debug("SEARCH","HybridSearchStrategy: findByFile",{filePath:r});let u=this.sessionSearch.findByFile(r,c);y.debug("SEARCH","HybridSearchStrategy: Found file matches",{observations:u.observations.length,sessions:u.sessions.length});let l=u.sessions;if(u.observations.length===0)return{observations:[],sessions:l,usedChroma:!1};let d=u.observations.map(f=>f.id),p=await this.chromaSync.queryChroma(r,Math.min(d.length,zt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(d,p.ids);if(y.debug("SEARCH","HybridSearchStrategy: Ranked observations",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:i});return f.sort((g,h)=>m.indexOf(g.id)-m.indexOf(h.id)),{observations:f,sessions:l,usedChroma:!0}}return{observations:[],sessions:l,usedChroma:!1}}catch(u){y.error("SEARCH","HybridSearchStrategy: findByFile failed",{},u);let l=this.sessionSearch.findByFile(r,c);return{observations:l.observations,sessions:l.sessions,usedChroma:!1}}}intersectWithRanking(r,n){let i=new Set(r),s=[];for(let o of n)i.has(o)&&!s.includes(o)&&s.push(o);return s}};Br();zo();var Qhe=4,mp=class{formatSearchResults(e,r,n=!1){let i=e.observations.length+e.sessions.length+e.prompts.length;if(i===0)return n?this.formatChromaFailureMessage():`No results found matching "${r}"`;let s=this.combineResults(e);s.sort((u,l)=>l.epoch-u.epoch);let o=process.cwd(),a=is(s,u=>u.created_at),c=[];c.push(`Found ${i} result(s) matching "${r}" (${e.observations.length} obs, ${e.sessions.length} sessions, ${e.prompts.length} prompts)`),c.push("");for(let[u,l]of a){c.push(`### ${u}`),c.push("");let d=new Map;for(let p of l){let m="General";if(p.type==="observation"){let f=p.data;m=ei(f.files_modified,o,f.files_read)}d.has(m)||d.set(m,[]),d.get(m).push(p)}for(let[p,m]of d){c.push(`**${p}**`),c.push(this.formatSearchTableHeader());let f="";for(let g of m)if(g.type==="observation"){let h=this.formatObservationSearchRow(g.data,f);c.push(h.row),f=h.time}else if(g.type==="session"){let h=this.formatSessionSearchRow(g.data,f);c.push(h.row),f=h.time}else{let h=this.formatPromptSearchRow(g.data,f);c.push(h.row),f=h.time}c.push("")}}return c.join(` + `);for(let[i,s]of Object.entries(e))n.run(i,JSON.stringify(s));return this.getSettings()}};var g9=require("path");re();ga();Qr();var zs=class{emptyResult(e){return{results:{observations:[],sessions:[],prompts:[]},usedChroma:e==="chroma"||e==="hybrid",fellBack:!1,strategy:e}}};var Dt={RECENCY_WINDOW_DAYS:90,RECENCY_WINDOW_MS:7776e6,DEFAULT_LIMIT:20,CHROMA_BATCH_SIZE:100};re();var rf=class extends zs{constructor(r,n){super();this.chromaSync=r;this.sessionStore=n}name="chroma";canHandle(r){return!!r.query&&!!this.chromaSync}async search(r){let{query:n,searchType:i="all",obsType:s,concepts:o,files:a,limit:c=Dt.DEFAULT_LIMIT,project:u,orderBy:l="date_desc"}=r;if(!n)return this.emptyResult("chroma");let d=i==="all"||i==="observations",p=i==="all"||i==="sessions",f=i==="all"||i==="prompts",m=[],h=[],g=[];try{let v=this.buildWhereFilter(i,u);_.debug("SEARCH","ChromaSearchStrategy: Querying Chroma",{query:n,searchType:i});let S=await this.chromaSync.queryChroma(n,Dt.CHROMA_BATCH_SIZE,v);if(_.debug("SEARCH","ChromaSearchStrategy: Chroma returned matches",{matchCount:S.ids.length}),S.ids.length===0)return{results:{observations:[],sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"chroma"};let b=this.filterByRecency(S);_.debug("SEARCH","ChromaSearchStrategy: Filtered by recency",{count:b.length});let y=this.categorizeByDocType(b,{searchObservations:d,searchSessions:p,searchPrompts:f});if(y.obsIds.length>0){let x={type:s,concepts:o,files:a,orderBy:l,limit:c,project:u};m=this.sessionStore.getObservationsByIds(y.obsIds,x)}return y.sessionIds.length>0&&(h=this.sessionStore.getSessionSummariesByIds(y.sessionIds,{orderBy:l,limit:c,project:u})),y.promptIds.length>0&&(g=this.sessionStore.getUserPromptsByIds(y.promptIds,{orderBy:l,limit:c,project:u})),_.debug("SEARCH","ChromaSearchStrategy: Hydrated results",{observations:m.length,sessions:h.length,prompts:g.length}),{results:{observations:m,sessions:h,prompts:g},usedChroma:!0,fellBack:!1,strategy:"chroma"}}catch(v){return _.error("SEARCH","ChromaSearchStrategy: Search failed",{},v),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"chroma"}}}buildWhereFilter(r,n){let i;switch(r){case"observations":i={doc_type:"observation"};break;case"sessions":i={doc_type:"session_summary"};break;case"prompts":i={doc_type:"user_prompt"};break;default:i=void 0}if(n){let s={project:n};return i?{$and:[i,s]}:s}return i}filterByRecency(r){let n=Date.now()-Dt.RECENCY_WINDOW_MS,i=new Map;for(let s of r.metadatas)s?.sqlite_id!==void 0&&!i.has(s.sqlite_id)&&i.set(s.sqlite_id,s);return r.ids.map(s=>({id:s,meta:i.get(s)})).filter(s=>s.meta&&s.meta.created_at_epoch>n)}categorizeByDocType(r,n){let i=[],s=[],o=[];for(let a of r){let c=a.meta?.doc_type;c==="observation"&&n.searchObservations?i.push(a.id):c==="session_summary"&&n.searchSessions?s.push(a.id):c==="user_prompt"&&n.searchPrompts&&o.push(a.id)}return{obsIds:i,sessionIds:s,promptIds:o}}};re();var nf=class extends zs{constructor(r){super();this.sessionSearch=r}name="sqlite";canHandle(r){return!r.query||r.strategyHint==="sqlite"}async search(r){let{searchType:n="all",obsType:i,concepts:s,files:o,limit:a=Dt.DEFAULT_LIMIT,offset:c=0,project:u,dateRange:l,orderBy:d="date_desc"}=r,p=n==="all"||n==="observations",f=n==="all"||n==="sessions",m=n==="all"||n==="prompts",h=[],g=[],v=[],S={limit:a,offset:c,orderBy:d,project:u,dateRange:l};_.debug("SEARCH","SQLiteSearchStrategy: Filter-only query",{searchType:n,hasDateRange:!!l,hasProject:!!u});try{if(p){let b={...S,type:i,concepts:s,files:o};h=this.sessionSearch.searchObservations(void 0,b)}return f&&(g=this.sessionSearch.searchSessions(void 0,S)),m&&(v=this.sessionSearch.searchUserPrompts(void 0,S)),_.debug("SEARCH","SQLiteSearchStrategy: Results",{observations:h.length,sessions:g.length,prompts:v.length}),{results:{observations:h,sessions:g,prompts:v},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}catch(b){return _.error("SEARCH","SQLiteSearchStrategy: Search failed",{},b),this.emptyResult("sqlite")}}findByConcept(r,n){let{limit:i=Dt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a="date_desc"}=n;return this.sessionSearch.findByConcept(r,{limit:i,project:s,dateRange:o,orderBy:a})}findByType(r,n){let{limit:i=Dt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a="date_desc"}=n;return this.sessionSearch.findByType(r,{limit:i,project:s,dateRange:o,orderBy:a})}findByFile(r,n){let{limit:i=Dt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a="date_desc"}=n;return this.sessionSearch.findByFile(r,{limit:i,project:s,dateRange:o,orderBy:a})}};re();var sf=class extends zs{constructor(r,n,i){super();this.chromaSync=r;this.sessionStore=n;this.sessionSearch=i}name="hybrid";canHandle(r){return!!this.chromaSync&&(!!r.concepts||!!r.files||!!r.type&&!!r.query||r.strategyHint==="hybrid")}async search(r){let{query:n,limit:i=Dt.DEFAULT_LIMIT,project:s}=r;return n?this.emptyResult("hybrid"):this.emptyResult("hybrid")}async findByConcept(r,n){let{limit:i=Dt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a}=n,c={limit:i,project:s,dateRange:o,orderBy:a};try{_.debug("SEARCH","HybridSearchStrategy: findByConcept",{concept:r});let u=this.sessionSearch.findByConcept(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:u.length}),u.length===0)return this.emptyResult("hybrid");let l=u.map(f=>f.id),d=await this.chromaSync.queryChroma(r,Math.min(l.length,Dt.CHROMA_BATCH_SIZE)),p=this.intersectWithRanking(l,d.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:p.length}),p.length>0){let f=this.sessionStore.getObservationsByIds(p,{limit:i});return f.sort((m,h)=>p.indexOf(m.id)-p.indexOf(h.id)),{results:{observations:f,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(u){return _.error("SEARCH","HybridSearchStrategy: findByConcept failed",{},u),{results:{observations:this.sessionSearch.findByConcept(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByType(r,n){let{limit:i=Dt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a}=n,c={limit:i,project:s,dateRange:o,orderBy:a},u=Array.isArray(r)?r.join(", "):r;try{_.debug("SEARCH","HybridSearchStrategy: findByType",{type:u});let l=this.sessionSearch.findByType(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:l.length}),l.length===0)return this.emptyResult("hybrid");let d=l.map(m=>m.id),p=await this.chromaSync.queryChroma(u,Math.min(d.length,Dt.CHROMA_BATCH_SIZE)),f=this.intersectWithRanking(d,p.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:f.length}),f.length>0){let m=this.sessionStore.getObservationsByIds(f,{limit:i});return m.sort((h,g)=>f.indexOf(h.id)-f.indexOf(g.id)),{results:{observations:m,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(l){return _.error("SEARCH","HybridSearchStrategy: findByType failed",{},l),{results:{observations:this.sessionSearch.findByType(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByFile(r,n){let{limit:i=Dt.DEFAULT_LIMIT,project:s,dateRange:o,orderBy:a}=n,c={limit:i,project:s,dateRange:o,orderBy:a};try{_.debug("SEARCH","HybridSearchStrategy: findByFile",{filePath:r});let u=this.sessionSearch.findByFile(r,c);_.debug("SEARCH","HybridSearchStrategy: Found file matches",{observations:u.observations.length,sessions:u.sessions.length});let l=u.sessions;if(u.observations.length===0)return{observations:[],sessions:l,usedChroma:!1};let d=u.observations.map(m=>m.id),p=await this.chromaSync.queryChroma(r,Math.min(d.length,Dt.CHROMA_BATCH_SIZE)),f=this.intersectWithRanking(d,p.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked observations",{count:f.length}),f.length>0){let m=this.sessionStore.getObservationsByIds(f,{limit:i});return m.sort((h,g)=>f.indexOf(h.id)-f.indexOf(g.id)),{observations:m,sessions:l,usedChroma:!0}}return{observations:[],sessions:l,usedChroma:!1}}catch(u){_.error("SEARCH","HybridSearchStrategy: findByFile failed",{},u);let l=this.sessionSearch.findByFile(r,c);return{observations:l.observations,sessions:l.sessions,usedChroma:!1}}}intersectWithRanking(r,n){let i=new Set(r),s=[];for(let o of n)i.has(o)&&!s.includes(o)&&s.push(o);return s}};Qr();ga();var v_e=4,of=class{formatSearchResults(e,r,n=!1){let i=e.observations.length+e.sessions.length+e.prompts.length;if(i===0)return n?this.formatChromaFailureMessage():`No results found matching "${r}"`;let s=this.combineResults(e);s.sort((u,l)=>l.epoch-u.epoch);let o=process.cwd(),a=Os(s,u=>u.created_at),c=[];c.push(`Found ${i} result(s) matching "${r}" (${e.observations.length} obs, ${e.sessions.length} sessions, ${e.prompts.length} prompts)`),c.push("");for(let[u,l]of a){c.push(`### ${u}`),c.push("");let d=new Map;for(let p of l){let f="General";if(p.type==="observation"){let m=p.data;f=vi(m.files_modified,o,m.files_read)}d.has(f)||d.set(f,[]),d.get(f).push(p)}for(let[p,f]of d){c.push(`**${p}**`),c.push(this.formatSearchTableHeader());let m="";for(let h of f)if(h.type==="observation"){let g=this.formatObservationSearchRow(h.data,m);c.push(g.row),m=g.time}else if(h.type==="session"){let g=this.formatSessionSearchRow(h.data,m);c.push(g.row),m=g.time}else{let g=this.formatPromptSearchRow(h.data,m);c.push(g.row),m=g.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}`,i=lr(e.created_at_epoch),s=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",a=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?'"':i} | ${s} | ${o} | ~${a} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=lr(e.created_at_epoch),s="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?'"':i} | ${s} | ${o} | - |`,time:i}}formatPromptSearchRow(e,r){let n=`#P${e.id}`,i=lr(e.created_at_epoch),s="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?'"':i} | ${s} | ${o} | - |`,time:i}}formatObservationIndex(e,r){let n=`#${e.id}`,i=lr(e.created_at_epoch),s=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",a=this.estimateReadTokens(e),c=He.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${s} | ${o} | ~${a} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=lr(e.created_at_epoch),s="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${s} | ${o} | - | - |`}formatPromptIndex(e,r){let n=`#P${e.id}`,i=lr(e.created_at_epoch),s="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${s} | ${o} | - | - |`}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/Qhe)}formatChromaFailureMessage(){return`Vector search failed - semantic search unavailable. +|-----|------|---|-------|------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,i=pr(e.created_at_epoch),s=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",a=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?'"':i} | ${s} | ${o} | ~${a} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=pr(e.created_at_epoch),s="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?'"':i} | ${s} | ${o} | - |`,time:i}}formatPromptSearchRow(e,r){let n=`#P${e.id}`,i=pr(e.created_at_epoch),s="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?'"':i} | ${s} | ${o} | - |`,time:i}}formatObservationIndex(e,r){let n=`#${e.id}`,i=pr(e.created_at_epoch),s=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",a=this.estimateReadTokens(e),c=He.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${s} | ${o} | ~${a} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=pr(e.created_at_epoch),s="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${s} | ${o} | - | - |`}formatPromptIndex(e,r){let n=`#P${e.id}`,i=pr(e.created_at_epoch),s="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${s} | ${o} | - | - |`}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/v_e)}formatChromaFailureMessage(){return`Vector search failed - semantic search unavailable. To enable semantic search: 1. Install uv: https://docs.astral.sh/uv/getting-started/installation/ @@ -1360,55 +1424,55 @@ Search Strategy: Tips: - Filter by type: obs_type="bugfix,feature" - Filter by date: dateStart="2025-01-01" -- Sort: orderBy="date_desc" or "date_asc"`}};Br();zo();var Go=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,i)=>n.epoch-i.epoch),r}filterByDepth(e,r,n,i,s){if(e.length===0)return e;let o=this.findAnchorIndex(e,r,n);if(o===-1)return e;let a=Math.max(0,o-i),c=Math.min(e.length,o+s+1);return e.slice(a,c)}findAnchorIndex(e,r,n){if(typeof r=="number")return e.findIndex(s=>s.type==="observation"&&s.data.id===r);if(typeof r=="string"&&r.startsWith("S")){let s=parseInt(r.slice(1),10);return e.findIndex(o=>o.type==="session"&&o.data.id===s)}let i=e.findIndex(s=>s.epoch>=n);return i===-1?e.length-1:i}formatTimeline(e,r,n={}){let{query:i,depthBefore:s,depthAfter:o,cwd:a=process.cwd()}=n;if(e.length===0)return i?`Found observation matching "${i}", but no timeline context available.`:"No timeline items found";let c=[];if(i&&r){let d=e.find(m=>m.type==="observation"&&m.data.id===r),p=d?d.data.title||"Untitled":"Unknown";c.push(`# Timeline for query: "${i}"`),c.push(`**Anchor:** Observation #${r} - ${p}`)}else r?c.push(`# Timeline around anchor: ${r}`):c.push("# Timeline");s!==void 0&&o!==void 0?c.push(`**Window:** ${s} records before -> ${o} records after | **Items:** ${e.length}`):c.push(`**Items:** ${e.length}`),c.push("");let u=this.groupByDay(e),l=this.sortDaysChronologically(u);for(let[d,p]of l){c.push(`### ${d}`),c.push("");let m=null,f="",g=!1;for(let h of p){let v=this.isAnchorItem(h,r);if(h.type==="session"){g&&(c.push(""),g=!1,m=null,f="");let x=h.data,b=x.request||"Session summary",_=v?" <- **ANCHOR**":"";c.push(`**\u{1F3AF} #S${x.id}** ${b} (${_n(h.epoch)})${_}`),c.push("")}else if(h.type==="prompt"){g&&(c.push(""),g=!1,m=null,f="");let x=h.data,b=x.prompt_text.length>100?x.prompt_text.substring(0,100)+"...":x.prompt_text;c.push(`**\u{1F4AC} User Prompt #${x.prompt_number}** (${_n(h.epoch)})`),c.push(`> ${b}`),c.push("")}else if(h.type==="observation"){let x=h.data,b=ei(x.files_modified,a,x.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 _=He.getInstance().getTypeIcon(x.type),S=lr(h.epoch),w=x.title||"Untitled",E=Rc(x.narrative),R=S!==f?S:'"';f=S;let A=v?" <- **ANCHOR**":"";c.push(`| #${x.id} | ${R} | ${_} | ${w}${A} | ~${E} |`)}}g&&c.push("")}return c.join(` -`)}groupByDay(e){let r=new Map;for(let n of e){let i=ns(n.epoch);r.has(i)||r.set(i,[]),r.get(i).push(n)}return r}sortDaysChronologically(e){return Array.from(e.entries()).sort((r,n)=>{let i=new Date(r[0]).getTime(),s=new Date(n[0]).getTime();return i-s})}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}};oe();var fp=class{constructor(e,r,n){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.sqliteStrategy=new dp(e),n&&(this.chromaStrategy=new lp(n,r),this.hybridStrategy=new pp(n,r,e)),this.resultFormatter=new mp,this.timelineBuilder=new Go}chromaStrategy=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 y.debug("SEARCH","Orchestrator: Filter-only query, using SQLite",{}),await this.sqliteStrategy.search(e);if(this.chromaStrategy){y.debug("SEARCH","Orchestrator: Using Chroma semantic search",{});let r=await this.chromaStrategy.search(e);return r.usedChroma?r:(y.debug("SEARCH","Orchestrator: Chroma failed, falling back to SQLite",{}),{...await this.sqliteStrategy.search({...e,query:void 0}),fellBack:!0})}return y.debug("SEARCH","Orchestrator: Chroma 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,i,s){let o=this.timelineBuilder.buildTimeline(e);return this.timelineBuilder.filterByDepth(o,r,n,i,s)}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}isChromaAvailable(){return!!this.chromaSync}};var Wg=class{constructor(e,r,n,i,s){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.formatter=i;this.timelineService=s;this.orchestrator=new fp(e,r,n),this.timelineBuilder=new Go}orchestrator;timelineBuilder;async queryChroma(e,r,n){return this.chromaSync?await this.chromaSync.queryChroma(e,r,n):{ids:[],distances:[],metadatas:[]}}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:i,obs_type:s,concepts:o,files:a,format:c,...u}=r,l=[],d=[],p=[],m=!1,f=!i||i==="observations",g=!i||i==="sessions",h=!i||i==="prompts";if(n)if(this.chromaSync){let E=!1;y.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:i||"all"});let $;if(i==="observations"?$={doc_type:"observation"}:i==="sessions"?$={doc_type:"session_summary"}:i==="prompts"&&($={doc_type:"user_prompt"}),u.project){let A={project:u.project};$=$?{$and:[$,A]}:A}let R=await this.queryChroma(n,100,$);if(E=!0,y.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:R.ids.length}),R.ids.length>0){let{dateRange:A}=u,N,U;A?(A.start&&(N=typeof A.start=="number"?A.start:new Date(A.start).getTime()),A.end&&(U=typeof A.end=="number"?A.end:new Date(A.end).getTime())):N=Date.now()-zt.RECENCY_WINDOW_MS;let W=R.metadatas.map((ze,kt)=>({id:R.ids[kt],meta:ze,isRecent:ze&&ze.created_at_epoch!=null&&(!N||ze.created_at_epoch>=N)&&(!U||ze.created_at_epoch<=U)})).filter(ze=>ze.isRecent);y.debug("SEARCH",A?"Results within user date range":"Results within 90-day window",{count:W.length});let j=[],ae=[],Ne=[];for(let ze of W){let kt=ze.meta?.doc_type;kt==="observation"&&f?j.push(ze.id):kt==="session_summary"&&g?ae.push(ze.id):kt==="user_prompt"&&h&&Ne.push(ze.id)}if(y.debug("SEARCH","Categorized results by type",{observations:j.length,sessions:ae.length,prompts:p.length}),j.length>0){let ze={...u,type:s,concepts:o,files:a};l=this.sessionStore.getObservationsByIds(j,ze)}ae.length>0&&(d=this.sessionStore.getSessionSummariesByIds(ae,{orderBy:"date_desc",limit:u.limit,project:u.project})),Ne.length>0&&(p=this.sessionStore.getUserPromptsByIds(Ne,{orderBy:"date_desc",limit:u.limit,project:u.project})),y.debug("SEARCH","Hydrated results from SQLite",{observations:l.length,sessions:d.length,prompts:p.length})}else y.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else n&&(m=!0,y.debug("SEARCH","ChromaDB not initialized - semantic search unavailable",{}),y.debug("SEARCH","Install UVX/Python to enable vector search",{url:"https://docs.astral.sh/uv/getting-started/installation/"}),l=[],d=[],p=[]);else{y.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let E={...u,type:s,concepts:o,files:a};f&&(l=this.sessionSearch.searchObservations(void 0,E)),g&&(d=this.sessionSearch.searchSessions(void 0,u)),h&&(p=this.sessionSearch.searchUserPrompts(void 0,u))}let v=l.length+d.length+p.length;if(c==="json")return{observations:l,sessions:d,prompts:p,totalResults:v,query:n||""};if(v===0)return m?{content:[{type:"text",text:`Vector search failed - semantic search unavailable. +- Sort: orderBy="date_desc" or "date_asc"`}};Qr();ga();var ka=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,i)=>n.epoch-i.epoch),r}filterByDepth(e,r,n,i,s){if(e.length===0)return e;let o=this.findAnchorIndex(e,r,n);if(o===-1)return e;let a=Math.max(0,o-i),c=Math.min(e.length,o+s+1);return e.slice(a,c)}findAnchorIndex(e,r,n){if(typeof r=="number")return e.findIndex(s=>s.type==="observation"&&s.data.id===r);if(typeof r=="string"&&r.startsWith("S")){let s=parseInt(r.slice(1),10);return e.findIndex(o=>o.type==="session"&&o.data.id===s)}let i=e.findIndex(s=>s.epoch>=n);return i===-1?e.length-1:i}formatTimeline(e,r,n={}){let{query:i,depthBefore:s,depthAfter:o,cwd:a=process.cwd()}=n;if(e.length===0)return i?`Found observation matching "${i}", but no timeline context available.`:"No timeline items found";let c=[];if(i&&r){let d=e.find(f=>f.type==="observation"&&f.data.id===r),p=d?d.data.title||"Untitled":"Unknown";c.push(`# Timeline for query: "${i}"`),c.push(`**Anchor:** Observation #${r} - ${p}`)}else r?c.push(`# Timeline around anchor: ${r}`):c.push("# Timeline");s!==void 0&&o!==void 0?c.push(`**Window:** ${s} records before -> ${o} records after | **Items:** ${e.length}`):c.push(`**Items:** ${e.length}`),c.push("");let u=this.groupByDay(e),l=this.sortDaysChronologically(u);for(let[d,p]of l){c.push(`### ${d}`),c.push("");let f=null,m="",h=!1;for(let g of p){let v=this.isAnchorItem(g,r);if(g.type==="session"){h&&(c.push(""),h=!1,f=null,m="");let S=g.data,b=S.request||"Session summary",y=v?" <- **ANCHOR**":"";c.push(`**\u{1F3AF} #S${S.id}** ${b} (${Rn(g.epoch)})${y}`),c.push("")}else if(g.type==="prompt"){h&&(c.push(""),h=!1,f=null,m="");let S=g.data,b=S.prompt_text.length>100?S.prompt_text.substring(0,100)+"...":S.prompt_text;c.push(`**\u{1F4AC} User Prompt #${S.prompt_number}** (${Rn(g.epoch)})`),c.push(`> ${b}`),c.push("")}else if(g.type==="observation"){let S=g.data,b=vi(S.files_modified,a,S.files_read);b!==f&&(h&&c.push(""),c.push(`**${b}**`),c.push("| ID | Time | T | Title | Tokens |"),c.push("|----|------|---|-------|--------|"),f=b,h=!0,m="");let y=He.getInstance().getTypeIcon(S.type),x=pr(g.epoch),w=S.title||"Untitled",E=du(S.narrative),I=x!==m?x:'"';m=x;let A=v?" <- **ANCHOR**":"";c.push(`| #${S.id} | ${I} | ${y} | ${w}${A} | ~${E} |`)}}h&&c.push("")}return c.join(` +`)}groupByDay(e){let r=new Map;for(let n of e){let i=Rs(n.epoch);r.has(i)||r.set(i,[]),r.get(i).push(n)}return r}sortDaysChronologically(e){return Array.from(e.entries()).sort((r,n)=>{let i=new Date(r[0]).getTime(),s=new Date(n[0]).getTime();return i-s})}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 af=class{constructor(e,r,n){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.sqliteStrategy=new nf(e),n&&(this.chromaStrategy=new rf(n,r),this.hybridStrategy=new sf(n,r,e)),this.resultFormatter=new of,this.timelineBuilder=new ka}chromaStrategy=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.chromaStrategy){_.debug("SEARCH","Orchestrator: Using Chroma semantic search",{});let r=await this.chromaStrategy.search(e);return r.usedChroma?r:(_.debug("SEARCH","Orchestrator: Chroma failed, falling back to SQLite",{}),{...await this.sqliteStrategy.search({...e,query:void 0}),fellBack:!0})}return _.debug("SEARCH","Orchestrator: Chroma 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,i,s){let o=this.timelineBuilder.buildTimeline(e);return this.timelineBuilder.filterByDepth(o,r,n,i,s)}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}isChromaAvailable(){return!!this.chromaSync}};var ly=class{constructor(e,r,n,i,s){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.formatter=i;this.timelineService=s;this.orchestrator=new af(e,r,n),this.timelineBuilder=new ka}orchestrator;timelineBuilder;async queryChroma(e,r,n){return this.chromaSync?await this.chromaSync.queryChroma(e,r,n):{ids:[],distances:[],metadatas:[]}}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:i,obs_type:s,concepts:o,files:a,format:c,...u}=r,l=[],d=[],p=[],f=!1,m=!i||i==="observations",h=!i||i==="sessions",g=!i||i==="prompts";if(n)if(this.chromaSync){let E=!1;_.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:i||"all"});let T;if(i==="observations"?T={doc_type:"observation"}:i==="sessions"?T={doc_type:"session_summary"}:i==="prompts"&&(T={doc_type:"user_prompt"}),u.project){let A={project:u.project};T=T?{$and:[T,A]}:A}let I=await this.queryChroma(n,100,T);if(E=!0,_.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:I.ids.length}),I.ids.length>0){let{dateRange:A}=u,N,U;A?(A.start&&(N=typeof A.start=="number"?A.start:new Date(A.start).getTime()),A.end&&(U=typeof A.end=="number"?A.end:new Date(A.end).getTime())):N=Date.now()-Dt.RECENCY_WINDOW_MS;let V=I.metadatas.map((ze,Et)=>({id:I.ids[Et],meta:ze,isRecent:ze&&ze.created_at_epoch!=null&&(!N||ze.created_at_epoch>=N)&&(!U||ze.created_at_epoch<=U)})).filter(ze=>ze.isRecent);_.debug("SEARCH",A?"Results within user date range":"Results within 90-day window",{count:V.length});let j=[],ae=[],Me=[];for(let ze of V){let Et=ze.meta?.doc_type;Et==="observation"&&m?j.push(ze.id):Et==="session_summary"&&h?ae.push(ze.id):Et==="user_prompt"&&g&&Me.push(ze.id)}if(_.debug("SEARCH","Categorized results by type",{observations:j.length,sessions:ae.length,prompts:p.length}),j.length>0){let ze={...u,type:s,concepts:o,files:a};l=this.sessionStore.getObservationsByIds(j,ze)}ae.length>0&&(d=this.sessionStore.getSessionSummariesByIds(ae,{orderBy:"date_desc",limit:u.limit,project:u.project})),Me.length>0&&(p=this.sessionStore.getUserPromptsByIds(Me,{orderBy:"date_desc",limit:u.limit,project:u.project})),_.debug("SEARCH","Hydrated results from SQLite",{observations:l.length,sessions:d.length,prompts:p.length})}else _.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else n&&(f=!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/"}),l=[],d=[],p=[]);else{_.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let E={...u,type:s,concepts:o,files:a};m&&(l=this.sessionSearch.searchObservations(void 0,E)),h&&(d=this.sessionSearch.searchSessions(void 0,u)),g&&(p=this.sessionSearch.searchUserPrompts(void 0,u))}let v=l.length+d.length+p.length;if(c==="json")return{observations:l,sessions:d,prompts:p,totalResults:v,query:n||""};if(v===0)return f?{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 matching "${n}"`}]};let x=[...l.map(E=>({type:"observation",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...d.map(E=>({type:"session",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...p.map(E=>({type:"prompt",data:E,epoch:E.created_at_epoch,created_at:E.created_at}))];u.orderBy==="date_desc"?x.sort((E,$)=>$.epoch-E.epoch):u.orderBy==="date_asc"&&x.sort((E,$)=>E.epoch-$.epoch);let b=x.slice(0,u.limit||20),_=process.cwd(),S=is(b,E=>E.created_at),w=[];w.push(`Found ${v} result(s) matching "${n}" (${l.length} obs, ${d.length} sessions, ${p.length} prompts)`),w.push("");for(let[E,$]of S){w.push(`### ${E}`),w.push("");let R=new Map;for(let A of $){let N="General";A.type==="observation"&&(N=ei(A.data.files_modified,_,A.data.files_read)),R.has(N)||R.set(N,[]),R.get(N).push(A)}for(let[A,N]of R){w.push(`**${A}**`),w.push(this.formatter.formatSearchTableHeader());let U="";for(let W of N)if(W.type==="observation"){let j=this.formatter.formatObservationSearchRow(W.data,U);w.push(j.row),U=j.time}else if(W.type==="session"){let j=this.formatter.formatSessionSearchRow(W.data,U);w.push(j.row),U=j.time}else{let j=this.formatter.formatUserPromptSearchRow(W.data,U);w.push(j.row),U=j.time}w.push("")}}return{content:[{type:"text",text:w.join(` -`)}]}}async timeline(e){let{anchor:r,query:n,depth_before:i=10,depth_after:s=10,project:o}=e,a=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,u,l;if(n){let h=[];if(this.chromaSync)try{y.debug("SEARCH","Using hybrid semantic search for timeline query",{});let x=await this.queryChroma(n,100);if(y.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:x?.ids?.length??0}),x?.ids&&x.ids.length>0){let b=Date.now()-zt.RECENCY_WINDOW_MS,_=x.ids.filter((S,w)=>{let E=x.metadatas[w];return E&&E.created_at_epoch>b});_.length>0&&(h=this.sessionStore.getObservationsByIds(_,{orderBy:"date_desc",limit:1}))}}catch(x){y.error("SEARCH","Chroma search failed for timeline, continuing without semantic results",{},x)}if(h.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};let v=h[0];c=v.id,u=v.created_at_epoch,y.debug("SEARCH","Query mode: Using observation as timeline anchor",{observationId:v.id}),l=this.sessionStore.getTimelineAroundObservation(v.id,v.created_at_epoch,i,s,o)}else if(typeof r=="number"){let h=this.sessionStore.getObservationById(r);if(!h)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};c=r,u=h.created_at_epoch,l=this.sessionStore.getTimelineAroundObservation(r,u,i,s,o)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let h=r.replace(/^#?S/,""),v=parseInt(h,10),x=this.sessionStore.getSessionSummariesByIds([v]);if(x.length===0)return{content:[{type:"text",text:`Session #${v} not found`}],isError:!0};u=x[0].created_at_epoch,c=`S${v}`,l=this.sessionStore.getTimelineAroundTimestamp(u,i,s,o)}else{let h=new Date(r);if(isNaN(h.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};u=h.getTime(),c=r,l=this.sessionStore.getTimelineAroundTimestamp(u,i,s,o)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let d=[...(l.observations||[]).map(h=>({type:"observation",data:h,epoch:h.created_at_epoch})),...(l.sessions||[]).map(h=>({type:"session",data:h,epoch:h.created_at_epoch})),...(l.prompts||[]).map(h=>({type:"prompt",data:h,epoch:h.created_at_epoch}))];d.sort((h,v)=>h.epoch-v.epoch);let p=this.timelineService.filterByDepth(d,c,u,i,s);if(!p||p.length===0)return{content:[{type:"text",text:n?`Found observation matching "${n}", but no timeline context available (${i} records before, ${s} records after).`:`No context found around anchor (${i} records before, ${s} records after)`}]};let m=[];if(n){let h=p.find(x=>x.type==="observation"&&x.data.id===c),v=h&&h.type==="observation"?h.data.title||"Untitled":"Unknown";m.push(`# Timeline for query: "${n}"`),m.push(`**Anchor:** Observation #${c} - ${v}`)}else m.push(`# Timeline around anchor: ${c}`);m.push(`**Window:** ${i} records before -> ${s} records after | **Items:** ${p?.length??0}`),m.push("");let f=new Map;for(let h of p){let v=ns(h.epoch);f.has(v)||f.set(v,[]),f.get(v).push(h)}let g=Array.from(f.entries()).sort((h,v)=>{let x=new Date(h[0]).getTime(),b=new Date(v[0]).getTime();return x-b});for(let[h,v]of g){m.push(`### ${h}`),m.push("");let x=null,b="",_=!1;for(let S of v){let w=typeof c=="number"&&S.type==="observation"&&S.data.id===c||typeof c=="string"&&c.startsWith("S")&&S.type==="session"&&`S${S.data.id}`===c;if(S.type==="session"){_&&(m.push(""),_=!1,x=null,b="");let E=S.data,$=E.request||"Session summary",R=w?" <- **ANCHOR**":"";m.push(`**\u{1F3AF} #S${E.id}** ${$} (${_n(S.epoch)})${R}`),m.push("")}else if(S.type==="prompt"){_&&(m.push(""),_=!1,x=null,b="");let E=S.data,$=E.prompt_text.length>100?E.prompt_text.substring(0,100)+"...":E.prompt_text;m.push(`**\u{1F4AC} User Prompt #${E.prompt_number}** (${_n(S.epoch)})`),m.push(`> ${$}`),m.push("")}else if(S.type==="observation"){let E=S.data,$=ei(E.files_modified,a,E.files_read);$!==x&&(_&&m.push(""),m.push(`**${$}**`),m.push("| ID | Time | T | Title | Tokens |"),m.push("|----|------|---|-------|--------|"),x=$,_=!0,b="");let R=He.getInstance().getTypeIcon(E.type),A=lr(S.epoch),N=E.title||"Untitled",U=Rc(E.narrative),j=A!==b?A:'"';b=A;let ae=w?" <- **ANCHOR**":"";m.push(`| #${E.id} | ${j} | ${R} | ${N}${ae} | ~${U} |`)}}_&&m.push("")}return{content:[{type:"text",text:m.join(` -`)}]}}async decisions(e){let r=this.normalizeParams(e),{query:n,...i}=r,s=[];if(this.chromaSync)try{if(n){y.debug("SEARCH","Using Chroma semantic search with type=decision filter",{});let u=(await this.queryChroma(n,Math.min((i.limit||20)*2,100),{type:"decision"})).ids;u.length>0&&(s=this.sessionStore.getObservationsByIds(u,{...i,type:"decision"}),s.sort((l,d)=>u.indexOf(l.id)-u.indexOf(d.id)))}else{y.debug("SEARCH","Using metadata-first + semantic ranking for decisions",{});let c=this.sessionSearch.findByType("decision",i);if(c.length>0){let u=c.map(p=>p.id),l=await this.queryChroma("decision",Math.min(u.length,100)),d=[];for(let p of l.ids)u.includes(p)&&!d.includes(p)&&d.push(p);d.length>0&&(s=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),s.sort((p,m)=>d.indexOf(p.id)-d.indexOf(m.id)))}}}catch(c){y.error("SEARCH","Chroma search failed for decisions, falling back to metadata search",{},c)}if(s.length===0&&(s=this.sessionSearch.findByType("decision",i)),s.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let o=`Found ${s.length} decision(s) +Note: You can still use filter-only searches (date ranges, types, files) without a query term.`}]}:{content:[{type:"text",text:`No results found matching "${n}"`}]};let S=[...l.map(E=>({type:"observation",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...d.map(E=>({type:"session",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...p.map(E=>({type:"prompt",data:E,epoch:E.created_at_epoch,created_at:E.created_at}))];u.orderBy==="date_desc"?S.sort((E,T)=>T.epoch-E.epoch):u.orderBy==="date_asc"&&S.sort((E,T)=>E.epoch-T.epoch);let b=S.slice(0,u.limit||20),y=process.cwd(),x=Os(b,E=>E.created_at),w=[];w.push(`Found ${v} result(s) matching "${n}" (${l.length} obs, ${d.length} sessions, ${p.length} prompts)`),w.push("");for(let[E,T]of x){w.push(`### ${E}`),w.push("");let I=new Map;for(let A of T){let N="General";A.type==="observation"&&(N=vi(A.data.files_modified,y,A.data.files_read)),I.has(N)||I.set(N,[]),I.get(N).push(A)}for(let[A,N]of I){w.push(`**${A}**`),w.push(this.formatter.formatSearchTableHeader());let U="";for(let V of N)if(V.type==="observation"){let j=this.formatter.formatObservationSearchRow(V.data,U);w.push(j.row),U=j.time}else if(V.type==="session"){let j=this.formatter.formatSessionSearchRow(V.data,U);w.push(j.row),U=j.time}else{let j=this.formatter.formatUserPromptSearchRow(V.data,U);w.push(j.row),U=j.time}w.push("")}}return{content:[{type:"text",text:w.join(` +`)}]}}async timeline(e){let{anchor:r,query:n,depth_before:i=10,depth_after:s=10,project:o}=e,a=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,u,l;if(n){let g=[];if(this.chromaSync)try{_.debug("SEARCH","Using hybrid semantic search for timeline query",{});let S=await this.queryChroma(n,100);if(_.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:S?.ids?.length??0}),S?.ids&&S.ids.length>0){let b=Date.now()-Dt.RECENCY_WINDOW_MS,y=S.ids.filter((x,w)=>{let E=S.metadatas[w];return E&&E.created_at_epoch>b});y.length>0&&(g=this.sessionStore.getObservationsByIds(y,{orderBy:"date_desc",limit:1}))}}catch(S){_.error("SEARCH","Chroma search failed for timeline, continuing without semantic results",{},S)}if(g.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};let v=g[0];c=v.id,u=v.created_at_epoch,_.debug("SEARCH","Query mode: Using observation as timeline anchor",{observationId:v.id}),l=this.sessionStore.getTimelineAroundObservation(v.id,v.created_at_epoch,i,s,o)}else if(typeof r=="number"){let g=this.sessionStore.getObservationById(r);if(!g)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};c=r,u=g.created_at_epoch,l=this.sessionStore.getTimelineAroundObservation(r,u,i,s,o)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let g=r.replace(/^#?S/,""),v=parseInt(g,10),S=this.sessionStore.getSessionSummariesByIds([v]);if(S.length===0)return{content:[{type:"text",text:`Session #${v} not found`}],isError:!0};u=S[0].created_at_epoch,c=`S${v}`,l=this.sessionStore.getTimelineAroundTimestamp(u,i,s,o)}else{let g=new Date(r);if(isNaN(g.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};u=g.getTime(),c=r,l=this.sessionStore.getTimelineAroundTimestamp(u,i,s,o)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let d=[...(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}))];d.sort((g,v)=>g.epoch-v.epoch);let p=this.timelineService.filterByDepth(d,c,u,i,s);if(!p||p.length===0)return{content:[{type:"text",text:n?`Found observation matching "${n}", but no timeline context available (${i} records before, ${s} records after).`:`No context found around anchor (${i} records before, ${s} records after)`}]};let f=[];if(n){let g=p.find(S=>S.type==="observation"&&S.data.id===c),v=g&&g.type==="observation"?g.data.title||"Untitled":"Unknown";f.push(`# Timeline for query: "${n}"`),f.push(`**Anchor:** Observation #${c} - ${v}`)}else f.push(`# Timeline around anchor: ${c}`);f.push(`**Window:** ${i} records before -> ${s} records after | **Items:** ${p?.length??0}`),f.push("");let m=new Map;for(let g of p){let v=Rs(g.epoch);m.has(v)||m.set(v,[]),m.get(v).push(g)}let h=Array.from(m.entries()).sort((g,v)=>{let S=new Date(g[0]).getTime(),b=new Date(v[0]).getTime();return S-b});for(let[g,v]of h){f.push(`### ${g}`),f.push("");let S=null,b="",y=!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"){y&&(f.push(""),y=!1,S=null,b="");let E=x.data,T=E.request||"Session summary",I=w?" <- **ANCHOR**":"";f.push(`**\u{1F3AF} #S${E.id}** ${T} (${Rn(x.epoch)})${I}`),f.push("")}else if(x.type==="prompt"){y&&(f.push(""),y=!1,S=null,b="");let E=x.data,T=E.prompt_text.length>100?E.prompt_text.substring(0,100)+"...":E.prompt_text;f.push(`**\u{1F4AC} User Prompt #${E.prompt_number}** (${Rn(x.epoch)})`),f.push(`> ${T}`),f.push("")}else if(x.type==="observation"){let E=x.data,T=vi(E.files_modified,a,E.files_read);T!==S&&(y&&f.push(""),f.push(`**${T}**`),f.push("| ID | Time | T | Title | Tokens |"),f.push("|----|------|---|-------|--------|"),S=T,y=!0,b="");let I=He.getInstance().getTypeIcon(E.type),A=pr(x.epoch),N=E.title||"Untitled",U=du(E.narrative),j=A!==b?A:'"';b=A;let ae=w?" <- **ANCHOR**":"";f.push(`| #${E.id} | ${j} | ${I} | ${N}${ae} | ~${U} |`)}}y&&f.push("")}return{content:[{type:"text",text:f.join(` +`)}]}}async decisions(e){let r=this.normalizeParams(e),{query:n,...i}=r,s=[];if(this.chromaSync)try{if(n){_.debug("SEARCH","Using Chroma semantic search with type=decision filter",{});let u=(await this.queryChroma(n,Math.min((i.limit||20)*2,100),{type:"decision"})).ids;u.length>0&&(s=this.sessionStore.getObservationsByIds(u,{...i,type:"decision"}),s.sort((l,d)=>u.indexOf(l.id)-u.indexOf(d.id)))}else{_.debug("SEARCH","Using metadata-first + semantic ranking for decisions",{});let c=this.sessionSearch.findByType("decision",i);if(c.length>0){let u=c.map(p=>p.id),l=await this.queryChroma("decision",Math.min(u.length,100)),d=[];for(let p of l.ids)u.includes(p)&&!d.includes(p)&&d.push(p);d.length>0&&(s=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),s.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}}catch(c){_.error("SEARCH","Chroma search failed for decisions, falling back to metadata search",{},c)}if(s.length===0&&(s=this.sessionSearch.findByType("decision",i)),s.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let o=`Found ${s.length} decision(s) ${this.formatter.formatTableHeader()}`,a=s.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:o+` `+a.join(` -`)}]}}async changes(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync)try{y.debug("SEARCH","Using hybrid search for change-related observations",{});let a=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;if([...a,...c,...u].forEach(d=>l.add(d.id)),l.size>0){let d=Array.from(l),p=await this.queryChroma("what changed",Math.min(d.length,100)),m=[];for(let f of p.ids)d.includes(f)&&!m.includes(f)&&m.push(f);m.length>0&&(i=this.sessionStore.getObservationsByIds(m,{limit:n.limit||20}),i.sort((f,g)=>m.indexOf(f.id)-m.indexOf(g.id)))}}catch(a){y.error("SEARCH","Chroma search failed for changes, falling back to metadata search",{},a)}if(i.length===0){let a=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;[...a,...c,...u].forEach(d=>l.add(d.id)),i=Array.from(l).map(d=>a.find(p=>p.id===d)||c.find(p=>p.id===d)||u.find(p=>p.id===d)).filter(Boolean),i.sort((d,p)=>p.created_at_epoch-d.created_at_epoch),i=i.slice(0,n.limit||20)}if(i.length===0)return{content:[{type:"text",text:"No change-related observations found"}]};let s=`Found ${i.length} change-related observation(s) +`)}]}}async changes(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync)try{_.debug("SEARCH","Using hybrid search for change-related observations",{});let a=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;if([...a,...c,...u].forEach(d=>l.add(d.id)),l.size>0){let d=Array.from(l),p=await this.queryChroma("what changed",Math.min(d.length,100)),f=[];for(let m of p.ids)d.includes(m)&&!f.includes(m)&&f.push(m);f.length>0&&(i=this.sessionStore.getObservationsByIds(f,{limit:n.limit||20}),i.sort((m,h)=>f.indexOf(m.id)-f.indexOf(h.id)))}}catch(a){_.error("SEARCH","Chroma search failed for changes, falling back to metadata search",{},a)}if(i.length===0){let a=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;[...a,...c,...u].forEach(d=>l.add(d.id)),i=Array.from(l).map(d=>a.find(p=>p.id===d)||c.find(p=>p.id===d)||u.find(p=>p.id===d)).filter(Boolean),i.sort((d,p)=>p.created_at_epoch-d.created_at_epoch),i=i.slice(0,n.limit||20)}if(i.length===0)return{content:[{type:"text",text:"No change-related observations found"}]};let s=`Found ${i.length} change-related observation(s) ${this.formatter.formatTableHeader()}`,o=i.map((a,c)=>this.formatter.formatObservationIndex(a,c));return{content:[{type:"text",text:s+` `+o.join(` -`)}]}}async howItWorks(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync){y.debug("SEARCH","Using metadata-first + semantic ranking for how-it-works",{});let a=this.sessionSearch.findByConcept("how-it-works",n);if(a.length>0){let c=a.map(d=>d.id),u=await this.queryChroma("how it works architecture",Math.min(c.length,100)),l=[];for(let d of u.ids)c.includes(d)&&!l.includes(d)&&l.push(d);l.length>0&&(i=this.sessionStore.getObservationsByIds(l,{limit:n.limit||20}),i.sort((d,p)=>l.indexOf(d.id)-l.indexOf(p.id)))}}if(i.length===0&&(i=this.sessionSearch.findByConcept("how-it-works",n)),i.length===0)return{content:[{type:"text",text:'No "how it works" observations found'}]};let s=`Found ${i.length} "how it works" observation(s) +`)}]}}async howItWorks(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync){_.debug("SEARCH","Using metadata-first + semantic ranking for how-it-works",{});let a=this.sessionSearch.findByConcept("how-it-works",n);if(a.length>0){let c=a.map(d=>d.id),u=await this.queryChroma("how it works architecture",Math.min(c.length,100)),l=[];for(let d of u.ids)c.includes(d)&&!l.includes(d)&&l.push(d);l.length>0&&(i=this.sessionStore.getObservationsByIds(l,{limit:n.limit||20}),i.sort((d,p)=>l.indexOf(d.id)-l.indexOf(p.id)))}}if(i.length===0&&(i=this.sessionSearch.findByConcept("how-it-works",n)),i.length===0)return{content:[{type:"text",text:'No "how it works" observations found'}]};let s=`Found ${i.length} "how it works" observation(s) ${this.formatter.formatTableHeader()}`,o=i.map((a,c)=>this.formatter.formatObservationIndex(a,c));return{content:[{type:"text",text:s+` `+o.join(` -`)}]}}async searchObservations(e){let r=this.normalizeParams(e),{query:n,...i}=r,s=[];if(this.chromaSync){y.debug("SEARCH","Using hybrid semantic search (Chroma + SQLite)",{});let c=await this.queryChroma(n,100);if(y.debug("SEARCH","Chroma returned semantic matches",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-zt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let m=c.metadatas[p];return m&&m.created_at_epoch>u});if(y.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;s=this.sessionStore.getObservationsByIds(l,{orderBy:"date_desc",limit:d}),y.debug("SEARCH","Hydrated observations from SQLite",{count:s.length})}}}if(s.length===0)return{content:[{type:"text",text:`No observations found matching "${n}"`}]};let o=`Found ${s.length} observation(s) matching "${n}" +`)}]}}async searchObservations(e){let r=this.normalizeParams(e),{query:n,...i}=r,s=[];if(this.chromaSync){_.debug("SEARCH","Using hybrid semantic search (Chroma + SQLite)",{});let c=await this.queryChroma(n,100);if(_.debug("SEARCH","Chroma returned semantic matches",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-Dt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(_.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;s=this.sessionStore.getObservationsByIds(l,{orderBy:"date_desc",limit:d}),_.debug("SEARCH","Hydrated observations from SQLite",{count:s.length})}}}if(s.length===0)return{content:[{type:"text",text:`No observations found matching "${n}"`}]};let o=`Found ${s.length} observation(s) matching "${n}" ${this.formatter.formatTableHeader()}`,a=s.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:o+` `+a.join(` -`)}]}}async searchSessions(e){let r=this.normalizeParams(e),{query:n,...i}=r,s=[];if(this.chromaSync){y.debug("SEARCH","Using hybrid semantic search for sessions",{});let c=await this.queryChroma(n,100,{doc_type:"session_summary"});if(y.debug("SEARCH","Chroma returned semantic matches for sessions",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-zt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let m=c.metadatas[p];return m&&m.created_at_epoch>u});if(y.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;s=this.sessionStore.getSessionSummariesByIds(l,{orderBy:"date_desc",limit:d}),y.debug("SEARCH","Hydrated sessions from SQLite",{count:s.length})}}}if(s.length===0)return{content:[{type:"text",text:`No sessions found matching "${n}"`}]};let o=`Found ${s.length} session(s) matching "${n}" +`)}]}}async searchSessions(e){let r=this.normalizeParams(e),{query:n,...i}=r,s=[];if(this.chromaSync){_.debug("SEARCH","Using hybrid semantic search for sessions",{});let c=await this.queryChroma(n,100,{doc_type:"session_summary"});if(_.debug("SEARCH","Chroma returned semantic matches for sessions",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-Dt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(_.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;s=this.sessionStore.getSessionSummariesByIds(l,{orderBy:"date_desc",limit:d}),_.debug("SEARCH","Hydrated sessions from SQLite",{count:s.length})}}}if(s.length===0)return{content:[{type:"text",text:`No sessions found matching "${n}"`}]};let o=`Found ${s.length} session(s) matching "${n}" ${this.formatter.formatTableHeader()}`,a=s.map((c,u)=>this.formatter.formatSessionIndex(c,u));return{content:[{type:"text",text:o+` `+a.join(` -`)}]}}async searchUserPrompts(e){let r=this.normalizeParams(e),{query:n,...i}=r,s=[];if(this.chromaSync){y.debug("SEARCH","Using hybrid semantic search for user prompts",{});let c=await this.queryChroma(n,100,{doc_type:"user_prompt"});if(y.debug("SEARCH","Chroma returned semantic matches for prompts",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-zt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let m=c.metadatas[p];return m&&m.created_at_epoch>u});if(y.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;s=this.sessionStore.getUserPromptsByIds(l,{orderBy:"date_desc",limit:d}),y.debug("SEARCH","Hydrated user prompts from SQLite",{count:s.length})}}}if(s.length===0)return{content:[{type:"text",text:n?`No user prompts found matching "${n}"`:"No user prompts found"}]};let o=`Found ${s.length} user prompt(s) matching "${n}" +`)}]}}async searchUserPrompts(e){let r=this.normalizeParams(e),{query:n,...i}=r,s=[];if(this.chromaSync){_.debug("SEARCH","Using hybrid semantic search for user prompts",{});let c=await this.queryChroma(n,100,{doc_type:"user_prompt"});if(_.debug("SEARCH","Chroma returned semantic matches for prompts",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-Dt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(_.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;s=this.sessionStore.getUserPromptsByIds(l,{orderBy:"date_desc",limit:d}),_.debug("SEARCH","Hydrated user prompts from SQLite",{count:s.length})}}}if(s.length===0)return{content:[{type:"text",text:n?`No user prompts found matching "${n}"`:"No user prompts found"}]};let o=`Found ${s.length} user prompt(s) matching "${n}" ${this.formatter.formatTableHeader()}`,a=s.map((c,u)=>this.formatter.formatUserPromptIndex(c,u));return{content:[{type:"text",text:o+` `+a.join(` -`)}]}}async findByConcept(e){let r=this.normalizeParams(e),{concepts:n,...i}=r,s=[];if(this.chromaSync){y.debug("SEARCH","Using metadata-first + semantic ranking for concept search",{});let c=this.sessionSearch.findByConcept(n,i);if(y.debug("SEARCH","Found observations with concept",{concept:n,count:c.length}),c.length>0){let u=c.map(p=>p.id),l=await this.queryChroma(n,Math.min(u.length,100)),d=[];for(let p of l.ids)u.includes(p)&&!d.includes(p)&&d.push(p);y.debug("SEARCH","Chroma ranked results by semantic relevance",{count:d.length}),d.length>0&&(s=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),s.sort((p,m)=>d.indexOf(p.id)-d.indexOf(m.id)))}}if(s.length===0&&(y.debug("SEARCH","Using SQLite-only concept search",{}),s=this.sessionSearch.findByConcept(n,i)),s.length===0)return{content:[{type:"text",text:`No observations found with concept "${n}"`}]};let o=`Found ${s.length} observation(s) with concept "${n}" +`)}]}}async findByConcept(e){let r=this.normalizeParams(e),{concepts:n,...i}=r,s=[];if(this.chromaSync){_.debug("SEARCH","Using metadata-first + semantic ranking for concept search",{});let c=this.sessionSearch.findByConcept(n,i);if(_.debug("SEARCH","Found observations with concept",{concept:n,count:c.length}),c.length>0){let u=c.map(p=>p.id),l=await this.queryChroma(n,Math.min(u.length,100)),d=[];for(let p of l.ids)u.includes(p)&&!d.includes(p)&&d.push(p);_.debug("SEARCH","Chroma ranked results by semantic relevance",{count:d.length}),d.length>0&&(s=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),s.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}if(s.length===0&&(_.debug("SEARCH","Using SQLite-only concept search",{}),s=this.sessionSearch.findByConcept(n,i)),s.length===0)return{content:[{type:"text",text:`No observations found with concept "${n}"`}]};let o=`Found ${s.length} observation(s) with concept "${n}" ${this.formatter.formatTableHeader()}`,a=s.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:o+` `+a.join(` -`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:n,...i}=r,s=Array.isArray(n)?n[0]:n,o=[],a=[];if(this.chromaSync){y.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let p=this.sessionSearch.findByFile(s,i);if(y.debug("SEARCH","Found results for file",{file:s,observations:p.observations.length,sessions:p.sessions.length}),a=p.sessions,p.observations.length>0){let m=p.observations.map(h=>h.id),f=await this.queryChroma(s,Math.min(m.length,100)),g=[];for(let h of f.ids)m.includes(h)&&!g.includes(h)&&g.push(h);y.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:g.length}),g.length>0&&(o=this.sessionStore.getObservationsByIds(g,{limit:i.limit||20}),o.sort((h,v)=>g.indexOf(h.id)-g.indexOf(v.id)))}}if(o.length===0&&a.length===0){y.debug("SEARCH","Using SQLite-only file search",{});let p=this.sessionSearch.findByFile(s,i);o=p.observations,a=p.sessions}let c=o.length+a.length;if(c===0)return{content:[{type:"text",text:`No results found for file "${s}"`}]};let u=[...o.map(p=>({type:"observation",data:p,epoch:p.created_at_epoch,created_at:p.created_at})),...a.map(p=>({type:"session",data:p,epoch:p.created_at_epoch,created_at:p.created_at}))];u.sort((p,m)=>m.epoch-p.epoch);let l=is(u,p=>p.created_at),d=[];d.push(`Found ${c} result(s) for file "${s}"`),d.push("");for(let[p,m]of l){d.push(`### ${p}`),d.push(""),d.push(this.formatter.formatTableHeader());for(let f of m)f.type==="observation"?d.push(this.formatter.formatObservationIndex(f.data,0)):d.push(this.formatter.formatSessionIndex(f.data,0));d.push("")}return{content:[{type:"text",text:d.join(` -`)}]}}async findByType(e){let r=this.normalizeParams(e),{type:n,...i}=r,s=Array.isArray(n)?n.join(", "):n,o=[];if(this.chromaSync){y.debug("SEARCH","Using metadata-first + semantic ranking for type search",{});let u=this.sessionSearch.findByType(n,i);if(y.debug("SEARCH","Found observations with type",{type:s,count:u.length}),u.length>0){let l=u.map(m=>m.id),d=await this.queryChroma(s,Math.min(l.length,100)),p=[];for(let m of d.ids)l.includes(m)&&!p.includes(m)&&p.push(m);y.debug("SEARCH","Chroma ranked results by semantic relevance",{count:p.length}),p.length>0&&(o=this.sessionStore.getObservationsByIds(p,{limit:i.limit||20}),o.sort((m,f)=>p.indexOf(m.id)-p.indexOf(f.id)))}}if(o.length===0&&(y.debug("SEARCH","Using SQLite-only type search",{}),o=this.sessionSearch.findByType(n,i)),o.length===0)return{content:[{type:"text",text:`No observations found with type "${s}"`}]};let a=`Found ${o.length} observation(s) with type "${s}" +`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:n,...i}=r,s=Array.isArray(n)?n[0]:n,o=[],a=[];if(this.chromaSync){_.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let p=this.sessionSearch.findByFile(s,i);if(_.debug("SEARCH","Found results for file",{file:s,observations:p.observations.length,sessions:p.sessions.length}),a=p.sessions,p.observations.length>0){let f=p.observations.map(g=>g.id),m=await this.queryChroma(s,Math.min(f.length,100)),h=[];for(let g of m.ids)f.includes(g)&&!h.includes(g)&&h.push(g);_.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:h.length}),h.length>0&&(o=this.sessionStore.getObservationsByIds(h,{limit:i.limit||20}),o.sort((g,v)=>h.indexOf(g.id)-h.indexOf(v.id)))}}if(o.length===0&&a.length===0){_.debug("SEARCH","Using SQLite-only file search",{});let p=this.sessionSearch.findByFile(s,i);o=p.observations,a=p.sessions}let c=o.length+a.length;if(c===0)return{content:[{type:"text",text:`No results found for file "${s}"`}]};let u=[...o.map(p=>({type:"observation",data:p,epoch:p.created_at_epoch,created_at:p.created_at})),...a.map(p=>({type:"session",data:p,epoch:p.created_at_epoch,created_at:p.created_at}))];u.sort((p,f)=>f.epoch-p.epoch);let l=Os(u,p=>p.created_at),d=[];d.push(`Found ${c} result(s) for file "${s}"`),d.push("");for(let[p,f]of l){d.push(`### ${p}`),d.push(""),d.push(this.formatter.formatTableHeader());for(let m of f)m.type==="observation"?d.push(this.formatter.formatObservationIndex(m.data,0)):d.push(this.formatter.formatSessionIndex(m.data,0));d.push("")}return{content:[{type:"text",text:d.join(` +`)}]}}async findByType(e){let r=this.normalizeParams(e),{type:n,...i}=r,s=Array.isArray(n)?n.join(", "):n,o=[];if(this.chromaSync){_.debug("SEARCH","Using metadata-first + semantic ranking for type search",{});let u=this.sessionSearch.findByType(n,i);if(_.debug("SEARCH","Found observations with type",{type:s,count:u.length}),u.length>0){let l=u.map(f=>f.id),d=await this.queryChroma(s,Math.min(l.length,100)),p=[];for(let f of d.ids)l.includes(f)&&!p.includes(f)&&p.push(f);_.debug("SEARCH","Chroma ranked results by semantic relevance",{count:p.length}),p.length>0&&(o=this.sessionStore.getObservationsByIds(p,{limit:i.limit||20}),o.sort((f,m)=>p.indexOf(f.id)-p.indexOf(m.id)))}}if(o.length===0&&(_.debug("SEARCH","Using SQLite-only type search",{}),o=this.sessionSearch.findByType(n,i)),o.length===0)return{content:[{type:"text",text:`No observations found with type "${s}"`}]};let a=`Found ${o.length} observation(s) with type "${s}" ${this.formatter.formatTableHeader()}`,c=o.map((u,l)=>this.formatter.formatObservationIndex(u,l));return{content:[{type:"text",text:a+` `+c.join(` -`)}]}}async getRecentContext(e){let r=e.project||(0,lq.basename)(process.cwd()),n=e.limit||3,i=this.sessionStore.getRecentSessionsWithStatus(r,n);if(i.length===0)return{content:[{type:"text",text:`# Recent Session Context +`)}]}}async getRecentContext(e){let r=e.project||(0,g9.basename)(process.cwd()),n=e.limit||3,i=this.sessionStore.getRecentSessionsWithStatus(r,n);if(i.length===0)return{content:[{type:"text",text:`# Recent Session Context -No previous sessions found for project "${r}".`}]};let s=[];s.push("# Recent Session Context"),s.push(""),s.push(`Showing last ${i.length} session(s) for **${r}**:`),s.push("");for(let o of i)if(o.memory_session_id){if(s.push("---"),s.push(""),o.has_summary){let a=this.sessionStore.getSummaryForSession(o.memory_session_id);if(a){let c=a.prompt_number?` (Prompt #${a.prompt_number})`:"";if(s.push(`**Summary${c}**`),s.push(""),a.request&&s.push(`**Request:** ${a.request}`),a.completed&&s.push(`**Completed:** ${a.completed}`),a.learned&&s.push(`**Learned:** ${a.learned}`),a.next_steps&&s.push(`**Next Steps:** ${a.next_steps}`),a.files_read)try{let l=JSON.parse(a.files_read);Array.isArray(l)&&l.length>0&&s.push(`**Files Read:** ${l.join(", ")}`)}catch(l){y.debug("WORKER","files_read is plain string, using as-is",{},l),a.files_read.trim()&&s.push(`**Files Read:** ${a.files_read}`)}if(a.files_edited)try{let l=JSON.parse(a.files_edited);Array.isArray(l)&&l.length>0&&s.push(`**Files Edited:** ${l.join(", ")}`)}catch(l){y.debug("WORKER","files_edited is plain string, using as-is",{},l),a.files_edited.trim()&&s.push(`**Files Edited:** ${a.files_edited}`)}let u=new Date(a.created_at).toLocaleString();s.push(`**Date:** ${u}`)}}else if(o.status==="active"){s.push("**In Progress**"),s.push(""),o.user_prompt&&s.push(`**Request:** ${o.user_prompt}`);let a=this.sessionStore.getObservationsForSession(o.memory_session_id);if(a.length>0){s.push(""),s.push(`**Observations (${a.length}):**`);for(let u of a)s.push(`- ${u.title}`)}else s.push(""),s.push("*No observations yet*");s.push(""),s.push("**Status:** Active - summary pending");let c=new Date(o.started_at).toLocaleString();s.push(`**Date:** ${c}`)}else{s.push(`**${o.status.charAt(0).toUpperCase()+o.status.slice(1)}**`),s.push(""),o.user_prompt&&s.push(`**Request:** ${o.user_prompt}`),s.push(""),s.push(`**Status:** ${o.status} - no summary available`);let a=new Date(o.started_at).toLocaleString();s.push(`**Date:** ${a}`)}s.push("")}return{content:[{type:"text",text:s.join(` -`)}]}}async getContextTimeline(e){let{anchor:r,depth_before:n=10,depth_after:i=10,project:s}=e,o=process.cwd(),a,c=r,u;if(typeof r=="number"){let g=this.sessionStore.getObservationById(r);if(!g)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};a=g.created_at_epoch,u=this.sessionStore.getTimelineAroundObservation(r,a,n,i,s)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let g=r.replace(/^#?S/,""),h=parseInt(g,10),v=this.sessionStore.getSessionSummariesByIds([h]);if(v.length===0)return{content:[{type:"text",text:`Session #${h} not found`}],isError:!0};a=v[0].created_at_epoch,c=`S${h}`,u=this.sessionStore.getTimelineAroundTimestamp(a,n,i,s)}else{let g=new Date(r);if(isNaN(g.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};a=g.getTime(),u=this.sessionStore.getTimelineAroundTimestamp(a,n,i,s)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let l=[...u.observations.map(g=>({type:"observation",data:g,epoch:g.created_at_epoch})),...u.sessions.map(g=>({type:"session",data:g,epoch:g.created_at_epoch})),...u.prompts.map(g=>({type:"prompt",data:g,epoch:g.created_at_epoch}))];l.sort((g,h)=>g.epoch-h.epoch);let d=this.timelineService.filterByDepth(l,c,a,n,i);if(!d||d.length===0)return{content:[{type:"text",text:`No context found around ${new Date(a).toLocaleString()} (${n} records before, ${i} records after)`}]};let p=[];p.push(`# Timeline around anchor: ${c}`),p.push(`**Window:** ${n} records before -> ${i} records after | **Items:** ${d?.length??0}`),p.push("");let m=new Map;for(let g of d){let h=ns(g.epoch);m.has(h)||m.set(h,[]),m.get(h).push(g)}let f=Array.from(m.entries()).sort((g,h)=>{let v=new Date(g[0]).getTime(),x=new Date(h[0]).getTime();return v-x});for(let[g,h]of f){p.push(`### ${g}`),p.push("");let v=null,x="",b=!1;for(let _ of h){let S=typeof c=="number"&&_.type==="observation"&&_.data.id===c||typeof c=="string"&&c.startsWith("S")&&_.type==="session"&&`S${_.data.id}`===c;if(_.type==="session"){b&&(p.push(""),b=!1,v=null,x="");let w=_.data,E=w.request||"Session summary",$=S?" <- **ANCHOR**":"";p.push(`**\u{1F3AF} #S${w.id}** ${E} (${_n(_.epoch)})${$}`),p.push("")}else if(_.type==="prompt"){b&&(p.push(""),b=!1,v=null,x="");let w=_.data,E=w.prompt_text.length>100?w.prompt_text.substring(0,100)+"...":w.prompt_text;p.push(`**\u{1F4AC} User Prompt #${w.prompt_number}** (${_n(_.epoch)})`),p.push(`> ${E}`),p.push("")}else if(_.type==="observation"){let w=_.data,E=ei(w.files_modified,o,w.files_read);E!==v&&(b&&p.push(""),p.push(`**${E}**`),p.push("| ID | Time | T | Title | Tokens |"),p.push("|----|------|---|-------|--------|"),v=E,b=!0,x="");let $=He.getInstance().getTypeIcon(w.type),R=lr(_.epoch),A=w.title||"Untitled",N=Rc(w.narrative),W=R!==x?R:'"';x=R;let j=S?" <- **ANCHOR**":"";p.push(`| #${w.id} | ${W} | ${$} | ${A}${j} | ~${N} |`)}}b&&p.push("")}return{content:[{type:"text",text:p.join(` -`)}]}}async getTimelineByQuery(e){let{query:r,mode:n="auto",depth_before:i=10,depth_after:s=10,limit:o=5,project:a}=e,c=process.cwd(),u=[];if(this.chromaSync){y.debug("SEARCH","Using hybrid semantic search for timeline query",{});let l=await this.queryChroma(r,100);if(y.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:l.ids.length}),l.ids.length>0){let d=Date.now()-zt.RECENCY_WINDOW_MS,p=l.ids.filter((m,f)=>{let g=l.metadatas[f];return g&&g.created_at_epoch>d});y.debug("SEARCH","Results within 90-day window",{count:p.length}),p.length>0&&(u=this.sessionStore.getObservationsByIds(p,{orderBy:"date_desc",limit:n==="auto"?1:o}),y.debug("SEARCH","Hydrated observations from SQLite",{count:u.length}))}}if(u.length===0)return{content:[{type:"text",text:`No observations found matching "${r}". Try a different search query.`}]};if(n==="interactive"){let l=[];l.push("# Timeline Anchor Search Results"),l.push(""),l.push(`Found ${u.length} observation(s) matching "${r}"`),l.push(""),l.push("To get timeline context around any of these observations, use the `get_context_timeline` tool with the observation ID as the anchor."),l.push(""),l.push(`**Top ${u.length} matches:**`),l.push("");for(let d=0;d({type:"observation",data:v,epoch:v.created_at_epoch})),...(d.sessions||[]).map(v=>({type:"session",data:v,epoch:v.created_at_epoch})),...(d.prompts||[]).map(v=>({type:"prompt",data:v,epoch:v.created_at_epoch}))];p.sort((v,x)=>v.epoch-x.epoch);let m=this.timelineService.filterByDepth(p,l.id,0,i,s);if(!m||m.length===0)return{content:[{type:"text",text:`Found observation #${l.id} matching "${r}", but no timeline context available (${i} records before, ${s} records after).`}]};let f=[];f.push(`# Timeline for query: "${r}"`),f.push(`**Anchor:** Observation #${l.id} - ${l.title||"Untitled"}`),f.push(`**Window:** ${i} records before -> ${s} records after | **Items:** ${m?.length??0}`),f.push("");let g=new Map;for(let v of m){let x=ns(v.epoch);g.has(x)||g.set(x,[]),g.get(x).push(v)}let h=Array.from(g.entries()).sort((v,x)=>{let b=new Date(v[0]).getTime(),_=new Date(x[0]).getTime();return b-_});for(let[v,x]of h){f.push(`### ${v}`),f.push("");let b=null,_="",S=!1;for(let w of x){let E=w.type==="observation"&&w.data.id===l.id;if(w.type==="session"){S&&(f.push(""),S=!1,b=null,_="");let $=w.data,R=$.request||"Session summary";f.push(`**\u{1F3AF} #S${$.id}** ${R} (${_n(w.epoch)})`),f.push("")}else if(w.type==="prompt"){S&&(f.push(""),S=!1,b=null,_="");let $=w.data,R=$.prompt_text.length>100?$.prompt_text.substring(0,100)+"...":$.prompt_text;f.push(`**\u{1F4AC} User Prompt #${$.prompt_number}** (${_n(w.epoch)})`),f.push(`> ${R}`),f.push("")}else if(w.type==="observation"){let $=w.data,R=ei($.files_modified,c,$.files_read);R!==b&&(S&&f.push(""),f.push(`**${R}**`),f.push("| ID | Time | T | Title | Tokens |"),f.push("|----|------|---|-------|--------|"),b=R,S=!0,_="");let A=He.getInstance().getTypeIcon($.type),N=lr(w.epoch),U=$.title||"Untitled",W=Rc($.narrative),ae=N!==_?N:'"';_=N;let Ne=E?" <- **ANCHOR**":"";f.push(`| #${$.id} | ${ae} | ${A} | ${U}${Ne} | ~${W} |`)}}S&&f.push("")}return{content:[{type:"text",text:f.join(` -`)}]}}}};Br();var ege=4,Kg=class{formatSearchTips(){return` +No previous sessions found for project "${r}".`}]};let s=[];s.push("# Recent Session Context"),s.push(""),s.push(`Showing last ${i.length} session(s) for **${r}**:`),s.push("");for(let o of i)if(o.memory_session_id){if(s.push("---"),s.push(""),o.has_summary){let a=this.sessionStore.getSummaryForSession(o.memory_session_id);if(a){let c=a.prompt_number?` (Prompt #${a.prompt_number})`:"";if(s.push(`**Summary${c}**`),s.push(""),a.request&&s.push(`**Request:** ${a.request}`),a.completed&&s.push(`**Completed:** ${a.completed}`),a.learned&&s.push(`**Learned:** ${a.learned}`),a.next_steps&&s.push(`**Next Steps:** ${a.next_steps}`),a.files_read)try{let l=JSON.parse(a.files_read);Array.isArray(l)&&l.length>0&&s.push(`**Files Read:** ${l.join(", ")}`)}catch(l){_.debug("WORKER","files_read is plain string, using as-is",{},l),a.files_read.trim()&&s.push(`**Files Read:** ${a.files_read}`)}if(a.files_edited)try{let l=JSON.parse(a.files_edited);Array.isArray(l)&&l.length>0&&s.push(`**Files Edited:** ${l.join(", ")}`)}catch(l){_.debug("WORKER","files_edited is plain string, using as-is",{},l),a.files_edited.trim()&&s.push(`**Files Edited:** ${a.files_edited}`)}let u=new Date(a.created_at).toLocaleString();s.push(`**Date:** ${u}`)}}else if(o.status==="active"){s.push("**In Progress**"),s.push(""),o.user_prompt&&s.push(`**Request:** ${o.user_prompt}`);let a=this.sessionStore.getObservationsForSession(o.memory_session_id);if(a.length>0){s.push(""),s.push(`**Observations (${a.length}):**`);for(let u of a)s.push(`- ${u.title}`)}else s.push(""),s.push("*No observations yet*");s.push(""),s.push("**Status:** Active - summary pending");let c=new Date(o.started_at).toLocaleString();s.push(`**Date:** ${c}`)}else{s.push(`**${o.status.charAt(0).toUpperCase()+o.status.slice(1)}**`),s.push(""),o.user_prompt&&s.push(`**Request:** ${o.user_prompt}`),s.push(""),s.push(`**Status:** ${o.status} - no summary available`);let a=new Date(o.started_at).toLocaleString();s.push(`**Date:** ${a}`)}s.push("")}return{content:[{type:"text",text:s.join(` +`)}]}}async getContextTimeline(e){let{anchor:r,depth_before:n=10,depth_after:i=10,project:s}=e,o=process.cwd(),a,c=r,u;if(typeof r=="number"){let h=this.sessionStore.getObservationById(r);if(!h)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};a=h.created_at_epoch,u=this.sessionStore.getTimelineAroundObservation(r,a,n,i,s)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let h=r.replace(/^#?S/,""),g=parseInt(h,10),v=this.sessionStore.getSessionSummariesByIds([g]);if(v.length===0)return{content:[{type:"text",text:`Session #${g} not found`}],isError:!0};a=v[0].created_at_epoch,c=`S${g}`,u=this.sessionStore.getTimelineAroundTimestamp(a,n,i,s)}else{let h=new Date(r);if(isNaN(h.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};a=h.getTime(),u=this.sessionStore.getTimelineAroundTimestamp(a,n,i,s)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let l=[...u.observations.map(h=>({type:"observation",data:h,epoch:h.created_at_epoch})),...u.sessions.map(h=>({type:"session",data:h,epoch:h.created_at_epoch})),...u.prompts.map(h=>({type:"prompt",data:h,epoch:h.created_at_epoch}))];l.sort((h,g)=>h.epoch-g.epoch);let d=this.timelineService.filterByDepth(l,c,a,n,i);if(!d||d.length===0)return{content:[{type:"text",text:`No context found around ${new Date(a).toLocaleString()} (${n} records before, ${i} records after)`}]};let p=[];p.push(`# Timeline around anchor: ${c}`),p.push(`**Window:** ${n} records before -> ${i} records after | **Items:** ${d?.length??0}`),p.push("");let f=new Map;for(let h of d){let g=Rs(h.epoch);f.has(g)||f.set(g,[]),f.get(g).push(h)}let m=Array.from(f.entries()).sort((h,g)=>{let v=new Date(h[0]).getTime(),S=new Date(g[0]).getTime();return v-S});for(let[h,g]of m){p.push(`### ${h}`),p.push("");let v=null,S="",b=!1;for(let y of g){let x=typeof c=="number"&&y.type==="observation"&&y.data.id===c||typeof c=="string"&&c.startsWith("S")&&y.type==="session"&&`S${y.data.id}`===c;if(y.type==="session"){b&&(p.push(""),b=!1,v=null,S="");let w=y.data,E=w.request||"Session summary",T=x?" <- **ANCHOR**":"";p.push(`**\u{1F3AF} #S${w.id}** ${E} (${Rn(y.epoch)})${T}`),p.push("")}else if(y.type==="prompt"){b&&(p.push(""),b=!1,v=null,S="");let w=y.data,E=w.prompt_text.length>100?w.prompt_text.substring(0,100)+"...":w.prompt_text;p.push(`**\u{1F4AC} User Prompt #${w.prompt_number}** (${Rn(y.epoch)})`),p.push(`> ${E}`),p.push("")}else if(y.type==="observation"){let w=y.data,E=vi(w.files_modified,o,w.files_read);E!==v&&(b&&p.push(""),p.push(`**${E}**`),p.push("| ID | Time | T | Title | Tokens |"),p.push("|----|------|---|-------|--------|"),v=E,b=!0,S="");let T=He.getInstance().getTypeIcon(w.type),I=pr(y.epoch),A=w.title||"Untitled",N=du(w.narrative),V=I!==S?I:'"';S=I;let j=x?" <- **ANCHOR**":"";p.push(`| #${w.id} | ${V} | ${T} | ${A}${j} | ~${N} |`)}}b&&p.push("")}return{content:[{type:"text",text:p.join(` +`)}]}}async getTimelineByQuery(e){let{query:r,mode:n="auto",depth_before:i=10,depth_after:s=10,limit:o=5,project:a}=e,c=process.cwd(),u=[];if(this.chromaSync){_.debug("SEARCH","Using hybrid semantic search for timeline query",{});let l=await this.queryChroma(r,100);if(_.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:l.ids.length}),l.ids.length>0){let d=Date.now()-Dt.RECENCY_WINDOW_MS,p=l.ids.filter((f,m)=>{let h=l.metadatas[m];return h&&h.created_at_epoch>d});_.debug("SEARCH","Results within 90-day window",{count:p.length}),p.length>0&&(u=this.sessionStore.getObservationsByIds(p,{orderBy:"date_desc",limit:n==="auto"?1:o}),_.debug("SEARCH","Hydrated observations from SQLite",{count:u.length}))}}if(u.length===0)return{content:[{type:"text",text:`No observations found matching "${r}". Try a different search query.`}]};if(n==="interactive"){let l=[];l.push("# Timeline Anchor Search Results"),l.push(""),l.push(`Found ${u.length} observation(s) matching "${r}"`),l.push(""),l.push("To get timeline context around any of these observations, use the `get_context_timeline` tool with the observation ID as the anchor."),l.push(""),l.push(`**Top ${u.length} matches:**`),l.push("");for(let d=0;d({type:"observation",data:v,epoch:v.created_at_epoch})),...(d.sessions||[]).map(v=>({type:"session",data:v,epoch:v.created_at_epoch})),...(d.prompts||[]).map(v=>({type:"prompt",data:v,epoch:v.created_at_epoch}))];p.sort((v,S)=>v.epoch-S.epoch);let f=this.timelineService.filterByDepth(p,l.id,0,i,s);if(!f||f.length===0)return{content:[{type:"text",text:`Found observation #${l.id} matching "${r}", but no timeline context available (${i} records before, ${s} records after).`}]};let m=[];m.push(`# Timeline for query: "${r}"`),m.push(`**Anchor:** Observation #${l.id} - ${l.title||"Untitled"}`),m.push(`**Window:** ${i} records before -> ${s} records after | **Items:** ${f?.length??0}`),m.push("");let h=new Map;for(let v of f){let S=Rs(v.epoch);h.has(S)||h.set(S,[]),h.get(S).push(v)}let g=Array.from(h.entries()).sort((v,S)=>{let b=new Date(v[0]).getTime(),y=new Date(S[0]).getTime();return b-y});for(let[v,S]of g){m.push(`### ${v}`),m.push("");let b=null,y="",x=!1;for(let w of S){let E=w.type==="observation"&&w.data.id===l.id;if(w.type==="session"){x&&(m.push(""),x=!1,b=null,y="");let T=w.data,I=T.request||"Session summary";m.push(`**\u{1F3AF} #S${T.id}** ${I} (${Rn(w.epoch)})`),m.push("")}else if(w.type==="prompt"){x&&(m.push(""),x=!1,b=null,y="");let T=w.data,I=T.prompt_text.length>100?T.prompt_text.substring(0,100)+"...":T.prompt_text;m.push(`**\u{1F4AC} User Prompt #${T.prompt_number}** (${Rn(w.epoch)})`),m.push(`> ${I}`),m.push("")}else if(w.type==="observation"){let T=w.data,I=vi(T.files_modified,c,T.files_read);I!==b&&(x&&m.push(""),m.push(`**${I}**`),m.push("| ID | Time | T | Title | Tokens |"),m.push("|----|------|---|-------|--------|"),b=I,x=!0,y="");let A=He.getInstance().getTypeIcon(T.type),N=pr(w.epoch),U=T.title||"Untitled",V=du(T.narrative),ae=N!==y?N:'"';y=N;let Me=E?" <- **ANCHOR**":"";m.push(`| #${T.id} | ${ae} | ${A} | ${U}${Me} | ~${V} |`)}}x&&m.push("")}return{content:[{type:"text",text:m.join(` +`)}]}}}};Qr();var y_e=4,dy=class{formatSearchTips(){return` --- \u{1F4A1} Search Strategy: 1. Search with index to see titles, dates, IDs @@ -1418,42 +1482,40 @@ No previous sessions found for project "${r}".`}]};let s=[];s.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/ege)}formatObservationIndex(e,r){let n=`#${e.id}`,i=this.formatTime(e.created_at_epoch),s=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",a=this.estimateReadTokens(e),c=He.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${s} | ${o} | ~${a} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),s="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${s} | ${o} | - | - |`}formatUserPromptIndex(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),s="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${s} | ${o} | - | - |`}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/y_e)}formatObservationIndex(e,r){let n=`#${e.id}`,i=this.formatTime(e.created_at_epoch),s=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",a=this.estimateReadTokens(e),c=He.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${s} | ${o} | ~${a} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),s="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${s} | ${o} | - | - |`}formatUserPromptIndex(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),s="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${s} | ${o} | - | - |`}formatTableHeader(){return`| ID | Time | T | Title | Read | Work | |-----|------|---|-------|------|------|`}formatSearchTableHeader(){return`| ID | Time | T | Title | Read | -|----|------|---|-------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,i=this.formatTime(e.created_at_epoch),s=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",a=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?"\u2033":i} | ${s} | ${o} | ~${a} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),s="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?"\u2033":i} | ${s} | ${o} | - |`,time:i}}formatUserPromptSearchRow(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),s="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?"\u2033":i} | ${s} | ${o} | - |`,time:i}}};Br();var Jg=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,i)=>n.epoch-i.epoch),r}filterByDepth(e,r,n,i,s){if(e.length===0)return e;let o=-1;if(typeof r=="number")o=e.findIndex(u=>u.type==="observation"&&u.data.id===r);else if(typeof r=="string"&&r.startsWith("S")){let u=parseInt(r.slice(1),10);o=e.findIndex(l=>l.type==="session"&&l.data.id===u)}else o=e.findIndex(u=>u.epoch>=n),o===-1&&(o=e.length-1);if(o===-1)return e;let a=Math.max(0,o-i),c=Math.min(e.length,o+s+1);return e.slice(a,c)}formatTimeline(e,r,n,i,s){if(e.length===0)return n?`Found observation matching "${n}", but no timeline context available.`:"No timeline items found";let o=[];if(n&&r){let u=e.find(d=>d.type==="observation"&&d.data.id===r),l=u?u.data.title||"Untitled":"Unknown";o.push(`# Timeline for query: "${n}"`),o.push(`**Anchor:** Observation #${r} - ${l}`)}else r?o.push(`# Timeline around anchor: ${r}`):o.push("# Timeline");i!==void 0&&s!==void 0?o.push(`**Window:** ${i} records before \u2192 ${s} records after | **Items:** ${e.length}`):o.push(`**Items:** ${e.length}`),o.push(""),o.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),o.push("");let a=new Map;for(let u of e){let l=this.formatDate(u.epoch);a.has(l)||a.set(l,[]),a.get(l).push(u)}let c=Array.from(a.entries()).sort((u,l)=>{let d=new Date(u[0]).getTime(),p=new Date(l[0]).getTime();return d-p});for(let[u,l]of c){o.push(`### ${u}`),o.push("");let d=null,p="",m=!1;for(let f of l){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&&(o.push(""),m=!1,d=null,p="");let h=f.data,v=h.request||"Session summary",x=g?" \u2190 **ANCHOR**":"";o.push(`**\u{1F3AF} #S${h.id}** ${v} (${this.formatDateTime(f.epoch)})${x}`),o.push("")}else if(f.type==="prompt"){m&&(o.push(""),m=!1,d=null,p="");let h=f.data,v=h.prompt_text.length>100?h.prompt_text.substring(0,100)+"...":h.prompt_text;o.push(`**\u{1F4AC} User Prompt #${h.prompt_number}** (${this.formatDateTime(f.epoch)})`),o.push(`> ${v}`),o.push("")}else if(f.type==="observation"){let h=f.data,v="General";v!==d&&(m&&o.push(""),o.push(`**${v}**`),o.push("| ID | Time | T | Title | Tokens |"),o.push("|----|------|---|-------|--------|"),d=v,m=!0,p="");let x=this.getTypeIcon(h.type),b=this.formatTime(f.epoch),_=h.title||"Untitled",S=this.estimateTokens(h.narrative),E=b!==p?b:"\u2033";p=b;let $=g?" \u2190 **ANCHOR**":"";o.push(`| #${h.id} | ${E} | ${x} | ${_}${$} | ~${S} |`)}}m&&o.push("")}return o.join(` -`)}getTypeIcon(e){return He.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 Xg=class{constructor(e,r){this.sseBroadcaster=e;this.workerService=r}broadcastNewPrompt(e){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:e}),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 dq=Ue(tg(),1),Yg=Ue(require("path"),1),ev=require("fs");Nt();oe();var Nr=class{wrapHandler(e){return(r,n)=>{try{let i=e(r,n);i instanceof Promise&&i.catch(s=>this.handleError(n,s))}catch(i){y.error("HTTP","Route handler error",{path:r.path},i),this.handleError(n,i)}}}parseIntParam(e,r,n){let i=parseInt(e.params[n],10);return isNaN(i)?(this.badRequest(r,`Invalid ${n}`),null):i}validateRequired(e,r,n){for(let i of n)if(e.body[i]===void 0||e.body[i]===null)return this.badRequest(r,`Missing ${i}`),!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){y.failure("WORKER",n||"Request failed",{},r),e.headersSent||e.status(500).json({error:r.message})}};var Qg=class extends Nr{constructor(r,n,i){super();this.sseBroadcaster=r;this.dbManager=n;this.sessionManager=i}setupRoutes(r){let n=tn();r.use(dq.default.static(Yg.default.join(n,"ui"))),r.get("/health",this.handleHealth.bind(this)),r.get("/",this.handleViewerUI.bind(this)),r.get("/stream",this.handleSSEStream.bind(this))}handleHealth=this.wrapHandler((r,n)=>{n.json({status:"ok",timestamp:Date.now()})});handleViewerUI=this.wrapHandler((r,n)=>{let i=tn(),o=[Yg.default.join(i,"ui","viewer.html"),Yg.default.join(i,"plugin","ui","viewer.html")].find(c=>(0,ev.existsSync)(c));if(!o)throw new Error("Viewer UI not found at any expected location");let a=(0,ev.readFileSync)(o,"utf-8");n.setHeader("Content-Type","text/html"),n.send(a)});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 i=this.dbManager.getSessionStore().getAllProjects();this.sseBroadcaster.broadcast({type:"initial_load",projects:i,timestamp:Date.now()});let s=this.sessionManager.isAnySessionProcessing(),o=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:s,queueDepth:o})})};Or();oe();oe();var pq=100;function tge(t){let e=(t.match(//g)||[]).length,r=(t.match(//g)||[]).length,n=(t.match(//g)||[]).length,i=(t.match(//g)||[]).length;return e+r+n+i}function mq(t){let e=tge(t);return e>pq&&y.warn("SYSTEM","tag count exceeds limit",void 0,{tagCount:e,maxAllowed:pq,contentLength:t.length}),t.replace(/[\s\S]*?<\/claude-mem-context>/g,"").replace(/[\s\S]*?<\/private>/g,"").replace(/[\s\S]*?<\/system_instruction>/g,"").replace(/[\s\S]*?<\/system-instruction>/g,"").trim()}function o$(t){return mq(t)}function fq(t){return mq(t)}var tv=class{constructor(e,r){this.sessionManager=e;this.eventBroadcaster=r}async completeByDbId(e){await this.sessionManager.deleteSession(e),this.eventBroadcaster.broadcastSessionCompleted(e)}};oe();var hp=class{static checkUserPromptPrivacy(e,r,n,i,s,o){let a=e.getUserPrompt(r,n);return!a||a.trim()===""?(y.debug("HOOK",`Skipping ${i} - user prompt was entirely private`,{sessionId:s,promptNumber:n,...o}),null):a}};Yt();Nt();var rv=class t extends Nr{constructor(r,n,i,s,o,a,c){super();this.sessionManager=r;this.dbManager=n;this.sdkAgent=i;this.geminiAgent=s;this.openRouterAgent=o;this.eventBroadcaster=a;this.workerService=c;this.completionHandler=new tv(r,a)}completionHandler;spawnInProgress=new Map;crashRecoveryScheduled=new Set;getActiveAgent(){if(eu()){if(Vo())return y.debug("SESSION","Using OpenRouter agent"),this.openRouterAgent;throw new Error("OpenRouter provider selected but no API key configured. Set CLAUDE_MEM_OPENROUTER_API_KEY in settings or OPENROUTER_API_KEY environment variable.")}if(Qc()){if(Bo())return y.debug("SESSION","Using Gemini agent"),this.geminiAgent;throw new Error("Gemini provider selected but no API key configured. Set CLAUDE_MEM_GEMINI_API_KEY in settings or GEMINI_API_KEY environment variable.")}return this.sdkAgent}getSelectedProvider(){return eu()&&Vo()?"openrouter":Qc()&&Bo()?"gemini":"claude"}static STALE_GENERATOR_THRESHOLD_MS=3e4;ensureGeneratorRunning(r,n){let i=this.sessionManager.getSession(r);if(!i)return;if(this.spawnInProgress.get(r)){y.debug("SESSION","Spawn already in progress, skipping",{sessionDbId:r,source:n});return}let s=this.getSelectedProvider();if(!i.generatorPromise){this.spawnInProgress.set(r,!0),this.startGeneratorWithProvider(i,s,n);return}let o=Date.now()-i.lastGeneratorActivity;if(o>t.STALE_GENERATOR_THRESHOLD_MS){y.warn("SESSION","Stale generator detected, aborting to prevent queue stall (#1099)",{sessionId:r,timeSinceActivityMs:o,thresholdMs:t.STALE_GENERATOR_THRESHOLD_MS,source:n}),i.abortController.abort(),i.generatorPromise=null,i.abortController=new AbortController,i.lastGeneratorActivity=Date.now(),this.spawnInProgress.set(r,!0),this.startGeneratorWithProvider(i,s,"stale-recovery");return}i.currentProvider&&i.currentProvider!==s&&y.info("SESSION","Provider changed, will switch after current generator finishes",{sessionId:r,currentProvider:i.currentProvider,selectedProvider:s,historyLength:i.conversationHistory.length})}startGeneratorWithProvider(r,n,i){if(!r)return;r.abortController.signal.aborted&&(y.debug("SESSION","Resetting aborted AbortController before starting generator",{sessionId:r.sessionDbId}),r.abortController=new AbortController);let s=n==="openrouter"?this.openRouterAgent:n==="gemini"?this.geminiAgent:this.sdkAgent,o=n==="openrouter"?"OpenRouter":n==="gemini"?"Gemini":"Claude SDK",c=this.sessionManager.getPendingMessageStore().getPendingCount(r.sessionDbId);y.info("SESSION",`Generator auto-starting (${i}) using ${o}`,{sessionId:r.sessionDbId,queueDepth:c,historyLength:r.conversationHistory.length}),r.currentProvider=n,r.lastGeneratorActivity=Date.now(),r.generatorPromise=s.startSession(r,this.workerService).catch(u=>{if(r.abortController.signal.aborted)return;y.error("SESSION","Generator failed",{sessionId:r.sessionDbId,provider:n,error:u.message},u);let l=this.sessionManager.getPendingMessageStore();try{let d=l.markSessionMessagesFailed(r.sessionDbId);d>0&&y.error("SESSION","Marked messages as failed after generator error",{sessionId:r.sessionDbId,failedCount:d})}catch(d){y.error("SESSION","Failed to mark messages as failed",{sessionId:r.sessionDbId},d)}}).finally(async()=>{let u=Us(r.sessionDbId);u&&!u.process.killed&&u.process.exitCode===null&&await qs(u,5e3);let l=r.sessionDbId;this.spawnInProgress.delete(l);let d=r.abortController.signal.aborted;if(d?y.info("SESSION","Generator aborted",{sessionId:l}):y.error("SESSION","Generator exited unexpectedly",{sessionId:l}),r.generatorPromise=null,r.currentProvider=null,this.workerService.broadcastProcessingStatus(),!d)try{let m=this.sessionManager.getPendingMessageStore().getPendingCount(l),f=3;if(m>0){if(this.crashRecoveryScheduled.has(l)){y.debug("SESSION","Crash recovery already scheduled",{sessionDbId:l});return}if(r.consecutiveRestarts=(r.consecutiveRestarts||0)+1,r.consecutiveRestarts>f){y.error("SESSION","CRITICAL: Generator restart limit exceeded - stopping to prevent runaway costs",{sessionId:l,pendingCount:m,consecutiveRestarts:r.consecutiveRestarts,maxRestarts:f,action:"Generator will NOT restart. Check logs for root cause. Messages remain in pending state."}),r.abortController.abort();return}y.info("SESSION","Restarting generator after crash/exit with pending work",{sessionId:l,pendingCount:m,consecutiveRestarts:r.consecutiveRestarts,maxRestarts:f});let g=r.abortController;r.abortController=new AbortController,g.abort(),this.crashRecoveryScheduled.add(l);let h=Math.min(1e3*Math.pow(2,r.consecutiveRestarts-1),8e3);setTimeout(()=>{this.crashRecoveryScheduled.delete(l);let v=this.sessionManager.getSession(l);v&&!v.generatorPromise&&this.startGeneratorWithProvider(v,this.getSelectedProvider(),"crash-recovery")},h)}else r.abortController.abort(),r.consecutiveRestarts=0,y.debug("SESSION","Aborted controller after natural completion",{sessionId:l})}catch(p){y.debug("SESSION","Error during recovery check, aborting to prevent leaks",{sessionId:l,error:p instanceof Error?p.message:String(p)}),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.handleCompleteByClaudeId.bind(this))}handleSessionInit=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{userPrompt:s,promptNumber:o}=r.body;y.info("HTTP","SessionRoutes: handleSessionInit called",{sessionDbId:i,promptNumber:o,has_userPrompt:!!s});let a=this.sessionManager.initializeSession(i,s,o),c=this.dbManager.getSessionStore().getLatestUserPrompt(a.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 u=Date.now(),l=c.prompt_text;this.dbManager.getChromaSync()?.syncUserPrompt(c.id,c.memory_session_id,c.project,l,c.prompt_number,c.created_at_epoch).then(()=>{let d=Date.now()-u,p=l.length>60?l.substring(0,60)+"...":l;y.debug("CHROMA","User prompt synced",{promptId:c.id,duration:`${d}ms`,prompt:p})}).catch(d=>{y.error("CHROMA","User prompt sync failed, continuing without vector search",{promptId:c.id,prompt:l.length>60?l.substring(0,60)+"...":l},d)})}this.ensureGeneratorRunning(i,"init"),this.eventBroadcaster.broadcastSessionStarted(i,a.project),n.json({status:"initialized",sessionDbId:i,port:Fr()})});handleObservations=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{tool_name:s,tool_input:o,tool_response:a,prompt_number:c,cwd:u}=r.body;this.sessionManager.queueObservation(i,{tool_name:s,tool_input:o,tool_response:a,prompt_number:c,cwd:u}),this.ensureGeneratorRunning(i,"observation"),this.eventBroadcaster.broadcastObservationQueued(i),n.json({status:"queued"})});handleSummarize=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{last_assistant_message:s}=r.body;this.sessionManager.queueSummarize(i,s),this.ensureGeneratorRunning(i,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionStatus=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let s=this.sessionManager.getSession(i);if(!s){n.json({status:"not_found"});return}let a=this.sessionManager.getPendingMessageStore().getPendingCount(i);n.json({status:"active",sessionDbId:i,project:s.project,queueLength:a,uptime:Date.now()-s.startTime})});handleSessionDelete=this.wrapHandler(async(r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");i!==null&&(await this.completionHandler.completeByDbId(i),n.json({status:"deleted"}))});handleSessionComplete=this.wrapHandler(async(r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");i!==null&&(await this.completionHandler.completeByDbId(i),n.json({success:!0}))});handleObservationsByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,tool_name:s,tool_input:o,tool_response:a,cwd:c}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let u=_e.loadFromFile(At);if(new Set(u.CLAUDE_MEM_SKIP_TOOLS.split(",").map(p=>p.trim()).filter(Boolean)).has(s)){y.debug("SESSION","Skipping observation for tool",{tool_name:s}),n.json({status:"skipped",reason:"tool_excluded"});return}if(new Set(["Edit","Write","Read","NotebookEdit"]).has(s)&&o){let p=o.file_path||o.notebook_path;if(p&&p.includes("session-memory")){y.debug("SESSION","Skipping meta-observation for session-memory file",{tool_name:s,file_path:p}),n.json({status:"skipped",reason:"session_memory_meta"});return}}try{let p=this.dbManager.getSessionStore(),m=p.createSDKSession(i,"",""),f=p.getPromptNumberFromUserPrompts(i);if(!hp.checkUserPromptPrivacy(p,i,f,"observation",m,{tool_name:s})){n.json({status:"skipped",reason:"private"});return}let h=o!==void 0?o$(JSON.stringify(o)):"{}",v=a!==void 0?o$(JSON.stringify(a)):"{}";this.sessionManager.queueObservation(m,{tool_name:s,tool_input:h,tool_response:v,prompt_number:f,cwd:c||(y.error("SESSION","Missing cwd when queueing observation in SessionRoutes",{sessionId:m,tool_name:s}),"")}),this.ensureGeneratorRunning(m,"observation"),this.eventBroadcaster.broadcastObservationQueued(m),n.json({status:"queued"})}catch(p){y.error("SESSION","Observation storage failed",{contentSessionId:i,tool_name:s},p),n.json({stored:!1,reason:p.message})}});handleSummarizeByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,last_assistant_message:s}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let o=this.dbManager.getSessionStore(),a=o.createSDKSession(i,"",""),c=o.getPromptNumberFromUserPrompts(i);if(!hp.checkUserPromptPrivacy(o,i,c,"summarize",a)){n.json({status:"skipped",reason:"private"});return}this.sessionManager.queueSummarize(a,s),this.ensureGeneratorRunning(a,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleCompleteByClaudeId=this.wrapHandler(async(r,n)=>{let{contentSessionId:i}=r.body;if(y.info("HTTP","\u2192 POST /api/sessions/complete",{contentSessionId:i}),!i)return this.badRequest(n,"Missing contentSessionId");let o=this.dbManager.getSessionStore().createSDKSession(i,"","");if(!this.sessionManager.getSession(o)){y.debug("SESSION","session-complete: Session not in active map",{contentSessionId:i,sessionDbId:o}),n.json({status:"skipped",reason:"not_active"});return}await this.completionHandler.completeByDbId(o),y.info("SESSION","Session completed via API",{contentSessionId:i,sessionDbId:o}),n.json({status:"completed",sessionDbId:o})});handleSessionInitByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i}=r.body,s=r.body.project||"unknown",o=r.body.prompt||"[media prompt]",a=r.body.customTitle||void 0;if(y.info("HTTP","SessionRoutes: handleSessionInitByClaudeId called",{contentSessionId:i,project:s,prompt_length:o?.length,customTitle:a}),!this.validateRequired(r,n,["contentSessionId"]))return;let c=this.dbManager.getSessionStore(),u=c.createSDKSession(i,s,o,a),l=c.getSessionById(u),d=!l?.memory_session_id;y.info("SESSION",`CREATED | contentSessionId=${i} \u2192 sessionDbId=${u} | isNew=${d} | project=${s}`,{sessionId:u});let m=c.getPromptNumberFromUserPrompts(i)+1,f=l?.memory_session_id||null;m>1?y.debug("HTTP",`[ALIGNMENT] DB Lookup Proof | contentSessionId=${i} \u2192 memorySessionId=${f||"(not yet captured)"} | prompt#=${m}`):y.debug("HTTP",`[ALIGNMENT] New Session | contentSessionId=${i} | prompt#=${m} | memorySessionId will be captured on first SDK response`);let g=fq(o);if(!g||g.trim()===""){y.debug("HOOK","Session init - prompt entirely private",{sessionId:u,promptNumber:m,originalLength:o.length}),n.json({sessionDbId:u,promptNumber:m,skipped:!0,reason:"private"});return}c.saveUserPrompt(i,m,g);let h=this.sessionManager.getSession(u)!==void 0;y.debug("SESSION","User prompt saved",{sessionId:u,promptNumber:m,contextInjected:h}),n.json({sessionDbId:u,promptNumber:m,skipped:!1,contextInjected:h})})};var a$=Ue(require("path"),1),tu=require("fs");oe();var vq=require("os");Nt();Or();function hq(t,e,r){let n=`%${e}%`,i=r?.limit??30,s=[n,n],o="";return r?.projects?.length&&(o=`AND project IN (${r.projects.map(()=>"?").join(",")})`,s.push(...r.projects)),t.prepare(` - SELECT * - FROM observations - WHERE ( - EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) - OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?) - ) - ${o} - ORDER BY created_at_epoch DESC - LIMIT ${i} - `).all(...s)}var nv=new Map;function rge(){let t=Date.now();for(let[e,r]of nv)t-r.createdAt>144e5&&nv.delete(e)}function gq(t,e){rge();let r=e.replace(/\\/g,"/"),n=nv.get(t);return n||(n={files:new Set,createdAt:Date.now()},nv.set(t,n)),n.files.has(r)?!1:(n.files.add(r),!0)}var iv=class extends Nr{constructor(r,n,i,s,o,a){super();this.paginationHelper=r;this.dbManager=n;this.sessionManager=i;this.sseBroadcaster=s;this.workerService=o;this.startTime=a}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.get("/api/observations/by-file",this.handleGetObservationsByFile.bind(this)),r.post("/api/observations/batch",this.handleGetObservationsByIds.bind(this)),r.get("/api/session/:id",this.handleGetSessionById.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.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.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.post("/api/file-context/gate",this.handleFileContextGate.bind(this))}handleGetObservations=this.wrapHandler((r,n)=>{let{offset:i,limit:s,project:o}=this.parsePaginationParams(r),a=this.paginationHelper.getObservations(i,s,o);n.json(a)});handleGetSummaries=this.wrapHandler((r,n)=>{let{offset:i,limit:s,project:o}=this.parsePaginationParams(r),a=this.paginationHelper.getSummaries(i,s,o);n.json(a)});handleGetPrompts=this.wrapHandler((r,n)=>{let{offset:i,limit:s,project:o}=this.parsePaginationParams(r),a=this.paginationHelper.getPrompts(i,s,o);n.json(a)});handleGetObservationById=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"id");if(i===null)return;let o=this.dbManager.getSessionStore().getObservationById(i);if(!o){this.notFound(n,`Observation #${i} not found`);return}n.json(o)});handleGetObservationsByFile=this.wrapHandler((r,n)=>{let i=r.query.path;if(!i){this.badRequest(n,"path query parameter is required");return}let s=r.query.projects,o=s?s.split(",").filter(Boolean):void 0,a=r.query.limit?parseInt(r.query.limit,10):void 0,c=this.dbManager.getSessionStore().db,u=hq(c,i,{projects:o,limit:a});n.json({observations:u,count:u.length})});handleGetObservationsByIds=this.wrapHandler((r,n)=>{let{ids:i,orderBy:s,limit:o,project:a}=r.body;if(typeof i=="string")try{i=JSON.parse(i)}catch{i=i.split(",").map(Number)}if(!i||!Array.isArray(i)){this.badRequest(n,"ids must be an array of numbers");return}if(i.length===0){n.json([]);return}if(!i.every(l=>typeof l=="number"&&Number.isInteger(l))){this.badRequest(n,"All ids must be integers");return}let u=this.dbManager.getSessionStore().getObservationsByIds(i,{orderBy:s,limit:o,project:a});n.json(u)});handleGetSessionById=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"id");if(i===null)return;let o=this.dbManager.getSessionStore().getSessionSummariesByIds([i]);if(o.length===0){this.notFound(n,`Session #${i} not found`);return}n.json(o[0])});handleGetSdkSessionsByIds=this.wrapHandler((r,n)=>{let{memorySessionIds:i}=r.body;if(typeof i=="string")try{i=JSON.parse(i)}catch{i=i.split(",").map(a=>a.trim())}if(!Array.isArray(i)){this.badRequest(n,"memorySessionIds must be an array");return}let o=this.dbManager.getSessionStore().getSdkSessionsBySessionIds(i);n.json(o)});handleGetPromptById=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"id");if(i===null)return;let o=this.dbManager.getSessionStore().getUserPromptsByIds([i]);if(o.length===0){this.notFound(n,`Prompt #${i} not found`);return}n.json(o[0])});handleGetStats=this.wrapHandler((r,n)=>{let i=this.dbManager.getSessionStore().db,s=tn(),o=a$.default.join(s,"package.json"),c=JSON.parse((0,tu.readFileSync)(o,"utf-8")).version,u=i.prepare("SELECT COUNT(*) as count FROM observations").get(),l=i.prepare("SELECT COUNT(*) as count FROM sdk_sessions").get(),d=i.prepare("SELECT COUNT(*) as count FROM session_summaries").get(),p=a$.default.join((0,vq.homedir)(),".claude-mem","claude-mem.db"),m=0;(0,tu.existsSync)(p)&&(m=(0,tu.statSync)(p).size);let f=Math.floor((Date.now()-this.startTime)/1e3),g=this.sessionManager.getActiveSessionCount(),h=this.sseBroadcaster.getClientCount();n.json({worker:{version:c,uptime:f,activeSessions:g,sseClients:h,port:Fr()},database:{path:p,size:m,observations:u.count,sessions:l.count,summaries:d.count}})});handleGetProjects=this.wrapHandler((r,n)=>{let o=this.dbManager.getSessionStore().db.prepare(` +|----|------|---|-------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,i=this.formatTime(e.created_at_epoch),s=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",a=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?"\u2033":i} | ${s} | ${o} | ~${a} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),s="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?"\u2033":i} | ${s} | ${o} | - |`,time:i}}formatUserPromptSearchRow(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),s="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?"\u2033":i} | ${s} | ${o} | - |`,time:i}}};Qr();var py=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,i)=>n.epoch-i.epoch),r}filterByDepth(e,r,n,i,s){if(e.length===0)return e;let o=-1;if(typeof r=="number")o=e.findIndex(u=>u.type==="observation"&&u.data.id===r);else if(typeof r=="string"&&r.startsWith("S")){let u=parseInt(r.slice(1),10);o=e.findIndex(l=>l.type==="session"&&l.data.id===u)}else o=e.findIndex(u=>u.epoch>=n),o===-1&&(o=e.length-1);if(o===-1)return e;let a=Math.max(0,o-i),c=Math.min(e.length,o+s+1);return e.slice(a,c)}formatTimeline(e,r,n,i,s){if(e.length===0)return n?`Found observation matching "${n}", but no timeline context available.`:"No timeline items found";let o=[];if(n&&r){let u=e.find(d=>d.type==="observation"&&d.data.id===r),l=u?u.data.title||"Untitled":"Unknown";o.push(`# Timeline for query: "${n}"`),o.push(`**Anchor:** Observation #${r} - ${l}`)}else r?o.push(`# Timeline around anchor: ${r}`):o.push("# Timeline");i!==void 0&&s!==void 0?o.push(`**Window:** ${i} records before \u2192 ${s} records after | **Items:** ${e.length}`):o.push(`**Items:** ${e.length}`),o.push(""),o.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),o.push("");let a=new Map;for(let u of e){let l=this.formatDate(u.epoch);a.has(l)||a.set(l,[]),a.get(l).push(u)}let c=Array.from(a.entries()).sort((u,l)=>{let d=new Date(u[0]).getTime(),p=new Date(l[0]).getTime();return d-p});for(let[u,l]of c){o.push(`### ${u}`),o.push("");let d=null,p="",f=!1;for(let m of l){let h=typeof r=="number"&&m.type==="observation"&&m.data.id===r||typeof r=="string"&&r.startsWith("S")&&m.type==="session"&&`S${m.data.id}`===r;if(m.type==="session"){f&&(o.push(""),f=!1,d=null,p="");let g=m.data,v=g.request||"Session summary",S=h?" \u2190 **ANCHOR**":"";o.push(`**\u{1F3AF} #S${g.id}** ${v} (${this.formatDateTime(m.epoch)})${S}`),o.push("")}else if(m.type==="prompt"){f&&(o.push(""),f=!1,d=null,p="");let g=m.data,v=g.prompt_text.length>100?g.prompt_text.substring(0,100)+"...":g.prompt_text;o.push(`**\u{1F4AC} User Prompt #${g.prompt_number}** (${this.formatDateTime(m.epoch)})`),o.push(`> ${v}`),o.push("")}else if(m.type==="observation"){let g=m.data,v="General";v!==d&&(f&&o.push(""),o.push(`**${v}**`),o.push("| ID | Time | T | Title | Tokens |"),o.push("|----|------|---|-------|--------|"),d=v,f=!0,p="");let S=this.getTypeIcon(g.type),b=this.formatTime(m.epoch),y=g.title||"Untitled",x=this.estimateTokens(g.narrative),E=b!==p?b:"\u2033";p=b;let T=h?" \u2190 **ANCHOR**":"";o.push(`| #${g.id} | ${E} | ${S} | ${y}${T} | ~${x} |`)}}f&&o.push("")}return o.join(` +`)}getTypeIcon(e){return He.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 fy=class{constructor(e,r){this.sseBroadcaster=e;this.workerService=r}broadcastNewPrompt(e){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:e}),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 v9=Pe(hv(),1),my=Pe(require("path"),1),gy=require("fs");zt();re();var Ur=class{wrapHandler(e){return(r,n)=>{try{let i=e(r,n);i instanceof Promise&&i.catch(s=>this.handleError(n,s))}catch(i){_.error("HTTP","Route handler error",{path:r.path},i),this.handleError(n,i)}}}parseIntParam(e,r,n){let i=parseInt(e.params[n],10);return isNaN(i)?(this.badRequest(r,`Invalid ${n}`),null):i}validateRequired(e,r,n){for(let i of n)if(e.body[i]===void 0||e.body[i]===null)return this.badRequest(r,`Missing ${i}`),!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:r.message})}};var hy=class extends Ur{constructor(r,n,i){super();this.sseBroadcaster=r;this.dbManager=n;this.sessionManager=i}setupRoutes(r){let n=dn();r.use(v9.default.static(my.default.join(n,"ui"))),r.get("/health",this.handleHealth.bind(this)),r.get("/",this.handleViewerUI.bind(this)),r.get("/stream",this.handleSSEStream.bind(this))}handleHealth=this.wrapHandler((r,n)=>{n.json({status:"ok",timestamp:Date.now()})});handleViewerUI=this.wrapHandler((r,n)=>{let i=dn(),o=[my.default.join(i,"ui","viewer.html"),my.default.join(i,"plugin","ui","viewer.html")].find(c=>(0,gy.existsSync)(c));if(!o)throw new Error("Viewer UI not found at any expected location");let a=(0,gy.readFileSync)(o,"utf-8");n.setHeader("Content-Type","text/html"),n.send(a)});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 i=this.dbManager.getSessionStore().getAllProjects();this.sseBroadcaster.broadcast({type:"initial_load",projects:i,timestamp:Date.now()});let s=this.sessionManager.isAnySessionProcessing(),o=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:s,queueDepth:o})})};Dr();re();re();var y9=100;function __e(t){let e=(t.match(//g)||[]).length,r=(t.match(//g)||[]).length,n=(t.match(//g)||[]).length,i=(t.match(//g)||[]).length;return e+r+n+i}function _9(t){let e=__e(t);return e>y9&&_.warn("SYSTEM","tag count exceeds limit",void 0,{tagCount:e,maxAllowed:y9,contentLength:t.length}),t.replace(/[\s\S]*?<\/claude-mem-context>/g,"").replace(/[\s\S]*?<\/private>/g,"").replace(/[\s\S]*?<\/system_instruction>/g,"").replace(/[\s\S]*?<\/system-instruction>/g,"").trim()}function Y$(t){return _9(t)}function b9(t){return _9(t)}re();var vy=class{constructor(e,r){this.sessionManager=e;this.eventBroadcaster=r}async completeByDbId(e){await this.sessionManager.deleteSession(e);try{let n=this.sessionManager.getPendingMessageStore().markAllSessionMessagesAbandoned(e);n>0&&_.warn("SESSION",`Drained ${n} orphaned pending messages on session completion`,{sessionId:e,drainedCount:n})}catch(r){_.debug("SESSION","Failed to drain pending queue on session completion",{sessionId:e,error:r instanceof Error?r.message:String(r)})}this.eventBroadcaster.broadcastSessionCompleted(e)}};re();var cf=class{static checkUserPromptPrivacy(e,r,n,i,s,o){let a=e.getUserPrompt(r,n);return!a||a.trim()===""?(_.debug("HOOK",`Skipping ${i} - user prompt was entirely private`,{sessionId:s,promptNumber:n,...o}),null):a}};rr();zt();var yy=class t extends Ur{constructor(r,n,i,s,o,a,c){super();this.sessionManager=r;this.dbManager=n;this.sdkAgent=i;this.geminiAgent=s;this.openRouterAgent=o;this.eventBroadcaster=a;this.workerService=c;this.completionHandler=new vy(r,a)}completionHandler;spawnInProgress=new Map;crashRecoveryScheduled=new Set;getActiveAgent(){if(Du()){if(Ea())return _.debug("SESSION","Using OpenRouter agent"),this.openRouterAgent;throw new Error("OpenRouter provider selected but no API key configured. Set CLAUDE_MEM_OPENROUTER_API_KEY in settings or OPENROUTER_API_KEY environment variable.")}if(Mu()){if(wa())return _.debug("SESSION","Using Gemini agent"),this.geminiAgent;throw new Error("Gemini provider selected but no API key configured. Set CLAUDE_MEM_GEMINI_API_KEY in settings or GEMINI_API_KEY environment variable.")}return this.sdkAgent}getSelectedProvider(){return Du()&&Ea()?"openrouter":Mu()&&wa()?"gemini":"claude"}static STALE_GENERATOR_THRESHOLD_MS=3e4;ensureGeneratorRunning(r,n){let i=this.sessionManager.getSession(r);if(!i)return;if(this.spawnInProgress.get(r)){_.debug("SESSION","Spawn already in progress, skipping",{sessionDbId:r,source:n});return}let s=this.getSelectedProvider();if(!i.generatorPromise){this.applyTierRouting(i),this.spawnInProgress.set(r,!0),this.startGeneratorWithProvider(i,s,n);return}let o=Date.now()-i.lastGeneratorActivity;if(o>t.STALE_GENERATOR_THRESHOLD_MS){_.warn("SESSION","Stale generator detected, aborting to prevent queue stall (#1099)",{sessionId:r,timeSinceActivityMs:o,thresholdMs:t.STALE_GENERATOR_THRESHOLD_MS,source:n}),i.abortController.abort(),i.generatorPromise=null,i.abortController=new AbortController,i.lastGeneratorActivity=Date.now(),this.applyTierRouting(i),this.spawnInProgress.set(r,!0),this.startGeneratorWithProvider(i,s,"stale-recovery");return}i.currentProvider&&i.currentProvider!==s&&_.info("SESSION","Provider changed, will switch after current generator finishes",{sessionId:r,currentProvider:i.currentProvider,selectedProvider:s,historyLength:i.conversationHistory.length})}startGeneratorWithProvider(r,n,i){if(!r)return;r.abortController.signal.aborted&&(_.debug("SESSION","Resetting aborted AbortController before starting generator",{sessionId:r.sessionDbId}),r.abortController=new AbortController);let s=n==="openrouter"?this.openRouterAgent:n==="gemini"?this.geminiAgent:this.sdkAgent,o=n==="openrouter"?"OpenRouter":n==="gemini"?"Gemini":"Claude SDK",c=this.sessionManager.getPendingMessageStore().getPendingCount(r.sessionDbId);_.info("SESSION",`Generator auto-starting (${i}) using ${o}`,{sessionId:r.sessionDbId,queueDepth:c,historyLength:r.conversationHistory.length}),r.currentProvider=n,r.lastGeneratorActivity=Date.now(),r.generatorPromise=s.startSession(r,this.workerService).catch(u=>{if(r.abortController.signal.aborted)return;_.error("SESSION","Generator failed",{sessionId:r.sessionDbId,provider:n,error:u.message},u);let l=this.sessionManager.getPendingMessageStore();try{let d=l.markSessionMessagesFailed(r.sessionDbId);d>0&&_.error("SESSION","Marked messages as failed after generator error",{sessionId:r.sessionDbId,failedCount:d})}catch(d){_.error("SESSION","Failed to mark messages as failed",{sessionId:r.sessionDbId},d)}}).finally(async()=>{let u=go(r.sessionDbId);u&&!u.process.killed&&u.process.exitCode===null&&await vo(u,5e3);let l=r.sessionDbId;this.spawnInProgress.delete(l);let d=r.abortController.signal.aborted;if(d?_.info("SESSION","Generator aborted",{sessionId:l}):_.error("SESSION","Generator exited unexpectedly",{sessionId:l}),r.generatorPromise=null,r.currentProvider=null,this.workerService.broadcastProcessingStatus(),!d)try{let f=this.sessionManager.getPendingMessageStore().getPendingCount(l),m=3;if(f>0){if(this.crashRecoveryScheduled.has(l)){_.debug("SESSION","Crash recovery already scheduled",{sessionDbId:l});return}if(r.consecutiveRestarts=(r.consecutiveRestarts||0)+1,r.consecutiveRestarts>m){_.error("SESSION","CRITICAL: Generator restart limit exceeded - stopping to prevent runaway costs",{sessionId:l,pendingCount:f,consecutiveRestarts:r.consecutiveRestarts,maxRestarts:m,action:"Generator will NOT restart. Check logs for root cause. Messages remain in pending state."}),r.abortController.abort();return}_.info("SESSION","Restarting generator after crash/exit with pending work",{sessionId:l,pendingCount:f,consecutiveRestarts:r.consecutiveRestarts,maxRestarts:m});let h=r.abortController;r.abortController=new AbortController,h.abort(),this.crashRecoveryScheduled.add(l);let g=Math.min(1e3*Math.pow(2,r.consecutiveRestarts-1),8e3);setTimeout(()=>{this.crashRecoveryScheduled.delete(l);let v=this.sessionManager.getSession(l);v&&!v.generatorPromise&&(this.applyTierRouting(v),this.startGeneratorWithProvider(v,this.getSelectedProvider(),"crash-recovery"))},g)}else r.abortController.abort(),r.consecutiveRestarts=0,_.debug("SESSION","Aborted controller after natural completion",{sessionId:l})}catch(p){_.debug("SESSION","Error during recovery check, aborting to prevent leaks",{sessionId:l,error:p instanceof Error?p.message:String(p)}),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.handleCompleteByClaudeId.bind(this)),r.get("/api/sessions/status",this.handleStatusByClaudeId.bind(this))}handleSessionInit=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{userPrompt:s,promptNumber:o}=r.body;_.info("HTTP","SessionRoutes: handleSessionInit called",{sessionDbId:i,promptNumber:o,has_userPrompt:!!s});let a=this.sessionManager.initializeSession(i,s,o),c=this.dbManager.getSessionStore().getLatestUserPrompt(a.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 u=Date.now(),l=c.prompt_text;this.dbManager.getChromaSync()?.syncUserPrompt(c.id,c.memory_session_id,c.project,l,c.prompt_number,c.created_at_epoch).then(()=>{let d=Date.now()-u,p=l.length>60?l.substring(0,60)+"...":l;_.debug("CHROMA","User prompt synced",{promptId:c.id,duration:`${d}ms`,prompt:p})}).catch(d=>{_.error("CHROMA","User prompt sync failed, continuing without vector search",{promptId:c.id,prompt:l.length>60?l.substring(0,60)+"...":l},d)})}this.ensureGeneratorRunning(i,"init"),this.eventBroadcaster.broadcastSessionStarted(i,a.project),n.json({status:"initialized",sessionDbId:i,port:Jr()})});handleObservations=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{tool_name:s,tool_input:o,tool_response:a,prompt_number:c,cwd:u}=r.body;this.sessionManager.queueObservation(i,{tool_name:s,tool_input:o,tool_response:a,prompt_number:c,cwd:u}),this.ensureGeneratorRunning(i,"observation"),this.eventBroadcaster.broadcastObservationQueued(i),n.json({status:"queued"})});handleSummarize=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{last_assistant_message:s}=r.body;this.sessionManager.queueSummarize(i,s),this.ensureGeneratorRunning(i,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionStatus=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let s=this.sessionManager.getSession(i);if(!s){n.json({status:"not_found"});return}let a=this.sessionManager.getPendingMessageStore().getPendingCount(i);n.json({status:"active",sessionDbId:i,project:s.project,queueLength:a,uptime:Date.now()-s.startTime})});handleSessionDelete=this.wrapHandler(async(r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");i!==null&&(await this.completionHandler.completeByDbId(i),n.json({status:"deleted"}))});handleSessionComplete=this.wrapHandler(async(r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");i!==null&&(await this.completionHandler.completeByDbId(i),n.json({success:!0}))});handleObservationsByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,tool_name:s,tool_input:o,tool_response:a,cwd:c}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let u=Se.loadFromFile(jt);if(new Set(u.CLAUDE_MEM_SKIP_TOOLS.split(",").map(p=>p.trim()).filter(Boolean)).has(s)){_.debug("SESSION","Skipping observation for tool",{tool_name:s}),n.json({status:"skipped",reason:"tool_excluded"});return}if(new Set(["Edit","Write","Read","NotebookEdit"]).has(s)&&o){let p=o.file_path||o.notebook_path;if(p&&p.includes("session-memory")){_.debug("SESSION","Skipping meta-observation for session-memory file",{tool_name:s,file_path:p}),n.json({status:"skipped",reason:"session_memory_meta"});return}}try{let p=this.dbManager.getSessionStore(),f=p.createSDKSession(i,"",""),m=p.getPromptNumberFromUserPrompts(i);if(!cf.checkUserPromptPrivacy(p,i,m,"observation",f,{tool_name:s})){n.json({status:"skipped",reason:"private"});return}let g=o!==void 0?Y$(JSON.stringify(o)):"{}",v=a!==void 0?Y$(JSON.stringify(a)):"{}";this.sessionManager.queueObservation(f,{tool_name:s,tool_input:g,tool_response:v,prompt_number:m,cwd:c||(_.error("SESSION","Missing cwd when queueing observation in SessionRoutes",{sessionId:f,tool_name:s}),"")}),this.ensureGeneratorRunning(f,"observation"),this.eventBroadcaster.broadcastObservationQueued(f),n.json({status:"queued"})}catch(p){_.error("SESSION","Observation storage failed",{contentSessionId:i,tool_name:s},p),n.json({stored:!1,reason:p.message})}});handleSummarizeByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,last_assistant_message:s}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let o=this.dbManager.getSessionStore(),a=o.createSDKSession(i,"",""),c=o.getPromptNumberFromUserPrompts(i);if(!cf.checkUserPromptPrivacy(o,i,c,"summarize",a)){n.json({status:"skipped",reason:"private"});return}this.sessionManager.queueSummarize(a,s),this.ensureGeneratorRunning(a,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleStatusByClaudeId=this.wrapHandler((r,n)=>{let i=r.query.contentSessionId;if(!i)return this.badRequest(n,"Missing contentSessionId query parameter");let o=this.dbManager.getSessionStore().createSDKSession(i,"",""),a=this.sessionManager.getSession(o);if(!a){n.json({status:"not_found",queueLength:0});return}let u=this.sessionManager.getPendingMessageStore().getPendingCount(o);n.json({status:"active",sessionDbId:o,queueLength:u,uptime:Date.now()-a.startTime})});handleCompleteByClaudeId=this.wrapHandler(async(r,n)=>{let{contentSessionId:i}=r.body;if(_.info("HTTP","\u2192 POST /api/sessions/complete",{contentSessionId:i}),!i)return this.badRequest(n,"Missing contentSessionId");let o=this.dbManager.getSessionStore().createSDKSession(i,"","");if(!this.sessionManager.getSession(o)){_.debug("SESSION","session-complete: Session not in active map",{contentSessionId:i,sessionDbId:o}),n.json({status:"skipped",reason:"not_active"});return}await this.completionHandler.completeByDbId(o),_.info("SESSION","Session completed via API",{contentSessionId:i,sessionDbId:o}),n.json({status:"completed",sessionDbId:o})});handleSessionInitByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i}=r.body,s=r.body.project||"unknown",o=r.body.prompt||"[media prompt]",a=r.body.customTitle||void 0;if(_.info("HTTP","SessionRoutes: handleSessionInitByClaudeId called",{contentSessionId:i,project:s,prompt_length:o?.length,customTitle:a}),!this.validateRequired(r,n,["contentSessionId"]))return;let c=this.dbManager.getSessionStore(),u=c.createSDKSession(i,s,o,a),l=c.getSessionById(u),d=!l?.memory_session_id;_.info("SESSION",`CREATED | contentSessionId=${i} \u2192 sessionDbId=${u} | isNew=${d} | project=${s}`,{sessionId:u});let f=c.getPromptNumberFromUserPrompts(i)+1,m=l?.memory_session_id||null;f>1?_.debug("HTTP",`[ALIGNMENT] DB Lookup Proof | contentSessionId=${i} \u2192 memorySessionId=${m||"(not yet captured)"} | prompt#=${f}`):_.debug("HTTP",`[ALIGNMENT] New Session | contentSessionId=${i} | prompt#=${f} | memorySessionId will be captured on first SDK response`);let h=b9(o);if(!h||h.trim()===""){_.debug("HOOK","Session init - prompt entirely private",{sessionId:u,promptNumber:f,originalLength:o.length}),n.json({sessionDbId:u,promptNumber:f,skipped:!0,reason:"private"});return}c.saveUserPrompt(i,f,h);let g=this.sessionManager.getSession(u)!==void 0;_.debug("SESSION","User prompt saved",{sessionId:u,promptNumber:f,contextInjected:g}),n.json({sessionDbId:u,promptNumber:f,skipped:!1,contextInjected:g})});static SIMPLE_TOOLS=new Set(["Read","Glob","Grep","LS","ListMcpResourcesTool"]);applyTierRouting(r){let n=Se.loadFromFile(jt);if(n.CLAUDE_MEM_TIER_ROUTING_ENABLED==="false"){r.modelOverride=void 0;return}r.modelOverride=void 0;let s=this.sessionManager.getPendingMessageStore().peekPendingTypes(r.sessionDbId);if(s.length===0){r.modelOverride=void 0;return}let o=s.some(c=>c.message_type==="summarize"),a=s.every(c=>c.message_type==="observation"&&c.tool_name&&t.SIMPLE_TOOLS.has(c.tool_name));if(o){let c=n.CLAUDE_MEM_TIER_SUMMARY_MODEL;c&&(r.modelOverride=c,_.debug("SESSION","Tier routing: summary model",{sessionId:r.sessionDbId,model:c}))}else if(a){let c=n.CLAUDE_MEM_TIER_SIMPLE_MODEL;c&&(r.modelOverride=c,_.debug("SESSION","Tier routing: simple model",{sessionId:r.sessionDbId,model:c}))}else r.modelOverride=void 0}};var Q$=Pe(require("path"),1),ju=require("fs");re();var S9=require("os");zt();Dr();var _y=class extends Ur{constructor(r,n,i,s,o,a){super();this.paginationHelper=r;this.dbManager=n;this.sessionManager=i;this.sseBroadcaster=s;this.workerService=o;this.startTime=a}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.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.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.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))}handleGetObservations=this.wrapHandler((r,n)=>{let{offset:i,limit:s,project:o}=this.parsePaginationParams(r),a=this.paginationHelper.getObservations(i,s,o);n.json(a)});handleGetSummaries=this.wrapHandler((r,n)=>{let{offset:i,limit:s,project:o}=this.parsePaginationParams(r),a=this.paginationHelper.getSummaries(i,s,o);n.json(a)});handleGetPrompts=this.wrapHandler((r,n)=>{let{offset:i,limit:s,project:o}=this.parsePaginationParams(r),a=this.paginationHelper.getPrompts(i,s,o);n.json(a)});handleGetObservationById=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"id");if(i===null)return;let o=this.dbManager.getSessionStore().getObservationById(i);if(!o){this.notFound(n,`Observation #${i} not found`);return}n.json(o)});handleGetObservationsByIds=this.wrapHandler((r,n)=>{let{ids:i,orderBy:s,limit:o,project:a}=r.body;if(typeof i=="string")try{i=JSON.parse(i)}catch{i=i.split(",").map(Number)}if(!i||!Array.isArray(i)){this.badRequest(n,"ids must be an array of numbers");return}if(i.length===0){n.json([]);return}if(!i.every(l=>typeof l=="number"&&Number.isInteger(l))){this.badRequest(n,"All ids must be integers");return}let u=this.dbManager.getSessionStore().getObservationsByIds(i,{orderBy:s,limit:o,project:a});n.json(u)});handleGetSessionById=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"id");if(i===null)return;let o=this.dbManager.getSessionStore().getSessionSummariesByIds([i]);if(o.length===0){this.notFound(n,`Session #${i} not found`);return}n.json(o[0])});handleGetSdkSessionsByIds=this.wrapHandler((r,n)=>{let{memorySessionIds:i}=r.body;if(typeof i=="string")try{i=JSON.parse(i)}catch{i=i.split(",").map(a=>a.trim())}if(!Array.isArray(i)){this.badRequest(n,"memorySessionIds must be an array");return}let o=this.dbManager.getSessionStore().getSdkSessionsBySessionIds(i);n.json(o)});handleGetPromptById=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"id");if(i===null)return;let o=this.dbManager.getSessionStore().getUserPromptsByIds([i]);if(o.length===0){this.notFound(n,`Prompt #${i} not found`);return}n.json(o[0])});handleGetStats=this.wrapHandler((r,n)=>{let i=this.dbManager.getSessionStore().db,s=dn(),o=Q$.default.join(s,"package.json"),c=JSON.parse((0,ju.readFileSync)(o,"utf-8")).version,u=i.prepare("SELECT COUNT(*) as count FROM observations").get(),l=i.prepare("SELECT COUNT(*) as count FROM sdk_sessions").get(),d=i.prepare("SELECT COUNT(*) as count FROM session_summaries").get(),p=Q$.default.join((0,S9.homedir)(),".claude-mem","claude-mem.db"),f=0;(0,ju.existsSync)(p)&&(f=(0,ju.statSync)(p).size);let m=Math.floor((Date.now()-this.startTime)/1e3),h=this.sessionManager.getActiveSessionCount(),g=this.sseBroadcaster.getClientCount();n.json({worker:{version:c,uptime:m,activeSessions:h,sseClients:g,port:Jr()},database:{path:p,size:f,observations:u.count,sessions:l.count,summaries:d.count}})});handleGetProjects=this.wrapHandler((r,n)=>{let o=this.dbManager.getSessionStore().db.prepare(` SELECT DISTINCT project FROM observations WHERE project IS NOT NULL GROUP BY project ORDER BY MAX(created_at_epoch) DESC - `).all().map(a=>a.project);n.json({projects:o})});handleGetProcessingStatus=this.wrapHandler((r,n)=>{let i=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalActiveWork();n.json({isProcessing:i,queueDepth:s})});handleSetProcessing=this.wrapHandler((r,n)=>{this.workerService.broadcastProcessingStatus();let i=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalQueueDepth(),o=this.sessionManager.getActiveSessionCount();n.json({status:"ok",isProcessing:i,queueDepth:s,activeSessions:o})});parsePaginationParams(r){let n=parseInt(r.query.offset,10)||0,i=Math.min(parseInt(r.query.limit,10)||20,100),s=r.query.project;return{offset:n,limit:i,project:s}}handleImport=this.wrapHandler((r,n)=>{let{sessions:i,summaries:s,observations:o,prompts:a}=r.body,c={sessionsImported:0,sessionsSkipped:0,summariesImported:0,summariesSkipped:0,observationsImported:0,observationsSkipped:0,promptsImported:0,promptsSkipped:0},u=this.dbManager.getSessionStore();if(Array.isArray(i))for(let l of i)u.importSdkSession(l).imported?c.sessionsImported++:c.sessionsSkipped++;if(Array.isArray(s))for(let l of s)u.importSessionSummary(l).imported?c.summariesImported++:c.summariesSkipped++;if(Array.isArray(o))for(let l of o)u.importObservation(l).imported?c.observationsImported++:c.observationsSkipped++;if(Array.isArray(a))for(let l of a)u.importUserPrompt(l).imported?c.promptsImported++:c.promptsSkipped++;n.json({success:!0,stats:c})});handleGetPendingQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(jo(),kp(Ec)),s=new i(this.dbManager.getSessionStore().db,3),o=s.getQueueMessages(),a=s.getRecentlyProcessed(20,30),c=s.getStuckCount(300*1e3),u=s.getSessionsWithPendingMessages();n.json({queue:{messages:o,totalPending:o.filter(l=>l.status==="pending").length,totalProcessing:o.filter(l=>l.status==="processing").length,totalFailed:o.filter(l=>l.status==="failed").length,stuckCount:c},recentlyProcessed:a,sessionsWithPendingWork:u})});handleProcessPendingQueue=this.wrapHandler(async(r,n)=>{let i=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),s=await this.workerService.processPendingQueues(i);n.json({success:!0,...s})});handleClearFailedQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(jo(),kp(Ec)),o=new i(this.dbManager.getSessionStore().db,3).clearFailed();y.info("QUEUE","Cleared failed queue messages",{clearedCount:o}),n.json({success:!0,clearedCount:o})});handleClearAllQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(jo(),kp(Ec)),o=new i(this.dbManager.getSessionStore().db,3).clearAll();y.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:o}),n.json({success:!0,clearedCount:o})});handleFileContextGate=this.wrapHandler((r,n)=>{let{sessionId:i,filePath:s}=r.body;if(!i||!s){this.badRequest(n,"sessionId and filePath are required");return}let o=gq(i,s);n.json({firstAttempt:o})})};var pv=class extends Nr{constructor(r){super();this.searchManager=r}setupRoutes(r){r.get("/api/search",this.handleUnifiedSearch.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 i=await this.searchManager.search(r.query);n.json(i)});handleUnifiedTimeline=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.timeline(r.query);n.json(i)});handleDecisions=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.decisions(r.query);n.json(i)});handleChanges=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.changes(r.query);n.json(i)});handleHowItWorks=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.howItWorks(r.query);n.json(i)});handleSearchObservations=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.searchObservations(r.query);n.json(i)});handleSearchSessions=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.searchSessions(r.query);n.json(i)});handleSearchPrompts=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.searchUserPrompts(r.query);n.json(i)});handleSearchByConcept=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.findByConcept(r.query);n.json(i)});handleSearchByFile=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.findByFile(r.query);n.json(i)});handleSearchByType=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.findByType(r.query);n.json(i)});handleGetRecentContext=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.getRecentContext(r.query);n.json(i)});handleGetContextTimeline=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.getContextTimeline(r.query);n.json(i)});handleContextPreview=this.wrapHandler(async(r,n)=>{let i=r.query.project;if(!i){this.badRequest(n,"Project parameter is required");return}let{generateContext:s}=await Promise.resolve().then(()=>(b$(),_$)),o=`/preview/${i}`,a=await s({session_id:"preview-"+Date.now(),cwd:o},!0);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(a)});handleContextInject=this.wrapHandler(async(r,n)=>{let i=r.query.projects||r.query.project,s=r.query.colors==="true",o=r.query.full==="true";if(!i){this.badRequest(n,"Project(s) parameter is required");return}let a=i.split(",").map(p=>p.trim()).filter(Boolean);if(a.length===0){this.badRequest(n,"At least one project is required");return}let{generateContext:c}=await Promise.resolve().then(()=>(b$(),_$)),l=`/context/${a[a.length-1]}`,d=await c({session_id:"context-inject-"+Date.now(),cwd:l,projects:a,full:o},s);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(d)});handleGetTimelineByQuery=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.getTimelineByQuery(r.query);n.json(i)});handleSearchHelp=this.wrapHandler((r,n)=>{n.json({title:"Claude-Mem 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:['curl "http://localhost:37777/api/search/observations?query=authentication&limit=5"','curl "http://localhost:37777/api/search/by-type?type=bugfix&limit=10"','curl "http://localhost:37777/api/context/recent?project=claude-mem&limit=3"','curl "http://localhost:37777/api/context/timeline?anchor=123&depth_before=5&depth_after=5"']})})};var Jo=Ue(require("path"),1),xr=require("fs"),E$=require("os");Nt();oe();var S$=require("child_process"),Ko=require("fs"),mv=require("path");oe();Nt();var wp=Ki;function x$(t){return!t||typeof t!="string"?!1:/^[a-zA-Z0-9][a-zA-Z0-9._/-]*$/.test(t)&&!t.includes("..")}var fge=3e5,w$=6e5;function Un(t){let e=(0,S$.spawnSync)("git",t,{cwd:wp,encoding:"utf-8",timeout:fge,windowsHide:!0,shell:!1});if(e.error)throw e.error;if(e.status!==0)throw new Error(e.stderr||e.stdout||"Git command failed");return e.stdout.trim()}function _9(t,e=w$){let n=process.platform==="win32"?"npm.cmd":"npm",i=(0,S$.spawnSync)(n,t,{cwd:wp,encoding:"utf-8",timeout:e,windowsHide:!0,shell:!1});if(i.error)throw i.error;if(i.status!==0)throw new Error(i.stderr||i.stdout||"npm command failed");return i.stdout.trim()}function fv(){let t=(0,mv.join)(wp,".git");if(!(0,Ko.existsSync)(t))return{branch:null,isBeta:!1,isGitRepo:!1,isDirty:!1,canSwitch:!1,error:"Installed plugin is not a git repository"};try{let e=Un(["rev-parse","--abbrev-ref","HEAD"]),n=Un(["status","--porcelain"]).length>0,i=e.startsWith("beta");return{branch:e,isBeta:i,isGitRepo:!0,isDirty:n,canSwitch:!0}}catch(e){return y.error("BRANCH","Failed to get branch info",{},e),{branch:null,isBeta:!1,isGitRepo:!0,isDirty:!1,canSwitch:!1,error:e.message}}}async function b9(t){if(!x$(t))return{success:!1,error:`Invalid branch name: ${t}. Branch names must be alphanumeric with hyphens, underscores, slashes, or dots.`};let e=fv();if(!e.isGitRepo)return{success:!1,error:"Installed plugin is not a git repository. Please reinstall."};if(e.branch===t)return{success:!0,branch:t,message:`Already on branch ${t}`};try{y.info("BRANCH","Starting branch switch",{from:e.branch,to:t}),y.debug("BRANCH","Discarding local changes"),Un(["checkout","--","."]),Un(["clean","-fd"]),y.debug("BRANCH","Fetching from origin"),Un(["fetch","origin"]),y.debug("BRANCH","Checking out branch",{branch:t});try{Un(["checkout",t])}catch(n){y.debug("BRANCH","Branch not local, tracking remote",{branch:t,error:n instanceof Error?n.message:String(n)}),Un(["checkout","-b",t,`origin/${t}`])}y.debug("BRANCH","Pulling latest"),Un(["pull","origin",t]);let r=(0,mv.join)(wp,".install-version");return(0,Ko.existsSync)(r)&&(0,Ko.unlinkSync)(r),y.debug("BRANCH","Running npm install"),_9(["install"],w$),y.success("BRANCH","Branch switch complete",{branch:t}),{success:!0,branch:t,message:`Switched to ${t}. Worker will restart automatically.`}}catch(r){y.error("BRANCH","Branch switch failed",{targetBranch:t},r);try{e.branch&&x$(e.branch)&&Un(["checkout",e.branch])}catch(n){y.error("BRANCH","Recovery checkout also failed",{originalBranch:e.branch},n)}return{success:!1,error:`Branch switch failed: ${r.message}`}}}async function x9(){let t=fv();if(!t.isGitRepo||!t.branch)return{success:!1,error:"Cannot pull updates: not a git repository"};try{if(!x$(t.branch))return{success:!1,error:`Invalid current branch name: ${t.branch}`};y.info("BRANCH","Pulling updates",{branch:t.branch}),Un(["checkout","--","."]),Un(["fetch","origin"]),Un(["pull","origin",t.branch]);let e=(0,mv.join)(wp,".install-version");return(0,Ko.existsSync)(e)&&(0,Ko.unlinkSync)(e),_9(["install"],w$),y.success("BRANCH","Updates pulled",{branch:t.branch}),{success:!0,branch:t.branch,message:`Updated ${t.branch}. Worker will restart automatically.`}}catch(e){return y.error("BRANCH","Pull failed",{},e),{success:!1,error:`Pull failed: ${e.message}`}}}Yt();Or();var hv=class extends Nr{constructor(r){super();this.settingsManager=r}setupRoutes(r){r.get("/api/settings",this.handleGetSettings.bind(this)),r.post("/api/settings",this.handleUpdateSettings.bind(this)),r.get("/api/mcp/status",this.handleGetMcpStatus.bind(this)),r.post("/api/mcp/toggle",this.handleToggleMcp.bind(this)),r.get("/api/branch/status",this.handleGetBranchStatus.bind(this)),r.post("/api/branch/switch",this.handleSwitchBranch.bind(this)),r.post("/api/branch/update",this.handleUpdateBranch.bind(this))}handleGetSettings=this.wrapHandler((r,n)=>{let i=Jo.default.join((0,E$.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(i);let s=_e.loadFromFile(i);n.json(s)});handleUpdateSettings=this.wrapHandler((r,n)=>{let i=this.validateSettings(r.body);if(!i.valid){n.status(400).json({success:!1,error:i.error});return}let s=Jo.default.join((0,E$.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(s);let o={};if((0,xr.existsSync)(s)){let c=(0,xr.readFileSync)(s,"utf-8");try{o=JSON.parse(c)}catch(u){y.error("SETTINGS","Failed to parse settings file",{settingsPath:s},u),n.status(500).json({success:!1,error:"Settings file is corrupted. Delete ~/.claude-mem/settings.json to reset."});return}}let a=["CLAUDE_MEM_MODEL","CLAUDE_MEM_CONTEXT_OBSERVATIONS","CLAUDE_MEM_WORKER_PORT","CLAUDE_MEM_WORKER_HOST","CLAUDE_MEM_PROVIDER","CLAUDE_MEM_GEMINI_API_KEY","CLAUDE_MEM_GEMINI_MODEL","CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED","CLAUDE_MEM_OPENROUTER_API_KEY","CLAUDE_MEM_OPENROUTER_MODEL","CLAUDE_MEM_OPENROUTER_SITE_URL","CLAUDE_MEM_OPENROUTER_APP_NAME","CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES","CLAUDE_MEM_OPENROUTER_MAX_TOKENS","CLAUDE_MEM_DATA_DIR","CLAUDE_MEM_LOG_LEVEL","CLAUDE_MEM_PYTHON_VERSION","CLAUDE_CODE_PATH","CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES","CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS","CLAUDE_MEM_CONTEXT_FULL_COUNT","CLAUDE_MEM_CONTEXT_FULL_FIELD","CLAUDE_MEM_CONTEXT_SESSION_COUNT","CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED"];for(let c of a)r.body[c]!==void 0&&(o[c]=r.body[c]);(0,xr.writeFileSync)(s,JSON.stringify(o,null,2),"utf-8"),dA(),y.info("WORKER","Settings updated"),n.json({success:!0,message:"Settings updated successfully"})});handleGetMcpStatus=this.wrapHandler((r,n)=>{let i=this.isMcpEnabled();n.json({enabled:i})});handleToggleMcp=this.wrapHandler((r,n)=>{let{enabled:i}=r.body;if(typeof i!="boolean"){this.badRequest(n,"enabled must be a boolean");return}this.toggleMcp(i),n.json({success:!0,enabled:this.isMcpEnabled()})});handleGetBranchStatus=this.wrapHandler((r,n)=>{let i=fv();n.json(i)});handleSwitchBranch=this.wrapHandler(async(r,n)=>{let{branch:i}=r.body;if(!i){n.status(400).json({success:!1,error:"Missing branch parameter"});return}let s=["main","beta/7.0","feature/bun-executable"];if(!s.includes(i)){n.status(400).json({success:!1,error:`Invalid branch. Allowed: ${s.join(", ")}`});return}y.info("WORKER","Branch switch requested",{branch:i});let o=await b9(i);o.success&&setTimeout(()=>{y.info("WORKER","Restarting worker after branch switch"),process.exit(0)},1e3),n.json(o)});handleUpdateBranch=this.wrapHandler(async(r,n)=>{y.info("WORKER","Branch update requested");let i=await x9();i.success&&setTimeout(()=>{y.info("WORKER","Restarting worker after branch update"),process.exit(0)},1e3),n.json(i)});validateSettings(r){if(r.CLAUDE_MEM_PROVIDER&&!["claude","gemini","openrouter"].includes(r.CLAUDE_MEM_PROVIDER))return{valid:!1,error:'CLAUDE_MEM_PROVIDER must be "claude", "gemini", or "openrouter"'};if(r.CLAUDE_MEM_GEMINI_MODEL&&!["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-3-flash-preview"].includes(r.CLAUDE_MEM_GEMINI_MODEL))return{valid:!1,error:"CLAUDE_MEM_GEMINI_MODEL must be one of: gemini-2.5-flash-lite, gemini-2.5-flash, gemini-3-flash-preview"};if(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS){let i=parseInt(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10);if(isNaN(i)||i<1||i>200)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_OBSERVATIONS must be between 1 and 200"}}if(r.CLAUDE_MEM_WORKER_PORT){let i=parseInt(r.CLAUDE_MEM_WORKER_PORT,10);if(isNaN(i)||i<1024||i>65535)return{valid:!1,error:"CLAUDE_MEM_WORKER_PORT must be between 1024 and 65535"}}if(r.CLAUDE_MEM_WORKER_HOST){let i=r.CLAUDE_MEM_WORKER_HOST;if(!/^(127\.0\.0\.1|0\.0\.0\.0|localhost|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/.test(i))return{valid:!1,error:"CLAUDE_MEM_WORKER_HOST must be a valid IP address (e.g., 127.0.0.1, 0.0.0.0)"}}if(r.CLAUDE_MEM_LOG_LEVEL&&!["DEBUG","INFO","WARN","ERROR","SILENT"].includes(r.CLAUDE_MEM_LOG_LEVEL.toUpperCase()))return{valid:!1,error:"CLAUDE_MEM_LOG_LEVEL must be one of: DEBUG, INFO, WARN, ERROR, SILENT"};if(r.CLAUDE_MEM_PYTHON_VERSION&&!/^3\.\d{1,2}$/.test(r.CLAUDE_MEM_PYTHON_VERSION))return{valid:!1,error:'CLAUDE_MEM_PYTHON_VERSION must be in format "3.X" or "3.XX" (e.g., "3.13")'};let n=["CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE"];for(let i of n)if(r[i]&&!["true","false"].includes(r[i]))return{valid:!1,error:`${i} must be "true" or "false"`};if(r.CLAUDE_MEM_CONTEXT_FULL_COUNT){let i=parseInt(r.CLAUDE_MEM_CONTEXT_FULL_COUNT,10);if(isNaN(i)||i<0||i>20)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_FULL_COUNT must be between 0 and 20"}}if(r.CLAUDE_MEM_CONTEXT_SESSION_COUNT){let i=parseInt(r.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10);if(isNaN(i)||i<1||i>50)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_SESSION_COUNT must be between 1 and 50"}}if(r.CLAUDE_MEM_CONTEXT_FULL_FIELD&&!["narrative","facts"].includes(r.CLAUDE_MEM_CONTEXT_FULL_FIELD))return{valid:!1,error:'CLAUDE_MEM_CONTEXT_FULL_FIELD must be "narrative" or "facts"'};if(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES){let i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES,10);if(isNaN(i)||i<1||i>100)return{valid:!1,error:"CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES must be between 1 and 100"}}if(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS){let i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS,10);if(isNaN(i)||i<1e3||i>1e6)return{valid:!1,error:"CLAUDE_MEM_OPENROUTER_MAX_TOKENS must be between 1000 and 1000000"}}if(r.CLAUDE_MEM_OPENROUTER_SITE_URL)try{new URL(r.CLAUDE_MEM_OPENROUTER_SITE_URL)}catch(i){return y.debug("SETTINGS","Invalid URL format",{url:r.CLAUDE_MEM_OPENROUTER_SITE_URL,error:i instanceof Error?i.message:String(i)}),{valid:!1,error:"CLAUDE_MEM_OPENROUTER_SITE_URL must be a valid URL"}}return{valid:!0}}isMcpEnabled(){let r=tn(),n=Jo.default.join(r,"plugin",".mcp.json");return(0,xr.existsSync)(n)}toggleMcp(r){let n=tn(),i=Jo.default.join(n,"plugin",".mcp.json"),s=Jo.default.join(n,"plugin",".mcp.json.disabled");r&&(0,xr.existsSync)(s)?((0,xr.renameSync)(s,i),y.info("WORKER","MCP search server enabled")):!r&&(0,xr.existsSync)(i)?((0,xr.renameSync)(i,s),y.info("WORKER","MCP search server disabled")):y.debug("WORKER","MCP toggle no-op (already in desired state)",{enabled:r})}ensureSettingsFile(r){if(!(0,xr.existsSync)(r)){let n=_e.getAllDefaults(),i=Jo.default.dirname(r);(0,xr.existsSync)(i)||(0,xr.mkdirSync)(i,{recursive:!0}),(0,xr.writeFileSync)(r,JSON.stringify(n,null,2),"utf-8"),y.info("SETTINGS","Created settings file with defaults",{settingsPath:r})}}};var xn=require("fs"),gv=require("path");oe();Yt();function hge(t,e){let r=(0,xn.openSync)(t,"r");try{let i=(0,xn.fstatSync)(r).size;if(i===0)return{lines:"",totalEstimate:0};let s=64*1024,o=10*1024*1024,a=Math.min(s,i),c="",u=0;for(;a<=i&&a<=o;){let f=Math.max(0,i-a),g=i-f,h=Buffer.alloc(g);(0,xn.readSync)(r,h,0,g,f),c=h.toString("utf-8"),u=0;for(let v=0;v=e||f===0)break;a=Math.min(a*2,i,o)}let l=c.split(` -`);l.length>0&&l[l.length-1]===""&&l.pop();let d=Math.max(0,l.length-e),p=l.slice(d),m;if(i<=a)m=l.length;else{let f=c.length/Math.max(u,1);m=Math.round(i/f)}return{lines:p.join(` -`),totalEstimate:m}}finally{(0,xn.closeSync)(r)}}var vv=class extends Nr{getLogFilePath(){let e=_e.get("CLAUDE_MEM_DATA_DIR"),r=(0,gv.join)(e,"logs"),n=new Date().toISOString().split("T")[0];return(0,gv.join)(r,`claude-mem-${n}.log`)}getLogsDir(){let e=_e.get("CLAUDE_MEM_DATA_DIR");return(0,gv.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,xn.existsSync)(n)){r.json({logs:"",path:n,exists:!1});return}let i=parseInt(e.query.lines||"1000",10),s=Math.min(i,1e4),{lines:o,totalEstimate:a}=hge(n,s),c=o===""?0:o.split(` -`).length;r.json({logs:o,path:n,exists:!0,totalLines:a,returnedLines:c})});handleClearLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,xn.existsSync)(n)){r.json({success:!0,message:"Log file does not exist",path:n});return}(0,xn.writeFileSync)(n,"","utf-8"),y.info("SYSTEM","Log file cleared via UI",{path:n}),r.json({success:!0,message:"Log file cleared",path:n})})};oe();var yv=class extends Nr{constructor(r,n){super();this.dbManager=r;this.defaultProject=n}setupRoutes(r){r.post("/api/memory/save",this.handleSaveMemory.bind(this))}handleSaveMemory=this.wrapHandler(async(r,n)=>{let{text:i,title:s,project:o}=r.body,a=o||this.defaultProject;if(!i||typeof i!="string"||i.trim().length===0){this.badRequest(n,"text is required and must be non-empty");return}let c=this.dbManager.getSessionStore(),u=this.dbManager.getChromaSync(),l=c.getOrCreateManualSession(a),d={type:"discovery",title:s||i.substring(0,60).trim()+(i.length>60?"...":""),subtitle:"Manual memory",facts:[],narrative:i,concepts:[],files_read:[],files_modified:[]},p=c.storeObservation(l,a,d,0,0);y.info("HTTP","Manual observation saved",{id:p.id,project:a,title:d.title}),u.syncObservation(p.id,l,a,d,0,p.createdAtEpoch,0).catch(m=>{y.error("CHROMA","ChromaDB sync failed",{id:p.id},m)}),n.json({success:!0,id:p.id,title:d.title,project:a,message:`Memory saved as observation #${p.id}`})})};var Kge={},qge=120*1e3;function G$(){return V$.default.join(_e.get("CLAUDE_MEM_DATA_DIR"),".worker-start-attempted")}function Fge(){if(process.platform!=="win32")return!1;let t=G$();if(!(0,ms.existsSync)(t))return!1;try{let e=(0,ms.statSync)(t).mtimeMs;return Date.now()-e{this.resolveInitialization=e}),this.dbManager=new ig,this.sessionManager=new cg(this.dbManager),this.sseBroadcaster=new ug,this.sdkAgent=new qg(this.dbManager,this.sessionManager),this.geminiAgent=new Fg(this.dbManager,this.sessionManager),this.openRouterAgent=new Bg(this.dbManager,this.sessionManager),this.paginationHelper=new Vg(this.dbManager),this.settingsManager=new Gg(this.dbManager),this.sessionEventBroadcaster=new Xg(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new Fa({name:"worker-search-proxy",version:Bge},{capabilities:{}}),this.server=new rg({getInitializationComplete:()=>this.initializationCompleteFlag,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown(),workerPath:__filename,getAiStatus:()=>{let e="claude";return eu()&&Vo()?e="openrouter":Qc()&&Bo()&&(e="gemini"),{provider:e,authMethod:zf(),lastInteraction:this.lastAiInteraction?{timestamp:this.lastAiInteraction.timestamp,success:this.lastAiInteraction.success,...this.lastAiInteraction.error&&{error:this.lastAiInteraction.error}}:null}}}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){IA(async()=>{this.isShuttingDown=!0,await this.shutdown()})}registerRoutes(){this.server.app.get("/api/context/inject",async(e,r,n)=>{if(!this.initializationCompleteFlag||!this.searchRoutes){y.warn("SYSTEM","Context requested before initialization complete, returning empty"),r.status(200).json({content:[{type:"text",text:""}]});return}n()}),this.server.app.use("/api",async(e,r,n)=>{if(this.initializationCompleteFlag){n();return}let i=3e4,s=new Promise((o,a)=>setTimeout(()=>a(new Error("Database initialization timeout")),i));try{await Promise.race([this.initializationComplete,s]),n()}catch(o){y.error("HTTP",`Request to ${e.method} ${e.path} rejected \u2014 DB not initialized`,{},o),r.status(503).json({error:"Service initializing",message:"Database is still initializing, please retry"})}}),this.server.registerRoutes(new Qg(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new rv(this.sessionManager,this.dbManager,this.sdkAgent,this.geminiAgent,this.openRouterAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new iv(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime)),this.server.registerRoutes(new hv(this.settingsManager)),this.server.registerRoutes(new vv),this.server.registerRoutes(new yv(this.dbManager,"claude-mem"))}async start(){let e=Fr(),r=A0();await $A(),await this.server.listen(e,r),LA({pid:process.pid,port:e,startedAt:new Date().toISOString()}),gt().registerProcess("worker",{pid:process.pid,type:"worker",startedAt:new Date().toISOString()}),y.info("SYSTEM","Worker started",{host:r,port:e,pid:process.pid}),this.initializeBackground().catch(n=>{y.error("SYSTEM","Background initialization failed",{},n)})}async initializeBackground(){try{await UA();let{ModeManager:e}=await Promise.resolve().then(()=>(Br(),IU)),{SettingsDefaultsManager:r}=await Promise.resolve().then(()=>(Yt(),tA)),{USER_SETTINGS_PATH:n}=await Promise.resolve().then(()=>(Nt(),uA)),i=r.loadFromFile(n);(i.CLAUDE_MEM_MODE==="local"||!i.CLAUDE_MEM_MODE)&&qA(),i.CLAUDE_MEM_CHROMA_ENABLED!=="false"?(this.chromaMcpManager=Xi.getInstance(),y.info("SYSTEM","ChromaMcpManager initialized (lazy - connects on first use)")):y.info("SYSTEM","Chroma disabled via CLAUDE_MEM_CHROMA_ENABLED=false, skipping ChromaMcpManager");let o=i.CLAUDE_MEM_MODE;e.getInstance().loadMode(o),y.info("SYSTEM",`Mode loaded: ${o}`),await this.dbManager.initialize();let{PendingMessageStore:a}=await Promise.resolve().then(()=>(jo(),Ec)),u=new a(this.dbManager.getSessionStore().db,3).resetStaleProcessingMessages(0);u>0&&y.info("SYSTEM",`Reset ${u} stale processing messages to pending`);let l=new Kg,d=new Jg,p=new Wg(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getChromaSync(),l,d);this.searchRoutes=new pv(p),this.server.registerRoutes(this.searchRoutes),y.info("WORKER","SearchManager initialized and search routes registered"),this.initializationCompleteFlag=!0,this.resolveInitialization(),y.info("SYSTEM","Core initialization complete (DB + search ready)"),this.chromaMcpManager&&Ka.backfillAllProjects().then(()=>{y.info("CHROMA_SYNC","Backfill check complete for all projects")}).catch(_=>{y.error("CHROMA_SYNC","Backfill failed (non-blocking)",{},_)});let m=V$.default.join(__dirname,"mcp-server.cjs");gt().assertCanSpawn("mcp server");let f=new Ba({command:"node",args:[m],env:vi(process.env)}),g=3e5,h=this.mcpClient.connect(f),v,x=new Promise((_,S)=>{v=setTimeout(()=>S(new Error("MCP connection timeout after 5 minutes")),g)});try{await Promise.race([h,x])}catch(_){clearTimeout(v),y.warn("WORKER","MCP server connection failed, cleaning up subprocess",{error:_ instanceof Error?_.message:String(_)});try{await f.close()}catch{}throw _}clearTimeout(v);let b=f._process;b?.pid&&(gt().registerProcess("mcp-server",{pid:b.pid,type:"mcp",startedAt:new Date().toISOString()},b),b.once("exit",()=>{gt().unregisterProcess("mcp-server")})),this.mcpReady=!0,y.success("WORKER","MCP server connected"),this.stopOrphanReaper=$U(()=>{let _=new Set;for(let[S]of this.sessionManager.sessions)_.add(S);return _}),y.info("SYSTEM","Started orphan reaper (runs every 30 seconds)"),this.staleSessionReaperInterval=setInterval(async()=>{try{let _=await this.sessionManager.reapStaleSessions();_>0&&y.info("SYSTEM",`Reaped ${_} stale sessions`)}catch(_){y.error("SYSTEM","Stale session reaper error",{error:_ instanceof Error?_.message:String(_)})}},120*1e3),this.processPendingQueues(50).then(_=>{_.sessionsStarted>0&&y.info("SYSTEM",`Auto-recovered ${_.sessionsStarted} sessions with pending work`,{totalPending:_.totalPendingSessions,started:_.sessionsStarted,sessionIds:_.startedSessionIds})}).catch(_=>{y.error("SYSTEM","Auto-recovery of pending queues failed",{},_)})}catch(e){throw y.error("SYSTEM","Background initialization failed",{},e),e}}getActiveAgent(){return eu()&&Vo()?this.openRouterAgent:Qc()&&Bo()?this.geminiAgent:this.sdkAgent}startSessionProcessor(e,r){if(!e)return;let n=e.sessionDbId,i=this.getActiveAgent(),s=i.constructor.name;e.abortController.signal.aborted&&(y.debug("SYSTEM","Replacing aborted AbortController before starting generator",{sessionId:e.sessionDbId}),e.abortController=new AbortController);let o=!1,a=!1;y.info("SYSTEM",`Starting generator (${r}) using ${s}`,{sessionId:n}),e.lastGeneratorActivity=Date.now(),e.generatorPromise=i.startSession(e,this).catch(async c=>{let u=c?.message||"";if(["Claude executable not found","CLAUDE_CODE_PATH","ENOENT","spawn","Invalid API key","API_KEY_INVALID","API key expired","API key not valid","PERMISSION_DENIED","Gemini API error: 400","Gemini API error: 401","Gemini API error: 403","FOREIGN KEY constraint failed"].some(d=>u.includes(d))){o=!0,this.lastAiInteraction={timestamp:Date.now(),success:!1,provider:s,error:u},y.error("SDK","Unrecoverable generator error - will NOT restart",{sessionId:e.sessionDbId,project:e.project,errorMessage:u});return}if(this.isSessionTerminatedError(c))return y.warn("SDK","SDK resume failed, falling back to standalone processing",{sessionId:e.sessionDbId,project:e.project,reason:c instanceof Error?c.message:String(c)}),this.runFallbackForTerminatedSession(e,c);throw(u.includes("aborted by user")||u.includes("No conversation found"))&&e.memorySessionId&&(y.warn("SDK","Detected stale resume failure, clearing memorySessionId for fresh start",{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId,errorMessage:u}),this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,null),e.memorySessionId=null,e.forceInit=!0),y.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project,provider:s},c),a=!0,this.lastAiInteraction={timestamp:Date.now(),success:!1,provider:s,error:u},c}).finally(async()=>{let c=Us(e.sessionDbId);if(c&&c.process.exitCode===null&&await qs(c,5e3),e.generatorPromise=null,!a&&!o&&(this.lastAiInteraction={timestamp:Date.now(),success:!0,provider:s}),o){this.terminateSession(e.sessionDbId,"unrecoverable_error");return}let l=this.sessionManager.getPendingMessageStore().getPendingCount(e.sessionDbId);if(e.idleTimedOut&&(e.idleTimedOut=!1,l===0)){this.terminateSession(e.sessionDbId,"idle_timeout");return}let d=3;if(l>0){if(e.consecutiveRestarts=(e.consecutiveRestarts||0)+1,e.consecutiveRestarts>d){y.error("SYSTEM","Exceeded max pending-work restarts, stopping to prevent infinite loop",{sessionId:e.sessionDbId,pendingCount:l,consecutiveRestarts:e.consecutiveRestarts}),e.consecutiveRestarts=0,this.terminateSession(e.sessionDbId,"max_restarts_exceeded");return}y.info("SYSTEM","Pending work remains after generator exit, restarting with fresh AbortController",{sessionId:e.sessionDbId,pendingCount:l,attempt:e.consecutiveRestarts}),e.abortController=new AbortController,this.startSessionProcessor(e,"pending-work-restart"),this.broadcastProcessingStatus()}else e.consecutiveRestarts=0,this.sessionManager.removeSessionImmediate(e.sessionDbId)})}isSessionTerminatedError(e){let n=(e instanceof Error?e.message:String(e)).toLowerCase();return n.includes("process aborted by user")||n.includes("processtransport")||n.includes("not ready for writing")||n.includes("session generator failed")||n.includes("claude code process")}async runFallbackForTerminatedSession(e,r){if(!e)return;let n=e.sessionDbId;if(!e.memorySessionId){let o=`fallback-${n}-${Date.now()}`;e.memorySessionId=o,this.dbManager.getSessionStore().updateMemorySessionId(n,o)}if(Bo())try{await this.geminiAgent.startSession(e,this);return}catch(o){y.warn("SDK","Fallback Gemini failed, trying OpenRouter",{sessionId:n,error:o instanceof Error?o.message:String(o)})}if(Vo())try{await this.openRouterAgent.startSession(e,this);return}catch(o){y.warn("SDK","Fallback OpenRouter failed",{sessionId:n,error:o instanceof Error?o.message:String(o)})}let s=this.sessionManager.getPendingMessageStore().markAllSessionMessagesAbandoned(n);s>0&&y.warn("SDK","No fallback available; marked pending messages abandoned",{sessionId:n,abandoned:s}),this.sessionManager.removeSessionImmediate(n),this.sessionEventBroadcaster.broadcastSessionCompleted(n)}terminateSession(e,r){let i=this.sessionManager.getPendingMessageStore().markAllSessionMessagesAbandoned(e);y.info("SYSTEM","Session terminated",{sessionId:e,reason:r,abandonedMessages:i}),this.sessionManager.removeSessionImmediate(e)}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(jo(),Ec)),n=new r(this.dbManager.getSessionStore().db,3),i=this.dbManager.getSessionStore(),s=360*60*1e3,o=Date.now()-s;try{let u=i.db.prepare(` + `).all().map(a=>a.project);n.json({projects:o})});handleGetProcessingStatus=this.wrapHandler((r,n)=>{let i=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalActiveWork();n.json({isProcessing:i,queueDepth:s})});handleSetProcessing=this.wrapHandler((r,n)=>{this.workerService.broadcastProcessingStatus();let i=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalQueueDepth(),o=this.sessionManager.getActiveSessionCount();n.json({status:"ok",isProcessing:i,queueDepth:s,activeSessions:o})});parsePaginationParams(r){let n=parseInt(r.query.offset,10)||0,i=Math.min(parseInt(r.query.limit,10)||20,100),s=r.query.project;return{offset:n,limit:i,project:s}}handleImport=this.wrapHandler((r,n)=>{let{sessions:i,summaries:s,observations:o,prompts:a}=r.body,c={sessionsImported:0,sessionsSkipped:0,summariesImported:0,summariesSkipped:0,observationsImported:0,observationsSkipped:0,promptsImported:0,promptsSkipped:0},u=this.dbManager.getSessionStore();if(Array.isArray(i))for(let l of i)u.importSdkSession(l).imported?c.sessionsImported++:c.sessionsSkipped++;if(Array.isArray(s))for(let l of s)u.importSessionSummary(l).imported?c.summariesImported++:c.summariesSkipped++;if(Array.isArray(o))for(let l of o)u.importObservation(l).imported?c.observationsImported++:c.observationsSkipped++;if(Array.isArray(a))for(let l of a)u.importUserPrompt(l).imported?c.promptsImported++:c.promptsSkipped++;n.json({success:!0,stats:c})});handleGetPendingQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(ha(),zf(ou)),s=new i(this.dbManager.getSessionStore().db,3),o=s.getQueueMessages(),a=s.getRecentlyProcessed(20,30),c=s.getStuckCount(300*1e3),u=s.getSessionsWithPendingMessages();n.json({queue:{messages:o,totalPending:o.filter(l=>l.status==="pending").length,totalProcessing:o.filter(l=>l.status==="processing").length,totalFailed:o.filter(l=>l.status==="failed").length,stuckCount:c},recentlyProcessed:a,sessionsWithPendingWork:u})});handleProcessPendingQueue=this.wrapHandler(async(r,n)=>{let i=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),s=await this.workerService.processPendingQueues(i);n.json({success:!0,...s})});handleClearFailedQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(ha(),zf(ou)),o=new i(this.dbManager.getSessionStore().db,3).clearFailed();_.info("QUEUE","Cleared failed queue messages",{clearedCount:o}),n.json({success:!0,clearedCount:o})});handleClearAllQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(ha(),zf(ou)),o=new i(this.dbManager.getSessionStore().db,3).clearAll();_.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:o}),n.json({success:!0,clearedCount:o})})};re();var $y=class extends Ur{constructor(r){super();this.searchManager=r}setupRoutes(r){r.get("/api/search",this.handleUnifiedSearch.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.post("/api/context/semantic",this.handleSemanticContext.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 i=await this.searchManager.search(r.query);n.json(i)});handleUnifiedTimeline=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.timeline(r.query);n.json(i)});handleDecisions=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.decisions(r.query);n.json(i)});handleChanges=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.changes(r.query);n.json(i)});handleHowItWorks=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.howItWorks(r.query);n.json(i)});handleSearchObservations=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.searchObservations(r.query);n.json(i)});handleSearchSessions=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.searchSessions(r.query);n.json(i)});handleSearchPrompts=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.searchUserPrompts(r.query);n.json(i)});handleSearchByConcept=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.findByConcept(r.query);n.json(i)});handleSearchByFile=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.findByFile(r.query);n.json(i)});handleSearchByType=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.findByType(r.query);n.json(i)});handleGetRecentContext=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.getRecentContext(r.query);n.json(i)});handleGetContextTimeline=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.getContextTimeline(r.query);n.json(i)});handleContextPreview=this.wrapHandler(async(r,n)=>{let i=r.query.project;if(!i){this.badRequest(n,"Project parameter is required");return}let{generateContext:s}=await Promise.resolve().then(()=>(pI(),dI)),o=`/preview/${i}`,a=await s({session_id:"preview-"+Date.now(),cwd:o},!0);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(a)});handleContextInject=this.wrapHandler(async(r,n)=>{let i=r.query.projects||r.query.project,s=r.query.colors==="true",o=r.query.full==="true";if(!i){this.badRequest(n,"Project(s) parameter is required");return}let a=i.split(",").map(p=>p.trim()).filter(Boolean);if(a.length===0){this.badRequest(n,"At least one project is required");return}let{generateContext:c}=await Promise.resolve().then(()=>(pI(),dI)),l=`/context/${a[a.length-1]}`,d=await c({session_id:"context-inject-"+Date.now(),cwd:l,projects:a,full:o},s);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(d)});handleSemanticContext=this.wrapHandler(async(r,n)=>{let i=r.body?.q||r.query.q,s=r.body?.project||r.query.project,o=Math.min(Math.max(parseInt(String(r.body?.limit||r.query.limit||"5"),10)||5,1),20);if(!i||i.length<20){n.json({context:"",count:0});return}try{let c=(await this.searchManager.search({query:i,type:"observations",project:s,limit:String(o),format:"json"}))?.observations||[];if(!c.length){n.json({context:"",count:0});return}let u=[`## Relevant Past Work (semantic match) +`];for(let l of c.slice(0,o)){let d=l.created_at?.slice(0,10)||"";u.push(`### ${l.title||"Observation"} (${d})`),l.narrative&&u.push(l.narrative),u.push("")}n.json({context:u.join(` +`),count:c.length})}catch(a){_.error("SEARCH","Semantic context query failed",{},a),n.json({context:"",count:0})}});handleGetTimelineByQuery=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.getTimelineByQuery(r.query);n.json(i)});handleSearchHelp=this.wrapHandler((r,n)=>{n.json({title:"Claude-Mem 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:['curl "http://localhost:37777/api/search/observations?query=authentication&limit=5"','curl "http://localhost:37777/api/search/by-type?type=bugfix&limit=10"','curl "http://localhost:37777/api/context/recent?project=claude-mem&limit=3"','curl "http://localhost:37777/api/context/timeline?anchor=123&depth_before=5&depth_after=5"']})})};var Ra=Pe(require("path"),1),$r=require("fs"),gI=require("os");zt();re();var mI=require("child_process"),Ia=require("fs"),Iy=require("path");re();zt();var hf=Ss;function fI(t){return!t||typeof t!="string"?!1:/^[a-zA-Z0-9][a-zA-Z0-9._/-]*$/.test(t)&&!t.includes("..")}var C_e=3e5,hI=6e5;function Yn(t){let e=(0,mI.spawnSync)("git",t,{cwd:hf,encoding:"utf-8",timeout:C_e,windowsHide:!0,shell:!1});if(e.error)throw e.error;if(e.status!==0)throw new Error(e.stderr||e.stdout||"Git command failed");return e.stdout.trim()}function w8(t,e=hI){let n=process.platform==="win32"?"npm.cmd":"npm",i=(0,mI.spawnSync)(n,t,{cwd:hf,encoding:"utf-8",timeout:e,windowsHide:!0,shell:!1});if(i.error)throw i.error;if(i.status!==0)throw new Error(i.stderr||i.stdout||"npm command failed");return i.stdout.trim()}function Ry(){let t=(0,Iy.join)(hf,".git");if(!(0,Ia.existsSync)(t))return{branch:null,isBeta:!1,isGitRepo:!1,isDirty:!1,canSwitch:!1,error:"Installed plugin is not a git repository"};try{let e=Yn(["rev-parse","--abbrev-ref","HEAD"]),n=Yn(["status","--porcelain"]).length>0,i=e.startsWith("beta");return{branch:e,isBeta:i,isGitRepo:!0,isDirty:n,canSwitch:!0}}catch(e){return _.error("BRANCH","Failed to get branch info",{},e),{branch:null,isBeta:!1,isGitRepo:!0,isDirty:!1,canSwitch:!1,error:e.message}}}async function E8(t){if(!fI(t))return{success:!1,error:`Invalid branch name: ${t}. Branch names must be alphanumeric with hyphens, underscores, slashes, or dots.`};let e=Ry();if(!e.isGitRepo)return{success:!1,error:"Installed plugin is not a git repository. Please reinstall."};if(e.branch===t)return{success:!0,branch:t,message:`Already on branch ${t}`};try{_.info("BRANCH","Starting branch switch",{from:e.branch,to:t}),_.debug("BRANCH","Discarding local changes"),Yn(["checkout","--","."]),Yn(["clean","-fd"]),_.debug("BRANCH","Fetching from origin"),Yn(["fetch","origin"]),_.debug("BRANCH","Checking out branch",{branch:t});try{Yn(["checkout",t])}catch(n){_.debug("BRANCH","Branch not local, tracking remote",{branch:t,error:n instanceof Error?n.message:String(n)}),Yn(["checkout","-b",t,`origin/${t}`])}_.debug("BRANCH","Pulling latest"),Yn(["pull","origin",t]);let r=(0,Iy.join)(hf,".install-version");return(0,Ia.existsSync)(r)&&(0,Ia.unlinkSync)(r),_.debug("BRANCH","Running npm install"),w8(["install"],hI),_.success("BRANCH","Branch switch complete",{branch:t}),{success:!0,branch:t,message:`Switched to ${t}. Worker will restart automatically.`}}catch(r){_.error("BRANCH","Branch switch failed",{targetBranch:t},r);try{e.branch&&fI(e.branch)&&Yn(["checkout",e.branch])}catch(n){_.error("BRANCH","Recovery checkout also failed",{originalBranch:e.branch},n)}return{success:!1,error:`Branch switch failed: ${r.message}`}}}async function k8(){let t=Ry();if(!t.isGitRepo||!t.branch)return{success:!1,error:"Cannot pull updates: not a git repository"};try{if(!fI(t.branch))return{success:!1,error:`Invalid current branch name: ${t.branch}`};_.info("BRANCH","Pulling updates",{branch:t.branch}),Yn(["checkout","--","."]),Yn(["fetch","origin"]),Yn(["pull","origin",t.branch]);let e=(0,Iy.join)(hf,".install-version");return(0,Ia.existsSync)(e)&&(0,Ia.unlinkSync)(e),w8(["install"],hI),_.success("BRANCH","Updates pulled",{branch:t.branch}),{success:!0,branch:t.branch,message:`Updated ${t.branch}. Worker will restart automatically.`}}catch(e){return _.error("BRANCH","Pull failed",{},e),{success:!1,error:`Pull failed: ${e.message}`}}}rr();Dr();var Oy=class extends Ur{constructor(r){super();this.settingsManager=r}setupRoutes(r){r.get("/api/settings",this.handleGetSettings.bind(this)),r.post("/api/settings",this.handleUpdateSettings.bind(this)),r.get("/api/mcp/status",this.handleGetMcpStatus.bind(this)),r.post("/api/mcp/toggle",this.handleToggleMcp.bind(this)),r.get("/api/branch/status",this.handleGetBranchStatus.bind(this)),r.post("/api/branch/switch",this.handleSwitchBranch.bind(this)),r.post("/api/branch/update",this.handleUpdateBranch.bind(this))}handleGetSettings=this.wrapHandler((r,n)=>{let i=Ra.default.join((0,gI.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(i);let s=Se.loadFromFile(i);n.json(s)});handleUpdateSettings=this.wrapHandler((r,n)=>{let i=this.validateSettings(r.body);if(!i.valid){n.status(400).json({success:!1,error:i.error});return}let s=Ra.default.join((0,gI.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(s);let o={};if((0,$r.existsSync)(s)){let c=(0,$r.readFileSync)(s,"utf-8");try{o=JSON.parse(c)}catch(u){_.error("SETTINGS","Failed to parse settings file",{settingsPath:s},u),n.status(500).json({success:!1,error:"Settings file is corrupted. Delete ~/.claude-mem/settings.json to reset."});return}}let a=["CLAUDE_MEM_MODEL","CLAUDE_MEM_CONTEXT_OBSERVATIONS","CLAUDE_MEM_WORKER_PORT","CLAUDE_MEM_WORKER_HOST","CLAUDE_MEM_PROVIDER","CLAUDE_MEM_GEMINI_API_KEY","CLAUDE_MEM_GEMINI_MODEL","CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED","CLAUDE_MEM_OPENROUTER_API_KEY","CLAUDE_MEM_OPENROUTER_MODEL","CLAUDE_MEM_OPENROUTER_SITE_URL","CLAUDE_MEM_OPENROUTER_APP_NAME","CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES","CLAUDE_MEM_OPENROUTER_MAX_TOKENS","CLAUDE_MEM_DATA_DIR","CLAUDE_MEM_LOG_LEVEL","CLAUDE_MEM_PYTHON_VERSION","CLAUDE_CODE_PATH","CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES","CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS","CLAUDE_MEM_CONTEXT_FULL_COUNT","CLAUDE_MEM_CONTEXT_FULL_FIELD","CLAUDE_MEM_CONTEXT_SESSION_COUNT","CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED"];for(let c of a)r.body[c]!==void 0&&(o[c]=r.body[c]);(0,$r.writeFileSync)(s,JSON.stringify(o,null,2),"utf-8"),lM(),_.info("WORKER","Settings updated"),n.json({success:!0,message:"Settings updated successfully"})});handleGetMcpStatus=this.wrapHandler((r,n)=>{let i=this.isMcpEnabled();n.json({enabled:i})});handleToggleMcp=this.wrapHandler((r,n)=>{let{enabled:i}=r.body;if(typeof i!="boolean"){this.badRequest(n,"enabled must be a boolean");return}this.toggleMcp(i),n.json({success:!0,enabled:this.isMcpEnabled()})});handleGetBranchStatus=this.wrapHandler((r,n)=>{let i=Ry();n.json(i)});handleSwitchBranch=this.wrapHandler(async(r,n)=>{let{branch:i}=r.body;if(!i){n.status(400).json({success:!1,error:"Missing branch parameter"});return}let s=["main","beta/7.0","feature/bun-executable"];if(!s.includes(i)){n.status(400).json({success:!1,error:`Invalid branch. Allowed: ${s.join(", ")}`});return}_.info("WORKER","Branch switch requested",{branch:i});let o=await E8(i);o.success&&setTimeout(()=>{_.info("WORKER","Restarting worker after branch switch"),process.exit(0)},1e3),n.json(o)});handleUpdateBranch=this.wrapHandler(async(r,n)=>{_.info("WORKER","Branch update requested");let i=await k8();i.success&&setTimeout(()=>{_.info("WORKER","Restarting worker after branch update"),process.exit(0)},1e3),n.json(i)});validateSettings(r){if(r.CLAUDE_MEM_PROVIDER&&!["claude","gemini","openrouter"].includes(r.CLAUDE_MEM_PROVIDER))return{valid:!1,error:'CLAUDE_MEM_PROVIDER must be "claude", "gemini", or "openrouter"'};if(r.CLAUDE_MEM_GEMINI_MODEL&&!["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-3-flash-preview"].includes(r.CLAUDE_MEM_GEMINI_MODEL))return{valid:!1,error:"CLAUDE_MEM_GEMINI_MODEL must be one of: gemini-2.5-flash-lite, gemini-2.5-flash, gemini-3-flash-preview"};if(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS){let i=parseInt(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10);if(isNaN(i)||i<1||i>200)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_OBSERVATIONS must be between 1 and 200"}}if(r.CLAUDE_MEM_WORKER_PORT){let i=parseInt(r.CLAUDE_MEM_WORKER_PORT,10);if(isNaN(i)||i<1024||i>65535)return{valid:!1,error:"CLAUDE_MEM_WORKER_PORT must be between 1024 and 65535"}}if(r.CLAUDE_MEM_WORKER_HOST){let i=r.CLAUDE_MEM_WORKER_HOST;if(!/^(127\.0\.0\.1|0\.0\.0\.0|localhost|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/.test(i))return{valid:!1,error:"CLAUDE_MEM_WORKER_HOST must be a valid IP address (e.g., 127.0.0.1, 0.0.0.0)"}}if(r.CLAUDE_MEM_LOG_LEVEL&&!["DEBUG","INFO","WARN","ERROR","SILENT"].includes(r.CLAUDE_MEM_LOG_LEVEL.toUpperCase()))return{valid:!1,error:"CLAUDE_MEM_LOG_LEVEL must be one of: DEBUG, INFO, WARN, ERROR, SILENT"};if(r.CLAUDE_MEM_PYTHON_VERSION&&!/^3\.\d{1,2}$/.test(r.CLAUDE_MEM_PYTHON_VERSION))return{valid:!1,error:'CLAUDE_MEM_PYTHON_VERSION must be in format "3.X" or "3.XX" (e.g., "3.13")'};let n=["CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE"];for(let i of n)if(r[i]&&!["true","false"].includes(r[i]))return{valid:!1,error:`${i} must be "true" or "false"`};if(r.CLAUDE_MEM_CONTEXT_FULL_COUNT){let i=parseInt(r.CLAUDE_MEM_CONTEXT_FULL_COUNT,10);if(isNaN(i)||i<0||i>20)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_FULL_COUNT must be between 0 and 20"}}if(r.CLAUDE_MEM_CONTEXT_SESSION_COUNT){let i=parseInt(r.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10);if(isNaN(i)||i<1||i>50)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_SESSION_COUNT must be between 1 and 50"}}if(r.CLAUDE_MEM_CONTEXT_FULL_FIELD&&!["narrative","facts"].includes(r.CLAUDE_MEM_CONTEXT_FULL_FIELD))return{valid:!1,error:'CLAUDE_MEM_CONTEXT_FULL_FIELD must be "narrative" or "facts"'};if(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES){let i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES,10);if(isNaN(i)||i<1||i>100)return{valid:!1,error:"CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES must be between 1 and 100"}}if(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS){let i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS,10);if(isNaN(i)||i<1e3||i>1e6)return{valid:!1,error:"CLAUDE_MEM_OPENROUTER_MAX_TOKENS must be between 1000 and 1000000"}}if(r.CLAUDE_MEM_OPENROUTER_SITE_URL)try{new URL(r.CLAUDE_MEM_OPENROUTER_SITE_URL)}catch(i){return _.debug("SETTINGS","Invalid URL format",{url:r.CLAUDE_MEM_OPENROUTER_SITE_URL,error:i instanceof Error?i.message:String(i)}),{valid:!1,error:"CLAUDE_MEM_OPENROUTER_SITE_URL must be a valid URL"}}return{valid:!0}}isMcpEnabled(){let r=dn(),n=Ra.default.join(r,"plugin",".mcp.json");return(0,$r.existsSync)(n)}toggleMcp(r){let n=dn(),i=Ra.default.join(n,"plugin",".mcp.json"),s=Ra.default.join(n,"plugin",".mcp.json.disabled");r&&(0,$r.existsSync)(s)?((0,$r.renameSync)(s,i),_.info("WORKER","MCP search server enabled")):!r&&(0,$r.existsSync)(i)?((0,$r.renameSync)(i,s),_.info("WORKER","MCP search server disabled")):_.debug("WORKER","MCP toggle no-op (already in desired state)",{enabled:r})}ensureSettingsFile(r){if(!(0,$r.existsSync)(r)){let n=Se.getAllDefaults(),i=Ra.default.dirname(r);(0,$r.existsSync)(i)||(0,$r.mkdirSync)(i,{recursive:!0}),(0,$r.writeFileSync)(r,JSON.stringify(n,null,2),"utf-8"),_.info("SETTINGS","Created settings file with defaults",{settingsPath:r})}}};var Cn=require("fs"),Cy=require("path");re();rr();function P_e(t,e){let r=(0,Cn.openSync)(t,"r");try{let i=(0,Cn.fstatSync)(r).size;if(i===0)return{lines:"",totalEstimate:0};let s=64*1024,o=10*1024*1024,a=Math.min(s,i),c="",u=0;for(;a<=i&&a<=o;){let m=Math.max(0,i-a),h=i-m,g=Buffer.alloc(h);(0,Cn.readSync)(r,g,0,h,m),c=g.toString("utf-8"),u=0;for(let v=0;v=e||m===0)break;a=Math.min(a*2,i,o)}let l=c.split(` +`);l.length>0&&l[l.length-1]===""&&l.pop();let d=Math.max(0,l.length-e),p=l.slice(d),f;if(i<=a)f=l.length;else{let m=c.length/Math.max(u,1);f=Math.round(i/m)}return{lines:p.join(` +`),totalEstimate:f}}finally{(0,Cn.closeSync)(r)}}var Py=class extends Ur{getLogFilePath(){let e=Se.get("CLAUDE_MEM_DATA_DIR"),r=(0,Cy.join)(e,"logs"),n=new Date().toISOString().split("T")[0];return(0,Cy.join)(r,`claude-mem-${n}.log`)}getLogsDir(){let e=Se.get("CLAUDE_MEM_DATA_DIR");return(0,Cy.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,Cn.existsSync)(n)){r.json({logs:"",path:n,exists:!1});return}let i=parseInt(e.query.lines||"1000",10),s=Math.min(i,1e4),{lines:o,totalEstimate:a}=P_e(n,s),c=o===""?0:o.split(` +`).length;r.json({logs:o,path:n,exists:!0,totalLines:a,returnedLines:c})});handleClearLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,Cn.existsSync)(n)){r.json({success:!0,message:"Log file does not exist",path:n});return}(0,Cn.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 Ay=class extends Ur{constructor(r,n){super();this.dbManager=r;this.defaultProject=n}setupRoutes(r){r.post("/api/memory/save",this.handleSaveMemory.bind(this))}handleSaveMemory=this.wrapHandler(async(r,n)=>{let{text:i,title:s,project:o}=r.body,a=o||this.defaultProject;if(!i||typeof i!="string"||i.trim().length===0){this.badRequest(n,"text is required and must be non-empty");return}let c=this.dbManager.getSessionStore(),u=this.dbManager.getChromaSync(),l=c.getOrCreateManualSession(a),d={type:"discovery",title:s||i.substring(0,60).trim()+(i.length>60?"...":""),subtitle:"Manual memory",facts:[],narrative:i,concepts:[],files_read:[],files_modified:[]},p=c.storeObservation(l,a,d,0,0);_.info("HTTP","Manual observation saved",{id:p.id,project:a,title:d.title}),u.syncObservation(p.id,l,a,d,0,p.createdAtEpoch,0).catch(f=>{_.error("CHROMA","ChromaDB sync failed",{id:p.id},f)}),n.json({success:!0,id:p.id,title:d.title,project:a,message:`Memory saved as observation #${p.id}`})})};var Ri=require("fs"),u_=require("path");var vI=(t,e,r)=>{let n=t instanceof RegExp?T8(t,r):t,i=e instanceof RegExp?T8(e,r):e,s=n!==null&&i!=null&&A_e(n,i,r);return s&&{start:s[0],end:s[1],pre:r.slice(0,s[0]),body:r.slice(s[0]+n.length,s[1]),post:r.slice(s[1]+i.length)}},T8=(t,e)=>{let r=e.match(t);return r?r[0]:null},A_e=(t,e,r)=>{let n,i,s,o,a,c=r.indexOf(t),u=r.indexOf(e,c+1),l=c;if(c>=0&&u>0){if(t===e)return[c,u];for(n=[],s=r.length;l>=0&&!a;){if(l===c)n.push(l),c=r.indexOf(t,l+1);else if(n.length===1){let d=n.pop();d!==void 0&&(a=[d,u])}else i=n.pop(),i!==void 0&&i=0?c:u}n.length&&o!==void 0&&(a=[s,o])}return a};var $8="\0SLASH"+Math.random()+"\0",I8="\0OPEN"+Math.random()+"\0",_I="\0CLOSE"+Math.random()+"\0",R8="\0COMMA"+Math.random()+"\0",O8="\0PERIOD"+Math.random()+"\0",N_e=new RegExp($8,"g"),M_e=new RegExp(I8,"g"),D_e=new RegExp(_I,"g"),j_e=new RegExp(R8,"g"),z_e=new RegExp(O8,"g"),L_e=/\\\\/g,U_e=/\\{/g,F_e=/\\}/g,q_e=/\\,/g,H_e=/\\./g;function yI(t){return isNaN(t)?t.charCodeAt(0):parseInt(t,10)}function Z_e(t){return t.replace(L_e,$8).replace(U_e,I8).replace(F_e,_I).replace(q_e,R8).replace(H_e,O8)}function B_e(t){return t.replace(N_e,"\\").replace(M_e,"{").replace(D_e,"}").replace(j_e,",").replace(z_e,".")}function C8(t){if(!t)return[""];let e=[],r=vI("{","}",t);if(!r)return t.split(",");let{pre:n,body:i,post:s}=r,o=n.split(",");o[o.length-1]+="{"+i+"}";let a=C8(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),e.push.apply(e,o),e}function P8(t){return t?(t.slice(0,2)==="{}"&&(t="\\{\\}"+t.slice(2)),gf(Z_e(t),!0).map(B_e)):[]}function G_e(t){return"{"+t+"}"}function W_e(t){return/^-?0\d/.test(t)}function V_e(t,e){return t<=e}function K_e(t,e){return t>=e}function gf(t,e){let r=[],n=vI("{","}",t);if(!n)return[t];let i=n.pre,s=n.post.length?gf(n.post,!1):[""];if(/\$$/.test(n.pre))for(let o=0;o=0;if(!c&&!u)return n.post.match(/,(?!,).*\}/)?(t=n.pre+"{"+n.body+_I+n.post,gf(t)):[t];let l;if(c)l=n.body.split(/\.\./);else if(l=C8(n.body),l.length===1&&l[0]!==void 0&&(l=gf(l[0],!1).map(G_e),l.length===1))return s.map(p=>n.pre+l[0]+p);let d;if(c&&l[0]!==void 0&&l[1]!==void 0){let p=yI(l[0]),f=yI(l[1]),m=Math.max(l[0].length,l[1].length),h=l.length===3&&l[2]!==void 0?Math.abs(yI(l[2])):1,g=V_e;f0){let w=new Array(x+1).join("0");b<0?y="-"+w+y.slice(1):y=w+y}}d.push(y)}}else{d=[];for(let p=0;p{if(typeof t!="string")throw new TypeError("invalid pattern");if(t.length>65536)throw new TypeError("pattern is too long")};var J_e={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},yf=t=>t.replace(/[[\]\\-]/g,"\\$&"),X_e=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),A8=t=>t.join(""),N8=(t,e)=>{let r=e;if(t.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],i=[],s=r+1,o=!1,a=!1,c=!1,u=!1,l=r,d="";e:for(;sd?n.push(yf(d)+"-"+yf(h)):h===d&&n.push(yf(h)),d="",s++;continue}if(t.startsWith("-]",s+1)){n.push(yf(h+"-")),s+=2;continue}if(t.startsWith("-",s+1)){d=h,s+=2;continue}n.push(yf(h)),s++}if(lr?e?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"):e?t.replace(/\[([^\/\\{}])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,"$1$2").replace(/\\([^\/{}])/g,"$1");var Y_e=new Set(["!","?","+","*","@"]),M8=t=>Y_e.has(t),Q_e="(?!(?:^|/)\\.\\.?(?:$|/))",Ny="(?!\\.)",ebe=new Set(["[","."]),tbe=new Set(["..","."]),rbe=new Set("().*{}+?[]^$\\!"),nbe=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),bI="[^/]",D8=bI+"*?",j8=bI+"+?",Uu=class t{type;#e;#r;#s=!1;#i=[];#o;#b;#v;#l=!1;#a;#p;#d=!1;constructor(e,r,n={}){this.type=e,e&&(this.#r=!0),this.#o=r,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?n:this.#e.#a,this.#v=this.#e===this?[]:this.#e.#v,e==="!"&&!this.#e.#l&&this.#v.push(this),this.#b=this.#o?this.#o.#i.length:0}get hasMagic(){if(this.#r!==void 0)return this.#r;for(let e of this.#i)if(typeof e!="string"&&(e.type||e.hasMagic))return this.#r=!0;return this.#r}toString(){return this.#p!==void 0?this.#p:this.type?this.#p=this.type+"("+this.#i.map(e=>String(e)).join("|")+")":this.#p=this.#i.map(e=>String(e)).join("")}#c(){if(this!==this.#e)throw new Error("should only call on root");if(this.#l)return this;this.toString(),this.#l=!0;let e;for(;e=this.#v.pop();){if(e.type!=="!")continue;let r=e,n=r.#o;for(;n;){for(let i=r.#b+1;!n.type&&itypeof r=="string"?r:r.toJSON()):[this.type,...this.#i.map(r=>r.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#l&&this.#o?.type==="!")&&e.push({}),e}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#b===0)return!0;let e=this.#o;for(let r=0;rtypeof f!="string"),u=this.#i.map(f=>{let[m,h,g,v]=typeof f=="string"?t.#S(f,this.#r,c):f.toRegExpSource(e);return this.#r=this.#r||g,this.#s=this.#s||v,m}).join(""),l="";if(this.isStart()&&typeof this.#i[0]=="string"&&!(this.#i.length===1&&tbe.has(this.#i[0]))){let m=ebe,h=r&&m.has(u.charAt(0))||u.startsWith("\\.")&&m.has(u.charAt(2))||u.startsWith("\\.\\.")&&m.has(u.charAt(4)),g=!r&&!e&&m.has(u.charAt(0));l=h?Q_e:g?Ny:""}let d="";return this.isEnd()&&this.#e.#l&&this.#o?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,Ei(u),this.#r=!!this.#r,this.#s]}let n=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",s=this.#f(r);if(this.isStart()&&this.isEnd()&&!s&&this.type!=="!"){let c=this.toString();return this.#i=[c],this.type=null,this.#r=void 0,[c,Ei(this.toString()),!1,!1]}let o=!n||e||r||!Ny?"":this.#f(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#d)a=(this.isStart()&&!r?Ny:"")+j8;else{let c=this.type==="!"?"))"+(this.isStart()&&!r&&!e?Ny:"")+D8+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,Ei(s),this.#r=!!this.#r,this.#s]}#f(e){return this.#i.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,i,s,o]=r.toRegExpSource(e);return this.#s=this.#s||o,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#S(e,r,n=!1){let i=!1,s="",o=!1;for(let a=0;ar?e?t.replace(/[?*()[\]{}]/g,"[$&]"):t.replace(/[?*()[\]\\{}]/g,"\\$&"):e?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&");var tn=(t,e,r={})=>(vf(e),!r.nocomment&&e.charAt(0)==="#"?!1:new Pn(e,r).match(t)),ibe=/^\*+([^+@!?\*\[\(]*)$/,sbe=t=>e=>!e.startsWith(".")&&e.endsWith(t),obe=t=>e=>e.endsWith(t),abe=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),cbe=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),ube=/^\*+\.\*+$/,lbe=t=>!t.startsWith(".")&&t.includes("."),dbe=t=>t!=="."&&t!==".."&&t.includes("."),pbe=/^\.\*+$/,fbe=t=>t!=="."&&t!==".."&&t.startsWith("."),mbe=/^\*+$/,hbe=t=>t.length!==0&&!t.startsWith("."),gbe=t=>t.length!==0&&t!=="."&&t!=="..",vbe=/^\?+([^+@!?\*\[\(]*)?$/,ybe=([t,e=""])=>{let r=U8([t]);return e?(e=e.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(e)):r},_be=([t,e=""])=>{let r=F8([t]);return e?(e=e.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(e)):r},bbe=([t,e=""])=>{let r=F8([t]);return e?n=>r(n)&&n.endsWith(e):r},Sbe=([t,e=""])=>{let r=U8([t]);return e?n=>r(n)&&n.endsWith(e):r},U8=([t])=>{let e=t.length;return r=>r.length===e&&!r.startsWith(".")},F8=([t])=>{let e=t.length;return r=>r.length===e&&r!=="."&&r!==".."},q8=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",z8={win32:{sep:"\\"},posix:{sep:"/"}},xbe=q8==="win32"?z8.win32.sep:z8.posix.sep;tn.sep=xbe;var Ir=Symbol("globstar **");tn.GLOBSTAR=Ir;var wbe="[^/]",Ebe=wbe+"*?",kbe="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Tbe="(?:(?!(?:\\/|^)\\.).)*?",$be=(t,e={})=>r=>tn(r,t,e);tn.filter=$be;var Qn=(t,e={})=>Object.assign({},t,e),Ibe=t=>{if(!t||typeof t!="object"||!Object.keys(t).length)return tn;let e=tn;return Object.assign((n,i,s={})=>e(n,i,Qn(t,s)),{Minimatch:class extends e.Minimatch{constructor(i,s={}){super(i,Qn(t,s))}static defaults(i){return e.defaults(Qn(t,i)).Minimatch}},AST:class extends e.AST{constructor(i,s,o={}){super(i,s,Qn(t,o))}static fromGlob(i,s={}){return e.AST.fromGlob(i,Qn(t,s))}},unescape:(n,i={})=>e.unescape(n,Qn(t,i)),escape:(n,i={})=>e.escape(n,Qn(t,i)),filter:(n,i={})=>e.filter(n,Qn(t,i)),defaults:n=>e.defaults(Qn(t,n)),makeRe:(n,i={})=>e.makeRe(n,Qn(t,i)),braceExpand:(n,i={})=>e.braceExpand(n,Qn(t,i)),match:(n,i,s={})=>e.match(n,i,Qn(t,s)),sep:e.sep,GLOBSTAR:Ir})};tn.defaults=Ibe;var H8=(t,e={})=>(vf(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:P8(t));tn.braceExpand=H8;var Rbe=(t,e={})=>new Pn(t,e).makeRe();tn.makeRe=Rbe;var Obe=(t,e,r={})=>{let n=new Pn(e,r);return t=t.filter(i=>n.match(i)),n.options.nonull&&!t.length&&t.push(e),t};tn.match=Obe;var L8=/[?*]|[+@!]\(.*?\)|\[|\]/,Cbe=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Pn=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(e,r={}){vf(e),r=r||{},this.options=r,this.pattern=e,this.platform=r.platform||q8,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let r of e)if(typeof r!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,r=this.options;if(!r.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...s)=>console.error(...s)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(s=>this.slashSplit(s));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let i=this.globParts.map((s,o,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let c=s[0]===""&&s[1]===""&&(s[2]==="?"||!L8.test(s[2]))&&!L8.test(s[3]),u=/^[a-z]:/i.test(s[0]);if(c)return[...s.slice(0,4),...s.slice(4).map(l=>this.parse(l))];if(u)return[s[0],...s.slice(1).map(l=>this.parse(l))]}return s.map(c=>this.parse(c))});if(this.debug(this.pattern,i),this.set=i.filter(s=>s.indexOf(!1)===-1),this.isWindows)for(let s=0;s=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):r>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let i=n;for(;r[i+1]==="**";)i++;i!==n&&r.splice(n,i-n)}return r})}levelOneOptimize(e){return e.map(r=>(r=r.reduce((n,i)=>{let s=n[n.length-1];return i==="**"&&s==="**"?n:i===".."&&s&&s!==".."&&s!=="."&&s!=="**"?(n.pop(),n):(n.push(i),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&n.splice(i+1,o-i);let a=n[i+1],c=n[i+2],u=n[i+3];if(a!==".."||!c||c==="."||c===".."||!u||u==="."||u==="..")continue;r=!0,n.splice(i,1);let l=n.slice(0);l[i]="**",e.push(l),i--}if(!this.preserveMultipleSlashes){for(let o=1;or.length)}partsMatch(e,r,n=!1){let i=0,s=0,o=[],a="";for(;ib?r=r.slice(y):b>y&&(e=e.slice(b)))}}let{optimizationLevel:s=1}=this.options;s>=2&&(e=this.levelTwoFileOptimize(e)),this.debug("matchOne",this,{file:e,pattern:r}),this.debug("matchOne",e.length,r.length);for(var o=0,a=0,c=e.length,u=r.length;o>> no match, partial?`,e,p,r,f),p===c))}let h;if(typeof l=="string"?(h=d===l,this.debug("string match",l,d,h)):(h=l.test(d),this.debug("pattern match",l,d,h)),!h)return!1}if(o===c&&a===u)return!0;if(o===c)return n;if(a===u)return o===c-1&&e[o]==="";throw new Error("wtf?")}braceExpand(){return H8(this.pattern,this.options)}parse(e){vf(e);let r=this.options;if(e==="**")return Ir;if(e==="")return"";let n,i=null;(n=e.match(mbe))?i=r.dot?gbe:hbe:(n=e.match(ibe))?i=(r.nocase?r.dot?cbe:abe:r.dot?obe:sbe)(n[1]):(n=e.match(vbe))?i=(r.nocase?r.dot?_be:ybe:r.dot?bbe:Sbe)(n):(n=e.match(ube))?i=r.dot?dbe:lbe:(n=e.match(pbe))&&(i=fbe);let s=Uu.fromGlob(e,this.options).toMMPattern();return i&&typeof s=="object"&&Reflect.defineProperty(s,"test",{value:i}),s}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let r=this.options,n=r.noglobstar?Ebe:r.dot?kbe:Tbe,i=new Set(r.nocase?["i"]:[]),s=e.map(c=>{let u=c.map(d=>{if(d instanceof RegExp)for(let p of d.flags.split(""))i.add(p);return typeof d=="string"?Cbe(d):d===Ir?Ir:d._src});u.forEach((d,p)=>{let f=u[p+1],m=u[p-1];d!==Ir||m===Ir||(m===void 0?f!==void 0&&f!==Ir?u[p+1]="(?:\\/|"+n+"\\/)?"+f:u[p]=n:f===void 0?u[p-1]=m+"(?:\\/|\\/"+n+")?":f!==Ir&&(u[p-1]=m+"(?:\\/|\\/"+n+"\\/)"+f,u[p+1]=Ir))});let l=u.filter(d=>d!==Ir);if(this.partial&&l.length>=1){let d=[];for(let p=1;p<=l.length;p++)d.push(l.slice(0,p).join("/"));return"(?:"+d.join("|")+")"}return l.join("/")}).join("|"),[o,a]=e.length>1?["(?:",")"]:["",""];s="^"+o+s+a+"$",this.partial&&(s="^(?:\\/|"+o+s.slice(1,-1)+a+")$"),this.negate&&(s="^(?!"+s+").+$");try{this.regexp=new RegExp(s,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,r=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&r)return!0;let n=this.options;this.isWindows&&(e=e.split("\\").join("/"));let i=this.slashSplit(e);this.debug(this.pattern,"split",i);let s=this.set;this.debug(this.pattern,"set",s);let o=i[i.length-1];if(!o)for(let a=i.length-2;!o&&a>=0;a--)o=i[a];for(let a=0;a{typeof SI.emitWarning=="function"?SI.emitWarning(t,e,r,n):console.error(`[${r}] ${e}: ${t}`)},My=globalThis.AbortController,Z8=globalThis.AbortSignal;if(typeof My>"u"){Z8=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(n,i){this._onabort.push(i)}},My=class{constructor(){e()}signal=new Z8;abort(n){if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(let i of this.signal._onabort)i(n);this.signal.onabort?.(n)}}};let t=SI.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{t&&(t=!1,G8("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}var Abe=t=>!B8.has(t);var Eo=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t),W8=t=>Eo(t)?t<=Math.pow(2,8)?Uint8Array:t<=Math.pow(2,16)?Uint16Array:t<=Math.pow(2,32)?Uint32Array:t<=Number.MAX_SAFE_INTEGER?qu:null:null,qu=class extends Array{constructor(e){super(e),this.fill(0)}},xI=class t{heap;length;static#e=!1;static create(e){let r=W8(e);if(!r)return[];t.#e=!0;let n=new t(e,r);return t.#e=!1,n}constructor(e,r){if(!t.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}},Oa=class t{#e;#r;#s;#i;#o;#b;#v;#l;get perf(){return this.#l}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#p;#d;#c;#n;#f;#S;#_;#m;#I;#h;#E;#k;#g;#y;#x;#T;#t;#N;static unsafeExposeInternals(e){return{starts:e.#k,ttls:e.#g,autopurgeTimers:e.#y,sizes:e.#E,keyMap:e.#d,keyList:e.#c,valList:e.#n,next:e.#f,prev:e.#S,get head(){return e.#_},get tail(){return e.#m},free:e.#I,isBackgroundFetch:r=>e.#u(r),backgroundFetch:(r,n,i,s)=>e.#q(r,n,i,s),moveToTail:r=>e.#D(r),indexes:r=>e.#O(r),rindexes:r=>e.#C(r),isStale:r=>e.#w(r)}}get max(){return this.#e}get maxSize(){return this.#r}get calculatedSize(){return this.#p}get size(){return this.#a}get fetchMethod(){return this.#b}get memoMethod(){return this.#v}get dispose(){return this.#s}get onInsert(){return this.#i}get disposeAfter(){return this.#o}constructor(e){let{max:r=0,ttl:n,ttlResolution:i=1,ttlAutopurge:s,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:c,dispose:u,onInsert:l,disposeAfter:d,noDisposeOnSet:p,noUpdateTTL:f,maxSize:m=0,maxEntrySize:h=0,sizeCalculation:g,fetchMethod:v,memoMethod:S,noDeleteOnFetchRejection:b,noDeleteOnStaleGet:y,allowStaleOnFetchRejection:x,allowStaleOnFetchAbort:w,ignoreFetchAbort:E,perf:T}=e;if(T!==void 0&&typeof T?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#l=T??Pbe,r!==0&&!Eo(r))throw new TypeError("max option must be a nonnegative integer");let I=r?W8(r):Array;if(!I)throw new Error("invalid max value: "+r);if(this.#e=r,this.#r=m,this.maxEntrySize=h||this.#r,this.sizeCalculation=g,this.sizeCalculation){if(!this.#r&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(S!==void 0&&typeof S!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#v=S,v!==void 0&&typeof v!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#b=v,this.#T=!!v,this.#d=new Map,this.#c=new Array(r).fill(void 0),this.#n=new Array(r).fill(void 0),this.#f=new I(r),this.#S=new I(r),this.#_=0,this.#m=0,this.#I=xI.create(r),this.#a=0,this.#p=0,typeof u=="function"&&(this.#s=u),typeof l=="function"&&(this.#i=l),typeof d=="function"?(this.#o=d,this.#h=[]):(this.#o=void 0,this.#h=void 0),this.#x=!!this.#s,this.#N=!!this.#i,this.#t=!!this.#o,this.noDisposeOnSet=!!p,this.noUpdateTTL=!!f,this.noDeleteOnFetchRejection=!!b,this.allowStaleOnFetchRejection=!!x,this.allowStaleOnFetchAbort=!!w,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(this.#r!==0&&!Eo(this.#r))throw new TypeError("maxSize must be a positive integer if specified");if(!Eo(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#Z()}if(this.allowStale=!!c,this.noDeleteOnStaleGet=!!y,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=Eo(i)||i===0?i:1,this.ttlAutopurge=!!s,this.ttl=n||0,this.ttl){if(!Eo(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#P()}if(this.#e===0&&this.ttl===0&&this.#r===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#r){let A="LRU_CACHE_UNBOUNDED";Abe(A)&&(B8.add(A),G8("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",A,t))}}getRemainingTTL(e){return this.#d.has(e)?1/0:0}#P(){let e=new qu(this.#e),r=new qu(this.#e);this.#g=e,this.#k=r;let n=this.ttlAutopurge?new Array(this.#e):void 0;this.#y=n,this.#z=(o,a,c=this.#l.now())=>{if(r[o]=a!==0?c:0,e[o]=a,n?.[o]&&(clearTimeout(n[o]),n[o]=void 0),a!==0&&n){let u=setTimeout(()=>{this.#w(o)&&this.#R(this.#c[o],"expire")},a+1);u.unref&&u.unref(),n[o]=u}},this.#$=o=>{r[o]=e[o]!==0?this.#l.now():0},this.#A=(o,a)=>{if(e[a]){let c=e[a],u=r[a];if(!c||!u)return;o.ttl=c,o.start=u,o.now=i||s();let l=o.now-u;o.remainingTTL=c-l}};let i=0,s=()=>{let o=this.#l.now();if(this.ttlResolution>0){i=o;let a=setTimeout(()=>i=0,this.ttlResolution);a.unref&&a.unref()}return o};this.getRemainingTTL=o=>{let a=this.#d.get(o);if(a===void 0)return 0;let c=e[a],u=r[a];if(!c||!u)return 1/0;let l=(i||s())-u;return c-l},this.#w=o=>{let a=r[o],c=e[o];return!!c&&!!a&&(i||s())-a>c}}#$=()=>{};#A=()=>{};#z=()=>{};#w=()=>!1;#Z(){let e=new qu(this.#e);this.#p=0,this.#E=e,this.#j=r=>{this.#p-=e[r],e[r]=0},this.#L=(r,n,i,s)=>{if(this.#u(n))return 0;if(!Eo(i))if(s){if(typeof s!="function")throw new TypeError("sizeCalculation must be a function");if(i=s(n,r),!Eo(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i},this.#M=(r,n,i)=>{if(e[r]=n,this.#r){let s=this.#r-e[r];for(;this.#p>s;)this.#F(!0)}this.#p+=e[r],i&&(i.entrySize=n,i.totalCalculatedSize=this.#p)}}#j=e=>{};#M=(e,r,n)=>{};#L=(e,r,n,i)=>{if(n||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#O({allowStale:e=this.allowStale}={}){if(this.#a)for(let r=this.#m;!(!this.#U(r)||((e||!this.#w(r))&&(yield r),r===this.#_));)r=this.#S[r]}*#C({allowStale:e=this.allowStale}={}){if(this.#a)for(let r=this.#_;!(!this.#U(r)||((e||!this.#w(r))&&(yield r),r===this.#m));)r=this.#f[r]}#U(e){return e!==void 0&&this.#d.get(this.#c[e])===e}*entries(){for(let e of this.#O())this.#n[e]!==void 0&&this.#c[e]!==void 0&&!this.#u(this.#n[e])&&(yield[this.#c[e],this.#n[e]])}*rentries(){for(let e of this.#C())this.#n[e]!==void 0&&this.#c[e]!==void 0&&!this.#u(this.#n[e])&&(yield[this.#c[e],this.#n[e]])}*keys(){for(let e of this.#O()){let r=this.#c[e];r!==void 0&&!this.#u(this.#n[e])&&(yield r)}}*rkeys(){for(let e of this.#C()){let r=this.#c[e];r!==void 0&&!this.#u(this.#n[e])&&(yield r)}}*values(){for(let e of this.#O())this.#n[e]!==void 0&&!this.#u(this.#n[e])&&(yield this.#n[e])}*rvalues(){for(let e of this.#C())this.#n[e]!==void 0&&!this.#u(this.#n[e])&&(yield this.#n[e])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(e,r={}){for(let n of this.#O()){let i=this.#n[n],s=this.#u(i)?i.__staleWhileFetching:i;if(s!==void 0&&e(s,this.#c[n],this))return this.get(this.#c[n],r)}}forEach(e,r=this){for(let n of this.#O()){let i=this.#n[n],s=this.#u(i)?i.__staleWhileFetching:i;s!==void 0&&e.call(r,s,this.#c[n],this)}}rforEach(e,r=this){for(let n of this.#C()){let i=this.#n[n],s=this.#u(i)?i.__staleWhileFetching:i;s!==void 0&&e.call(r,s,this.#c[n],this)}}purgeStale(){let e=!1;for(let r of this.#C({allowStale:!0}))this.#w(r)&&(this.#R(this.#c[r],"expire"),e=!0);return e}info(e){let r=this.#d.get(e);if(r===void 0)return;let n=this.#n[r],i=this.#u(n)?n.__staleWhileFetching:n;if(i===void 0)return;let s={value:i};if(this.#g&&this.#k){let o=this.#g[r],a=this.#k[r];if(o&&a){let c=o-(this.#l.now()-a);s.ttl=c,s.start=Date.now()}}return this.#E&&(s.size=this.#E[r]),s}dump(){let e=[];for(let r of this.#O({allowStale:!0})){let n=this.#c[r],i=this.#n[r],s=this.#u(i)?i.__staleWhileFetching:i;if(s===void 0||n===void 0)continue;let o={value:s};if(this.#g&&this.#k){o.ttl=this.#g[r];let a=this.#l.now()-this.#k[r];o.start=Math.floor(Date.now()-a)}this.#E&&(o.size=this.#E[r]),e.unshift([n,o])}return e}load(e){this.clear();for(let[r,n]of e){if(n.start){let i=Date.now()-n.start;n.start=this.#l.now()-i}this.set(r,n.value,n)}}set(e,r,n={}){if(r===void 0)return this.delete(e),this;let{ttl:i=this.ttl,start:s,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:c}=n,{noUpdateTTL:u=this.noUpdateTTL}=n,l=this.#L(e,r,n.size||0,a);if(this.maxEntrySize&&l>this.maxEntrySize)return c&&(c.set="miss",c.maxEntrySizeExceeded=!0),this.#R(e,"set"),this;let d=this.#a===0?void 0:this.#d.get(e);if(d===void 0)d=this.#a===0?this.#m:this.#I.length!==0?this.#I.pop():this.#a===this.#e?this.#F(!1):this.#a,this.#c[d]=e,this.#n[d]=r,this.#d.set(e,d),this.#f[this.#m]=d,this.#S[d]=this.#m,this.#m=d,this.#a++,this.#M(d,l,c),c&&(c.set="add"),u=!1,this.#N&&this.#i?.(r,e,"add");else{this.#D(d);let p=this.#n[d];if(r!==p){if(this.#T&&this.#u(p)){p.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:f}=p;f!==void 0&&!o&&(this.#x&&this.#s?.(f,e,"set"),this.#t&&this.#h?.push([f,e,"set"]))}else o||(this.#x&&this.#s?.(p,e,"set"),this.#t&&this.#h?.push([p,e,"set"]));if(this.#j(d),this.#M(d,l,c),this.#n[d]=r,c){c.set="replace";let f=p&&this.#u(p)?p.__staleWhileFetching:p;f!==void 0&&(c.oldValue=f)}}else c&&(c.set="update");this.#N&&this.onInsert?.(r,e,r===p?"update":"replace")}if(i!==0&&!this.#g&&this.#P(),this.#g&&(u||this.#z(d,i,s),c&&this.#A(c,d)),!o&&this.#t&&this.#h){let p=this.#h,f;for(;f=p?.shift();)this.#o?.(...f)}return this}pop(){try{for(;this.#a;){let e=this.#n[this.#_];if(this.#F(!0),this.#u(e)){if(e.__staleWhileFetching)return e.__staleWhileFetching}else if(e!==void 0)return e}}finally{if(this.#t&&this.#h){let e=this.#h,r;for(;r=e?.shift();)this.#o?.(...r)}}}#F(e){let r=this.#_,n=this.#c[r],i=this.#n[r];return this.#T&&this.#u(i)?i.__abortController.abort(new Error("evicted")):(this.#x||this.#t)&&(this.#x&&this.#s?.(i,n,"evict"),this.#t&&this.#h?.push([i,n,"evict"])),this.#j(r),this.#y?.[r]&&(clearTimeout(this.#y[r]),this.#y[r]=void 0),e&&(this.#c[r]=void 0,this.#n[r]=void 0,this.#I.push(r)),this.#a===1?(this.#_=this.#m=0,this.#I.length=0):this.#_=this.#f[r],this.#d.delete(n),this.#a--,r}has(e,r={}){let{updateAgeOnHas:n=this.updateAgeOnHas,status:i}=r,s=this.#d.get(e);if(s!==void 0){let o=this.#n[s];if(this.#u(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#w(s))i&&(i.has="stale",this.#A(i,s));else return n&&this.#$(s),i&&(i.has="hit",this.#A(i,s)),!0}else i&&(i.has="miss");return!1}peek(e,r={}){let{allowStale:n=this.allowStale}=r,i=this.#d.get(e);if(i===void 0||!n&&this.#w(i))return;let s=this.#n[i];return this.#u(s)?s.__staleWhileFetching:s}#q(e,r,n,i){let s=r===void 0?void 0:this.#n[r];if(this.#u(s))return s;let o=new My,{signal:a}=n;a?.addEventListener("abort",()=>o.abort(a.reason),{signal:o.signal});let c={signal:o.signal,options:n,context:i},u=(h,g=!1)=>{let{aborted:v}=o.signal,S=n.ignoreFetchAbort&&h!==void 0;if(n.status&&(v&&!g?(n.status.fetchAborted=!0,n.status.fetchError=o.signal.reason,S&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),v&&!S&&!g)return d(o.signal.reason);let b=f,y=this.#n[r];return(y===f||S&&g&&y===void 0)&&(h===void 0?b.__staleWhileFetching!==void 0?this.#n[r]=b.__staleWhileFetching:this.#R(e,"fetch"):(n.status&&(n.status.fetchUpdated=!0),this.set(e,h,c.options))),h},l=h=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=h),d(h)),d=h=>{let{aborted:g}=o.signal,v=g&&n.allowStaleOnFetchAbort,S=v||n.allowStaleOnFetchRejection,b=S||n.noDeleteOnFetchRejection,y=f;if(this.#n[r]===f&&(!b||y.__staleWhileFetching===void 0?this.#R(e,"fetch"):v||(this.#n[r]=y.__staleWhileFetching)),S)return n.status&&y.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),y.__staleWhileFetching;if(y.__returned===y)throw h},p=(h,g)=>{let v=this.#b?.(e,s,c);v&&v instanceof Promise&&v.then(S=>h(S===void 0?void 0:S),g),o.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(h(void 0),n.allowStaleOnFetchAbort&&(h=S=>u(S,!0)))})};n.status&&(n.status.fetchDispatched=!0);let f=new Promise(p).then(u,l),m=Object.assign(f,{__abortController:o,__staleWhileFetching:s,__returned:void 0});return r===void 0?(this.set(e,m,{...c.options,status:void 0}),r=this.#d.get(e)):this.#n[r]=m,m}#u(e){if(!this.#T)return!1;let r=e;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof My}async fetch(e,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:c=0,sizeCalculation:u=this.sizeCalculation,noUpdateTTL:l=this.noUpdateTTL,noDeleteOnFetchRejection:d=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:p=this.allowStaleOnFetchRejection,ignoreFetchAbort:f=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:h,forceRefresh:g=!1,status:v,signal:S}=r;if(!this.#T)return v&&(v.fetch="get"),this.get(e,{allowStale:n,updateAgeOnGet:i,noDeleteOnStaleGet:s,status:v});let b={allowStale:n,updateAgeOnGet:i,noDeleteOnStaleGet:s,ttl:o,noDisposeOnSet:a,size:c,sizeCalculation:u,noUpdateTTL:l,noDeleteOnFetchRejection:d,allowStaleOnFetchRejection:p,allowStaleOnFetchAbort:m,ignoreFetchAbort:f,status:v,signal:S},y=this.#d.get(e);if(y===void 0){v&&(v.fetch="miss");let x=this.#q(e,y,b,h);return x.__returned=x}else{let x=this.#n[y];if(this.#u(x)){let A=n&&x.__staleWhileFetching!==void 0;return v&&(v.fetch="inflight",A&&(v.returnedStale=!0)),A?x.__staleWhileFetching:x.__returned=x}let w=this.#w(y);if(!g&&!w)return v&&(v.fetch="hit"),this.#D(y),i&&this.#$(y),v&&this.#A(v,y),x;let E=this.#q(e,y,b,h),I=E.__staleWhileFetching!==void 0&&n;return v&&(v.fetch=w?"stale":"refresh",I&&w&&(v.returnedStale=!0)),I?E.__staleWhileFetching:E.__returned=E}}async forceFetch(e,r={}){let n=await this.fetch(e,r);if(n===void 0)throw new Error("fetch() returned undefined");return n}memo(e,r={}){let n=this.#v;if(!n)throw new Error("no memoMethod provided to constructor");let{context:i,forceRefresh:s,...o}=r,a=this.get(e,o);if(!s&&a!==void 0)return a;let c=n(e,a,{options:o,context:i});return this.set(e,c,o),c}get(e,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,status:o}=r,a=this.#d.get(e);if(a!==void 0){let c=this.#n[a],u=this.#u(c);return o&&this.#A(o,a),this.#w(a)?(o&&(o.get="stale"),u?(o&&n&&c.__staleWhileFetching!==void 0&&(o.returnedStale=!0),n?c.__staleWhileFetching:void 0):(s||this.#R(e,"expire"),o&&n&&(o.returnedStale=!0),n?c:void 0)):(o&&(o.get="hit"),u?c.__staleWhileFetching:(this.#D(a),i&&this.#$(a),c))}else o&&(o.get="miss")}#H(e,r){this.#S[r]=e,this.#f[e]=r}#D(e){e!==this.#m&&(e===this.#_?this.#_=this.#f[e]:this.#H(this.#S[e],this.#f[e]),this.#H(this.#m,e),this.#m=e)}delete(e){return this.#R(e,"delete")}#R(e,r){let n=!1;if(this.#a!==0){let i=this.#d.get(e);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),n=!0,this.#a===1)this.#B(r);else{this.#j(i);let s=this.#n[i];if(this.#u(s)?s.__abortController.abort(new Error("deleted")):(this.#x||this.#t)&&(this.#x&&this.#s?.(s,e,r),this.#t&&this.#h?.push([s,e,r])),this.#d.delete(e),this.#c[i]=void 0,this.#n[i]=void 0,i===this.#m)this.#m=this.#S[i];else if(i===this.#_)this.#_=this.#f[i];else{let o=this.#S[i];this.#f[o]=this.#f[i];let a=this.#f[i];this.#S[a]=this.#S[i]}this.#a--,this.#I.push(i)}}if(this.#t&&this.#h?.length){let i=this.#h,s;for(;s=i?.shift();)this.#o?.(...s)}return n}clear(){return this.#B("delete")}#B(e){for(let r of this.#C({allowStale:!0})){let n=this.#n[r];if(this.#u(n))n.__abortController.abort(new Error("deleted"));else{let i=this.#c[r];this.#x&&this.#s?.(n,i,e),this.#t&&this.#h?.push([n,i,e])}}if(this.#d.clear(),this.#n.fill(void 0),this.#c.fill(void 0),this.#g&&this.#k){this.#g.fill(0),this.#k.fill(0);for(let r of this.#y??[])r!==void 0&&clearTimeout(r);this.#y?.fill(void 0)}if(this.#E&&this.#E.fill(0),this.#_=0,this.#m=0,this.#I.length=0,this.#p=0,this.#a=0,this.#t&&this.#h){let r=this.#h,n;for(;n=r?.shift();)this.#o?.(...n)}}};var Bu=require("node:path"),n5=require("node:url"),rs=require("fs"),Hbe=Pe(require("node:fs"),1),$o=require("node:fs/promises");var qy=require("node:events"),RI=Pe(require("node:stream"),1),Y8=require("node:string_decoder"),V8=typeof process=="object"&&process?process:{stdout:null,stderr:null},Nbe=t=>!!t&&typeof t=="object"&&(t instanceof To||t instanceof RI.default||Mbe(t)||Dbe(t)),Mbe=t=>!!t&&typeof t=="object"&&t instanceof qy.EventEmitter&&typeof t.pipe=="function"&&t.pipe!==RI.default.Writable.prototype.pipe,Dbe=t=>!!t&&typeof t=="object"&&t instanceof qy.EventEmitter&&typeof t.write=="function"&&typeof t.end=="function",Ls=Symbol("EOF"),Us=Symbol("maybeEmitEnd"),ko=Symbol("emittedEnd"),Dy=Symbol("emittingEnd"),_f=Symbol("emittedError"),jy=Symbol("closed"),K8=Symbol("read"),zy=Symbol("flush"),J8=Symbol("flushChunk"),ki=Symbol("encoding"),Hu=Symbol("decoder"),fr=Symbol("flowing"),bf=Symbol("paused"),Zu=Symbol("resume"),mr=Symbol("buffer"),rn=Symbol("pipes"),hr=Symbol("bufferLength"),wI=Symbol("bufferPush"),Ly=Symbol("bufferShift"),Fr=Symbol("objectMode"),Xt=Symbol("destroyed"),EI=Symbol("error"),kI=Symbol("emitData"),X8=Symbol("emitEnd"),TI=Symbol("emitEnd2"),es=Symbol("async"),$I=Symbol("abort"),Uy=Symbol("aborted"),Sf=Symbol("signal"),Ca=Symbol("dataListeners"),An=Symbol("discarded"),xf=t=>Promise.resolve().then(t),jbe=t=>t(),zbe=t=>t==="end"||t==="finish"||t==="prefinish",Lbe=t=>t instanceof ArrayBuffer||!!t&&typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Ube=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),Fy=class{src;dest;opts;ondrain;constructor(e,r,n){this.src=e,this.dest=r,this.opts=n,this.ondrain=()=>e[Zu](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},II=class extends Fy{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,n){super(e,r,n),this.proxyErrors=i=>r.emit("error",i),e.on("error",this.proxyErrors)}},Fbe=t=>!!t.objectMode,qbe=t=>!t.objectMode&&!!t.encoding&&t.encoding!=="buffer",To=class extends qy.EventEmitter{[fr]=!1;[bf]=!1;[rn]=[];[mr]=[];[Fr];[ki];[es];[Hu];[Ls]=!1;[ko]=!1;[Dy]=!1;[jy]=!1;[_f]=null;[hr]=0;[Xt]=!1;[Sf];[Uy]=!1;[Ca]=0;[An]=!1;writable=!0;readable=!0;constructor(...e){let r=e[0]||{};if(super(),r.objectMode&&typeof r.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");Fbe(r)?(this[Fr]=!0,this[ki]=null):qbe(r)?(this[ki]=r.encoding,this[Fr]=!1):(this[Fr]=!1,this[ki]=null),this[es]=!!r.async,this[Hu]=this[ki]?new Y8.StringDecoder(this[ki]):null,r&&r.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[mr]}),r&&r.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[rn]});let{signal:n}=r;n&&(this[Sf]=n,n.aborted?this[$I]():n.addEventListener("abort",()=>this[$I]()))}get bufferLength(){return this[hr]}get encoding(){return this[ki]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[Fr]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[es]}set async(e){this[es]=this[es]||!!e}[$I](){this[Uy]=!0,this.emit("abort",this[Sf]?.reason),this.destroy(this[Sf]?.reason)}get aborted(){return this[Uy]}set aborted(e){}write(e,r,n){if(this[Uy])return!1;if(this[Ls])throw new Error("write after end");if(this[Xt])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let i=this[es]?xf:jbe;if(!this[Fr]&&!Buffer.isBuffer(e)){if(Ube(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(Lbe(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[Fr]?(this[fr]&&this[hr]!==0&&this[zy](!0),this[fr]?this.emit("data",e):this[wI](e),this[hr]!==0&&this.emit("readable"),n&&i(n),this[fr]):e.length?(typeof e=="string"&&!(r===this[ki]&&!this[Hu]?.lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[ki]&&(e=this[Hu].write(e)),this[fr]&&this[hr]!==0&&this[zy](!0),this[fr]?this.emit("data",e):this[wI](e),this[hr]!==0&&this.emit("readable"),n&&i(n),this[fr]):(this[hr]!==0&&this.emit("readable"),n&&i(n),this[fr])}read(e){if(this[Xt])return null;if(this[An]=!1,this[hr]===0||e===0||e&&e>this[hr])return this[Us](),null;this[Fr]&&(e=null),this[mr].length>1&&!this[Fr]&&(this[mr]=[this[ki]?this[mr].join(""):Buffer.concat(this[mr],this[hr])]);let r=this[K8](e||null,this[mr][0]);return this[Us](),r}[K8](e,r){if(this[Fr])this[Ly]();else{let n=r;e===n.length||e===null?this[Ly]():typeof n=="string"?(this[mr][0]=n.slice(e),r=n.slice(0,e),this[hr]-=e):(this[mr][0]=n.subarray(e),r=n.subarray(0,e),this[hr]-=e)}return this.emit("data",r),!this[mr].length&&!this[Ls]&&this.emit("drain"),r}end(e,r,n){return typeof e=="function"&&(n=e,e=void 0),typeof r=="function"&&(n=r,r="utf8"),e!==void 0&&this.write(e,r),n&&this.once("end",n),this[Ls]=!0,this.writable=!1,(this[fr]||!this[bf])&&this[Us](),this}[Zu](){this[Xt]||(!this[Ca]&&!this[rn].length&&(this[An]=!0),this[bf]=!1,this[fr]=!0,this.emit("resume"),this[mr].length?this[zy]():this[Ls]?this[Us]():this.emit("drain"))}resume(){return this[Zu]()}pause(){this[fr]=!1,this[bf]=!0,this[An]=!1}get destroyed(){return this[Xt]}get flowing(){return this[fr]}get paused(){return this[bf]}[wI](e){this[Fr]?this[hr]+=1:this[hr]+=e.length,this[mr].push(e)}[Ly](){return this[Fr]?this[hr]-=1:this[hr]-=this[mr][0].length,this[mr].shift()}[zy](e=!1){do;while(this[J8](this[Ly]())&&this[mr].length);!e&&!this[mr].length&&!this[Ls]&&this.emit("drain")}[J8](e){return this.emit("data",e),this[fr]}pipe(e,r){if(this[Xt])return e;this[An]=!1;let n=this[ko];return r=r||{},e===V8.stdout||e===V8.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,n?r.end&&e.end():(this[rn].push(r.proxyErrors?new II(this,e,r):new Fy(this,e,r)),this[es]?xf(()=>this[Zu]()):this[Zu]()),e}unpipe(e){let r=this[rn].find(n=>n.dest===e);r&&(this[rn].length===1?(this[fr]&&this[Ca]===0&&(this[fr]=!1),this[rn]=[]):this[rn].splice(this[rn].indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let n=super.on(e,r);if(e==="data")this[An]=!1,this[Ca]++,!this[rn].length&&!this[fr]&&this[Zu]();else if(e==="readable"&&this[hr]!==0)super.emit("readable");else if(zbe(e)&&this[ko])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[_f]){let i=r;this[es]?xf(()=>i.call(this,this[_f])):i.call(this,this[_f])}return n}removeListener(e,r){return this.off(e,r)}off(e,r){let n=super.off(e,r);return e==="data"&&(this[Ca]=this.listeners("data").length,this[Ca]===0&&!this[An]&&!this[rn].length&&(this[fr]=!1)),n}removeAllListeners(e){let r=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[Ca]=0,!this[An]&&!this[rn].length&&(this[fr]=!1)),r}get emittedEnd(){return this[ko]}[Us](){!this[Dy]&&!this[ko]&&!this[Xt]&&this[mr].length===0&&this[Ls]&&(this[Dy]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[jy]&&this.emit("close"),this[Dy]=!1)}emit(e,...r){let n=r[0];if(e!=="error"&&e!=="close"&&e!==Xt&&this[Xt])return!1;if(e==="data")return!this[Fr]&&!n?!1:this[es]?(xf(()=>this[kI](n)),!0):this[kI](n);if(e==="end")return this[X8]();if(e==="close"){if(this[jy]=!0,!this[ko]&&!this[Xt])return!1;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[_f]=n,super.emit(EI,n);let s=!this[Sf]||this.listeners("error").length?super.emit("error",n):!1;return this[Us](),s}else if(e==="resume"){let s=super.emit("resume");return this[Us](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let i=super.emit(e,...r);return this[Us](),i}[kI](e){for(let n of this[rn])n.dest.write(e)===!1&&this.pause();let r=this[An]?!1:super.emit("data",e);return this[Us](),r}[X8](){return this[ko]?!1:(this[ko]=!0,this.readable=!1,this[es]?(xf(()=>this[TI]()),!0):this[TI]())}[TI](){if(this[Hu]){let r=this[Hu].end();if(r){for(let n of this[rn])n.dest.write(r);this[An]||super.emit("data",r)}}for(let r of this[rn])r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[Fr]||(e.dataLength=0);let r=this.promise();return this.on("data",n=>{e.push(n),this[Fr]||(e.dataLength+=n.length)}),await r,e}async concat(){if(this[Fr])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[ki]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,r)=>{this.on(Xt,()=>r(new Error("stream destroyed"))),this.on("error",n=>r(n)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[An]=!1;let e=!1,r=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return r();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[Ls])return r();let s,o,a=d=>{this.off("data",c),this.off("end",u),this.off(Xt,l),r(),o(d)},c=d=>{this.off("error",a),this.off("end",u),this.off(Xt,l),this.pause(),s({value:d,done:!!this[Ls]})},u=()=>{this.off("error",a),this.off("data",c),this.off(Xt,l),r(),s({done:!0,value:void 0})},l=()=>a(new Error("stream destroyed"));return new Promise((d,p)=>{o=p,s=d,this.once(Xt,l),this.once("error",a),this.once("end",u),this.once("data",c)})},throw:r,return:r,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[An]=!1;let e=!1,r=()=>(this.pause(),this.off(EI,r),this.off(Xt,r),this.off("end",r),e=!0,{done:!0,value:void 0}),n=()=>{if(e)return r();let i=this.read();return i===null?r():{done:!1,value:i}};return this.once("end",r),this.once(EI,r),this.once(Xt,r),{next:n,throw:r,return:r,[Symbol.iterator](){return this}}}destroy(e){if(this[Xt])return e?this.emit("error",e):this.emit(Xt),this;this[Xt]=!0,this[An]=!0,this[mr].length=0,this[hr]=0;let r=this;return typeof r.close=="function"&&!this[jy]&&r.close(),e?this.emit("error",e):this.emit(Xt),this}static get isStream(){return Nbe}};var Zbe=rs.realpathSync.native,Ef={lstatSync:rs.lstatSync,readdir:rs.readdir,readdirSync:rs.readdirSync,readlinkSync:rs.readlinkSync,realpathSync:Zbe,promises:{lstat:$o.lstat,readdir:$o.readdir,readlink:$o.readlink,realpath:$o.realpath}},i5=t=>!t||t===Ef||t===Hbe?Ef:{...Ef,...t,promises:{...Ef.promises,...t.promises||{}}},s5=/^\\\\\?\\([a-z]:)\\?$/i,Bbe=t=>t.replace(/\//g,"\\").replace(s5,"$1\\"),Gbe=/[\\\/]/,ti=0,o5=1,a5=2,ts=4,c5=6,u5=8,Pa=10,l5=12,ei=15,wf=~ei,OI=16,Q8=32,kf=64,Ti=128,Hy=256,By=512,e5=kf|Ti|By,Wbe=1023,CI=t=>t.isFile()?u5:t.isDirectory()?ts:t.isSymbolicLink()?Pa:t.isCharacterDevice()?a5:t.isBlockDevice()?c5:t.isSocket()?l5:t.isFIFO()?o5:ti,t5=new Oa({max:2**12}),Tf=t=>{let e=t5.get(t);if(e)return e;let r=t.normalize("NFKD");return t5.set(t,r),r},r5=new Oa({max:2**12}),Zy=t=>{let e=r5.get(t);if(e)return e;let r=Tf(t.toLowerCase());return r5.set(t,r),r},Gy=class extends Oa{constructor(){super({max:256})}},PI=class extends Oa{constructor(e=16*1024){super({maxSize:e,sizeCalculation:r=>r.length+1})}},d5=Symbol("PathScurry setAsCwd"),qr=class{name;root;roots;parent;nocase;isCWD=!1;#e;#r;get dev(){return this.#r}#s;get mode(){return this.#s}#i;get nlink(){return this.#i}#o;get uid(){return this.#o}#b;get gid(){return this.#b}#v;get rdev(){return this.#v}#l;get blksize(){return this.#l}#a;get ino(){return this.#a}#p;get size(){return this.#p}#d;get blocks(){return this.#d}#c;get atimeMs(){return this.#c}#n;get mtimeMs(){return this.#n}#f;get ctimeMs(){return this.#f}#S;get birthtimeMs(){return this.#S}#_;get atime(){return this.#_}#m;get mtime(){return this.#m}#I;get ctime(){return this.#I}#h;get birthtime(){return this.#h}#E;#k;#g;#y;#x;#T;#t;#N;#P;#$;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(e,r=ti,n,i,s,o,a){this.name=e,this.#E=s?Zy(e):Tf(e),this.#t=r&Wbe,this.nocase=s,this.roots=i,this.root=n||this,this.#N=o,this.#g=a.fullpath,this.#x=a.relative,this.#T=a.relativePosix,this.parent=a.parent,this.parent?this.#e=this.parent.#e:this.#e=i5(a.fs)}depth(){return this.#k!==void 0?this.#k:this.parent?this.#k=this.parent.depth()+1:this.#k=0}childrenCache(){return this.#N}resolve(e){if(!e)return this;let r=this.getRootString(e),i=e.substring(r.length).split(this.splitSep);return r?this.getRoot(r).#A(i):this.#A(i)}#A(e){let r=this;for(let n of e)r=r.child(n);return r}children(){let e=this.#N.get(this);if(e)return e;let r=Object.assign([],{provisional:0});return this.#N.set(this,r),this.#t&=~OI,r}child(e,r){if(e===""||e===".")return this;if(e==="..")return this.parent||this;let n=this.children(),i=this.nocase?Zy(e):Tf(e);for(let c of n)if(c.#E===i)return c;let s=this.parent?this.sep:"",o=this.#g?this.#g+s+e:void 0,a=this.newChild(e,ti,{...r,parent:this,fullpath:o});return this.canReaddir()||(a.#t|=Ti),n.push(a),a}relative(){if(this.isCWD)return"";if(this.#x!==void 0)return this.#x;let e=this.name,r=this.parent;if(!r)return this.#x=this.name;let n=r.relative();return n+(!n||!r.parent?"":this.sep)+e}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#T!==void 0)return this.#T;let e=this.name,r=this.parent;if(!r)return this.#T=this.fullpathPosix();let n=r.relativePosix();return n+(!n||!r.parent?"":"/")+e}fullpath(){if(this.#g!==void 0)return this.#g;let e=this.name,r=this.parent;if(!r)return this.#g=this.name;let i=r.fullpath()+(r.parent?this.sep:"")+e;return this.#g=i}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep==="/")return this.#y=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(i)?this.#y=`//?/${i}`:this.#y=i}let e=this.parent,r=e.fullpathPosix(),n=r+(!r||!e.parent?"":"/")+this.name;return this.#y=n}isUnknown(){return(this.#t&ei)===ti}isType(e){return this[`is${e}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#t&ei)===u5}isDirectory(){return(this.#t&ei)===ts}isCharacterDevice(){return(this.#t&ei)===a5}isBlockDevice(){return(this.#t&ei)===c5}isFIFO(){return(this.#t&ei)===o5}isSocket(){return(this.#t&ei)===l5}isSymbolicLink(){return(this.#t&Pa)===Pa}lstatCached(){return this.#t&Q8?this:void 0}readlinkCached(){return this.#P}realpathCached(){return this.#$}readdirCached(){let e=this.children();return e.slice(0,e.provisional)}canReadlink(){if(this.#P)return!0;if(!this.parent)return!1;let e=this.#t&ei;return!(e!==ti&&e!==Pa||this.#t&Hy||this.#t&Ti)}calledReaddir(){return!!(this.#t&OI)}isENOENT(){return!!(this.#t&Ti)}isNamed(e){return this.nocase?this.#E===Zy(e):this.#E===Tf(e)}async readlink(){let e=this.#P;if(e)return e;if(this.canReadlink()&&this.parent)try{let r=await this.#e.promises.readlink(this.fullpath()),n=(await this.parent.realpath())?.resolve(r);if(n)return this.#P=n}catch(r){this.#C(r.code);return}}readlinkSync(){let e=this.#P;if(e)return e;if(this.canReadlink()&&this.parent)try{let r=this.#e.readlinkSync(this.fullpath()),n=this.parent.realpathSync()?.resolve(r);if(n)return this.#P=n}catch(r){this.#C(r.code);return}}#z(e){this.#t|=OI;for(let r=e.provisional;rn(null,e))}readdirCB(e,r=!1){if(!this.canReaddir()){r?e(null,[]):queueMicrotask(()=>e(null,[]));return}let n=this.children();if(this.calledReaddir()){let s=n.slice(0,n.provisional);r?e(null,s):queueMicrotask(()=>e(null,s));return}if(this.#D.push(e),this.#R)return;this.#R=!0;let i=this.fullpath();this.#e.readdir(i,{withFileTypes:!0},(s,o)=>{if(s)this.#L(s.code),n.provisional=0;else{for(let a of o)this.#U(a,n);this.#z(n)}this.#B(n.slice(0,n.provisional))})}#G;async readdir(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let r=this.fullpath();if(this.#G)await this.#G;else{let n=()=>{};this.#G=new Promise(i=>n=i);try{for(let i of await this.#e.promises.readdir(r,{withFileTypes:!0}))this.#U(i,e);this.#z(e)}catch(i){this.#L(i.code),e.provisional=0}this.#G=void 0,n()}return e.slice(0,e.provisional)}readdirSync(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let r=this.fullpath();try{for(let n of this.#e.readdirSync(r,{withFileTypes:!0}))this.#U(n,e);this.#z(e)}catch(n){this.#L(n.code),e.provisional=0}return e.slice(0,e.provisional)}canReaddir(){if(this.#t&e5)return!1;let e=ei&this.#t;return e===ti||e===ts||e===Pa}shouldWalk(e,r){return(this.#t&ts)===ts&&!(this.#t&e5)&&!e.has(this)&&(!r||r(this))}async realpath(){if(this.#$)return this.#$;if(!((By|Hy|Ti)&this.#t))try{let e=await this.#e.promises.realpath(this.fullpath());return this.#$=this.resolve(e)}catch{this.#j()}}realpathSync(){if(this.#$)return this.#$;if(!((By|Hy|Ti)&this.#t))try{let e=this.#e.realpathSync(this.fullpath());return this.#$=this.resolve(e)}catch{this.#j()}}[d5](e){if(e===this)return;e.isCWD=!1,this.isCWD=!0;let r=new Set([]),n=[],i=this;for(;i&&i.parent;)r.add(i),i.#x=n.join(this.sep),i.#T=n.join("/"),i=i.parent,n.push("..");for(i=e;i&&i.parent&&!r.has(i);)i.#x=void 0,i.#T=void 0,i=i.parent}},Wy=class t extends qr{sep="\\";splitSep=Gbe;constructor(e,r=ti,n,i,s,o,a){super(e,r,n,i,s,o,a)}newChild(e,r=ti,n={}){return new t(e,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}getRootString(e){return Bu.win32.parse(e).root}getRoot(e){if(e=Bbe(e.toUpperCase()),e===this.root.name)return this.root;for(let[r,n]of Object.entries(this.roots))if(this.sameRoot(e,r))return this.roots[e]=n;return this.roots[e]=new Gu(e,this).root}sameRoot(e,r=this.root.name){return e=e.toUpperCase().replace(/\//g,"\\").replace(s5,"$1\\"),e===r}},Vy=class t extends qr{splitSep="/";sep="/";constructor(e,r=ti,n,i,s,o,a){super(e,r,n,i,s,o,a)}getRootString(e){return e.startsWith("/")?"/":""}getRoot(e){return this.root}newChild(e,r=ti,n={}){return new t(e,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}},Ky=class{root;rootPath;roots;cwd;#e;#r;#s;nocase;#i;constructor(e=process.cwd(),r,n,{nocase:i,childrenCacheSize:s=16*1024,fs:o=Ef}={}){this.#i=i5(o),(e instanceof URL||e.startsWith("file://"))&&(e=(0,n5.fileURLToPath)(e));let a=r.resolve(e);this.roots=Object.create(null),this.rootPath=this.parseRootPath(a),this.#e=new Gy,this.#r=new Gy,this.#s=new PI(s);let c=a.substring(this.rootPath.length).split(n);if(c.length===1&&!c[0]&&c.pop(),i===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=i,this.root=this.newRoot(this.#i),this.roots[this.rootPath]=this.root;let u=this.root,l=c.length-1,d=r.sep,p=this.rootPath,f=!1;for(let m of c){let h=l--;u=u.child(m,{relative:new Array(h).fill("..").join(d),relativePosix:new Array(h).fill("..").join("/"),fullpath:p+=(f?"":d)+m}),f=!0}this.cwd=u}depth(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.depth()}childrenCache(){return this.#s}resolve(...e){let r="";for(let s=e.length-1;s>=0;s--){let o=e[s];if(!(!o||o===".")&&(r=r?`${o}/${r}`:o,this.isAbsolute(o)))break}let n=this.#e.get(r);if(n!==void 0)return n;let i=this.cwd.resolve(r).fullpath();return this.#e.set(r,i),i}resolvePosix(...e){let r="";for(let s=e.length-1;s>=0;s--){let o=e[s];if(!(!o||o===".")&&(r=r?`${o}/${r}`:o,this.isAbsolute(o)))break}let n=this.#r.get(r);if(n!==void 0)return n;let i=this.cwd.resolve(r).fullpathPosix();return this.#r.set(r,i),i}relative(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relative()}relativePosix(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relativePosix()}basename(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.name}dirname(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),(e.parent||e).fullpath()}async readdir(e=this.cwd,r={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e,e=this.cwd);let{withFileTypes:n}=r;if(e.canReaddir()){let i=await e.readdir();return n?i:i.map(s=>s.name)}else return[]}readdirSync(e=this.cwd,r={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e,e=this.cwd);let{withFileTypes:n=!0}=r;return e.canReaddir()?n?e.readdirSync():e.readdirSync().map(i=>i.name):[]}async lstat(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstat()}lstatSync(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstatSync()}async readlink(e=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e.withFileTypes,e=this.cwd);let n=await e.readlink();return r?n:n?.fullpath()}readlinkSync(e=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e.withFileTypes,e=this.cwd);let n=e.readlinkSync();return r?n:n?.fullpath()}async realpath(e=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e.withFileTypes,e=this.cwd);let n=await e.realpath();return r?n:n?.fullpath()}realpathSync(e=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e.withFileTypes,e=this.cwd);let n=e.realpathSync();return r?n:n?.fullpath()}async walk(e=this.cwd,r={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e,e=this.cwd);let{withFileTypes:n=!0,follow:i=!1,filter:s,walkFilter:o}=r,a=[];(!s||s(e))&&a.push(n?e:e.fullpath());let c=new Set,u=(d,p)=>{c.add(d),d.readdirCB((f,m)=>{if(f)return p(f);let h=m.length;if(!h)return p();let g=()=>{--h===0&&p()};for(let v of m)(!s||s(v))&&a.push(n?v:v.fullpath()),i&&v.isSymbolicLink()?v.realpath().then(S=>S?.isUnknown()?S.lstat():S).then(S=>S?.shouldWalk(c,o)?u(S,g):g()):v.shouldWalk(c,o)?u(v,g):g()},!0)},l=e;return new Promise((d,p)=>{u(l,f=>{if(f)return p(f);d(a)})})}walkSync(e=this.cwd,r={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e,e=this.cwd);let{withFileTypes:n=!0,follow:i=!1,filter:s,walkFilter:o}=r,a=[];(!s||s(e))&&a.push(n?e:e.fullpath());let c=new Set([e]);for(let u of c){let l=u.readdirSync();for(let d of l){(!s||s(d))&&a.push(n?d:d.fullpath());let p=d;if(d.isSymbolicLink()){if(!(i&&(p=d.realpathSync())))continue;p.isUnknown()&&p.lstatSync()}p.shouldWalk(c,o)&&c.add(p)}}return a}[Symbol.asyncIterator](){return this.iterate()}iterate(e=this.cwd,r={}){return typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e,e=this.cwd),this.stream(e,r)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(e=this.cwd,r={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e,e=this.cwd);let{withFileTypes:n=!0,follow:i=!1,filter:s,walkFilter:o}=r;(!s||s(e))&&(yield n?e:e.fullpath());let a=new Set([e]);for(let c of a){let u=c.readdirSync();for(let l of u){(!s||s(l))&&(yield n?l:l.fullpath());let d=l;if(l.isSymbolicLink()){if(!(i&&(d=l.realpathSync())))continue;d.isUnknown()&&d.lstatSync()}d.shouldWalk(a,o)&&a.add(d)}}}stream(e=this.cwd,r={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e,e=this.cwd);let{withFileTypes:n=!0,follow:i=!1,filter:s,walkFilter:o}=r,a=new To({objectMode:!0});(!s||s(e))&&a.write(n?e:e.fullpath());let c=new Set,u=[e],l=0,d=()=>{let p=!1;for(;!p;){let f=u.shift();if(!f){l===0&&a.end();return}l++,c.add(f);let m=(g,v,S=!1)=>{if(g)return a.emit("error",g);if(i&&!S){let b=[];for(let y of v)y.isSymbolicLink()&&b.push(y.realpath().then(x=>x?.isUnknown()?x.lstat():x));if(b.length){Promise.all(b).then(()=>m(null,v,!0));return}}for(let b of v)b&&(!s||s(b))&&(a.write(n?b:b.fullpath())||(p=!0));l--;for(let b of v){let y=b.realpathCached()||b;y.shouldWalk(c,o)&&u.push(y)}p&&!a.flowing?a.once("drain",d):h||d()},h=!0;f.readdirCB(m,!0),h=!1}};return d(),a}streamSync(e=this.cwd,r={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof qr||(r=e,e=this.cwd);let{withFileTypes:n=!0,follow:i=!1,filter:s,walkFilter:o}=r,a=new To({objectMode:!0}),c=new Set;(!s||s(e))&&a.write(n?e:e.fullpath());let u=[e],l=0,d=()=>{let p=!1;for(;!p;){let f=u.shift();if(!f){l===0&&a.end();return}l++,c.add(f);let m=f.readdirSync();for(let h of m)(!s||s(h))&&(a.write(n?h:h.fullpath())||(p=!0));l--;for(let h of m){let g=h;if(h.isSymbolicLink()){if(!(i&&(g=h.realpathSync())))continue;g.isUnknown()&&g.lstatSync()}g.shouldWalk(c,o)&&u.push(g)}}p&&!a.flowing&&a.once("drain",d)};return d(),a}chdir(e=this.cwd){let r=this.cwd;this.cwd=typeof e=="string"?this.cwd.resolve(e):e,this.cwd[d5](r)}},Gu=class extends Ky{sep="\\";constructor(e=process.cwd(),r={}){let{nocase:n=!0}=r;super(e,Bu.win32,"\\",{...r,nocase:n}),this.nocase=n;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(e){return Bu.win32.parse(e).root.toUpperCase()}newRoot(e){return new Wy(this.rootPath,ts,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")||e.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(e)}},Wu=class extends Ky{sep="/";constructor(e=process.cwd(),r={}){let{nocase:n=!1}=r;super(e,Bu.posix,"/",{...r,nocase:n}),this.nocase=n}parseRootPath(e){return"/"}newRoot(e){return new Vy(this.rootPath,ts,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")}},$f=class extends Wu{constructor(e=process.cwd(),r={}){let{nocase:n=!0}=r;super(e,{...r,nocase:n})}},kUe=process.platform==="win32"?Wy:Vy,p5=process.platform==="win32"?Gu:process.platform==="darwin"?$f:Wu;var Vbe=t=>t.length>=1,Kbe=t=>t.length>=1,Vu=class t{#e;#r;#s;length;#i;#o;#b;#v;#l;#a;#p=!0;constructor(e,r,n,i){if(!Vbe(e))throw new TypeError("empty pattern list");if(!Kbe(r))throw new TypeError("empty glob list");if(r.length!==e.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=e.length,n<0||n>=this.length)throw new TypeError("index out of range");if(this.#e=e,this.#r=r,this.#s=n,this.#i=i,this.#s===0){if(this.isUNC()){let[s,o,a,c,...u]=this.#e,[l,d,p,f,...m]=this.#r;u[0]===""&&(u.shift(),m.shift());let h=[s,o,a,c,""].join("/"),g=[l,d,p,f,""].join("/");this.#e=[h,...u],this.#r=[g,...m],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[s,...o]=this.#e,[a,...c]=this.#r;o[0]===""&&(o.shift(),c.shift());let u=s+"/",l=a+"/";this.#e=[u,...o],this.#r=[l,...c],this.length=this.#e.length}}}pattern(){return this.#e[this.#s]}isString(){return typeof this.#e[this.#s]=="string"}isGlobstar(){return this.#e[this.#s]===Ir}isRegExp(){return this.#e[this.#s]instanceof RegExp}globString(){return this.#b=this.#b||(this.#s===0?this.isAbsolute()?this.#r[0]+this.#r.slice(1).join("/"):this.#r.join("/"):this.#r.slice(this.#s).join("/"))}hasMore(){return this.length>this.#s+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new t(this.#e,this.#r,this.#s+1,this.#i),this.#o.#a=this.#a,this.#o.#l=this.#l,this.#o.#v=this.#v,this.#o):this.#o=null}isUNC(){let e=this.#e;return this.#l!==void 0?this.#l:this.#l=this.#i==="win32"&&this.#s===0&&e[0]===""&&e[1]===""&&typeof e[2]=="string"&&!!e[2]&&typeof e[3]=="string"&&!!e[3]}isDrive(){let e=this.#e;return this.#v!==void 0?this.#v:this.#v=this.#i==="win32"&&this.#s===0&&this.length>1&&typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0])}isAbsolute(){let e=this.#e;return this.#a!==void 0?this.#a:this.#a=e[0]===""&&e.length>1||this.isDrive()||this.isUNC()}root(){let e=this.#e[0];return typeof e=="string"&&this.isAbsolute()&&this.#s===0?e:""}checkFollowGlobstar(){return!(this.#s===0||!this.isGlobstar()||!this.#p)}markFollowGlobstar(){return this.#s===0||!this.isGlobstar()||!this.#p?!1:(this.#p=!1,!0)}};var Jbe=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Ku=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(e,{nobrace:r,nocase:n,noext:i,noglobstar:s,platform:o=Jbe}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=o,this.mmopts={dot:!0,nobrace:r,nocase:n,noext:i,noglobstar:s,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let a of e)this.add(a)}add(e){let r=new Pn(e,this.mmopts);for(let n=0;n[e,!!(r&2),!!(r&1)])}},MI=class{store=new Map;add(e,r){if(!e.canReaddir())return;let n=this.store.get(e);n?n.find(i=>i.globString()===r.globString())||n.push(r):this.store.set(e,[r])}get(e){let r=this.store.get(e);if(!r)throw new Error("attempting to walk unknown path");return r}entries(){return this.keys().map(e=>[e,this.store.get(e)])}keys(){return[...this.store.keys()].filter(e=>e.canReaddir())}},If=class t{hasWalkedCache;matches=new NI;subwalks=new MI;patterns;follow;dot;opts;constructor(e,r){this.opts=e,this.follow=!!e.follow,this.dot=!!e.dot,this.hasWalkedCache=r?r.copy():new AI}processPatterns(e,r){this.patterns=r;let n=r.map(i=>[e,i]);for(let[i,s]of n){this.hasWalkedCache.storeWalked(i,s);let o=s.root(),a=s.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let d=s.rest();if(d)s=d;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let c,u,l=!1;for(;typeof(c=s.pattern())=="string"&&(u=s.rest());)i=i.resolve(c),s=u,l=!0;if(c=s.pattern(),u=s.rest(),l){if(this.hasWalkedCache.hasWalked(i,s))continue;this.hasWalkedCache.storeWalked(i,s)}if(typeof c=="string"){let d=c===".."||c===""||c===".";this.matches.add(i.resolve(c),a,d);continue}else if(c===Ir){(!i.isSymbolicLink()||this.follow||s.checkFollowGlobstar())&&this.subwalks.add(i,s);let d=u?.pattern(),p=u?.rest();if(!u||(d===""||d===".")&&!p)this.matches.add(i,a,d===""||d===".");else if(d===".."){let f=i.parent||i;p?this.hasWalkedCache.hasWalked(f,p)||this.subwalks.add(f,p):this.matches.add(f,a,!0)}}else c instanceof RegExp&&this.subwalks.add(i,s)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new t(this.opts,this.hasWalkedCache)}filterEntries(e,r){let n=this.subwalks.get(e),i=this.child();for(let s of r)for(let o of n){let a=o.isAbsolute(),c=o.pattern(),u=o.rest();c===Ir?i.testGlobstar(s,o,u,a):c instanceof RegExp?i.testRegExp(s,c,u,a):i.testString(s,c,u,a)}return i}testGlobstar(e,r,n,i){if((this.dot||!e.name.startsWith("."))&&(r.hasMore()||this.matches.add(e,i,!1),e.canReaddir()&&(this.follow||!e.isSymbolicLink()?this.subwalks.add(e,r):e.isSymbolicLink()&&(n&&r.checkFollowGlobstar()?this.subwalks.add(e,n):r.markFollowGlobstar()&&this.subwalks.add(e,r)))),n){let s=n.pattern();if(typeof s=="string"&&s!==".."&&s!==""&&s!==".")this.testString(e,s,n.rest(),i);else if(s===".."){let o=e.parent||e;this.subwalks.add(o,n)}else s instanceof RegExp&&this.testRegExp(e,s,n.rest(),i)}}testRegExp(e,r,n,i){r.test(e.name)&&(n?this.subwalks.add(e,n):this.matches.add(e,i,!1))}testString(e,r,n,i){e.isNamed(r)&&(n?this.subwalks.add(e,n):this.matches.add(e,i,!1))}};var Xbe=(t,e)=>typeof t=="string"?new Ku([t],e):Array.isArray(t)?new Ku(t,e):t,Jy=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#r;#s;signal;maxDepth;includeChildMatches;constructor(e,r,n){if(this.patterns=e,this.path=r,this.opts=n,this.#s=!n.posix&&n.platform==="win32"?"\\":"/",this.includeChildMatches=n.includeChildMatches!==!1,(n.ignore||!this.includeChildMatches)&&(this.#r=Xbe(n.ignore??[],n),!this.includeChildMatches&&typeof this.#r.add!="function")){let i="cannot ignore child matches, ignore lacks add() method.";throw new Error(i)}this.maxDepth=n.maxDepth||1/0,n.signal&&(this.signal=n.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#i(e){return this.seen.has(e)||!!this.#r?.ignored?.(e)}#o(e){return!!this.#r?.childrenIgnored?.(e)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let e;for(;!this.paused&&(e=this.#e.shift());)e()}onResume(e){this.signal?.aborted||(this.paused?this.#e.push(e):e())}async matchCheck(e,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=e.realpathCached()||await e.realpath(),!n)return;e=n}let s=e.isUnknown()||this.opts.stat?await e.lstat():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let o=await s.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(s,r)}matchCheckTest(e,r){return e&&(this.maxDepth===1/0||e.depth()<=this.maxDepth)&&(!r||e.canReaddir())&&(!this.opts.nodir||!e.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!e.isSymbolicLink()||!e.realpathCached()?.isDirectory())&&!this.#i(e)?e:void 0}matchCheckSync(e,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=e.realpathCached()||e.realpathSync(),!n)return;e=n}let s=e.isUnknown()||this.opts.stat?e.lstatSync():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let o=s.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(s,r)}matchFinish(e,r){if(this.#i(e))return;if(!this.includeChildMatches&&this.#r?.add){let s=`${e.relativePosix()}/**`;this.#r.add(s)}let n=this.opts.absolute===void 0?r:this.opts.absolute;this.seen.add(e);let i=this.opts.mark&&e.isDirectory()?this.#s:"";if(this.opts.withFileTypes)this.matchEmit(e);else if(n){let s=this.opts.posix?e.fullpathPosix():e.fullpath();this.matchEmit(s+i)}else{let s=this.opts.posix?e.relativePosix():e.relative(),o=this.opts.dotRelative&&!s.startsWith(".."+this.#s)?"."+this.#s:"";this.matchEmit(s?o+s+i:"."+i)}}async match(e,r,n){let i=await this.matchCheck(e,n);i&&this.matchFinish(i,r)}matchSync(e,r,n){let i=this.matchCheckSync(e,n);i&&this.matchFinish(i,r)}walkCB(e,r,n){this.signal?.aborted&&n(),this.walkCB2(e,r,new If(this.opts),n)}walkCB2(e,r,n,i){if(this.#o(e))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(e,r,n,i));return}n.processPatterns(e,r);let s=1,o=()=>{--s===0&&i()};for(let[a,c,u]of n.matches.entries())this.#i(a)||(s++,this.match(a,c,u).then(()=>o()));for(let a of n.subwalkTargets()){if(this.maxDepth!==1/0&&a.depth()>=this.maxDepth)continue;s++;let c=a.readdirCached();a.calledReaddir()?this.walkCB3(a,c,n,o):a.readdirCB((u,l)=>this.walkCB3(a,l,n,o),!0)}o()}walkCB3(e,r,n,i){n=n.filterEntries(e,r);let s=1,o=()=>{--s===0&&i()};for(let[a,c,u]of n.matches.entries())this.#i(a)||(s++,this.match(a,c,u).then(()=>o()));for(let[a,c]of n.subwalks.entries())s++,this.walkCB2(a,c,n.child(),o);o()}walkCBSync(e,r,n){this.signal?.aborted&&n(),this.walkCB2Sync(e,r,new If(this.opts),n)}walkCB2Sync(e,r,n,i){if(this.#o(e))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(e,r,n,i));return}n.processPatterns(e,r);let s=1,o=()=>{--s===0&&i()};for(let[a,c,u]of n.matches.entries())this.#i(a)||this.matchSync(a,c,u);for(let a of n.subwalkTargets()){if(this.maxDepth!==1/0&&a.depth()>=this.maxDepth)continue;s++;let c=a.readdirSync();this.walkCB3Sync(a,c,n,o)}o()}walkCB3Sync(e,r,n,i){n=n.filterEntries(e,r);let s=1,o=()=>{--s===0&&i()};for(let[a,c,u]of n.matches.entries())this.#i(a)||this.matchSync(a,c,u);for(let[a,c]of n.subwalks.entries())s++,this.walkCB2Sync(a,c,n.child(),o);o()}},Rf=class extends Jy{matches=new Set;constructor(e,r,n){super(e,r,n)}matchEmit(e){this.matches.add(e)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((e,r)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?r(this.signal.reason):e(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},Of=class extends Jy{results;constructor(e,r,n){super(e,r,n),this.results=new To({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(e){this.results.write(e),this.results.flowing||this.pause()}stream(){let e=this.path;return e.isUnknown()?e.lstat().then(()=>{this.walkCB(e,this.patterns,()=>this.results.end())}):this.walkCB(e,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var Ybe=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",$i=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(e,r){if(!r)throw new TypeError("glob options required");if(this.withFileTypes=!!r.withFileTypes,this.signal=r.signal,this.follow=!!r.follow,this.dot=!!r.dot,this.dotRelative=!!r.dotRelative,this.nodir=!!r.nodir,this.mark=!!r.mark,r.cwd?(r.cwd instanceof URL||r.cwd.startsWith("file://"))&&(r.cwd=(0,f5.fileURLToPath)(r.cwd)):this.cwd="",this.cwd=r.cwd||"",this.root=r.root,this.magicalBraces=!!r.magicalBraces,this.nobrace=!!r.nobrace,this.noext=!!r.noext,this.realpath=!!r.realpath,this.absolute=r.absolute,this.includeChildMatches=r.includeChildMatches!==!1,this.noglobstar=!!r.noglobstar,this.matchBase=!!r.matchBase,this.maxDepth=typeof r.maxDepth=="number"?r.maxDepth:1/0,this.stat=!!r.stat,this.ignore=r.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof e=="string"&&(e=[e]),this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(e=e.map(c=>c.replace(/\\/g,"/"))),this.matchBase){if(r.noglobstar)throw new TypeError("base matching requires globstar");e=e.map(c=>c.includes("/")?c:`./**/${c}`)}if(this.pattern=e,this.platform=r.platform||Ybe,this.opts={...r,platform:this.platform},r.scurry){if(this.scurry=r.scurry,r.nocase!==void 0&&r.nocase!==r.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let c=r.platform==="win32"?Gu:r.platform==="darwin"?$f:r.platform?Wu:p5;this.scurry=new c(this.cwd,{nocase:r.nocase,fs:r.fs})}this.nocase=this.scurry.nocase;let n=this.platform==="darwin"||this.platform==="win32",i={...r,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:n,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},s=this.pattern.map(c=>new Pn(c,i)),[o,a]=s.reduce((c,u)=>(c[0].push(...u.set),c[1].push(...u.globParts),c),[[],[]]);this.patterns=o.map((c,u)=>{let l=a[u];if(!l)throw new Error("invalid pattern object");return new Vu(c,l,0,this.platform)})}async walk(){return[...await new Rf(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new Rf(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new Of(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new Of(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};var DI=(t,e={})=>{Array.isArray(t)||(t=[t]);for(let r of t)if(new Pn(r,e).hasMagic())return!0;return!1};function Xy(t,e={}){return new $i(t,e).streamSync()}function g5(t,e={}){return new $i(t,e).stream()}function Cf(t,e={}){return new $i(t,e).walkSync()}async function m5(t,e={}){return new $i(t,e).walk()}function Yy(t,e={}){return new $i(t,e).iterateSync()}function v5(t,e={}){return new $i(t,e).iterate()}var Qbe=Xy,eSe=Object.assign(g5,{sync:Xy}),tSe=Yy,rSe=Object.assign(v5,{sync:Yy}),nSe=Object.assign(Cf,{stream:Xy,iterate:Yy}),h5=Object.assign(m5,{glob:m5,globSync:Cf,sync:nSe,globStream:g5,stream:eSe,globStreamSync:Xy,streamSync:Qbe,globIterate:v5,iterate:rSe,globIterateSync:Yy,iterateSync:tSe,Glob:$i,hasMagic:DI,escape:Fu,unescape:Ei});h5.glob=h5;re();var Ju=require("fs"),Qy=require("os"),Pf=require("path"),e_=(0,Pf.join)((0,Qy.homedir)(),".claude-mem","transcript-watch.json"),iSe=(0,Pf.join)((0,Qy.homedir)(),".claude-mem","transcript-watch-state.json");function Aa(t){return t&&(t.startsWith("~")?(0,Pf.join)((0,Qy.homedir)(),t.slice(1)):t)}function y5(t=e_){let e=Aa(t);if(!(0,Ju.existsSync)(e))throw new Error(`Transcript watch config not found: ${e}`);let r=(0,Ju.readFileSync)(e,"utf-8"),n=JSON.parse(r);if(!n.version||!n.watches)throw new Error(`Invalid transcript watch config: ${e}`);return n.stateFile||(n.stateFile=iSe),n}var Fs=require("fs"),_5=require("path");re();function b5(t){try{if(!(0,Fs.existsSync)(t))return{offsets:{}};let e=(0,Fs.readFileSync)(t,"utf-8"),r=JSON.parse(e);return r.offsets?r:{offsets:{}}}catch(e){return _.warn("TRANSCRIPT","Failed to load watch state, starting fresh",{statePath:t,error:e instanceof Error?e.message:String(e)}),{offsets:{}}}}function S5(t,e){try{let r=(0,_5.dirname)(t);(0,Fs.existsSync)(r)||(0,Fs.mkdirSync)(r,{recursive:!0}),(0,Fs.writeFileSync)(t,JSON.stringify(e,null,2))}catch(r){_.warn("TRANSCRIPT","Failed to save watch state",{statePath:t,error:r instanceof Error?r.message:String(r)})}}r_();n_();i_();s_();Dr();re();lf();var Ii=require("fs"),o_=require("path");re();function w5(t,e){if(!t)return;let r=(0,o_.resolve)(t);if(r.includes("/.git/")||r.includes("\\.git\\")||r.endsWith("/.git")||r.endsWith("\\.git"))return;let n=(0,o_.dirname)(t);(0,Ii.existsSync)(n)||(0,Ii.mkdirSync)(n,{recursive:!0});let i="";(0,Ii.existsSync)(t)&&(i=(0,Ii.readFileSync)(t,"utf-8"));let s=`# Memory Context + +${e}`,o=n$(i,s),a=`${t}.tmp`;try{(0,Ii.writeFileSync)(a,o),(0,Ii.renameSync)(a,t)}catch(c){_.error("AGENTS_MD","Failed to write AGENTS.md",{agentsPath:t},c)}}function oSe(t){let e=t.trim().replace(/^\$\.?/,"");if(!e)return[];let r=[],n=e.split(".");for(let i of n){let s=/([^[\]]+)|\[(\d+)\]/g,o;for(;(o=s.exec(i))!==null;)o[1]?r.push(o[1]):o[2]&&r.push(parseInt(o[2],10))}return r}function zI(t,e){if(!e)return;let r=oSe(e),n=t;for(let i of r){if(n==null)return;n=n[i]}return n}function E5(t){return t==null||t===""}function k5(t,e){if(t.startsWith("$watch.")){let r=t.slice(7);return e.watch[r]}if(t.startsWith("$schema.")){let r=t.slice(8);return e.schema[r]}if(t.startsWith("$session.")){let r=t.slice(9);return e.session?e.session[r]:void 0}if(t==="$cwd")return e.watch.workspace;if(t==="$project")return e.watch.project}function Xu(t,e,r){if(t!==void 0){if(typeof t=="string"){let n=k5(t,r);return n!==void 0?n:zI(e,t)}if(t.coalesce&&Array.isArray(t.coalesce))for(let n of t.coalesce){let i=Xu(n,e,r);if(!E5(i))return i}if(t.path){let n=k5(t.path,r);if(n!==void 0)return n;let i=zI(e,t.path);if(!E5(i))return i}if(t.value!==void 0)return t.value;if(t.default!==void 0)return t.default}}function T5(t,e,r){let n={};if(!t)return n;for(let[i,s]of Object.entries(t))n[i]=Xu(s,e,r);return n}function $5(t,e,r){if(!e)return!0;let n=e.path||r.eventTypePath||"type",i=n?zI(t,n):void 0;if(e.exists&&(i==null||i===""))return!1;if(e.equals!==void 0)return i===e.equals;if(e.in&&Array.isArray(e.in))return e.in.includes(i);if(e.contains!==void 0)return typeof i=="string"&&i.includes(e.contains);if(e.regex)try{return new RegExp(e.regex).test(String(i??""))}catch{return!1}return!0}var a_=class{sessions=new Map;async processEntry(e,r,n,i){for(let s of n.events)$5(e,s.match,n)&&await this.handleEvent(e,r,n,s,i??void 0)}getSessionKey(e,r){return`${e.name}:${r}`}getOrCreateSession(e,r){let n=this.getSessionKey(e,r),i=this.sessions.get(n);return i||(i={sessionId:r,pendingTools:new Map},this.sessions.set(n,i)),i}resolveSessionId(e,r,n,i,s){let o={watch:r,schema:n},a=i.fields?.sessionId??(n.sessionIdPath?{path:n.sessionIdPath}:void 0),c=Xu(a,e,o);return typeof c=="string"&&c.trim()?c:typeof c=="number"?String(c):s&&s.trim()?s:null}resolveCwd(e,r,n,i,s){let o={watch:r,schema:n,session:s},a=i.fields?.cwd??(n.cwdPath?{path:n.cwdPath}:void 0),c=Xu(a,e,o);return typeof c=="string"&&c.trim()?c:r.workspace?r.workspace:s.cwd}resolveProject(e,r,n,i,s){let o={watch:r,schema:n,session:s},a=i.fields?.project??(n.projectPath?{path:n.projectPath}:void 0),c=Xu(a,e,o);return typeof c=="string"&&c.trim()?c:r.project?r.project:s.cwd?Ta(s.cwd):s.project}async handleEvent(e,r,n,i,s){let o=this.resolveSessionId(e,r,n,i,s);if(!o){_.debug("TRANSCRIPT","Skipping event without sessionId",{event:i.name,watch:r.name});return}let a=this.getOrCreateSession(r,o),c=this.resolveCwd(e,r,n,i,a);c&&(a.cwd=c);let u=this.resolveProject(e,r,n,i,a);u&&(a.project=u);let l=T5(i.fields,e,{watch:r,schema:n,session:a});switch(i.action){case"session_context":this.applySessionContext(a,l);break;case"session_init":await this.handleSessionInit(a,l),r.context?.updateOn?.includes("session_start")&&await this.updateContext(a,r);break;case"user_message":typeof l.message=="string"&&(a.lastUserMessage=l.message),typeof l.prompt=="string"&&(a.lastUserMessage=l.prompt);break;case"assistant_message":typeof l.message=="string"&&(a.lastAssistantMessage=l.message);break;case"tool_use":await this.handleToolUse(a,l);break;case"tool_result":await this.handleToolResult(a,l);break;case"observation":await this.sendObservation(a,l);break;case"file_edit":await this.sendFileEdit(a,l);break;case"session_end":await this.handleSessionEnd(a,r);break;default:break}}applySessionContext(e,r){let n=typeof r.cwd=="string"?r.cwd:void 0,i=typeof r.project=="string"?r.project:void 0;n&&(e.cwd=n),i&&(e.project=i)}async handleSessionInit(e,r){let n=typeof r.prompt=="string"?r.prompt:"",i=e.cwd??process.cwd();n&&(e.lastUserMessage=n),await Af.execute({sessionId:e.sessionId,cwd:i,prompt:n,platform:"transcript"})}async handleToolUse(e,r){let n=typeof r.toolId=="string"?r.toolId:void 0,i=typeof r.toolName=="string"?r.toolName:void 0,s=this.maybeParseJson(r.toolInput),o=this.maybeParseJson(r.toolResponse),a={id:n,name:i,input:s,response:o};if(n&&e.pendingTools.set(n,{name:a.name,input:a.input}),i==="apply_patch"&&typeof s=="string"){let c=this.parseApplyPatchFiles(s);for(let u of c)await this.sendFileEdit(e,{filePath:u,edits:[{type:"apply_patch",patch:s}]})}o!==void 0&&i&&await this.sendObservation(e,{toolName:i,toolInput:s,toolResponse:o})}async handleToolResult(e,r){let n=typeof r.toolId=="string"?r.toolId:void 0,i=typeof r.toolName=="string"?r.toolName:void 0,s=this.maybeParseJson(r.toolResponse),o=this.maybeParseJson(r.toolInput),a=i;if(n&&e.pendingTools.has(n)){let c=e.pendingTools.get(n);o=c.input??o,a=a??c.name,e.pendingTools.delete(n)}a&&await this.sendObservation(e,{toolName:a,toolInput:o,toolResponse:s})}async sendObservation(e,r){let n=typeof r.toolName=="string"?r.toolName:void 0;n&&await Nf.execute({sessionId:e.sessionId,cwd:e.cwd??process.cwd(),toolName:n,toolInput:this.maybeParseJson(r.toolInput),toolResponse:this.maybeParseJson(r.toolResponse),platform:"transcript"})}async sendFileEdit(e,r){let n=typeof r.filePath=="string"?r.filePath:void 0;n&&await Mf.execute({sessionId:e.sessionId,cwd:e.cwd??process.cwd(),filePath:n,edits:Array.isArray(r.edits)?r.edits:void 0,platform:"transcript"})}maybeParseJson(e){if(typeof e!="string")return e;let r=e.trim();if(!r||!(r.startsWith("{")||r.startsWith("[")))return e;try{return JSON.parse(r)}catch{return e}}parseApplyPatchFiles(e){let r=[],n=e.split(` +`);for(let i of n){let s=i.trim();if(s.startsWith("*** Update File: "))r.push(s.replace("*** Update File: ","").trim());else if(s.startsWith("*** Add File: "))r.push(s.replace("*** Add File: ","").trim());else if(s.startsWith("*** Delete File: "))r.push(s.replace("*** Delete File: ","").trim());else if(s.startsWith("*** Move to: "))r.push(s.replace("*** Move to: ","").trim());else if(s.startsWith("+++ ")){let o=s.replace("+++ ","").replace(/^b\//,"").trim();o&&o!=="/dev/null"&&r.push(o)}}return Array.from(new Set(r))}async handleSessionEnd(e,r){await this.queueSummary(e),await Df.execute({sessionId:e.sessionId,cwd:e.cwd??process.cwd(),platform:"transcript"}),await this.updateContext(e,r),e.pendingTools.clear();let n=this.getSessionKey(r,e.sessionId);this.sessions.delete(n)}async queueSummary(e){if(!await kr())return;let n=e.lastAssistantMessage??"";try{await dt("/api/sessions/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:e.sessionId,last_assistant_message:n})})}catch(i){_.warn("TRANSCRIPT","Summary request failed",{error:i instanceof Error?i.message:String(i)})}}async updateContext(e,r){if(!r.context||r.context.mode!=="agents"||!await kr())return;let i=e.cwd??r.workspace;if(!i)return;let o=xy(i).allProjects.join(",");try{let a=await dt(`/api/context/inject?projects=${encodeURIComponent(o)}`);if(!a.ok)return;let c=(await a.text()).trim();if(!c)return;let u=Aa(r.context.path??`${i}/AGENTS.md`);w5(u,c),_.debug("TRANSCRIPT","Updated AGENTS.md context",{agentsPath:u,watch:r.name})}catch(a){_.warn("TRANSCRIPT","Failed to update AGENTS.md context",{error:a instanceof Error?a.message:String(a)})}}};var LI=class{constructor(e,r,n,i){this.filePath=e;this.onLine=n;this.onOffset=i;this.tailState={offset:r,partial:""}}watcher=null;tailState;start(){this.readNewData().catch(()=>{}),this.watcher=(0,Ri.watch)(this.filePath,{persistent:!0},()=>{this.readNewData().catch(()=>{})})}close(){this.watcher?.close(),this.watcher=null}async readNewData(){if(!(0,Ri.existsSync)(this.filePath))return;let e=0;try{e=(0,Ri.statSync)(this.filePath).size}catch{return}if(e{let a=this.resolveWatchFiles(n);for(let c of a)this.tailers.has(c)||await this.addTailer(c,e,r)},s);this.rescanTimers.push(o)}resolveSchema(e){return typeof e.schema=="string"?this.config.schemas?.[e.schema]??null:e.schema}resolveWatchFiles(e){if(this.hasGlob(e))return Cf(e,{nodir:!0,absolute:!0});if((0,Ri.existsSync)(e))try{if((0,Ri.statSync)(e).isDirectory()){let n=(0,u_.join)(e,"**","*.jsonl");return Cf(n,{nodir:!0,absolute:!0})}return[e]}catch{return[]}return[]}hasGlob(e){return/[*?[\]{}()]/.test(e)}async addTailer(e,r,n){if(this.tailers.has(e))return;let i=this.extractSessionIdFromPath(e),s=this.state.offsets[e]??0;if(s===0&&r.startAtEnd)try{s=(0,Ri.statSync)(e).size}catch{s=0}let o=new LI(e,s,async a=>{await this.handleLine(a,r,n,e,i)},a=>{this.state.offsets[e]=a,S5(this.statePath,this.state)});o.start(),this.tailers.set(e,o),_.info("TRANSCRIPT","Watching transcript file",{file:e,watch:r.name,schema:n.name})}async handleLine(e,r,n,i,s){try{let o=JSON.parse(e);await this.processor.processEntry(o,r,n,s??void 0)}catch(o){_.debug("TRANSCRIPT","Failed to parse transcript line",{watch:r.name,file:(0,u_.basename)(i)},o)}}extractSessionIdFromPath(e){let r=e.match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i);return r?r[0]:null}};var DSe={},ISe=120*1e3;function XI(){return JI.default.join(Se.get("CLAUDE_MEM_DATA_DIR"),".worker-start-attempted")}function RSe(){if(process.platform!=="win32")return!1;let t=XI();if(!(0,ns.existsSync)(t))return!1;try{let e=(0,ns.statSync)(t).mtimeMs;return Date.now()-e{this.resolveInitialization=e}),this.dbManager=new bv,this.sessionManager=new Ev(this.dbManager),this.sseBroadcaster=new kv,this.sdkAgent=new ny(this.dbManager,this.sessionManager),this.geminiAgent=new iy(this.dbManager,this.sessionManager),this.openRouterAgent=new ay(this.dbManager,this.sessionManager),this.paginationHelper=new cy(this.dbManager),this.settingsManager=new uy(this.dbManager),this.sessionEventBroadcaster=new fy(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new Ec({name:"worker-search-proxy",version:PSe},{capabilities:{}}),this.server=new gv({getInitializationComplete:()=>this.initializationCompleteFlag,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown(),workerPath:__filename,getAiStatus:()=>{let e="claude";return Du()&&Ea()?e="openrouter":Mu()&&wa()&&(e="gemini"),{provider:e,authMethod:Xh(),lastInteraction:this.lastAiInteraction?{timestamp:this.lastAiInteraction.timestamp,success:this.lastAiInteraction.success,...this.lastAiInteraction.error&&{error:this.lastAiInteraction.error}}:null}}}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){$M(async()=>{this.isShuttingDown=!0,await this.shutdown()})}registerRoutes(){this.server.app.get("/api/context/inject",async(e,r,n)=>{if(!this.initializationCompleteFlag||!this.searchRoutes){_.warn("SYSTEM","Context requested before initialization complete, returning empty"),r.status(200).json({content:[{type:"text",text:""}]});return}n()}),this.server.app.use("/api",async(e,r,n)=>{if(this.initializationCompleteFlag){n();return}let i=3e4,s=new Promise((o,a)=>setTimeout(()=>a(new Error("Database initialization timeout")),i));try{await Promise.race([this.initializationComplete,s]),n()}catch(o){_.error("HTTP",`Request to ${e.method} ${e.path} rejected \u2014 DB not initialized`,{},o),r.status(503).json({error:"Service initializing",message:"Database is still initializing, please retry"})}}),this.server.registerRoutes(new hy(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new yy(this.sessionManager,this.dbManager,this.sdkAgent,this.geminiAgent,this.openRouterAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new _y(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime)),this.server.registerRoutes(new Oy(this.settingsManager)),this.server.registerRoutes(new Py),this.server.registerRoutes(new Ay(this.dbManager,"claude-mem"))}async start(){let e=Jr(),r=SE();await kM(),await this.server.listen(e,r),zM({pid:process.pid,port:e,startedAt:new Date().toISOString()}),vt().registerProcess("worker",{pid:process.pid,type:"worker",startedAt:new Date().toISOString()}),_.info("SYSTEM","Worker started",{host:r,port:e,pid:process.pid}),this.initializeBackground().catch(n=>{_.error("SYSTEM","Background initialization failed",{},n)})}async initializeBackground(){try{await LM();let{ModeManager:e}=await Promise.resolve().then(()=>(Qr(),N6)),{SettingsDefaultsManager:r}=await Promise.resolve().then(()=>(rr(),eM)),{USER_SETTINGS_PATH:n}=await Promise.resolve().then(()=>(zt(),cM)),i=r.loadFromFile(n);(i.CLAUDE_MEM_MODE==="local"||!i.CLAUDE_MEM_MODE)&&UM(),i.CLAUDE_MEM_CHROMA_ENABLED!=="false"?(this.chromaMcpManager=ws.getInstance(),_.info("SYSTEM","ChromaMcpManager initialized (lazy - connects on first use)")):_.info("SYSTEM","Chroma disabled via CLAUDE_MEM_CHROMA_ENABLED=false, skipping ChromaMcpManager");let o=i.CLAUDE_MEM_MODE;e.getInstance().loadMode(o),_.info("SYSTEM",`Mode loaded: ${o}`),await this.dbManager.initialize();let{PendingMessageStore:a}=await Promise.resolve().then(()=>(ha(),ou)),u=new a(this.dbManager.getSessionStore().db,3).resetStaleProcessingMessages(0);u>0&&_.info("SYSTEM",`Reset ${u} stale processing messages to pending`);let l=new dy,d=new py,p=new ly(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getChromaSync(),l,d);if(this.searchRoutes=new $y(p),this.server.registerRoutes(this.searchRoutes),_.info("WORKER","SearchManager initialized and search routes registered"),this.initializationCompleteFlag=!0,this.resolveInitialization(),_.info("SYSTEM","Core initialization complete (DB + search ready)"),(0,ns.existsSync)(e_))try{let y=y5(e_);if(y.watches.length>0){let x=Aa(y.stateFile??"~/.claude-mem/transcript-watch-state.json");this.transcriptWatcher=new c_(y,x),await this.transcriptWatcher.start(),_.info("SYSTEM",`Transcript watcher started with ${y.watches.length} watch target(s)`)}}catch(y){_.warn("SYSTEM","Failed to start transcript watcher (non-fatal)",{},y)}this.chromaMcpManager&&Cc.backfillAllProjects().then(()=>{_.info("CHROMA_SYNC","Backfill check complete for all projects")}).catch(y=>{_.error("CHROMA_SYNC","Backfill failed (non-blocking)",{},y)});let f=JI.default.join(__dirname,"mcp-server.cjs");vt().assertCanSpawn("mcp server");let m=new $c({command:"node",args:[f],env:Ui(process.env)}),h=3e5,g=this.mcpClient.connect(m),v,S=new Promise((y,x)=>{v=setTimeout(()=>x(new Error("MCP connection timeout after 5 minutes")),h)});try{await Promise.race([g,S])}catch(y){clearTimeout(v),_.warn("WORKER","MCP server connection failed, cleaning up subprocess",{error:y instanceof Error?y.message:String(y)});try{await m.close()}catch{}throw y}clearTimeout(v);let b=m._process;b?.pid&&(vt().registerProcess("mcp-server",{pid:b.pid,type:"mcp",startedAt:new Date().toISOString()},b),b.once("exit",()=>{vt().unregisterProcess("mcp-server")})),this.mcpReady=!0,_.success("WORKER","MCP server connected"),this.stopOrphanReaper=P6(()=>{let y=new Set;for(let[x]of this.sessionManager.sessions)y.add(x);return y}),_.info("SYSTEM","Started orphan reaper (runs every 30 seconds)"),this.staleSessionReaperInterval=setInterval(async()=>{try{let y=await this.sessionManager.reapStaleSessions();y>0&&_.info("SYSTEM",`Reaped ${y} stale sessions`)}catch(y){_.error("SYSTEM","Stale session reaper error",{error:y instanceof Error?y.message:String(y)})}},120*1e3),this.processPendingQueues(50).then(y=>{y.sessionsStarted>0&&_.info("SYSTEM",`Auto-recovered ${y.sessionsStarted} sessions with pending work`,{totalPending:y.totalPendingSessions,started:y.sessionsStarted,sessionIds:y.startedSessionIds})}).catch(y=>{_.error("SYSTEM","Auto-recovery of pending queues failed",{},y)})}catch(e){throw _.error("SYSTEM","Background initialization failed",{},e),e}}getActiveAgent(){return Du()&&Ea()?this.openRouterAgent:Mu()&&wa()?this.geminiAgent:this.sdkAgent}startSessionProcessor(e,r){if(!e)return;let n=e.sessionDbId,i=this.getActiveAgent(),s=i.constructor.name;e.abortController.signal.aborted&&(_.debug("SYSTEM","Replacing aborted AbortController before starting generator",{sessionId:e.sessionDbId}),e.abortController=new AbortController);let o=!1,a=!1;_.info("SYSTEM",`Starting generator (${r}) using ${s}`,{sessionId:n}),e.lastGeneratorActivity=Date.now(),e.generatorPromise=i.startSession(e,this).catch(async c=>{let u=c?.message||"";if(["Claude executable not found","CLAUDE_CODE_PATH","ENOENT","spawn","Invalid API key","API_KEY_INVALID","API key expired","API key not valid","PERMISSION_DENIED","Gemini API error: 400","Gemini API error: 401","Gemini API error: 403","FOREIGN KEY constraint failed"].some(d=>u.includes(d))){o=!0,this.lastAiInteraction={timestamp:Date.now(),success:!1,provider:s,error:u},_.error("SDK","Unrecoverable generator error - will NOT restart",{sessionId:e.sessionDbId,project:e.project,errorMessage:u});return}if(this.isSessionTerminatedError(c))return _.warn("SDK","SDK resume failed, falling back to standalone processing",{sessionId:e.sessionDbId,project:e.project,reason:c instanceof Error?c.message:String(c)}),this.runFallbackForTerminatedSession(e,c);throw(u.includes("aborted by user")||u.includes("No conversation found"))&&e.memorySessionId&&(_.warn("SDK","Detected stale resume failure, clearing memorySessionId for fresh start",{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId,errorMessage:u}),this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,null),e.memorySessionId=null,e.forceInit=!0),_.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project,provider:s},c),a=!0,this.lastAiInteraction={timestamp:Date.now(),success:!1,provider:s,error:u},c}).finally(async()=>{let c=go(e.sessionDbId);if(c&&c.process.exitCode===null&&await vo(c,5e3),e.generatorPromise=null,!a&&!o&&(this.lastAiInteraction={timestamp:Date.now(),success:!0,provider:s}),o){this.terminateSession(e.sessionDbId,"unrecoverable_error");return}let l=this.sessionManager.getPendingMessageStore().getPendingCount(e.sessionDbId);if(e.idleTimedOut&&(e.idleTimedOut=!1,l===0)){this.terminateSession(e.sessionDbId,"idle_timeout");return}let d=3;if(l>0){if(e.consecutiveRestarts=(e.consecutiveRestarts||0)+1,e.consecutiveRestarts>d){_.error("SYSTEM","Exceeded max pending-work restarts, stopping to prevent infinite loop",{sessionId:e.sessionDbId,pendingCount:l,consecutiveRestarts:e.consecutiveRestarts}),e.consecutiveRestarts=0,this.terminateSession(e.sessionDbId,"max_restarts_exceeded");return}_.info("SYSTEM","Pending work remains after generator exit, restarting with fresh AbortController",{sessionId:e.sessionDbId,pendingCount:l,attempt:e.consecutiveRestarts}),e.abortController=new AbortController,this.startSessionProcessor(e,"pending-work-restart"),this.broadcastProcessingStatus()}else e.consecutiveRestarts=0,this.sessionManager.removeSessionImmediate(e.sessionDbId)})}isSessionTerminatedError(e){let n=(e instanceof Error?e.message:String(e)).toLowerCase();return n.includes("process aborted by user")||n.includes("processtransport")||n.includes("not ready for writing")||n.includes("session generator failed")||n.includes("claude code process")}async runFallbackForTerminatedSession(e,r){if(!e)return;let n=e.sessionDbId;if(!e.memorySessionId){let o=`fallback-${n}-${Date.now()}`;e.memorySessionId=o,this.dbManager.getSessionStore().updateMemorySessionId(n,o)}if(wa())try{await this.geminiAgent.startSession(e,this);return}catch(o){_.warn("SDK","Fallback Gemini failed, trying OpenRouter",{sessionId:n,error:o instanceof Error?o.message:String(o)})}if(Ea())try{await this.openRouterAgent.startSession(e,this);return}catch(o){_.warn("SDK","Fallback OpenRouter failed",{sessionId:n,error:o instanceof Error?o.message:String(o)})}let s=this.sessionManager.getPendingMessageStore().markAllSessionMessagesAbandoned(n);s>0&&_.warn("SDK","No fallback available; marked pending messages abandoned",{sessionId:n,abandoned:s}),this.sessionManager.removeSessionImmediate(n),this.sessionEventBroadcaster.broadcastSessionCompleted(n)}terminateSession(e,r){let i=this.sessionManager.getPendingMessageStore().markAllSessionMessagesAbandoned(e);_.info("SYSTEM","Session terminated",{sessionId:e,reason:r,abandonedMessages:i}),this.sessionManager.removeSessionImmediate(e)}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(ha(),ou)),n=new r(this.dbManager.getSessionStore().db,3),i=this.dbManager.getSessionStore(),s=360*60*1e3,o=Date.now()-s;try{let u=i.db.prepare(` SELECT id FROM sdk_sessions WHERE status = 'active' AND started_at_epoch < ? - `).all(o);if(u.length>0){let l=u.map(m=>m.id),d=l.map(()=>"?").join(",");i.db.prepare(` + `).all(o);if(u.length>0){let l=u.map(f=>f.id),d=l.map(()=>"?").join(",");i.db.prepare(` UPDATE sdk_sessions SET status = 'failed', completed_at_epoch = ? WHERE id IN (${d}) - `).run(Date.now(),...l),y.info("SYSTEM",`Marked ${l.length} stale sessions as failed`);let p=i.db.prepare(` + `).run(Date.now(),...l),_.info("SYSTEM",`Marked ${l.length} stale sessions as failed`);let p=i.db.prepare(` UPDATE pending_messages SET status = 'failed', failed_at_epoch = ? WHERE status = 'pending' AND session_db_id IN (${d}) - `).run(Date.now(),...l);p.changes>0&&y.info("SYSTEM",`Marked ${p.changes} pending messages from stale sessions as failed`)}}catch(u){y.error("SYSTEM","Failed to clean up stale sessions",{},u)}let a=n.getSessionsWithPendingMessages(),c={totalPendingSessions:a.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(a.length===0)return c;y.info("SYSTEM",`Processing up to ${e} of ${a.length} pending session queues`);for(let u of a){if(c.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(u)?.generatorPromise){c.sessionsSkipped++;continue}let d=this.sessionManager.initializeSession(u);y.info("SYSTEM",`Starting processor for session ${u}`,{project:d.project,pendingCount:n.getPendingCount(u)}),this.startSessionProcessor(d,"startup-recovery"),c.sessionsStarted++,c.startedSessionIds.push(u),await new Promise(p=>setTimeout(p,100))}catch(l){y.error("SYSTEM",`Failed to process session ${u}`,{},l),c.sessionsSkipped++}}return c}async shutdown(){this.stopOrphanReaper&&(this.stopOrphanReaper(),this.stopOrphanReaper=null),this.staleSessionReaperInterval&&(clearInterval(this.staleSessionReaperInterval),this.staleSessionReaperInterval=null),await XA({server:this.server.getHttpServer(),sessionManager:this.sessionManager,mcpClient:this.mcpClient,dbManager:this.dbManager,chromaMcpManager:this.chromaMcpManager||void 0})}broadcastProcessingStatus(){let e=this.sessionManager.getTotalActiveWork(),r=e>0,n=this.sessionManager.getActiveSessionCount();y.info("WORKER","Broadcasting processing status",{isProcessing:r,queueDepth:e,activeSessions:n}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:r,queueDepth:e})}};async function G9(t){if(BA()==="alive")return y.info("SYSTEM","Worker PID file points to a live process, skipping duplicate spawn"),await _o(t,es(_r.PORT_IN_USE_WAIT))?(y.info("SYSTEM","Worker became healthy while waiting on live PID"),!0):(y.warn("SYSTEM","Live PID detected but worker did not become healthy before timeout"),!1);if(await _o(t,1e3)){let o=await JA(t);if(o.matches)return y.info("SYSTEM","Worker already running and healthy"),!0;if(HA(15e3)){if(y.info("SYSTEM","Version mismatch detected but PID file is recent \u2014 another restart likely in progress, polling health",{pluginVersion:o.pluginVersion,workerVersion:o.workerVersion}),await _o(t,15e3))return y.info("SYSTEM","Worker became healthy after waiting for concurrent restart"),!0;y.warn("SYSTEM","Worker did not become healthy after waiting \u2014 proceeding with own restart")}if(y.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:o.pluginVersion,workerVersion:o.workerVersion}),await Wf(t),!await Gf(t,es(_r.PORT_IN_USE_WAIT)))return y.error("SYSTEM","Port did not free up after shutdown for version mismatch restart",{port:t}),!1;yo()}return await Gl(t)?(y.info("SYSTEM","Port in use, waiting for worker to become healthy"),await _o(t,es(_r.PORT_IN_USE_WAIT))?(y.info("SYSTEM","Worker is now healthy"),!0):(y.error("SYSTEM","Port in use but worker not responding to health checks"),!1)):Fge()?(y.warn("SYSTEM","Worker unavailable on Windows \u2014 skipping spawn (recent attempt failed within cooldown)"),!1):(y.info("SYSTEM","Starting worker daemon"),Hge(),Q0(__filename,t)===void 0?(y.error("SYSTEM","Failed to spawn worker daemon"),!1):await _o(t,es(_r.POST_SPAWN_WAIT))?(await KA(t,es(_r.READINESS_WAIT))||y.warn("SYSTEM","Worker is alive but readiness timed out \u2014 proceeding anyway"),Zge(),ZA(),y.info("SYSTEM","Worker started successfully"),!0):(yo(),y.error("SYSTEM","Worker failed to start (health check timeout)"),!1))}async function Vge(){let t=process.argv[2];(["start","hook","restart","--daemon"].includes(t)||t===void 0)&&Vf()&&process.exit(0);let r=Fr();function n(i,s){let o=W9(i,s);console.log(JSON.stringify(o)),process.exit(0)}switch(t){case"start":{await G9(r)?n("ready"):n("error","Failed to start worker");break}case"stop":{await Wf(r),await Gf(r,es(15e3))||y.warn("SYSTEM","Port did not free up after shutdown",{port:r}),yo(),y.info("SYSTEM","Worker stopped successfully"),process.exit(0);break}case"restart":{y.info("SYSTEM","Restarting worker"),await Wf(r),await Gf(r,es(15e3))||(y.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:r}),process.exit(0)),yo(),Q0(__filename,r)===void 0&&(y.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(0)),await _o(r,es(_r.POST_SPAWN_WAIT))||(yo(),y.error("SYSTEM","Worker failed to restart"),process.exit(0)),y.info("SYSTEM","Worker restarted successfully"),process.exit(0);break}case"status":{let i=await Gl(r),s=Y0();i&&s?(console.log("Worker is running"),console.log(` PID: ${s.pid}`),console.log(` Port: ${s.port}`),console.log(` Started: ${s.startedAt}`)):console.log("Worker is not running"),process.exit(0);break}case"cursor":{let i=process.argv[3],s=await gU(i,process.argv.slice(4));process.exit(s);break}case"hook":{let i=process.argv[3],s=process.argv[4];(!i||!s)&&(console.error("Usage: claude-mem hook "),console.error("Platforms: claude-code, cursor, raw"),console.error("Events: context, session-init, observation, summarize, session-complete"),process.exit(1)),await G9(r)||y.warn("SYSTEM","Worker failed to start before hook, handler will proceed gracefully");let{hookCommand:a}=await Promise.resolve().then(()=>(F9(),q9));await a(i,s);break}case"generate":{let i=process.argv.includes("--dry-run"),{generateClaudeMd:s}=await Promise.resolve().then(()=>(B$(),Z$)),o=await s(i);process.exit(o);break}case"clean":{let i=process.argv.includes("--dry-run"),{cleanClaudeMd:s}=await Promise.resolve().then(()=>(B$(),Z$)),o=await s(i);process.exit(o);break}default:{let i=Y0();i&&FA(i.pid)&&(y.info("SYSTEM","Worker already running (PID alive), refusing to start duplicate",{existingPid:i.pid,existingPort:i.port,startedAt:i.startedAt}),process.exit(0)),await Gl(r)&&(y.info("SYSTEM","Port already in use, refusing to start duplicate",{port:r}),process.exit(0)),process.on("unhandledRejection",o=>{y.error("SYSTEM","Unhandled rejection in daemon",{reason:o instanceof Error?o.message:String(o)})}),process.on("uncaughtException",o=>{y.error("SYSTEM","Uncaught exception in daemon",{},o)}),new xv().start().catch(o=>{y.failure("SYSTEM","Worker failed to start",{},o),yo(),process.exit(0)})}}}var Gge=typeof require<"u"&&typeof module<"u"?require.main===module||!module.parent:Kge.url===`file://${process.argv[1]}`||process.argv[1]?.endsWith("worker-service")||process.argv[1]?.endsWith("worker-service.cjs")||process.argv[1]?.replaceAll("\\","/")===__filename?.replaceAll("\\","/");Gge&&Vge().catch(t=>{y.error("SYSTEM","Fatal error in main",{},t instanceof Error?t:void 0),process.exit(0)});0&&(module.exports={WorkerService,buildStatusOutput,isPluginDisabledInClaudeSettings}); + `).run(Date.now(),...l);p.changes>0&&_.info("SYSTEM",`Marked ${p.changes} pending messages from stale sessions as failed`)}}catch(u){_.error("SYSTEM","Failed to clean up stale sessions",{},u)}let a=n.getSessionsWithPendingMessages(),c={totalPendingSessions:a.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(a.length===0)return c;_.info("SYSTEM",`Processing up to ${e} of ${a.length} pending session queues`);for(let u of a){if(c.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(u)?.generatorPromise){c.sessionsSkipped++;continue}let d=this.sessionManager.initializeSession(u);_.info("SYSTEM",`Starting processor for session ${u}`,{project:d.project,pendingCount:n.getPendingCount(u)}),this.startSessionProcessor(d,"startup-recovery"),c.sessionsStarted++,c.startedSessionIds.push(u),await new Promise(p=>setTimeout(p,100))}catch(l){_.error("SYSTEM",`Failed to process session ${u}`,{},l),c.sessionsSkipped++}}return c}async shutdown(){this.stopOrphanReaper&&(this.stopOrphanReaper(),this.stopOrphanReaper=null),this.staleSessionReaperInterval&&(clearInterval(this.staleSessionReaperInterval),this.staleSessionReaperInterval=null),this.transcriptWatcher&&(this.transcriptWatcher.stop(),this.transcriptWatcher=null,_.info("SYSTEM","Transcript watcher stopped")),await XM({server:this.server.getHttpServer(),sessionManager:this.sessionManager,mcpClient:this.mcpClient,dbManager:this.dbManager,chromaMcpManager:this.chromaMcpManager||void 0})}broadcastProcessingStatus(){let e=this.sessionManager.getTotalActiveWork(),r=e>0,n=this.sessionManager.getActiveSessionCount();_.info("WORKER","Broadcasting processing status",{isProcessing:r,queueDepth:e,activeSessions:n}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:r,queueDepth:e})}};async function eH(t){if(ZM()==="alive")return _.info("SYSTEM","Worker PID file points to a live process, skipping duplicate spawn"),await Yo(t,Ts(Er.PORT_IN_USE_WAIT))?(_.info("SYSTEM","Worker became healthy while waiting on live PID"),!0):(_.warn("SYSTEM","Live PID detected but worker did not become healthy before timeout"),!1);if(await Yo(t,1e3)){let o=await JM(t);if(o.matches)return _.info("SYSTEM","Worker already running and healthy"),!0;if(qM(15e3)){if(_.info("SYSTEM","Version mismatch detected but PID file is recent \u2014 another restart likely in progress, polling health",{pluginVersion:o.pluginVersion,workerVersion:o.workerVersion}),await Yo(t,15e3))return _.info("SYSTEM","Worker became healthy after waiting for concurrent restart"),!0;_.warn("SYSTEM","Worker did not become healthy after waiting \u2014 proceeding with own restart")}if(_.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:o.pluginVersion,workerVersion:o.workerVersion}),await ag(t),!await og(t,Ts(Er.PORT_IN_USE_WAIT)))return _.error("SYSTEM","Port did not free up after shutdown for version mismatch restart",{port:t}),!1;Xo()}return await Ud(t)?(_.info("SYSTEM","Port in use, waiting for worker to become healthy"),await Yo(t,Ts(Er.PORT_IN_USE_WAIT))?(_.info("SYSTEM","Worker is now healthy"),!0):(_.error("SYSTEM","Port in use but worker not responding to health checks"),!1)):RSe()?(_.warn("SYSTEM","Worker unavailable on Windows \u2014 skipping spawn (recent attempt failed within cooldown)"),!1):(_.info("SYSTEM","Starting worker daemon"),OSe(),FE(__filename,t)===void 0?(_.error("SYSTEM","Failed to spawn worker daemon"),!1):await Yo(t,Ts(Er.POST_SPAWN_WAIT))?(await KM(t,Ts(Er.READINESS_WAIT))||_.warn("SYSTEM","Worker is alive but readiness timed out \u2014 proceeding anyway"),CSe(),HM(),_.info("SYSTEM","Worker started successfully"),!0):(Xo(),_.error("SYSTEM","Worker failed to start (health check timeout)"),!1))}async function ASe(){let t=process.argv[2];(["start","hook","restart","--daemon"].includes(t)||t===void 0)&&sg()&&process.exit(0);let r=Jr();function n(i,s){let o=tH(i,s);console.log(JSON.stringify(o)),process.exit(0)}switch(t){case"start":{await eH(r)?n("ready"):n("error","Failed to start worker");break}case"stop":{await ag(r),await og(r,Ts(15e3))||_.warn("SYSTEM","Port did not free up after shutdown",{port:r}),Xo(),_.info("SYSTEM","Worker stopped successfully"),process.exit(0);break}case"restart":{_.info("SYSTEM","Restarting worker"),await ag(r),await og(r,Ts(15e3))||(_.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:r}),process.exit(0)),Xo(),FE(__filename,r)===void 0&&(_.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(0)),await Yo(r,Ts(Er.POST_SPAWN_WAIT))||(Xo(),_.error("SYSTEM","Worker failed to restart"),process.exit(0)),_.info("SYSTEM","Worker restarted successfully"),process.exit(0);break}case"status":{let i=await Ud(r),s=UE();i&&s?(console.log("Worker is running"),console.log(` PID: ${s.pid}`),console.log(` Port: ${s.port}`),console.log(` Started: ${s.startedAt}`)):console.log("Worker is not running"),process.exit(0);break}case"cursor":{let i=process.argv[3],s=await _6(i,process.argv.slice(4));process.exit(s);break}case"gemini-cli":{let i=process.argv[3],s=await x6(i,process.argv.slice(4));process.exit(s);break}case"hook":{let i=process.argv[3],s=process.argv[4];(!i||!s)&&(console.error("Usage: claude-mem hook "),console.error("Platforms: claude-code, cursor, gemini-cli, raw"),console.error("Events: context, session-init, observation, summarize, session-complete, user-message"),process.exit(1)),await eH(r)||_.warn("SYSTEM","Worker failed to start before hook, handler will proceed gracefully");let{hookCommand:a}=await Promise.resolve().then(()=>(K5(),V5));await a(i,s);break}case"generate":{let i=process.argv.includes("--dry-run"),{generateClaudeMd:s}=await Promise.resolve().then(()=>(KI(),VI)),o=await s(i);process.exit(o);break}case"clean":{let i=process.argv.includes("--dry-run"),{cleanClaudeMd:s}=await Promise.resolve().then(()=>(KI(),VI)),o=await s(i);process.exit(o);break}default:{let i=UE();i&&FM(i.pid)&&(_.info("SYSTEM","Worker already running (PID alive), refusing to start duplicate",{existingPid:i.pid,existingPort:i.port,startedAt:i.startedAt}),process.exit(0)),await Ud(r)&&(_.info("SYSTEM","Port already in use, refusing to start duplicate",{port:r}),process.exit(0)),process.on("unhandledRejection",o=>{_.error("SYSTEM","Unhandled rejection in daemon",{reason:o instanceof Error?o.message:String(o)})}),process.on("uncaughtException",o=>{_.error("SYSTEM","Uncaught exception in daemon",{},o)}),new d_().start().catch(o=>{_.failure("SYSTEM","Worker failed to start",{},o),Xo(),process.exit(0)})}}}var NSe=typeof require<"u"&&typeof module<"u"?require.main===module||!module.parent:DSe.url===`file://${process.argv[1]}`||process.argv[1]?.endsWith("worker-service")||process.argv[1]?.endsWith("worker-service.cjs")||process.argv[1]?.replaceAll("\\","/")===__filename?.replaceAll("\\","/");NSe&&ASe().catch(t=>{_.error("SYSTEM","Fatal error in main",{},t instanceof Error?t:void 0),process.exit(0)});0&&(module.exports={WorkerService,buildStatusOutput,isPluginDisabledInClaudeSettings}); /*! Bundled license information: depd/index.js: diff --git a/plugin/skills/version-bump/SKILL.md b/plugin/skills/version-bump/SKILL.md new file mode 100644 index 00000000..73e4cc57 --- /dev/null +++ b/plugin/skills/version-bump/SKILL.md @@ -0,0 +1,42 @@ +--- +name: claude-code-plugin-release +description: Automated semantic versioning and release workflow for Claude Code plugins. Handles version increments across package.json, marketplace.json, and plugin.json, build verification, git tagging, GitHub releases, and changelog generation. +--- + +# Version Bump & Release Workflow + +**IMPORTANT:** You must first plan and write detailed release notes before starting the version bump workflow. + +**CRITICAL:** ALWAYS commit EVERYTHING (including build artifacts). At the end of this workflow, NOTHING should be left uncommitted or unpushed. Run `git status` at the end to verify. + +## Preparation + +1. **Analyze**: Determine if the change is a **PATCH** (bug fixes), **MINOR** (features), or **MAJOR** (breaking) update. +2. **Environment**: Identify the repository owner and name (e.g., from `git remote -v`). +3. **Paths**: Verify existence of `package.json`, `.claude-plugin/marketplace.json`, and `plugin/.claude-plugin/plugin.json`. + +## Workflow + +1. **Update**: Increment version strings in all configuration files. +2. **Verify**: Use `grep` to ensure all files match the new version. +3. **Build**: Run `npm run build` to generate fresh artifacts. +4. **Commit**: Stage all changes including artifacts: `git add -A && git commit -m "chore: bump version to X.Y.Z"`. +5. **Tag**: Create an annotated tag: `git tag -a vX.Y.Z -m "Version X.Y.Z"`. +6. **Push**: `git push origin main && git push origin vX.Y.Z`. +7. **Release**: `gh release create vX.Y.Z --title "vX.Y.Z" --notes "RELEASE_NOTES"`. +8. **Changelog**: Regenerate `CHANGELOG.md` using the GitHub API and the provided script: + ```bash + gh api repos/{owner}/{repo}/releases --paginate | ./scripts/generate_changelog.js > CHANGELOG.md + ``` +9. **Sync**: Commit and push the updated `CHANGELOG.md`. +10. **Notify**: Run `npm run discord:notify vX.Y.Z` if applicable. +11. **Finalize**: Run `git status` to ensure a clean working tree. + +## Checklist + +- [ ] All config files have matching versions +- [ ] `npm run build` succeeded +- [ ] Git tag created and pushed +- [ ] GitHub release created with notes +- [ ] `CHANGELOG.md` updated and pushed +- [ ] `git status` shows clean tree diff --git a/plugin/skills/version-bump/scripts/generate_changelog.js b/plugin/skills/version-bump/scripts/generate_changelog.js new file mode 100755 index 00000000..faa82e02 --- /dev/null +++ b/plugin/skills/version-bump/scripts/generate_changelog.js @@ -0,0 +1,37 @@ +#!/usr/bin/env node +const fs = require('fs'); + +/** + * Processes GitHub release JSON from stdin and outputs a formatted CHANGELOG.md + */ +function generate() { + try { + const input = fs.readFileSync(0, 'utf8'); + if (!input || input.trim() === '') { + process.stderr.write('No input received on stdin +'); + process.exit(1); + } + + const releases = JSON.parse(input); + const lines = ['# Changelog', '', 'All notable changes to this project.', '']; + + releases.slice(0, 50).forEach(r => { + const date = r.published_at.split('T')[0]; + lines.push(`## [${r.tag_name}] - ${date}`); + lines.push(''); + if (r.body) lines.push(r.body.trim()); + lines.push(''); + }); + + process.stdout.write(lines.join(' +') + ' +'); + } catch (err) { + process.stderr.write(`Error generating changelog: ${err.message} +`); + process.exit(1); + } +} + +generate(); diff --git a/plugin/ui/viewer-bundle.js b/plugin/ui/viewer-bundle.js index 6e5bf0a5..04a532a4 100644 --- a/plugin/ui/viewer-bundle.js +++ b/plugin/ui/viewer-bundle.js @@ -1,17 +1,17 @@ -"use strict";(()=>{var Xm=Object.create;var ju=Object.defineProperty;var $m=Object.getOwnPropertyDescriptor;var Km=Object.getOwnPropertyNames;var Ym=Object.getPrototypeOf,Qm=Object.prototype.hasOwnProperty;var Le=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Zm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Km(t))!Qm.call(e,o)&&o!==n&&ju(e,o,{get:()=>t[o],enumerable:!(r=$m(t,o))||r.enumerable});return e};var ee=(e,t,n)=>(n=e!=null?Xm(Ym(e)):{},Zm(t||!e||!e.__esModule?ju(n,"default",{value:e,enumerable:!0}):n,e));var Ju=Le(F=>{"use strict";var Fr=Symbol.for("react.element"),Jm=Symbol.for("react.portal"),eg=Symbol.for("react.fragment"),tg=Symbol.for("react.strict_mode"),ng=Symbol.for("react.profiler"),rg=Symbol.for("react.provider"),og=Symbol.for("react.context"),lg=Symbol.for("react.forward_ref"),ig=Symbol.for("react.suspense"),sg=Symbol.for("react.memo"),ag=Symbol.for("react.lazy"),Bu=Symbol.iterator;function ug(e){return e===null||typeof e!="object"?null:(e=Bu&&e[Bu]||e["@@iterator"],typeof e=="function"?e:null)}var Vu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Gu=Object.assign,Xu={};function Jn(e,t,n){this.props=e,this.context=t,this.refs=Xu,this.updater=n||Vu}Jn.prototype.isReactComponent={};Jn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Jn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function $u(){}$u.prototype=Jn.prototype;function Hi(e,t,n){this.props=e,this.context=t,this.refs=Xu,this.updater=n||Vu}var ji=Hi.prototype=new $u;ji.constructor=Hi;Gu(ji,Jn.prototype);ji.isPureReactComponent=!0;var qu=Array.isArray,Ku=Object.prototype.hasOwnProperty,Bi={current:null},Yu={key:!0,ref:!0,__self:!0,__source:!0};function Qu(e,t,n){var r,o={},l=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(l=""+t.key),t)Ku.call(t,r)&&!Yu.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1{"use strict";ec.exports=Ju()});var cc=Le($=>{"use strict";function Xi(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(0>>1;rKo(s,n))aKo(u,s)?(e[r]=u,e[a]=n,r=a):(e[r]=s,e[i]=n,r=i);else if(aKo(u,n))e[r]=u,e[a]=n,r=a;else break e}}return t}function Ko(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(tc=performance,$.unstable_now=function(){return tc.now()}):(Wi=Date,nc=Wi.now(),$.unstable_now=function(){return Wi.now()-nc});var tc,Wi,nc,Tt=[],Yt=[],mg=1,rt=null,Ne=3,Zo=!1,Mn=!1,br=!1,lc=typeof setTimeout=="function"?setTimeout:null,ic=typeof clearTimeout=="function"?clearTimeout:null,rc=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function $i(e){for(var t=ft(Yt);t!==null;){if(t.callback===null)Qo(Yt);else if(t.startTime<=e)Qo(Yt),t.sortIndex=t.expirationTime,Xi(Tt,t);else break;t=ft(Yt)}}function Ki(e){if(br=!1,$i(e),!Mn)if(ft(Tt)!==null)Mn=!0,Qi(Yi);else{var t=ft(Yt);t!==null&&Zi(Ki,t.startTime-e)}}function Yi(e,t){Mn=!1,br&&(br=!1,ic(Hr),Hr=-1),Zo=!0;var n=Ne;try{for($i(t),rt=ft(Tt);rt!==null&&(!(rt.expirationTime>t)||e&&!uc());){var r=rt.callback;if(typeof r=="function"){rt.callback=null,Ne=rt.priorityLevel;var o=r(rt.expirationTime<=t);t=$.unstable_now(),typeof o=="function"?rt.callback=o:rt===ft(Tt)&&Qo(Tt),$i(t)}else Qo(Tt);rt=ft(Tt)}if(rt!==null)var l=!0;else{var i=ft(Yt);i!==null&&Zi(Ki,i.startTime-t),l=!1}return l}finally{rt=null,Ne=n,Zo=!1}}var Jo=!1,Yo=null,Hr=-1,sc=5,ac=-1;function uc(){return!($.unstable_now()-ace||125r?(e.sortIndex=n,Xi(Yt,e),ft(Tt)===null&&e===ft(Yt)&&(br?(ic(Hr),Hr=-1):br=!0,Zi(Ki,n-r))):(e.sortIndex=o,Xi(Tt,e),Mn||Zo||(Mn=!0,Qi(Yi))),e};$.unstable_shouldYield=uc;$.unstable_wrapCallback=function(e){var t=Ne;return function(){var n=Ne;Ne=t;try{return e.apply(this,arguments)}finally{Ne=n}}}});var dc=Le((k0,fc)=>{"use strict";fc.exports=cc()});var vp=Le(Je=>{"use strict";var gg=te(),Qe=dc();function w(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_s=Object.prototype.hasOwnProperty,hg=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,pc={},mc={};function vg(e){return _s.call(mc,e)?!0:_s.call(pc,e)?!1:hg.test(e)?mc[e]=!0:(pc[e]=!0,!1)}function yg(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Eg(e,t,n,r){if(t===null||typeof t>"u"||yg(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Re(e,t,n,r,o,l,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=i}var Te={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Te[e]=new Re(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Te[t]=new Re(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Te[e]=new Re(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Te[e]=new Re(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Te[e]=new Re(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Te[e]=new Re(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Te[e]=new Re(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Te[e]=new Re(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Te[e]=new Re(e,5,!1,e.toLowerCase(),null,!1,!1)});var pa=/[\-:]([a-z])/g;function ma(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(pa,ma);Te[t]=new Re(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(pa,ma);Te[t]=new Re(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(pa,ma);Te[t]=new Re(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Te[e]=new Re(e,1,!1,e.toLowerCase(),null,!1,!1)});Te.xlinkHref=new Re("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Te[e]=new Re(e,1,!1,e.toLowerCase(),null,!0,!0)});function ga(e,t,n,r){var o=Te.hasOwnProperty(t)?Te[t]:null;(o!==null?o.type!==0:r||!(2{var Xm=Object.create;var ju=Object.defineProperty;var $m=Object.getOwnPropertyDescriptor;var Km=Object.getOwnPropertyNames;var Ym=Object.getPrototypeOf,Qm=Object.prototype.hasOwnProperty;var Le=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Zm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Km(t))!Qm.call(e,o)&&o!==n&&ju(e,o,{get:()=>t[o],enumerable:!(r=$m(t,o))||r.enumerable});return e};var ee=(e,t,n)=>(n=e!=null?Xm(Ym(e)):{},Zm(t||!e||!e.__esModule?ju(n,"default",{value:e,enumerable:!0}):n,e));var Ju=Le(F=>{"use strict";var Fr=Symbol.for("react.element"),Jm=Symbol.for("react.portal"),eg=Symbol.for("react.fragment"),tg=Symbol.for("react.strict_mode"),ng=Symbol.for("react.profiler"),rg=Symbol.for("react.provider"),og=Symbol.for("react.context"),lg=Symbol.for("react.forward_ref"),ig=Symbol.for("react.suspense"),sg=Symbol.for("react.memo"),ag=Symbol.for("react.lazy"),Bu=Symbol.iterator;function ug(e){return e===null||typeof e!="object"?null:(e=Bu&&e[Bu]||e["@@iterator"],typeof e=="function"?e:null)}var Vu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Gu=Object.assign,Xu={};function Jn(e,t,n){this.props=e,this.context=t,this.refs=Xu,this.updater=n||Vu}Jn.prototype.isReactComponent={};Jn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Jn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function $u(){}$u.prototype=Jn.prototype;function bi(e,t,n){this.props=e,this.context=t,this.refs=Xu,this.updater=n||Vu}var Hi=bi.prototype=new $u;Hi.constructor=bi;Gu(Hi,Jn.prototype);Hi.isPureReactComponent=!0;var qu=Array.isArray,Ku=Object.prototype.hasOwnProperty,ji={current:null},Yu={key:!0,ref:!0,__self:!0,__source:!0};function Qu(e,t,n){var r,o={},l=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(l=""+t.key),t)Ku.call(t,r)&&!Yu.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1{"use strict";ec.exports=Ju()});var cc=Le($=>{"use strict";function Gi(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(0>>1;rKo(s,n))aKo(u,s)?(e[r]=u,e[a]=n,r=a):(e[r]=s,e[i]=n,r=i);else if(aKo(u,n))e[r]=u,e[a]=n,r=a;else break e}}return t}function Ko(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(tc=performance,$.unstable_now=function(){return tc.now()}):(qi=Date,nc=qi.now(),$.unstable_now=function(){return qi.now()-nc});var tc,qi,nc,Tt=[],$t=[],mg=1,nt=null,Ne=3,Zo=!1,Mn=!1,br=!1,lc=typeof setTimeout=="function"?setTimeout:null,ic=typeof clearTimeout=="function"?clearTimeout:null,rc=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Xi(e){for(var t=ct($t);t!==null;){if(t.callback===null)Qo($t);else if(t.startTime<=e)Qo($t),t.sortIndex=t.expirationTime,Gi(Tt,t);else break;t=ct($t)}}function $i(e){if(br=!1,Xi(e),!Mn)if(ct(Tt)!==null)Mn=!0,Yi(Ki);else{var t=ct($t);t!==null&&Qi($i,t.startTime-e)}}function Ki(e,t){Mn=!1,br&&(br=!1,ic(Hr),Hr=-1),Zo=!0;var n=Ne;try{for(Xi(t),nt=ct(Tt);nt!==null&&(!(nt.expirationTime>t)||e&&!uc());){var r=nt.callback;if(typeof r=="function"){nt.callback=null,Ne=nt.priorityLevel;var o=r(nt.expirationTime<=t);t=$.unstable_now(),typeof o=="function"?nt.callback=o:nt===ct(Tt)&&Qo(Tt),Xi(t)}else Qo(Tt);nt=ct(Tt)}if(nt!==null)var l=!0;else{var i=ct($t);i!==null&&Qi($i,i.startTime-t),l=!1}return l}finally{nt=null,Ne=n,Zo=!1}}var Jo=!1,Yo=null,Hr=-1,sc=5,ac=-1;function uc(){return!($.unstable_now()-ace||125r?(e.sortIndex=n,Gi($t,e),ct(Tt)===null&&e===ct($t)&&(br?(ic(Hr),Hr=-1):br=!0,Qi($i,n-r))):(e.sortIndex=o,Gi(Tt,e),Mn||Zo||(Mn=!0,Yi(Ki))),e};$.unstable_shouldYield=uc;$.unstable_wrapCallback=function(e){var t=Ne;return function(){var n=Ne;Ne=t;try{return e.apply(this,arguments)}finally{Ne=n}}}});var dc=Le((k0,fc)=>{"use strict";fc.exports=cc()});var vp=Le(Je=>{"use strict";var gg=te(),Qe=dc();function w(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ss=Object.prototype.hasOwnProperty,hg=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,pc={},mc={};function vg(e){return Ss.call(mc,e)?!0:Ss.call(pc,e)?!1:hg.test(e)?mc[e]=!0:(pc[e]=!0,!1)}function yg(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Eg(e,t,n,r){if(t===null||typeof t>"u"||yg(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Re(e,t,n,r,o,l,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=i}var Te={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Te[e]=new Re(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Te[t]=new Re(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Te[e]=new Re(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Te[e]=new Re(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Te[e]=new Re(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Te[e]=new Re(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Te[e]=new Re(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Te[e]=new Re(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Te[e]=new Re(e,5,!1,e.toLowerCase(),null,!1,!1)});var da=/[\-:]([a-z])/g;function pa(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(da,pa);Te[t]=new Re(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(da,pa);Te[t]=new Re(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(da,pa);Te[t]=new Re(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Te[e]=new Re(e,1,!1,e.toLowerCase(),null,!1,!1)});Te.xlinkHref=new Re("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Te[e]=new Re(e,1,!1,e.toLowerCase(),null,!0,!0)});function ma(e,t,n,r){var o=Te.hasOwnProperty(t)?Te[t]:null;(o!==null?o.type!==0:r||!(2s||o[i]!==l[s]){var a=` -`+o[i].replace(" at new "," at ");return e.displayName&&a.includes("")&&(a=a.replace("",e.displayName)),a}while(1<=i&&0<=s);break}}}finally{es=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Kr(e):""}function Sg(e){switch(e.tag){case 5:return Kr(e.type);case 16:return Kr("Lazy");case 13:return Kr("Suspense");case 19:return Kr("SuspenseList");case 0:case 2:case 15:return e=ts(e.type,!1),e;case 11:return e=ts(e.type.render,!1),e;case 1:return e=ts(e.type,!0),e;default:return""}}function ks(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case rr:return"Fragment";case nr:return"Portal";case ws:return"Profiler";case ha:return"StrictMode";case Ts:return"Suspense";case Cs:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case wf:return(e.displayName||"Context")+".Consumer";case _f:return(e._context.displayName||"Context")+".Provider";case va:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ya:return t=e.displayName||null,t!==null?t:ks(e.type)||"Memo";case Zt:t=e._payload,e=e._init;try{return ks(e(t))}catch{}}return null}function _g(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ks(t);case 8:return t===ha?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function pn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Cf(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function wg(e){var t=Cf(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){r=""+i,l.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function tl(e){e._valueTracker||(e._valueTracker=wg(e))}function kf(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Cf(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Ml(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ls(e,t){var n=t.checked;return le({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function hc(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=pn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Lf(e,t){t=t.checked,t!=null&&ga(e,"checked",t,!1)}function Ns(e,t){Lf(e,t);var n=pn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?As(e,t.type,n):t.hasOwnProperty("defaultValue")&&As(e,t.type,pn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function vc(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function As(e,t,n){(t!=="number"||Ml(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Yr=Array.isArray;function mr(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=nl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Jr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Tg=["Webkit","ms","Moz","O"];Object.keys(Jr).forEach(function(e){Tg.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Jr[t]=Jr[e]})});function xf(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Jr.hasOwnProperty(e)&&Jr[e]?(""+t).trim():t+"px"}function Of(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=xf(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Cg=le({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Os(e,t){if(t){if(Cg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(w(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(w(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(w(61))}if(t.style!=null&&typeof t.style!="object")throw Error(w(62))}}function Ds(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ps=null;function Ea(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Is=null,gr=null,hr=null;function Sc(e){if(e=Ao(e)){if(typeof Is!="function")throw Error(w(280));var t=e.stateNode;t&&(t=ri(t),Is(e.stateNode,e.type,t))}}function Df(e){gr?hr?hr.push(e):hr=[e]:gr=e}function Pf(){if(gr){var e=gr,t=hr;if(hr=gr=null,Sc(e),t)for(e=0;e>>=0,e===0?32:31-(Ug(e)/Rg|0)|0}var rl=64,ol=4194304;function Qr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Pl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,l=e.pingedLanes,i=n&268435455;if(i!==0){var s=i&~o;s!==0?r=Qr(s):(l&=i,l!==0&&(r=Qr(l)))}else i=n&~o,i!==0?r=Qr(i):l!==0&&(r=Qr(l));if(r===0)return 0;if(t!==0&&t!==r&&(t&o)===0&&(o=r&-r,l=t&-t,o>=l||o===16&&(l&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Lo(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ht(t),e[t]=n}function Hg(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=to),Mc=" ",xc=!1;function Jf(e,t){switch(e){case"keyup":return mh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ed(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var or=!1;function hh(e,t){switch(e){case"compositionend":return ed(t);case"keypress":return t.which!==32?null:(xc=!0,Mc);case"textInput":return e=t.data,e===Mc&&xc?null:e;default:return null}}function vh(e,t){if(or)return e==="compositionend"||!Na&&Jf(e,t)?(e=Qf(),Sl=Ca=nn=null,or=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Pc(n)}}function od(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?od(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ld(){for(var e=window,t=Ml();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ml(e.document)}return t}function Aa(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Lh(e){var t=ld(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&od(n.ownerDocument.documentElement,n)){if(r!==null&&Aa(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,l=Math.min(r.start,o);r=r.end===void 0?l:Math.min(r.end,o),!e.extend&&l>r&&(o=r,r=l,l=o),o=Ic(n,l);var i=Ic(n,r);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,lr=null,Hs=null,ro=null,js=!1;function Uc(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;js||lr==null||lr!==Ml(r)||(r=lr,"selectionStart"in r&&Aa(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ro&&ho(ro,r)||(ro=r,r=Rl(Hs,"onSelect"),0ar||(e.current=Xs[ar],Xs[ar]=null,ar--)}function K(e,t){ar++,Xs[ar]=e.current,e.current=t}var mn={},Oe=hn(mn),qe=hn(!1),Fn=mn;function _r(e,t){var n=e.type.contextTypes;if(!n)return mn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},l;for(l in n)o[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function We(e){return e=e.childContextTypes,e!=null}function zl(){Q(qe),Q(Oe)}function Wc(e,t,n){if(Oe.current!==mn)throw Error(w(168));K(Oe,t),K(qe,n)}function md(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(w(108,_g(e)||"Unknown",o));return le({},n,r)}function bl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mn,Fn=Oe.current,K(Oe,e),K(qe,qe.current),!0}function Vc(e,t,n){var r=e.stateNode;if(!r)throw Error(w(169));n?(e=md(e,t,Fn),r.__reactInternalMemoizedMergedChildContext=e,Q(qe),Q(Oe),K(Oe,e)):Q(qe),K(qe,n)}var Ft=null,oi=!1,ds=!1;function gd(e){Ft===null?Ft=[e]:Ft.push(e)}function Rh(e){oi=!0,gd(e)}function vn(){if(!ds&&Ft!==null){ds=!0;var e=0,t=q;try{var n=Ft;for(q=1;e>=i,o-=i,zt=1<<32-ht(t)+o|n<O?(V=M,M=null):V=M.sibling;var I=h(c,M,p[O],v);if(I===null){M===null&&(M=V);break}e&&M&&I.alternate===null&&t(c,M),f=l(I,f,O),L===null?C=I:L.sibling=I,L=I,M=V}if(O===p.length)return n(c,M),ne&&xn(c,O),C;if(M===null){for(;OO?(V=M,M=null):V=M.sibling;var j=h(c,M,I.value,v);if(j===null){M===null&&(M=V);break}e&&M&&j.alternate===null&&t(c,M),f=l(j,f,O),L===null?C=j:L.sibling=j,L=j,M=V}if(I.done)return n(c,M),ne&&xn(c,O),C;if(M===null){for(;!I.done;O++,I=p.next())I=g(c,I.value,v),I!==null&&(f=l(I,f,O),L===null?C=I:L.sibling=I,L=I);return ne&&xn(c,O),C}for(M=r(c,M);!I.done;O++,I=p.next())I=_(M,c,O,I.value,v),I!==null&&(e&&I.alternate!==null&&M.delete(I.key===null?O:I.key),f=l(I,f,O),L===null?C=I:L.sibling=I,L=I);return e&&M.forEach(function(Z){return t(c,Z)}),ne&&xn(c,O),C}function P(c,f,p,v){if(typeof p=="object"&&p!==null&&p.type===rr&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case el:e:{for(var C=p.key,L=f;L!==null;){if(L.key===C){if(C=p.type,C===rr){if(L.tag===7){n(c,L.sibling),f=o(L,p.props.children),f.return=c,c=f;break e}}else if(L.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zt&&$c(C)===L.type){n(c,L.sibling),f=o(L,p.props),f.ref=Vr(c,L,p),f.return=c,c=f;break e}n(c,L);break}else t(c,L);L=L.sibling}p.type===rr?(f=Rn(p.props.children,c.mode,v,p.key),f.return=c,c=f):(v=Al(p.type,p.key,p.props,null,c.mode,v),v.ref=Vr(c,f,p),v.return=c,c=v)}return i(c);case nr:e:{for(L=p.key;f!==null;){if(f.key===L)if(f.tag===4&&f.stateNode.containerInfo===p.containerInfo&&f.stateNode.implementation===p.implementation){n(c,f.sibling),f=o(f,p.children||[]),f.return=c,c=f;break e}else{n(c,f);break}else t(c,f);f=f.sibling}f=Ss(p,c.mode,v),f.return=c,c=f}return i(c);case Zt:return L=p._init,P(c,f,L(p._payload),v)}if(Yr(p))return E(c,f,p,v);if(jr(p))return k(c,f,p,v);gl(c,p)}return typeof p=="string"&&p!==""||typeof p=="number"?(p=""+p,f!==null&&f.tag===6?(n(c,f.sibling),f=o(f,p),f.return=c,c=f):(n(c,f),f=Es(p,c.mode,v),f.return=c,c=f),i(c)):n(c,f)}return P}var Tr=Ed(!0),Sd=Ed(!1),Bl=hn(null),ql=null,fr=null,Da=null;function Pa(){Da=fr=ql=null}function Ia(e){var t=Bl.current;Q(Bl),e._currentValue=t}function Ys(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function yr(e,t){ql=e,Da=fr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Be=!0),e.firstContext=null)}function at(e){var t=e._currentValue;if(Da!==e)if(e={context:e,memoizedValue:t,next:null},fr===null){if(ql===null)throw Error(w(308));fr=e,ql.dependencies={lanes:0,firstContext:e}}else fr=fr.next=e;return t}var Pn=null;function Ua(e){Pn===null?Pn=[e]:Pn.push(e)}function _d(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,Ua(t)):(n.next=o.next,o.next=n),t.interleaved=n,qt(e,r)}function qt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Jt=!1;function Ra(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ht(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function un(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(H&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,qt(e,n)}return o=r.interleaved,o===null?(t.next=t,Ua(r)):(t.next=o.next,o.next=t),r.interleaved=t,qt(e,n)}function wl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,_a(e,n)}}function Kc(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,l=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};l===null?o=l=i:l=l.next=i,n=n.next}while(n!==null);l===null?o=l=t:l=l.next=t}else o=l=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:l,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Wl(e,t,n,r){var o=e.updateQueue;Jt=!1;var l=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var a=s,u=a.next;a.next=null,i===null?l=u:i.next=u,i=a;var m=e.alternate;m!==null&&(m=m.updateQueue,s=m.lastBaseUpdate,s!==i&&(s===null?m.firstBaseUpdate=u:s.next=u,m.lastBaseUpdate=a))}if(l!==null){var g=o.baseState;i=0,m=u=a=null,s=l;do{var h=s.lane,_=s.eventTime;if((r&h)===h){m!==null&&(m=m.next={eventTime:_,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var E=e,k=s;switch(h=t,_=n,k.tag){case 1:if(E=k.payload,typeof E=="function"){g=E.call(_,g,h);break e}g=E;break e;case 3:E.flags=E.flags&-65537|128;case 0:if(E=k.payload,h=typeof E=="function"?E.call(_,g,h):E,h==null)break e;g=le({},g,h);break e;case 2:Jt=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,h=o.effects,h===null?o.effects=[s]:h.push(s))}else _={eventTime:_,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},m===null?(u=m=_,a=g):m=m.next=_,i|=h;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;h=s,s=h.next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}}while(!0);if(m===null&&(a=g),o.baseState=a,o.firstBaseUpdate=u,o.lastBaseUpdate=m,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else l===null&&(o.shared.lanes=0);Hn|=i,e.lanes=i,e.memoizedState=g}}function Yc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=ms.transition;ms.transition={};try{e(!1),t()}finally{q=n,ms.transition=r}}function bd(){return ut().memoizedState}function Hh(e,t,n){var r=fn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Hd(e))jd(t,n);else if(n=_d(e,t,n,r),n!==null){var o=Ue();vt(n,e,r,o),Bd(n,t,r)}}function jh(e,t,n){var r=fn(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Hd(e))jd(t,o);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var i=t.lastRenderedState,s=l(i,n);if(o.hasEagerState=!0,o.eagerState=s,yt(s,i)){var a=t.interleaved;a===null?(o.next=o,Ua(t)):(o.next=a.next,a.next=o),t.interleaved=o;return}}catch{}n=_d(e,t,o,r),n!==null&&(o=Ue(),vt(n,e,r,o),Bd(n,t,r))}}function Hd(e){var t=e.alternate;return e===oe||t!==null&&t===oe}function jd(e,t){oo=Gl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Bd(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,_a(e,n)}}var Xl={readContext:at,useCallback:Ae,useContext:Ae,useEffect:Ae,useImperativeHandle:Ae,useInsertionEffect:Ae,useLayoutEffect:Ae,useMemo:Ae,useReducer:Ae,useRef:Ae,useState:Ae,useDebugValue:Ae,useDeferredValue:Ae,useTransition:Ae,useMutableSource:Ae,useSyncExternalStore:Ae,useId:Ae,unstable_isNewReconciler:!1},Bh={readContext:at,useCallback:function(e,t){return kt().memoizedState=[e,t===void 0?null:t],e},useContext:at,useEffect:Zc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Cl(4194308,4,Id.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Cl(4194308,4,e,t)},useInsertionEffect:function(e,t){return Cl(4,2,e,t)},useMemo:function(e,t){var n=kt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=kt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Hh.bind(null,oe,e),[r.memoizedState,e]},useRef:function(e){var t=kt();return e={current:e},t.memoizedState=e},useState:Qc,useDebugValue:Wa,useDeferredValue:function(e){return kt().memoizedState=e},useTransition:function(){var e=Qc(!1),t=e[0];return e=bh.bind(null,e[1]),kt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=oe,o=kt();if(ne){if(n===void 0)throw Error(w(407));n=n()}else{if(n=t(),ye===null)throw Error(w(349));(bn&30)!==0||Ld(r,t,n)}o.memoizedState=n;var l={value:n,getSnapshot:t};return o.queue=l,Zc(Ad.bind(null,r,l,e),[e]),r.flags|=2048,Co(9,Nd.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=kt(),t=ye.identifierPrefix;if(ne){var n=bt,r=zt;n=(r&~(1<<32-ht(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=wo++,0")&&(a=a.replace("",e.displayName)),a}while(1<=i&&0<=s);break}}}finally{Ji=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Kr(e):""}function Sg(e){switch(e.tag){case 5:return Kr(e.type);case 16:return Kr("Lazy");case 13:return Kr("Suspense");case 19:return Kr("SuspenseList");case 0:case 2:case 15:return e=es(e.type,!1),e;case 11:return e=es(e.type.render,!1),e;case 1:return e=es(e.type,!0),e;default:return""}}function Cs(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case rr:return"Fragment";case nr:return"Portal";case _s:return"Profiler";case ga:return"StrictMode";case ws:return"Suspense";case Ts:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case wf:return(e.displayName||"Context")+".Consumer";case _f:return(e._context.displayName||"Context")+".Provider";case ha:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case va:return t=e.displayName||null,t!==null?t:Cs(e.type)||"Memo";case Yt:t=e._payload,e=e._init;try{return Cs(e(t))}catch{}}return null}function _g(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Cs(t);case 8:return t===ga?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function fn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Cf(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function wg(e){var t=Cf(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){r=""+i,l.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function tl(e){e._valueTracker||(e._valueTracker=wg(e))}function kf(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Cf(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Al(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ks(e,t){var n=t.checked;return le({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function hc(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=fn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Lf(e,t){t=t.checked,t!=null&&ma(e,"checked",t,!1)}function Ls(e,t){Lf(e,t);var n=fn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ns(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ns(e,t.type,fn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function vc(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Ns(e,t,n){(t!=="number"||Al(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Yr=Array.isArray;function mr(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=nl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Jr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Tg=["Webkit","ms","Moz","O"];Object.keys(Jr).forEach(function(e){Tg.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Jr[t]=Jr[e]})});function xf(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Jr.hasOwnProperty(e)&&Jr[e]?(""+t).trim():t+"px"}function Of(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=xf(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Cg=le({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function xs(e,t){if(t){if(Cg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(w(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(w(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(w(61))}if(t.style!=null&&typeof t.style!="object")throw Error(w(62))}}function Os(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ds=null;function ya(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ps=null,gr=null,hr=null;function Sc(e){if(e=Mo(e)){if(typeof Ps!="function")throw Error(w(280));var t=e.stateNode;t&&(t=ri(t),Ps(e.stateNode,e.type,t))}}function Df(e){gr?hr?hr.push(e):hr=[e]:gr=e}function Pf(){if(gr){var e=gr,t=hr;if(hr=gr=null,Sc(e),t)for(e=0;e>>=0,e===0?32:31-(Ug(e)/Rg|0)|0}var rl=64,ol=4194304;function Qr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Pl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,l=e.pingedLanes,i=n&268435455;if(i!==0){var s=i&~o;s!==0?r=Qr(s):(l&=i,l!==0&&(r=Qr(l)))}else i=n&~o,i!==0?r=Qr(i):l!==0&&(r=Qr(l));if(r===0)return 0;if(t!==0&&t!==r&&(t&o)===0&&(o=r&-r,l=t&-t,o>=l||o===16&&(l&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Lo(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-gt(t),e[t]=n}function Hg(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=to),Ac=" ",xc=!1;function Jf(e,t){switch(e){case"keyup":return mh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ed(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var or=!1;function hh(e,t){switch(e){case"compositionend":return ed(t);case"keypress":return t.which!==32?null:(xc=!0,Ac);case"textInput":return e=t.data,e===Ac&&xc?null:e;default:return null}}function vh(e,t){if(or)return e==="compositionend"||!La&&Jf(e,t)?(e=Qf(),Sl=Ta=en=null,or=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Pc(n)}}function od(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?od(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ld(){for(var e=window,t=Al();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Al(e.document)}return t}function Na(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Lh(e){var t=ld(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&od(n.ownerDocument.documentElement,n)){if(r!==null&&Na(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,l=Math.min(r.start,o);r=r.end===void 0?l:Math.min(r.end,o),!e.extend&&l>r&&(o=r,r=l,l=o),o=Ic(n,l);var i=Ic(n,r);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,lr=null,bs=null,ro=null,Hs=!1;function Uc(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Hs||lr==null||lr!==Al(r)||(r=lr,"selectionStart"in r&&Na(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ro&&ho(ro,r)||(ro=r,r=Rl(bs,"onSelect"),0ar||(e.current=Gs[ar],Gs[ar]=null,ar--)}function K(e,t){ar++,Gs[ar]=e.current,e.current=t}var dn={},Oe=mn(dn),qe=mn(!1),Rn=dn;function _r(e,t){var n=e.type.contextTypes;if(!n)return dn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},l;for(l in n)o[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function We(e){return e=e.childContextTypes,e!=null}function zl(){Q(qe),Q(Oe)}function Wc(e,t,n){if(Oe.current!==dn)throw Error(w(168));K(Oe,t),K(qe,n)}function md(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(w(108,_g(e)||"Unknown",o));return le({},n,r)}function bl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||dn,Rn=Oe.current,K(Oe,e),K(qe,qe.current),!0}function Vc(e,t,n){var r=e.stateNode;if(!r)throw Error(w(169));n?(e=md(e,t,Rn),r.__reactInternalMemoizedMergedChildContext=e,Q(qe),Q(Oe),K(Oe,e)):Q(qe),K(qe,n)}var Ft=null,oi=!1,fs=!1;function gd(e){Ft===null?Ft=[e]:Ft.push(e)}function Rh(e){oi=!0,gd(e)}function gn(){if(!fs&&Ft!==null){fs=!0;var e=0,t=q;try{var n=Ft;for(q=1;e>=i,o-=i,zt=1<<32-gt(t)+o|n<O?(V=A,A=null):V=A.sibling;var I=h(c,A,p[O],v);if(I===null){A===null&&(A=V);break}e&&A&&I.alternate===null&&t(c,A),f=l(I,f,O),L===null?C=I:L.sibling=I,L=I,A=V}if(O===p.length)return n(c,A),ne&&An(c,O),C;if(A===null){for(;OO?(V=A,A=null):V=A.sibling;var j=h(c,A,I.value,v);if(j===null){A===null&&(A=V);break}e&&A&&j.alternate===null&&t(c,A),f=l(j,f,O),L===null?C=j:L.sibling=j,L=j,A=V}if(I.done)return n(c,A),ne&&An(c,O),C;if(A===null){for(;!I.done;O++,I=p.next())I=g(c,I.value,v),I!==null&&(f=l(I,f,O),L===null?C=I:L.sibling=I,L=I);return ne&&An(c,O),C}for(A=r(c,A);!I.done;O++,I=p.next())I=_(A,c,O,I.value,v),I!==null&&(e&&I.alternate!==null&&A.delete(I.key===null?O:I.key),f=l(I,f,O),L===null?C=I:L.sibling=I,L=I);return e&&A.forEach(function(Z){return t(c,Z)}),ne&&An(c,O),C}function P(c,f,p,v){if(typeof p=="object"&&p!==null&&p.type===rr&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case el:e:{for(var C=p.key,L=f;L!==null;){if(L.key===C){if(C=p.type,C===rr){if(L.tag===7){n(c,L.sibling),f=o(L,p.props.children),f.return=c,c=f;break e}}else if(L.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Yt&&$c(C)===L.type){n(c,L.sibling),f=o(L,p.props),f.ref=Vr(c,L,p),f.return=c,c=f;break e}n(c,L);break}else t(c,L);L=L.sibling}p.type===rr?(f=Un(p.props.children,c.mode,v,p.key),f.return=c,c=f):(v=Ml(p.type,p.key,p.props,null,c.mode,v),v.ref=Vr(c,f,p),v.return=c,c=v)}return i(c);case nr:e:{for(L=p.key;f!==null;){if(f.key===L)if(f.tag===4&&f.stateNode.containerInfo===p.containerInfo&&f.stateNode.implementation===p.implementation){n(c,f.sibling),f=o(f,p.children||[]),f.return=c,c=f;break e}else{n(c,f);break}else t(c,f);f=f.sibling}f=Es(p,c.mode,v),f.return=c,c=f}return i(c);case Yt:return L=p._init,P(c,f,L(p._payload),v)}if(Yr(p))return E(c,f,p,v);if(jr(p))return k(c,f,p,v);gl(c,p)}return typeof p=="string"&&p!==""||typeof p=="number"?(p=""+p,f!==null&&f.tag===6?(n(c,f.sibling),f=o(f,p),f.return=c,c=f):(n(c,f),f=ys(p,c.mode,v),f.return=c,c=f),i(c)):n(c,f)}return P}var Tr=Ed(!0),Sd=Ed(!1),Bl=mn(null),ql=null,fr=null,Oa=null;function Da(){Oa=fr=ql=null}function Pa(e){var t=Bl.current;Q(Bl),e._currentValue=t}function Ks(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function yr(e,t){ql=e,Oa=fr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Be=!0),e.firstContext=null)}function st(e){var t=e._currentValue;if(Oa!==e)if(e={context:e,memoizedValue:t,next:null},fr===null){if(ql===null)throw Error(w(308));fr=e,ql.dependencies={lanes:0,firstContext:e}}else fr=fr.next=e;return t}var Dn=null;function Ia(e){Dn===null?Dn=[e]:Dn.push(e)}function _d(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,Ia(t)):(n.next=o.next,o.next=n),t.interleaved=n,qt(e,r)}function qt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Qt=!1;function Ua(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ht(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function sn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(H&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,qt(e,n)}return o=r.interleaved,o===null?(t.next=t,Ia(r)):(t.next=o.next,o.next=t),r.interleaved=t,qt(e,n)}function wl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Sa(e,n)}}function Kc(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,l=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};l===null?o=l=i:l=l.next=i,n=n.next}while(n!==null);l===null?o=l=t:l=l.next=t}else o=l=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:l,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Wl(e,t,n,r){var o=e.updateQueue;Qt=!1;var l=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var a=s,u=a.next;a.next=null,i===null?l=u:i.next=u,i=a;var m=e.alternate;m!==null&&(m=m.updateQueue,s=m.lastBaseUpdate,s!==i&&(s===null?m.firstBaseUpdate=u:s.next=u,m.lastBaseUpdate=a))}if(l!==null){var g=o.baseState;i=0,m=u=a=null,s=l;do{var h=s.lane,_=s.eventTime;if((r&h)===h){m!==null&&(m=m.next={eventTime:_,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var E=e,k=s;switch(h=t,_=n,k.tag){case 1:if(E=k.payload,typeof E=="function"){g=E.call(_,g,h);break e}g=E;break e;case 3:E.flags=E.flags&-65537|128;case 0:if(E=k.payload,h=typeof E=="function"?E.call(_,g,h):E,h==null)break e;g=le({},g,h);break e;case 2:Qt=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,h=o.effects,h===null?o.effects=[s]:h.push(s))}else _={eventTime:_,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},m===null?(u=m=_,a=g):m=m.next=_,i|=h;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;h=s,s=h.next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}}while(!0);if(m===null&&(a=g),o.baseState=a,o.firstBaseUpdate=u,o.lastBaseUpdate=m,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else l===null&&(o.shared.lanes=0);bn|=i,e.lanes=i,e.memoizedState=g}}function Yc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=ps.transition;ps.transition={};try{e(!1),t()}finally{q=n,ps.transition=r}}function bd(){return at().memoizedState}function Hh(e,t,n){var r=un(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Hd(e))jd(t,n);else if(n=_d(e,t,n,r),n!==null){var o=Ue();ht(n,e,r,o),Bd(n,t,r)}}function jh(e,t,n){var r=un(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Hd(e))jd(t,o);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var i=t.lastRenderedState,s=l(i,n);if(o.hasEagerState=!0,o.eagerState=s,vt(s,i)){var a=t.interleaved;a===null?(o.next=o,Ia(t)):(o.next=a.next,a.next=o),t.interleaved=o;return}}catch{}n=_d(e,t,o,r),n!==null&&(o=Ue(),ht(n,e,r,o),Bd(n,t,r))}}function Hd(e){var t=e.alternate;return e===oe||t!==null&&t===oe}function jd(e,t){oo=Gl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Bd(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Sa(e,n)}}var Xl={readContext:st,useCallback:Me,useContext:Me,useEffect:Me,useImperativeHandle:Me,useInsertionEffect:Me,useLayoutEffect:Me,useMemo:Me,useReducer:Me,useRef:Me,useState:Me,useDebugValue:Me,useDeferredValue:Me,useTransition:Me,useMutableSource:Me,useSyncExternalStore:Me,useId:Me,unstable_isNewReconciler:!1},Bh={readContext:st,useCallback:function(e,t){return kt().memoizedState=[e,t===void 0?null:t],e},useContext:st,useEffect:Zc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Cl(4194308,4,Id.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Cl(4194308,4,e,t)},useInsertionEffect:function(e,t){return Cl(4,2,e,t)},useMemo:function(e,t){var n=kt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=kt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Hh.bind(null,oe,e),[r.memoizedState,e]},useRef:function(e){var t=kt();return e={current:e},t.memoizedState=e},useState:Qc,useDebugValue:qa,useDeferredValue:function(e){return kt().memoizedState=e},useTransition:function(){var e=Qc(!1),t=e[0];return e=bh.bind(null,e[1]),kt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=oe,o=kt();if(ne){if(n===void 0)throw Error(w(407));n=n()}else{if(n=t(),ye===null)throw Error(w(349));(zn&30)!==0||Ld(r,t,n)}o.memoizedState=n;var l={value:n,getSnapshot:t};return o.queue=l,Zc(Md.bind(null,r,l,e),[e]),r.flags|=2048,Co(9,Nd.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=kt(),t=ye.identifierPrefix;if(ne){var n=bt,r=zt;n=(r&~(1<<32-gt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=wo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Lt]=t,e[Eo]=r,Zd(e,t,!1,!1),t.stateNode=e;e:{switch(i=Ds(n,r),n){case"dialog":Y("cancel",e),Y("close",e),o=r;break;case"iframe":case"object":case"embed":Y("load",e),o=r;break;case"video":case"audio":for(o=0;oLr&&(t.flags|=128,r=!0,Gr(l,!1),t.lanes=4194304)}else{if(!r)if(e=Vl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Gr(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!ne)return Me(t),null}else 2*ae()-l.renderingStartTime>Lr&&n!==1073741824&&(t.flags|=128,r=!0,Gr(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(n=l.last,n!==null?n.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=ae(),t.sibling=null,n=re.current,K(re,r?n&1|2:n&1),t):(Me(t),null);case 22:case 23:return Ya(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?($e&1073741824)!==0&&(Me(t),t.subtreeFlags&6&&(t.flags|=8192)):Me(t),null;case 24:return null;case 25:return null}throw Error(w(156,t.tag))}function Yh(e,t){switch(xa(t),t.tag){case 1:return We(t.type)&&zl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Cr(),Q(qe),Q(Oe),ba(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return za(t),null;case 13:if(Q(re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(w(340));wr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Q(re),null;case 4:return Cr(),null;case 10:return Ia(t.type._context),null;case 22:case 23:return Ya(),null;case 24:return null;default:return null}}var vl=!1,xe=!1,Qh=typeof WeakSet=="function"?WeakSet:Set,A=null;function dr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){se(e,t,r)}else n.current=null}function la(e,t,n){try{n()}catch(r){se(e,t,r)}}var cf=!1;function Zh(e,t){if(Bs=Il,e=ld(),Aa(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var i=0,s=-1,a=-1,u=0,m=0,g=e,h=null;t:for(;;){for(var _;g!==n||o!==0&&g.nodeType!==3||(s=i+o),g!==l||r!==0&&g.nodeType!==3||(a=i+r),g.nodeType===3&&(i+=g.nodeValue.length),(_=g.firstChild)!==null;)h=g,g=_;for(;;){if(g===e)break t;if(h===n&&++u===o&&(s=i),h===l&&++m===r&&(a=i),(_=g.nextSibling)!==null)break;g=h,h=g.parentNode}g=_}n=s===-1||a===-1?null:{start:s,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(qs={focusedElem:e,selectionRange:n},Il=!1,A=t;A!==null;)if(t=A,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,A=e;else for(;A!==null;){t=A;try{var E=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var k=E.memoizedProps,P=E.memoizedState,c=t.stateNode,f=c.getSnapshotBeforeUpdate(t.elementType===t.type?k:pt(t.type,k),P);c.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var p=t.stateNode.containerInfo;p.nodeType===1?p.textContent="":p.nodeType===9&&p.documentElement&&p.removeChild(p.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(w(163))}}catch(v){se(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,A=e;break}A=t.return}return E=cf,cf=!1,E}function lo(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var l=o.destroy;o.destroy=void 0,l!==void 0&&la(t,n,l)}o=o.next}while(o!==r)}}function si(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ia(e){var t=e.ref;if(t!==null){var n=e.stateNode;e.tag,e=n,typeof t=="function"?t(e):t.current=e}}function tp(e){var t=e.alternate;t!==null&&(e.alternate=null,tp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Lt],delete t[Eo],delete t[Gs],delete t[Ih],delete t[Uh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function np(e){return e.tag===5||e.tag===3||e.tag===4}function ff(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||np(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function sa(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Fl));else if(r!==4&&(e=e.child,e!==null))for(sa(e,t,n),e=e.sibling;e!==null;)sa(e,t,n),e=e.sibling}function aa(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(aa(e,t,n),e=e.sibling;e!==null;)aa(e,t,n),e=e.sibling}var _e=null,mt=!1;function Qt(e,t,n){for(n=n.child;n!==null;)rp(e,t,n),n=n.sibling}function rp(e,t,n){if(Nt&&typeof Nt.onCommitFiberUnmount=="function")try{Nt.onCommitFiberUnmount(Jl,n)}catch{}switch(n.tag){case 5:xe||dr(n,t);case 6:var r=_e,o=mt;_e=null,Qt(e,t,n),_e=r,mt=o,_e!==null&&(mt?(e=_e,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):_e.removeChild(n.stateNode));break;case 18:_e!==null&&(mt?(e=_e,n=n.stateNode,e.nodeType===8?fs(e.parentNode,n):e.nodeType===1&&fs(e,n),mo(e)):fs(_e,n.stateNode));break;case 4:r=_e,o=mt,_e=n.stateNode.containerInfo,mt=!0,Qt(e,t,n),_e=r,mt=o;break;case 0:case 11:case 14:case 15:if(!xe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var l=o,i=l.destroy;l=l.tag,i!==void 0&&((l&2)!==0||(l&4)!==0)&&la(n,t,i),o=o.next}while(o!==r)}Qt(e,t,n);break;case 1:if(!xe&&(dr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){se(n,t,s)}Qt(e,t,n);break;case 21:Qt(e,t,n);break;case 22:n.mode&1?(xe=(r=xe)||n.memoizedState!==null,Qt(e,t,n),xe=r):Qt(e,t,n);break;default:Qt(e,t,n)}}function df(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Qh),t.forEach(function(r){var o=sv.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function dt(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=i),r&=~l}if(r=o,r=ae()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ev(r/1960))-r,10e?16:e,rn===null)var r=!1;else{if(e=rn,rn=null,Yl=0,(H&6)!==0)throw Error(w(331));var o=H;for(H|=4,A=e.current;A!==null;){var l=A,i=l.child;if((A.flags&16)!==0){var s=l.deletions;if(s!==null){for(var a=0;aae()-$a?Un(e,0):Xa|=n),Ve(e,t)}function fp(e,t){t===0&&((e.mode&1)===0?t=1:(t=ol,ol<<=1,(ol&130023424)===0&&(ol=4194304)));var n=Ue();e=qt(e,t),e!==null&&(Lo(e,t,n),Ve(e,n))}function iv(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),fp(e,n)}function sv(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(w(314))}r!==null&&r.delete(t),fp(e,n)}var dp;dp=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qe.current)Be=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Be=!1,$h(e,t,n);Be=(e.flags&131072)!==0}else Be=!1,ne&&(t.flags&1048576)!==0&&hd(t,jl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;kl(e,t),e=t.pendingProps;var o=_r(t,Oe.current);yr(t,n),o=ja(null,t,r,e,o,n);var l=Ba();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,We(r)?(l=!0,bl(t)):l=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Ra(t),o.updater=ii,t.stateNode=o,o._reactInternals=t,Zs(t,r,e,n),t=ta(null,t,r,!0,l,n)):(t.tag=0,ne&&l&&Ma(t),Ie(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(kl(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=uv(r),e=pt(r,e),o){case 0:t=ea(null,t,r,e,n);break e;case 1:t=sf(null,t,r,e,n);break e;case 11:t=of(null,t,r,e,n);break e;case 14:t=lf(null,t,r,pt(r.type,e),n);break e}throw Error(w(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:pt(r,o),ea(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:pt(r,o),sf(e,t,r,o,n);case 3:e:{if(Kd(t),e===null)throw Error(w(387));r=t.pendingProps,l=t.memoizedState,o=l.element,wd(e,t),Wl(t,r,null,n);var i=t.memoizedState;if(r=i.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){o=kr(Error(w(423)),t),t=af(e,t,r,n,o);break e}else if(r!==o){o=kr(Error(w(424)),t),t=af(e,t,r,n,o);break e}else for(Ke=an(t.stateNode.containerInfo.firstChild),Ye=t,ne=!0,gt=null,n=Sd(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(wr(),r===o){t=Wt(e,t,n);break e}Ie(e,t,r,n)}t=t.child}return t;case 5:return Td(t),e===null&&Ks(t),r=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,Ws(r,o)?i=null:l!==null&&Ws(r,l)&&(t.flags|=32),$d(e,t),Ie(e,t,i,n),t.child;case 6:return e===null&&Ks(t),null;case 13:return Yd(e,t,n);case 4:return Fa(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Tr(t,null,r,n):Ie(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:pt(r,o),of(e,t,r,o,n);case 7:return Ie(e,t,t.pendingProps,n),t.child;case 8:return Ie(e,t,t.pendingProps.children,n),t.child;case 12:return Ie(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value,K(Bl,r._currentValue),r._currentValue=i,l!==null)if(yt(l.value,i)){if(l.children===o.children&&!qe.current){t=Wt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var s=l.dependencies;if(s!==null){i=l.child;for(var a=s.firstContext;a!==null;){if(a.context===r){if(l.tag===1){a=Ht(-1,n&-n),a.tag=2;var u=l.updateQueue;if(u!==null){u=u.shared;var m=u.pending;m===null?a.next=a:(a.next=m.next,m.next=a),u.pending=a}}l.lanes|=n,a=l.alternate,a!==null&&(a.lanes|=n),Ys(l.return,n,t),s.lanes|=n;break}a=a.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(w(341));i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Ys(i,n,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}Ie(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,yr(t,n),o=at(o),r=r(o),t.flags|=1,Ie(e,t,r,n),t.child;case 14:return r=t.type,o=pt(r,t.pendingProps),o=pt(r.type,o),lf(e,t,r,o,n);case 15:return Gd(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:pt(r,o),kl(e,t),t.tag=1,We(r)?(e=!0,bl(t)):e=!1,yr(t,n),qd(t,r,o),Zs(t,r,o,n),ta(null,t,r,!0,e,n);case 19:return Qd(e,t,n);case 22:return Xd(e,t,n)}throw Error(w(156,t.tag))};function pp(e,t){return Hf(e,t)}function av(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function it(e,t,n,r){return new av(e,t,n,r)}function Za(e){return e=e.prototype,!(!e||!e.isReactComponent)}function uv(e){if(typeof e=="function")return Za(e)?1:0;if(e!=null){if(e=e.$$typeof,e===va)return 11;if(e===ya)return 14}return 2}function dn(e,t){var n=e.alternate;return n===null?(n=it(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Al(e,t,n,r,o,l){var i=2;if(r=e,typeof e=="function")Za(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case rr:return Rn(n.children,o,l,t);case ha:i=8,o|=8;break;case ws:return e=it(12,n,t,o|2),e.elementType=ws,e.lanes=l,e;case Ts:return e=it(13,n,t,o),e.elementType=Ts,e.lanes=l,e;case Cs:return e=it(19,n,t,o),e.elementType=Cs,e.lanes=l,e;case Tf:return ui(n,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _f:i=10;break e;case wf:i=9;break e;case va:i=11;break e;case ya:i=14;break e;case Zt:i=16,r=null;break e}throw Error(w(130,e==null?e:typeof e,""))}return t=it(i,n,t,o),t.elementType=e,t.type=r,t.lanes=l,t}function Rn(e,t,n,r){return e=it(7,e,r,t),e.lanes=n,e}function ui(e,t,n,r){return e=it(22,e,r,t),e.elementType=Tf,e.lanes=n,e.stateNode={isHidden:!1},e}function Es(e,t,n){return e=it(6,e,null,t),e.lanes=n,e}function Ss(e,t,n){return t=it(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function cv(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=rs(0),this.expirationTimes=rs(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=rs(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Ja(e,t,n,r,o,l,i,s,a){return e=new cv(e,t,n,s,a),t===1?(t=1,l===!0&&(t|=8)):t=0,l=it(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ra(l),e}function fv(e,t,n){var r=3{"use strict";function yp(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(yp)}catch(e){console.error(e)}}yp(),Ep.exports=vp()});var wp=Le(ru=>{"use strict";var _p=Sp();ru.createRoot=_p.createRoot,ru.hydrateRoot=_p.hydrateRoot;var A0});var ou=Le((n1,hv)=>{hv.exports={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` -`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}});var Up=Le((r1,vv)=>{vv.exports={Aacute:"\xC1",aacute:"\xE1",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",AElig:"\xC6",aelig:"\xE6",Agrave:"\xC0",agrave:"\xE0",amp:"&",AMP:"&",Aring:"\xC5",aring:"\xE5",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",brvbar:"\xA6",Ccedil:"\xC7",ccedil:"\xE7",cedil:"\xB8",cent:"\xA2",copy:"\xA9",COPY:"\xA9",curren:"\xA4",deg:"\xB0",divide:"\xF7",Eacute:"\xC9",eacute:"\xE9",Ecirc:"\xCA",ecirc:"\xEA",Egrave:"\xC8",egrave:"\xE8",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE",gt:">",GT:">",Iacute:"\xCD",iacute:"\xED",Icirc:"\xCE",icirc:"\xEE",iexcl:"\xA1",Igrave:"\xCC",igrave:"\xEC",iquest:"\xBF",Iuml:"\xCF",iuml:"\xEF",laquo:"\xAB",lt:"<",LT:"<",macr:"\xAF",micro:"\xB5",middot:"\xB7",nbsp:"\xA0",not:"\xAC",Ntilde:"\xD1",ntilde:"\xF1",Oacute:"\xD3",oacute:"\xF3",Ocirc:"\xD4",ocirc:"\xF4",Ograve:"\xD2",ograve:"\xF2",ordf:"\xAA",ordm:"\xBA",Oslash:"\xD8",oslash:"\xF8",Otilde:"\xD5",otilde:"\xF5",Ouml:"\xD6",ouml:"\xF6",para:"\xB6",plusmn:"\xB1",pound:"\xA3",quot:'"',QUOT:'"',raquo:"\xBB",reg:"\xAE",REG:"\xAE",sect:"\xA7",shy:"\xAD",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",szlig:"\xDF",THORN:"\xDE",thorn:"\xFE",times:"\xD7",Uacute:"\xDA",uacute:"\xFA",Ucirc:"\xDB",ucirc:"\xFB",Ugrave:"\xD9",ugrave:"\xF9",uml:"\xA8",Uuml:"\xDC",uuml:"\xFC",Yacute:"\xDD",yacute:"\xFD",yen:"\xA5",yuml:"\xFF"}});var lu=Le((o1,yv)=>{yv.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}});var Rp=Le((l1,Ev)=>{Ev.exports={"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}});var zp=Le(Oo=>{"use strict";var Sv=Oo&&Oo.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Oo,"__esModule",{value:!0});var Fp=Sv(Rp()),_v=String.fromCodePoint||function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function wv(e){return e>=55296&&e<=57343||e>1114111?"\uFFFD":(e in Fp.default&&(e=Fp.default[e]),_v(e))}Oo.default=wv});var su=Le(xt=>{"use strict";var mi=xt&&xt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xt,"__esModule",{value:!0});xt.decodeHTML=xt.decodeHTMLStrict=xt.decodeXML=void 0;var iu=mi(ou()),Tv=mi(Up()),Cv=mi(lu()),bp=mi(zp()),kv=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;xt.decodeXML=jp(Cv.default);xt.decodeHTMLStrict=jp(iu.default);function jp(e){var t=Bp(e);return function(n){return String(n).replace(kv,t)}}var Hp=function(e,t){return e{"use strict";var qp=Ge&&Ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ge,"__esModule",{value:!0});Ge.escapeUTF8=Ge.escape=Ge.encodeNonAsciiHTML=Ge.encodeHTML=Ge.encodeXML=void 0;var Lv=qp(lu()),Wp=Gp(Lv.default),Vp=Xp(Wp);Ge.encodeXML=Yp(Wp);var Nv=qp(ou()),au=Gp(Nv.default),Av=Xp(au);Ge.encodeHTML=xv(au,Av);Ge.encodeNonAsciiHTML=Yp(au);function Gp(e){return Object.keys(e).sort().reduce(function(t,n){return t[e[n]]="&"+n+";",t},{})}function Xp(e){for(var t=[],n=[],r=0,o=Object.keys(e);r1?Mv(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}function xv(e,t){return function(n){return n.replace(t,function(r){return e[r]}).replace($p,gi)}}var Kp=new RegExp(Vp.source+"|"+$p.source,"g");function Ov(e){return e.replace(Kp,gi)}Ge.escape=Ov;function Dv(e){return e.replace(Vp,gi)}Ge.escapeUTF8=Dv;function Yp(e){return function(t){return t.replace(Kp,function(n){return e[n]||gi(n)})}}});var Zp=Le(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.decodeXMLStrict=U.decodeHTML5Strict=U.decodeHTML4Strict=U.decodeHTML5=U.decodeHTML4=U.decodeHTMLStrict=U.decodeHTML=U.decodeXML=U.encodeHTML5=U.encodeHTML4=U.escapeUTF8=U.escape=U.encodeNonAsciiHTML=U.encodeHTML=U.encodeXML=U.encode=U.decodeStrict=U.decode=void 0;var hi=su(),Qp=uu();function Pv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTML)(e)}U.decode=Pv;function Iv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTMLStrict)(e)}U.decodeStrict=Iv;function Uv(e,t){return(!t||t<=0?Qp.encodeXML:Qp.encodeHTML)(e)}U.encode=Uv;var Wn=uu();Object.defineProperty(U,"encodeXML",{enumerable:!0,get:function(){return Wn.encodeXML}});Object.defineProperty(U,"encodeHTML",{enumerable:!0,get:function(){return Wn.encodeHTML}});Object.defineProperty(U,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return Wn.encodeNonAsciiHTML}});Object.defineProperty(U,"escape",{enumerable:!0,get:function(){return Wn.escape}});Object.defineProperty(U,"escapeUTF8",{enumerable:!0,get:function(){return Wn.escapeUTF8}});Object.defineProperty(U,"encodeHTML4",{enumerable:!0,get:function(){return Wn.encodeHTML}});Object.defineProperty(U,"encodeHTML5",{enumerable:!0,get:function(){return Wn.encodeHTML}});var _n=su();Object.defineProperty(U,"decodeXML",{enumerable:!0,get:function(){return _n.decodeXML}});Object.defineProperty(U,"decodeHTML",{enumerable:!0,get:function(){return _n.decodeHTML}});Object.defineProperty(U,"decodeHTMLStrict",{enumerable:!0,get:function(){return _n.decodeHTMLStrict}});Object.defineProperty(U,"decodeHTML4",{enumerable:!0,get:function(){return _n.decodeHTML}});Object.defineProperty(U,"decodeHTML5",{enumerable:!0,get:function(){return _n.decodeHTML}});Object.defineProperty(U,"decodeHTML4Strict",{enumerable:!0,get:function(){return _n.decodeHTMLStrict}});Object.defineProperty(U,"decodeHTML5Strict",{enumerable:!0,get:function(){return _n.decodeHTMLStrict}});Object.defineProperty(U,"decodeXMLStrict",{enumerable:!0,get:function(){return _n.decodeXML}})});var um=Le((c1,am)=>{"use strict";function Rv(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Jp(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,i=!1,s;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return l=u.done,u},e:function(u){i=!0,s=u},f:function(){try{!l&&n.return!=null&&n.return()}finally{if(i)throw s}}}}function zv(e,t){if(e){if(typeof e=="string")return em(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return em(e,t)}}function em(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?e*40+55:0,i=t>0?t*40+55:0,s=n>0?n*40+55:0;r[o]=Bv([l,i,s])}function im(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function Bv(e){var t=[],n=lm(e),r;try{for(n.s();!(r=n.n()).done;){var o=r.value;t.push(im(o))}}catch(l){n.e(l)}finally{n.f()}return"#"+t.join("")}function nm(e,t,n,r){var o;return t==="text"?o=Gv(n,r):t==="display"?o=Wv(e,n,r):t==="xterm256Foreground"?o=Ei(e,r.colors[n]):t==="xterm256Background"?o=Si(e,r.colors[n]):t==="rgb"&&(o=qv(e,n)),o}function qv(e,t){t=t.substring(2).slice(0,-1);var n=+t.substr(0,2),r=t.substring(5).split(";"),o=r.map(function(l){return("0"+Number(l).toString(16)).substr(-2)}).join("");return yi(e,(n===38?"color:#":"background-color:#")+o)}function Wv(e,t,n){t=parseInt(t,10);var r={"-1":function(){return"
"},0:function(){return e.length&&sm(e)},1:function(){return wn(e,"b")},3:function(){return wn(e,"i")},4:function(){return wn(e,"u")},8:function(){return yi(e,"display:none")},9:function(){return wn(e,"strike")},22:function(){return yi(e,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return om(e,"i")},24:function(){return om(e,"u")},39:function(){return Ei(e,n.fg)},49:function(){return Si(e,n.bg)},53:function(){return yi(e,"text-decoration:overline")}},o;return r[t]?o=r[t]():4"}).join("")}function vi(e,t){for(var n=[],r=e;r<=t;r++)n.push(r);return n}function Vv(e){return function(t){return(e===null||t.category!==e)&&e!=="all"}}function rm(e){e=parseInt(e,10);var t=null;return e===0?t="all":e===1?t="bold":2")}function yi(e,t){return wn(e,"span",t)}function Ei(e,t){return wn(e,"span","color:"+t)}function Si(e,t){return wn(e,"span","background-color:"+t)}function om(e,t){var n;if(e.slice(-1)[0]===t&&(n=e.pop()),n)return""}function Xv(e,t,n){var r=!1,o=3;function l(){return""}function i(C,L){return n("xterm256Foreground",L),""}function s(C,L){return n("xterm256Background",L),""}function a(C){return t.newline?n("display",-1):n("text",C),""}function u(C,L){r=!0,L.trim().length===0&&(L="0"),L=L.trimRight(";").split(";");var M=lm(L),O;try{for(M.s();!(O=M.n()).done;){var V=O.value;n("display",V)}}catch(I){M.e(I)}finally{M.f()}return""}function m(C){return n("text",C),""}function g(C){return n("rgb",C),""}var h=[{pattern:/^\x08+/,sub:l},{pattern:/^\x1b\[[012]?K/,sub:l},{pattern:/^\x1b\[\(B/,sub:l},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:g},{pattern:/^\x1b\[38;5;(\d+)m/,sub:i},{pattern:/^\x1b\[48;5;(\d+)m/,sub:s},{pattern:/^\n/,sub:a},{pattern:/^\r+\n/,sub:a},{pattern:/^\r/,sub:a},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:u},{pattern:/^\x1b\[\d?J/,sub:l},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:l},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:l},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:m}];function _(C,L){L>o&&r||(r=!1,e=e.replace(C.pattern,C.sub))}var E=[],k=e,P=k.length;e:for(;P>0;){for(var c=0,f=0,p=h.length;f{let l=["system","light","dark"],s=(l.indexOf(e)+1)%l.length;t(l[s])},r=()=>{switch(e){case"light":return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),Ee.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),Ee.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),Ee.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),Ee.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),Ee.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),Ee.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),Ee.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),Ee.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));default:return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),Ee.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),Ee.default.createElement("line",{x1:"12",y1:"17",x2:"12",y2:"21"}))}},o=()=>{switch(e){case"light":return"Theme: Light (click for Dark)";case"dark":return"Theme: Dark (click for System)";default:return"Theme: System (click for Light)"}};return Ee.default.createElement("button",{className:"theme-toggle-btn",onClick:n,title:o(),"aria-label":o()},r())}var Mt=ee(te(),1);var yn=ee(te(),1);function Cp(e,t){let[n,r]=(0,yn.useState)(null),[o,l]=(0,yn.useState)(!0),[i,s]=(0,yn.useState)(null),a=(0,yn.useCallback)(async()=>{try{l(!0),s(null);let u=await fetch(`https://api.github.com/repos/${e}/${t}`);if(!u.ok)throw new Error(`GitHub API error: ${u.status}`);let m=await u.json();r(m.stargazers_count)}catch(u){console.error("Failed to fetch GitHub stars:",u),s(u instanceof Error?u:new Error("Unknown error"))}finally{l(!1)}},[e,t]);return(0,yn.useEffect)(()=>{a()},[a]),{stars:n,isLoading:o,error:i}}function kp(e){return e<1e3?e.toString():e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function Lp({username:e,repo:t,className:n=""}){let{stars:r,isLoading:o,error:l}=Cp(e,t),i=`https://github.com/${e}/${t}`;return l?Mt.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},Mt.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},Mt.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}))):Mt.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:`github-stars-btn ${n}`,title:`Star us on GitHub${r!==null?` (${r.toLocaleString()} stars)`:""}`},Mt.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},Mt.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})),Mt.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"4px"}},Mt.default.createElement("path",{d:"M12 .587l3.668 7.431 8.2 1.192-5.934 5.787 1.4 8.166L12 18.896l-7.334 3.867 1.4-8.166-5.934-5.787 8.2-1.192z"})),Mt.default.createElement("span",{className:o?"stars-loading":"stars-count"},o?"...":r!==null?kp(r):"\u2014"))}var En=ee(te(),1);function Np(e){let t=(0,En.useRef)(null),n=(0,En.useRef)(null),r=(0,En.useRef)(null),o=(0,En.useRef)(0),l=(0,En.useRef)(null);(0,En.useEffect)(()=>{if(n.current||(n.current=document.createElement("canvas"),n.current.width=32,n.current.height=32),r.current||(r.current=new Image,r.current.src="claude-mem-logomark.webp"),!l.current){let g=document.querySelector('link[rel="icon"]');g&&(l.current=g.href)}let i=n.current,s=i.getContext("2d"),a=r.current;if(!s)return;let u=g=>{let h=document.querySelector('link[rel="icon"]');h||(h=document.createElement("link"),h.rel="icon",document.head.appendChild(h)),h.href=g},m=()=>{if(!a.complete){t.current=requestAnimationFrame(m);return}o.current+=2*Math.PI/90,s.clearRect(0,0,32,32),s.save(),s.translate(16,16),s.rotate(o.current),s.drawImage(a,-16,-16,32,32),s.restore(),u(i.toDataURL("image/png")),t.current=requestAnimationFrame(m)};return e?(o.current=0,m()):(t.current&&(cancelAnimationFrame(t.current),t.current=null),l.current&&u(l.current)),()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)}},[e])}function Ap({isConnected:e,projects:t,currentFilter:n,onFilterChange:r,isProcessing:o,queueDepth:l,themePreference:i,onThemeChange:s,onContextPreviewToggle:a}){return Np(o),X.default.createElement("div",{className:"header"},X.default.createElement("h1",null,X.default.createElement("div",{style:{position:"relative",display:"inline-block"}},X.default.createElement("img",{src:"claude-mem-logomark.webp",alt:"",className:`logomark ${o?"spinning":""}`}),l>0&&X.default.createElement("div",{className:"queue-bubble"},l)),X.default.createElement("span",{className:"logo-text"},"claude-mem")),X.default.createElement("div",{className:"status"},X.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Documentation"},X.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},X.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),X.default.createElement("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}))),X.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Follow us on X"},X.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},X.default.createElement("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}))),X.default.createElement("a",{href:"https://discord.gg/J4wttp9vDu",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Join our Discord community"},X.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},X.default.createElement("path",{d:"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"}))),X.default.createElement(Lp,{username:"thedotmack",repo:"claude-mem"}),X.default.createElement("select",{value:n,onChange:u=>r(u.target.value)},X.default.createElement("option",{value:""},"All Projects"),t.map(u=>X.default.createElement("option",{key:u,value:u},u))),X.default.createElement(Tp,{preference:i,onThemeChange:s}),X.default.createElement("button",{className:"settings-btn",onClick:a,title:"Settings"},X.default.createElement("svg",{className:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},X.default.createElement("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),X.default.createElement("circle",{cx:"12",cy:"12",r:"3"})))))}var ue=ee(te(),1);var z=ee(te(),1);function Mr(e){return new Date(e).toLocaleString()}function Mp(e){let t=["/Scripts/","/src/","/plugin/","/docs/"];for(let o of t){let l=e.indexOf(o);if(l!==-1)return e.substring(l+1)}let n=e.indexOf("claude-mem/");if(n!==-1)return e.substring(n+11);let r=e.split("/");return r.length>3?r.slice(-3).join("/"):e}function xp({observation:e}){let[t,n]=(0,z.useState)(!1),[r,o]=(0,z.useState)(!1),l=Mr(e.created_at_epoch),i=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],a=e.files_read?JSON.parse(e.files_read).map(Mp):[],u=e.files_modified?JSON.parse(e.files_modified).map(Mp):[],m=i.length>0||s.length>0||a.length>0||u.length>0;return z.default.createElement("div",{className:"card"},z.default.createElement("div",{className:"card-header"},z.default.createElement("div",{className:"card-header-left"},z.default.createElement("span",{className:`card-type type-${e.type}`},e.type),z.default.createElement("span",{className:"card-project"},e.project)),z.default.createElement("div",{className:"view-mode-toggles"},m&&z.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{n(!t),t||o(!1)}},z.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},z.default.createElement("polyline",{points:"9 11 12 14 22 4"}),z.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),z.default.createElement("span",null,"facts")),e.narrative&&z.default.createElement("button",{className:`view-mode-toggle ${r?"active":""}`,onClick:()=>{o(!r),r||n(!1)}},z.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},z.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),z.default.createElement("polyline",{points:"14 2 14 8 20 8"}),z.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),z.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),z.default.createElement("span",null,"narrative")))),z.default.createElement("div",{className:"card-title"},e.title||"Untitled"),z.default.createElement("div",{className:"view-mode-content"},!t&&!r&&e.subtitle&&z.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&z.default.createElement("ul",{className:"facts-list"},i.map((g,h)=>z.default.createElement("li",{key:h},g))),r&&e.narrative&&z.default.createElement("div",{className:"narrative"},e.narrative)),z.default.createElement("div",{className:"card-meta"},z.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",l),t&&(s.length>0||a.length>0||u.length>0)&&z.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},s.map((g,h)=>z.default.createElement("span",{key:h,style:{padding:"2px 8px",background:"var(--color-type-badge-bg)",color:"var(--color-type-badge-text)",borderRadius:"3px",fontWeight:"500",fontSize:"10px"}},g)),a.length>0&&z.default.createElement("span",{className:"meta-files"},z.default.createElement("span",{className:"file-label"},"read:")," ",a.join(", ")),u.length>0&&z.default.createElement("span",{className:"meta-files"},z.default.createElement("span",{className:"file-label"},"modified:")," ",u.join(", ")))))}var Ce=ee(te(),1);function Op({summary:e}){let t=Mr(e.created_at_epoch),n=[{key:"investigated",label:"Investigated",content:e.investigated,icon:"/icon-thick-investigated.svg"},{key:"learned",label:"Learned",content:e.learned,icon:"/icon-thick-learned.svg"},{key:"completed",label:"Completed",content:e.completed,icon:"/icon-thick-completed.svg"},{key:"next_steps",label:"Next Steps",content:e.next_steps,icon:"/icon-thick-next-steps.svg"}].filter(r=>r.content);return Ce.default.createElement("article",{className:"card summary-card"},Ce.default.createElement("header",{className:"summary-card-header"},Ce.default.createElement("div",{className:"summary-badge-row"},Ce.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),Ce.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&Ce.default.createElement("h2",{className:"summary-title"},e.request)),Ce.default.createElement("div",{className:"summary-sections"},n.map((r,o)=>Ce.default.createElement("section",{key:r.key,className:"summary-section",style:{animationDelay:`${o*50}ms`}},Ce.default.createElement("div",{className:"summary-section-header"},Ce.default.createElement("img",{src:r.icon,alt:r.label,className:`summary-section-icon summary-section-icon--${r.key}`}),Ce.default.createElement("h3",{className:"summary-section-label"},r.label)),Ce.default.createElement("div",{className:"summary-section-content"},r.content)))),Ce.default.createElement("footer",{className:"summary-card-footer"},Ce.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),Ce.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),Ce.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var Gt=ee(te(),1);function Dp({prompt:e}){let t=Mr(e.created_at_epoch);return Gt.default.createElement("div",{className:"card prompt-card"},Gt.default.createElement("div",{className:"card-header"},Gt.default.createElement("div",{className:"card-header-left"},Gt.default.createElement("span",{className:"card-type"},"Prompt"),Gt.default.createElement("span",{className:"card-project"},e.project))),Gt.default.createElement("div",{className:"card-content"},e.prompt_text),Gt.default.createElement("div",{className:"card-meta"},Gt.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var Sn=ee(te(),1);function Pp({targetRef:e}){let[t,n]=(0,Sn.useState)(!1);(0,Sn.useEffect)(()=>{let o=()=>{let i=e.current;i&&n(i.scrollTop>300)},l=e.current;if(l)return l.addEventListener("scroll",o),()=>l.removeEventListener("scroll",o)},[]);let r=()=>{let o=e.current;o&&o.scrollTo({top:0,behavior:"smooth"})};return t?Sn.default.createElement("button",{onClick:r,className:"scroll-to-top","aria-label":"Scroll to top"},Sn.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Sn.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var xo={PAGINATION_PAGE_SIZE:50,LOAD_MORE_THRESHOLD:.1};function Ip({observations:e,summaries:t,prompts:n,onLoadMore:r,isLoading:o,hasMore:l}){let i=(0,ue.useRef)(null),s=(0,ue.useRef)(null),a=(0,ue.useRef)(r);(0,ue.useEffect)(()=>{a.current=r},[r]),(0,ue.useEffect)(()=>{let m=i.current;if(!m)return;let g=new IntersectionObserver(h=>{h[0].isIntersecting&&l&&!o&&a.current?.()},{threshold:xo.LOAD_MORE_THRESHOLD});return g.observe(m),()=>{m&&g.unobserve(m),g.disconnect()}},[l,o]);let u=(0,ue.useMemo)(()=>[...e.map(g=>({...g,itemType:"observation"})),...t.map(g=>({...g,itemType:"summary"})),...n.map(g=>({...g,itemType:"prompt"}))].sort((g,h)=>h.created_at_epoch-g.created_at_epoch),[e,t,n]);return ue.default.createElement("div",{className:"feed",ref:s},ue.default.createElement(Pp,{targetRef:s}),ue.default.createElement("div",{className:"feed-content"},u.map(m=>{let g=`${m.itemType}-${m.id}`;return m.itemType==="observation"?ue.default.createElement(xp,{key:g,observation:m}):m.itemType==="summary"?ue.default.createElement(Op,{key:g,summary:m}):ue.default.createElement(Dp,{key:g,prompt:m})}),u.length===0&&!o&&ue.default.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#8b949e"}},"No items to display"),o&&ue.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e"}},ue.default.createElement("div",{className:"spinner",style:{display:"inline-block",marginRight:"10px"}}),"Loading more..."),l&&!o&&u.length>0&&ue.default.createElement("div",{ref:i,style:{height:"20px",margin:"10px 0"}}),!l&&u.length>0&&ue.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e",fontSize:"14px"}},"No more items to load")))}var y=ee(te(),1);var ge=ee(te(),1),Tm=ee(um(),1);var{entries:ym,setPrototypeOf:cm,isFrozen:Yv,getPrototypeOf:Qv,getOwnPropertyDescriptor:Zv}=Object,{freeze:ze,seal:ct,create:Ti}=Object,{apply:hu,construct:vu}=typeof Reflect<"u"&&Reflect;ze||(ze=function(t){return t});ct||(ct=function(t){return t});hu||(hu=function(t,n){for(var r=arguments.length,o=new Array(r>2?r-2:0),l=2;l1?n-1:0),o=1;o1?n-1:0),o=1;o2&&arguments[2]!==void 0?arguments[2]:Ci;cm&&cm(e,null);let r=t.length;for(;r--;){let o=t[r];if(typeof o=="string"){let l=n(o);l!==o&&(Yv(t)||(t[r]=l),o=l)}e[o]=!0}return e}function o0(e){for(let t=0;t/gm),u0=ct(/\$\{[\w\W]*/gm),c0=ct(/^data-[\-\w.\u00B7-\uFFFF]+$/),f0=ct(/^aria-[\-\w]+$/),Em=ct(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),d0=ct(/^(?:\w+script|data):/i),p0=ct(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Sm=ct(/^html$/i),m0=ct(/^[a-z][.\w]*(-[.\w]+)+$/i),hm=Object.freeze({__proto__:null,ARIA_ATTR:f0,ATTR_WHITESPACE:p0,CUSTOM_ELEMENT:m0,DATA_ATTR:c0,DOCTYPE_NAME:Sm,ERB_EXPR:a0,IS_ALLOWED_URI:Em,IS_SCRIPT_OR_DATA:d0,MUSTACHE_EXPR:s0,TMPLIT_EXPR:u0}),Ro={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},g0=function(){return typeof window>"u"?null:window},h0=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null,o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(r=n.getAttribute(o));let l="dompurify"+(r?"#"+r:"");try{return t.createPolicy(l,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+l+" could not be created."),null}},vm=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function _m(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g0(),t=D=>_m(D);if(t.version="3.3.3",t.removed=[],!e||!e.document||e.document.nodeType!==Ro.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e,r=n,o=r.currentScript,{DocumentFragment:l,HTMLTemplateElement:i,Node:s,Element:a,NodeFilter:u,NamedNodeMap:m=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:g,DOMParser:h,trustedTypes:_}=e,E=a.prototype,k=Uo(E,"cloneNode"),P=Uo(E,"remove"),c=Uo(E,"nextSibling"),f=Uo(E,"childNodes"),p=Uo(E,"parentNode");if(typeof i=="function"){let D=n.createElement("template");D.content&&D.content.ownerDocument&&(n=D.content.ownerDocument)}let v,C="",{implementation:L,createNodeIterator:M,createDocumentFragment:O,getElementsByTagName:V}=n,{importNode:I}=r,j=vm();t.isSupported=typeof ym=="function"&&typeof p=="function"&&L&&L.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:Z,ERB_EXPR:Cn,TMPLIT_EXPR:kn,DATA_ATTR:Ir,ARIA_ATTR:Vn,IS_SCRIPT_OR_DATA:Gn,ATTR_WHITESPACE:Ln,CUSTOM_ELEMENT:he}=hm,{IS_ALLOWED_URI:Xe}=hm,S=null,G=R({},[...dm,...du,...pu,...mu,...pm]),b=null,De=R({},[...mm,...gu,...gm,...wi]),B=Object.seal(Ti(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Dt=null,$t=null,Kt=Object.seal(Ti(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),_u=!0,Ai=!0,wu=!1,Tu=!0,Xn=!1,bo=!0,Nn=!1,Mi=!1,xi=!1,$n=!1,Ho=!1,jo=!1,Cu=!0,ku=!1,bm="user-content-",Oi=!0,Ur=!1,Kn={},_t=null,Di=R({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Lu=null,Nu=R({},["audio","video","img","source","image","track"]),Pi=null,Au=R({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Bo="http://www.w3.org/1998/Math/MathML",qo="http://www.w3.org/2000/svg",Pt="http://www.w3.org/1999/xhtml",Yn=Pt,Ii=!1,Ui=null,Hm=R({},[Bo,qo,Pt],cu),Wo=R({},["mi","mo","mn","ms","mtext"]),Vo=R({},["annotation-xml"]),jm=R({},["title","style","font","a","script"]),Rr=null,Bm=["application/xhtml+xml","text/html"],qm="text/html",de=null,Qn=null,Wm=n.createElement("form"),Mu=function(d){return d instanceof RegExp||d instanceof Function},Ri=function(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Qn&&Qn===d)){if((!d||typeof d!="object")&&(d={}),d=Ot(d),Rr=Bm.indexOf(d.PARSER_MEDIA_TYPE)===-1?qm:d.PARSER_MEDIA_TYPE,de=Rr==="application/xhtml+xml"?cu:Ci,S=et(d,"ALLOWED_TAGS")?R({},d.ALLOWED_TAGS,de):G,b=et(d,"ALLOWED_ATTR")?R({},d.ALLOWED_ATTR,de):De,Ui=et(d,"ALLOWED_NAMESPACES")?R({},d.ALLOWED_NAMESPACES,cu):Hm,Pi=et(d,"ADD_URI_SAFE_ATTR")?R(Ot(Au),d.ADD_URI_SAFE_ATTR,de):Au,Lu=et(d,"ADD_DATA_URI_TAGS")?R(Ot(Nu),d.ADD_DATA_URI_TAGS,de):Nu,_t=et(d,"FORBID_CONTENTS")?R({},d.FORBID_CONTENTS,de):Di,Dt=et(d,"FORBID_TAGS")?R({},d.FORBID_TAGS,de):Ot({}),$t=et(d,"FORBID_ATTR")?R({},d.FORBID_ATTR,de):Ot({}),Kn=et(d,"USE_PROFILES")?d.USE_PROFILES:!1,_u=d.ALLOW_ARIA_ATTR!==!1,Ai=d.ALLOW_DATA_ATTR!==!1,wu=d.ALLOW_UNKNOWN_PROTOCOLS||!1,Tu=d.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Xn=d.SAFE_FOR_TEMPLATES||!1,bo=d.SAFE_FOR_XML!==!1,Nn=d.WHOLE_DOCUMENT||!1,$n=d.RETURN_DOM||!1,Ho=d.RETURN_DOM_FRAGMENT||!1,jo=d.RETURN_TRUSTED_TYPE||!1,xi=d.FORCE_BODY||!1,Cu=d.SANITIZE_DOM!==!1,ku=d.SANITIZE_NAMED_PROPS||!1,Oi=d.KEEP_CONTENT!==!1,Ur=d.IN_PLACE||!1,Xe=d.ALLOWED_URI_REGEXP||Em,Yn=d.NAMESPACE||Pt,Wo=d.MATHML_TEXT_INTEGRATION_POINTS||Wo,Vo=d.HTML_INTEGRATION_POINTS||Vo,B=d.CUSTOM_ELEMENT_HANDLING||{},d.CUSTOM_ELEMENT_HANDLING&&Mu(d.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(B.tagNameCheck=d.CUSTOM_ELEMENT_HANDLING.tagNameCheck),d.CUSTOM_ELEMENT_HANDLING&&Mu(d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(B.attributeNameCheck=d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),d.CUSTOM_ELEMENT_HANDLING&&typeof d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(B.allowCustomizedBuiltInElements=d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Xn&&(Ai=!1),Ho&&($n=!0),Kn&&(S=R({},pm),b=Ti(null),Kn.html===!0&&(R(S,dm),R(b,mm)),Kn.svg===!0&&(R(S,du),R(b,gu),R(b,wi)),Kn.svgFilters===!0&&(R(S,pu),R(b,gu),R(b,wi)),Kn.mathMl===!0&&(R(S,mu),R(b,gm),R(b,wi))),et(d,"ADD_TAGS")||(Kt.tagCheck=null),et(d,"ADD_ATTR")||(Kt.attributeCheck=null),d.ADD_TAGS&&(typeof d.ADD_TAGS=="function"?Kt.tagCheck=d.ADD_TAGS:(S===G&&(S=Ot(S)),R(S,d.ADD_TAGS,de))),d.ADD_ATTR&&(typeof d.ADD_ATTR=="function"?Kt.attributeCheck=d.ADD_ATTR:(b===De&&(b=Ot(b)),R(b,d.ADD_ATTR,de))),d.ADD_URI_SAFE_ATTR&&R(Pi,d.ADD_URI_SAFE_ATTR,de),d.FORBID_CONTENTS&&(_t===Di&&(_t=Ot(_t)),R(_t,d.FORBID_CONTENTS,de)),d.ADD_FORBID_CONTENTS&&(_t===Di&&(_t=Ot(_t)),R(_t,d.ADD_FORBID_CONTENTS,de)),Oi&&(S["#text"]=!0),Nn&&R(S,["html","head","body"]),S.table&&(R(S,["tbody"]),delete Dt.tbody),d.TRUSTED_TYPES_POLICY){if(typeof d.TRUSTED_TYPES_POLICY.createHTML!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof d.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');v=d.TRUSTED_TYPES_POLICY,C=v.createHTML("")}else v===void 0&&(v=h0(_,o)),v!==null&&typeof C=="string"&&(C=v.createHTML(""));ze&&ze(d),Qn=d}},xu=R({},[...du,...pu,...l0]),Ou=R({},[...mu,...i0]),Vm=function(d){let T=p(d);(!T||!T.tagName)&&(T={namespaceURI:Yn,tagName:"template"});let x=Ci(d.tagName),J=Ci(T.tagName);return Ui[d.namespaceURI]?d.namespaceURI===qo?T.namespaceURI===Pt?x==="svg":T.namespaceURI===Bo?x==="svg"&&(J==="annotation-xml"||Wo[J]):!!xu[x]:d.namespaceURI===Bo?T.namespaceURI===Pt?x==="math":T.namespaceURI===qo?x==="math"&&Vo[J]:!!Ou[x]:d.namespaceURI===Pt?T.namespaceURI===qo&&!Vo[J]||T.namespaceURI===Bo&&!Wo[J]?!1:!Ou[x]&&(jm[x]||!xu[x]):!!(Rr==="application/xhtml+xml"&&Ui[d.namespaceURI]):!1},wt=function(d){Do(t.removed,{element:d});try{p(d).removeChild(d)}catch{P(d)}},An=function(d,T){try{Do(t.removed,{attribute:T.getAttributeNode(d),from:T})}catch{Do(t.removed,{attribute:null,from:T})}if(T.removeAttribute(d),d==="is")if($n||Ho)try{wt(T)}catch{}else try{T.setAttribute(d,"")}catch{}},Du=function(d){let T=null,x=null;if(xi)d=""+d;else{let ce=fu(d,/^[\r\n\t ]+/);x=ce&&ce[0]}Rr==="application/xhtml+xml"&&Yn===Pt&&(d=''+d+"");let J=v?v.createHTML(d):d;if(Yn===Pt)try{T=new h().parseFromString(J,Rr)}catch{}if(!T||!T.documentElement){T=L.createDocument(Yn,"template",null);try{T.documentElement.innerHTML=Ii?C:J}catch{}}let ke=T.body||T.documentElement;return d&&x&&ke.insertBefore(n.createTextNode(x),ke.childNodes[0]||null),Yn===Pt?V.call(T,Nn?"html":"body")[0]:Nn?T.documentElement:ke},Pu=function(d){return M.call(d.ownerDocument||d,d,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Fi=function(d){return d instanceof g&&(typeof d.nodeName!="string"||typeof d.textContent!="string"||typeof d.removeChild!="function"||!(d.attributes instanceof m)||typeof d.removeAttribute!="function"||typeof d.setAttribute!="function"||typeof d.namespaceURI!="string"||typeof d.insertBefore!="function"||typeof d.hasChildNodes!="function")},Iu=function(d){return typeof s=="function"&&d instanceof s};function It(D,d,T){_i(D,x=>{x.call(t,d,T,Qn)})}let Uu=function(d){let T=null;if(It(j.beforeSanitizeElements,d,null),Fi(d))return wt(d),!0;let x=de(d.nodeName);if(It(j.uponSanitizeElement,d,{tagName:x,allowedTags:S}),bo&&d.hasChildNodes()&&!Iu(d.firstElementChild)&&Fe(/<[/\w!]/g,d.innerHTML)&&Fe(/<[/\w!]/g,d.textContent)||d.nodeType===Ro.progressingInstruction||bo&&d.nodeType===Ro.comment&&Fe(/<[/\w]/g,d.data))return wt(d),!0;if(!(Kt.tagCheck instanceof Function&&Kt.tagCheck(x))&&(!S[x]||Dt[x])){if(!Dt[x]&&Fu(x)&&(B.tagNameCheck instanceof RegExp&&Fe(B.tagNameCheck,x)||B.tagNameCheck instanceof Function&&B.tagNameCheck(x)))return!1;if(Oi&&!_t[x]){let J=p(d)||d.parentNode,ke=f(d)||d.childNodes;if(ke&&J){let ce=ke.length;for(let He=ce-1;He>=0;--He){let Ut=k(ke[He],!0);Ut.__removalCount=(d.__removalCount||0)+1,J.insertBefore(Ut,c(d))}}}return wt(d),!0}return d instanceof a&&!Vm(d)||(x==="noscript"||x==="noembed"||x==="noframes")&&Fe(/<\/no(script|embed|frames)/i,d.innerHTML)?(wt(d),!0):(Xn&&d.nodeType===Ro.text&&(T=d.textContent,_i([Z,Cn,kn],J=>{T=Po(T,J," ")}),d.textContent!==T&&(Do(t.removed,{element:d.cloneNode()}),d.textContent=T)),It(j.afterSanitizeElements,d,null),!1)},Ru=function(d,T,x){if($t[T]||Cu&&(T==="id"||T==="name")&&(x in n||x in Wm))return!1;if(!(Ai&&!$t[T]&&Fe(Ir,T))){if(!(_u&&Fe(Vn,T))){if(!(Kt.attributeCheck instanceof Function&&Kt.attributeCheck(T,d))){if(!b[T]||$t[T]){if(!(Fu(d)&&(B.tagNameCheck instanceof RegExp&&Fe(B.tagNameCheck,d)||B.tagNameCheck instanceof Function&&B.tagNameCheck(d))&&(B.attributeNameCheck instanceof RegExp&&Fe(B.attributeNameCheck,T)||B.attributeNameCheck instanceof Function&&B.attributeNameCheck(T,d))||T==="is"&&B.allowCustomizedBuiltInElements&&(B.tagNameCheck instanceof RegExp&&Fe(B.tagNameCheck,x)||B.tagNameCheck instanceof Function&&B.tagNameCheck(x))))return!1}else if(!Pi[T]){if(!Fe(Xe,Po(x,Ln,""))){if(!((T==="src"||T==="xlink:href"||T==="href")&&d!=="script"&&t0(x,"data:")===0&&Lu[d])){if(!(wu&&!Fe(Gn,Po(x,Ln,"")))){if(x)return!1}}}}}}}return!0},Fu=function(d){return d!=="annotation-xml"&&fu(d,he)},zu=function(d){It(j.beforeSanitizeAttributes,d,null);let{attributes:T}=d;if(!T||Fi(d))return;let x={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:b,forceKeepAttr:void 0},J=T.length;for(;J--;){let ke=T[J],{name:ce,namespaceURI:He,value:Ut}=ke,Zn=de(ce),zi=Ut,Se=ce==="value"?zi:n0(zi);if(x.attrName=Zn,x.attrValue=Se,x.keepAttr=!0,x.forceKeepAttr=void 0,It(j.uponSanitizeAttribute,d,x),Se=x.attrValue,ku&&(Zn==="id"||Zn==="name")&&(An(ce,d),Se=bm+Se),bo&&Fe(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Se)){An(ce,d);continue}if(Zn==="attributename"&&fu(Se,"href")){An(ce,d);continue}if(x.forceKeepAttr)continue;if(!x.keepAttr){An(ce,d);continue}if(!Tu&&Fe(/\/>/i,Se)){An(ce,d);continue}Xn&&_i([Z,Cn,kn],Hu=>{Se=Po(Se,Hu," ")});let bu=de(d.nodeName);if(!Ru(bu,Zn,Se)){An(ce,d);continue}if(v&&typeof _=="object"&&typeof _.getAttributeType=="function"&&!He)switch(_.getAttributeType(bu,Zn)){case"TrustedHTML":{Se=v.createHTML(Se);break}case"TrustedScriptURL":{Se=v.createScriptURL(Se);break}}if(Se!==zi)try{He?d.setAttributeNS(He,ce,Se):d.setAttribute(ce,Se),Fi(d)?wt(d):fm(t.removed)}catch{An(ce,d)}}It(j.afterSanitizeAttributes,d,null)},Gm=function D(d){let T=null,x=Pu(d);for(It(j.beforeSanitizeShadowDOM,d,null);T=x.nextNode();)It(j.uponSanitizeShadowNode,T,null),Uu(T),zu(T),T.content instanceof l&&D(T.content);It(j.afterSanitizeShadowDOM,d,null)};return t.sanitize=function(D){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},T=null,x=null,J=null,ke=null;if(Ii=!D,Ii&&(D=""),typeof D!="string"&&!Iu(D))if(typeof D.toString=="function"){if(D=D.toString(),typeof D!="string")throw Io("dirty is not a string, aborting")}else throw Io("toString is not a function");if(!t.isSupported)return D;if(Mi||Ri(d),t.removed=[],typeof D=="string"&&(Ur=!1),Ur){if(D.nodeName){let Ut=de(D.nodeName);if(!S[Ut]||Dt[Ut])throw Io("root node is forbidden and cannot be sanitized in-place")}}else if(D instanceof s)T=Du(""),x=T.ownerDocument.importNode(D,!0),x.nodeType===Ro.element&&x.nodeName==="BODY"||x.nodeName==="HTML"?T=x:T.appendChild(x);else{if(!$n&&!Xn&&!Nn&&D.indexOf("<")===-1)return v&&jo?v.createHTML(D):D;if(T=Du(D),!T)return $n?null:jo?C:""}T&&xi&&wt(T.firstChild);let ce=Pu(Ur?D:T);for(;J=ce.nextNode();)Uu(J),zu(J),J.content instanceof l&&Gm(J.content);if(Ur)return D;if($n){if(Ho)for(ke=O.call(T.ownerDocument);T.firstChild;)ke.appendChild(T.firstChild);else ke=T;return(b.shadowroot||b.shadowrootmode)&&(ke=I.call(r,ke,!0)),ke}let He=Nn?T.outerHTML:T.innerHTML;return Nn&&S["!doctype"]&&T.ownerDocument&&T.ownerDocument.doctype&&T.ownerDocument.doctype.name&&Fe(Sm,T.ownerDocument.doctype.name)&&(He=" -`+He),Xn&&_i([Z,Cn,kn],Ut=>{He=Po(He,Ut," ")}),v&&jo?v.createHTML(He):He},t.setConfig=function(){let D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ri(D),Mi=!0},t.clearConfig=function(){Qn=null,Mi=!1},t.isValidAttribute=function(D,d,T){Qn||Ri({});let x=de(D),J=de(d);return Ru(x,J,T)},t.addHook=function(D,d){typeof d=="function"&&Do(j[D],d)},t.removeHook=function(D,d){if(d!==void 0){let T=Jv(j[D],d);return T===-1?void 0:e0(j[D],T,1)[0]}return fm(j[D])},t.removeHooks=function(D){j[D]=[]},t.removeAllHooks=function(){j=vm()},t}var wm=_m();var v0=new Tm.default({fg:"#dcd6cc",bg:"#252320",newline:!1,escapeXML:!0,stream:!1});function Cm({content:e,isLoading:t=!1,className:n=""}){let r=(0,ge.useRef)(null),o=(0,ge.useRef)(0),[l,i]=(0,ge.useState)(!0),s=(0,ge.useMemo)(()=>{if(r.current&&(o.current=r.current.scrollTop),!e)return"";let u=v0.toHtml(e);return wm.sanitize(u,{ALLOWED_TAGS:["span","div","br"],ALLOWED_ATTR:["style","class"],ALLOW_DATA_ATTR:!1})},[e]);return(0,ge.useLayoutEffect)(()=>{r.current&&o.current>0&&(r.current.scrollTop=o.current)},[s]),ge.default.createElement("div",{className:n,style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border-primary)",borderRadius:"8px",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",boxShadow:"0 10px 40px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3)"}},ge.default.createElement("div",{style:{padding:"12px",borderBottom:"1px solid var(--color-border-primary)",display:"flex",gap:"6px",alignItems:"center",backgroundColor:"var(--color-bg-header)"}},ge.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ff5f57"}}),ge.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ffbd2e"}}),ge.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#28c840"}}),ge.default.createElement("button",{onClick:()=>i(!l),style:{marginLeft:"auto",padding:"4px 8px",fontSize:"11px",fontWeight:500,color:l?"var(--color-text-secondary)":"var(--color-accent-primary)",backgroundColor:"transparent",border:"1px solid",borderColor:l?"var(--color-border-primary)":"var(--color-accent-primary)",borderRadius:"4px",cursor:"pointer",transition:"all 0.2s",whiteSpace:"nowrap"},onMouseEnter:u=>{u.currentTarget.style.borderColor="var(--color-accent-primary)",u.currentTarget.style.color="var(--color-accent-primary)"},onMouseLeave:u=>{u.currentTarget.style.borderColor=l?"var(--color-border-primary)":"var(--color-accent-primary)",u.currentTarget.style.color=l?"var(--color-text-secondary)":"var(--color-accent-primary)"},title:l?"Disable word wrap (scroll horizontally)":"Enable word wrap"},l?"\u2922 Wrap":"\u21C4 Scroll")),t?ge.default.createElement("div",{style:{padding:"16px",fontFamily:"var(--font-terminal)",fontSize:"12px",color:"var(--color-text-secondary)"}},"Loading preview..."):ge.default.createElement("div",{style:{position:"relative",flex:1,overflow:"hidden"}},ge.default.createElement("pre",{ref:r,style:{padding:"16px",margin:0,fontFamily:"var(--font-terminal)",fontSize:"12px",lineHeight:"1.6",overflow:"auto",color:"var(--color-text-primary)",backgroundColor:"var(--color-bg-card)",whiteSpace:l?"pre-wrap":"pre",wordBreak:l?"break-word":"normal",position:"absolute",inset:0},dangerouslySetInnerHTML:{__html:s}})))}var Et=ee(te(),1);function km(e){let[t,n]=(0,Et.useState)(""),[r,o]=(0,Et.useState)(!1),[l,i]=(0,Et.useState)(null),[s,a]=(0,Et.useState)([]),[u,m]=(0,Et.useState)(null);(0,Et.useEffect)(()=>{async function h(){try{let E=await(await fetch("/api/projects")).json();E.projects&&E.projects.length>0&&(a(E.projects),m(E.projects[0]))}catch(_){console.error("Failed to fetch projects:",_)}}h()},[]);let g=(0,Et.useCallback)(async()=>{if(!u){n("No project selected");return}o(!0),i(null);let h=new URLSearchParams({project:u}),_=await fetch(`/api/context/preview?${h}`),E=await _.text();_.ok?n(E):i("Failed to load preview"),o(!1)},[u]);return(0,Et.useEffect)(()=>{let h=setTimeout(()=>{g()},300);return()=>clearTimeout(h)},[e,g]),{preview:t,isLoading:r,error:l,refresh:g,projects:s,selectedProject:u,setSelectedProject:m}}function yu({title:e,description:t,children:n,defaultOpen:r=!0}){let[o,l]=(0,y.useState)(r);return y.default.createElement("div",{className:`settings-section-collapsible ${o?"open":""}`},y.default.createElement("button",{className:"section-header-btn",onClick:()=>l(!o),type:"button"},y.default.createElement("div",{className:"section-header-content"},y.default.createElement("span",{className:"section-title"},e),t&&y.default.createElement("span",{className:"section-description"},t)),y.default.createElement("svg",{className:`chevron-icon ${o?"rotated":""}`,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("polyline",{points:"6 9 12 15 18 9"}))),o&&y.default.createElement("div",{className:"section-content"},n))}function tt({label:e,tooltip:t,children:n}){return y.default.createElement("div",{className:"form-field"},y.default.createElement("label",{className:"form-field-label"},e,t&&y.default.createElement("span",{className:"tooltip-trigger",title:t},y.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),y.default.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),y.default.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})))),n)}function xr({id:e,label:t,description:n,checked:r,onChange:o,disabled:l}){return y.default.createElement("div",{className:"toggle-row"},y.default.createElement("div",{className:"toggle-info"},y.default.createElement("label",{htmlFor:e,className:"toggle-label"},t),n&&y.default.createElement("span",{className:"toggle-description"},n)),y.default.createElement("button",{type:"button",id:e,role:"switch","aria-checked":r,className:`toggle-switch ${r?"on":""} ${l?"disabled":""}`,onClick:()=>!l&&o(!r),disabled:l},y.default.createElement("span",{className:"toggle-knob"})))}function Lm({isOpen:e,onClose:t,settings:n,onSave:r,isSaving:o,saveStatus:l}){let[i,s]=(0,y.useState)(n);(0,y.useEffect)(()=>{s(n)},[n]);let{preview:a,isLoading:u,error:m,projects:g,selectedProject:h,setSelectedProject:_}=km(i),E=(0,y.useCallback)((c,f)=>{let p={...i,[c]:f};s(p)},[i]),k=(0,y.useCallback)(()=>{r(i)},[i,r]),P=(0,y.useCallback)(c=>{let p=i[c]==="true"?"false":"true";E(c,p)},[i,E]);return(0,y.useEffect)(()=>{let c=f=>{f.key==="Escape"&&t()};if(e)return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[e,t]),e?y.default.createElement("div",{className:"modal-backdrop",onClick:t},y.default.createElement("div",{className:"context-settings-modal",onClick:c=>c.stopPropagation()},y.default.createElement("div",{className:"modal-header"},y.default.createElement("h2",null,"Settings"),y.default.createElement("div",{className:"header-controls"},y.default.createElement("label",{className:"preview-selector"},"Preview for:",y.default.createElement("select",{value:h||"",onChange:c=>_(c.target.value)},g.map(c=>y.default.createElement("option",{key:c,value:c},c)))),y.default.createElement("button",{onClick:t,className:"modal-close-btn",title:"Close (Esc)"},y.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),y.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),y.default.createElement("div",{className:"modal-body"},y.default.createElement("div",{className:"preview-column"},y.default.createElement("div",{className:"preview-content"},m?y.default.createElement("div",{style:{color:"#ff6b6b"}},"Error loading preview: ",m):y.default.createElement(Cm,{content:a,isLoading:u}))),y.default.createElement("div",{className:"settings-column"},y.default.createElement(yu,{title:"Loading",description:"How many observations to inject"},y.default.createElement(tt,{label:"Observations",tooltip:"Number of recent observations to include in context (1-200)"},y.default.createElement("input",{type:"number",min:"1",max:"200",value:i.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",onChange:c=>E("CLAUDE_MEM_CONTEXT_OBSERVATIONS",c.target.value)})),y.default.createElement(tt,{label:"Sessions",tooltip:"Number of recent sessions to pull observations from (1-50)"},y.default.createElement("input",{type:"number",min:"1",max:"50",value:i.CLAUDE_MEM_CONTEXT_SESSION_COUNT||"10",onChange:c=>E("CLAUDE_MEM_CONTEXT_SESSION_COUNT",c.target.value)}))),y.default.createElement(yu,{title:"Display",description:"What to show in context tables"},y.default.createElement("div",{className:"display-subsection"},y.default.createElement("span",{className:"subsection-label"},"Full Observations"),y.default.createElement(tt,{label:"Count",tooltip:"How many observations show expanded details (0-20)"},y.default.createElement("input",{type:"number",min:"0",max:"20",value:i.CLAUDE_MEM_CONTEXT_FULL_COUNT||"5",onChange:c=>E("CLAUDE_MEM_CONTEXT_FULL_COUNT",c.target.value)})),y.default.createElement(tt,{label:"Field",tooltip:"Which field to expand for full observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_CONTEXT_FULL_FIELD||"narrative",onChange:c=>E("CLAUDE_MEM_CONTEXT_FULL_FIELD",c.target.value)},y.default.createElement("option",{value:"narrative"},"Narrative"),y.default.createElement("option",{value:"facts"},"Facts")))),y.default.createElement("div",{className:"display-subsection"},y.default.createElement("span",{className:"subsection-label"},"Token Economics"),y.default.createElement("div",{className:"toggle-group"},y.default.createElement(xr,{id:"show-read-tokens",label:"Read cost",description:"Tokens to read this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS")}),y.default.createElement(xr,{id:"show-work-tokens",label:"Work investment",description:"Tokens spent creating this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS")}),y.default.createElement(xr,{id:"show-savings-amount",label:"Savings",description:"Total tokens saved by reusing context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT")})))),y.default.createElement(yu,{title:"Advanced",description:"AI provider and model selection",defaultOpen:!1},y.default.createElement(tt,{label:"AI Provider",tooltip:"Choose between Claude (via Agent SDK) or Gemini (via REST API)"},y.default.createElement("select",{value:i.CLAUDE_MEM_PROVIDER||"claude",onChange:c=>E("CLAUDE_MEM_PROVIDER",c.target.value)},y.default.createElement("option",{value:"claude"},"Claude (uses your Claude account)"),y.default.createElement("option",{value:"gemini"},"Gemini (uses API key)"),y.default.createElement("option",{value:"openrouter"},"OpenRouter (multi-model)"))),i.CLAUDE_MEM_PROVIDER==="claude"&&y.default.createElement(tt,{label:"Claude Model",tooltip:"Claude model used for generating observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_MODEL||"haiku",onChange:c=>E("CLAUDE_MEM_MODEL",c.target.value)},y.default.createElement("option",{value:"haiku"},"haiku (fastest)"),y.default.createElement("option",{value:"sonnet"},"sonnet (balanced)"),y.default.createElement("option",{value:"opus"},"opus (highest quality)"))),i.CLAUDE_MEM_PROVIDER==="gemini"&&y.default.createElement(y.default.Fragment,null,y.default.createElement(tt,{label:"Gemini API Key",tooltip:"Your Google AI Studio API key (or set GEMINI_API_KEY env var)"},y.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_GEMINI_API_KEY||"",onChange:c=>E("CLAUDE_MEM_GEMINI_API_KEY",c.target.value),placeholder:"Enter Gemini API key..."})),y.default.createElement(tt,{label:"Gemini Model",tooltip:"Gemini model used for generating observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_GEMINI_MODEL||"gemini-2.5-flash-lite",onChange:c=>E("CLAUDE_MEM_GEMINI_MODEL",c.target.value)},y.default.createElement("option",{value:"gemini-2.5-flash-lite"},"gemini-2.5-flash-lite (10 RPM free)"),y.default.createElement("option",{value:"gemini-2.5-flash"},"gemini-2.5-flash (5 RPM free)"),y.default.createElement("option",{value:"gemini-3-flash-preview"},"gemini-3-flash-preview (5 RPM free)"))),y.default.createElement("div",{className:"toggle-group",style:{marginTop:"8px"}},y.default.createElement(xr,{id:"gemini-rate-limiting",label:"Rate Limiting",description:"Enable for free tier (10-30 RPM). Disable if you have billing set up (1000+ RPM).",checked:i.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED==="true",onChange:c=>E("CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED",c?"true":"false")}))),i.CLAUDE_MEM_PROVIDER==="openrouter"&&y.default.createElement(y.default.Fragment,null,y.default.createElement(tt,{label:"OpenRouter API Key",tooltip:"Your OpenRouter API key from openrouter.ai (or set OPENROUTER_API_KEY env var)"},y.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_OPENROUTER_API_KEY||"",onChange:c=>E("CLAUDE_MEM_OPENROUTER_API_KEY",c.target.value),placeholder:"Enter OpenRouter API key..."})),y.default.createElement(tt,{label:"OpenRouter Model",tooltip:"Model identifier from OpenRouter (e.g., anthropic/claude-3.5-sonnet, google/gemini-2.0-flash-thinking-exp)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",onChange:c=>E("CLAUDE_MEM_OPENROUTER_MODEL",c.target.value),placeholder:"e.g., xiaomi/mimo-v2-flash:free"})),y.default.createElement(tt,{label:"Site URL (Optional)",tooltip:"Your site URL for OpenRouter analytics (optional)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_SITE_URL||"",onChange:c=>E("CLAUDE_MEM_OPENROUTER_SITE_URL",c.target.value),placeholder:"https://yoursite.com"})),y.default.createElement(tt,{label:"App Name (Optional)",tooltip:"Your app name for OpenRouter analytics (optional)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem",onChange:c=>E("CLAUDE_MEM_OPENROUTER_APP_NAME",c.target.value),placeholder:"claude-mem"}))),y.default.createElement(tt,{label:"Worker Port",tooltip:"Port for the background worker service"},y.default.createElement("input",{type:"number",min:"1024",max:"65535",value:i.CLAUDE_MEM_WORKER_PORT||"37777",onChange:c=>E("CLAUDE_MEM_WORKER_PORT",c.target.value)})),y.default.createElement("div",{className:"toggle-group",style:{marginTop:"12px"}},y.default.createElement(xr,{id:"show-last-summary",label:"Include last summary",description:"Add previous session's summary to context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY")}),y.default.createElement(xr,{id:"show-last-message",label:"Include last message",description:"Add previous session's final message",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE")}))))),y.default.createElement("div",{className:"modal-footer"},y.default.createElement("div",{className:"save-status"},l&&y.default.createElement("span",{className:l.includes("\u2713")?"success":l.includes("\u2717")?"error":""},l)),y.default.createElement("button",{className:"save-btn",onClick:k,disabled:o},o?"Saving...":"Save")))):null}var N=ee(te(),1),Fo=[{key:"DEBUG",label:"Debug",icon:"\u{1F50D}",color:"#8b8b8b"},{key:"INFO",label:"Info",icon:"\u2139\uFE0F",color:"#58a6ff"},{key:"WARN",label:"Warn",icon:"\u26A0\uFE0F",color:"#d29922"},{key:"ERROR",label:"Error",icon:"\u274C",color:"#f85149"}],zo=[{key:"HOOK",label:"Hook",icon:"\u{1FA9D}",color:"#a371f7"},{key:"WORKER",label:"Worker",icon:"\u2699\uFE0F",color:"#58a6ff"},{key:"SDK",label:"SDK",icon:"\u{1F4E6}",color:"#3fb950"},{key:"PARSER",label:"Parser",icon:"\u{1F4C4}",color:"#79c0ff"},{key:"DB",label:"DB",icon:"\u{1F5C4}\uFE0F",color:"#f0883e"},{key:"SYSTEM",label:"System",icon:"\u{1F4BB}",color:"#8b949e"},{key:"HTTP",label:"HTTP",icon:"\u{1F310}",color:"#39d353"},{key:"SESSION",label:"Session",icon:"\u{1F4CB}",color:"#db61a2"},{key:"CHROMA",label:"Chroma",icon:"\u{1F52E}",color:"#a855f7"}];function y0(e){let t=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=e.match(t);if(!n)return{raw:e};let[,r,o,l,i,s]=n,a;return s.startsWith("\u2192")?a="dataIn":s.startsWith("\u2190")?a="dataOut":s.startsWith("\u2713")?a="success":s.startsWith("\u2717")?a="failure":s.startsWith("\u23F1")?a="timing":s.includes("[HAPPY-PATH]")&&(a="happyPath"),{raw:e,timestamp:r,level:o?.trim(),component:l?.trim(),correlationId:i||void 0,message:s,isSpecial:a}}function Nm({isOpen:e,onClose:t}){let[n,r]=(0,N.useState)(""),[o,l]=(0,N.useState)(!1),[i,s]=(0,N.useState)(null),[a,u]=(0,N.useState)(!1),[m,g]=(0,N.useState)(350),[h,_]=(0,N.useState)(!1),E=(0,N.useRef)(0),k=(0,N.useRef)(0),P=(0,N.useRef)(null),c=(0,N.useRef)(!0),[f,p]=(0,N.useState)(new Set(["DEBUG","INFO","WARN","ERROR"])),[v,C]=(0,N.useState)(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[L,M]=(0,N.useState)(!1),O=(0,N.useMemo)(()=>n?n.split(` -`).map(y0):[],[n]),V=(0,N.useMemo)(()=>O.filter(S=>L?S.raw.includes("[ALIGNMENT]"):!S.level||!S.component?!0:f.has(S.level)&&v.has(S.component)),[O,f,v,L]),I=(0,N.useCallback)(()=>{if(!P.current)return!0;let{scrollTop:S,scrollHeight:G,clientHeight:b}=P.current;return G-S-b<50},[]),j=(0,N.useCallback)(()=>{P.current&&c.current&&(P.current.scrollTop=P.current.scrollHeight)},[]),Z=(0,N.useCallback)(async()=>{c.current=I(),l(!0),s(null);try{let S=await fetch("/api/logs");if(!S.ok)throw new Error(`Failed to fetch logs: ${S.statusText}`);let G=await S.json();r(G.logs||"")}catch(S){s(S instanceof Error?S.message:"Unknown error")}finally{l(!1)}},[I]);(0,N.useEffect)(()=>{j()},[n,j]);let Cn=(0,N.useCallback)(async()=>{if(confirm("Are you sure you want to clear all logs?")){l(!0),s(null);try{let S=await fetch("/api/logs/clear",{method:"POST"});if(!S.ok)throw new Error(`Failed to clear logs: ${S.statusText}`);r("")}catch(S){s(S instanceof Error?S.message:"Unknown error")}finally{l(!1)}}},[]),kn=(0,N.useCallback)(S=>{S.preventDefault(),_(!0),E.current=S.clientY,k.current=m},[m]);(0,N.useEffect)(()=>{if(!h)return;let S=b=>{let De=E.current-b.clientY,B=Math.min(Math.max(150,k.current+De),window.innerHeight-100);g(B)},G=()=>{_(!1)};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",G),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",G)}},[h]),(0,N.useEffect)(()=>{e&&(c.current=!0,Z())},[e,Z]),(0,N.useEffect)(()=>{if(!e||!a)return;let S=setInterval(Z,2e3);return()=>clearInterval(S)},[e,a,Z]);let Ir=(0,N.useCallback)(S=>{p(G=>{let b=new Set(G);return b.has(S)?b.delete(S):b.add(S),b})},[]),Vn=(0,N.useCallback)(S=>{C(G=>{let b=new Set(G);return b.has(S)?b.delete(S):b.add(S),b})},[]),Gn=(0,N.useCallback)(S=>{p(S?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),Ln=(0,N.useCallback)(S=>{C(S?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!e)return null;let he=S=>{let G=Fo.find($t=>$t.key===S.level),b=zo.find($t=>$t.key===S.component),De="var(--color-text-primary)",B="normal",Dt="transparent";return S.level==="ERROR"?(De="#f85149",Dt="rgba(248, 81, 73, 0.1)"):S.level==="WARN"?(De="#d29922",Dt="rgba(210, 153, 34, 0.05)"):S.isSpecial==="success"?De="#3fb950":S.isSpecial==="failure"?De="#f85149":S.isSpecial==="happyPath"?De="#d29922":G&&(De=G.color),{color:De,fontWeight:B,backgroundColor:Dt,padding:"1px 0",borderRadius:"2px"}},Xe=(S,G)=>{if(!S.timestamp)return N.default.createElement("div",{key:G,className:"log-line log-line-raw"},S.raw);let b=Fo.find(B=>B.key===S.level),De=zo.find(B=>B.key===S.component);return N.default.createElement("div",{key:G,className:"log-line",style:he(S)},N.default.createElement("span",{className:"log-timestamp"},"[",S.timestamp,"]")," ",N.default.createElement("span",{className:"log-level",style:{color:b?.color},title:S.level},"[",b?.icon||""," ",S.level?.padEnd(5),"]")," ",N.default.createElement("span",{className:"log-component",style:{color:De?.color},title:S.component},"[",De?.icon||""," ",S.component?.padEnd(7),"]")," ",S.correlationId&&N.default.createElement(N.default.Fragment,null,N.default.createElement("span",{className:"log-correlation"},"[",S.correlationId,"]")," "),N.default.createElement("span",{className:"log-message"},S.message))};return N.default.createElement("div",{className:"console-drawer",style:{height:`${m}px`}},N.default.createElement("div",{className:"console-resize-handle",onMouseDown:kn},N.default.createElement("div",{className:"console-resize-bar"})),N.default.createElement("div",{className:"console-header"},N.default.createElement("div",{className:"console-tabs"},N.default.createElement("div",{className:"console-tab active"},"Console")),N.default.createElement("div",{className:"console-controls"},N.default.createElement("label",{className:"console-auto-refresh"},N.default.createElement("input",{type:"checkbox",checked:a,onChange:S=>u(S.target.checked)}),"Auto-refresh"),N.default.createElement("button",{className:"console-control-btn",onClick:Z,disabled:o,title:"Refresh logs"},"\u21BB"),N.default.createElement("button",{className:"console-control-btn",onClick:()=>{c.current=!0,j()},title:"Scroll to bottom"},"\u2B07"),N.default.createElement("button",{className:"console-control-btn console-clear-btn",onClick:Cn,disabled:o,title:"Clear logs"},"\u{1F5D1}"),N.default.createElement("button",{className:"console-control-btn",onClick:t,title:"Close console"},"\u2715"))),N.default.createElement("div",{className:"console-filters"},N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Quick:"),N.default.createElement("div",{className:"console-filter-chips"},N.default.createElement("button",{className:`console-filter-chip ${L?"active":""}`,onClick:()=>M(!L),style:{"--chip-color":"#f0883e"},title:"Show only session alignment logs"},"\u{1F517} Alignment"))),N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Levels:"),N.default.createElement("div",{className:"console-filter-chips"},Fo.map(S=>N.default.createElement("button",{key:S.key,className:`console-filter-chip ${f.has(S.key)?"active":""}`,onClick:()=>Ir(S.key),style:{"--chip-color":S.color},title:S.label},S.icon," ",S.label)),N.default.createElement("button",{className:"console-filter-action",onClick:()=>Gn(f.size===0),title:f.size===Fo.length?"Select none":"Select all"},f.size===Fo.length?"\u25CB":"\u25CF"))),N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Components:"),N.default.createElement("div",{className:"console-filter-chips"},zo.map(S=>N.default.createElement("button",{key:S.key,className:`console-filter-chip ${v.has(S.key)?"active":""}`,onClick:()=>Vn(S.key),style:{"--chip-color":S.color},title:S.label},S.icon," ",S.label)),N.default.createElement("button",{className:"console-filter-action",onClick:()=>Ln(v.size===0),title:v.size===zo.length?"Select none":"Select all"},v.size===zo.length?"\u25CB":"\u25CF")))),i&&N.default.createElement("div",{className:"console-error"},"\u26A0 ",i),N.default.createElement("div",{className:"console-content",ref:P},N.default.createElement("div",{className:"console-logs"},V.length===0?N.default.createElement("div",{className:"log-line log-line-empty"},"No logs available"):V.map((S,G)=>Xe(S,G)))))}var nt=ee(te(),1);var St={OBSERVATIONS:"/api/observations",SUMMARIES:"/api/summaries",PROMPTS:"/api/prompts",SETTINGS:"/api/settings",STATS:"/api/stats",PROCESSING_STATUS:"/api/processing-status",STREAM:"/stream"};var ki={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function Am(){let[e,t]=(0,nt.useState)([]),[n,r]=(0,nt.useState)([]),[o,l]=(0,nt.useState)([]),[i,s]=(0,nt.useState)([]),[a,u]=(0,nt.useState)(!1),[m,g]=(0,nt.useState)(!1),[h,_]=(0,nt.useState)(0),E=(0,nt.useRef)(null),k=(0,nt.useRef)();return(0,nt.useEffect)(()=>{let P=()=>{E.current&&E.current.close();let c=new EventSource(St.STREAM);E.current=c,c.onopen=()=>{console.log("[SSE] Connected"),u(!0),k.current&&clearTimeout(k.current)},c.onerror=f=>{console.error("[SSE] Connection error:",f),u(!1),c.close(),k.current=setTimeout(()=>{k.current=void 0,console.log("[SSE] Attempting to reconnect..."),P()},ki.SSE_RECONNECT_DELAY_MS)},c.onmessage=f=>{let p=JSON.parse(f.data);switch(p.type){case"initial_load":console.log("[SSE] Initial load:",{projects:p.projects?.length||0}),s(p.projects||[]);break;case"new_observation":p.observation&&(console.log("[SSE] New observation:",p.observation.id),t(v=>[p.observation,...v]));break;case"new_summary":if(p.summary){let v=p.summary;console.log("[SSE] New summary:",v.id),r(C=>[v,...C])}break;case"new_prompt":if(p.prompt){let v=p.prompt;console.log("[SSE] New prompt:",v.id),l(C=>[v,...C])}break;case"processing_status":typeof p.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",p.isProcessing,"Queue depth:",p.queueDepth),g(p.isProcessing),_(p.queueDepth||0));break}}};return P(),()=>{E.current&&E.current.close(),k.current&&clearTimeout(k.current)}},[]),{observations:e,summaries:n,prompts:o,projects:i,isProcessing:m,queueDepth:h,isConnected:a}}var Or=ee(te(),1);var ie={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]"};function Mm(){let[e,t]=(0,Or.useState)(ie),[n,r]=(0,Or.useState)(!1),[o,l]=(0,Or.useState)("");return(0,Or.useEffect)(()=>{fetch(St.SETTINGS).then(s=>s.json()).then(s=>{t({CLAUDE_MEM_MODEL:s.CLAUDE_MEM_MODEL??ie.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:s.CLAUDE_MEM_CONTEXT_OBSERVATIONS??ie.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:s.CLAUDE_MEM_WORKER_PORT??ie.CLAUDE_MEM_WORKER_PORT,CLAUDE_MEM_WORKER_HOST:s.CLAUDE_MEM_WORKER_HOST??ie.CLAUDE_MEM_WORKER_HOST,CLAUDE_MEM_PROVIDER:s.CLAUDE_MEM_PROVIDER??ie.CLAUDE_MEM_PROVIDER,CLAUDE_MEM_GEMINI_API_KEY:s.CLAUDE_MEM_GEMINI_API_KEY??ie.CLAUDE_MEM_GEMINI_API_KEY,CLAUDE_MEM_GEMINI_MODEL:s.CLAUDE_MEM_GEMINI_MODEL??ie.CLAUDE_MEM_GEMINI_MODEL,CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:s.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED??ie.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED,CLAUDE_MEM_OPENROUTER_API_KEY:s.CLAUDE_MEM_OPENROUTER_API_KEY??ie.CLAUDE_MEM_OPENROUTER_API_KEY,CLAUDE_MEM_OPENROUTER_MODEL:s.CLAUDE_MEM_OPENROUTER_MODEL??ie.CLAUDE_MEM_OPENROUTER_MODEL,CLAUDE_MEM_OPENROUTER_SITE_URL:s.CLAUDE_MEM_OPENROUTER_SITE_URL??ie.CLAUDE_MEM_OPENROUTER_SITE_URL,CLAUDE_MEM_OPENROUTER_APP_NAME:s.CLAUDE_MEM_OPENROUTER_APP_NAME??ie.CLAUDE_MEM_OPENROUTER_APP_NAME,CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS??ie.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS??ie.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT??ie.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT??ie.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT,CLAUDE_MEM_CONTEXT_FULL_COUNT:s.CLAUDE_MEM_CONTEXT_FULL_COUNT??ie.CLAUDE_MEM_CONTEXT_FULL_COUNT,CLAUDE_MEM_CONTEXT_FULL_FIELD:s.CLAUDE_MEM_CONTEXT_FULL_FIELD??ie.CLAUDE_MEM_CONTEXT_FULL_FIELD,CLAUDE_MEM_CONTEXT_SESSION_COUNT:s.CLAUDE_MEM_CONTEXT_SESSION_COUNT??ie.CLAUDE_MEM_CONTEXT_SESSION_COUNT,CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY??ie.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY,CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE??ie.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE})}).catch(s=>{console.error("Failed to load settings:",s)})},[]),{settings:e,saveSettings:async s=>{r(!0),l("Saving...");let u=await(await fetch(St.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();u.success?(t(s),l("\u2713 Saved"),setTimeout(()=>l(""),ki.SAVE_STATUS_DISPLAY_DURATION_MS)):l(`\u2717 Error: ${u.error}`),r(!1)},isSaving:n,saveStatus:o}}var Dr=ee(te(),1);function xm(){let[e,t]=(0,Dr.useState)({}),n=(0,Dr.useCallback)(async()=>{try{let o=await(await fetch(St.STATS)).json();t(o)}catch(r){console.error("Failed to load stats:",r)}},[]);return(0,Dr.useEffect)(()=>{n()},[n]),{stats:e,refreshStats:n}}var Tn=ee(te(),1);function Eu(e,t,n){let[r,o]=(0,Tn.useState)({isLoading:!1,hasMore:!0}),l=(0,Tn.useRef)(0),i=(0,Tn.useRef)(n),s=(0,Tn.useRef)(r),a=(0,Tn.useCallback)(async()=>{let u=i.current!==n;if(u){l.current=0,i.current=n;let _={isLoading:!1,hasMore:!0};o(_),s.current=_}if(!u&&(s.current.isLoading||!s.current.hasMore))return[];o(_=>({..._,isLoading:!0}));let m=new URLSearchParams({offset:l.current.toString(),limit:xo.PAGINATION_PAGE_SIZE.toString()});n&&m.append("project",n);let g=await fetch(`${e}?${m}`);if(!g.ok)throw new Error(`Failed to load ${t}: ${g.statusText}`);let h=await g.json();return o(_=>({..._,isLoading:!1,hasMore:h.hasMore})),l.current+=xo.PAGINATION_PAGE_SIZE,h.items},[n,e,t]);return{...r,loadMore:a}}function Om(e){let t=Eu(St.OBSERVATIONS,"observations",e),n=Eu(St.SUMMARIES,"summaries",e),r=Eu(St.PROMPTS,"prompts",e);return{observations:t,summaries:n,prompts:r}}var Pr=ee(te(),1),Im="claude-mem-theme";function E0(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Dm(){try{let e=localStorage.getItem(Im);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function Pm(e){return e==="system"?E0():e}function Um(){let[e,t]=(0,Pr.useState)(Dm),[n,r]=(0,Pr.useState)(()=>Pm(Dm()));return(0,Pr.useEffect)(()=>{let l=Pm(e);r(l),document.documentElement.setAttribute("data-theme",l)},[e]),(0,Pr.useEffect)(()=>{if(e!=="system")return;let l=window.matchMedia("(prefers-color-scheme: dark)"),i=s=>{let a=s.matches?"dark":"light";r(a),document.documentElement.setAttribute("data-theme",a)};return l.addEventListener("change",i),()=>l.removeEventListener("change",i)},[e]),{preference:e,resolvedTheme:n,setThemePreference:l=>{try{localStorage.setItem(Im,l),t(l)}catch(i){console.warn("Failed to save theme preference to localStorage:",i),t(l)}}}}function Li(e,t){let n=new Set;return[...e,...t].filter(r=>n.has(r.id)?!1:(n.add(r.id),!0))}function Rm(){let[e,t]=(0,W.useState)(""),[n,r]=(0,W.useState)(!1),[o,l]=(0,W.useState)(!1),[i,s]=(0,W.useState)([]),[a,u]=(0,W.useState)([]),[m,g]=(0,W.useState)([]),{observations:h,summaries:_,prompts:E,projects:k,isProcessing:P,queueDepth:c,isConnected:f}=Am(),{settings:p,saveSettings:v,isSaving:C,saveStatus:L}=Mm(),{stats:M,refreshStats:O}=xm(),{preference:V,resolvedTheme:I,setThemePreference:j}=Um(),Z=Om(e),Cn=(0,W.useMemo)(()=>{let he=e?h.filter(Xe=>Xe.project===e):h;return Li(he,i)},[h,i,e]),kn=(0,W.useMemo)(()=>{let he=e?_.filter(Xe=>Xe.project===e):_;return Li(he,a)},[_,a,e]),Ir=(0,W.useMemo)(()=>{let he=e?E.filter(Xe=>Xe.project===e):E;return Li(he,m)},[E,m,e]),Vn=(0,W.useCallback)(()=>{r(he=>!he)},[]),Gn=(0,W.useCallback)(()=>{l(he=>!he)},[]),Ln=(0,W.useCallback)(async()=>{try{let[he,Xe,S]=await Promise.all([Z.observations.loadMore(),Z.summaries.loadMore(),Z.prompts.loadMore()]);he.length>0&&s(G=>[...G,...he]),Xe.length>0&&u(G=>[...G,...Xe]),S.length>0&&g(G=>[...G,...S])}catch(he){console.error("Failed to load more data:",he)}},[e,Z.observations,Z.summaries,Z.prompts]);return(0,W.useEffect)(()=>{s([]),u([]),g([]),Ln()},[e]),W.default.createElement(W.default.Fragment,null,W.default.createElement(Ap,{isConnected:f,projects:k,currentFilter:e,onFilterChange:t,isProcessing:P,queueDepth:c,themePreference:V,onThemeChange:j,onContextPreviewToggle:Vn}),W.default.createElement(Ip,{observations:Cn,summaries:kn,prompts:Ir,onLoadMore:Ln,isLoading:Z.observations.isLoading||Z.summaries.isLoading||Z.prompts.isLoading,hasMore:Z.observations.hasMore||Z.summaries.hasMore||Z.prompts.hasMore}),W.default.createElement(Lm,{isOpen:n,onClose:Vn,settings:p,onSave:v,isSaving:C,saveStatus:L}),W.default.createElement("button",{className:"console-toggle-btn",onClick:Gn,title:"Toggle Console"},W.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},W.default.createElement("polyline",{points:"4 17 10 11 4 5"}),W.default.createElement("line",{x1:"12",y1:"19",x2:"20",y2:"19"}))),W.default.createElement(Nm,{isOpen:o,onClose:Gn}))}var Xt=ee(te(),1),Ni=class extends Xt.Component{constructor(t){super(t),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("[ErrorBoundary] Caught error:",t,n),this.setState({error:t,errorInfo:n})}render(){return this.state.hasError?Xt.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},Xt.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),Xt.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&Xt.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},Xt.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),Xt.default.createElement("pre",{style:{backgroundColor:"#0d1117",padding:"10px",borderRadius:"6px",overflow:"auto"}},this.state.error.toString(),this.state.errorInfo&&` +`+l.stack}return{value:e,source:t,stack:o,digest:null}}function hs(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Zs(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var Vh=typeof WeakMap=="function"?WeakMap:Map;function Wd(e,t,n){n=Ht(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,aa=r),Zs(e,t)},n}function Vd(e,t,n){n=Ht(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){Zs(e,t)}}var l=e.stateNode;return l!==null&&typeof l.componentDidCatch=="function"&&(n.callback=function(){Zs(e,t),typeof r!="function"&&(an===null?an=new Set([this]):an.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function tf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Vh;var o=new Set;r.set(t,o)}else o=r.get(t),o===void 0&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=lv.bind(null,e,t,n),t.then(e,e))}function nf(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function rf(e,t,n,r,o){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Ht(-1,1),t.tag=2,sn(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var Gh=Vt.ReactCurrentOwner,Be=!1;function Ie(e,t,n,r){t.child=e===null?Sd(t,null,n,r):Tr(t,e.child,n,r)}function of(e,t,n,r,o){n=n.render;var l=t.ref;return yr(t,o),r=Ha(e,t,n,r,l,o),n=ja(),e!==null&&!Be?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Wt(e,t,o)):(ne&&n&&Ma(t),t.flags|=1,Ie(e,t,r,o),t.child)}function lf(e,t,n,r,o){if(e===null){var l=n.type;return typeof l=="function"&&!Qa(l)&&l.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=l,Gd(e,t,l,r,o)):(e=Ml(n.type,null,r,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(l=e.child,(e.lanes&o)===0){var i=l.memoizedProps;if(n=n.compare,n=n!==null?n:ho,n(i,r)&&e.ref===t.ref)return Wt(e,t,o)}return t.flags|=1,e=cn(l,r),e.ref=t.ref,e.return=t,t.child=e}function Gd(e,t,n,r,o){if(e!==null){var l=e.memoizedProps;if(ho(l,r)&&e.ref===t.ref)if(Be=!1,t.pendingProps=r=l,(e.lanes&o)!==0)(e.flags&131072)!==0&&(Be=!0);else return t.lanes=e.lanes,Wt(e,t,o)}return Js(e,t,n,r,o)}function Xd(e,t,n){var r=t.pendingProps,o=r.children,l=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},K(pr,$e),$e|=n;else{if((n&1073741824)===0)return e=l!==null?l.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,K(pr,$e),$e|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=l!==null?l.baseLanes:n,K(pr,$e),$e|=r}else l!==null?(r=l.baseLanes|n,t.memoizedState=null):r=n,K(pr,$e),$e|=r;return Ie(e,t,o,n),t.child}function $d(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Js(e,t,n,r,o){var l=We(n)?Rn:Oe.current;return l=_r(t,l),yr(t,o),n=Ha(e,t,n,r,l,o),r=ja(),e!==null&&!Be?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Wt(e,t,o)):(ne&&r&&Ma(t),t.flags|=1,Ie(e,t,n,o),t.child)}function sf(e,t,n,r,o){if(We(n)){var l=!0;bl(t)}else l=!1;if(yr(t,o),t.stateNode===null)kl(e,t),qd(t,n,r),Qs(t,n,r,o),r=!0;else if(e===null){var i=t.stateNode,s=t.memoizedProps;i.props=s;var a=i.context,u=n.contextType;typeof u=="object"&&u!==null?u=st(u):(u=We(n)?Rn:Oe.current,u=_r(t,u));var m=n.getDerivedStateFromProps,g=typeof m=="function"||typeof i.getSnapshotBeforeUpdate=="function";g||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(s!==r||a!==u)&&ef(t,i,r,u),Qt=!1;var h=t.memoizedState;i.state=h,Wl(t,r,i,o),a=t.memoizedState,s!==r||h!==a||qe.current||Qt?(typeof m=="function"&&(Ys(t,n,m,r),a=t.memoizedState),(s=Qt||Jc(t,n,s,r,h,a,u))?(g||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=a),i.props=r,i.state=a,i.context=u,r=s):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,wd(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:dt(t.type,s),i.props=u,g=t.pendingProps,h=i.context,a=n.contextType,typeof a=="object"&&a!==null?a=st(a):(a=We(n)?Rn:Oe.current,a=_r(t,a));var _=n.getDerivedStateFromProps;(m=typeof _=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(s!==g||h!==a)&&ef(t,i,r,a),Qt=!1,h=t.memoizedState,i.state=h,Wl(t,r,i,o);var E=t.memoizedState;s!==g||h!==E||qe.current||Qt?(typeof _=="function"&&(Ys(t,n,_,r),E=t.memoizedState),(u=Qt||Jc(t,n,u,r,h,E,a)||!1)?(m||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,E,a),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,E,a)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=E),i.props=r,i.state=E,i.context=a,r=u):(typeof i.componentDidUpdate!="function"||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=!1)}return ea(e,t,n,r,l,o)}function ea(e,t,n,r,o,l){$d(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return o&&Vc(t,n,!1),Wt(e,t,l);r=t.stateNode,Gh.current=t;var s=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Tr(t,e.child,null,l),t.child=Tr(t,null,s,l)):Ie(e,t,s,l),t.memoizedState=r.state,o&&Vc(t,n,!0),t.child}function Kd(e){var t=e.stateNode;t.pendingContext?Wc(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Wc(e,t.context,!1),Ra(e,t.containerInfo)}function af(e,t,n,r,o){return wr(),xa(o),t.flags|=256,Ie(e,t,n,r),t.child}var ta={dehydrated:null,treeContext:null,retryLane:0};function na(e){return{baseLanes:e,cachePool:null,transitions:null}}function Yd(e,t,n){var r=t.pendingProps,o=re.current,l=!1,i=(t.flags&128)!==0,s;if((s=i)||(s=e!==null&&e.memoizedState===null?!1:(o&2)!==0),s?(l=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),K(re,o&1),e===null)return $s(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=r.children,e=r.fallback,l?(r=t.mode,l=t.child,i={mode:"hidden",children:i},(r&1)===0&&l!==null?(l.childLanes=0,l.pendingProps=i):l=ui(i,r,0,null),e=Un(e,r,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=na(n),t.memoizedState=ta,e):Wa(t,i));if(o=e.memoizedState,o!==null&&(s=o.dehydrated,s!==null))return Xh(e,t,i,r,s,o,n);if(l){l=r.fallback,i=t.mode,o=e.child,s=o.sibling;var a={mode:"hidden",children:r.children};return(i&1)===0&&t.child!==o?(r=t.child,r.childLanes=0,r.pendingProps=a,t.deletions=null):(r=cn(o,a),r.subtreeFlags=o.subtreeFlags&14680064),s!==null?l=cn(s,l):(l=Un(l,i,n,null),l.flags|=2),l.return=t,r.return=t,r.sibling=l,t.child=r,r=l,l=t.child,i=e.child.memoizedState,i=i===null?na(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},l.memoizedState=i,l.childLanes=e.childLanes&~n,t.memoizedState=ta,r}return l=e.child,e=l.sibling,r=cn(l,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Wa(e,t){return t=ui({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function hl(e,t,n,r){return r!==null&&xa(r),Tr(t,e.child,null,n),e=Wa(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Xh(e,t,n,r,o,l,i){if(n)return t.flags&256?(t.flags&=-257,r=hs(Error(w(422))),hl(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(l=r.fallback,o=t.mode,r=ui({mode:"visible",children:r.children},o,0,null),l=Un(l,o,i,null),l.flags|=2,r.return=t,l.return=t,r.sibling=l,t.child=r,(t.mode&1)!==0&&Tr(t,e.child,null,i),t.child.memoizedState=na(i),t.memoizedState=ta,l);if((t.mode&1)===0)return hl(e,t,i,null);if(o.data==="$!"){if(r=o.nextSibling&&o.nextSibling.dataset,r)var s=r.dgst;return r=s,l=Error(w(419)),r=hs(l,r,void 0),hl(e,t,i,r)}if(s=(i&e.childLanes)!==0,Be||s){if(r=ye,r!==null){switch(i&-i){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=(o&(r.suspendedLanes|i))!==0?0:o,o!==0&&o!==l.retryLane&&(l.retryLane=o,qt(e,o),ht(r,e,o,-1))}return Ya(),r=hs(Error(w(421))),hl(e,t,i,r)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=iv.bind(null,e),o._reactRetry=t,null):(e=l.treeContext,Ke=ln(o.nextSibling),Ye=t,ne=!0,mt=null,e!==null&&(rt[ot++]=zt,rt[ot++]=bt,rt[ot++]=Fn,zt=e.id,bt=e.overflow,Fn=t),t=Wa(t,r.children),t.flags|=4096,t)}function uf(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ks(e.return,t,n)}function vs(e,t,n,r,o){var l=e.memoizedState;l===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(l.isBackwards=t,l.rendering=null,l.renderingStartTime=0,l.last=r,l.tail=n,l.tailMode=o)}function Qd(e,t,n){var r=t.pendingProps,o=r.revealOrder,l=r.tail;if(Ie(e,t,r.children,n),r=re.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&uf(e,n,t);else if(e.tag===19)uf(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(K(re,r),(t.mode&1)===0)t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;n!==null;)e=n.alternate,e!==null&&Vl(e)===null&&(o=n),n=n.sibling;n=o,n===null?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),vs(t,!1,o,n,l);break;case"backwards":for(n=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Vl(e)===null){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}vs(t,!0,n,null,l);break;case"together":vs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function kl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Wt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),bn|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(w(153));if(t.child!==null){for(e=t.child,n=cn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=cn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function $h(e,t,n){switch(t.tag){case 3:Kd(t),wr();break;case 5:Td(t);break;case 1:We(t.type)&&bl(t);break;case 4:Ra(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;K(Bl,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(K(re,re.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?Yd(e,t,n):(K(re,re.current&1),e=Wt(e,t,n),e!==null?e.sibling:null);K(re,re.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return Qd(e,t,n);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),K(re,re.current),r)break;return null;case 22:case 23:return t.lanes=0,Xd(e,t,n)}return Wt(e,t,n)}var Zd,ra,Jd,ep;Zd=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};ra=function(){};Jd=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Pn(Mt.current);var l=null;switch(n){case"input":o=ks(e,o),r=ks(e,r),l=[];break;case"select":o=le({},o,{value:void 0}),r=le({},r,{value:void 0}),l=[];break;case"textarea":o=Ms(e,o),r=Ms(e,r),l=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Fl)}xs(n,r);var i;n=null;for(u in o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&o[u]!=null)if(u==="style"){var s=o[u];for(i in s)s.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(ao.hasOwnProperty(u)?l||(l=[]):(l=l||[]).push(u,null));for(u in r){var a=r[u];if(s=o?.[u],r.hasOwnProperty(u)&&a!==s&&(a!=null||s!=null))if(u==="style")if(s){for(i in s)!s.hasOwnProperty(i)||a&&a.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in a)a.hasOwnProperty(i)&&s[i]!==a[i]&&(n||(n={}),n[i]=a[i])}else n||(l||(l=[]),l.push(u,n)),n=a;else u==="dangerouslySetInnerHTML"?(a=a?a.__html:void 0,s=s?s.__html:void 0,a!=null&&s!==a&&(l=l||[]).push(u,a)):u==="children"?typeof a!="string"&&typeof a!="number"||(l=l||[]).push(u,""+a):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(ao.hasOwnProperty(u)?(a!=null&&u==="onScroll"&&Y("scroll",e),l||s===a||(l=[])):(l=l||[]).push(u,a))}n&&(l=l||[]).push("style",n);var u=l;(t.updateQueue=u)&&(t.flags|=4)}};ep=function(e,t,n,r){n!==r&&(t.flags|=4)};function Gr(e,t){if(!ne)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ae(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags&14680064,r|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Kh(e,t,n){var r=t.pendingProps;switch(Aa(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ae(t),null;case 1:return We(t.type)&&zl(),Ae(t),null;case 3:return r=t.stateNode,Cr(),Q(qe),Q(Oe),za(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(ml(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,mt!==null&&(fa(mt),mt=null))),ra(e,t),Ae(t),null;case 5:Fa(t);var o=Pn(_o.current);if(n=t.type,e!==null&&t.stateNode!=null)Jd(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(w(166));return Ae(t),null}if(e=Pn(Mt.current),ml(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Lt]=t,r[Eo]=l,e=(t.mode&1)!==0,n){case"dialog":Y("cancel",r),Y("close",r);break;case"iframe":case"object":case"embed":Y("load",r);break;case"video":case"audio":for(o=0;o<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Lt]=t,e[Eo]=r,Zd(e,t,!1,!1),t.stateNode=e;e:{switch(i=Os(n,r),n){case"dialog":Y("cancel",e),Y("close",e),o=r;break;case"iframe":case"object":case"embed":Y("load",e),o=r;break;case"video":case"audio":for(o=0;oLr&&(t.flags|=128,r=!0,Gr(l,!1),t.lanes=4194304)}else{if(!r)if(e=Vl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Gr(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!ne)return Ae(t),null}else 2*ae()-l.renderingStartTime>Lr&&n!==1073741824&&(t.flags|=128,r=!0,Gr(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(n=l.last,n!==null?n.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=ae(),t.sibling=null,n=re.current,K(re,r?n&1|2:n&1),t):(Ae(t),null);case 22:case 23:return Ka(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?($e&1073741824)!==0&&(Ae(t),t.subtreeFlags&6&&(t.flags|=8192)):Ae(t),null;case 24:return null;case 25:return null}throw Error(w(156,t.tag))}function Yh(e,t){switch(Aa(t),t.tag){case 1:return We(t.type)&&zl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Cr(),Q(qe),Q(Oe),za(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Fa(t),null;case 13:if(Q(re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(w(340));wr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Q(re),null;case 4:return Cr(),null;case 10:return Pa(t.type._context),null;case 22:case 23:return Ka(),null;case 24:return null;default:return null}}var vl=!1,xe=!1,Qh=typeof WeakSet=="function"?WeakSet:Set,M=null;function dr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){se(e,t,r)}else n.current=null}function oa(e,t,n){try{n()}catch(r){se(e,t,r)}}var cf=!1;function Zh(e,t){if(js=Il,e=ld(),Na(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var i=0,s=-1,a=-1,u=0,m=0,g=e,h=null;t:for(;;){for(var _;g!==n||o!==0&&g.nodeType!==3||(s=i+o),g!==l||r!==0&&g.nodeType!==3||(a=i+r),g.nodeType===3&&(i+=g.nodeValue.length),(_=g.firstChild)!==null;)h=g,g=_;for(;;){if(g===e)break t;if(h===n&&++u===o&&(s=i),h===l&&++m===r&&(a=i),(_=g.nextSibling)!==null)break;g=h,h=g.parentNode}g=_}n=s===-1||a===-1?null:{start:s,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(Bs={focusedElem:e,selectionRange:n},Il=!1,M=t;M!==null;)if(t=M,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,M=e;else for(;M!==null;){t=M;try{var E=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var k=E.memoizedProps,P=E.memoizedState,c=t.stateNode,f=c.getSnapshotBeforeUpdate(t.elementType===t.type?k:dt(t.type,k),P);c.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var p=t.stateNode.containerInfo;p.nodeType===1?p.textContent="":p.nodeType===9&&p.documentElement&&p.removeChild(p.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(w(163))}}catch(v){se(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,M=e;break}M=t.return}return E=cf,cf=!1,E}function lo(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var l=o.destroy;o.destroy=void 0,l!==void 0&&oa(t,n,l)}o=o.next}while(o!==r)}}function si(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function la(e){var t=e.ref;if(t!==null){var n=e.stateNode;e.tag,e=n,typeof t=="function"?t(e):t.current=e}}function tp(e){var t=e.alternate;t!==null&&(e.alternate=null,tp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Lt],delete t[Eo],delete t[Vs],delete t[Ih],delete t[Uh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function np(e){return e.tag===5||e.tag===3||e.tag===4}function ff(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||np(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ia(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Fl));else if(r!==4&&(e=e.child,e!==null))for(ia(e,t,n),e=e.sibling;e!==null;)ia(e,t,n),e=e.sibling}function sa(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(sa(e,t,n),e=e.sibling;e!==null;)sa(e,t,n),e=e.sibling}var _e=null,pt=!1;function Kt(e,t,n){for(n=n.child;n!==null;)rp(e,t,n),n=n.sibling}function rp(e,t,n){if(Nt&&typeof Nt.onCommitFiberUnmount=="function")try{Nt.onCommitFiberUnmount(Jl,n)}catch{}switch(n.tag){case 5:xe||dr(n,t);case 6:var r=_e,o=pt;_e=null,Kt(e,t,n),_e=r,pt=o,_e!==null&&(pt?(e=_e,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):_e.removeChild(n.stateNode));break;case 18:_e!==null&&(pt?(e=_e,n=n.stateNode,e.nodeType===8?cs(e.parentNode,n):e.nodeType===1&&cs(e,n),mo(e)):cs(_e,n.stateNode));break;case 4:r=_e,o=pt,_e=n.stateNode.containerInfo,pt=!0,Kt(e,t,n),_e=r,pt=o;break;case 0:case 11:case 14:case 15:if(!xe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var l=o,i=l.destroy;l=l.tag,i!==void 0&&((l&2)!==0||(l&4)!==0)&&oa(n,t,i),o=o.next}while(o!==r)}Kt(e,t,n);break;case 1:if(!xe&&(dr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){se(n,t,s)}Kt(e,t,n);break;case 21:Kt(e,t,n);break;case 22:n.mode&1?(xe=(r=xe)||n.memoizedState!==null,Kt(e,t,n),xe=r):Kt(e,t,n);break;default:Kt(e,t,n)}}function df(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Qh),t.forEach(function(r){var o=sv.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function ft(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=i),r&=~l}if(r=o,r=ae()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ev(r/1960))-r,10e?16:e,tn===null)var r=!1;else{if(e=tn,tn=null,Yl=0,(H&6)!==0)throw Error(w(331));var o=H;for(H|=4,M=e.current;M!==null;){var l=M,i=l.child;if((M.flags&16)!==0){var s=l.deletions;if(s!==null){for(var a=0;aae()-Xa?In(e,0):Ga|=n),Ve(e,t)}function fp(e,t){t===0&&((e.mode&1)===0?t=1:(t=ol,ol<<=1,(ol&130023424)===0&&(ol=4194304)));var n=Ue();e=qt(e,t),e!==null&&(Lo(e,t,n),Ve(e,n))}function iv(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),fp(e,n)}function sv(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(w(314))}r!==null&&r.delete(t),fp(e,n)}var dp;dp=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qe.current)Be=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Be=!1,$h(e,t,n);Be=(e.flags&131072)!==0}else Be=!1,ne&&(t.flags&1048576)!==0&&hd(t,jl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;kl(e,t),e=t.pendingProps;var o=_r(t,Oe.current);yr(t,n),o=Ha(null,t,r,e,o,n);var l=ja();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,We(r)?(l=!0,bl(t)):l=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Ua(t),o.updater=ii,t.stateNode=o,o._reactInternals=t,Qs(t,r,e,n),t=ea(null,t,r,!0,l,n)):(t.tag=0,ne&&l&&Ma(t),Ie(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(kl(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=uv(r),e=dt(r,e),o){case 0:t=Js(null,t,r,e,n);break e;case 1:t=sf(null,t,r,e,n);break e;case 11:t=of(null,t,r,e,n);break e;case 14:t=lf(null,t,r,dt(r.type,e),n);break e}throw Error(w(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:dt(r,o),Js(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:dt(r,o),sf(e,t,r,o,n);case 3:e:{if(Kd(t),e===null)throw Error(w(387));r=t.pendingProps,l=t.memoizedState,o=l.element,wd(e,t),Wl(t,r,null,n);var i=t.memoizedState;if(r=i.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){o=kr(Error(w(423)),t),t=af(e,t,r,n,o);break e}else if(r!==o){o=kr(Error(w(424)),t),t=af(e,t,r,n,o);break e}else for(Ke=ln(t.stateNode.containerInfo.firstChild),Ye=t,ne=!0,mt=null,n=Sd(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(wr(),r===o){t=Wt(e,t,n);break e}Ie(e,t,r,n)}t=t.child}return t;case 5:return Td(t),e===null&&$s(t),r=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,qs(r,o)?i=null:l!==null&&qs(r,l)&&(t.flags|=32),$d(e,t),Ie(e,t,i,n),t.child;case 6:return e===null&&$s(t),null;case 13:return Yd(e,t,n);case 4:return Ra(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Tr(t,null,r,n):Ie(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:dt(r,o),of(e,t,r,o,n);case 7:return Ie(e,t,t.pendingProps,n),t.child;case 8:return Ie(e,t,t.pendingProps.children,n),t.child;case 12:return Ie(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value,K(Bl,r._currentValue),r._currentValue=i,l!==null)if(vt(l.value,i)){if(l.children===o.children&&!qe.current){t=Wt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var s=l.dependencies;if(s!==null){i=l.child;for(var a=s.firstContext;a!==null;){if(a.context===r){if(l.tag===1){a=Ht(-1,n&-n),a.tag=2;var u=l.updateQueue;if(u!==null){u=u.shared;var m=u.pending;m===null?a.next=a:(a.next=m.next,m.next=a),u.pending=a}}l.lanes|=n,a=l.alternate,a!==null&&(a.lanes|=n),Ks(l.return,n,t),s.lanes|=n;break}a=a.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(w(341));i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Ks(i,n,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}Ie(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,yr(t,n),o=st(o),r=r(o),t.flags|=1,Ie(e,t,r,n),t.child;case 14:return r=t.type,o=dt(r,t.pendingProps),o=dt(r.type,o),lf(e,t,r,o,n);case 15:return Gd(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:dt(r,o),kl(e,t),t.tag=1,We(r)?(e=!0,bl(t)):e=!1,yr(t,n),qd(t,r,o),Qs(t,r,o,n),ea(null,t,r,!0,e,n);case 19:return Qd(e,t,n);case 22:return Xd(e,t,n)}throw Error(w(156,t.tag))};function pp(e,t){return Hf(e,t)}function av(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function lt(e,t,n,r){return new av(e,t,n,r)}function Qa(e){return e=e.prototype,!(!e||!e.isReactComponent)}function uv(e){if(typeof e=="function")return Qa(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ha)return 11;if(e===va)return 14}return 2}function cn(e,t){var n=e.alternate;return n===null?(n=lt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ml(e,t,n,r,o,l){var i=2;if(r=e,typeof e=="function")Qa(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case rr:return Un(n.children,o,l,t);case ga:i=8,o|=8;break;case _s:return e=lt(12,n,t,o|2),e.elementType=_s,e.lanes=l,e;case ws:return e=lt(13,n,t,o),e.elementType=ws,e.lanes=l,e;case Ts:return e=lt(19,n,t,o),e.elementType=Ts,e.lanes=l,e;case Tf:return ui(n,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _f:i=10;break e;case wf:i=9;break e;case ha:i=11;break e;case va:i=14;break e;case Yt:i=16,r=null;break e}throw Error(w(130,e==null?e:typeof e,""))}return t=lt(i,n,t,o),t.elementType=e,t.type=r,t.lanes=l,t}function Un(e,t,n,r){return e=lt(7,e,r,t),e.lanes=n,e}function ui(e,t,n,r){return e=lt(22,e,r,t),e.elementType=Tf,e.lanes=n,e.stateNode={isHidden:!1},e}function ys(e,t,n){return e=lt(6,e,null,t),e.lanes=n,e}function Es(e,t,n){return t=lt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function cv(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ns(0),this.expirationTimes=ns(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ns(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Za(e,t,n,r,o,l,i,s,a){return e=new cv(e,t,n,s,a),t===1?(t=1,l===!0&&(t|=8)):t=0,l=lt(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ua(l),e}function fv(e,t,n){var r=3{"use strict";function yp(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(yp)}catch(e){console.error(e)}}yp(),Ep.exports=vp()});var wp=Le(nu=>{"use strict";var _p=Sp();nu.createRoot=_p.createRoot,nu.hydrateRoot=_p.hydrateRoot;var M0});var ru=Le((n1,hv)=>{hv.exports={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}});var Up=Le((r1,vv)=>{vv.exports={Aacute:"\xC1",aacute:"\xE1",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",AElig:"\xC6",aelig:"\xE6",Agrave:"\xC0",agrave:"\xE0",amp:"&",AMP:"&",Aring:"\xC5",aring:"\xE5",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",brvbar:"\xA6",Ccedil:"\xC7",ccedil:"\xE7",cedil:"\xB8",cent:"\xA2",copy:"\xA9",COPY:"\xA9",curren:"\xA4",deg:"\xB0",divide:"\xF7",Eacute:"\xC9",eacute:"\xE9",Ecirc:"\xCA",ecirc:"\xEA",Egrave:"\xC8",egrave:"\xE8",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE",gt:">",GT:">",Iacute:"\xCD",iacute:"\xED",Icirc:"\xCE",icirc:"\xEE",iexcl:"\xA1",Igrave:"\xCC",igrave:"\xEC",iquest:"\xBF",Iuml:"\xCF",iuml:"\xEF",laquo:"\xAB",lt:"<",LT:"<",macr:"\xAF",micro:"\xB5",middot:"\xB7",nbsp:"\xA0",not:"\xAC",Ntilde:"\xD1",ntilde:"\xF1",Oacute:"\xD3",oacute:"\xF3",Ocirc:"\xD4",ocirc:"\xF4",Ograve:"\xD2",ograve:"\xF2",ordf:"\xAA",ordm:"\xBA",Oslash:"\xD8",oslash:"\xF8",Otilde:"\xD5",otilde:"\xF5",Ouml:"\xD6",ouml:"\xF6",para:"\xB6",plusmn:"\xB1",pound:"\xA3",quot:'"',QUOT:'"',raquo:"\xBB",reg:"\xAE",REG:"\xAE",sect:"\xA7",shy:"\xAD",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",szlig:"\xDF",THORN:"\xDE",thorn:"\xFE",times:"\xD7",Uacute:"\xDA",uacute:"\xFA",Ucirc:"\xDB",ucirc:"\xFB",Ugrave:"\xD9",ugrave:"\xF9",uml:"\xA8",Uuml:"\xDC",uuml:"\xFC",Yacute:"\xDD",yacute:"\xFD",yen:"\xA5",yuml:"\xFF"}});var ou=Le((o1,yv)=>{yv.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}});var Rp=Le((l1,Ev)=>{Ev.exports={"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}});var zp=Le(Oo=>{"use strict";var Sv=Oo&&Oo.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Oo,"__esModule",{value:!0});var Fp=Sv(Rp()),_v=String.fromCodePoint||function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function wv(e){return e>=55296&&e<=57343||e>1114111?"\uFFFD":(e in Fp.default&&(e=Fp.default[e]),_v(e))}Oo.default=wv});var iu=Le(xt=>{"use strict";var mi=xt&&xt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xt,"__esModule",{value:!0});xt.decodeHTML=xt.decodeHTMLStrict=xt.decodeXML=void 0;var lu=mi(ru()),Tv=mi(Up()),Cv=mi(ou()),bp=mi(zp()),kv=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;xt.decodeXML=jp(Cv.default);xt.decodeHTMLStrict=jp(lu.default);function jp(e){var t=Bp(e);return function(n){return String(n).replace(kv,t)}}var Hp=function(e,t){return e{"use strict";var qp=Ge&&Ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ge,"__esModule",{value:!0});Ge.escapeUTF8=Ge.escape=Ge.encodeNonAsciiHTML=Ge.encodeHTML=Ge.encodeXML=void 0;var Lv=qp(ou()),Wp=Gp(Lv.default),Vp=Xp(Wp);Ge.encodeXML=Yp(Wp);var Nv=qp(ru()),su=Gp(Nv.default),Mv=Xp(su);Ge.encodeHTML=xv(su,Mv);Ge.encodeNonAsciiHTML=Yp(su);function Gp(e){return Object.keys(e).sort().reduce(function(t,n){return t[e[n]]="&"+n+";",t},{})}function Xp(e){for(var t=[],n=[],r=0,o=Object.keys(e);r1?Av(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}function xv(e,t){return function(n){return n.replace(t,function(r){return e[r]}).replace($p,gi)}}var Kp=new RegExp(Vp.source+"|"+$p.source,"g");function Ov(e){return e.replace(Kp,gi)}Ge.escape=Ov;function Dv(e){return e.replace(Vp,gi)}Ge.escapeUTF8=Dv;function Yp(e){return function(t){return t.replace(Kp,function(n){return e[n]||gi(n)})}}});var Zp=Le(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.decodeXMLStrict=U.decodeHTML5Strict=U.decodeHTML4Strict=U.decodeHTML5=U.decodeHTML4=U.decodeHTMLStrict=U.decodeHTML=U.decodeXML=U.encodeHTML5=U.encodeHTML4=U.escapeUTF8=U.escape=U.encodeNonAsciiHTML=U.encodeHTML=U.encodeXML=U.encode=U.decodeStrict=U.decode=void 0;var hi=iu(),Qp=au();function Pv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTML)(e)}U.decode=Pv;function Iv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTMLStrict)(e)}U.decodeStrict=Iv;function Uv(e,t){return(!t||t<=0?Qp.encodeXML:Qp.encodeHTML)(e)}U.encode=Uv;var qn=au();Object.defineProperty(U,"encodeXML",{enumerable:!0,get:function(){return qn.encodeXML}});Object.defineProperty(U,"encodeHTML",{enumerable:!0,get:function(){return qn.encodeHTML}});Object.defineProperty(U,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return qn.encodeNonAsciiHTML}});Object.defineProperty(U,"escape",{enumerable:!0,get:function(){return qn.escape}});Object.defineProperty(U,"escapeUTF8",{enumerable:!0,get:function(){return qn.escapeUTF8}});Object.defineProperty(U,"encodeHTML4",{enumerable:!0,get:function(){return qn.encodeHTML}});Object.defineProperty(U,"encodeHTML5",{enumerable:!0,get:function(){return qn.encodeHTML}});var En=iu();Object.defineProperty(U,"decodeXML",{enumerable:!0,get:function(){return En.decodeXML}});Object.defineProperty(U,"decodeHTML",{enumerable:!0,get:function(){return En.decodeHTML}});Object.defineProperty(U,"decodeHTMLStrict",{enumerable:!0,get:function(){return En.decodeHTMLStrict}});Object.defineProperty(U,"decodeHTML4",{enumerable:!0,get:function(){return En.decodeHTML}});Object.defineProperty(U,"decodeHTML5",{enumerable:!0,get:function(){return En.decodeHTML}});Object.defineProperty(U,"decodeHTML4Strict",{enumerable:!0,get:function(){return En.decodeHTMLStrict}});Object.defineProperty(U,"decodeHTML5Strict",{enumerable:!0,get:function(){return En.decodeHTMLStrict}});Object.defineProperty(U,"decodeXMLStrict",{enumerable:!0,get:function(){return En.decodeXML}})});var um=Le((c1,am)=>{"use strict";function Rv(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Jp(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,i=!1,s;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return l=u.done,u},e:function(u){i=!0,s=u},f:function(){try{!l&&n.return!=null&&n.return()}finally{if(i)throw s}}}}function zv(e,t){if(e){if(typeof e=="string")return em(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return em(e,t)}}function em(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?e*40+55:0,i=t>0?t*40+55:0,s=n>0?n*40+55:0;r[o]=Bv([l,i,s])}function im(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function Bv(e){var t=[],n=lm(e),r;try{for(n.s();!(r=n.n()).done;){var o=r.value;t.push(im(o))}}catch(l){n.e(l)}finally{n.f()}return"#"+t.join("")}function nm(e,t,n,r){var o;return t==="text"?o=Gv(n,r):t==="display"?o=Wv(e,n,r):t==="xterm256Foreground"?o=Ei(e,r.colors[n]):t==="xterm256Background"?o=Si(e,r.colors[n]):t==="rgb"&&(o=qv(e,n)),o}function qv(e,t){t=t.substring(2).slice(0,-1);var n=+t.substr(0,2),r=t.substring(5).split(";"),o=r.map(function(l){return("0"+Number(l).toString(16)).substr(-2)}).join("");return yi(e,(n===38?"color:#":"background-color:#")+o)}function Wv(e,t,n){t=parseInt(t,10);var r={"-1":function(){return"
"},0:function(){return e.length&&sm(e)},1:function(){return Sn(e,"b")},3:function(){return Sn(e,"i")},4:function(){return Sn(e,"u")},8:function(){return yi(e,"display:none")},9:function(){return Sn(e,"strike")},22:function(){return yi(e,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return om(e,"i")},24:function(){return om(e,"u")},39:function(){return Ei(e,n.fg)},49:function(){return Si(e,n.bg)},53:function(){return yi(e,"text-decoration:overline")}},o;return r[t]?o=r[t]():4"}).join("")}function vi(e,t){for(var n=[],r=e;r<=t;r++)n.push(r);return n}function Vv(e){return function(t){return(e===null||t.category!==e)&&e!=="all"}}function rm(e){e=parseInt(e,10);var t=null;return e===0?t="all":e===1?t="bold":2")}function yi(e,t){return Sn(e,"span",t)}function Ei(e,t){return Sn(e,"span","color:"+t)}function Si(e,t){return Sn(e,"span","background-color:"+t)}function om(e,t){var n;if(e.slice(-1)[0]===t&&(n=e.pop()),n)return""}function Xv(e,t,n){var r=!1,o=3;function l(){return""}function i(C,L){return n("xterm256Foreground",L),""}function s(C,L){return n("xterm256Background",L),""}function a(C){return t.newline?n("display",-1):n("text",C),""}function u(C,L){r=!0,L.trim().length===0&&(L="0"),L=L.trimRight(";").split(";");var A=lm(L),O;try{for(A.s();!(O=A.n()).done;){var V=O.value;n("display",V)}}catch(I){A.e(I)}finally{A.f()}return""}function m(C){return n("text",C),""}function g(C){return n("rgb",C),""}var h=[{pattern:/^\x08+/,sub:l},{pattern:/^\x1b\[[012]?K/,sub:l},{pattern:/^\x1b\[\(B/,sub:l},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:g},{pattern:/^\x1b\[38;5;(\d+)m/,sub:i},{pattern:/^\x1b\[48;5;(\d+)m/,sub:s},{pattern:/^\n/,sub:a},{pattern:/^\r+\n/,sub:a},{pattern:/^\r/,sub:a},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:u},{pattern:/^\x1b\[\d?J/,sub:l},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:l},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:l},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:m}];function _(C,L){L>o&&r||(r=!1,e=e.replace(C.pattern,C.sub))}var E=[],k=e,P=k.length;e:for(;P>0;){for(var c=0,f=0,p=h.length;f{let l=["system","light","dark"],s=(l.indexOf(e)+1)%l.length;t(l[s])},r=()=>{switch(e){case"light":return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),Ee.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),Ee.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),Ee.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),Ee.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),Ee.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),Ee.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),Ee.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),Ee.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));default:return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),Ee.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),Ee.default.createElement("line",{x1:"12",y1:"17",x2:"12",y2:"21"}))}},o=()=>{switch(e){case"light":return"Theme: Light (click for Dark)";case"dark":return"Theme: Dark (click for System)";default:return"Theme: System (click for Light)"}};return Ee.default.createElement("button",{className:"theme-toggle-btn",onClick:n,title:o(),"aria-label":o()},r())}var At=ee(te(),1);var hn=ee(te(),1);function Cp(e,t){let[n,r]=(0,hn.useState)(null),[o,l]=(0,hn.useState)(!0),[i,s]=(0,hn.useState)(null),a=(0,hn.useCallback)(async()=>{try{l(!0),s(null);let u=await fetch(`https://api.github.com/repos/${e}/${t}`);if(!u.ok)throw new Error(`GitHub API error: ${u.status}`);let m=await u.json();r(m.stargazers_count)}catch(u){console.error("Failed to fetch GitHub stars:",u),s(u instanceof Error?u:new Error("Unknown error"))}finally{l(!1)}},[e,t]);return(0,hn.useEffect)(()=>{a()},[a]),{stars:n,isLoading:o,error:i}}function kp(e){return e<1e3?e.toString():e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function Lp({username:e,repo:t,className:n=""}){let{stars:r,isLoading:o,error:l}=Cp(e,t),i=`https://github.com/${e}/${t}`;return l?At.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},At.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},At.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}))):At.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:`github-stars-btn ${n}`,title:`Star us on GitHub${r!==null?` (${r.toLocaleString()} stars)`:""}`},At.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},At.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})),At.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"4px"}},At.default.createElement("path",{d:"M12 .587l3.668 7.431 8.2 1.192-5.934 5.787 1.4 8.166L12 18.896l-7.334 3.867 1.4-8.166-5.934-5.787 8.2-1.192z"})),At.default.createElement("span",{className:o?"stars-loading":"stars-count"},o?"...":r!==null?kp(r):"\u2014"))}var vn=ee(te(),1);function Np(e){let t=(0,vn.useRef)(null),n=(0,vn.useRef)(null),r=(0,vn.useRef)(null),o=(0,vn.useRef)(0),l=(0,vn.useRef)(null);(0,vn.useEffect)(()=>{if(n.current||(n.current=document.createElement("canvas"),n.current.width=32,n.current.height=32),r.current||(r.current=new Image,r.current.src="claude-mem-logomark.webp"),!l.current){let g=document.querySelector('link[rel="icon"]');g&&(l.current=g.href)}let i=n.current,s=i.getContext("2d"),a=r.current;if(!s)return;let u=g=>{let h=document.querySelector('link[rel="icon"]');h||(h=document.createElement("link"),h.rel="icon",document.head.appendChild(h)),h.href=g},m=()=>{if(!a.complete){t.current=requestAnimationFrame(m);return}o.current+=2*Math.PI/90,s.clearRect(0,0,32,32),s.save(),s.translate(16,16),s.rotate(o.current),s.drawImage(a,-16,-16,32,32),s.restore(),u(i.toDataURL("image/png")),t.current=requestAnimationFrame(m)};return e?(o.current=0,m()):(t.current&&(cancelAnimationFrame(t.current),t.current=null),l.current&&u(l.current)),()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)}},[e])}function Mp({isConnected:e,projects:t,currentFilter:n,onFilterChange:r,isProcessing:o,queueDepth:l,themePreference:i,onThemeChange:s,onContextPreviewToggle:a}){return Np(o),X.default.createElement("div",{className:"header"},X.default.createElement("h1",null,X.default.createElement("div",{style:{position:"relative",display:"inline-block"}},X.default.createElement("img",{src:"claude-mem-logomark.webp",alt:"",className:`logomark ${o?"spinning":""}`}),l>0&&X.default.createElement("div",{className:"queue-bubble"},l)),X.default.createElement("span",{className:"logo-text"},"claude-mem")),X.default.createElement("div",{className:"status"},X.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Documentation"},X.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},X.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),X.default.createElement("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}))),X.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Follow us on X"},X.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},X.default.createElement("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}))),X.default.createElement("a",{href:"https://discord.gg/J4wttp9vDu",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Join our Discord community"},X.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},X.default.createElement("path",{d:"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"}))),X.default.createElement(Lp,{username:"thedotmack",repo:"claude-mem"}),X.default.createElement("select",{value:n,onChange:u=>r(u.target.value)},X.default.createElement("option",{value:""},"All Projects"),t.map(u=>X.default.createElement("option",{key:u,value:u},u))),X.default.createElement(Tp,{preference:i,onThemeChange:s}),X.default.createElement("button",{className:"settings-btn",onClick:a,title:"Settings"},X.default.createElement("svg",{className:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},X.default.createElement("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),X.default.createElement("circle",{cx:"12",cy:"12",r:"3"})))))}var ue=ee(te(),1);var z=ee(te(),1);function Ar(e){return new Date(e).toLocaleString()}function Ap(e){let t=["/Scripts/","/src/","/plugin/","/docs/"];for(let o of t){let l=e.indexOf(o);if(l!==-1)return e.substring(l+1)}let n=e.indexOf("claude-mem/");if(n!==-1)return e.substring(n+11);let r=e.split("/");return r.length>3?r.slice(-3).join("/"):e}function xp({observation:e}){let[t,n]=(0,z.useState)(!1),[r,o]=(0,z.useState)(!1),l=Ar(e.created_at_epoch),i=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],a=e.files_read?JSON.parse(e.files_read).map(Ap):[],u=e.files_modified?JSON.parse(e.files_modified).map(Ap):[],m=i.length>0||s.length>0||a.length>0||u.length>0;return z.default.createElement("div",{className:"card"},z.default.createElement("div",{className:"card-header"},z.default.createElement("div",{className:"card-header-left"},z.default.createElement("span",{className:`card-type type-${e.type}`},e.type),z.default.createElement("span",{className:"card-project"},e.project)),z.default.createElement("div",{className:"view-mode-toggles"},m&&z.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{n(!t),t||o(!1)}},z.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},z.default.createElement("polyline",{points:"9 11 12 14 22 4"}),z.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),z.default.createElement("span",null,"facts")),e.narrative&&z.default.createElement("button",{className:`view-mode-toggle ${r?"active":""}`,onClick:()=>{o(!r),r||n(!1)}},z.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},z.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),z.default.createElement("polyline",{points:"14 2 14 8 20 8"}),z.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),z.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),z.default.createElement("span",null,"narrative")))),z.default.createElement("div",{className:"card-title"},e.title||"Untitled"),z.default.createElement("div",{className:"view-mode-content"},!t&&!r&&e.subtitle&&z.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&z.default.createElement("ul",{className:"facts-list"},i.map((g,h)=>z.default.createElement("li",{key:h},g))),r&&e.narrative&&z.default.createElement("div",{className:"narrative"},e.narrative)),z.default.createElement("div",{className:"card-meta"},z.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",l),t&&(s.length>0||a.length>0||u.length>0)&&z.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},s.map((g,h)=>z.default.createElement("span",{key:h,style:{padding:"2px 8px",background:"var(--color-type-badge-bg)",color:"var(--color-type-badge-text)",borderRadius:"3px",fontWeight:"500",fontSize:"10px"}},g)),a.length>0&&z.default.createElement("span",{className:"meta-files"},z.default.createElement("span",{className:"file-label"},"read:")," ",a.join(", ")),u.length>0&&z.default.createElement("span",{className:"meta-files"},z.default.createElement("span",{className:"file-label"},"modified:")," ",u.join(", ")))))}var Ce=ee(te(),1);function Op({summary:e}){let t=Ar(e.created_at_epoch),n=[{key:"investigated",label:"Investigated",content:e.investigated,icon:"/icon-thick-investigated.svg"},{key:"learned",label:"Learned",content:e.learned,icon:"/icon-thick-learned.svg"},{key:"completed",label:"Completed",content:e.completed,icon:"/icon-thick-completed.svg"},{key:"next_steps",label:"Next Steps",content:e.next_steps,icon:"/icon-thick-next-steps.svg"}].filter(r=>r.content);return Ce.default.createElement("article",{className:"card summary-card"},Ce.default.createElement("header",{className:"summary-card-header"},Ce.default.createElement("div",{className:"summary-badge-row"},Ce.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),Ce.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&Ce.default.createElement("h2",{className:"summary-title"},e.request)),Ce.default.createElement("div",{className:"summary-sections"},n.map((r,o)=>Ce.default.createElement("section",{key:r.key,className:"summary-section",style:{animationDelay:`${o*50}ms`}},Ce.default.createElement("div",{className:"summary-section-header"},Ce.default.createElement("img",{src:r.icon,alt:r.label,className:`summary-section-icon summary-section-icon--${r.key}`}),Ce.default.createElement("h3",{className:"summary-section-label"},r.label)),Ce.default.createElement("div",{className:"summary-section-content"},r.content)))),Ce.default.createElement("footer",{className:"summary-card-footer"},Ce.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),Ce.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),Ce.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var Gt=ee(te(),1);function Dp({prompt:e}){let t=Ar(e.created_at_epoch);return Gt.default.createElement("div",{className:"card prompt-card"},Gt.default.createElement("div",{className:"card-header"},Gt.default.createElement("div",{className:"card-header-left"},Gt.default.createElement("span",{className:"card-type"},"Prompt"),Gt.default.createElement("span",{className:"card-project"},e.project))),Gt.default.createElement("div",{className:"card-content"},e.prompt_text),Gt.default.createElement("div",{className:"card-meta"},Gt.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var yn=ee(te(),1);function Pp({targetRef:e}){let[t,n]=(0,yn.useState)(!1);(0,yn.useEffect)(()=>{let o=()=>{let i=e.current;i&&n(i.scrollTop>300)},l=e.current;if(l)return l.addEventListener("scroll",o),()=>l.removeEventListener("scroll",o)},[]);let r=()=>{let o=e.current;o&&o.scrollTo({top:0,behavior:"smooth"})};return t?yn.default.createElement("button",{onClick:r,className:"scroll-to-top","aria-label":"Scroll to top"},yn.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},yn.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var xo={PAGINATION_PAGE_SIZE:50,LOAD_MORE_THRESHOLD:.1};function Ip({observations:e,summaries:t,prompts:n,onLoadMore:r,isLoading:o,hasMore:l}){let i=(0,ue.useRef)(null),s=(0,ue.useRef)(null),a=(0,ue.useRef)(r);(0,ue.useEffect)(()=>{a.current=r},[r]),(0,ue.useEffect)(()=>{let m=i.current;if(!m)return;let g=new IntersectionObserver(h=>{h[0].isIntersecting&&l&&!o&&a.current?.()},{threshold:xo.LOAD_MORE_THRESHOLD});return g.observe(m),()=>{m&&g.unobserve(m),g.disconnect()}},[l,o]);let u=(0,ue.useMemo)(()=>[...e.map(g=>({...g,itemType:"observation"})),...t.map(g=>({...g,itemType:"summary"})),...n.map(g=>({...g,itemType:"prompt"}))].sort((g,h)=>h.created_at_epoch-g.created_at_epoch),[e,t,n]);return ue.default.createElement("div",{className:"feed",ref:s},ue.default.createElement(Pp,{targetRef:s}),ue.default.createElement("div",{className:"feed-content"},u.map(m=>{let g=`${m.itemType}-${m.id}`;return m.itemType==="observation"?ue.default.createElement(xp,{key:g,observation:m}):m.itemType==="summary"?ue.default.createElement(Op,{key:g,summary:m}):ue.default.createElement(Dp,{key:g,prompt:m})}),u.length===0&&!o&&ue.default.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#8b949e"}},"No items to display"),o&&ue.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e"}},ue.default.createElement("div",{className:"spinner",style:{display:"inline-block",marginRight:"10px"}}),"Loading more..."),l&&!o&&u.length>0&&ue.default.createElement("div",{ref:i,style:{height:"20px",margin:"10px 0"}}),!l&&u.length>0&&ue.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e",fontSize:"14px"}},"No more items to load")))}var y=ee(te(),1);var ge=ee(te(),1),Tm=ee(um(),1);var{entries:ym,setPrototypeOf:cm,isFrozen:Yv,getPrototypeOf:Qv,getOwnPropertyDescriptor:Zv}=Object,{freeze:ze,seal:ut,create:gu}=Object,{apply:hu,construct:vu}=typeof Reflect<"u"&&Reflect;ze||(ze=function(t){return t});ut||(ut=function(t){return t});hu||(hu=function(t,n){for(var r=arguments.length,o=new Array(r>2?r-2:0),l=2;l1?n-1:0),o=1;o1?n-1:0),o=1;o2&&arguments[2]!==void 0?arguments[2]:Ti;cm&&cm(e,null);let r=t.length;for(;r--;){let o=t[r];if(typeof o=="string"){let l=n(o);l!==o&&(Yv(t)||(t[r]=l),o=l)}e[o]=!0}return e}function o0(e){for(let t=0;t/gm),u0=ut(/\$\{[\w\W]*/gm),c0=ut(/^data-[\-\w.\u00B7-\uFFFF]+$/),f0=ut(/^aria-[\-\w]+$/),Em=ut(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),d0=ut(/^(?:\w+script|data):/i),p0=ut(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Sm=ut(/^html$/i),m0=ut(/^[a-z][.\w]*(-[.\w]+)+$/i),hm=Object.freeze({__proto__:null,ARIA_ATTR:f0,ATTR_WHITESPACE:p0,CUSTOM_ELEMENT:m0,DATA_ATTR:c0,DOCTYPE_NAME:Sm,ERB_EXPR:a0,IS_ALLOWED_URI:Em,IS_SCRIPT_OR_DATA:d0,MUSTACHE_EXPR:s0,TMPLIT_EXPR:u0}),Ro={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},g0=function(){return typeof window>"u"?null:window},h0=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null,o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(r=n.getAttribute(o));let l="dompurify"+(r?"#"+r:"");try{return t.createPolicy(l,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+l+" could not be created."),null}},vm=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function _m(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g0(),t=D=>_m(D);if(t.version="3.3.1",t.removed=[],!e||!e.document||e.document.nodeType!==Ro.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e,r=n,o=r.currentScript,{DocumentFragment:l,HTMLTemplateElement:i,Node:s,Element:a,NodeFilter:u,NamedNodeMap:m=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:g,DOMParser:h,trustedTypes:_}=e,E=a.prototype,k=Uo(E,"cloneNode"),P=Uo(E,"remove"),c=Uo(E,"nextSibling"),f=Uo(E,"childNodes"),p=Uo(E,"parentNode");if(typeof i=="function"){let D=n.createElement("template");D.content&&D.content.ownerDocument&&(n=D.content.ownerDocument)}let v,C="",{implementation:L,createNodeIterator:A,createDocumentFragment:O,getElementsByTagName:V}=n,{importNode:I}=r,j=vm();t.isSupported=typeof ym=="function"&&typeof p=="function"&&L&&L.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:Z,ERB_EXPR:wn,TMPLIT_EXPR:Tn,DATA_ATTR:Ir,ARIA_ATTR:Wn,IS_SCRIPT_OR_DATA:Vn,ATTR_WHITESPACE:Cn,CUSTOM_ELEMENT:he}=hm,{IS_ALLOWED_URI:Xe}=hm,S=null,G=R({},[...dm,...fu,...du,...pu,...pm]),b=null,De=R({},[...mm,...mu,...gm,...wi]),B=Object.seal(gu(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Dt=null,kn=null,Gn=Object.seal(gu(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),_u=!0,Ni=!0,wu=!1,Tu=!0,Xn=!1,bo=!0,Ln=!1,Mi=!1,Ai=!1,$n=!1,Ho=!1,jo=!1,Cu=!0,ku=!1,bm="user-content-",xi=!0,Ur=!1,Kn={},_t=null,Oi=R({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Lu=null,Nu=R({},["audio","video","img","source","image","track"]),Di=null,Mu=R({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Bo="http://www.w3.org/1998/Math/MathML",qo="http://www.w3.org/2000/svg",Pt="http://www.w3.org/1999/xhtml",Yn=Pt,Pi=!1,Ii=null,Hm=R({},[Bo,qo,Pt],uu),Wo=R({},["mi","mo","mn","ms","mtext"]),Vo=R({},["annotation-xml"]),jm=R({},["title","style","font","a","script"]),Rr=null,Bm=["application/xhtml+xml","text/html"],qm="text/html",de=null,Qn=null,Wm=n.createElement("form"),Au=function(d){return d instanceof RegExp||d instanceof Function},Ui=function(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Qn&&Qn===d)){if((!d||typeof d!="object")&&(d={}),d=Ot(d),Rr=Bm.indexOf(d.PARSER_MEDIA_TYPE)===-1?qm:d.PARSER_MEDIA_TYPE,de=Rr==="application/xhtml+xml"?uu:Ti,S=yt(d,"ALLOWED_TAGS")?R({},d.ALLOWED_TAGS,de):G,b=yt(d,"ALLOWED_ATTR")?R({},d.ALLOWED_ATTR,de):De,Ii=yt(d,"ALLOWED_NAMESPACES")?R({},d.ALLOWED_NAMESPACES,uu):Hm,Di=yt(d,"ADD_URI_SAFE_ATTR")?R(Ot(Mu),d.ADD_URI_SAFE_ATTR,de):Mu,Lu=yt(d,"ADD_DATA_URI_TAGS")?R(Ot(Nu),d.ADD_DATA_URI_TAGS,de):Nu,_t=yt(d,"FORBID_CONTENTS")?R({},d.FORBID_CONTENTS,de):Oi,Dt=yt(d,"FORBID_TAGS")?R({},d.FORBID_TAGS,de):Ot({}),kn=yt(d,"FORBID_ATTR")?R({},d.FORBID_ATTR,de):Ot({}),Kn=yt(d,"USE_PROFILES")?d.USE_PROFILES:!1,_u=d.ALLOW_ARIA_ATTR!==!1,Ni=d.ALLOW_DATA_ATTR!==!1,wu=d.ALLOW_UNKNOWN_PROTOCOLS||!1,Tu=d.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Xn=d.SAFE_FOR_TEMPLATES||!1,bo=d.SAFE_FOR_XML!==!1,Ln=d.WHOLE_DOCUMENT||!1,$n=d.RETURN_DOM||!1,Ho=d.RETURN_DOM_FRAGMENT||!1,jo=d.RETURN_TRUSTED_TYPE||!1,Ai=d.FORCE_BODY||!1,Cu=d.SANITIZE_DOM!==!1,ku=d.SANITIZE_NAMED_PROPS||!1,xi=d.KEEP_CONTENT!==!1,Ur=d.IN_PLACE||!1,Xe=d.ALLOWED_URI_REGEXP||Em,Yn=d.NAMESPACE||Pt,Wo=d.MATHML_TEXT_INTEGRATION_POINTS||Wo,Vo=d.HTML_INTEGRATION_POINTS||Vo,B=d.CUSTOM_ELEMENT_HANDLING||{},d.CUSTOM_ELEMENT_HANDLING&&Au(d.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(B.tagNameCheck=d.CUSTOM_ELEMENT_HANDLING.tagNameCheck),d.CUSTOM_ELEMENT_HANDLING&&Au(d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(B.attributeNameCheck=d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),d.CUSTOM_ELEMENT_HANDLING&&typeof d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(B.allowCustomizedBuiltInElements=d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Xn&&(Ni=!1),Ho&&($n=!0),Kn&&(S=R({},pm),b=[],Kn.html===!0&&(R(S,dm),R(b,mm)),Kn.svg===!0&&(R(S,fu),R(b,mu),R(b,wi)),Kn.svgFilters===!0&&(R(S,du),R(b,mu),R(b,wi)),Kn.mathMl===!0&&(R(S,pu),R(b,gm),R(b,wi))),d.ADD_TAGS&&(typeof d.ADD_TAGS=="function"?Gn.tagCheck=d.ADD_TAGS:(S===G&&(S=Ot(S)),R(S,d.ADD_TAGS,de))),d.ADD_ATTR&&(typeof d.ADD_ATTR=="function"?Gn.attributeCheck=d.ADD_ATTR:(b===De&&(b=Ot(b)),R(b,d.ADD_ATTR,de))),d.ADD_URI_SAFE_ATTR&&R(Di,d.ADD_URI_SAFE_ATTR,de),d.FORBID_CONTENTS&&(_t===Oi&&(_t=Ot(_t)),R(_t,d.FORBID_CONTENTS,de)),d.ADD_FORBID_CONTENTS&&(_t===Oi&&(_t=Ot(_t)),R(_t,d.ADD_FORBID_CONTENTS,de)),xi&&(S["#text"]=!0),Ln&&R(S,["html","head","body"]),S.table&&(R(S,["tbody"]),delete Dt.tbody),d.TRUSTED_TYPES_POLICY){if(typeof d.TRUSTED_TYPES_POLICY.createHTML!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof d.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');v=d.TRUSTED_TYPES_POLICY,C=v.createHTML("")}else v===void 0&&(v=h0(_,o)),v!==null&&typeof C=="string"&&(C=v.createHTML(""));ze&&ze(d),Qn=d}},xu=R({},[...fu,...du,...l0]),Ou=R({},[...pu,...i0]),Vm=function(d){let T=p(d);(!T||!T.tagName)&&(T={namespaceURI:Yn,tagName:"template"});let x=Ti(d.tagName),J=Ti(T.tagName);return Ii[d.namespaceURI]?d.namespaceURI===qo?T.namespaceURI===Pt?x==="svg":T.namespaceURI===Bo?x==="svg"&&(J==="annotation-xml"||Wo[J]):!!xu[x]:d.namespaceURI===Bo?T.namespaceURI===Pt?x==="math":T.namespaceURI===qo?x==="math"&&Vo[J]:!!Ou[x]:d.namespaceURI===Pt?T.namespaceURI===qo&&!Vo[J]||T.namespaceURI===Bo&&!Wo[J]?!1:!Ou[x]&&(jm[x]||!xu[x]):!!(Rr==="application/xhtml+xml"&&Ii[d.namespaceURI]):!1},wt=function(d){Do(t.removed,{element:d});try{p(d).removeChild(d)}catch{P(d)}},Nn=function(d,T){try{Do(t.removed,{attribute:T.getAttributeNode(d),from:T})}catch{Do(t.removed,{attribute:null,from:T})}if(T.removeAttribute(d),d==="is")if($n||Ho)try{wt(T)}catch{}else try{T.setAttribute(d,"")}catch{}},Du=function(d){let T=null,x=null;if(Ai)d=""+d;else{let ce=cu(d,/^[\r\n\t ]+/);x=ce&&ce[0]}Rr==="application/xhtml+xml"&&Yn===Pt&&(d=''+d+"");let J=v?v.createHTML(d):d;if(Yn===Pt)try{T=new h().parseFromString(J,Rr)}catch{}if(!T||!T.documentElement){T=L.createDocument(Yn,"template",null);try{T.documentElement.innerHTML=Pi?C:J}catch{}}let ke=T.body||T.documentElement;return d&&x&&ke.insertBefore(n.createTextNode(x),ke.childNodes[0]||null),Yn===Pt?V.call(T,Ln?"html":"body")[0]:Ln?T.documentElement:ke},Pu=function(d){return A.call(d.ownerDocument||d,d,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Ri=function(d){return d instanceof g&&(typeof d.nodeName!="string"||typeof d.textContent!="string"||typeof d.removeChild!="function"||!(d.attributes instanceof m)||typeof d.removeAttribute!="function"||typeof d.setAttribute!="function"||typeof d.namespaceURI!="string"||typeof d.insertBefore!="function"||typeof d.hasChildNodes!="function")},Iu=function(d){return typeof s=="function"&&d instanceof s};function It(D,d,T){_i(D,x=>{x.call(t,d,T,Qn)})}let Uu=function(d){let T=null;if(It(j.beforeSanitizeElements,d,null),Ri(d))return wt(d),!0;let x=de(d.nodeName);if(It(j.uponSanitizeElement,d,{tagName:x,allowedTags:S}),bo&&d.hasChildNodes()&&!Iu(d.firstElementChild)&&Fe(/<[/\w!]/g,d.innerHTML)&&Fe(/<[/\w!]/g,d.textContent)||d.nodeType===Ro.progressingInstruction||bo&&d.nodeType===Ro.comment&&Fe(/<[/\w]/g,d.data))return wt(d),!0;if(!(Gn.tagCheck instanceof Function&&Gn.tagCheck(x))&&(!S[x]||Dt[x])){if(!Dt[x]&&Fu(x)&&(B.tagNameCheck instanceof RegExp&&Fe(B.tagNameCheck,x)||B.tagNameCheck instanceof Function&&B.tagNameCheck(x)))return!1;if(xi&&!_t[x]){let J=p(d)||d.parentNode,ke=f(d)||d.childNodes;if(ke&&J){let ce=ke.length;for(let He=ce-1;He>=0;--He){let Ut=k(ke[He],!0);Ut.__removalCount=(d.__removalCount||0)+1,J.insertBefore(Ut,c(d))}}}return wt(d),!0}return d instanceof a&&!Vm(d)||(x==="noscript"||x==="noembed"||x==="noframes")&&Fe(/<\/no(script|embed|frames)/i,d.innerHTML)?(wt(d),!0):(Xn&&d.nodeType===Ro.text&&(T=d.textContent,_i([Z,wn,Tn],J=>{T=Po(T,J," ")}),d.textContent!==T&&(Do(t.removed,{element:d.cloneNode()}),d.textContent=T)),It(j.afterSanitizeElements,d,null),!1)},Ru=function(d,T,x){if(Cu&&(T==="id"||T==="name")&&(x in n||x in Wm))return!1;if(!(Ni&&!kn[T]&&Fe(Ir,T))){if(!(_u&&Fe(Wn,T))){if(!(Gn.attributeCheck instanceof Function&&Gn.attributeCheck(T,d))){if(!b[T]||kn[T]){if(!(Fu(d)&&(B.tagNameCheck instanceof RegExp&&Fe(B.tagNameCheck,d)||B.tagNameCheck instanceof Function&&B.tagNameCheck(d))&&(B.attributeNameCheck instanceof RegExp&&Fe(B.attributeNameCheck,T)||B.attributeNameCheck instanceof Function&&B.attributeNameCheck(T,d))||T==="is"&&B.allowCustomizedBuiltInElements&&(B.tagNameCheck instanceof RegExp&&Fe(B.tagNameCheck,x)||B.tagNameCheck instanceof Function&&B.tagNameCheck(x))))return!1}else if(!Di[T]){if(!Fe(Xe,Po(x,Cn,""))){if(!((T==="src"||T==="xlink:href"||T==="href")&&d!=="script"&&t0(x,"data:")===0&&Lu[d])){if(!(wu&&!Fe(Vn,Po(x,Cn,"")))){if(x)return!1}}}}}}}return!0},Fu=function(d){return d!=="annotation-xml"&&cu(d,he)},zu=function(d){It(j.beforeSanitizeAttributes,d,null);let{attributes:T}=d;if(!T||Ri(d))return;let x={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:b,forceKeepAttr:void 0},J=T.length;for(;J--;){let ke=T[J],{name:ce,namespaceURI:He,value:Ut}=ke,Zn=de(ce),Fi=Ut,Se=ce==="value"?Fi:n0(Fi);if(x.attrName=Zn,x.attrValue=Se,x.keepAttr=!0,x.forceKeepAttr=void 0,It(j.uponSanitizeAttribute,d,x),Se=x.attrValue,ku&&(Zn==="id"||Zn==="name")&&(Nn(ce,d),Se=bm+Se),bo&&Fe(/((--!?|])>)|<\/(style|title|textarea)/i,Se)){Nn(ce,d);continue}if(Zn==="attributename"&&cu(Se,"href")){Nn(ce,d);continue}if(x.forceKeepAttr)continue;if(!x.keepAttr){Nn(ce,d);continue}if(!Tu&&Fe(/\/>/i,Se)){Nn(ce,d);continue}Xn&&_i([Z,wn,Tn],Hu=>{Se=Po(Se,Hu," ")});let bu=de(d.nodeName);if(!Ru(bu,Zn,Se)){Nn(ce,d);continue}if(v&&typeof _=="object"&&typeof _.getAttributeType=="function"&&!He)switch(_.getAttributeType(bu,Zn)){case"TrustedHTML":{Se=v.createHTML(Se);break}case"TrustedScriptURL":{Se=v.createScriptURL(Se);break}}if(Se!==Fi)try{He?d.setAttributeNS(He,ce,Se):d.setAttribute(ce,Se),Ri(d)?wt(d):fm(t.removed)}catch{Nn(ce,d)}}It(j.afterSanitizeAttributes,d,null)},Gm=function D(d){let T=null,x=Pu(d);for(It(j.beforeSanitizeShadowDOM,d,null);T=x.nextNode();)It(j.uponSanitizeShadowNode,T,null),Uu(T),zu(T),T.content instanceof l&&D(T.content);It(j.afterSanitizeShadowDOM,d,null)};return t.sanitize=function(D){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},T=null,x=null,J=null,ke=null;if(Pi=!D,Pi&&(D=""),typeof D!="string"&&!Iu(D))if(typeof D.toString=="function"){if(D=D.toString(),typeof D!="string")throw Io("dirty is not a string, aborting")}else throw Io("toString is not a function");if(!t.isSupported)return D;if(Mi||Ui(d),t.removed=[],typeof D=="string"&&(Ur=!1),Ur){if(D.nodeName){let Ut=de(D.nodeName);if(!S[Ut]||Dt[Ut])throw Io("root node is forbidden and cannot be sanitized in-place")}}else if(D instanceof s)T=Du(""),x=T.ownerDocument.importNode(D,!0),x.nodeType===Ro.element&&x.nodeName==="BODY"||x.nodeName==="HTML"?T=x:T.appendChild(x);else{if(!$n&&!Xn&&!Ln&&D.indexOf("<")===-1)return v&&jo?v.createHTML(D):D;if(T=Du(D),!T)return $n?null:jo?C:""}T&&Ai&&wt(T.firstChild);let ce=Pu(Ur?D:T);for(;J=ce.nextNode();)Uu(J),zu(J),J.content instanceof l&&Gm(J.content);if(Ur)return D;if($n){if(Ho)for(ke=O.call(T.ownerDocument);T.firstChild;)ke.appendChild(T.firstChild);else ke=T;return(b.shadowroot||b.shadowrootmode)&&(ke=I.call(r,ke,!0)),ke}let He=Ln?T.outerHTML:T.innerHTML;return Ln&&S["!doctype"]&&T.ownerDocument&&T.ownerDocument.doctype&&T.ownerDocument.doctype.name&&Fe(Sm,T.ownerDocument.doctype.name)&&(He=" +`+He),Xn&&_i([Z,wn,Tn],Ut=>{He=Po(He,Ut," ")}),v&&jo?v.createHTML(He):He},t.setConfig=function(){let D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ui(D),Mi=!0},t.clearConfig=function(){Qn=null,Mi=!1},t.isValidAttribute=function(D,d,T){Qn||Ui({});let x=de(D),J=de(d);return Ru(x,J,T)},t.addHook=function(D,d){typeof d=="function"&&Do(j[D],d)},t.removeHook=function(D,d){if(d!==void 0){let T=Jv(j[D],d);return T===-1?void 0:e0(j[D],T,1)[0]}return fm(j[D])},t.removeHooks=function(D){j[D]=[]},t.removeAllHooks=function(){j=vm()},t}var wm=_m();var v0=new Tm.default({fg:"#dcd6cc",bg:"#252320",newline:!1,escapeXML:!0,stream:!1});function Cm({content:e,isLoading:t=!1,className:n=""}){let r=(0,ge.useRef)(null),o=(0,ge.useRef)(0),[l,i]=(0,ge.useState)(!0),s=(0,ge.useMemo)(()=>{if(r.current&&(o.current=r.current.scrollTop),!e)return"";let u=v0.toHtml(e);return wm.sanitize(u,{ALLOWED_TAGS:["span","div","br"],ALLOWED_ATTR:["style","class"],ALLOW_DATA_ATTR:!1})},[e]);return(0,ge.useLayoutEffect)(()=>{r.current&&o.current>0&&(r.current.scrollTop=o.current)},[s]),ge.default.createElement("div",{className:n,style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border-primary)",borderRadius:"8px",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",boxShadow:"0 10px 40px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3)"}},ge.default.createElement("div",{style:{padding:"12px",borderBottom:"1px solid var(--color-border-primary)",display:"flex",gap:"6px",alignItems:"center",backgroundColor:"var(--color-bg-header)"}},ge.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ff5f57"}}),ge.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ffbd2e"}}),ge.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#28c840"}}),ge.default.createElement("button",{onClick:()=>i(!l),style:{marginLeft:"auto",padding:"4px 8px",fontSize:"11px",fontWeight:500,color:l?"var(--color-text-secondary)":"var(--color-accent-primary)",backgroundColor:"transparent",border:"1px solid",borderColor:l?"var(--color-border-primary)":"var(--color-accent-primary)",borderRadius:"4px",cursor:"pointer",transition:"all 0.2s",whiteSpace:"nowrap"},onMouseEnter:u=>{u.currentTarget.style.borderColor="var(--color-accent-primary)",u.currentTarget.style.color="var(--color-accent-primary)"},onMouseLeave:u=>{u.currentTarget.style.borderColor=l?"var(--color-border-primary)":"var(--color-accent-primary)",u.currentTarget.style.color=l?"var(--color-text-secondary)":"var(--color-accent-primary)"},title:l?"Disable word wrap (scroll horizontally)":"Enable word wrap"},l?"\u2922 Wrap":"\u21C4 Scroll")),t?ge.default.createElement("div",{style:{padding:"16px",fontFamily:"var(--font-terminal)",fontSize:"12px",color:"var(--color-text-secondary)"}},"Loading preview..."):ge.default.createElement("div",{style:{position:"relative",flex:1,overflow:"hidden"}},ge.default.createElement("pre",{ref:r,style:{padding:"16px",margin:0,fontFamily:"var(--font-terminal)",fontSize:"12px",lineHeight:"1.6",overflow:"auto",color:"var(--color-text-primary)",backgroundColor:"var(--color-bg-card)",whiteSpace:l?"pre-wrap":"pre",wordBreak:l?"break-word":"normal",position:"absolute",inset:0},dangerouslySetInnerHTML:{__html:s}})))}var Et=ee(te(),1);function km(e){let[t,n]=(0,Et.useState)(""),[r,o]=(0,Et.useState)(!1),[l,i]=(0,Et.useState)(null),[s,a]=(0,Et.useState)([]),[u,m]=(0,Et.useState)(null);(0,Et.useEffect)(()=>{async function h(){try{let E=await(await fetch("/api/projects")).json();E.projects&&E.projects.length>0&&(a(E.projects),m(E.projects[0]))}catch(_){console.error("Failed to fetch projects:",_)}}h()},[]);let g=(0,Et.useCallback)(async()=>{if(!u){n("No project selected");return}o(!0),i(null);let h=new URLSearchParams({project:u}),_=await fetch(`/api/context/preview?${h}`),E=await _.text();_.ok?n(E):i("Failed to load preview"),o(!1)},[u]);return(0,Et.useEffect)(()=>{let h=setTimeout(()=>{g()},300);return()=>clearTimeout(h)},[e,g]),{preview:t,isLoading:r,error:l,refresh:g,projects:s,selectedProject:u,setSelectedProject:m}}function yu({title:e,description:t,children:n,defaultOpen:r=!0}){let[o,l]=(0,y.useState)(r);return y.default.createElement("div",{className:`settings-section-collapsible ${o?"open":""}`},y.default.createElement("button",{className:"section-header-btn",onClick:()=>l(!o),type:"button"},y.default.createElement("div",{className:"section-header-content"},y.default.createElement("span",{className:"section-title"},e),t&&y.default.createElement("span",{className:"section-description"},t)),y.default.createElement("svg",{className:`chevron-icon ${o?"rotated":""}`,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("polyline",{points:"6 9 12 15 18 9"}))),o&&y.default.createElement("div",{className:"section-content"},n))}function et({label:e,tooltip:t,children:n}){return y.default.createElement("div",{className:"form-field"},y.default.createElement("label",{className:"form-field-label"},e,t&&y.default.createElement("span",{className:"tooltip-trigger",title:t},y.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),y.default.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),y.default.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})))),n)}function xr({id:e,label:t,description:n,checked:r,onChange:o,disabled:l}){return y.default.createElement("div",{className:"toggle-row"},y.default.createElement("div",{className:"toggle-info"},y.default.createElement("label",{htmlFor:e,className:"toggle-label"},t),n&&y.default.createElement("span",{className:"toggle-description"},n)),y.default.createElement("button",{type:"button",id:e,role:"switch","aria-checked":r,className:`toggle-switch ${r?"on":""} ${l?"disabled":""}`,onClick:()=>!l&&o(!r),disabled:l},y.default.createElement("span",{className:"toggle-knob"})))}function Lm({isOpen:e,onClose:t,settings:n,onSave:r,isSaving:o,saveStatus:l}){let[i,s]=(0,y.useState)(n);(0,y.useEffect)(()=>{s(n)},[n]);let{preview:a,isLoading:u,error:m,projects:g,selectedProject:h,setSelectedProject:_}=km(i),E=(0,y.useCallback)((c,f)=>{let p={...i,[c]:f};s(p)},[i]),k=(0,y.useCallback)(()=>{r(i)},[i,r]),P=(0,y.useCallback)(c=>{let p=i[c]==="true"?"false":"true";E(c,p)},[i,E]);return(0,y.useEffect)(()=>{let c=f=>{f.key==="Escape"&&t()};if(e)return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[e,t]),e?y.default.createElement("div",{className:"modal-backdrop",onClick:t},y.default.createElement("div",{className:"context-settings-modal",onClick:c=>c.stopPropagation()},y.default.createElement("div",{className:"modal-header"},y.default.createElement("h2",null,"Settings"),y.default.createElement("div",{className:"header-controls"},y.default.createElement("label",{className:"preview-selector"},"Preview for:",y.default.createElement("select",{value:h||"",onChange:c=>_(c.target.value)},g.map(c=>y.default.createElement("option",{key:c,value:c},c)))),y.default.createElement("button",{onClick:t,className:"modal-close-btn",title:"Close (Esc)"},y.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),y.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),y.default.createElement("div",{className:"modal-body"},y.default.createElement("div",{className:"preview-column"},y.default.createElement("div",{className:"preview-content"},m?y.default.createElement("div",{style:{color:"#ff6b6b"}},"Error loading preview: ",m):y.default.createElement(Cm,{content:a,isLoading:u}))),y.default.createElement("div",{className:"settings-column"},y.default.createElement(yu,{title:"Loading",description:"How many observations to inject"},y.default.createElement(et,{label:"Observations",tooltip:"Number of recent observations to include in context (1-200)"},y.default.createElement("input",{type:"number",min:"1",max:"200",value:i.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",onChange:c=>E("CLAUDE_MEM_CONTEXT_OBSERVATIONS",c.target.value)})),y.default.createElement(et,{label:"Sessions",tooltip:"Number of recent sessions to pull observations from (1-50)"},y.default.createElement("input",{type:"number",min:"1",max:"50",value:i.CLAUDE_MEM_CONTEXT_SESSION_COUNT||"10",onChange:c=>E("CLAUDE_MEM_CONTEXT_SESSION_COUNT",c.target.value)}))),y.default.createElement(yu,{title:"Display",description:"What to show in context tables"},y.default.createElement("div",{className:"display-subsection"},y.default.createElement("span",{className:"subsection-label"},"Full Observations"),y.default.createElement(et,{label:"Count",tooltip:"How many observations show expanded details (0-20)"},y.default.createElement("input",{type:"number",min:"0",max:"20",value:i.CLAUDE_MEM_CONTEXT_FULL_COUNT||"5",onChange:c=>E("CLAUDE_MEM_CONTEXT_FULL_COUNT",c.target.value)})),y.default.createElement(et,{label:"Field",tooltip:"Which field to expand for full observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_CONTEXT_FULL_FIELD||"narrative",onChange:c=>E("CLAUDE_MEM_CONTEXT_FULL_FIELD",c.target.value)},y.default.createElement("option",{value:"narrative"},"Narrative"),y.default.createElement("option",{value:"facts"},"Facts")))),y.default.createElement("div",{className:"display-subsection"},y.default.createElement("span",{className:"subsection-label"},"Token Economics"),y.default.createElement("div",{className:"toggle-group"},y.default.createElement(xr,{id:"show-read-tokens",label:"Read cost",description:"Tokens to read this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS")}),y.default.createElement(xr,{id:"show-work-tokens",label:"Work investment",description:"Tokens spent creating this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS")}),y.default.createElement(xr,{id:"show-savings-amount",label:"Savings",description:"Total tokens saved by reusing context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT")})))),y.default.createElement(yu,{title:"Advanced",description:"AI provider and model selection",defaultOpen:!1},y.default.createElement(et,{label:"AI Provider",tooltip:"Choose between Claude (via Agent SDK) or Gemini (via REST API)"},y.default.createElement("select",{value:i.CLAUDE_MEM_PROVIDER||"claude",onChange:c=>E("CLAUDE_MEM_PROVIDER",c.target.value)},y.default.createElement("option",{value:"claude"},"Claude (uses your Claude account)"),y.default.createElement("option",{value:"gemini"},"Gemini (uses API key)"),y.default.createElement("option",{value:"openrouter"},"OpenRouter (multi-model)"))),i.CLAUDE_MEM_PROVIDER==="claude"&&y.default.createElement(et,{label:"Claude Model",tooltip:"Claude model used for generating observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_MODEL||"haiku",onChange:c=>E("CLAUDE_MEM_MODEL",c.target.value)},y.default.createElement("option",{value:"haiku"},"haiku (fastest)"),y.default.createElement("option",{value:"sonnet"},"sonnet (balanced)"),y.default.createElement("option",{value:"opus"},"opus (highest quality)"))),i.CLAUDE_MEM_PROVIDER==="gemini"&&y.default.createElement(y.default.Fragment,null,y.default.createElement(et,{label:"Gemini API Key",tooltip:"Your Google AI Studio API key (or set GEMINI_API_KEY env var)"},y.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_GEMINI_API_KEY||"",onChange:c=>E("CLAUDE_MEM_GEMINI_API_KEY",c.target.value),placeholder:"Enter Gemini API key..."})),y.default.createElement(et,{label:"Gemini Model",tooltip:"Gemini model used for generating observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_GEMINI_MODEL||"gemini-2.5-flash-lite",onChange:c=>E("CLAUDE_MEM_GEMINI_MODEL",c.target.value)},y.default.createElement("option",{value:"gemini-2.5-flash-lite"},"gemini-2.5-flash-lite (10 RPM free)"),y.default.createElement("option",{value:"gemini-2.5-flash"},"gemini-2.5-flash (5 RPM free)"),y.default.createElement("option",{value:"gemini-3-flash-preview"},"gemini-3-flash-preview (5 RPM free)"))),y.default.createElement("div",{className:"toggle-group",style:{marginTop:"8px"}},y.default.createElement(xr,{id:"gemini-rate-limiting",label:"Rate Limiting",description:"Enable for free tier (10-30 RPM). Disable if you have billing set up (1000+ RPM).",checked:i.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED==="true",onChange:c=>E("CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED",c?"true":"false")}))),i.CLAUDE_MEM_PROVIDER==="openrouter"&&y.default.createElement(y.default.Fragment,null,y.default.createElement(et,{label:"OpenRouter API Key",tooltip:"Your OpenRouter API key from openrouter.ai (or set OPENROUTER_API_KEY env var)"},y.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_OPENROUTER_API_KEY||"",onChange:c=>E("CLAUDE_MEM_OPENROUTER_API_KEY",c.target.value),placeholder:"Enter OpenRouter API key..."})),y.default.createElement(et,{label:"OpenRouter Model",tooltip:"Model identifier from OpenRouter (e.g., anthropic/claude-3.5-sonnet, google/gemini-2.0-flash-thinking-exp)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",onChange:c=>E("CLAUDE_MEM_OPENROUTER_MODEL",c.target.value),placeholder:"e.g., xiaomi/mimo-v2-flash:free"})),y.default.createElement(et,{label:"Site URL (Optional)",tooltip:"Your site URL for OpenRouter analytics (optional)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_SITE_URL||"",onChange:c=>E("CLAUDE_MEM_OPENROUTER_SITE_URL",c.target.value),placeholder:"https://yoursite.com"})),y.default.createElement(et,{label:"App Name (Optional)",tooltip:"Your app name for OpenRouter analytics (optional)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem",onChange:c=>E("CLAUDE_MEM_OPENROUTER_APP_NAME",c.target.value),placeholder:"claude-mem"}))),y.default.createElement(et,{label:"Worker Port",tooltip:"Port for the background worker service"},y.default.createElement("input",{type:"number",min:"1024",max:"65535",value:i.CLAUDE_MEM_WORKER_PORT||"37777",onChange:c=>E("CLAUDE_MEM_WORKER_PORT",c.target.value)})),y.default.createElement("div",{className:"toggle-group",style:{marginTop:"12px"}},y.default.createElement(xr,{id:"show-last-summary",label:"Include last summary",description:"Add previous session's summary to context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY")}),y.default.createElement(xr,{id:"show-last-message",label:"Include last message",description:"Add previous session's final message",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE")}))))),y.default.createElement("div",{className:"modal-footer"},y.default.createElement("div",{className:"save-status"},l&&y.default.createElement("span",{className:l.includes("\u2713")?"success":l.includes("\u2717")?"error":""},l)),y.default.createElement("button",{className:"save-btn",onClick:k,disabled:o},o?"Saving...":"Save")))):null}var N=ee(te(),1),Fo=[{key:"DEBUG",label:"Debug",icon:"\u{1F50D}",color:"#8b8b8b"},{key:"INFO",label:"Info",icon:"\u2139\uFE0F",color:"#58a6ff"},{key:"WARN",label:"Warn",icon:"\u26A0\uFE0F",color:"#d29922"},{key:"ERROR",label:"Error",icon:"\u274C",color:"#f85149"}],zo=[{key:"HOOK",label:"Hook",icon:"\u{1FA9D}",color:"#a371f7"},{key:"WORKER",label:"Worker",icon:"\u2699\uFE0F",color:"#58a6ff"},{key:"SDK",label:"SDK",icon:"\u{1F4E6}",color:"#3fb950"},{key:"PARSER",label:"Parser",icon:"\u{1F4C4}",color:"#79c0ff"},{key:"DB",label:"DB",icon:"\u{1F5C4}\uFE0F",color:"#f0883e"},{key:"SYSTEM",label:"System",icon:"\u{1F4BB}",color:"#8b949e"},{key:"HTTP",label:"HTTP",icon:"\u{1F310}",color:"#39d353"},{key:"SESSION",label:"Session",icon:"\u{1F4CB}",color:"#db61a2"},{key:"CHROMA",label:"Chroma",icon:"\u{1F52E}",color:"#a855f7"}];function y0(e){let t=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=e.match(t);if(!n)return{raw:e};let[,r,o,l,i,s]=n,a;return s.startsWith("\u2192")?a="dataIn":s.startsWith("\u2190")?a="dataOut":s.startsWith("\u2713")?a="success":s.startsWith("\u2717")?a="failure":s.startsWith("\u23F1")?a="timing":s.includes("[HAPPY-PATH]")&&(a="happyPath"),{raw:e,timestamp:r,level:o?.trim(),component:l?.trim(),correlationId:i||void 0,message:s,isSpecial:a}}function Nm({isOpen:e,onClose:t}){let[n,r]=(0,N.useState)(""),[o,l]=(0,N.useState)(!1),[i,s]=(0,N.useState)(null),[a,u]=(0,N.useState)(!1),[m,g]=(0,N.useState)(350),[h,_]=(0,N.useState)(!1),E=(0,N.useRef)(0),k=(0,N.useRef)(0),P=(0,N.useRef)(null),c=(0,N.useRef)(!0),[f,p]=(0,N.useState)(new Set(["DEBUG","INFO","WARN","ERROR"])),[v,C]=(0,N.useState)(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[L,A]=(0,N.useState)(!1),O=(0,N.useMemo)(()=>n?n.split(` +`).map(y0):[],[n]),V=(0,N.useMemo)(()=>O.filter(S=>L?S.raw.includes("[ALIGNMENT]"):!S.level||!S.component?!0:f.has(S.level)&&v.has(S.component)),[O,f,v,L]),I=(0,N.useCallback)(()=>{if(!P.current)return!0;let{scrollTop:S,scrollHeight:G,clientHeight:b}=P.current;return G-S-b<50},[]),j=(0,N.useCallback)(()=>{P.current&&c.current&&(P.current.scrollTop=P.current.scrollHeight)},[]),Z=(0,N.useCallback)(async()=>{c.current=I(),l(!0),s(null);try{let S=await fetch("/api/logs");if(!S.ok)throw new Error(`Failed to fetch logs: ${S.statusText}`);let G=await S.json();r(G.logs||"")}catch(S){s(S instanceof Error?S.message:"Unknown error")}finally{l(!1)}},[I]);(0,N.useEffect)(()=>{j()},[n,j]);let wn=(0,N.useCallback)(async()=>{if(confirm("Are you sure you want to clear all logs?")){l(!0),s(null);try{let S=await fetch("/api/logs/clear",{method:"POST"});if(!S.ok)throw new Error(`Failed to clear logs: ${S.statusText}`);r("")}catch(S){s(S instanceof Error?S.message:"Unknown error")}finally{l(!1)}}},[]),Tn=(0,N.useCallback)(S=>{S.preventDefault(),_(!0),E.current=S.clientY,k.current=m},[m]);(0,N.useEffect)(()=>{if(!h)return;let S=b=>{let De=E.current-b.clientY,B=Math.min(Math.max(150,k.current+De),window.innerHeight-100);g(B)},G=()=>{_(!1)};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",G),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",G)}},[h]),(0,N.useEffect)(()=>{e&&(c.current=!0,Z())},[e,Z]),(0,N.useEffect)(()=>{if(!e||!a)return;let S=setInterval(Z,2e3);return()=>clearInterval(S)},[e,a,Z]);let Ir=(0,N.useCallback)(S=>{p(G=>{let b=new Set(G);return b.has(S)?b.delete(S):b.add(S),b})},[]),Wn=(0,N.useCallback)(S=>{C(G=>{let b=new Set(G);return b.has(S)?b.delete(S):b.add(S),b})},[]),Vn=(0,N.useCallback)(S=>{p(S?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),Cn=(0,N.useCallback)(S=>{C(S?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!e)return null;let he=S=>{let G=Fo.find(kn=>kn.key===S.level),b=zo.find(kn=>kn.key===S.component),De="var(--color-text-primary)",B="normal",Dt="transparent";return S.level==="ERROR"?(De="#f85149",Dt="rgba(248, 81, 73, 0.1)"):S.level==="WARN"?(De="#d29922",Dt="rgba(210, 153, 34, 0.05)"):S.isSpecial==="success"?De="#3fb950":S.isSpecial==="failure"?De="#f85149":S.isSpecial==="happyPath"?De="#d29922":G&&(De=G.color),{color:De,fontWeight:B,backgroundColor:Dt,padding:"1px 0",borderRadius:"2px"}},Xe=(S,G)=>{if(!S.timestamp)return N.default.createElement("div",{key:G,className:"log-line log-line-raw"},S.raw);let b=Fo.find(B=>B.key===S.level),De=zo.find(B=>B.key===S.component);return N.default.createElement("div",{key:G,className:"log-line",style:he(S)},N.default.createElement("span",{className:"log-timestamp"},"[",S.timestamp,"]")," ",N.default.createElement("span",{className:"log-level",style:{color:b?.color},title:S.level},"[",b?.icon||""," ",S.level?.padEnd(5),"]")," ",N.default.createElement("span",{className:"log-component",style:{color:De?.color},title:S.component},"[",De?.icon||""," ",S.component?.padEnd(7),"]")," ",S.correlationId&&N.default.createElement(N.default.Fragment,null,N.default.createElement("span",{className:"log-correlation"},"[",S.correlationId,"]")," "),N.default.createElement("span",{className:"log-message"},S.message))};return N.default.createElement("div",{className:"console-drawer",style:{height:`${m}px`}},N.default.createElement("div",{className:"console-resize-handle",onMouseDown:Tn},N.default.createElement("div",{className:"console-resize-bar"})),N.default.createElement("div",{className:"console-header"},N.default.createElement("div",{className:"console-tabs"},N.default.createElement("div",{className:"console-tab active"},"Console")),N.default.createElement("div",{className:"console-controls"},N.default.createElement("label",{className:"console-auto-refresh"},N.default.createElement("input",{type:"checkbox",checked:a,onChange:S=>u(S.target.checked)}),"Auto-refresh"),N.default.createElement("button",{className:"console-control-btn",onClick:Z,disabled:o,title:"Refresh logs"},"\u21BB"),N.default.createElement("button",{className:"console-control-btn",onClick:()=>{c.current=!0,j()},title:"Scroll to bottom"},"\u2B07"),N.default.createElement("button",{className:"console-control-btn console-clear-btn",onClick:wn,disabled:o,title:"Clear logs"},"\u{1F5D1}"),N.default.createElement("button",{className:"console-control-btn",onClick:t,title:"Close console"},"\u2715"))),N.default.createElement("div",{className:"console-filters"},N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Quick:"),N.default.createElement("div",{className:"console-filter-chips"},N.default.createElement("button",{className:`console-filter-chip ${L?"active":""}`,onClick:()=>A(!L),style:{"--chip-color":"#f0883e"},title:"Show only session alignment logs"},"\u{1F517} Alignment"))),N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Levels:"),N.default.createElement("div",{className:"console-filter-chips"},Fo.map(S=>N.default.createElement("button",{key:S.key,className:`console-filter-chip ${f.has(S.key)?"active":""}`,onClick:()=>Ir(S.key),style:{"--chip-color":S.color},title:S.label},S.icon," ",S.label)),N.default.createElement("button",{className:"console-filter-action",onClick:()=>Vn(f.size===0),title:f.size===Fo.length?"Select none":"Select all"},f.size===Fo.length?"\u25CB":"\u25CF"))),N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Components:"),N.default.createElement("div",{className:"console-filter-chips"},zo.map(S=>N.default.createElement("button",{key:S.key,className:`console-filter-chip ${v.has(S.key)?"active":""}`,onClick:()=>Wn(S.key),style:{"--chip-color":S.color},title:S.label},S.icon," ",S.label)),N.default.createElement("button",{className:"console-filter-action",onClick:()=>Cn(v.size===0),title:v.size===zo.length?"Select none":"Select all"},v.size===zo.length?"\u25CB":"\u25CF")))),i&&N.default.createElement("div",{className:"console-error"},"\u26A0 ",i),N.default.createElement("div",{className:"console-content",ref:P},N.default.createElement("div",{className:"console-logs"},V.length===0?N.default.createElement("div",{className:"log-line log-line-empty"},"No logs available"):V.map((S,G)=>Xe(S,G)))))}var tt=ee(te(),1);var St={OBSERVATIONS:"/api/observations",SUMMARIES:"/api/summaries",PROMPTS:"/api/prompts",SETTINGS:"/api/settings",STATS:"/api/stats",PROCESSING_STATUS:"/api/processing-status",STREAM:"/stream"};var Ci={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function Mm(){let[e,t]=(0,tt.useState)([]),[n,r]=(0,tt.useState)([]),[o,l]=(0,tt.useState)([]),[i,s]=(0,tt.useState)([]),[a,u]=(0,tt.useState)(!1),[m,g]=(0,tt.useState)(!1),[h,_]=(0,tt.useState)(0),E=(0,tt.useRef)(null),k=(0,tt.useRef)();return(0,tt.useEffect)(()=>{let P=()=>{E.current&&E.current.close();let c=new EventSource(St.STREAM);E.current=c,c.onopen=()=>{console.log("[SSE] Connected"),u(!0),k.current&&clearTimeout(k.current)},c.onerror=f=>{console.error("[SSE] Connection error:",f),u(!1),c.close(),k.current=setTimeout(()=>{k.current=void 0,console.log("[SSE] Attempting to reconnect..."),P()},Ci.SSE_RECONNECT_DELAY_MS)},c.onmessage=f=>{let p=JSON.parse(f.data);switch(p.type){case"initial_load":console.log("[SSE] Initial load:",{projects:p.projects?.length||0}),s(p.projects||[]);break;case"new_observation":p.observation&&(console.log("[SSE] New observation:",p.observation.id),t(v=>[p.observation,...v]));break;case"new_summary":if(p.summary){let v=p.summary;console.log("[SSE] New summary:",v.id),r(C=>[v,...C])}break;case"new_prompt":if(p.prompt){let v=p.prompt;console.log("[SSE] New prompt:",v.id),l(C=>[v,...C])}break;case"processing_status":typeof p.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",p.isProcessing,"Queue depth:",p.queueDepth),g(p.isProcessing),_(p.queueDepth||0));break}}};return P(),()=>{E.current&&E.current.close(),k.current&&clearTimeout(k.current)}},[]),{observations:e,summaries:n,prompts:o,projects:i,isProcessing:m,queueDepth:h,isConnected:a}}var Or=ee(te(),1);var ie={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]"};function Am(){let[e,t]=(0,Or.useState)(ie),[n,r]=(0,Or.useState)(!1),[o,l]=(0,Or.useState)("");return(0,Or.useEffect)(()=>{fetch(St.SETTINGS).then(s=>s.json()).then(s=>{t({CLAUDE_MEM_MODEL:s.CLAUDE_MEM_MODEL??ie.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:s.CLAUDE_MEM_CONTEXT_OBSERVATIONS??ie.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:s.CLAUDE_MEM_WORKER_PORT??ie.CLAUDE_MEM_WORKER_PORT,CLAUDE_MEM_WORKER_HOST:s.CLAUDE_MEM_WORKER_HOST??ie.CLAUDE_MEM_WORKER_HOST,CLAUDE_MEM_PROVIDER:s.CLAUDE_MEM_PROVIDER??ie.CLAUDE_MEM_PROVIDER,CLAUDE_MEM_GEMINI_API_KEY:s.CLAUDE_MEM_GEMINI_API_KEY??ie.CLAUDE_MEM_GEMINI_API_KEY,CLAUDE_MEM_GEMINI_MODEL:s.CLAUDE_MEM_GEMINI_MODEL??ie.CLAUDE_MEM_GEMINI_MODEL,CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:s.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED??ie.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED,CLAUDE_MEM_OPENROUTER_API_KEY:s.CLAUDE_MEM_OPENROUTER_API_KEY??ie.CLAUDE_MEM_OPENROUTER_API_KEY,CLAUDE_MEM_OPENROUTER_MODEL:s.CLAUDE_MEM_OPENROUTER_MODEL??ie.CLAUDE_MEM_OPENROUTER_MODEL,CLAUDE_MEM_OPENROUTER_SITE_URL:s.CLAUDE_MEM_OPENROUTER_SITE_URL??ie.CLAUDE_MEM_OPENROUTER_SITE_URL,CLAUDE_MEM_OPENROUTER_APP_NAME:s.CLAUDE_MEM_OPENROUTER_APP_NAME??ie.CLAUDE_MEM_OPENROUTER_APP_NAME,CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS??ie.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS??ie.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT??ie.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT??ie.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT,CLAUDE_MEM_CONTEXT_FULL_COUNT:s.CLAUDE_MEM_CONTEXT_FULL_COUNT??ie.CLAUDE_MEM_CONTEXT_FULL_COUNT,CLAUDE_MEM_CONTEXT_FULL_FIELD:s.CLAUDE_MEM_CONTEXT_FULL_FIELD??ie.CLAUDE_MEM_CONTEXT_FULL_FIELD,CLAUDE_MEM_CONTEXT_SESSION_COUNT:s.CLAUDE_MEM_CONTEXT_SESSION_COUNT??ie.CLAUDE_MEM_CONTEXT_SESSION_COUNT,CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY??ie.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY,CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE??ie.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE})}).catch(s=>{console.error("Failed to load settings:",s)})},[]),{settings:e,saveSettings:async s=>{r(!0),l("Saving...");let u=await(await fetch(St.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();u.success?(t(s),l("\u2713 Saved"),setTimeout(()=>l(""),Ci.SAVE_STATUS_DISPLAY_DURATION_MS)):l(`\u2717 Error: ${u.error}`),r(!1)},isSaving:n,saveStatus:o}}var Dr=ee(te(),1);function xm(){let[e,t]=(0,Dr.useState)({}),n=(0,Dr.useCallback)(async()=>{try{let o=await(await fetch(St.STATS)).json();t(o)}catch(r){console.error("Failed to load stats:",r)}},[]);return(0,Dr.useEffect)(()=>{n()},[n]),{stats:e,refreshStats:n}}var _n=ee(te(),1);function Eu(e,t,n){let[r,o]=(0,_n.useState)({isLoading:!1,hasMore:!0}),l=(0,_n.useRef)(0),i=(0,_n.useRef)(n),s=(0,_n.useRef)(r),a=(0,_n.useCallback)(async()=>{let u=i.current!==n;if(u){l.current=0,i.current=n;let _={isLoading:!1,hasMore:!0};o(_),s.current=_}if(!u&&(s.current.isLoading||!s.current.hasMore))return[];o(_=>({..._,isLoading:!0}));let m=new URLSearchParams({offset:l.current.toString(),limit:xo.PAGINATION_PAGE_SIZE.toString()});n&&m.append("project",n);let g=await fetch(`${e}?${m}`);if(!g.ok)throw new Error(`Failed to load ${t}: ${g.statusText}`);let h=await g.json();return o(_=>({..._,isLoading:!1,hasMore:h.hasMore})),l.current+=xo.PAGINATION_PAGE_SIZE,h.items},[n,e,t]);return{...r,loadMore:a}}function Om(e){let t=Eu(St.OBSERVATIONS,"observations",e),n=Eu(St.SUMMARIES,"summaries",e),r=Eu(St.PROMPTS,"prompts",e);return{observations:t,summaries:n,prompts:r}}var Pr=ee(te(),1),Im="claude-mem-theme";function E0(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Dm(){try{let e=localStorage.getItem(Im);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function Pm(e){return e==="system"?E0():e}function Um(){let[e,t]=(0,Pr.useState)(Dm),[n,r]=(0,Pr.useState)(()=>Pm(Dm()));return(0,Pr.useEffect)(()=>{let l=Pm(e);r(l),document.documentElement.setAttribute("data-theme",l)},[e]),(0,Pr.useEffect)(()=>{if(e!=="system")return;let l=window.matchMedia("(prefers-color-scheme: dark)"),i=s=>{let a=s.matches?"dark":"light";r(a),document.documentElement.setAttribute("data-theme",a)};return l.addEventListener("change",i),()=>l.removeEventListener("change",i)},[e]),{preference:e,resolvedTheme:n,setThemePreference:l=>{try{localStorage.setItem(Im,l),t(l)}catch(i){console.warn("Failed to save theme preference to localStorage:",i),t(l)}}}}function ki(e,t){let n=new Set;return[...e,...t].filter(r=>n.has(r.id)?!1:(n.add(r.id),!0))}function Rm(){let[e,t]=(0,W.useState)(""),[n,r]=(0,W.useState)(!1),[o,l]=(0,W.useState)(!1),[i,s]=(0,W.useState)([]),[a,u]=(0,W.useState)([]),[m,g]=(0,W.useState)([]),{observations:h,summaries:_,prompts:E,projects:k,isProcessing:P,queueDepth:c,isConnected:f}=Mm(),{settings:p,saveSettings:v,isSaving:C,saveStatus:L}=Am(),{stats:A,refreshStats:O}=xm(),{preference:V,resolvedTheme:I,setThemePreference:j}=Um(),Z=Om(e),wn=(0,W.useMemo)(()=>{let he=e?h.filter(Xe=>Xe.project===e):h;return ki(he,i)},[h,i,e]),Tn=(0,W.useMemo)(()=>{let he=e?_.filter(Xe=>Xe.project===e):_;return ki(he,a)},[_,a,e]),Ir=(0,W.useMemo)(()=>{let he=e?E.filter(Xe=>Xe.project===e):E;return ki(he,m)},[E,m,e]),Wn=(0,W.useCallback)(()=>{r(he=>!he)},[]),Vn=(0,W.useCallback)(()=>{l(he=>!he)},[]),Cn=(0,W.useCallback)(async()=>{try{let[he,Xe,S]=await Promise.all([Z.observations.loadMore(),Z.summaries.loadMore(),Z.prompts.loadMore()]);he.length>0&&s(G=>[...G,...he]),Xe.length>0&&u(G=>[...G,...Xe]),S.length>0&&g(G=>[...G,...S])}catch(he){console.error("Failed to load more data:",he)}},[e,Z.observations,Z.summaries,Z.prompts]);return(0,W.useEffect)(()=>{s([]),u([]),g([]),Cn()},[e]),W.default.createElement(W.default.Fragment,null,W.default.createElement(Mp,{isConnected:f,projects:k,currentFilter:e,onFilterChange:t,isProcessing:P,queueDepth:c,themePreference:V,onThemeChange:j,onContextPreviewToggle:Wn}),W.default.createElement(Ip,{observations:wn,summaries:Tn,prompts:Ir,onLoadMore:Cn,isLoading:Z.observations.isLoading||Z.summaries.isLoading||Z.prompts.isLoading,hasMore:Z.observations.hasMore||Z.summaries.hasMore||Z.prompts.hasMore}),W.default.createElement(Lm,{isOpen:n,onClose:Wn,settings:p,onSave:v,isSaving:C,saveStatus:L}),W.default.createElement("button",{className:"console-toggle-btn",onClick:Vn,title:"Toggle Console"},W.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},W.default.createElement("polyline",{points:"4 17 10 11 4 5"}),W.default.createElement("line",{x1:"12",y1:"19",x2:"20",y2:"19"}))),W.default.createElement(Nm,{isOpen:o,onClose:Vn}))}var Xt=ee(te(),1),Li=class extends Xt.Component{constructor(t){super(t),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("[ErrorBoundary] Caught error:",t,n),this.setState({error:t,errorInfo:n})}render(){return this.state.hasError?Xt.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},Xt.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),Xt.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&Xt.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},Xt.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),Xt.default.createElement("pre",{style:{backgroundColor:"#0d1117",padding:"10px",borderRadius:"6px",overflow:"auto"}},this.state.error.toString(),this.state.errorInfo&&` -`+this.state.errorInfo.componentStack))):this.props.children}};var zm=document.getElementById("root");if(!zm)throw new Error("Root element not found");var S0=(0,Fm.createRoot)(zm);S0.render(Su.default.createElement(Ni,null,Su.default.createElement(Rm,null)));})(); +`+this.state.errorInfo.componentStack))):this.props.children}};var zm=document.getElementById("root");if(!zm)throw new Error("Root element not found");var S0=(0,Fm.createRoot)(zm);S0.render(Su.default.createElement(Li,null,Su.default.createElement(Rm,null)));})(); /*! Bundled license information: react/cjs/react.production.min.js: @@ -48,5 +48,5 @@ react-dom/cjs/react-dom.production.min.js: *) dompurify/dist/purify.es.mjs: - (*! @license DOMPurify 3.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.3/LICENSE *) + (*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE *) */ diff --git a/scripts/build-hooks.js b/scripts/build-hooks.js index 2dde9ee7..cb175627 100644 --- a/scripts/build-hooks.js +++ b/scripts/build-hooks.js @@ -187,6 +187,89 @@ async function buildHooks() { const contextGenStats = fs.statSync(`${hooksDir}/${CONTEXT_GENERATOR.name}.cjs`); console.log(`✓ context-generator built (${(contextGenStats.size / 1024).toFixed(2)} KB)`); + // Build NPX CLI (pure Node.js — no Bun dependency) + console.log(`\n🔧 Building NPX CLI...`); + const npxCliOutDir = 'dist/npx-cli'; + if (!fs.existsSync(npxCliOutDir)) { + fs.mkdirSync(npxCliOutDir, { recursive: true }); + } + await build({ + entryPoints: ['src/npx-cli/index.ts'], + bundle: true, + platform: 'node', + target: 'node18', + format: 'esm', + outfile: `${npxCliOutDir}/index.js`, + banner: { js: '#!/usr/bin/env node' }, + minify: true, + logLevel: 'error', + external: [ + 'fs', 'fs/promises', 'path', 'os', 'child_process', 'url', + 'crypto', 'http', 'https', 'net', 'stream', 'util', 'events', + 'buffer', 'querystring', 'readline', 'tty', 'assert', + ], + define: { + '__DEFAULT_PACKAGE_VERSION__': `"${version}"` + }, + }); + + // Make NPX CLI executable + fs.chmodSync(`${npxCliOutDir}/index.js`, 0o755); + const npxCliStats = fs.statSync(`${npxCliOutDir}/index.js`); + console.log(`✓ npx-cli built (${(npxCliStats.size / 1024).toFixed(2)} KB)`); + + // Build OpenClaw plugin (self-contained, only Node builtins external) + if (fs.existsSync('openclaw/src/index.ts')) { + console.log(`\n🔧 Building OpenClaw plugin...`); + const openclawOutDir = 'openclaw/dist'; + if (!fs.existsSync(openclawOutDir)) { + fs.mkdirSync(openclawOutDir, { recursive: true }); + } + await build({ + entryPoints: ['openclaw/src/index.ts'], + bundle: true, + platform: 'node', + target: 'node18', + format: 'esm', + outfile: `${openclawOutDir}/index.js`, + minify: true, + logLevel: 'error', + external: [ + 'fs', 'fs/promises', 'path', 'os', 'child_process', 'url', + 'crypto', 'http', 'https', 'net', 'stream', 'util', 'events', + ], + }); + + const openclawStats = fs.statSync(`${openclawOutDir}/index.js`); + console.log(`✓ openclaw plugin built (${(openclawStats.size / 1024).toFixed(2)} KB)`); + } + + // Build OpenCode plugin (self-contained, Node.js ESM — Bun-compatible) + if (fs.existsSync('src/integrations/opencode-plugin/index.ts')) { + console.log(`\n🔧 Building OpenCode plugin...`); + const opencodeOutDir = 'dist/opencode-plugin'; + if (!fs.existsSync(opencodeOutDir)) { + fs.mkdirSync(opencodeOutDir, { recursive: true }); + } + await build({ + entryPoints: ['src/integrations/opencode-plugin/index.ts'], + bundle: true, + platform: 'node', + target: 'node18', + format: 'esm', + outfile: `${opencodeOutDir}/index.js`, + minify: true, + logLevel: 'error', + external: [ + 'fs', 'fs/promises', 'path', 'os', 'child_process', 'url', + 'crypto', 'http', 'https', 'net', 'stream', 'util', 'events', + ], + }); + + const opencodeStats = fs.statSync(`${opencodeOutDir}/index.js`); + console.log(`✓ opencode plugin built (${(opencodeStats.size / 1024).toFixed(2)} KB)`); + } + // Verify critical distribution files exist (skills are source files, not build outputs) console.log('\n📋 Verifying distribution files...'); const requiredDistributionFiles = [ @@ -202,11 +285,21 @@ async function buildHooks() { } console.log('✓ All required distribution files present'); - console.log('\n✅ Worker service, MCP server, and context generator built successfully!'); + console.log('\n✅ All build targets compiled successfully!'); console.log(` Output: ${hooksDir}/`); console.log(` - Worker: worker-service.cjs`); console.log(` - MCP Server: mcp-server.cjs`); console.log(` - Context Generator: context-generator.cjs`); + console.log(` Output: ${npxCliOutDir}/`); + console.log(` - NPX CLI: index.js`); + if (fs.existsSync('openclaw/dist/index.js')) { + console.log(` Output: openclaw/dist/`); + console.log(` - OpenClaw Plugin: index.js`); + } + if (fs.existsSync('dist/opencode-plugin/index.js')) { + console.log(` Output: dist/opencode-plugin/`); + console.log(` - OpenCode Plugin: index.js`); + } } catch (error) { console.error('\n❌ Build failed:', error.message); diff --git a/scripts/claude-mem-sync b/scripts/claude-mem-sync new file mode 100755 index 00000000..f49e55e1 --- /dev/null +++ b/scripts/claude-mem-sync @@ -0,0 +1,181 @@ +#!/bin/bash +# claude-mem-sync — Synchronize claude-mem observations between machines +# +# Usage: +# claude-mem-sync push # local → remote +# claude-mem-sync pull # remote → local +# claude-mem-sync sync # bidirectional (push + pull) +# claude-mem-sync status # compare counts +# +# Prerequisites: +# - SSH access to remote host (key-based auth recommended) +# - Python 3 on both machines +# - claude-mem installed on both machines (~/.claude-mem/claude-mem.db) +# +# Environment variables: +# CLAUDE_MEM_DB Local database path (default: ~/.claude-mem/claude-mem.db) +# CLAUDE_MEM_REMOTE_DB Remote database path (default: ~/.claude-mem/claude-mem.db) + +set -euo pipefail + +LOCAL_DB="${CLAUDE_MEM_DB:-$HOME/.claude-mem/claude-mem.db}" +COMMAND="${1:?Usage: claude-mem-sync }" +REMOTE_HOST="${2:?Missing remote host. Usage: claude-mem-sync $COMMAND }" +REMOTE_DB="${CLAUDE_MEM_REMOTE_DB:-\$HOME/.claude-mem/claude-mem.db}" +TMPDIR="/tmp/claude-mem-sync-$$" + +mkdir -p "$TMPDIR" +trap "rm -rf $TMPDIR" EXIT + +# Column lists for observations and session_summaries +OBS_COLS="memory_session_id,project,text,type,title,subtitle,facts,narrative,concepts,files_read,files_modified,prompt_number,discovery_tokens,created_at,created_at_epoch" +SUM_COLS="memory_session_id,project,request,investigated,learned,completed,next_steps,files_read,files_edited,notes,prompt_number,discovery_tokens,created_at,created_at_epoch" + +export_obs() { + local db="$1" output="$2" + python3 -c " +import sqlite3, json, sys +conn = sqlite3.connect('$db') +cur = conn.cursor() +cur.execute('''SELECT $OBS_COLS FROM observations ORDER BY created_at''') +cols = '$OBS_COLS'.split(',') +rows = [dict(zip(cols, r)) for r in cur.fetchall()] +cur.execute('''SELECT $SUM_COLS FROM session_summaries ORDER BY created_at''') +cols2 = '$SUM_COLS'.split(',') +sums = [dict(zip(cols2, r)) for r in cur.fetchall()] +json.dump({'observations': rows, 'summaries': sums}, open('$output', 'w')) +print(f'{len(rows)} obs, {len(sums)} sums exported', file=sys.stderr) +conn.close() +" +} + +import_obs() { + local db="$1" input="$2" + python3 -c " +import sqlite3, json, sys +conn = sqlite3.connect('$db') +cur = conn.cursor() +cur.execute('SELECT created_at, title FROM observations') +existing = set((r[0],r[1]) for r in cur.fetchall()) +cur.execute('SELECT created_at, request FROM session_summaries') +existing_s = set((r[0],r[1]) for r in cur.fetchall()) +data = json.load(open('$input')) +oi, si = 0, 0 +obs_cols = '$OBS_COLS'.split(',') +sum_cols = '$SUM_COLS'.split(',') +obs_placeholders = ','.join(['?'] * len(obs_cols)) +sum_placeholders = ','.join(['?'] * len(sum_cols)) +for o in data['observations']: + if (o['created_at'], o['title']) not in existing: + cur.execute(f'INSERT INTO observations ($OBS_COLS) VALUES ({obs_placeholders})', + tuple(o[k] for k in obs_cols)) + oi += 1 +for s in data['summaries']: + if (s['created_at'], s['request']) not in existing_s: + cur.execute(f'INSERT INTO session_summaries ($SUM_COLS) VALUES ({sum_placeholders})', + tuple(s[k] for k in sum_cols)) + si += 1 +conn.commit() +print(f'{oi} new obs, {si} new sums imported', file=sys.stderr) +conn.close() +" +} + +count_db() { + local db="$1" + python3 -c " +import sqlite3 +conn = sqlite3.connect('$db') +cur = conn.cursor() +cur.execute('SELECT COUNT(*) FROM observations') +obs = cur.fetchone()[0] +cur.execute('SELECT COUNT(*) FROM session_summaries') +sums = cur.fetchone()[0] +cur.execute('SELECT MAX(created_at) FROM observations') +last = cur.fetchone()[0] or 'empty' +print(f'{obs} obs, {sums} sums (last: {last[:19]})') +conn.close() +" +} + +case "$COMMAND" in + push) + echo "=== Push: local → $REMOTE_HOST ===" + export_obs "$LOCAL_DB" "$TMPDIR/export.json" + scp -q "$TMPDIR/export.json" "$REMOTE_HOST:/tmp/mem-import.json" + # Run import on remote + ssh "$REMOTE_HOST" "python3 -c \" +import sqlite3, json, sys +conn = sqlite3.connect('$REMOTE_DB') +cur = conn.cursor() +cur.execute('SELECT created_at, title FROM observations') +existing = set((r[0],r[1]) for r in cur.fetchall()) +cur.execute('SELECT created_at, request FROM session_summaries') +existing_s = set((r[0],r[1]) for r in cur.fetchall()) +data = json.load(open('/tmp/mem-import.json')) +obs_cols = '$OBS_COLS'.split(',') +sum_cols = '$SUM_COLS'.split(',') +obs_ph = ','.join(['?'] * len(obs_cols)) +sum_ph = ','.join(['?'] * len(sum_cols)) +oi, si = 0, 0 +for o in data['observations']: + if (o['created_at'], o['title']) not in existing: + cur.execute(f'INSERT INTO observations ($OBS_COLS) VALUES ({obs_ph})', tuple(o[k] for k in obs_cols)) + oi += 1 +for s in data['summaries']: + if (s['created_at'], s['request']) not in existing_s: + cur.execute(f'INSERT INTO session_summaries ($SUM_COLS) VALUES ({sum_ph})', tuple(s[k] for k in sum_cols)) + si += 1 +conn.commit() +print(f'Remote: {oi} new obs, {si} new sums imported', file=sys.stderr) +conn.close() +\"" + ;; + pull) + echo "=== Pull: $REMOTE_HOST → local ===" + ssh "$REMOTE_HOST" "python3 -c \" +import sqlite3, json +conn = sqlite3.connect('$REMOTE_DB') +cur = conn.cursor() +cur.execute('SELECT $OBS_COLS FROM observations ORDER BY created_at') +cols = '$OBS_COLS'.split(',') +obs = [dict(zip(cols, r)) for r in cur.fetchall()] +cur.execute('SELECT $SUM_COLS FROM session_summaries ORDER BY created_at') +cols2 = '$SUM_COLS'.split(',') +sums = [dict(zip(cols2, r)) for r in cur.fetchall()] +json.dump({'observations': obs, 'summaries': sums}, open('/tmp/mem-export.json', 'w')) +print(f'{len(obs)} obs, {len(sums)} sums exported') +conn.close() +\"" + scp -q "$REMOTE_HOST:/tmp/mem-export.json" "$TMPDIR/import.json" + import_obs "$LOCAL_DB" "$TMPDIR/import.json" + ;; + sync) + echo "=== Bidirectional sync with $REMOTE_HOST ===" + "$0" push "$REMOTE_HOST" + "$0" pull "$REMOTE_HOST" + "$0" status "$REMOTE_HOST" + ;; + status) + echo "=== Local ===" + count_db "$LOCAL_DB" + echo "=== Remote ($REMOTE_HOST) ===" + ssh "$REMOTE_HOST" "python3 -c \" +import sqlite3 +conn = sqlite3.connect('$REMOTE_DB') +cur = conn.cursor() +cur.execute('SELECT COUNT(*) FROM observations') +obs = cur.fetchone()[0] +cur.execute('SELECT COUNT(*) FROM session_summaries') +sums = cur.fetchone()[0] +cur.execute('SELECT MAX(created_at) FROM observations') +last = cur.fetchone()[0] or 'empty' +print(f'{obs} obs, {sums} sums (last: {last[:19]})') +conn.close() +\"" + ;; + *) + echo "Usage: claude-mem-sync " + exit 1 + ;; +esac diff --git a/src/cli/adapters/index.ts b/src/cli/adapters/index.ts index 9b674167..d8506b40 100644 --- a/src/cli/adapters/index.ts +++ b/src/cli/adapters/index.ts @@ -3,6 +3,7 @@ import { claudeCodeAdapter } from './claude-code.js'; import { cursorAdapter } from './cursor.js'; import { geminiCliAdapter } from './gemini-cli.js'; import { rawAdapter } from './raw.js'; +import { windsurfAdapter } from './windsurf.js'; export function getPlatformAdapter(platform: string): PlatformAdapter { switch (platform) { @@ -10,10 +11,11 @@ export function getPlatformAdapter(platform: string): PlatformAdapter { case 'cursor': return cursorAdapter; case 'gemini': case 'gemini-cli': return geminiCliAdapter; + case 'windsurf': return windsurfAdapter; case 'raw': return rawAdapter; // Codex CLI and other compatible platforms use the raw adapter (accepts both camelCase and snake_case fields) default: return rawAdapter; } } -export { claudeCodeAdapter, cursorAdapter, geminiCliAdapter, rawAdapter }; +export { claudeCodeAdapter, cursorAdapter, geminiCliAdapter, rawAdapter, windsurfAdapter }; diff --git a/src/cli/adapters/windsurf.ts b/src/cli/adapters/windsurf.ts new file mode 100644 index 00000000..7f065ab1 --- /dev/null +++ b/src/cli/adapters/windsurf.ts @@ -0,0 +1,79 @@ +import type { PlatformAdapter, NormalizedHookInput, HookResult } from '../types.js'; + +// Maps Windsurf stdin format — JSON envelope with agent_action_name + tool_info payload +// +// Common envelope (all hooks): +// { agent_action_name, trajectory_id, execution_id, timestamp, tool_info: { ... } } +// +// Event-specific tool_info payloads: +// pre_user_prompt: { user_prompt: string } +// post_write_code: { file_path, edits: [{ old_string, new_string }] } +// post_run_command: { command_line, cwd } +// post_mcp_tool_use: { mcp_server_name, mcp_tool_name, mcp_tool_arguments, mcp_result } +// post_cascade_response: { response } +export const windsurfAdapter: PlatformAdapter = { + normalizeInput(raw) { + const r = (raw ?? {}) as any; + const toolInfo = r.tool_info ?? {}; + const actionName: string = r.agent_action_name ?? ''; + + const base: NormalizedHookInput = { + sessionId: r.trajectory_id ?? r.execution_id, + cwd: toolInfo.cwd ?? process.cwd(), + platform: 'windsurf', + }; + + switch (actionName) { + case 'pre_user_prompt': + return { + ...base, + prompt: toolInfo.user_prompt, + }; + + case 'post_write_code': + return { + ...base, + toolName: 'Write', + filePath: toolInfo.file_path, + edits: toolInfo.edits, + toolInput: { + file_path: toolInfo.file_path, + edits: toolInfo.edits, + }, + }; + + case 'post_run_command': + return { + ...base, + cwd: toolInfo.cwd ?? base.cwd, + toolName: 'Bash', + toolInput: { command: toolInfo.command_line }, + }; + + case 'post_mcp_tool_use': + return { + ...base, + toolName: toolInfo.mcp_tool_name ?? 'mcp_tool', + toolInput: toolInfo.mcp_tool_arguments, + toolResponse: toolInfo.mcp_result, + }; + + case 'post_cascade_response': + return { + ...base, + toolName: 'cascade_response', + toolResponse: toolInfo.response, + }; + + default: + // Unknown action — pass through what we can + return base; + } + }, + + formatOutput(result) { + // Windsurf exit codes: 0 = success, 2 = block (pre-hooks only) + // The CLI layer handles exit codes; here we just return a simple continue flag + return { continue: result.continue ?? true }; + }, +}; diff --git a/src/cli/handlers/context.ts b/src/cli/handlers/context.ts index 3abb75c5..f751ce40 100644 --- a/src/cli/handlers/context.ts +++ b/src/cli/handlers/context.ts @@ -39,7 +39,7 @@ export const contextHandler: EventHandler = { // Pass all projects (parent + worktree if applicable) for unified timeline const projectsParam = context.allProjects.join(','); const apiPath = `/api/context/inject?projects=${encodeURIComponent(projectsParam)}`; - const colorApiPath = `${apiPath}&colors=true`; + const colorApiPath = input.platform === 'claude-code' ? `${apiPath}&colors=true` : apiPath; // Note: Removed AbortSignal.timeout due to Windows Bun cleanup issue (libuv assertion) // Worker service has its own timeouts, so client-side timeout is redundant diff --git a/src/cli/handlers/session-init.ts b/src/cli/handlers/session-init.ts index eb687c38..1b704406 100644 --- a/src/cli/handlers/session-init.ts +++ b/src/cli/handlers/session-init.ts @@ -87,17 +87,18 @@ export const sessionInitHandler: EventHandler = { // Skip SDK agent re-initialization if context was already injected for this session (#1079) // The prompt was already saved to the database by /api/sessions/init above — - // no need to re-start the SDK agent on every turn - if (initResult.contextInjected) { + // no need to re-start the SDK agent on every turn. + // Note: we do NOT return here — semantic injection below must run on every prompt. + const skipAgentInit = Boolean(initResult.contextInjected); + if (skipAgentInit) { logger.info('HOOK', `INIT_COMPLETE | sessionDbId=${sessionDbId} | promptNumber=${promptNumber} | skipped_agent_init=true | reason=context_already_injected`, { sessionId: sessionDbId }); - return { continue: true, suppressOutput: true }; } // Only initialize SDK agent for Claude Code (not Cursor) // Cursor doesn't use the SDK agent - it only needs session/observation storage - if (input.platform !== 'cursor' && sessionDbId) { + if (!skipAgentInit && input.platform !== 'cursor' && sessionDbId) { // Strip leading slash from commands for memory agent // /review 101 -> review 101 (more semantic for observations) const cleanedPrompt = prompt.startsWith('/') ? prompt.substring(1) : prompt; @@ -115,14 +116,58 @@ export const sessionInitHandler: EventHandler = { // Log but don't throw - SDK agent failure should not block the user's prompt logger.failure('HOOK', `SDK agent start failed: ${response.status}`, { sessionDbId, promptNumber }); } - } else if (input.platform === 'cursor') { + } else if (!skipAgentInit && input.platform === 'cursor') { logger.debug('HOOK', 'session-init: Skipping SDK agent init for Cursor platform', { sessionDbId, promptNumber }); } + // Semantic context injection: query Chroma for relevant past observations + // and inject as additionalContext so Claude receives relevant memory each prompt. + // Controlled by CLAUDE_MEM_SEMANTIC_INJECT setting (default: true). + const semanticInject = + String(settings.CLAUDE_MEM_SEMANTIC_INJECT).toLowerCase() === 'true'; + let additionalContext = ''; + + if (semanticInject && prompt && prompt.length >= 20 && prompt !== '[media prompt]') { + try { + const limit = settings.CLAUDE_MEM_SEMANTIC_INJECT_LIMIT || '5'; + const semanticRes = await workerHttpRequest('/api/context/semantic', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ q: prompt, project, limit }) + }); + if (semanticRes.ok) { + const data = await semanticRes.json() as { context: string; count: number }; + if (data.context) { + additionalContext = data.context; + logger.debug('HOOK', `Semantic injection: ${data.count} observations for prompt`, { + sessionId: sessionDbId, count: data.count + }); + } + } + } catch (e) { + // Graceful degradation — semantic injection is optional + logger.debug('HOOK', 'Semantic injection unavailable', { + error: e instanceof Error ? e.message : String(e) + }); + } + } + logger.info('HOOK', `INIT_COMPLETE | sessionDbId=${sessionDbId} | promptNumber=${promptNumber} | project=${project}`, { sessionId: sessionDbId }); + // Return with semantic context if available + if (additionalContext) { + return { + continue: true, + suppressOutput: true, + hookSpecificOutput: { + hookEventName: 'UserPromptSubmit', + additionalContext + } + }; + } + return { continue: true, suppressOutput: true }; } }; diff --git a/src/cli/handlers/summarize.ts b/src/cli/handlers/summarize.ts index 24fa354a..55cc6ab1 100644 --- a/src/cli/handlers/summarize.ts +++ b/src/cli/handlers/summarize.ts @@ -1,9 +1,16 @@ /** * Summarize Handler - Stop * - * Extracted from summary-hook.ts - sends summary request to worker. - * Transcript parsing stays in the hook because only the hook has access to - * the transcript file path. + * Runs in the Stop hook (120s timeout, not capped like SessionEnd). + * This is the ONLY place where we can reliably wait for async work. + * + * Flow: + * 1. Queue summarize request to worker + * 2. Poll worker until summary processing completes + * 3. Call /api/sessions/complete to clean up session + * + * SessionEnd (1.5s cap from Claude Code) is just a lightweight fallback — + * all real work must happen here in Stop. */ import type { EventHandler, NormalizedHookInput, HookResult } from '../types.js'; @@ -13,6 +20,8 @@ import { extractLastMessage } from '../../shared/transcript-parser.js'; import { HOOK_EXIT_CODES, HOOK_TIMEOUTS, getTimeout } from '../../shared/hook-constants.js'; const SUMMARIZE_TIMEOUT_MS = getTimeout(HOOK_TIMEOUTS.DEFAULT); +const POLL_INTERVAL_MS = 500; +const MAX_WAIT_FOR_SUMMARY_MS = 110_000; // 110s — fits within Stop hook's 120s timeout export const summarizeHandler: EventHandler = { async execute(input: NormalizedHookInput): Promise { @@ -43,11 +52,21 @@ export const summarizeHandler: EventHandler = { return { continue: true, suppressOutput: true, exitCode: HOOK_EXIT_CODES.SUCCESS }; } + // Skip summary if transcript has no assistant message (prevents repeated + // empty summarize requests that pollute logs — upstream bug) + if (!lastAssistantMessage || !lastAssistantMessage.trim()) { + logger.debug('HOOK', 'No assistant message in transcript - skipping summary', { + sessionId, + transcriptPath + }); + return { continue: true, suppressOutput: true, exitCode: HOOK_EXIT_CODES.SUCCESS }; + } + logger.dataIn('HOOK', 'Stop: Requesting summary', { hasLastAssistantMessage: !!lastAssistantMessage }); - // Send to worker - worker handles privacy check and database operations + // 1. Queue summarize request — worker returns immediately with { status: 'queued' } const response = await workerHttpRequest('/api/sessions/summarize', { method: 'POST', headers: { 'Content-Type': 'application/json' }, @@ -59,11 +78,49 @@ export const summarizeHandler: EventHandler = { }); if (!response.ok) { - // Return standard response even on failure (matches original behavior) return { continue: true, suppressOutput: true }; } - logger.debug('HOOK', 'Summary request sent successfully'); + logger.debug('HOOK', 'Summary request queued, waiting for completion'); + + // 2. Poll worker until pending work for this session is done. + // This keeps the Stop hook alive (120s timeout) so the SDK agent + // can finish processing the summary before SessionEnd kills the session. + const waitStart = Date.now(); + while ((Date.now() - waitStart) < MAX_WAIT_FOR_SUMMARY_MS) { + await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL_MS)); + try { + const statusResponse = await workerHttpRequest(`/api/sessions/status?contentSessionId=${encodeURIComponent(sessionId)}`, { + timeoutMs: 5000 + }); + if (statusResponse.ok) { + const status = await statusResponse.json() as { queueLength?: number }; + if ((status.queueLength ?? 0) === 0) { + logger.info('HOOK', 'Summary processing complete', { + waitedMs: Date.now() - waitStart + }); + break; + } + } + } catch { + // Worker may be busy — keep polling + } + } + + // 3. Complete the session — clean up active sessions map. + // This runs here in Stop (120s timeout) instead of SessionEnd (1.5s cap) + // so it reliably fires after summary work is done. + try { + await workerHttpRequest('/api/sessions/complete', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ contentSessionId: sessionId }), + timeoutMs: 10_000 + }); + logger.info('HOOK', 'Session completed in Stop hook', { contentSessionId: sessionId }); + } catch (err) { + logger.warn('HOOK', `Stop hook: session-complete failed: ${err instanceof Error ? err.message : err}`); + } return { continue: true, suppressOutput: true }; } diff --git a/src/cli/handlers/user-message.ts b/src/cli/handlers/user-message.ts index b509209e..4459eecf 100644 --- a/src/cli/handlers/user-message.ts +++ b/src/cli/handlers/user-message.ts @@ -23,9 +23,11 @@ export const userMessageHandler: EventHandler = { const project = basename(input.cwd ?? process.cwd()); // Fetch formatted context directly from worker API + // Only request ANSI colors for platforms that render them (claude-code) + const colorsParam = input.platform === 'claude-code' ? '&colors=true' : ''; try { const response = await workerHttpRequest( - `/api/context/inject?project=${encodeURIComponent(project)}&colors=true` + `/api/context/inject?project=${encodeURIComponent(project)}${colorsParam}` ); if (!response.ok) { diff --git a/src/cli/types.ts b/src/cli/types.ts index bc9d7d13..d69c5a69 100644 --- a/src/cli/types.ts +++ b/src/cli/types.ts @@ -1,7 +1,7 @@ export interface NormalizedHookInput { sessionId: string; cwd: string; - platform?: string; // 'claude-code' or 'cursor' + platform?: string; // 'claude-code', 'cursor', 'gemini-cli', etc. prompt?: string; toolName?: string; toolInput?: unknown; @@ -10,6 +10,8 @@ export interface NormalizedHookInput { // Cursor-specific fields filePath?: string; // afterFileEdit edits?: unknown[]; // afterFileEdit + // Platform-specific metadata (source, reason, trigger, mcp_context, etc.) + metadata?: Record; } export interface HookResult { diff --git a/src/integrations/opencode-plugin/index.ts b/src/integrations/opencode-plugin/index.ts new file mode 100644 index 00000000..b9c40ed3 --- /dev/null +++ b/src/integrations/opencode-plugin/index.ts @@ -0,0 +1,366 @@ +/** + * OpenCode Plugin for claude-mem + * + * Integrates claude-mem persistent memory with OpenCode (110k+ stars). + * Runs inside OpenCode's Bun-based plugin runtime. + * + * Plugin hooks: + * - tool.execute.after: Captures tool execution observations + * - Bus events: session.created, message.updated, session.compacted, + * file.edited, session.deleted + * + * Custom tool: + * - claude_mem_search: Search memory database from within OpenCode + */ + +// ============================================================================ +// Minimal type declarations for OpenCode Plugin SDK +// These match the runtime API provided by @opencode-ai/plugin +// ============================================================================ + +interface OpenCodeProject { + name?: string; + path?: string; +} + +interface OpenCodePluginContext { + client: unknown; + project: OpenCodeProject; + directory: string; + worktree: string; + serverUrl: URL; + $: unknown; // BunShell +} + +interface ToolExecuteAfterInput { + tool: string; + sessionID: string; + callID: string; + args: Record; +} + +interface ToolExecuteAfterOutput { + title: string; + output: string; + metadata: Record; +} + +interface ToolDefinition { + description: string; + args: Record; + execute: (args: Record, context: unknown) => Promise; +} + +// Bus event payloads +interface SessionCreatedEvent { + event: { + sessionID: string; + directory?: string; + project?: string; + }; +} + +interface MessageUpdatedEvent { + event: { + sessionID: string; + role: string; + content: string; + }; +} + +interface SessionCompactedEvent { + event: { + sessionID: string; + summary?: string; + messageCount?: number; + }; +} + +interface FileEditedEvent { + event: { + sessionID: string; + path: string; + diff?: string; + }; +} + +interface SessionDeletedEvent { + event: { + sessionID: string; + }; +} + +// ============================================================================ +// Constants +// ============================================================================ + +const WORKER_BASE_URL = "http://127.0.0.1:37777"; +const MAX_TOOL_RESPONSE_LENGTH = 1000; + +// ============================================================================ +// Worker HTTP Client +// ============================================================================ + +async function workerPost( + path: string, + body: Record, +): Promise | null> { + try { + const response = await fetch(`${WORKER_BASE_URL}${path}`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(body), + }); + if (!response.ok) { + console.warn(`[claude-mem] Worker POST ${path} returned ${response.status}`); + return null; + } + return (await response.json()) as Record; + } catch (error: unknown) { + // Gracefully handle ECONNREFUSED — worker may not be running + const message = error instanceof Error ? error.message : String(error); + if (!message.includes("ECONNREFUSED")) { + console.warn(`[claude-mem] Worker POST ${path} failed: ${message}`); + } + return null; + } +} + +function workerPostFireAndForget( + path: string, + body: Record, +): void { + fetch(`${WORKER_BASE_URL}${path}`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(body), + }).catch((error: unknown) => { + const message = error instanceof Error ? error.message : String(error); + if (!message.includes("ECONNREFUSED")) { + console.warn(`[claude-mem] Worker POST ${path} failed: ${message}`); + } + }); +} + +async function workerGetText(path: string): Promise { + try { + const response = await fetch(`${WORKER_BASE_URL}${path}`); + if (!response.ok) { + console.warn(`[claude-mem] Worker GET ${path} returned ${response.status}`); + return null; + } + return await response.text(); + } catch (error: unknown) { + const message = error instanceof Error ? error.message : String(error); + if (!message.includes("ECONNREFUSED")) { + console.warn(`[claude-mem] Worker GET ${path} failed: ${message}`); + } + return null; + } +} + +// ============================================================================ +// Session tracking +// ============================================================================ + +const contentSessionIdsByOpenCodeSessionId = new Map(); + +const MAX_SESSION_MAP_ENTRIES = 1000; + +function getOrCreateContentSessionId(openCodeSessionId: string): string { + if (!contentSessionIdsByOpenCodeSessionId.has(openCodeSessionId)) { + // Evict oldest entries when the map exceeds the cap (Map preserves insertion order) + while (contentSessionIdsByOpenCodeSessionId.size >= MAX_SESSION_MAP_ENTRIES) { + const oldestKey = contentSessionIdsByOpenCodeSessionId.keys().next().value; + if (oldestKey !== undefined) { + contentSessionIdsByOpenCodeSessionId.delete(oldestKey); + } else { + break; + } + } + contentSessionIdsByOpenCodeSessionId.set( + openCodeSessionId, + `opencode-${openCodeSessionId}-${Date.now()}`, + ); + } + return contentSessionIdsByOpenCodeSessionId.get(openCodeSessionId)!; +} + +// ============================================================================ +// Plugin Entry Point +// ============================================================================ + +export const ClaudeMemPlugin = async (ctx: OpenCodePluginContext) => { + const projectName = ctx.project?.name || "opencode"; + + console.log(`[claude-mem] OpenCode plugin loading (project: ${projectName})`); + + return { + // ------------------------------------------------------------------ + // Direct interceptor hooks + // ------------------------------------------------------------------ + hooks: { + tool: { + execute: { + after: ( + input: ToolExecuteAfterInput, + output: ToolExecuteAfterOutput, + ) => { + const contentSessionId = getOrCreateContentSessionId(input.sessionID); + + // Truncate long tool output + let toolResponseText = output.output || ""; + if (toolResponseText.length > MAX_TOOL_RESPONSE_LENGTH) { + toolResponseText = toolResponseText.slice(0, MAX_TOOL_RESPONSE_LENGTH); + } + + workerPostFireAndForget("/api/sessions/observations", { + contentSessionId, + tool_name: input.tool, + tool_input: input.args || {}, + tool_response: toolResponseText, + cwd: ctx.directory, + }); + }, + }, + }, + }, + + // ------------------------------------------------------------------ + // Bus event handlers + // ------------------------------------------------------------------ + event: (eventName: string, payload: unknown) => { + switch (eventName) { + case "session.created": { + const { event } = payload as SessionCreatedEvent; + const contentSessionId = getOrCreateContentSessionId(event.sessionID); + + workerPostFireAndForget("/api/sessions/init", { + contentSessionId, + project: projectName, + prompt: "", + }); + break; + } + + case "message.updated": { + const { event } = payload as MessageUpdatedEvent; + + // Only capture assistant messages as observations + if (event.role !== "assistant") break; + + const contentSessionId = getOrCreateContentSessionId(event.sessionID); + + let messageText = event.content || ""; + if (messageText.length > MAX_TOOL_RESPONSE_LENGTH) { + messageText = messageText.slice(0, MAX_TOOL_RESPONSE_LENGTH); + } + + workerPostFireAndForget("/api/sessions/observations", { + contentSessionId, + tool_name: "assistant_message", + tool_input: {}, + tool_response: messageText, + cwd: ctx.directory, + }); + break; + } + + case "session.compacted": { + const { event } = payload as SessionCompactedEvent; + const contentSessionId = getOrCreateContentSessionId(event.sessionID); + + workerPostFireAndForget("/api/sessions/summarize", { + contentSessionId, + last_assistant_message: event.summary || "", + }); + break; + } + + case "file.edited": { + const { event } = payload as FileEditedEvent; + const contentSessionId = getOrCreateContentSessionId(event.sessionID); + + workerPostFireAndForget("/api/sessions/observations", { + contentSessionId, + tool_name: "file_edit", + tool_input: { path: event.path }, + tool_response: event.diff + ? event.diff.slice(0, MAX_TOOL_RESPONSE_LENGTH) + : `File edited: ${event.path}`, + cwd: ctx.directory, + }); + break; + } + + case "session.deleted": { + const { event } = payload as SessionDeletedEvent; + const contentSessionId = contentSessionIdsByOpenCodeSessionId.get( + event.sessionID, + ); + + if (contentSessionId) { + workerPostFireAndForget("/api/sessions/complete", { + contentSessionId, + }); + contentSessionIdsByOpenCodeSessionId.delete(event.sessionID); + } + break; + } + } + }, + + // ------------------------------------------------------------------ + // Custom tools + // ------------------------------------------------------------------ + tool: { + claude_mem_search: { + description: + "Search claude-mem memory database for past observations, sessions, and context", + args: { + query: { + type: "string", + description: "Search query for memory observations", + }, + }, + async execute( + args: Record, + ): Promise { + const query = String(args.query || ""); + if (!query) { + return "Please provide a search query."; + } + + const text = await workerGetText( + `/api/search/observations?query=${encodeURIComponent(query)}&limit=10`, + ); + + if (!text) { + return "claude-mem worker is not running. Start it with: npx claude-mem start"; + } + + try { + const data = JSON.parse(text); + const items = Array.isArray(data.items) ? data.items : []; + if (items.length === 0) { + return `No results found for "${query}".`; + } + + return items + .slice(0, 10) + .map((item: Record, index: number) => { + const title = String(item.title || item.subtitle || "Untitled"); + const project = item.project ? ` [${String(item.project)}]` : ""; + return `${index + 1}. ${title}${project}`; + }) + .join("\n"); + } catch { + return "Failed to parse search results."; + } + }, + } satisfies ToolDefinition, + }, + }; +}; + +export default ClaudeMemPlugin; diff --git a/src/npx-cli/commands/ide-detection.ts b/src/npx-cli/commands/ide-detection.ts new file mode 100644 index 00000000..df6b3a26 --- /dev/null +++ b/src/npx-cli/commands/ide-detection.ts @@ -0,0 +1,173 @@ +/** + * IDE Auto-Detection + * + * Detects which AI coding IDEs / tools are installed on the system by + * probing known config directories and checking for binaries in PATH. + * + * Pure Node.js — no Bun APIs used. + */ +import { execSync } from 'child_process'; +import { existsSync, readdirSync } from 'fs'; +import { homedir } from 'os'; +import { join } from 'path'; +import { IS_WINDOWS } from '../utils/paths.js'; + +// --------------------------------------------------------------------------- +// IDE type and metadata +// --------------------------------------------------------------------------- + +export interface IDEInfo { + /** Machine-readable identifier. */ + id: string; + /** Human-readable label for display in prompts. */ + label: string; + /** Whether the IDE was detected on this system. */ + detected: boolean; + /** Whether claude-mem has implemented setup for this IDE. */ + supported: boolean; + /** Short hint text shown in the multi-select. */ + hint?: string; +} + +// --------------------------------------------------------------------------- +// PATH helper +// --------------------------------------------------------------------------- + +function isCommandInPath(command: string): boolean { + try { + const whichCommand = IS_WINDOWS ? 'where' : 'which'; + execSync(`${whichCommand} ${command}`, { stdio: 'pipe' }); + return true; + } catch { + return false; + } +} + +// --------------------------------------------------------------------------- +// VS Code extension directory scanner +// --------------------------------------------------------------------------- + +function hasVscodeExtension(extensionNameFragment: string): boolean { + const extensionsDirectory = join(homedir(), '.vscode', 'extensions'); + if (!existsSync(extensionsDirectory)) return false; + try { + const entries = readdirSync(extensionsDirectory); + return entries.some((entry) => entry.toLowerCase().includes(extensionNameFragment.toLowerCase())); + } catch { + return false; + } +} + +// --------------------------------------------------------------------------- +// Detection map +// --------------------------------------------------------------------------- + +/** + * Detect all known IDEs and return an array of `IDEInfo` objects. + * Each entry indicates whether the IDE was found and whether claude-mem + * currently supports setting it up. + */ +export function detectInstalledIDEs(): IDEInfo[] { + const home = homedir(); + + return [ + { + id: 'claude-code', + label: 'Claude Code', + detected: existsSync(join(home, '.claude')), + supported: true, + hint: 'recommended', + }, + { + id: 'gemini-cli', + label: 'Gemini CLI', + detected: existsSync(join(home, '.gemini')), + supported: true, + }, + { + id: 'opencode', + label: 'OpenCode', + detected: + existsSync(join(home, '.config', 'opencode')) || isCommandInPath('opencode'), + supported: true, + hint: 'plugin-based integration', + }, + { + id: 'openclaw', + label: 'OpenClaw', + detected: existsSync(join(home, '.openclaw')), + supported: true, + hint: 'plugin-based integration', + }, + { + id: 'windsurf', + label: 'Windsurf', + detected: existsSync(join(home, '.codeium', 'windsurf')), + supported: true, + }, + { + id: 'codex-cli', + label: 'Codex CLI', + detected: existsSync(join(home, '.codex')), + supported: true, + hint: 'transcript-based integration', + }, + { + id: 'cursor', + label: 'Cursor', + detected: existsSync(join(home, '.cursor')), + supported: true, + hint: 'hooks + MCP integration', + }, + { + id: 'copilot-cli', + label: 'Copilot CLI', + detected: isCommandInPath('copilot'), + supported: true, + hint: 'MCP-based integration', + }, + { + id: 'antigravity', + label: 'Antigravity', + detected: existsSync(join(home, '.gemini', 'antigravity')), + supported: true, + hint: 'MCP-based integration', + }, + { + id: 'goose', + label: 'Goose', + detected: + existsSync(join(home, '.config', 'goose')) || isCommandInPath('goose'), + supported: true, + hint: 'MCP-based integration', + }, + { + id: 'crush', + label: 'Crush', + detected: isCommandInPath('crush'), + supported: true, + hint: 'MCP-based integration', + }, + { + id: 'roo-code', + label: 'Roo Code', + detected: hasVscodeExtension('roo-code'), + supported: true, + hint: 'MCP-based integration', + }, + { + id: 'warp', + label: 'Warp', + detected: existsSync(join(home, '.warp')) || isCommandInPath('warp'), + supported: true, + hint: 'MCP-based integration', + }, + ]; +} + +/** + * Return only the IDEs that were detected on this system. + */ +export function getDetectedIDEs(): IDEInfo[] { + return detectInstalledIDEs().filter((ide) => ide.detected); +} diff --git a/src/npx-cli/commands/install.ts b/src/npx-cli/commands/install.ts new file mode 100644 index 00000000..0cf490ab --- /dev/null +++ b/src/npx-cli/commands/install.ts @@ -0,0 +1,564 @@ +/** + * Install command for `npx claude-mem install`. + * + * Replaces the git-clone + build workflow. The npm package already ships + * a pre-built `plugin/` directory; this command copies it into the right + * locations and registers it with Claude Code. + * + * Pure Node.js — no Bun APIs used. + */ +import * as p from '@clack/prompts'; +import pc from 'picocolors'; +import { execSync } from 'child_process'; +import { cpSync, existsSync, readFileSync, rmSync } from 'fs'; +import { join } from 'path'; + +// Non-TTY detection: @clack/prompts crashes with ENOENT in non-TTY environments +const isInteractive = process.stdin.isTTY === true; + +/** Run a list of tasks, falling back to plain console.log when non-TTY */ +interface TaskDescriptor { + title: string; + task: (message: (msg: string) => void) => Promise; +} + +async function runTasks(tasks: TaskDescriptor[]): Promise { + if (isInteractive) { + await p.tasks(tasks); + } else { + for (const t of tasks) { + const result = await t.task((msg: string) => console.log(` ${msg}`)); + console.log(` ${result}`); + } + } +} + +/** Log helpers that fall back to console.log in non-TTY */ +const log = { + info: (msg: string) => isInteractive ? p.log.info(msg) : console.log(` ${msg}`), + success: (msg: string) => isInteractive ? p.log.success(msg) : console.log(` ${msg}`), + warn: (msg: string) => isInteractive ? p.log.warn(msg) : console.warn(` ${msg}`), + error: (msg: string) => isInteractive ? p.log.error(msg) : console.error(` ${msg}`), +}; +import { + claudeSettingsPath, + ensureDirectoryExists, + installedPluginsPath, + IS_WINDOWS, + knownMarketplacesPath, + marketplaceDirectory, + npmPackagePluginDirectory, + npmPackageRootDirectory, + pluginCacheDirectory, + pluginsDirectory, + readPluginVersion, + writeJsonFileAtomic, +} from '../utils/paths.js'; +import { readJsonSafe } from '../../utils/json-utils.js'; +import { detectInstalledIDEs } from './ide-detection.js'; + +// --------------------------------------------------------------------------- +// Registration helpers +// --------------------------------------------------------------------------- + +function registerMarketplace(): void { + const knownMarketplaces = readJsonSafe>(knownMarketplacesPath(), {}); + + knownMarketplaces['thedotmack'] = { + source: { + source: 'github', + repo: 'thedotmack/claude-mem', + }, + installLocation: marketplaceDirectory(), + lastUpdated: new Date().toISOString(), + autoUpdate: true, + }; + + ensureDirectoryExists(pluginsDirectory()); + writeJsonFileAtomic(knownMarketplacesPath(), knownMarketplaces); +} + +function registerPlugin(version: string): void { + const installedPlugins = readJsonSafe>(installedPluginsPath(), {}); + + if (!installedPlugins.version) installedPlugins.version = 2; + if (!installedPlugins.plugins) installedPlugins.plugins = {}; + + const cachePath = pluginCacheDirectory(version); + const now = new Date().toISOString(); + + installedPlugins.plugins['claude-mem@thedotmack'] = [ + { + scope: 'user', + installPath: cachePath, + version, + installedAt: now, + lastUpdated: now, + }, + ]; + + writeJsonFileAtomic(installedPluginsPath(), installedPlugins); +} + +function enablePluginInClaudeSettings(): void { + const settings = readJsonSafe>(claudeSettingsPath(), {}); + + if (!settings.enabledPlugins) settings.enabledPlugins = {}; + settings.enabledPlugins['claude-mem@thedotmack'] = true; + + writeJsonFileAtomic(claudeSettingsPath(), settings); +} + +// --------------------------------------------------------------------------- +// IDE setup dispatcher +// --------------------------------------------------------------------------- + +/** Returns a list of IDE IDs that failed setup. */ +async function setupIDEs(selectedIDEs: string[]): Promise { + const failedIDEs: string[] = []; + + for (const ideId of selectedIDEs) { + switch (ideId) { + case 'claude-code': { + // Claude Code uses its native plugin CLI — two commands handle + // marketplace registration, plugin installation, and enablement. + try { + execSync( + 'claude plugin marketplace add thedotmack/claude-mem && claude plugin install claude-mem', + { stdio: 'inherit' }, + ); + log.success('Claude Code: plugin installed via CLI.'); + } catch { + log.error('Claude Code: plugin install failed. Is `claude` CLI on your PATH?'); + failedIDEs.push(ideId); + } + break; + } + + case 'cursor': { + const { installCursorHooks, configureCursorMcp } = await import('../../services/integrations/CursorHooksInstaller.js'); + const cursorResult = await installCursorHooks('user'); + if (cursorResult === 0) { + const mcpResult = configureCursorMcp('user'); + if (mcpResult === 0) { + log.success('Cursor: hooks + MCP installed.'); + } else { + log.success('Cursor: hooks installed (MCP setup failed — run `npx claude-mem cursor mcp` to retry).'); + } + } else { + log.error('Cursor: hook installation failed.'); + failedIDEs.push(ideId); + } + break; + } + + case 'gemini-cli': { + const { installGeminiCliHooks } = await import('../../services/integrations/GeminiCliHooksInstaller.js'); + const geminiResult = await installGeminiCliHooks(); + if (geminiResult === 0) { + log.success('Gemini CLI: hooks installed.'); + } else { + log.error('Gemini CLI: hook installation failed.'); + failedIDEs.push(ideId); + } + break; + } + + case 'opencode': { + const { installOpenCodeIntegration } = await import('../../services/integrations/OpenCodeInstaller.js'); + const openCodeResult = await installOpenCodeIntegration(); + if (openCodeResult === 0) { + log.success('OpenCode: plugin installed.'); + } else { + log.error('OpenCode: plugin installation failed.'); + failedIDEs.push(ideId); + } + break; + } + + case 'windsurf': { + const { installWindsurfHooks } = await import('../../services/integrations/WindsurfHooksInstaller.js'); + const windsurfResult = await installWindsurfHooks(); + if (windsurfResult === 0) { + log.success('Windsurf: hooks installed.'); + } else { + log.error('Windsurf: hook installation failed.'); + failedIDEs.push(ideId); + } + break; + } + + case 'openclaw': { + const { installOpenClawIntegration } = await import('../../services/integrations/OpenClawInstaller.js'); + const openClawResult = await installOpenClawIntegration(); + if (openClawResult === 0) { + log.success('OpenClaw: plugin installed.'); + } else { + log.error('OpenClaw: plugin installation failed.'); + failedIDEs.push(ideId); + } + break; + } + + case 'codex-cli': { + const { installCodexCli } = await import('../../services/integrations/CodexCliInstaller.js'); + const codexResult = await installCodexCli(); + if (codexResult === 0) { + log.success('Codex CLI: transcript watching configured.'); + } else { + log.error('Codex CLI: integration setup failed.'); + failedIDEs.push(ideId); + } + break; + } + + case 'copilot-cli': + case 'antigravity': + case 'goose': + case 'crush': + case 'roo-code': + case 'warp': { + const { MCP_IDE_INSTALLERS } = await import('../../services/integrations/McpIntegrations.js'); + const mcpInstaller = MCP_IDE_INSTALLERS[ideId]; + if (mcpInstaller) { + const mcpResult = await mcpInstaller(); + const allIDEs = detectInstalledIDEs(); + const ideInfo = allIDEs.find((i) => i.id === ideId); + const ideLabel = ideInfo?.label ?? ideId; + if (mcpResult === 0) { + log.success(`${ideLabel}: MCP integration installed.`); + } else { + log.error(`${ideLabel}: MCP integration failed.`); + failedIDEs.push(ideId); + } + } + break; + } + + default: { + const allIDEs = detectInstalledIDEs(); + const ide = allIDEs.find((i) => i.id === ideId); + if (ide && !ide.supported) { + log.warn(`Support for ${ide.label} coming soon.`); + } + break; + } + } + } + + return failedIDEs; +} + +// --------------------------------------------------------------------------- +// Interactive IDE selection +// --------------------------------------------------------------------------- + +async function promptForIDESelection(): Promise { + const detectedIDEs = detectInstalledIDEs(); + const detected = detectedIDEs.filter((ide) => ide.detected); + + if (detected.length === 0) { + log.warn('No supported IDEs detected. Installing for Claude Code by default.'); + return ['claude-code']; + } + + const options = detected.map((ide) => ({ + value: ide.id, + label: ide.label, + hint: ide.supported ? ide.hint : 'coming soon', + })); + + const result = await p.multiselect({ + message: 'Which IDEs do you use?', + options, + initialValues: detected + .filter((ide) => ide.supported) + .map((ide) => ide.id), + required: true, + }); + + if (p.isCancel(result)) { + p.cancel('Installation cancelled.'); + process.exit(0); + } + + return result as string[]; +} + +// --------------------------------------------------------------------------- +// Core copy logic +// --------------------------------------------------------------------------- + +function copyPluginToMarketplace(): void { + const marketplaceDir = marketplaceDirectory(); + const packageRoot = npmPackageRootDirectory(); + + ensureDirectoryExists(marketplaceDir); + + // Only copy directories/files that are actually needed at runtime. + // The npm package ships plugin/, package.json, node_modules/, openclaw/, dist/. + // When running from a dev checkout, the root contains many extra dirs + // (.claude, .agents, src, docs, etc.) that must NOT be copied. + const allowedTopLevelEntries = [ + 'plugin', + 'package.json', + 'package-lock.json', + 'node_modules', + 'openclaw', + 'dist', + 'LICENSE', + 'README.md', + 'CHANGELOG.md', + ]; + + for (const entry of allowedTopLevelEntries) { + const sourcePath = join(packageRoot, entry); + const destPath = join(marketplaceDir, entry); + if (!existsSync(sourcePath)) continue; + + // Clean replace: remove stale files from previous installs before copying + if (existsSync(destPath)) { + rmSync(destPath, { recursive: true, force: true }); + } + cpSync(sourcePath, destPath, { + recursive: true, + force: true, + }); + } +} + +function copyPluginToCache(version: string): void { + const sourcePluginDirectory = npmPackagePluginDirectory(); + const cachePath = pluginCacheDirectory(version); + + // Clean replace: remove stale cache before copying + rmSync(cachePath, { recursive: true, force: true }); + ensureDirectoryExists(cachePath); + cpSync(sourcePluginDirectory, cachePath, { recursive: true, force: true }); +} + +// --------------------------------------------------------------------------- +// npm install in marketplace dir +// --------------------------------------------------------------------------- + +function runNpmInstallInMarketplace(): void { + const marketplaceDir = marketplaceDirectory(); + const packageJsonPath = join(marketplaceDir, 'package.json'); + + if (!existsSync(packageJsonPath)) return; + + execSync('npm install --production', { + cwd: marketplaceDir, + stdio: 'pipe', + ...(IS_WINDOWS ? { shell: true as const } : {}), + }); +} + +// --------------------------------------------------------------------------- +// Trigger smart-install for Bun / uv +// --------------------------------------------------------------------------- + +function runSmartInstall(): boolean { + const smartInstallPath = join(marketplaceDirectory(), 'plugin', 'scripts', 'smart-install.js'); + + if (!existsSync(smartInstallPath)) { + log.warn('smart-install.js not found — skipping Bun/uv auto-install.'); + return false; + } + + try { + execSync(`node "${smartInstallPath}"`, { + stdio: 'inherit', + ...(IS_WINDOWS ? { shell: true as const } : {}), + }); + return true; + } catch { + log.warn('smart-install encountered an issue. You may need to install Bun/uv manually.'); + return false; + } +} + +// --------------------------------------------------------------------------- +// Public API +// --------------------------------------------------------------------------- + +export interface InstallOptions { + /** When provided, skip the interactive IDE multi-select and use this IDE. */ + ide?: string; +} + +export async function runInstallCommand(options: InstallOptions = {}): Promise { + const version = readPluginVersion(); + + if (isInteractive) { + p.intro(pc.bgCyan(pc.black(' claude-mem install '))); + } else { + console.log('claude-mem install'); + } + log.info(`Version: ${pc.cyan(version)}`); + log.info(`Platform: ${process.platform} (${process.arch})`); + + // Check for existing installation + const marketplaceDir = marketplaceDirectory(); + const alreadyInstalled = existsSync(join(marketplaceDir, 'plugin', '.claude-plugin', 'plugin.json')); + + if (alreadyInstalled) { + // Read existing version + try { + const existingPluginJson = JSON.parse( + readFileSync(join(marketplaceDir, 'plugin', '.claude-plugin', 'plugin.json'), 'utf-8'), + ); + log.warn(`Existing installation detected (v${existingPluginJson.version ?? 'unknown'}).`); + } catch { + log.warn('Existing installation detected.'); + } + + if (process.stdin.isTTY) { + const shouldContinue = await p.confirm({ + message: 'Overwrite existing installation?', + initialValue: true, + }); + + if (p.isCancel(shouldContinue) || !shouldContinue) { + p.cancel('Installation cancelled.'); + process.exit(0); + } + } + } + + // IDE selection + let selectedIDEs: string[]; + if (options.ide) { + selectedIDEs = [options.ide]; + const allIDEs = detectInstalledIDEs(); + const match = allIDEs.find((i) => i.id === options.ide); + if (match && !match.supported) { + log.error(`Support for ${match.label} coming soon.`); + process.exit(1); + } + if (!match) { + log.error(`Unknown IDE: ${options.ide}`); + log.info(`Available IDEs: ${allIDEs.map((i) => i.id).join(', ')}`); + process.exit(1); + } + } else if (process.stdin.isTTY) { + selectedIDEs = await promptForIDESelection(); + } else { + // Non-interactive: default to claude-code + selectedIDEs = ['claude-code']; + } + + // Non-Claude-Code IDEs need the manual file copy / registration flow. + // Claude Code handles its own installation via `claude plugin install`. + const needsManualInstall = selectedIDEs.some((id) => id !== 'claude-code'); + + if (needsManualInstall) { + await runTasks([ + { + title: 'Copying plugin files', + task: async (message) => { + message('Copying to marketplace directory...'); + copyPluginToMarketplace(); + return `Plugin files copied ${pc.green('OK')}`; + }, + }, + { + title: 'Caching plugin version', + task: async (message) => { + message(`Caching v${version}...`); + copyPluginToCache(version); + return `Plugin cached (v${version}) ${pc.green('OK')}`; + }, + }, + { + title: 'Registering marketplace', + task: async () => { + registerMarketplace(); + return `Marketplace registered ${pc.green('OK')}`; + }, + }, + { + title: 'Registering plugin', + task: async () => { + registerPlugin(version); + return `Plugin registered ${pc.green('OK')}`; + }, + }, + { + title: 'Enabling plugin in Claude settings', + task: async () => { + enablePluginInClaudeSettings(); + return `Plugin enabled ${pc.green('OK')}`; + }, + }, + { + title: 'Installing dependencies', + task: async (message) => { + message('Running npm install...'); + try { + runNpmInstallInMarketplace(); + return `Dependencies installed ${pc.green('OK')}`; + } catch { + return `Dependencies may need manual install ${pc.yellow('!')}`; + } + }, + }, + { + title: 'Setting up Bun and uv', + task: async (message) => { + message('Running smart-install...'); + return runSmartInstall() + ? `Runtime dependencies ready ${pc.green('OK')}` + : `Runtime setup may need attention ${pc.yellow('!')}`; + }, + }, + ]); + } + + // IDE-specific setup + const failedIDEs = await setupIDEs(selectedIDEs); + + // Summary + const installStatus = failedIDEs.length > 0 ? 'Installation Partial' : 'Installation Complete'; + const summaryLines = [ + `Version: ${pc.cyan(version)}`, + `Plugin dir: ${pc.cyan(marketplaceDir)}`, + `IDEs: ${pc.cyan(selectedIDEs.join(', '))}`, + ]; + if (failedIDEs.length > 0) { + summaryLines.push(`Failed: ${pc.red(failedIDEs.join(', '))}`); + } + + if (isInteractive) { + p.note(summaryLines.join('\n'), installStatus); + } else { + console.log(`\n ${installStatus}`); + summaryLines.forEach(l => console.log(` ${l}`)); + } + + const workerPort = process.env.CLAUDE_MEM_WORKER_PORT || '37777'; + const nextSteps = [ + 'Open Claude Code and start a conversation -- memory is automatic!', + `View your memories: ${pc.underline(`http://localhost:${workerPort}`)}`, + `Search past work: use ${pc.bold('/mem-search')} in Claude Code`, + `Start worker: ${pc.bold('npx claude-mem start')}`, + ]; + + if (isInteractive) { + p.note(nextSteps.join('\n'), 'Next Steps'); + if (failedIDEs.length > 0) { + p.outro(pc.yellow('claude-mem installed with some IDE setup failures.')); + } else { + p.outro(pc.green('claude-mem installed successfully!')); + } + } else { + console.log('\n Next Steps'); + nextSteps.forEach(l => console.log(` ${l}`)); + if (failedIDEs.length > 0) { + console.log('\nclaude-mem installed with some IDE setup failures.'); + process.exitCode = 1; + } else { + console.log('\nclaude-mem installed successfully!'); + } + } +} diff --git a/src/npx-cli/commands/runtime.ts b/src/npx-cli/commands/runtime.ts new file mode 100644 index 00000000..c6324a58 --- /dev/null +++ b/src/npx-cli/commands/runtime.ts @@ -0,0 +1,184 @@ +/** + * Runtime command routing for `npx claude-mem start|stop|restart|status|search|transcript`. + * + * These commands delegate to the installed plugin's worker-service.cjs via Bun, + * or hit the worker's HTTP API directly (for `search`). + * + * Pure Node.js — no Bun APIs used. + */ +import { spawn } from 'child_process'; +import { existsSync } from 'fs'; +import { join } from 'path'; +import pc from 'picocolors'; +import { resolveBunBinaryPath } from '../utils/bun-resolver.js'; +import { isPluginInstalled, marketplaceDirectory } from '../utils/paths.js'; + +// --------------------------------------------------------------------------- +// Installation guard +// --------------------------------------------------------------------------- + +function ensureInstalledOrExit(): void { + if (!isPluginInstalled()) { + console.error(pc.red('claude-mem is not installed.')); + console.error(`Run: ${pc.bold('npx claude-mem install')}`); + process.exit(1); + } +} + +// --------------------------------------------------------------------------- +// Bun guard +// --------------------------------------------------------------------------- + +function resolveBunOrExit(): string { + const bunPath = resolveBunBinaryPath(); + if (!bunPath) { + console.error(pc.red('Bun not found.')); + console.error('Install Bun: https://bun.sh'); + console.error('After installation, restart your terminal.'); + process.exit(1); + } + return bunPath; +} + +// --------------------------------------------------------------------------- +// Worker-service path +// --------------------------------------------------------------------------- + +function workerServiceScriptPath(): string { + return join(marketplaceDirectory(), 'plugin', 'scripts', 'worker-service.cjs'); +} + +// --------------------------------------------------------------------------- +// Spawn helper +// --------------------------------------------------------------------------- + +function spawnBunWorkerCommand(command: string, extraArgs: string[] = []): void { + ensureInstalledOrExit(); + const bunPath = resolveBunOrExit(); + const workerScript = workerServiceScriptPath(); + + if (!existsSync(workerScript)) { + console.error(pc.red(`Worker script not found at: ${workerScript}`)); + console.error('The installation may be corrupted. Try: npx claude-mem install'); + process.exit(1); + } + + const args = [workerScript, command, ...extraArgs]; + + const child = spawn(bunPath, args, { + stdio: 'inherit', + cwd: marketplaceDirectory(), + env: process.env, + }); + + child.on('error', (error) => { + console.error(pc.red(`Failed to start Bun: ${error.message}`)); + process.exit(1); + }); + + child.on('close', (exitCode) => { + process.exit(exitCode ?? 0); + }); +} + +// --------------------------------------------------------------------------- +// Public API +// --------------------------------------------------------------------------- + +export function runStartCommand(): void { + spawnBunWorkerCommand('start'); +} + +export function runStopCommand(): void { + spawnBunWorkerCommand('stop'); +} + +export function runRestartCommand(): void { + spawnBunWorkerCommand('restart'); +} + +export function runStatusCommand(): void { + spawnBunWorkerCommand('status'); +} + +/** + * Search the worker API at `GET /api/search?q=`. + */ +export async function runSearchCommand(queryParts: string[]): Promise { + ensureInstalledOrExit(); + + const query = queryParts.join(' ').trim(); + if (!query) { + console.error(pc.red('Usage: npx claude-mem search ')); + process.exit(1); + } + + const workerPort = process.env.CLAUDE_MEM_WORKER_PORT || '37777'; + const searchUrl = `http://127.0.0.1:${workerPort}/api/search?q=${encodeURIComponent(query)}`; + + try { + const response = await fetch(searchUrl); + + if (!response.ok) { + if (response.status === 404) { + console.error(pc.red('Search endpoint not found. Is the worker running?')); + console.error(`Try: ${pc.bold('npx claude-mem start')}`); + process.exit(1); + } + console.error(pc.red(`Search failed: HTTP ${response.status}`)); + process.exit(1); + } + + const data = await response.json(); + + if (typeof data === 'object' && data !== null) { + console.log(JSON.stringify(data, null, 2)); + } else { + console.log(data); + } + } catch (error: any) { + if (error?.cause?.code === 'ECONNREFUSED' || error?.message?.includes('ECONNREFUSED')) { + console.error(pc.red('Worker is not running.')); + console.error(`Start it with: ${pc.bold('npx claude-mem start')}`); + process.exit(1); + } + console.error(pc.red(`Search failed: ${error.message}`)); + process.exit(1); + } +} + +/** + * Start the transcript watcher via Bun. + */ +export function runTranscriptWatchCommand(): void { + ensureInstalledOrExit(); + const bunPath = resolveBunOrExit(); + + const transcriptWatcherPath = join( + marketplaceDirectory(), + 'plugin', + 'scripts', + 'transcript-watcher.cjs', + ); + + if (!existsSync(transcriptWatcherPath)) { + // Fall back to worker-service with transcript subcommand + spawnBunWorkerCommand('transcript', ['watch']); + return; + } + + const child = spawn(bunPath, [transcriptWatcherPath, 'watch'], { + stdio: 'inherit', + cwd: marketplaceDirectory(), + env: process.env, + }); + + child.on('error', (error) => { + console.error(pc.red(`Failed to start transcript watcher: ${error.message}`)); + process.exit(1); + }); + + child.on('close', (exitCode) => { + process.exit(exitCode ?? 0); + }); +} diff --git a/src/npx-cli/commands/uninstall.ts b/src/npx-cli/commands/uninstall.ts new file mode 100644 index 00000000..86b0fa98 --- /dev/null +++ b/src/npx-cli/commands/uninstall.ts @@ -0,0 +1,218 @@ +/** + * Uninstall command for `npx claude-mem uninstall`. + * + * Removes the plugin from the marketplace directory, cache, plugin + * registrations, and Claude settings. Optionally cleans up IDE-specific + * configurations. + * + * Pure Node.js — no Bun APIs used. + */ +import * as p from '@clack/prompts'; +import pc from 'picocolors'; +import { existsSync, rmSync } from 'fs'; +import { join } from 'path'; +import { + claudeSettingsPath, + installedPluginsPath, + isPluginInstalled, + knownMarketplacesPath, + marketplaceDirectory, + pluginsDirectory, + writeJsonFileAtomic, +} from '../utils/paths.js'; +import { readJsonSafe } from '../../utils/json-utils.js'; + +// --------------------------------------------------------------------------- +// Cleanup helpers +// --------------------------------------------------------------------------- + +function removeMarketplaceDirectory(): boolean { + const marketplaceDir = marketplaceDirectory(); + if (existsSync(marketplaceDir)) { + rmSync(marketplaceDir, { recursive: true, force: true }); + return true; + } + return false; +} + +function removeCacheDirectory(): boolean { + const cacheDirectory = join(pluginsDirectory(), 'cache', 'thedotmack', 'claude-mem'); + if (existsSync(cacheDirectory)) { + rmSync(cacheDirectory, { recursive: true, force: true }); + return true; + } + return false; +} + +function removeFromKnownMarketplaces(): void { + const knownMarketplaces = readJsonSafe>(knownMarketplacesPath(), {}); + if (knownMarketplaces['thedotmack']) { + delete knownMarketplaces['thedotmack']; + writeJsonFileAtomic(knownMarketplacesPath(), knownMarketplaces); + } +} + +function removeFromInstalledPlugins(): void { + const installedPlugins = readJsonSafe>(installedPluginsPath(), {}); + if (installedPlugins.plugins?.['claude-mem@thedotmack']) { + delete installedPlugins.plugins['claude-mem@thedotmack']; + writeJsonFileAtomic(installedPluginsPath(), installedPlugins); + } +} + +function removeFromClaudeSettings(): void { + const settings = readJsonSafe>(claudeSettingsPath(), {}); + if (settings.enabledPlugins?.['claude-mem@thedotmack'] !== undefined) { + delete settings.enabledPlugins['claude-mem@thedotmack']; + writeJsonFileAtomic(claudeSettingsPath(), settings); + } +} + +// --------------------------------------------------------------------------- +// Public API +// --------------------------------------------------------------------------- + +export async function runUninstallCommand(): Promise { + p.intro(pc.bgRed(pc.white(' claude-mem uninstall '))); + + if (!isPluginInstalled()) { + p.log.warn('claude-mem does not appear to be installed.'); + + // Still offer to clean up partial state + if (process.stdin.isTTY) { + const shouldCleanup = await p.confirm({ + message: 'Clean up any remaining registration data anyway?', + initialValue: false, + }); + + if (p.isCancel(shouldCleanup) || !shouldCleanup) { + p.outro('Nothing to do.'); + return; + } + } else { + p.outro('Nothing to do.'); + return; + } + } else if (process.stdin.isTTY) { + const shouldContinue = await p.confirm({ + message: 'Are you sure you want to uninstall claude-mem?', + initialValue: false, + }); + + if (p.isCancel(shouldContinue) || !shouldContinue) { + p.cancel('Uninstall cancelled.'); + return; + } + } + + // Stop the worker and wait for it to exit before deleting files + const workerPort = process.env.CLAUDE_MEM_WORKER_PORT || '37777'; + try { + await fetch(`http://127.0.0.1:${workerPort}/api/admin/shutdown`, { + method: 'POST', + signal: AbortSignal.timeout(5000), + }); + // Poll health endpoint until worker is gone (max 10s) + for (let attempt = 0; attempt < 20; attempt++) { + await new Promise((resolve) => setTimeout(resolve, 500)); + try { + await fetch(`http://127.0.0.1:${workerPort}/api/health`, { + signal: AbortSignal.timeout(1000), + }); + // Still alive — keep waiting + } catch { + break; // Connection refused = worker is gone + } + } + p.log.info('Worker service stopped.'); + } catch { + // Worker may not be running — that is fine + } + + await p.tasks([ + { + title: 'Removing marketplace directory', + task: async () => { + const removed = removeMarketplaceDirectory(); + return removed + ? `Marketplace directory removed ${pc.green('OK')}` + : `Marketplace directory not found ${pc.dim('skipped')}`; + }, + }, + { + title: 'Removing cache directory', + task: async () => { + const removed = removeCacheDirectory(); + return removed + ? `Cache directory removed ${pc.green('OK')}` + : `Cache directory not found ${pc.dim('skipped')}`; + }, + }, + { + title: 'Removing marketplace registration', + task: async () => { + removeFromKnownMarketplaces(); + return `Marketplace registration removed ${pc.green('OK')}`; + }, + }, + { + title: 'Removing plugin registration', + task: async () => { + removeFromInstalledPlugins(); + return `Plugin registration removed ${pc.green('OK')}`; + }, + }, + { + title: 'Removing from Claude settings', + task: async () => { + removeFromClaudeSettings(); + return `Claude settings updated ${pc.green('OK')}`; + }, + }, + ]); + + // Remove IDE-specific hooks and config (best-effort, each is independent) + const ideCleanups: Array<{ label: string; fn: () => Promise | number }> = [ + { label: 'Gemini CLI hooks', fn: async () => { + const { uninstallGeminiCliHooks } = await import('../../services/integrations/GeminiCliHooksInstaller.js'); + return uninstallGeminiCliHooks(); + }}, + { label: 'Windsurf hooks', fn: async () => { + const { uninstallWindsurfHooks } = await import('../../services/integrations/WindsurfHooksInstaller.js'); + return uninstallWindsurfHooks(); + }}, + { label: 'OpenCode plugin', fn: async () => { + const { uninstallOpenCodePlugin } = await import('../../services/integrations/OpenCodeInstaller.js'); + return uninstallOpenCodePlugin(); + }}, + { label: 'OpenClaw plugin', fn: async () => { + const { uninstallOpenClawPlugin } = await import('../../services/integrations/OpenClawInstaller.js'); + return uninstallOpenClawPlugin(); + }}, + { label: 'Codex CLI', fn: async () => { + const { uninstallCodexCli } = await import('../../services/integrations/CodexCliInstaller.js'); + return uninstallCodexCli(); + }}, + ]; + + for (const { label, fn } of ideCleanups) { + try { + const result = await fn(); + if (result === 0) { + p.log.info(`${label}: removed.`); + } + } catch { + // IDE not configured or uninstaller errored — skip silently + } + } + + p.note( + [ + `Your data directory at ${pc.cyan('~/.claude-mem')} was preserved.`, + 'To remove it manually: rm -rf ~/.claude-mem', + ].join('\n'), + 'Note', + ); + + p.outro(pc.green('claude-mem has been uninstalled.')); +} diff --git a/src/npx-cli/index.ts b/src/npx-cli/index.ts new file mode 100644 index 00000000..a3f47379 --- /dev/null +++ b/src/npx-cli/index.ts @@ -0,0 +1,174 @@ +/** + * NPX CLI entry point for claude-mem. + * + * Usage: + * npx claude-mem → interactive install + * npx claude-mem install → interactive install + * npx claude-mem install --ide → direct IDE setup + * npx claude-mem update → update to latest version + * npx claude-mem uninstall → remove plugin and IDE configs + * npx claude-mem version → print version + * npx claude-mem start → start worker service + * npx claude-mem stop → stop worker service + * npx claude-mem restart → restart worker service + * npx claude-mem status → show worker status + * npx claude-mem search → search observations + * npx claude-mem transcript watch → start transcript watcher + * + * This file is pure Node.js — Bun is NOT required for install commands. + * Runtime commands (`start`, `stop`, etc.) delegate to Bun via the installed plugin. + */ +import pc from 'picocolors'; +import { readPluginVersion } from './utils/paths.js'; + +// --------------------------------------------------------------------------- +// Argument parsing +// --------------------------------------------------------------------------- + +const args = process.argv.slice(2); +const command = args[0]?.toLowerCase() ?? ''; + +// --------------------------------------------------------------------------- +// Help text +// --------------------------------------------------------------------------- + +function printHelp(): void { + const version = readPluginVersion(); + + console.log(` +${pc.bold('claude-mem')} v${version} — persistent memory for AI coding assistants + +${pc.bold('Install Commands')} (no Bun required): + ${pc.cyan('npx claude-mem')} Interactive install + ${pc.cyan('npx claude-mem install')} Interactive install + ${pc.cyan('npx claude-mem install --ide ')} Install for specific IDE + ${pc.cyan('npx claude-mem update')} Update to latest version + ${pc.cyan('npx claude-mem uninstall')} Remove plugin and configs + ${pc.cyan('npx claude-mem version')} Print version + +${pc.bold('Runtime Commands')} (requires Bun, delegates to installed plugin): + ${pc.cyan('npx claude-mem start')} Start worker service + ${pc.cyan('npx claude-mem stop')} Stop worker service + ${pc.cyan('npx claude-mem restart')} Restart worker service + ${pc.cyan('npx claude-mem status')} Show worker status + ${pc.cyan('npx claude-mem search ')} Search observations + ${pc.cyan('npx claude-mem transcript watch')} Start transcript watcher + +${pc.bold('IDE Identifiers')}: + claude-code, cursor, gemini-cli, opencode, openclaw, + windsurf, codex-cli, copilot-cli, antigravity, goose, + crush, roo-code, warp +`); +} + +// --------------------------------------------------------------------------- +// Command routing +// --------------------------------------------------------------------------- + +async function main(): Promise { + switch (command) { + // -- No command: default to install ------------------------------------ + case '': { + const { runInstallCommand } = await import('./commands/install.js'); + await runInstallCommand(); + break; + } + + // -- Install ----------------------------------------------------------- + case 'install': { + const ideIndex = args.indexOf('--ide'); + const ideValue = ideIndex !== -1 ? args[ideIndex + 1] : undefined; + + const { runInstallCommand } = await import('./commands/install.js'); + await runInstallCommand({ ide: ideValue }); + break; + } + + // -- Update (alias for install — overwrite with latest) ---------------- + case 'update': + case 'upgrade': { + const { runInstallCommand } = await import('./commands/install.js'); + await runInstallCommand(); + break; + } + + // -- Uninstall --------------------------------------------------------- + case 'uninstall': + case 'remove': { + const { runUninstallCommand } = await import('./commands/uninstall.js'); + await runUninstallCommand(); + break; + } + + // -- Version ----------------------------------------------------------- + case 'version': + case '--version': + case '-v': { + console.log(readPluginVersion()); + break; + } + + // -- Help -------------------------------------------------------------- + case 'help': + case '--help': + case '-h': { + printHelp(); + break; + } + + // -- Runtime: start / stop / restart / status -------------------------- + case 'start': { + const { runStartCommand } = await import('./commands/runtime.js'); + runStartCommand(); + break; + } + case 'stop': { + const { runStopCommand } = await import('./commands/runtime.js'); + runStopCommand(); + break; + } + case 'restart': { + const { runRestartCommand } = await import('./commands/runtime.js'); + runRestartCommand(); + break; + } + case 'status': { + const { runStatusCommand } = await import('./commands/runtime.js'); + runStatusCommand(); + break; + } + + // -- Search ------------------------------------------------------------ + case 'search': { + const { runSearchCommand } = await import('./commands/runtime.js'); + await runSearchCommand(args.slice(1)); + break; + } + + // -- Transcript -------------------------------------------------------- + case 'transcript': { + const subCommand = args[1]?.toLowerCase(); + if (subCommand === 'watch') { + const { runTranscriptWatchCommand } = await import('./commands/runtime.js'); + runTranscriptWatchCommand(); + } else { + console.error(pc.red(`Unknown transcript subcommand: ${subCommand ?? '(none)'}`)); + console.error(`Usage: npx claude-mem transcript watch`); + process.exit(1); + } + break; + } + + // -- Unknown ----------------------------------------------------------- + default: { + console.error(pc.red(`Unknown command: ${command}`)); + console.error(`Run ${pc.bold('npx claude-mem --help')} for usage information.`); + process.exit(1); + } + } +} + +main().catch((error) => { + console.error(pc.red('Fatal error:'), error.message || error); + process.exit(1); +}); diff --git a/src/npx-cli/utils/bun-resolver.ts b/src/npx-cli/utils/bun-resolver.ts new file mode 100644 index 00000000..a019b7bd --- /dev/null +++ b/src/npx-cli/utils/bun-resolver.ts @@ -0,0 +1,85 @@ +/** + * Bun binary resolution utility. + * + * Extracted from `plugin/scripts/bun-runner.js` so that the NPX CLI + * can locate Bun without duplicating the search logic. + * + * Pure Node.js — no Bun APIs used. + */ +import { spawnSync } from 'child_process'; +import { existsSync } from 'fs'; +import { homedir } from 'os'; +import { join } from 'path'; +import { IS_WINDOWS } from './paths.js'; + +/** + * Well-known locations where Bun might be installed, beyond PATH. + * Order matches the search priority in bun-runner.js and smart-install.js. + */ +function bunCandidatePaths(): string[] { + if (IS_WINDOWS) { + return [ + join(homedir(), '.bun', 'bin', 'bun.exe'), + join(process.env.USERPROFILE || homedir(), '.bun', 'bin', 'bun.exe'), + ]; + } + + return [ + join(homedir(), '.bun', 'bin', 'bun'), + '/usr/local/bin/bun', + '/opt/homebrew/bin/bun', + '/home/linuxbrew/.linuxbrew/bin/bun', + ]; +} + +/** + * Attempt to locate the Bun executable. + * + * 1. Check PATH via `which` / `where`. + * 2. Probe well-known installation directories. + * + * Returns the absolute path to the binary, `'bun'` if it is in PATH, + * or `null` if Bun cannot be found. + */ +export function resolveBunBinaryPath(): string | null { + // Try PATH first + const whichCommand = IS_WINDOWS ? 'where' : 'which'; + const pathCheck = spawnSync(whichCommand, ['bun'], { + encoding: 'utf-8', + stdio: ['pipe', 'pipe', 'pipe'], + shell: IS_WINDOWS, + }); + + if (pathCheck.status === 0 && pathCheck.stdout.trim()) { + return 'bun'; // Available in PATH — use short name + } + + // Probe known install locations + for (const candidatePath of bunCandidatePaths()) { + if (existsSync(candidatePath)) { + return candidatePath; + } + } + + return null; +} + +/** + * Get the installed Bun version string (e.g. `"1.2.3"`), or `null` + * if Bun is not available. + */ +export function getBunVersionString(): string | null { + const bunPath = resolveBunBinaryPath(); + if (!bunPath) return null; + + try { + const result = spawnSync(bunPath, ['--version'], { + encoding: 'utf-8', + stdio: ['pipe', 'pipe', 'pipe'], + shell: IS_WINDOWS, + }); + return result.status === 0 ? result.stdout.trim() : null; + } catch { + return null; + } +} diff --git a/src/npx-cli/utils/paths.ts b/src/npx-cli/utils/paths.ts new file mode 100644 index 00000000..1de55255 --- /dev/null +++ b/src/npx-cli/utils/paths.ts @@ -0,0 +1,156 @@ +/** + * Shared path utilities for the NPX CLI. + * + * All platform-specific path logic is centralized here so that every command + * resolves directories in exactly the same way, regardless of OS. + */ +import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs'; +import { homedir } from 'os'; +import { dirname, join } from 'path'; +import { fileURLToPath } from 'url'; + +// --------------------------------------------------------------------------- +// Platform detection +// --------------------------------------------------------------------------- + +export const IS_WINDOWS = process.platform === 'win32'; + +// --------------------------------------------------------------------------- +// Core paths +// --------------------------------------------------------------------------- + +/** Root of the Claude Code config directory. */ +export function claudeConfigDirectory(): string { + return process.env.CLAUDE_CONFIG_DIR || join(homedir(), '.claude'); +} + +/** Marketplace install directory for thedotmack. */ +export function marketplaceDirectory(): string { + return join(claudeConfigDirectory(), 'plugins', 'marketplaces', 'thedotmack'); +} + +/** Top-level plugins directory. */ +export function pluginsDirectory(): string { + return join(claudeConfigDirectory(), 'plugins'); +} + +/** Path to `known_marketplaces.json`. */ +export function knownMarketplacesPath(): string { + return join(pluginsDirectory(), 'known_marketplaces.json'); +} + +/** Path to `installed_plugins.json`. */ +export function installedPluginsPath(): string { + return join(pluginsDirectory(), 'installed_plugins.json'); +} + +/** Path to `~/.claude/settings.json`. */ +export function claudeSettingsPath(): string { + return join(claudeConfigDirectory(), 'settings.json'); +} + +/** Plugin cache directory for a specific version. */ +export function pluginCacheDirectory(version: string): string { + return join(pluginsDirectory(), 'cache', 'thedotmack', 'claude-mem', version); +} + +/** claude-mem data directory (default `~/.claude-mem`). */ +export function claudeMemDataDirectory(): string { + return join(homedir(), '.claude-mem'); +} + +// --------------------------------------------------------------------------- +// NPM package root (where the NPX package lives on disk) +// --------------------------------------------------------------------------- + +/** + * Resolve the root of the installed npm package. + * + * After bundling, the CLI entry point lives at `/dist/npx-cli/index.js`. + * Walking up 2 levels from `import.meta.url` reaches the package root + * where `plugin/` and `package.json` can be found. + */ +export function npmPackageRootDirectory(): string { + const currentFilePath = fileURLToPath(import.meta.url); + // /dist/npx-cli/index.js -> up 2 levels -> + const root = join(dirname(currentFilePath), '..', '..'); + if (!existsSync(join(root, 'package.json'))) { + throw new Error( + `npmPackageRootDirectory: expected package.json at ${root}. ` + + `Bundle structure may have changed — update the path walk.`, + ); + } + return root; +} + +/** + * Path to the `plugin/` directory bundled inside the npm package. + */ +export function npmPackagePluginDirectory(): string { + return join(npmPackageRootDirectory(), 'plugin'); +} + +// --------------------------------------------------------------------------- +// Version helpers +// --------------------------------------------------------------------------- + +/** + * Read the current plugin version from the npm package's + * `plugin/.claude-plugin/plugin.json` (preferred) or from `package.json`. + */ +export function readPluginVersion(): string { + // Try plugin.json first (authoritative for plugin version) + const pluginJsonPath = join(npmPackagePluginDirectory(), '.claude-plugin', 'plugin.json'); + if (existsSync(pluginJsonPath)) { + try { + const pluginJson = JSON.parse(readFileSync(pluginJsonPath, 'utf-8')); + if (pluginJson.version) return pluginJson.version; + } catch { + // Fall through to package.json + } + } + + // Fall back to package.json at package root + const packageJsonPath = join(npmPackageRootDirectory(), 'package.json'); + if (existsSync(packageJsonPath)) { + try { + const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8')); + if (packageJson.version) return packageJson.version; + } catch { + // Unable to read + } + } + + return '0.0.0'; +} + +// --------------------------------------------------------------------------- +// Installation detection +// --------------------------------------------------------------------------- + +/** Returns true if the plugin appears to be installed in the marketplace dir. */ +export function isPluginInstalled(): boolean { + const marketplaceDir = marketplaceDirectory(); + return existsSync(join(marketplaceDir, 'plugin', '.claude-plugin', 'plugin.json')); +} + +// --------------------------------------------------------------------------- +// JSON file helpers +// --------------------------------------------------------------------------- + +export function ensureDirectoryExists(directoryPath: string): void { + if (!existsSync(directoryPath)) { + mkdirSync(directoryPath, { recursive: true }); + } +} + +/** + * @deprecated Use `readJsonSafe` from `../../utils/json-utils.js` instead. + * Kept as re-export for backward compatibility. + */ +export { readJsonSafe } from '../../utils/json-utils.js'; + +export function writeJsonFileAtomic(filepath: string, data: any): void { + ensureDirectoryExists(dirname(filepath)); + writeFileSync(filepath, JSON.stringify(data, null, 2) + '\n', 'utf-8'); +} diff --git a/src/sdk/parser.ts b/src/sdk/parser.ts index bfe09dd4..09c466f4 100644 --- a/src/sdk/parser.ts +++ b/src/sdk/parser.ts @@ -75,7 +75,7 @@ export function parseObservations(text: string, correlationId?: string): ParsedO const cleanedConcepts = concepts.filter(c => c !== finalType); if (cleanedConcepts.length !== concepts.length) { - logger.error('PARSER', 'Removed observation type from concepts array', { + logger.debug('PARSER', 'Removed observation type from concepts array', { correlationId, type: finalType, originalConcepts: concepts, diff --git a/src/sdk/prompts.ts b/src/sdk/prompts.ts index 774b86c7..023d528e 100644 --- a/src/sdk/prompts.ts +++ b/src/sdk/prompts.ts @@ -116,7 +116,11 @@ export function buildObservationPrompt(obs: Observation): string { ${new Date(obs.created_at_epoch).toISOString()}${obs.cwd ? `\n ${obs.cwd}` : ''} ${JSON.stringify(toolInput, null, 2)} ${JSON.stringify(toolOutput, null, 2)} -`; + + +Return either one or more ... blocks, or an empty response if this tool use should be skipped. +Concrete debugging findings from logs, queue state, database rows, session routing, or code-path inspection count as durable discoveries and should be recorded. +Never reply with prose such as "Skipping", "No substantive tool executions", or any explanation outside XML. Non-XML text is discarded.`; } /** @@ -235,4 +239,4 @@ ${mode.prompts.format_examples} ${mode.prompts.footer} ${mode.prompts.header_memory_continued}`; -} \ No newline at end of file +} diff --git a/src/services/infrastructure/HealthMonitor.ts b/src/services/infrastructure/HealthMonitor.ts index eae063d1..d981d67c 100644 --- a/src/services/infrastructure/HealthMonitor.ts +++ b/src/services/infrastructure/HealthMonitor.ts @@ -10,6 +10,7 @@ */ import path from 'path'; +import net from 'net'; import { readFileSync } from 'fs'; import { logger } from '../../utils/logger.js'; import { MARKETPLACE_ROOT } from '../../shared/paths.js'; @@ -35,17 +36,43 @@ async function httpRequestToWorker( } /** - * Check if a port is in use by querying the health endpoint + * Check if a port is in use by attempting an atomic socket bind. + * More reliable than HTTP health check for daemon spawn guards — + * prevents TOCTOU race where two daemons both see "port free" via + * HTTP and then both try to listen() (upstream bug workaround). + * + * Falls back to HTTP health check on Windows where socket bind + * behavior differs. */ export async function isPortInUse(port: number): Promise { - try { - // Note: Removed AbortSignal.timeout to avoid Windows Bun cleanup issue (libuv assertion) - const response = await fetch(`http://127.0.0.1:${port}/api/health`); - return response.ok; - } catch (error) { - // [ANTI-PATTERN IGNORED]: Health check polls every 500ms, logging would flood - return false; + if (process.platform === 'win32') { + // APPROVED OVERRIDE: Windows keeps HTTP health check because socket bind + // semantics differ (SO_REUSEADDR defaults, firewall prompts). The TOCTOU + // race remains on Windows but is an accepted limitation — the atomic + // socket approach would cause false positives or UAC popups. + try { + const response = await fetch(`http://127.0.0.1:${port}/api/health`); + return response.ok; + } catch { + return false; + } } + + // Unix: atomic socket bind check — no TOCTOU race + return new Promise((resolve) => { + const server = net.createServer(); + server.once('error', (err: NodeJS.ErrnoException) => { + if (err.code === 'EADDRINUSE') { + resolve(true); + } else { + resolve(false); + } + }); + server.once('listening', () => { + server.close(() => resolve(false)); + }); + server.listen(port, '127.0.0.1'); + }); } /** diff --git a/src/services/integrations/CodexCliInstaller.ts b/src/services/integrations/CodexCliInstaller.ts new file mode 100644 index 00000000..9645b2bc --- /dev/null +++ b/src/services/integrations/CodexCliInstaller.ts @@ -0,0 +1,373 @@ +/** + * CodexCliInstaller - Codex CLI integration for claude-mem + * + * Uses transcript-only watching (no notify hook). The watcher infrastructure + * already exists in src/services/transcripts/. This installer: + * + * 1. Writes/merges transcript-watch config to ~/.claude-mem/transcript-watch.json + * 2. Sets up watch for ~/.codex/sessions/**\/*.jsonl using existing watcher + * 3. Injects context via ~/.codex/AGENTS.md (Codex reads this natively) + * + * Anti-patterns: + * - Does NOT add notify hooks -- transcript watching is sufficient + * - Does NOT modify existing transcript watcher infrastructure + * - Does NOT overwrite existing transcript-watch.json -- merges only + */ + +import path from 'path'; +import { homedir } from 'os'; +import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs'; +import { logger } from '../../utils/logger.js'; +import { replaceTaggedContent } from '../../utils/claude-md-utils.js'; +import { + DEFAULT_CONFIG_PATH, + DEFAULT_STATE_PATH, + SAMPLE_CONFIG, +} from '../transcripts/config.js'; +import type { TranscriptWatchConfig, WatchTarget } from '../transcripts/types.js'; + +// --------------------------------------------------------------------------- +// Constants +// --------------------------------------------------------------------------- + +const CODEX_DIR = path.join(homedir(), '.codex'); +const CODEX_AGENTS_MD_PATH = path.join(CODEX_DIR, 'AGENTS.md'); +const CLAUDE_MEM_DIR = path.join(homedir(), '.claude-mem'); + +/** + * The watch name used to identify the Codex CLI entry in transcript-watch.json. + * Must match the name in SAMPLE_CONFIG for merging to work correctly. + */ +const CODEX_WATCH_NAME = 'codex'; + +// --------------------------------------------------------------------------- +// Transcript Watch Config Merging +// --------------------------------------------------------------------------- + +/** + * Load existing transcript-watch.json, or return an empty config scaffold. + * Never throws -- returns a valid empty config on any parse error. + */ +function loadExistingTranscriptWatchConfig(): TranscriptWatchConfig { + const configPath = DEFAULT_CONFIG_PATH; + + if (!existsSync(configPath)) { + return { version: 1, schemas: {}, watches: [], stateFile: DEFAULT_STATE_PATH }; + } + + try { + const raw = readFileSync(configPath, 'utf-8'); + const parsed = JSON.parse(raw) as TranscriptWatchConfig; + + // Ensure required fields exist + if (!parsed.version) parsed.version = 1; + if (!parsed.watches) parsed.watches = []; + if (!parsed.schemas) parsed.schemas = {}; + if (!parsed.stateFile) parsed.stateFile = DEFAULT_STATE_PATH; + + return parsed; + } catch (parseError) { + logger.error('CODEX', 'Corrupt transcript-watch.json, creating backup', { path: configPath }, parseError as Error); + + // Back up corrupt file + const backupPath = `${configPath}.backup.${Date.now()}`; + writeFileSync(backupPath, readFileSync(configPath)); + console.warn(` Backed up corrupt transcript-watch.json to ${backupPath}`); + + return { version: 1, schemas: {}, watches: [], stateFile: DEFAULT_STATE_PATH }; + } +} + +/** + * Merge Codex watch configuration into existing transcript-watch.json. + * + * - If a watch with name 'codex' already exists, it is replaced in-place. + * - If the 'codex' schema already exists, it is replaced in-place. + * - All other watches and schemas are preserved untouched. + */ +function mergeCodexWatchConfig(existingConfig: TranscriptWatchConfig): TranscriptWatchConfig { + const merged = { ...existingConfig }; + + // Merge schemas: add/replace the codex schema + merged.schemas = { ...merged.schemas }; + const codexSchema = SAMPLE_CONFIG.schemas?.[CODEX_WATCH_NAME]; + if (codexSchema) { + merged.schemas[CODEX_WATCH_NAME] = codexSchema; + } + + // Merge watches: add/replace the codex watch entry + const codexWatchFromSample = SAMPLE_CONFIG.watches.find( + (w: WatchTarget) => w.name === CODEX_WATCH_NAME, + ); + + if (codexWatchFromSample) { + const existingWatchIndex = merged.watches.findIndex( + (w: WatchTarget) => w.name === CODEX_WATCH_NAME, + ); + + if (existingWatchIndex !== -1) { + // Replace existing codex watch in-place + merged.watches[existingWatchIndex] = codexWatchFromSample; + } else { + // Append new codex watch + merged.watches.push(codexWatchFromSample); + } + } + + return merged; +} + +/** + * Write the merged transcript-watch.json config atomically. + */ +function writeTranscriptWatchConfig(config: TranscriptWatchConfig): void { + mkdirSync(CLAUDE_MEM_DIR, { recursive: true }); + writeFileSync(DEFAULT_CONFIG_PATH, JSON.stringify(config, null, 2) + '\n'); +} + +// --------------------------------------------------------------------------- +// Context Injection (AGENTS.md) +// --------------------------------------------------------------------------- + +/** + * Inject claude-mem context section into ~/.codex/AGENTS.md. + * Uses the same tag pattern as CLAUDE.md and GEMINI.md. + * Preserves any existing user content outside the tags. + */ +function injectCodexAgentsMdContext(): void { + try { + mkdirSync(CODEX_DIR, { recursive: true }); + + let existingContent = ''; + if (existsSync(CODEX_AGENTS_MD_PATH)) { + existingContent = readFileSync(CODEX_AGENTS_MD_PATH, 'utf-8'); + } + + // Initial placeholder content -- will be populated after first session + const contextContent = [ + '# Recent Activity', + '', + '', + '', + '*No context yet. Complete your first session and context will appear here.*', + ].join('\n'); + + const finalContent = replaceTaggedContent(existingContent, contextContent); + writeFileSync(CODEX_AGENTS_MD_PATH, finalContent); + console.log(` Injected context placeholder into ${CODEX_AGENTS_MD_PATH}`); + } catch (error) { + // Non-fatal -- transcript watching still works without context injection + logger.warn('CODEX', 'Failed to inject AGENTS.md context', { error: (error as Error).message }); + console.warn(` Warning: Could not inject context into AGENTS.md: ${(error as Error).message}`); + } +} + +/** + * Remove claude-mem context section from AGENTS.md. + * Preserves user content outside the tags. + */ +function removeCodexAgentsMdContext(): void { + try { + if (!existsSync(CODEX_AGENTS_MD_PATH)) return; + + const content = readFileSync(CODEX_AGENTS_MD_PATH, 'utf-8'); + const startTag = ''; + const endTag = ''; + + const startIdx = content.indexOf(startTag); + const endIdx = content.indexOf(endTag); + + if (startIdx === -1 || endIdx === -1) return; + + // Remove the tagged section and any surrounding blank lines + const before = content.substring(0, startIdx).replace(/\n+$/, ''); + const after = content.substring(endIdx + endTag.length).replace(/^\n+/, ''); + const finalContent = (before + (after ? '\n\n' + after : '')).trim(); + + if (finalContent) { + writeFileSync(CODEX_AGENTS_MD_PATH, finalContent + '\n'); + } else { + // File would be empty -- leave it empty rather than deleting + // (user may have other tooling that expects it to exist) + writeFileSync(CODEX_AGENTS_MD_PATH, ''); + } + + console.log(` Removed context section from ${CODEX_AGENTS_MD_PATH}`); + } catch (error) { + logger.warn('CODEX', 'Failed to clean AGENTS.md context', { error: (error as Error).message }); + } +} + +// --------------------------------------------------------------------------- +// Public API: Install +// --------------------------------------------------------------------------- + +/** + * Install Codex CLI integration for claude-mem. + * + * 1. Merges Codex transcript-watch config into ~/.claude-mem/transcript-watch.json + * 2. Injects context placeholder into ~/.codex/AGENTS.md + * + * @returns 0 on success, 1 on failure + */ +export async function installCodexCli(): Promise { + console.log('\nInstalling Claude-Mem for Codex CLI (transcript watching)...\n'); + + try { + // Step 1: Merge transcript-watch config + const existingConfig = loadExistingTranscriptWatchConfig(); + const mergedConfig = mergeCodexWatchConfig(existingConfig); + writeTranscriptWatchConfig(mergedConfig); + console.log(` Updated ${DEFAULT_CONFIG_PATH}`); + console.log(` Watch path: ~/.codex/sessions/**/*.jsonl`); + console.log(` Schema: codex (v${SAMPLE_CONFIG.schemas?.codex?.version ?? '?'})`); + + // Step 2: Inject context into AGENTS.md + injectCodexAgentsMdContext(); + + console.log(` +Installation complete! + +Transcript watch config: ${DEFAULT_CONFIG_PATH} +Context file: ${CODEX_AGENTS_MD_PATH} + +How it works: + - claude-mem watches Codex session JSONL files for new activity + - No hooks needed -- transcript watching is fully automatic + - Context from past sessions is injected via ${CODEX_AGENTS_MD_PATH} + +Next steps: + 1. Start claude-mem worker: npx claude-mem start + 2. Use Codex CLI as usual -- memory capture is automatic! +`); + + return 0; + } catch (error) { + console.error(`\nInstallation failed: ${(error as Error).message}`); + return 1; + } +} + +// --------------------------------------------------------------------------- +// Public API: Uninstall +// --------------------------------------------------------------------------- + +/** + * Remove Codex CLI integration from claude-mem. + * + * 1. Removes the codex watch and schema from transcript-watch.json (preserves others) + * 2. Removes context section from AGENTS.md (preserves user content) + * + * @returns 0 on success, 1 on failure + */ +export function uninstallCodexCli(): number { + console.log('\nUninstalling Claude-Mem Codex CLI integration...\n'); + + try { + // Step 1: Remove codex watch from transcript-watch.json + if (existsSync(DEFAULT_CONFIG_PATH)) { + const config = loadExistingTranscriptWatchConfig(); + + // Remove codex watch + config.watches = config.watches.filter( + (w: WatchTarget) => w.name !== CODEX_WATCH_NAME, + ); + + // Remove codex schema + if (config.schemas) { + delete config.schemas[CODEX_WATCH_NAME]; + } + + writeTranscriptWatchConfig(config); + console.log(` Removed codex watch from ${DEFAULT_CONFIG_PATH}`); + } else { + console.log(' No transcript-watch.json found -- nothing to remove.'); + } + + // Step 2: Remove context section from AGENTS.md + removeCodexAgentsMdContext(); + + console.log('\nUninstallation complete!'); + console.log('Restart claude-mem worker to apply changes.\n'); + + return 0; + } catch (error) { + console.error(`\nUninstallation failed: ${(error as Error).message}`); + return 1; + } +} + +// --------------------------------------------------------------------------- +// Public API: Status Check +// --------------------------------------------------------------------------- + +/** + * Check Codex CLI integration status. + * + * @returns 0 always (informational) + */ +export function checkCodexCliStatus(): number { + console.log('\nClaude-Mem Codex CLI Integration Status\n'); + + // Check transcript-watch.json + if (!existsSync(DEFAULT_CONFIG_PATH)) { + console.log('Status: Not installed'); + console.log(` No transcript watch config at ${DEFAULT_CONFIG_PATH}`); + console.log('\nRun: npx claude-mem install --ide codex-cli\n'); + return 0; + } + + try { + const config = loadExistingTranscriptWatchConfig(); + const codexWatch = config.watches.find( + (w: WatchTarget) => w.name === CODEX_WATCH_NAME, + ); + const codexSchema = config.schemas?.[CODEX_WATCH_NAME]; + + if (!codexWatch) { + console.log('Status: Not installed'); + console.log(' transcript-watch.json exists but no codex watch configured.'); + console.log('\nRun: npx claude-mem install --ide codex-cli\n'); + return 0; + } + + console.log('Status: Installed'); + console.log(` Config: ${DEFAULT_CONFIG_PATH}`); + console.log(` Watch path: ${codexWatch.path}`); + console.log(` Schema: ${codexSchema ? `codex (v${codexSchema.version ?? '?'})` : 'missing'}`); + console.log(` Start at end: ${codexWatch.startAtEnd ?? false}`); + + // Check context config + if (codexWatch.context) { + console.log(` Context mode: ${codexWatch.context.mode}`); + console.log(` Context path: ${codexWatch.context.path ?? 'default'}`); + console.log(` Context updates on: ${codexWatch.context.updateOn?.join(', ') ?? 'none'}`); + } + + // Check AGENTS.md + if (existsSync(CODEX_AGENTS_MD_PATH)) { + const mdContent = readFileSync(CODEX_AGENTS_MD_PATH, 'utf-8'); + if (mdContent.includes('')) { + console.log(` Context: Active (${CODEX_AGENTS_MD_PATH})`); + } else { + console.log(` Context: AGENTS.md exists but no context tags`); + } + } else { + console.log(` Context: No AGENTS.md file`); + } + + // Check if ~/.codex/sessions exists (indicates Codex has been used) + const sessionsDir = path.join(CODEX_DIR, 'sessions'); + if (existsSync(sessionsDir)) { + console.log(` Sessions directory: exists`); + } else { + console.log(` Sessions directory: not yet created (use Codex CLI to generate sessions)`); + } + } catch { + console.log('Status: Unknown'); + console.log(' Could not parse transcript-watch.json.'); + } + + console.log(''); + return 0; +} diff --git a/src/services/integrations/CursorHooksInstaller.ts b/src/services/integrations/CursorHooksInstaller.ts index df2040bb..60b32fbe 100644 --- a/src/services/integrations/CursorHooksInstaller.ts +++ b/src/services/integrations/CursorHooksInstaller.ts @@ -133,9 +133,7 @@ export function findMcpServerPath(): string | null { const possiblePaths = [ // Marketplace install location path.join(MARKETPLACE_ROOT, 'plugin', 'scripts', 'mcp-server.cjs'), - // Development/source location (relative to built worker-service.cjs in plugin/scripts/) - path.join(path.dirname(__filename), 'mcp-server.cjs'), - // Alternative dev location + // Development/source location path.join(process.cwd(), 'plugin', 'scripts', 'mcp-server.cjs'), ]; @@ -155,9 +153,7 @@ export function findWorkerServicePath(): string | null { const possiblePaths = [ // Marketplace install location path.join(MARKETPLACE_ROOT, 'plugin', 'scripts', 'worker-service.cjs'), - // Development/source location (relative to built worker-service.cjs in plugin/scripts/) - path.join(path.dirname(__filename), 'worker-service.cjs'), - // Alternative dev location + // Development/source location path.join(process.cwd(), 'plugin', 'scripts', 'worker-service.cjs'), ]; diff --git a/src/services/integrations/GeminiCliHooksInstaller.ts b/src/services/integrations/GeminiCliHooksInstaller.ts new file mode 100644 index 00000000..4ec749ab --- /dev/null +++ b/src/services/integrations/GeminiCliHooksInstaller.ts @@ -0,0 +1,513 @@ +/** + * GeminiCliHooksInstaller - Gemini CLI integration for claude-mem + * + * Installs hooks into ~/.gemini/settings.json using the unified CLI: + * bun worker-service.cjs hook gemini-cli + * + * This routes through the hook-command.ts framework: + * readJsonFromStdin() → gemini-cli adapter → event handler → POST to worker + * + * Gemini CLI supports 11 lifecycle hooks; we register 8 that map to + * useful memory events. See src/cli/adapters/gemini-cli.ts for the + * adapter that normalizes Gemini's stdin JSON to NormalizedHookInput. + * + * Hook config format (verified against Gemini CLI source): + * { + * "hooks": { + * "AfterTool": [{ + * "matcher": "*", + * "hooks": [{ "name": "claude-mem", "type": "command", "command": "...", "timeout": 5000 }] + * }] + * } + * } + */ + +import path from 'path'; +import { homedir } from 'os'; +import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs'; +import { logger } from '../../utils/logger.js'; +import { findWorkerServicePath, findBunPath } from './CursorHooksInstaller.js'; + +// ============================================================================ +// Types +// ============================================================================ + +/** A single hook entry in a Gemini CLI hook group */ +interface GeminiHookEntry { + name: string; + type: 'command'; + command: string; + timeout: number; +} + +/** A hook group — matcher selects which tools/events this applies to */ +interface GeminiHookGroup { + matcher: string; + hooks: GeminiHookEntry[]; +} + +/** The hooks section in ~/.gemini/settings.json */ +interface GeminiHooksConfig { + [eventName: string]: GeminiHookGroup[]; +} + +/** Full ~/.gemini/settings.json structure (partial — we only care about hooks) */ +interface GeminiSettingsJson { + hooks?: GeminiHooksConfig; + [key: string]: unknown; +} + +// ============================================================================ +// Constants +// ============================================================================ + +const GEMINI_CONFIG_DIR = path.join(homedir(), '.gemini'); +const GEMINI_SETTINGS_PATH = path.join(GEMINI_CONFIG_DIR, 'settings.json'); +const GEMINI_MD_PATH = path.join(GEMINI_CONFIG_DIR, 'GEMINI.md'); + +const HOOK_NAME = 'claude-mem'; +const HOOK_TIMEOUT_MS = 10000; + +/** + * Mapping from Gemini CLI hook events to internal claude-mem event types. + * + * These events are processed by hookCommand() in src/cli/hook-command.ts, + * which reads stdin via readJsonFromStdin(), normalizes through the + * gemini-cli adapter, and dispatches to the matching event handler. + * + * Events NOT mapped (too chatty for memory capture): + * BeforeModel, AfterModel, BeforeToolSelection + */ +const GEMINI_EVENT_TO_INTERNAL_EVENT: Record = { + 'SessionStart': 'context', + 'BeforeAgent': 'user-message', + 'AfterAgent': 'observation', + 'BeforeTool': 'observation', + 'AfterTool': 'observation', + 'PreCompress': 'summarize', + 'Notification': 'observation', + 'SessionEnd': 'session-complete', +}; + +// ============================================================================ +// Hook Command Builder +// ============================================================================ + +/** + * Build the hook command string for a given Gemini CLI event. + * + * The command invokes worker-service.cjs with the `hook` subcommand, + * which delegates to hookCommand('gemini-cli', event) — the same + * framework used by Claude Code and Cursor hooks. + * + * Pipeline: bun worker-service.cjs hook gemini-cli + * → worker-service.ts parses args, ensures worker daemon is running + * → hookCommand('gemini-cli', '') + * → readJsonFromStdin() reads Gemini's JSON payload + * → geminiCliAdapter.normalizeInput() → NormalizedHookInput + * → eventHandler.execute(input) + * → geminiCliAdapter.formatOutput(result) + * → JSON.stringify to stdout + */ +function buildHookCommand( + bunPath: string, + workerServicePath: string, + geminiEventName: string, +): string { + const internalEvent = GEMINI_EVENT_TO_INTERNAL_EVENT[geminiEventName]; + if (!internalEvent) { + throw new Error(`Unknown Gemini CLI event: ${geminiEventName}`); + } + + // Double-escape backslashes intentionally: this command string is embedded inside + // a JSON value, so `\\` in the source becomes `\` when the JSON is parsed by the + // IDE. Without double-escaping, Windows paths like C:\Users would lose their + // backslashes and break when the IDE deserializes the hook configuration. + const escapedBunPath = bunPath.replace(/\\/g, '\\\\'); + const escapedWorkerPath = workerServicePath.replace(/\\/g, '\\\\'); + + return `"${escapedBunPath}" "${escapedWorkerPath}" hook gemini-cli ${internalEvent}`; +} + +/** + * Create a hook group entry for a Gemini CLI event. + * Uses matcher "*" to match all tools/contexts for that event. + */ +function createHookGroup(hookCommand: string): GeminiHookGroup { + return { + matcher: '*', + hooks: [{ + name: HOOK_NAME, + type: 'command', + command: hookCommand, + timeout: HOOK_TIMEOUT_MS, + }], + }; +} + +// ============================================================================ +// Settings JSON Management +// ============================================================================ + +/** + * Read ~/.gemini/settings.json, returning empty object if missing. + * Throws on corrupt JSON to prevent silent data loss. + */ +function readGeminiSettings(): GeminiSettingsJson { + if (!existsSync(GEMINI_SETTINGS_PATH)) { + return {}; + } + + const content = readFileSync(GEMINI_SETTINGS_PATH, 'utf-8'); + try { + return JSON.parse(content) as GeminiSettingsJson; + } catch (error) { + throw new Error(`Corrupt JSON in ${GEMINI_SETTINGS_PATH}, refusing to overwrite user settings`); + } +} + +/** + * Write settings back to ~/.gemini/settings.json. + * Creates the directory if it doesn't exist. + */ +function writeGeminiSettings(settings: GeminiSettingsJson): void { + mkdirSync(GEMINI_CONFIG_DIR, { recursive: true }); + writeFileSync(GEMINI_SETTINGS_PATH, JSON.stringify(settings, null, 2) + '\n'); +} + +/** + * Deep-merge claude-mem hooks into existing settings. + * + * For each event: + * - If the event already has a hook group with a claude-mem hook, update it + * - Otherwise, append a new hook group + * + * Preserves all non-claude-mem hooks and all non-hook settings. + */ +function mergeHooksIntoSettings( + existingSettings: GeminiSettingsJson, + newHooks: GeminiHooksConfig, +): GeminiSettingsJson { + const settings = { ...existingSettings }; + if (!settings.hooks) { + settings.hooks = {}; + } + + for (const [eventName, newGroups] of Object.entries(newHooks)) { + const existingGroups: GeminiHookGroup[] = settings.hooks[eventName] ?? []; + + // For each new hook group, check if there's already a group + // containing a claude-mem hook — update it in place + for (const newGroup of newGroups) { + const existingGroupIndex = existingGroups.findIndex((group: GeminiHookGroup) => + group.hooks.some((hook: GeminiHookEntry) => hook.name === HOOK_NAME) + ); + + if (existingGroupIndex >= 0) { + // Update existing group: replace the claude-mem hook entry + const existingGroup: GeminiHookGroup = existingGroups[existingGroupIndex]; + const hookIndex = existingGroup.hooks.findIndex((hook: GeminiHookEntry) => hook.name === HOOK_NAME); + if (hookIndex >= 0) { + existingGroup.hooks[hookIndex] = newGroup.hooks[0]; + } else { + existingGroup.hooks.push(newGroup.hooks[0]); + } + } else { + // No existing claude-mem group — append + existingGroups.push(newGroup); + } + } + + settings.hooks[eventName] = existingGroups; + } + + return settings; +} + +// ============================================================================ +// GEMINI.md Context Injection +// ============================================================================ + +/** + * Append or update the claude-mem context section in ~/.gemini/GEMINI.md. + * Uses the same tag pattern as CLAUDE.md. + */ +function setupGeminiMdContextSection(): void { + const contextTag = ''; + const contextEndTag = ''; + const placeholder = `${contextTag} +# Memory Context from Past Sessions + +*No context yet. Complete your first session and context will appear here.* +${contextEndTag}`; + + let content = ''; + if (existsSync(GEMINI_MD_PATH)) { + content = readFileSync(GEMINI_MD_PATH, 'utf-8'); + } + + if (content.includes(contextTag)) { + // Already has claude-mem section — leave it alone (may have real context) + return; + } + + // Append the section + const separator = content.length > 0 && !content.endsWith('\n') ? '\n\n' : content.length > 0 ? '\n' : ''; + const newContent = content + separator + placeholder + '\n'; + + mkdirSync(GEMINI_CONFIG_DIR, { recursive: true }); + writeFileSync(GEMINI_MD_PATH, newContent); +} + +// ============================================================================ +// Public API +// ============================================================================ + +/** + * Install claude-mem hooks into ~/.gemini/settings.json. + * + * Merges hooks non-destructively: existing settings and non-claude-mem + * hooks are preserved. Existing claude-mem hooks are updated in place. + * + * @returns 0 on success, 1 on failure + */ +export async function installGeminiCliHooks(): Promise { + console.log('\nInstalling Claude-Mem Gemini CLI hooks...\n'); + + // Find required paths + const workerServicePath = findWorkerServicePath(); + if (!workerServicePath) { + console.error('Could not find worker-service.cjs'); + console.error(' Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs'); + return 1; + } + + const bunPath = findBunPath(); + console.log(` Using Bun runtime: ${bunPath}`); + console.log(` Worker service: ${workerServicePath}`); + + try { + // Build hook commands for all mapped events + const hooksConfig: GeminiHooksConfig = {}; + for (const geminiEvent of Object.keys(GEMINI_EVENT_TO_INTERNAL_EVENT)) { + const command = buildHookCommand(bunPath, workerServicePath, geminiEvent); + hooksConfig[geminiEvent] = [createHookGroup(command)]; + } + + // Read existing settings and merge + const existingSettings = readGeminiSettings(); + const mergedSettings = mergeHooksIntoSettings(existingSettings, hooksConfig); + + // Write back + writeGeminiSettings(mergedSettings); + console.log(` Merged hooks into ${GEMINI_SETTINGS_PATH}`); + + // Setup GEMINI.md context injection + setupGeminiMdContextSection(); + console.log(` Setup context injection in ${GEMINI_MD_PATH}`); + + // List installed events + const eventNames = Object.keys(GEMINI_EVENT_TO_INTERNAL_EVENT); + console.log(` Registered ${eventNames.length} hook events:`); + for (const event of eventNames) { + const internalEvent = GEMINI_EVENT_TO_INTERNAL_EVENT[event]; + console.log(` ${event} → ${internalEvent}`); + } + + console.log(` +Installation complete! + +Hooks installed to: ${GEMINI_SETTINGS_PATH} +Using unified CLI: bun worker-service.cjs hook gemini-cli + +Next steps: + 1. Start claude-mem worker: claude-mem start + 2. Restart Gemini CLI to load the hooks + 3. Memory will be captured automatically during sessions + +Context Injection: + Context from past sessions is injected via ~/.gemini/GEMINI.md + and automatically included in Gemini CLI conversations. +`); + + return 0; + } catch (error) { + console.error(`\nInstallation failed: ${(error as Error).message}`); + return 1; + } +} + +/** + * Uninstall claude-mem hooks from ~/.gemini/settings.json. + * + * Removes only claude-mem hooks — other hooks and settings are preserved. + * + * @returns 0 on success, 1 on failure + */ +export function uninstallGeminiCliHooks(): number { + console.log('\nUninstalling Claude-Mem Gemini CLI hooks...\n'); + + try { + if (!existsSync(GEMINI_SETTINGS_PATH)) { + console.log(' No Gemini CLI settings found — nothing to uninstall.'); + return 0; + } + + const settings = readGeminiSettings(); + if (!settings.hooks) { + console.log(' No hooks found in Gemini CLI settings — nothing to uninstall.'); + return 0; + } + + let removedCount = 0; + + // Remove claude-mem hooks from within each group, preserving other hooks + for (const [eventName, groups] of Object.entries(settings.hooks)) { + const filteredGroups = groups + .map(group => { + const remainingHooks = group.hooks.filter(hook => hook.name !== HOOK_NAME); + removedCount += group.hooks.length - remainingHooks.length; + return { ...group, hooks: remainingHooks }; + }) + .filter(group => group.hooks.length > 0); + + if (filteredGroups.length > 0) { + settings.hooks[eventName] = filteredGroups; + } else { + delete settings.hooks[eventName]; + } + } + + // Clean up empty hooks object + if (Object.keys(settings.hooks).length === 0) { + delete settings.hooks; + } + + writeGeminiSettings(settings); + console.log(` Removed ${removedCount} claude-mem hook(s) from ${GEMINI_SETTINGS_PATH}`); + + // Remove claude-mem context section from GEMINI.md + if (existsSync(GEMINI_MD_PATH)) { + let mdContent = readFileSync(GEMINI_MD_PATH, 'utf-8'); + const contextRegex = /\n?[\s\S]*?<\/claude-mem-context>\n?/; + if (contextRegex.test(mdContent)) { + mdContent = mdContent.replace(contextRegex, ''); + writeFileSync(GEMINI_MD_PATH, mdContent); + console.log(` Removed context section from ${GEMINI_MD_PATH}`); + } + } + + console.log('\nUninstallation complete!\n'); + console.log('Restart Gemini CLI to apply changes.'); + return 0; + } catch (error) { + console.error(`\nUninstallation failed: ${(error as Error).message}`); + return 1; + } +} + +/** + * Check Gemini CLI hooks installation status. + * + * @returns 0 always (informational) + */ +export function checkGeminiCliHooksStatus(): number { + console.log('\nClaude-Mem Gemini CLI Hooks Status\n'); + + if (!existsSync(GEMINI_SETTINGS_PATH)) { + console.log('Gemini CLI settings: Not found'); + console.log(` Expected at: ${GEMINI_SETTINGS_PATH}\n`); + console.log('No hooks installed. Run: claude-mem install --ide gemini-cli\n'); + return 0; + } + + let settings: GeminiSettingsJson; + try { + settings = readGeminiSettings(); + } catch (error) { + console.log(`Gemini CLI settings: ${(error as Error).message}\n`); + return 0; + } + + if (!settings.hooks) { + console.log('Gemini CLI settings: Found, but no hooks configured\n'); + console.log('No hooks installed. Run: claude-mem install --ide gemini-cli\n'); + return 0; + } + + // Check for claude-mem hooks + const installedEvents: string[] = []; + for (const [eventName, groups] of Object.entries(settings.hooks)) { + const hasClaudeMem = groups.some(group => + group.hooks.some(hook => hook.name === HOOK_NAME) + ); + if (hasClaudeMem) { + installedEvents.push(eventName); + } + } + + if (installedEvents.length === 0) { + console.log('Gemini CLI settings: Found, but no claude-mem hooks\n'); + console.log('Run: claude-mem install --ide gemini-cli\n'); + return 0; + } + + console.log(`Settings: ${GEMINI_SETTINGS_PATH}`); + console.log(`Mode: Unified CLI (bun worker-service.cjs hook gemini-cli)`); + console.log(`Events: ${installedEvents.length} of ${Object.keys(GEMINI_EVENT_TO_INTERNAL_EVENT).length} mapped`); + for (const event of installedEvents) { + const internalEvent = GEMINI_EVENT_TO_INTERNAL_EVENT[event] ?? 'unknown'; + console.log(` ${event} → ${internalEvent}`); + } + + // Check GEMINI.md context + if (existsSync(GEMINI_MD_PATH)) { + const mdContent = readFileSync(GEMINI_MD_PATH, 'utf-8'); + if (mdContent.includes('')) { + console.log(`Context: Active (${GEMINI_MD_PATH})`); + } else { + console.log('Context: GEMINI.md exists but missing claude-mem section'); + } + } else { + console.log('Context: No GEMINI.md found'); + } + + console.log(''); + return 0; +} + +/** + * Handle gemini-cli subcommand for hooks management. + */ +export async function handleGeminiCliCommand(subcommand: string, _args: string[]): Promise { + switch (subcommand) { + case 'install': + return installGeminiCliHooks(); + + case 'uninstall': + return uninstallGeminiCliHooks(); + + case 'status': + return checkGeminiCliHooksStatus(); + + default: + console.log(` +Claude-Mem Gemini CLI Integration + +Usage: claude-mem gemini-cli + +Commands: + install Install hooks into ~/.gemini/settings.json + uninstall Remove claude-mem hooks (preserves other hooks) + status Check installation status + +Examples: + claude-mem gemini-cli install # Install hooks + claude-mem gemini-cli status # Check if installed + claude-mem gemini-cli uninstall # Remove hooks + +For more info: https://docs.claude-mem.ai/usage/gemini-provider + `); + return 0; + } +} diff --git a/src/services/integrations/McpIntegrations.ts b/src/services/integrations/McpIntegrations.ts new file mode 100644 index 00000000..88aa2c27 --- /dev/null +++ b/src/services/integrations/McpIntegrations.ts @@ -0,0 +1,358 @@ +/** + * McpIntegrations - MCP-based IDE integrations for claude-mem + * + * Handles MCP config writing and context injection for IDEs that support + * the Model Context Protocol. These are "MCP-only" integrations: they provide + * search tools and context injection but do NOT capture transcripts. + * + * Supported IDEs: + * - Copilot CLI + * - Antigravity (Gemini) + * - Goose + * - Crush + * - Roo Code + * - Warp + * + * All IDEs point to the same MCP server: plugin/scripts/mcp-server.cjs + */ + +import path from 'path'; +import { homedir } from 'os'; +import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs'; +import { logger } from '../../utils/logger.js'; +import { findMcpServerPath } from './CursorHooksInstaller.js'; +import { readJsonSafe } from '../../utils/json-utils.js'; +import { injectContextIntoMarkdownFile } from '../../utils/context-injection.js'; + +// ============================================================================ +// Shared Constants +// ============================================================================ + +const PLACEHOLDER_CONTEXT = `# claude-mem: Cross-Session Memory + +*No context yet. Complete your first session and context will appear here.* + +Use claude-mem's MCP search tools for manual memory queries.`; + +// ============================================================================ +// Shared Utilities +// ============================================================================ + +/** + * Build the standard MCP server entry that all IDEs use. + * Points to the same mcp-server.cjs script. + */ +function buildMcpServerEntry(mcpServerPath: string): { command: string; args: string[] } { + return { + command: process.execPath, + args: [mcpServerPath], + }; +} + +/** + * Write a standard MCP JSON config file, merging with existing config. + * Supports both { "mcpServers": { ... } } and { "servers": { ... } } formats. + */ +function writeMcpJsonConfig( + configFilePath: string, + mcpServerPath: string, + serversKeyName: string = 'mcpServers', +): void { + const parentDirectory = path.dirname(configFilePath); + mkdirSync(parentDirectory, { recursive: true }); + + const existingConfig = readJsonSafe>(configFilePath, {}); + + if (!existingConfig[serversKeyName]) { + existingConfig[serversKeyName] = {}; + } + + existingConfig[serversKeyName]['claude-mem'] = buildMcpServerEntry(mcpServerPath); + + writeFileSync(configFilePath, JSON.stringify(existingConfig, null, 2) + '\n'); +} + +// ============================================================================ +// MCP Installer Factory (Phase 1D) +// ============================================================================ + +/** + * Configuration for a JSON-based MCP IDE integration. + */ +interface McpInstallerConfig { + ideId: string; + ideLabel: string; + configPath: string; + configKey: 'servers' | 'mcpServers'; + contextFile?: { + path: string; + isWorkspaceRelative: boolean; + }; +} + +/** + * Factory function that creates an MCP installer for any JSON-config-based IDE. + * Handles MCP config writing and optional context injection. + */ +function installMcpIntegration(config: McpInstallerConfig): () => Promise { + return async (): Promise => { + console.log(`\nInstalling Claude-Mem MCP integration for ${config.ideLabel}...\n`); + + const mcpServerPath = findMcpServerPath(); + if (!mcpServerPath) { + console.error('Could not find MCP server script'); + console.error(' Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs'); + return 1; + } + + try { + // Write MCP config + const configPath = config.configPath; + + // Warp special case: skip config write if ~/.warp/ doesn't exist + if (config.ideId === 'warp' && !existsSync(path.dirname(configPath))) { + console.log(` Note: ~/.warp/ not found. MCP may need to be configured via Warp Drive UI.`); + } else { + writeMcpJsonConfig(configPath, mcpServerPath, config.configKey); + console.log(` MCP config written to: ${configPath}`); + } + + // Inject context if configured + let contextPath: string | undefined; + if (config.contextFile) { + contextPath = config.contextFile.path; + injectContextIntoMarkdownFile(contextPath, PLACEHOLDER_CONTEXT); + console.log(` Context placeholder written to: ${contextPath}`); + } + + // Print summary + const summaryLines = [`\nInstallation complete!\n`]; + summaryLines.push(`MCP config: ${configPath}`); + if (contextPath) { + summaryLines.push(`Context: ${contextPath}`); + } + summaryLines.push(''); + summaryLines.push(`Note: This is an MCP-only integration providing search tools and context.`); + summaryLines.push(`Transcript capture is not available for ${config.ideLabel}.`); + if (config.ideId === 'warp') { + summaryLines.push('If MCP config via file is not supported, configure MCP through Warp Drive UI.'); + } + summaryLines.push(''); + summaryLines.push('Next steps:'); + summaryLines.push(' 1. Start claude-mem worker: npx claude-mem start'); + summaryLines.push(` 2. Restart ${config.ideLabel} to pick up the MCP server`); + summaryLines.push(''); + console.log(summaryLines.join('\n')); + + return 0; + } catch (error) { + console.error(`\nInstallation failed: ${(error as Error).message}`); + return 1; + } + }; +} + +// ============================================================================ +// Factory Configs for JSON-based IDEs +// ============================================================================ + +const COPILOT_CLI_CONFIG: McpInstallerConfig = { + ideId: 'copilot-cli', + ideLabel: 'Copilot CLI', + configPath: path.join(homedir(), '.github', 'copilot', 'mcp.json'), + configKey: 'servers', + contextFile: { + path: path.join(process.cwd(), '.github', 'copilot-instructions.md'), + isWorkspaceRelative: true, + }, +}; + +const ANTIGRAVITY_CONFIG: McpInstallerConfig = { + ideId: 'antigravity', + ideLabel: 'Antigravity', + configPath: path.join(homedir(), '.gemini', 'antigravity', 'mcp_config.json'), + configKey: 'mcpServers', + contextFile: { + path: path.join(process.cwd(), '.agent', 'rules', 'claude-mem-context.md'), + isWorkspaceRelative: true, + }, +}; + +const CRUSH_CONFIG: McpInstallerConfig = { + ideId: 'crush', + ideLabel: 'Crush', + configPath: path.join(homedir(), '.config', 'crush', 'mcp.json'), + configKey: 'mcpServers', +}; + +const ROO_CODE_CONFIG: McpInstallerConfig = { + ideId: 'roo-code', + ideLabel: 'Roo Code', + configPath: path.join(process.cwd(), '.roo', 'mcp.json'), + configKey: 'mcpServers', + contextFile: { + path: path.join(process.cwd(), '.roo', 'rules', 'claude-mem-context.md'), + isWorkspaceRelative: true, + }, +}; + +const WARP_CONFIG: McpInstallerConfig = { + ideId: 'warp', + ideLabel: 'Warp', + configPath: path.join(homedir(), '.warp', 'mcp.json'), + configKey: 'mcpServers', + contextFile: { + path: path.join(process.cwd(), 'WARP.md'), + isWorkspaceRelative: true, + }, +}; + +// ============================================================================ +// Goose (YAML-based — separate handler) +// ============================================================================ + +/** + * Get the Goose config path. + * Goose stores its config at ~/.config/goose/config.yaml. + */ +function getGooseConfigPath(): string { + return path.join(homedir(), '.config', 'goose', 'config.yaml'); +} + +/** + * Check if a YAML string already has a claude-mem entry under mcpServers. + * Uses string matching to avoid needing a YAML parser. + */ +function gooseConfigHasClaudeMemEntry(yamlContent: string): boolean { + // Look for "claude-mem:" indented under mcpServers + return yamlContent.includes('claude-mem:') && + yamlContent.includes('mcpServers:'); +} + +/** + * Build the Goose YAML MCP server block as a string. + * Produces properly indented YAML without needing a parser. + */ +function buildGooseMcpYamlBlock(mcpServerPath: string): string { + // Goose expects the mcpServers section at the top level + return [ + 'mcpServers:', + ' claude-mem:', + ` command: ${process.execPath}`, + ' args:', + ` - ${mcpServerPath}`, + ].join('\n'); +} + +/** + * Build just the claude-mem server entry (for appending under existing mcpServers). + */ +function buildGooseClaudeMemEntryYaml(mcpServerPath: string): string { + return [ + ' claude-mem:', + ` command: ${process.execPath}`, + ' args:', + ` - ${mcpServerPath}`, + ].join('\n'); +} + +/** + * Install claude-mem MCP integration for Goose. + * + * - Writes/merges MCP config into ~/.config/goose/config.yaml + * - Uses string manipulation for YAML (no parser dependency) + * + * @returns 0 on success, 1 on failure + */ +export async function installGooseMcpIntegration(): Promise { + console.log('\nInstalling Claude-Mem MCP integration for Goose...\n'); + + const mcpServerPath = findMcpServerPath(); + if (!mcpServerPath) { + console.error('Could not find MCP server script'); + console.error(' Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs'); + return 1; + } + + try { + const configPath = getGooseConfigPath(); + const configDirectory = path.dirname(configPath); + mkdirSync(configDirectory, { recursive: true }); + + if (existsSync(configPath)) { + let yamlContent = readFileSync(configPath, 'utf-8'); + + if (gooseConfigHasClaudeMemEntry(yamlContent)) { + // Already configured — replace the claude-mem block + // Find the claude-mem entry and replace it + const claudeMemPattern = /( {2}claude-mem:\n(?:.*\n)*?(?= {2}\S|\n\n|^\S|$))/m; + const newEntry = buildGooseClaudeMemEntryYaml(mcpServerPath) + '\n'; + + if (claudeMemPattern.test(yamlContent)) { + yamlContent = yamlContent.replace(claudeMemPattern, newEntry); + } + writeFileSync(configPath, yamlContent); + console.log(` Updated existing claude-mem entry in: ${configPath}`); + } else if (yamlContent.includes('mcpServers:')) { + // mcpServers section exists but no claude-mem entry — append under it + const mcpServersIndex = yamlContent.indexOf('mcpServers:'); + const insertionPoint = mcpServersIndex + 'mcpServers:'.length; + const newEntry = '\n' + buildGooseClaudeMemEntryYaml(mcpServerPath); + + yamlContent = + yamlContent.slice(0, insertionPoint) + + newEntry + + yamlContent.slice(insertionPoint); + + writeFileSync(configPath, yamlContent); + console.log(` Added claude-mem to existing mcpServers in: ${configPath}`); + } else { + // No mcpServers section — append the entire block + const mcpBlock = '\n' + buildGooseMcpYamlBlock(mcpServerPath) + '\n'; + yamlContent = yamlContent.trimEnd() + '\n' + mcpBlock; + writeFileSync(configPath, yamlContent); + console.log(` Appended mcpServers section to: ${configPath}`); + } + } else { + // File doesn't exist — create from template + const templateContent = buildGooseMcpYamlBlock(mcpServerPath) + '\n'; + writeFileSync(configPath, templateContent); + console.log(` Created config with MCP server: ${configPath}`); + } + + console.log(` +Installation complete! + +MCP config: ${configPath} + +Note: This is an MCP-only integration providing search tools and context. +Transcript capture is not available for Goose. + +Next steps: + 1. Start claude-mem worker: npx claude-mem start + 2. Restart Goose to pick up the MCP server +`); + + return 0; + } catch (error) { + console.error(`\nInstallation failed: ${(error as Error).message}`); + return 1; + } +} + +// ============================================================================ +// Unified Installer (used by npx install command) +// ============================================================================ + +/** + * Map of IDE identifiers to their install functions. + * Used by the install command to dispatch to the correct integration. + */ +export const MCP_IDE_INSTALLERS: Record Promise> = { + 'copilot-cli': installMcpIntegration(COPILOT_CLI_CONFIG), + 'antigravity': installMcpIntegration(ANTIGRAVITY_CONFIG), + 'goose': installGooseMcpIntegration, + 'crush': installMcpIntegration(CRUSH_CONFIG), + 'roo-code': installMcpIntegration(ROO_CODE_CONFIG), + 'warp': installMcpIntegration(WARP_CONFIG), +}; diff --git a/src/services/integrations/OpenClawInstaller.ts b/src/services/integrations/OpenClawInstaller.ts new file mode 100644 index 00000000..0867f794 --- /dev/null +++ b/src/services/integrations/OpenClawInstaller.ts @@ -0,0 +1,430 @@ +/** + * OpenClawInstaller - OpenClaw gateway integration installer for claude-mem + * + * Installs the pre-built claude-mem plugin into OpenClaw's extension directory + * and registers it in ~/.openclaw/openclaw.json. + * + * Install strategy: File-based + * - Copies the pre-built plugin from the npm package's openclaw/dist/ directory + * to ~/.openclaw/extensions/claude-mem/dist/ + * - Registers the plugin in openclaw.json under plugins.entries.claude-mem + * - Sets the memory slot to claude-mem + * + * Important: The OpenClaw plugin ships pre-built from the npm package. + * It must NOT be rebuilt at install time. + */ + +import path from 'path'; +import { homedir } from 'os'; +import { + existsSync, + readFileSync, + writeFileSync, + mkdirSync, + cpSync, + rmSync, + unlinkSync, +} from 'fs'; +import { logger } from '../../utils/logger.js'; + +// ============================================================================ +// Path Resolution +// ============================================================================ + +/** + * Resolve the OpenClaw config directory (~/.openclaw). + */ +export function getOpenClawConfigDirectory(): string { + return path.join(homedir(), '.openclaw'); +} + +/** + * Resolve the OpenClaw extensions directory where plugins are installed. + */ +export function getOpenClawExtensionsDirectory(): string { + return path.join(getOpenClawConfigDirectory(), 'extensions'); +} + +/** + * Resolve the claude-mem extension install directory. + */ +export function getOpenClawClaudeMemExtensionDirectory(): string { + return path.join(getOpenClawExtensionsDirectory(), 'claude-mem'); +} + +/** + * Resolve the path to openclaw.json config file. + */ +export function getOpenClawConfigFilePath(): string { + return path.join(getOpenClawConfigDirectory(), 'openclaw.json'); +} + +// ============================================================================ +// Pre-built Plugin Location +// ============================================================================ + +/** + * Find the pre-built OpenClaw plugin bundle in the npm package. + * Searches in: openclaw/dist/index.js relative to package root, + * then the marketplace install location. + */ +export function findPreBuiltPluginDirectory(): string | null { + const possibleRoots = [ + // Marketplace install location (production — after `npx claude-mem install`) + path.join( + process.env.CLAUDE_CONFIG_DIR || path.join(homedir(), '.claude'), + 'plugins', 'marketplaces', 'thedotmack', + ), + // Development location (relative to project root) + process.cwd(), + ]; + + for (const root of possibleRoots) { + const openclawDistDirectory = path.join(root, 'openclaw', 'dist'); + const pluginEntryPoint = path.join(openclawDistDirectory, 'index.js'); + if (existsSync(pluginEntryPoint)) { + return openclawDistDirectory; + } + } + + return null; +} + +/** + * Find the openclaw.plugin.json file for copying alongside the plugin. + */ +export function findPluginManifestPath(): string | null { + const possibleRoots = [ + path.join( + process.env.CLAUDE_CONFIG_DIR || path.join(homedir(), '.claude'), + 'plugins', 'marketplaces', 'thedotmack', + ), + process.cwd(), + ]; + + for (const root of possibleRoots) { + const manifestPath = path.join(root, 'openclaw', 'openclaw.plugin.json'); + if (existsSync(manifestPath)) { + return manifestPath; + } + } + + return null; +} + +/** + * Find the openclaw skills directory for copying alongside the plugin. + */ +export function findPluginSkillsDirectory(): string | null { + const possibleRoots = [ + path.join( + process.env.CLAUDE_CONFIG_DIR || path.join(homedir(), '.claude'), + 'plugins', 'marketplaces', 'thedotmack', + ), + process.cwd(), + ]; + + for (const root of possibleRoots) { + const skillsDirectory = path.join(root, 'openclaw', 'skills'); + if (existsSync(skillsDirectory)) { + return skillsDirectory; + } + } + + return null; +} + +// ============================================================================ +// OpenClaw Config (openclaw.json) Management +// ============================================================================ + +/** + * Read openclaw.json safely, returning an empty object if missing or invalid. + */ +function readOpenClawConfig(): Record { + const configFilePath = getOpenClawConfigFilePath(); + if (!existsSync(configFilePath)) return {}; + try { + return JSON.parse(readFileSync(configFilePath, 'utf-8')); + } catch { + return {}; + } +} + +/** + * Write openclaw.json atomically, creating the directory if needed. + */ +function writeOpenClawConfig(config: Record): void { + const configDirectory = getOpenClawConfigDirectory(); + mkdirSync(configDirectory, { recursive: true }); + writeFileSync(getOpenClawConfigFilePath(), JSON.stringify(config, null, 2) + '\n', 'utf-8'); +} + +/** + * Register claude-mem in openclaw.json by merging into the existing config. + * Does NOT overwrite the entire file -- only touches the claude-mem entry + * and the memory slot. + */ +function registerPluginInOpenClawConfig( + workerPort: number = 37777, + project: string = 'openclaw', + syncMemoryFile: boolean = true, +): void { + const config = readOpenClawConfig(); + + // Ensure the plugins structure exists + if (!config.plugins) config.plugins = {}; + if (!config.plugins.slots) config.plugins.slots = {}; + if (!config.plugins.entries) config.plugins.entries = {}; + + // Set the memory slot to claude-mem + config.plugins.slots.memory = 'claude-mem'; + + // Create or update the claude-mem plugin entry + if (!config.plugins.entries['claude-mem']) { + config.plugins.entries['claude-mem'] = { + enabled: true, + config: { + workerPort, + project, + syncMemoryFile, + }, + }; + } else { + // Merge: enable and update config without losing existing user settings + config.plugins.entries['claude-mem'].enabled = true; + if (!config.plugins.entries['claude-mem'].config) { + config.plugins.entries['claude-mem'].config = {}; + } + const existingPluginConfig = config.plugins.entries['claude-mem'].config; + // Only set defaults if not already configured + if (existingPluginConfig.workerPort === undefined) existingPluginConfig.workerPort = workerPort; + if (existingPluginConfig.project === undefined) existingPluginConfig.project = project; + if (existingPluginConfig.syncMemoryFile === undefined) existingPluginConfig.syncMemoryFile = syncMemoryFile; + } + + writeOpenClawConfig(config); +} + +/** + * Remove claude-mem from openclaw.json without deleting other config. + */ +function unregisterPluginFromOpenClawConfig(): void { + const configFilePath = getOpenClawConfigFilePath(); + if (!existsSync(configFilePath)) return; + + const config = readOpenClawConfig(); + + // Remove claude-mem entry + if (config.plugins?.entries?.['claude-mem']) { + delete config.plugins.entries['claude-mem']; + } + + // Clear memory slot if it points to claude-mem + if (config.plugins?.slots?.memory === 'claude-mem') { + delete config.plugins.slots.memory; + } + + writeOpenClawConfig(config); +} + +// ============================================================================ +// Plugin Installation +// ============================================================================ + +/** + * Install the claude-mem plugin into OpenClaw's extensions directory. + * Copies the pre-built plugin bundle and registers it in openclaw.json. + * + * @returns 0 on success, 1 on failure + */ +export function installOpenClawPlugin(): number { + const preBuiltDistDirectory = findPreBuiltPluginDirectory(); + if (!preBuiltDistDirectory) { + console.error('Could not find pre-built OpenClaw plugin bundle.'); + console.error(' Expected at: openclaw/dist/index.js'); + console.error(' Ensure the npm package includes the openclaw directory.'); + return 1; + } + + const extensionDirectory = getOpenClawClaudeMemExtensionDirectory(); + const destinationDistDirectory = path.join(extensionDirectory, 'dist'); + + try { + // Create the extension directory structure + mkdirSync(destinationDistDirectory, { recursive: true }); + + // Copy pre-built dist files + cpSync(preBuiltDistDirectory, destinationDistDirectory, { recursive: true, force: true }); + console.log(` Plugin dist copied to: ${destinationDistDirectory}`); + + // Copy openclaw.plugin.json if available + const manifestPath = findPluginManifestPath(); + if (manifestPath) { + const destinationManifest = path.join(extensionDirectory, 'openclaw.plugin.json'); + cpSync(manifestPath, destinationManifest, { force: true }); + console.log(` Plugin manifest copied to: ${destinationManifest}`); + } + + // Copy skills directory if available + const skillsDirectory = findPluginSkillsDirectory(); + if (skillsDirectory) { + const destinationSkills = path.join(extensionDirectory, 'skills'); + cpSync(skillsDirectory, destinationSkills, { recursive: true, force: true }); + console.log(` Skills copied to: ${destinationSkills}`); + } + + // Create a minimal package.json for the extension (OpenClaw expects this) + const extensionPackageJson = { + name: 'claude-mem', + version: '1.0.0', + type: 'module', + main: 'dist/index.js', + openclaw: { extensions: ['./dist/index.js'] }, + }; + writeFileSync( + path.join(extensionDirectory, 'package.json'), + JSON.stringify(extensionPackageJson, null, 2) + '\n', + 'utf-8', + ); + + // Register in openclaw.json (merge, not overwrite) + registerPluginInOpenClawConfig(); + console.log(` Registered in openclaw.json`); + + logger.info('OPENCLAW', 'Plugin installed', { destination: extensionDirectory }); + return 0; + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + console.error(`Failed to install OpenClaw plugin: ${message}`); + return 1; + } +} + +// ============================================================================ +// Uninstallation +// ============================================================================ + +/** + * Remove the claude-mem plugin from OpenClaw. + * Removes extension files and unregisters from openclaw.json. + * + * @returns 0 on success, 1 on failure + */ +export function uninstallOpenClawPlugin(): number { + let hasErrors = false; + + // Remove extension directory + const extensionDirectory = getOpenClawClaudeMemExtensionDirectory(); + if (existsSync(extensionDirectory)) { + try { + rmSync(extensionDirectory, { recursive: true, force: true }); + console.log(` Removed extension: ${extensionDirectory}`); + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + console.error(` Failed to remove extension directory: ${message}`); + hasErrors = true; + } + } + + // Unregister from openclaw.json + try { + unregisterPluginFromOpenClawConfig(); + console.log(` Unregistered from openclaw.json`); + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + console.error(` Failed to update openclaw.json: ${message}`); + hasErrors = true; + } + + return hasErrors ? 1 : 0; +} + +// ============================================================================ +// Status Check +// ============================================================================ + +/** + * Check OpenClaw integration status. + * + * @returns 0 always (informational only) + */ +export function checkOpenClawStatus(): number { + console.log('\nClaude-Mem OpenClaw Integration Status\n'); + + const configDirectory = getOpenClawConfigDirectory(); + const extensionDirectory = getOpenClawClaudeMemExtensionDirectory(); + const configFilePath = getOpenClawConfigFilePath(); + const pluginEntryPoint = path.join(extensionDirectory, 'dist', 'index.js'); + + console.log(`Config directory: ${configDirectory}`); + console.log(` Exists: ${existsSync(configDirectory) ? 'yes' : 'no'}`); + console.log(''); + + console.log(`Extension directory: ${extensionDirectory}`); + console.log(` Exists: ${existsSync(extensionDirectory) ? 'yes' : 'no'}`); + console.log(` Plugin entry: ${existsSync(pluginEntryPoint) ? 'yes' : 'no'}`); + console.log(''); + + console.log(`Config (openclaw.json): ${configFilePath}`); + if (existsSync(configFilePath)) { + const config = readOpenClawConfig(); + const isRegistered = config.plugins?.entries?.['claude-mem'] !== undefined; + const isEnabled = config.plugins?.entries?.['claude-mem']?.enabled === true; + const isMemorySlot = config.plugins?.slots?.memory === 'claude-mem'; + + console.log(` Exists: yes`); + console.log(` Registered: ${isRegistered ? 'yes' : 'no'}`); + console.log(` Enabled: ${isEnabled ? 'yes' : 'no'}`); + console.log(` Memory slot: ${isMemorySlot ? 'yes' : 'no'}`); + + if (isRegistered) { + const pluginConfig = config.plugins.entries['claude-mem'].config; + if (pluginConfig) { + console.log(` Worker port: ${pluginConfig.workerPort ?? 'default'}`); + console.log(` Project: ${pluginConfig.project ?? 'default'}`); + console.log(` Sync MEMORY.md: ${pluginConfig.syncMemoryFile ?? 'default'}`); + } + } + } else { + console.log(` Exists: no`); + } + + console.log(''); + return 0; +} + +// ============================================================================ +// Full Install Flow (used by npx install command) +// ============================================================================ + +/** + * Run the full OpenClaw installation: copy plugin + register in config. + * + * @returns 0 on success, 1 on failure + */ +export async function installOpenClawIntegration(): Promise { + console.log('\nInstalling Claude-Mem for OpenClaw...\n'); + + // Step 1: Install plugin files and register in config + const pluginResult = installOpenClawPlugin(); + if (pluginResult !== 0) { + return pluginResult; + } + + const extensionDirectory = getOpenClawClaudeMemExtensionDirectory(); + + console.log(` +Installation complete! + +Plugin installed to: ${extensionDirectory} +Config updated: ${getOpenClawConfigFilePath()} + +Next steps: + 1. Start claude-mem worker: npx claude-mem start + 2. Restart OpenClaw to load the plugin + 3. Memory capture is automatic from then on +`); + + return 0; +} diff --git a/src/services/integrations/OpenCodeInstaller.ts b/src/services/integrations/OpenCodeInstaller.ts new file mode 100644 index 00000000..e16c29a8 --- /dev/null +++ b/src/services/integrations/OpenCodeInstaller.ts @@ -0,0 +1,372 @@ +/** + * OpenCodeInstaller - OpenCode IDE integration installer for claude-mem + * + * Installs the claude-mem plugin into OpenCode's plugin directory and + * sets up context injection via AGENTS.md. + * + * Install strategy: File-based (Option A) + * - Copies the built plugin to the OpenCode plugins directory + * - Plugins in that directory are auto-loaded at startup + * + * Context injection: + * - Appends/updates section in AGENTS.md + * + * Respects OPENCODE_CONFIG_DIR env var for config directory resolution. + */ + +import path from 'path'; +import { homedir } from 'os'; +import { fileURLToPath } from 'url'; +import { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync, unlinkSync } from 'fs'; +import { logger } from '../../utils/logger.js'; +import { CONTEXT_TAG_OPEN, CONTEXT_TAG_CLOSE, injectContextIntoMarkdownFile } from '../../utils/context-injection.js'; +import { getWorkerPort } from '../../shared/worker-utils.js'; + +// ============================================================================ +// Path Resolution +// ============================================================================ + +/** + * Resolve the OpenCode config directory. + * Respects OPENCODE_CONFIG_DIR env var, falls back to ~/.config/opencode. + */ +export function getOpenCodeConfigDirectory(): string { + if (process.env.OPENCODE_CONFIG_DIR) { + return process.env.OPENCODE_CONFIG_DIR; + } + return path.join(homedir(), '.config', 'opencode'); +} + +/** + * Resolve the OpenCode plugins directory. + */ +export function getOpenCodePluginsDirectory(): string { + return path.join(getOpenCodeConfigDirectory(), 'plugins'); +} + +/** + * Resolve the AGENTS.md path for context injection. + */ +export function getOpenCodeAgentsMdPath(): string { + return path.join(getOpenCodeConfigDirectory(), 'AGENTS.md'); +} + +/** + * Resolve the path to the installed plugin file. + */ +export function getInstalledPluginPath(): string { + return path.join(getOpenCodePluginsDirectory(), 'claude-mem.js'); +} + +// ============================================================================ +// Plugin Installation +// ============================================================================ + +/** + * Find the built OpenCode plugin bundle. + * Searches in: dist/opencode-plugin/index.js (built output), + * then marketplace location. + */ +export function findBuiltPluginPath(): string | null { + const possiblePaths = [ + // Marketplace install location (production) + path.join( + process.env.CLAUDE_CONFIG_DIR || path.join(homedir(), '.claude'), + 'plugins', 'marketplaces', 'thedotmack', + 'dist', 'opencode-plugin', 'index.js', + ), + // Development location (relative to this module's package root) + path.join(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..', 'dist', 'opencode-plugin', 'index.js'), + ]; + + for (const candidatePath of possiblePaths) { + if (existsSync(candidatePath)) { + return candidatePath; + } + } + + return null; +} + +/** + * Install the claude-mem plugin into OpenCode's plugins directory. + * Copies the built plugin bundle to ~/.config/opencode/plugins/claude-mem.js + * + * @returns 0 on success, 1 on failure + */ +export function installOpenCodePlugin(): number { + const builtPluginPath = findBuiltPluginPath(); + if (!builtPluginPath) { + console.error('Could not find built OpenCode plugin bundle.'); + console.error(' Expected at: dist/opencode-plugin/index.js'); + console.error(' Run the build first: npm run build'); + return 1; + } + + const pluginsDirectory = getOpenCodePluginsDirectory(); + const destinationPath = getInstalledPluginPath(); + + try { + // Create plugins directory if needed + mkdirSync(pluginsDirectory, { recursive: true }); + + // Copy plugin bundle + copyFileSync(builtPluginPath, destinationPath); + + console.log(` Plugin installed to: ${destinationPath}`); + logger.info('OPENCODE', 'Plugin installed', { destination: destinationPath }); + + return 0; + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + console.error(`Failed to install OpenCode plugin: ${message}`); + return 1; + } +} + +// ============================================================================ +// Context Injection (AGENTS.md) +// ============================================================================ + +/** + * Inject or update claude-mem context in OpenCode's AGENTS.md file. + * + * If the file doesn't exist, creates it with the context section. + * If the file exists, replaces the existing section + * or appends one at the end. + * + * @param contextContent - The context content to inject (without tags) + * @returns 0 on success, 1 on failure + */ +export function injectContextIntoAgentsMd(contextContent: string): number { + const agentsMdPath = getOpenCodeAgentsMdPath(); + + try { + injectContextIntoMarkdownFile(agentsMdPath, contextContent, '# Claude-Mem Memory Context'); + logger.info('OPENCODE', 'Context injected into AGENTS.md', { path: agentsMdPath }); + return 0; + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + console.error(`Failed to inject context into AGENTS.md: ${message}`); + return 1; + } +} + +/** + * Sync context from the worker into OpenCode's AGENTS.md. + * Fetches context from the worker API and writes it to AGENTS.md. + * + * @param port - Worker port number + * @param project - Project name for context filtering + */ +export async function syncContextToAgentsMd( + port: number, + project: string, +): Promise { + try { + const response = await fetch( + `http://127.0.0.1:${port}/api/context/inject?project=${encodeURIComponent(project)}`, + ); + + if (!response.ok) return; + + const contextText = await response.text(); + if (contextText && contextText.trim()) { + const injectResult = injectContextIntoAgentsMd(contextText); + if (injectResult !== 0) { + logger.warn('OPENCODE', 'Failed to inject context into AGENTS.md during sync'); + } + } + } catch { + // Worker not available — non-critical + } +} + +// ============================================================================ +// Uninstallation +// ============================================================================ + +/** + * Remove the claude-mem plugin from OpenCode. + * Removes the plugin file and cleans up the AGENTS.md context section. + * + * @returns 0 on success, 1 on failure + */ +export function uninstallOpenCodePlugin(): number { + let hasErrors = false; + + // Remove plugin file + const pluginPath = getInstalledPluginPath(); + if (existsSync(pluginPath)) { + try { + unlinkSync(pluginPath); + console.log(` Removed plugin: ${pluginPath}`); + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + console.error(` Failed to remove plugin: ${message}`); + hasErrors = true; + } + } + + // Remove context section from AGENTS.md + const agentsMdPath = getOpenCodeAgentsMdPath(); + if (existsSync(agentsMdPath)) { + try { + let content = readFileSync(agentsMdPath, 'utf-8'); + const tagStartIndex = content.indexOf(CONTEXT_TAG_OPEN); + const tagEndIndex = content.indexOf(CONTEXT_TAG_CLOSE); + + if (tagStartIndex !== -1 && tagEndIndex !== -1) { + content = + content.slice(0, tagStartIndex).trimEnd() + + '\n' + + content.slice(tagEndIndex + CONTEXT_TAG_CLOSE.length).trimStart(); + + // If the file is now essentially empty or only has our header, remove it + const trimmedContent = content.trim(); + if ( + trimmedContent.length === 0 || + trimmedContent === '# Claude-Mem Memory Context' + ) { + unlinkSync(agentsMdPath); + console.log(` Removed empty AGENTS.md`); + } else { + writeFileSync(agentsMdPath, trimmedContent + '\n', 'utf-8'); + console.log(` Cleaned context from AGENTS.md`); + } + } + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + console.error(` Failed to clean AGENTS.md: ${message}`); + hasErrors = true; + } + } + + return hasErrors ? 1 : 0; +} + +// ============================================================================ +// Status Check +// ============================================================================ + +/** + * Check OpenCode integration status. + * + * @returns 0 always (informational only) + */ +export function checkOpenCodeStatus(): number { + console.log('\nClaude-Mem OpenCode Integration Status\n'); + + const configDirectory = getOpenCodeConfigDirectory(); + const pluginPath = getInstalledPluginPath(); + const agentsMdPath = getOpenCodeAgentsMdPath(); + + console.log(`Config directory: ${configDirectory}`); + console.log(` Exists: ${existsSync(configDirectory) ? 'yes' : 'no'}`); + console.log(''); + + console.log(`Plugin: ${pluginPath}`); + console.log(` Installed: ${existsSync(pluginPath) ? 'yes' : 'no'}`); + console.log(''); + + console.log(`Context (AGENTS.md): ${agentsMdPath}`); + if (existsSync(agentsMdPath)) { + const content = readFileSync(agentsMdPath, 'utf-8'); + const hasContextTags = content.includes(CONTEXT_TAG_OPEN); + console.log(` Exists: yes`); + console.log(` Has claude-mem context: ${hasContextTags ? 'yes' : 'no'}`); + } else { + console.log(` Exists: no`); + } + + console.log(''); + return 0; +} + +// ============================================================================ +// Full Install Flow (used by npx install command) +// ============================================================================ + +/** + * Run the full OpenCode installation: plugin + context injection. + * + * @returns 0 on success, 1 on failure + */ +export async function installOpenCodeIntegration(): Promise { + console.log('\nInstalling Claude-Mem for OpenCode...\n'); + + // Step 1: Install plugin + const pluginResult = installOpenCodePlugin(); + if (pluginResult !== 0) { + return pluginResult; + } + + // Step 2: Create initial context in AGENTS.md + const placeholderContext = `# Memory Context from Past Sessions + +*No context yet. Complete your first session and context will appear here.* + +Use claude-mem search tools for manual memory queries.`; + + // Try to fetch real context from worker first + try { + const workerPort = getWorkerPort(); + const healthResponse = await fetch(`http://127.0.0.1:${workerPort}/api/readiness`); + if (healthResponse.ok) { + const contextResponse = await fetch( + `http://127.0.0.1:${workerPort}/api/context/inject?project=opencode`, + ); + if (contextResponse.ok) { + const realContext = await contextResponse.text(); + if (realContext && realContext.trim()) { + const injectResult = injectContextIntoAgentsMd(realContext); + if (injectResult !== 0) { + logger.warn('OPENCODE', 'Failed to inject real context into AGENTS.md during install'); + } else { + console.log(' Context injected from existing memory'); + } + } else { + const injectResult = injectContextIntoAgentsMd(placeholderContext); + if (injectResult !== 0) { + logger.warn('OPENCODE', 'Failed to inject placeholder context into AGENTS.md during install'); + } else { + console.log(' Placeholder context created (will populate after first session)'); + } + } + } else { + const injectResult = injectContextIntoAgentsMd(placeholderContext); + if (injectResult !== 0) { + logger.warn('OPENCODE', 'Failed to inject placeholder context into AGENTS.md during install'); + } + } + } else { + const injectResult = injectContextIntoAgentsMd(placeholderContext); + if (injectResult !== 0) { + logger.warn('OPENCODE', 'Failed to inject placeholder context into AGENTS.md during install'); + } else { + console.log(' Placeholder context created (worker not running)'); + } + } + } catch { + const injectResult = injectContextIntoAgentsMd(placeholderContext); + if (injectResult !== 0) { + logger.warn('OPENCODE', 'Failed to inject placeholder context into AGENTS.md during install'); + } else { + console.log(' Placeholder context created (worker not running)'); + } + } + + console.log(` +Installation complete! + +Plugin installed to: ${getInstalledPluginPath()} +Context file: ${getOpenCodeAgentsMdPath()} + +Next steps: + 1. Start claude-mem worker: npx claude-mem start + 2. Restart OpenCode to load the plugin + 3. Memory capture is automatic from then on +`); + + return 0; +} diff --git a/src/services/integrations/WindsurfHooksInstaller.ts b/src/services/integrations/WindsurfHooksInstaller.ts new file mode 100644 index 00000000..6c6b213b --- /dev/null +++ b/src/services/integrations/WindsurfHooksInstaller.ts @@ -0,0 +1,514 @@ +/** + * WindsurfHooksInstaller - Windsurf IDE integration for claude-mem + * + * Handles: + * - Windsurf hooks installation/uninstallation to ~/.codeium/windsurf/hooks.json + * - Context file generation (.windsurf/rules/claude-mem-context.md) + * - Project registry management for auto-context updates + * + * Windsurf hooks.json format: + * { + * "hooks": { + * "": [{ "command": "...", "show_output": false, "working_directory": "..." }] + * } + * } + * + * Events registered (all post-action, non-blocking): + * - pre_user_prompt — session init + context injection + * - post_write_code — code generation observation + * - post_run_command — command execution observation + * - post_mcp_tool_use — MCP tool results + * - post_cascade_response — full AI response + */ + +import path from 'path'; +import { homedir } from 'os'; +import { existsSync, readFileSync, writeFileSync, unlinkSync, mkdirSync, renameSync } from 'fs'; +import { logger } from '../../utils/logger.js'; +import { getWorkerPort } from '../../shared/worker-utils.js'; +import { DATA_DIR } from '../../shared/paths.js'; +import { findBunPath, findWorkerServicePath } from './CursorHooksInstaller.js'; + +// ============================================================================ +// Types +// ============================================================================ + +interface WindsurfHookEntry { + command: string; + show_output: boolean; + working_directory: string; +} + +interface WindsurfHooksJson { + hooks: { + [eventName: string]: WindsurfHookEntry[]; + }; +} + +interface WindsurfProjectRegistry { + [workspacePath: string]: { + installedAt: string; + }; +} + +// ============================================================================ +// Constants +// ============================================================================ + +/** User-level hooks config — global coverage across all Windsurf workspaces */ +const WINDSURF_HOOKS_DIR = path.join(homedir(), '.codeium', 'windsurf'); +const WINDSURF_HOOKS_JSON_PATH = path.join(WINDSURF_HOOKS_DIR, 'hooks.json'); + +/** Windsurf context rule limit: 6,000 chars per file */ +const WINDSURF_CONTEXT_CHAR_LIMIT = 6000; + +/** Registry file for tracking projects with Windsurf hooks */ +const WINDSURF_REGISTRY_FILE = path.join(DATA_DIR, 'windsurf-projects.json'); + +/** Hook events we register */ +const WINDSURF_HOOK_EVENTS = [ + 'pre_user_prompt', + 'post_write_code', + 'post_run_command', + 'post_mcp_tool_use', + 'post_cascade_response', +] as const; + +// ============================================================================ +// Project Registry +// ============================================================================ + +/** + * Read the Windsurf project registry + */ +export function readWindsurfRegistry(): WindsurfProjectRegistry { + try { + if (!existsSync(WINDSURF_REGISTRY_FILE)) return {}; + return JSON.parse(readFileSync(WINDSURF_REGISTRY_FILE, 'utf-8')); + } catch (error) { + logger.error('WINDSURF', 'Failed to read registry, using empty', { + file: WINDSURF_REGISTRY_FILE, + }, error as Error); + return {}; + } +} + +/** + * Write the Windsurf project registry + */ +export function writeWindsurfRegistry(registry: WindsurfProjectRegistry): void { + const dir = path.dirname(WINDSURF_REGISTRY_FILE); + mkdirSync(dir, { recursive: true }); + writeFileSync(WINDSURF_REGISTRY_FILE, JSON.stringify(registry, null, 2)); +} + +/** + * Register a project for auto-context updates. + * Keys by full workspacePath to avoid collisions between directories with the same basename. + */ +export function registerWindsurfProject(workspacePath: string): void { + const registry = readWindsurfRegistry(); + registry[workspacePath] = { + installedAt: new Date().toISOString(), + }; + writeWindsurfRegistry(registry); + logger.info('WINDSURF', 'Registered project for auto-context updates', { workspacePath }); +} + +/** + * Unregister a project from auto-context updates + */ +export function unregisterWindsurfProject(workspacePath: string): void { + const registry = readWindsurfRegistry(); + if (registry[workspacePath]) { + delete registry[workspacePath]; + writeWindsurfRegistry(registry); + logger.info('WINDSURF', 'Unregistered project', { workspacePath }); + } +} + +/** + * Update Windsurf context files for a registered project. + * Called by SDK agents after saving a summary. + */ +export async function updateWindsurfContextForProject(projectName: string, workspacePath: string, port: number): Promise { + const registry = readWindsurfRegistry(); + const entry = registry[workspacePath]; + + if (!entry) return; // Project doesn't have Windsurf hooks installed + + try { + const response = await fetch( + `http://127.0.0.1:${port}/api/context/inject?project=${encodeURIComponent(projectName)}` + ); + + if (!response.ok) return; + + const context = await response.text(); + if (!context || !context.trim()) return; + + writeWindsurfContextFile(workspacePath, context); + logger.debug('WINDSURF', 'Updated context file', { projectName, workspacePath }); + } catch (error) { + // Background context update — failure is non-critical + logger.error('WINDSURF', 'Failed to update context file', { projectName, workspacePath }, error as Error); + } +} + +// ============================================================================ +// Context File +// ============================================================================ + +/** + * Write context to the workspace-level Windsurf rules directory. + * Windsurf rules are workspace-scoped: .windsurf/rules/claude-mem-context.md + * Rule file limit: 6,000 chars per file. + */ +export function writeWindsurfContextFile(workspacePath: string, context: string): void { + const rulesDir = path.join(workspacePath, '.windsurf', 'rules'); + const rulesFile = path.join(rulesDir, 'claude-mem-context.md'); + const tempFile = `${rulesFile}.tmp`; + + mkdirSync(rulesDir, { recursive: true }); + + let content = `# Memory Context from Past Sessions + +The following context is from claude-mem, a persistent memory system that tracks your coding sessions. + +${context} + +--- +*Auto-updated by claude-mem after each session. Use MCP search tools for detailed queries.* +`; + + // Enforce Windsurf's 6K char limit + if (content.length > WINDSURF_CONTEXT_CHAR_LIMIT) { + content = content.slice(0, WINDSURF_CONTEXT_CHAR_LIMIT - 50) + + '\n\n*[Truncated — use MCP search for full history]*\n'; + } + + // Atomic write: temp file + rename + writeFileSync(tempFile, content); + renameSync(tempFile, rulesFile); +} + +// ============================================================================ +// Hook Installation +// ============================================================================ + +/** + * Build the hook command string for a given event. + * Uses bun to run worker-service.cjs with the windsurf platform adapter. + */ +function buildHookCommand(bunPath: string, workerServicePath: string, eventName: string): string { + // Map Windsurf event names to unified CLI hook commands + const eventToCommand: Record = { + 'pre_user_prompt': 'session-init', + 'post_write_code': 'file-edit', + 'post_run_command': 'observation', + 'post_mcp_tool_use': 'observation', + 'post_cascade_response': 'observation', + }; + + const hookCommand = eventToCommand[eventName] ?? 'observation'; + + return `"${bunPath}" "${workerServicePath}" hook windsurf ${hookCommand}`; +} + +/** + * Read existing hooks.json, merge our hooks, and write back. + * Preserves any existing hooks from other tools. + */ +function mergeAndWriteHooksJson( + bunPath: string, + workerServicePath: string, + workingDirectory: string, +): void { + mkdirSync(WINDSURF_HOOKS_DIR, { recursive: true }); + + // Read existing hooks.json if present + let existingConfig: WindsurfHooksJson = { hooks: {} }; + if (existsSync(WINDSURF_HOOKS_JSON_PATH)) { + try { + existingConfig = JSON.parse(readFileSync(WINDSURF_HOOKS_JSON_PATH, 'utf-8')); + if (!existingConfig.hooks) { + existingConfig.hooks = {}; + } + } catch (error) { + throw new Error(`Corrupt hooks.json at ${WINDSURF_HOOKS_JSON_PATH}, refusing to overwrite`); + } + } + + // For each event, add our hook entry (remove any previous claude-mem entries first) + for (const eventName of WINDSURF_HOOK_EVENTS) { + const command = buildHookCommand(bunPath, workerServicePath, eventName); + + const hookEntry: WindsurfHookEntry = { + command, + show_output: false, + working_directory: workingDirectory, + }; + + // Get existing hooks for this event, filtering out old claude-mem ones + const existingHooks = (existingConfig.hooks[eventName] ?? []).filter( + (hook) => !hook.command.includes('worker-service') || !hook.command.includes('windsurf') + ); + + existingConfig.hooks[eventName] = [...existingHooks, hookEntry]; + } + + writeFileSync(WINDSURF_HOOKS_JSON_PATH, JSON.stringify(existingConfig, null, 2)); +} + +/** + * Install Windsurf hooks to ~/.codeium/windsurf/hooks.json (user-level). + * Merges with existing hooks.json to preserve other integrations. + */ +export async function installWindsurfHooks(): Promise { + console.log('\nInstalling Claude-Mem Windsurf hooks (user level)...\n'); + + // Find the worker-service.cjs path + const workerServicePath = findWorkerServicePath(); + if (!workerServicePath) { + console.error('Could not find worker-service.cjs'); + console.error(' Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/worker-service.cjs'); + return 1; + } + + // Find bun executable — required because worker-service.cjs uses bun:sqlite + const bunPath = findBunPath(); + if (!bunPath) { + console.error('Could not find Bun runtime'); + console.error(' Install Bun: curl -fsSL https://bun.sh/install | bash'); + return 1; + } + + // IMPORTANT: Tilde expansion is NOT supported in working_directory — use absolute paths + const workingDirectory = path.dirname(workerServicePath); + + try { + console.log(` Using Bun runtime: ${bunPath}`); + console.log(` Worker service: ${workerServicePath}`); + + // Merge our hooks into the existing hooks.json + mergeAndWriteHooksJson(bunPath, workerServicePath, workingDirectory); + console.log(` Created/merged hooks.json`); + + // Set up initial context for the current workspace + const workspaceRoot = process.cwd(); + await setupWindsurfProjectContext(workspaceRoot); + + console.log(` +Installation complete! + +Hooks installed to: ${WINDSURF_HOOKS_JSON_PATH} +Using unified CLI: bun worker-service.cjs hook windsurf + +Events registered: + - pre_user_prompt (session init + context injection) + - post_write_code (code generation observation) + - post_run_command (command execution observation) + - post_mcp_tool_use (MCP tool results) + - post_cascade_response (full AI response) + +Next steps: + 1. Start claude-mem worker: claude-mem start + 2. Restart Windsurf to load the hooks + 3. Context is injected via .windsurf/rules/claude-mem-context.md (workspace-level) +`); + + return 0; + } catch (error) { + console.error(`\nInstallation failed: ${(error as Error).message}`); + return 1; + } +} + +/** + * Setup initial context file for a Windsurf workspace + */ +async function setupWindsurfProjectContext(workspaceRoot: string): Promise { + const port = getWorkerPort(); + const projectName = path.basename(workspaceRoot); + let contextGenerated = false; + + console.log(` Generating initial context...`); + + try { + const healthResponse = await fetch(`http://127.0.0.1:${port}/api/readiness`); + if (healthResponse.ok) { + const contextResponse = await fetch( + `http://127.0.0.1:${port}/api/context/inject?project=${encodeURIComponent(projectName)}` + ); + if (contextResponse.ok) { + const context = await contextResponse.text(); + if (context && context.trim()) { + writeWindsurfContextFile(workspaceRoot, context); + contextGenerated = true; + console.log(` Generated initial context from existing memory`); + } + } + } + } catch (error) { + // Worker not running during install — non-critical + logger.debug('WINDSURF', 'Worker not running during install', {}, error as Error); + } + + if (!contextGenerated) { + // Create placeholder context file + const rulesDir = path.join(workspaceRoot, '.windsurf', 'rules'); + mkdirSync(rulesDir, { recursive: true }); + const rulesFile = path.join(rulesDir, 'claude-mem-context.md'); + const placeholderContent = `# Memory Context from Past Sessions + +*No context yet. Complete your first session and context will appear here.* + +Use claude-mem's MCP search tools for manual memory queries. +`; + writeFileSync(rulesFile, placeholderContent); + console.log(` Created placeholder context file (will populate after first session)`); + } + + // Register project for automatic context updates after summaries + registerWindsurfProject(workspaceRoot); + console.log(` Registered for auto-context updates`); +} + +/** + * Uninstall Windsurf hooks — removes claude-mem entries from hooks.json + */ +export function uninstallWindsurfHooks(): number { + console.log('\nUninstalling Claude-Mem Windsurf hooks...\n'); + + try { + // Remove our entries from hooks.json (preserve other integrations) + if (existsSync(WINDSURF_HOOKS_JSON_PATH)) { + try { + const config: WindsurfHooksJson = JSON.parse(readFileSync(WINDSURF_HOOKS_JSON_PATH, 'utf-8')); + + for (const eventName of WINDSURF_HOOK_EVENTS) { + if (config.hooks[eventName]) { + config.hooks[eventName] = config.hooks[eventName].filter( + (hook) => !hook.command.includes('worker-service') || !hook.command.includes('windsurf') + ); + // Remove empty arrays + if (config.hooks[eventName].length === 0) { + delete config.hooks[eventName]; + } + } + } + + // If no hooks remain, remove the file entirely + if (Object.keys(config.hooks).length === 0) { + unlinkSync(WINDSURF_HOOKS_JSON_PATH); + console.log(` Removed hooks.json (no hooks remaining)`); + } else { + writeFileSync(WINDSURF_HOOKS_JSON_PATH, JSON.stringify(config, null, 2)); + console.log(` Removed claude-mem entries from hooks.json (other hooks preserved)`); + } + } catch (error) { + console.log(` Warning: could not parse hooks.json — leaving file intact to preserve other hooks`); + } + } else { + console.log(` No hooks.json found`); + } + + // Remove context file from the current workspace + const workspaceRoot = process.cwd(); + const contextFile = path.join(workspaceRoot, '.windsurf', 'rules', 'claude-mem-context.md'); + if (existsSync(contextFile)) { + unlinkSync(contextFile); + console.log(` Removed context file`); + } + + // Unregister project + unregisterWindsurfProject(workspaceRoot); + console.log(` Unregistered from auto-context updates`); + + console.log(`\nUninstallation complete!\n`); + console.log('Restart Windsurf to apply changes.'); + + return 0; + } catch (error) { + console.error(`\nUninstallation failed: ${(error as Error).message}`); + return 1; + } +} + +/** + * Check Windsurf hooks installation status + */ +export function checkWindsurfHooksStatus(): number { + console.log('\nClaude-Mem Windsurf Hooks Status\n'); + + if (existsSync(WINDSURF_HOOKS_JSON_PATH)) { + console.log(`User-level: Installed`); + console.log(` Config: ${WINDSURF_HOOKS_JSON_PATH}`); + + try { + const config: WindsurfHooksJson = JSON.parse(readFileSync(WINDSURF_HOOKS_JSON_PATH, 'utf-8')); + const registeredEvents = WINDSURF_HOOK_EVENTS.filter( + (event) => config.hooks[event]?.some( + (hook) => hook.command.includes('worker-service') && hook.command.includes('windsurf') + ) + ); + console.log(` Events: ${registeredEvents.length}/${WINDSURF_HOOK_EVENTS.length} registered`); + for (const event of registeredEvents) { + console.log(` - ${event}`); + } + } catch { + console.log(` Mode: Unable to parse hooks.json`); + } + + // Check for context file in current workspace + const contextFile = path.join(process.cwd(), '.windsurf', 'rules', 'claude-mem-context.md'); + if (existsSync(contextFile)) { + console.log(` Context: Active (current workspace)`); + } else { + console.log(` Context: Not yet generated for this workspace`); + } + } else { + console.log(`User-level: Not installed`); + console.log(`\nNo hooks installed. Run: claude-mem windsurf install\n`); + } + + console.log(''); + return 0; +} + +/** + * Handle windsurf subcommand for hooks installation + */ +export async function handleWindsurfCommand(subcommand: string, _args: string[]): Promise { + switch (subcommand) { + case 'install': + return installWindsurfHooks(); + + case 'uninstall': + return uninstallWindsurfHooks(); + + case 'status': + return checkWindsurfHooksStatus(); + + default: { + console.log(` +Claude-Mem Windsurf Integration + +Usage: claude-mem windsurf + +Commands: + install Install Windsurf hooks (user-level, ~/.codeium/windsurf/hooks.json) + uninstall Remove Windsurf hooks + status Check installation status + +Examples: + claude-mem windsurf install # Install hooks globally + claude-mem windsurf uninstall # Remove hooks + claude-mem windsurf status # Check if hooks are installed + +For more info: https://docs.claude-mem.ai/windsurf + `); + return 0; + } + } +} diff --git a/src/services/integrations/index.ts b/src/services/integrations/index.ts index db0abfa1..a985957d 100644 --- a/src/services/integrations/index.ts +++ b/src/services/integrations/index.ts @@ -1,6 +1,12 @@ /** - * Integrations module - IDE integrations (Cursor, etc.) + * Integrations module - IDE integrations (Cursor, Gemini CLI, OpenCode, Windsurf, etc.) */ export * from './types.js'; export * from './CursorHooksInstaller.js'; +export * from './GeminiCliHooksInstaller.js'; +export * from './OpenCodeInstaller.js'; +export * from './WindsurfHooksInstaller.js'; +export * from './OpenClawInstaller.js'; +export * from './CodexCliInstaller.js'; +export * from './McpIntegrations.js'; diff --git a/src/services/sqlite/PendingMessageStore.ts b/src/services/sqlite/PendingMessageStore.ts index bb2d33ef..b61a9ea8 100644 --- a/src/services/sqlite/PendingMessageStore.ts +++ b/src/services/sqlite/PendingMessageStore.ts @@ -397,6 +397,19 @@ export class PendingMessageStore { return result.count; } + /** + * Peek at pending message types for a session (for tier routing). + * Returns list of { message_type, tool_name } without claiming. + */ + peekPendingTypes(sessionDbId: number): Array<{ message_type: string; tool_name: string | null }> { + const stmt = this.db.prepare(` + SELECT message_type, tool_name FROM pending_messages + WHERE session_db_id = ? AND status IN ('pending', 'processing') + ORDER BY id ASC + `); + return stmt.all(sessionDbId) as Array<{ message_type: string; tool_name: string | null }>; + } + /** * Check if any session has pending work. * Excludes 'processing' messages stuck for >5 minutes (resets them to 'pending' as a side effect). diff --git a/src/services/sqlite/migrations.ts b/src/services/sqlite/migrations.ts index ad0f877b..5be21f6a 100644 --- a/src/services/sqlite/migrations.ts +++ b/src/services/sqlite/migrations.ts @@ -509,6 +509,38 @@ export const migration007: Migration = { }; +/** + * All migrations in order + */ +/** + * Migration 008: Observation feedback table for tracking observation usage + * + * Tracks how observations are used (semantic injection hits, search access, + * explicit retrieval). Foundation for future Thompson Sampling optimization. + */ +export const migration008: Migration = { + version: 25, + up: (db: Database) => { + db.run(` + CREATE TABLE IF NOT EXISTS observation_feedback ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + observation_id INTEGER NOT NULL, + signal_type TEXT NOT NULL, + session_db_id INTEGER, + created_at_epoch INTEGER NOT NULL, + metadata TEXT, + FOREIGN KEY (observation_id) REFERENCES observations(id) ON DELETE CASCADE + ) + `); + db.run(`CREATE INDEX IF NOT EXISTS idx_feedback_observation ON observation_feedback(observation_id)`); + db.run(`CREATE INDEX IF NOT EXISTS idx_feedback_signal ON observation_feedback(signal_type)`); + console.log('✅ Created observation_feedback table for usage tracking'); + }, + down: (db: Database) => { + db.run(`DROP TABLE IF EXISTS observation_feedback`); + } +}; + /** * All migrations in order */ @@ -519,5 +551,6 @@ export const migrations: Migration[] = [ migration004, migration005, migration006, - migration007 + migration007, + migration008 ]; \ No newline at end of file diff --git a/src/services/sqlite/migrations/runner.ts b/src/services/sqlite/migrations/runner.ts index 51c8a257..aff03d6e 100644 --- a/src/services/sqlite/migrations/runner.ts +++ b/src/services/sqlite/migrations/runner.ts @@ -34,6 +34,7 @@ export class MigrationRunner { this.addOnUpdateCascadeToForeignKeys(); this.addObservationContentHashColumn(); this.addSessionCustomTitleColumn(); + this.createObservationFeedbackTable(); } /** @@ -863,4 +864,31 @@ export class MigrationRunner { this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(23, new Date().toISOString()); } + + /** + * Create observation_feedback table for tracking observation usage signals. + * Foundation for tier routing optimization and future Thompson Sampling. + * Schema version 24. + */ + private createObservationFeedbackTable(): void { + const applied = this.db.query('SELECT 1 FROM schema_versions WHERE version = 24').get(); + if (applied) return; + + this.db.run(` + CREATE TABLE IF NOT EXISTS observation_feedback ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + observation_id INTEGER NOT NULL, + signal_type TEXT NOT NULL, + session_db_id INTEGER, + created_at_epoch INTEGER NOT NULL, + metadata TEXT, + FOREIGN KEY (observation_id) REFERENCES observations(id) ON DELETE CASCADE + ) + `); + this.db.run('CREATE INDEX IF NOT EXISTS idx_feedback_observation ON observation_feedback(observation_id)'); + this.db.run('CREATE INDEX IF NOT EXISTS idx_feedback_signal ON observation_feedback(signal_type)'); + + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(24, new Date().toISOString()); + logger.debug('DB', 'Created observation_feedback table for usage tracking'); + } } diff --git a/src/services/sync/ChromaSync.ts b/src/services/sync/ChromaSync.ts index a09ee9f0..9f3e01d1 100644 --- a/src/services/sync/ChromaSync.ts +++ b/src/services/sync/ChromaSync.ts @@ -283,11 +283,41 @@ export class ChromaSync { metadatas: cleanMetadatas }); } catch (error) { - logger.error('CHROMA_SYNC', 'Batch add failed, continuing with remaining batches', { - collection: this.collectionName, - batchStart: i, - batchSize: batch.length - }, error as Error); + const errMsg = error instanceof Error ? error.message : String(error); + // APPROVED OVERRIDE: Duplicate IDs from partial write before timeout/crash. + // chroma_update_documents only updates *existing* IDs — it silently ignores + // missing ones. So we delete-then-add to guarantee all IDs are written. + if (errMsg.includes('already exist')) { + try { + await chromaMcp.callTool('chroma_delete_documents', { + collection_name: this.collectionName, + ids: batch.map(d => d.id) + }); + await chromaMcp.callTool('chroma_add_documents', { + collection_name: this.collectionName, + ids: batch.map(d => d.id), + documents: batch.map(d => d.document), + metadatas: cleanMetadatas + }); + logger.info('CHROMA_SYNC', 'Batch reconciled via delete+add after duplicate conflict', { + collection: this.collectionName, + batchStart: i, + batchSize: batch.length + }); + } catch (reconcileError) { + logger.error('CHROMA_SYNC', 'Batch reconcile (delete+add) failed', { + collection: this.collectionName, + batchStart: i, + batchSize: batch.length + }, reconcileError as Error); + } + } else { + logger.error('CHROMA_SYNC', 'Batch add failed, continuing with remaining batches', { + collection: this.collectionName, + batchStart: i, + batchSize: batch.length + }, error as Error); + } } } diff --git a/src/services/transcripts/config.ts b/src/services/transcripts/config.ts index 7390e7ff..78c8e82d 100644 --- a/src/services/transcripts/config.ts +++ b/src/services/transcripts/config.ts @@ -8,7 +8,7 @@ export const DEFAULT_STATE_PATH = join(homedir(), '.claude-mem', 'transcript-wat const CODEX_SAMPLE_SCHEMA: TranscriptSchema = { name: 'codex', - version: '0.2', + version: '0.3', description: 'Schema for Codex session JSONL files under ~/.codex/sessions.', events: [ { @@ -46,13 +46,14 @@ const CODEX_SAMPLE_SCHEMA: TranscriptSchema = { }, { name: 'tool-use', - match: { path: 'payload.type', in: ['function_call', 'custom_tool_call', 'web_search_call'] }, + match: { path: 'payload.type', in: ['function_call', 'custom_tool_call', 'web_search_call', 'exec_command'] }, action: 'tool_use', fields: { toolId: 'payload.call_id', toolName: { coalesce: [ 'payload.name', + 'payload.type', { value: 'web_search' } ] }, @@ -60,6 +61,7 @@ const CODEX_SAMPLE_SCHEMA: TranscriptSchema = { coalesce: [ 'payload.arguments', 'payload.input', + 'payload.command', 'payload.action' ] } @@ -67,7 +69,7 @@ const CODEX_SAMPLE_SCHEMA: TranscriptSchema = { }, { name: 'tool-result', - match: { path: 'payload.type', in: ['function_call_output', 'custom_tool_call_output'] }, + match: { path: 'payload.type', in: ['function_call_output', 'custom_tool_call_output', 'exec_command_output'] }, action: 'tool_result', fields: { toolId: 'payload.call_id', @@ -76,7 +78,7 @@ const CODEX_SAMPLE_SCHEMA: TranscriptSchema = { }, { name: 'session-end', - match: { path: 'payload.type', equals: 'turn_aborted' }, + match: { path: 'payload.type', in: ['turn_aborted', 'turn_completed'] }, action: 'session_end' } ] diff --git a/src/services/worker-service.ts b/src/services/worker-service.ts index 3ca52f1e..43077394 100644 --- a/src/services/worker-service.ts +++ b/src/services/worker-service.ts @@ -101,6 +101,9 @@ import { updateCursorContextForProject, handleCursorCommand } from './integrations/CursorHooksInstaller.js'; +import { + handleGeminiCliCommand +} from './integrations/GeminiCliHooksInstaller.js'; // Service layer imports import { DatabaseManager } from './worker/DatabaseManager.js'; @@ -128,6 +131,10 @@ import { MemoryRoutes } from './worker/http/routes/MemoryRoutes.js'; // Process management for zombie cleanup (Issue #737) import { startOrphanReaper, reapOrphanedProcesses, getProcessBySession, ensureProcessExit } from './worker/ProcessRegistry.js'; +// Transcript watcher for external CLI session monitoring +import { TranscriptWatcher } from './transcripts/watcher.js'; +import { loadTranscriptWatchConfig, expandHomePath, DEFAULT_CONFIG_PATH as TRANSCRIPT_CONFIG_PATH } from './transcripts/config.js'; + /** * Build JSON status output for hook framework communication. * This is a pure function extracted for testability. @@ -189,6 +196,9 @@ export class WorkerService { // Stale session reaper interval (Issue #1168) private staleSessionReaperInterval: ReturnType | null = null; + // Transcript watcher for external CLI sessions (e.g. Codex, Gemini) + private transcriptWatcher: TranscriptWatcher | null = null; + // AI interaction tracking for health endpoint private lastAiInteraction: { timestamp: number; @@ -421,6 +431,22 @@ export class WorkerService { this.resolveInitialization(); logger.info('SYSTEM', 'Core initialization complete (DB + search ready)'); + // Auto-start transcript watchers if configured + if (existsSync(TRANSCRIPT_CONFIG_PATH)) { + try { + const transcriptConfig = loadTranscriptWatchConfig(TRANSCRIPT_CONFIG_PATH); + if (transcriptConfig.watches.length > 0) { + const transcriptStatePath = expandHomePath(transcriptConfig.stateFile ?? '~/.claude-mem/transcript-watch-state.json'); + this.transcriptWatcher = new TranscriptWatcher(transcriptConfig, transcriptStatePath); + await this.transcriptWatcher.start(); + logger.info('SYSTEM', `Transcript watcher started with ${transcriptConfig.watches.length} watch target(s)`); + } + } catch (transcriptError) { + logger.warn('SYSTEM', 'Failed to start transcript watcher (non-fatal)', {}, transcriptError as Error); + // Non-fatal — worker continues without transcript watching + } + } + // Auto-backfill Chroma for all projects if out of sync with SQLite (fire-and-forget) if (this.chromaMcpManager) { ChromaSync.backfillAllProjects().then(() => { @@ -922,6 +948,13 @@ export class WorkerService { this.staleSessionReaperInterval = null; } + // Stop transcript watcher + if (this.transcriptWatcher) { + this.transcriptWatcher.stop(); + this.transcriptWatcher = null; + logger.info('SYSTEM', 'Transcript watcher stopped'); + } + await performGracefulShutdown({ server: this.server.getHttpServer(), sessionManager: this.sessionManager, @@ -1174,14 +1207,21 @@ async function main() { break; } + case 'gemini-cli': { + const geminiSubcommand = process.argv[3]; + const geminiResult = await handleGeminiCliCommand(geminiSubcommand, process.argv.slice(4)); + process.exit(geminiResult); + break; + } + case 'hook': { // Validate CLI args first (before any I/O) const platform = process.argv[3]; const event = process.argv[4]; if (!platform || !event) { console.error('Usage: claude-mem hook '); - console.error('Platforms: claude-code, cursor, raw'); - console.error('Events: context, session-init, observation, summarize, session-complete'); + console.error('Platforms: claude-code, cursor, gemini-cli, raw'); + console.error('Events: context, session-init, observation, summarize, session-complete, user-message'); process.exit(1); } diff --git a/src/services/worker-types.ts b/src/services/worker-types.ts index c4fd89eb..5962bfa4 100644 --- a/src/services/worker-types.ts +++ b/src/services/worker-types.ts @@ -40,6 +40,8 @@ export interface ActiveSession { // CLAIM-CONFIRM FIX: Track IDs of messages currently being processed // These IDs will be confirmed (deleted) after successful storage processingMessageIds: number[]; + // Tier routing: model override per session based on queue complexity + modelOverride?: string; } export interface PendingMessage { diff --git a/src/services/worker/SDKAgent.ts b/src/services/worker/SDKAgent.ts index 2af48068..5a9b5866 100644 --- a/src/services/worker/SDKAgent.ts +++ b/src/services/worker/SDKAgent.ts @@ -49,8 +49,8 @@ export class SDKAgent { // Find Claude executable const claudePath = this.findClaudeExecutable(); - // Get model ID and disallowed tools - const modelId = this.getModelId(); + // Get model ID (tier routing override takes precedence) + const modelId = session.modelOverride || this.getModelId(); // Memory agent is OBSERVER ONLY - no tools allowed const disallowedTools = [ 'Bash', // Prevent infinite loops diff --git a/src/services/worker/agents/ResponseProcessor.ts b/src/services/worker/agents/ResponseProcessor.ts index 8573ea8f..9a059ce6 100644 --- a/src/services/worker/agents/ResponseProcessor.ts +++ b/src/services/worker/agents/ResponseProcessor.ts @@ -68,6 +68,19 @@ export async function processAgentResponse( const observations = parseObservations(text, session.contentSessionId); const summary = parseSummary(text, session.sessionDbId); + if ( + text.trim() && + observations.length === 0 && + !summary && + !/|| 200 ? `${text.slice(0, 200)}...` : text; + logger.warn('PARSER', `${agentName} returned non-XML response; observation content was discarded`, { + sessionId: session.sessionDbId, + preview + }); + } + // Convert nullable fields to empty strings for storeSummary (if summary exists) const summaryForStore = normalizeSummaryForStorage(summary); diff --git a/src/services/worker/http/routes/SearchRoutes.ts b/src/services/worker/http/routes/SearchRoutes.ts index 3cea0e24..2b947ed3 100644 --- a/src/services/worker/http/routes/SearchRoutes.ts +++ b/src/services/worker/http/routes/SearchRoutes.ts @@ -38,6 +38,7 @@ export class SearchRoutes extends BaseRouteHandler { app.get('/api/context/timeline', this.handleGetContextTimeline.bind(this)); app.get('/api/context/preview', this.handleContextPreview.bind(this)); app.get('/api/context/inject', this.handleContextInject.bind(this)); + app.post('/api/context/semantic', this.handleSemanticContext.bind(this)); // Timeline and help endpoints app.get('/api/timeline/by-query', this.handleGetTimelineByQuery.bind(this)); @@ -246,6 +247,54 @@ export class SearchRoutes extends BaseRouteHandler { res.send(contextText); }); + /** + * Semantic context search for per-prompt injection + * POST /api/context/semantic { q, project?, limit? } + * + * Queries Chroma for observations semantically similar to the user's prompt. + * Returns compact markdown for injection as additionalContext. + */ + private handleSemanticContext = this.wrapHandler(async (req: Request, res: Response): Promise => { + const query = (req.body?.q || req.query.q) as string; + const project = (req.body?.project || req.query.project) as string; + const limit = Math.min(Math.max(parseInt(String(req.body?.limit || req.query.limit || '5'), 10) || 5, 1), 20); + + if (!query || query.length < 20) { + res.json({ context: '', count: 0 }); + return; + } + + try { + const result = await this.searchManager.search({ + query, + type: 'observations', + project, + limit: String(limit), + format: 'json' + }); + + const observations = (result as any)?.observations || []; + if (!observations.length) { + res.json({ context: '', count: 0 }); + return; + } + + // Format as compact markdown for context injection + const lines: string[] = ['## Relevant Past Work (semantic match)\n']; + for (const obs of observations.slice(0, limit)) { + const date = obs.created_at?.slice(0, 10) || ''; + lines.push(`### ${obs.title || 'Observation'} (${date})`); + if (obs.narrative) lines.push(obs.narrative); + lines.push(''); + } + + res.json({ context: lines.join('\n'), count: observations.length }); + } catch (error) { + logger.error('SEARCH', 'Semantic context query failed', {}, error as Error); + res.json({ context: '', count: 0 }); + } + }); + /** * Get timeline by query (search first, then get timeline around best match) * GET /api/timeline/by-query?query=...&mode=auto&depth_before=10&depth_after=10 diff --git a/src/services/worker/http/routes/SessionRoutes.ts b/src/services/worker/http/routes/SessionRoutes.ts index 2bbe8f0e..9db84dc2 100644 --- a/src/services/worker/http/routes/SessionRoutes.ts +++ b/src/services/worker/http/routes/SessionRoutes.ts @@ -106,6 +106,8 @@ export class SessionRoutes extends BaseRouteHandler { // Start generator if not running if (!session.generatorPromise) { + // Apply tier routing before starting the generator + this.applyTierRouting(session); this.spawnInProgress.set(sessionDbId, true); this.startGeneratorWithProvider(session, selectedProvider, source); return; @@ -126,6 +128,7 @@ export class SessionRoutes extends BaseRouteHandler { session.abortController = new AbortController(); session.lastGeneratorActivity = Date.now(); // Start a fresh generator + this.applyTierRouting(session); this.spawnInProgress.set(sessionDbId, true); this.startGeneratorWithProvider(session, selectedProvider, 'stale-recovery'); return; @@ -283,6 +286,7 @@ export class SessionRoutes extends BaseRouteHandler { this.crashRecoveryScheduled.delete(sessionDbId); const stillExists = this.sessionManager.getSession(sessionDbId); if (stillExists && !stillExists.generatorPromise) { + this.applyTierRouting(stillExists); this.startGeneratorWithProvider(stillExists, this.getSelectedProvider(), 'crash-recovery'); } }, backoffMs); @@ -321,6 +325,7 @@ export class SessionRoutes extends BaseRouteHandler { app.post('/api/sessions/observations', this.handleObservationsByClaudeId.bind(this)); app.post('/api/sessions/summarize', this.handleSummarizeByClaudeId.bind(this)); app.post('/api/sessions/complete', this.handleCompleteByClaudeId.bind(this)); + app.get('/api/sessions/status', this.handleStatusByClaudeId.bind(this)); } /** @@ -631,6 +636,39 @@ export class SessionRoutes extends BaseRouteHandler { res.json({ status: 'queued' }); }); + /** + * Get session status by contentSessionId (summarize handler polls this) + * GET /api/sessions/status?contentSessionId=... + * + * Returns queue depth so the Stop hook can wait for summary completion. + */ + private handleStatusByClaudeId = this.wrapHandler((req: Request, res: Response): void => { + const contentSessionId = req.query.contentSessionId as string; + + if (!contentSessionId) { + return this.badRequest(res, 'Missing contentSessionId query parameter'); + } + + const store = this.dbManager.getSessionStore(); + const sessionDbId = store.createSDKSession(contentSessionId, '', ''); + const session = this.sessionManager.getSession(sessionDbId); + + if (!session) { + res.json({ status: 'not_found', queueLength: 0 }); + return; + } + + const pendingStore = this.sessionManager.getPendingMessageStore(); + const queueLength = pendingStore.getPendingCount(sessionDbId); + + res.json({ + status: 'active', + sessionDbId, + queueLength, + uptime: Date.now() - session.startTime + }); + }); + /** * Complete session by contentSessionId (session-complete hook uses this) * POST /api/sessions/complete @@ -669,6 +707,8 @@ export class SessionRoutes extends BaseRouteHandler { } // Complete the session (removes from active sessions map) + // Note: The Stop hook (summarize handler) waits for pending work before calling + // this endpoint. No polling here — that's the hook's responsibility. await this.completionHandler.completeByDbId(sessionDbId); logger.info('SESSION', 'Session completed via API', { @@ -777,4 +817,60 @@ export class SessionRoutes extends BaseRouteHandler { contextInjected }); }); + + // Simple tool names that produce low-complexity observations + private static readonly SIMPLE_TOOLS = new Set([ + 'Read', 'Glob', 'Grep', 'LS', 'ListMcpResourcesTool' + ]); + + /** + * Apply tier routing: select model based on pending queue complexity. + * - Summarize in queue → summary model (e.g., Opus) + * - All simple tools → simple model (e.g., Haiku) + * - Otherwise → default model (no override) + */ + private applyTierRouting(session: NonNullable>): void { + const settings = SettingsDefaultsManager.loadFromFile(USER_SETTINGS_PATH); + if (settings.CLAUDE_MEM_TIER_ROUTING_ENABLED === 'false') { + session.modelOverride = undefined; + return; + } + + // Clear stale override before re-evaluating — prevents previous tier + // from persisting when queue composition changes between spawns. + session.modelOverride = undefined; + + const pendingStore = this.sessionManager.getPendingMessageStore(); + const pending = pendingStore.peekPendingTypes(session.sessionDbId); + + if (pending.length === 0) { + session.modelOverride = undefined; + return; + } + + const hasSummarize = pending.some(m => m.message_type === 'summarize'); + const allSimple = pending.every(m => + m.message_type === 'observation' && m.tool_name && SessionRoutes.SIMPLE_TOOLS.has(m.tool_name) + ); + + if (hasSummarize) { + const summaryModel = settings.CLAUDE_MEM_TIER_SUMMARY_MODEL; + if (summaryModel) { + session.modelOverride = summaryModel; + logger.debug('SESSION', `Tier routing: summary model`, { + sessionId: session.sessionDbId, model: summaryModel + }); + } + } else if (allSimple) { + const simpleModel = settings.CLAUDE_MEM_TIER_SIMPLE_MODEL; + if (simpleModel) { + session.modelOverride = simpleModel; + logger.debug('SESSION', `Tier routing: simple model`, { + sessionId: session.sessionDbId, model: simpleModel + }); + } + } else { + session.modelOverride = undefined; + } + } } diff --git a/src/services/worker/session/SessionCompletionHandler.ts b/src/services/worker/session/SessionCompletionHandler.ts index 405fe929..eaba24d1 100644 --- a/src/services/worker/session/SessionCompletionHandler.ts +++ b/src/services/worker/session/SessionCompletionHandler.ts @@ -24,9 +24,30 @@ export class SessionCompletionHandler { * Used by DELETE /api/sessions/:id and POST /api/sessions/:id/complete */ async completeByDbId(sessionDbId: number): Promise { - // Delete from session manager (aborts SDK agent) + // Delete from session manager (aborts SDK agent via SIGTERM) await this.sessionManager.deleteSession(sessionDbId); + // Drain orphaned pending messages left by SIGTERM. + // When deleteSession() aborts the generator, pending messages in the queue + // are never processed. Without drain, they stay in 'pending' status forever + // since no future generator will pick them up for a completed session. + // Note: this is best-effort — if a generator outlives the 30s SIGTERM timeout + // (SessionManager.deleteSession), it may enqueue messages after this drain. + // In practice this race is rare (zero orphans over 23 days, 3400+ observations). + try { + const pendingStore = this.sessionManager.getPendingMessageStore(); + const drainedCount = pendingStore.markAllSessionMessagesAbandoned(sessionDbId); + if (drainedCount > 0) { + logger.warn('SESSION', `Drained ${drainedCount} orphaned pending messages on session completion`, { + sessionId: sessionDbId, drainedCount + }); + } + } catch (e) { + logger.debug('SESSION', 'Failed to drain pending queue on session completion', { + sessionId: sessionDbId, error: e instanceof Error ? e.message : String(e) + }); + } + // Broadcast session completed event this.eventBroadcaster.broadcastSessionCompleted(sessionDbId); } diff --git a/src/shared/SettingsDefaultsManager.ts b/src/shared/SettingsDefaultsManager.ts index 923520ca..6d347f5a 100644 --- a/src/shared/SettingsDefaultsManager.ts +++ b/src/shared/SettingsDefaultsManager.ts @@ -54,6 +54,13 @@ export interface SettingsDefaults { // Exclusion Settings CLAUDE_MEM_EXCLUDED_PROJECTS: string; // Comma-separated glob patterns for excluded project paths CLAUDE_MEM_FOLDER_MD_EXCLUDE: string; // JSON array of folder paths to exclude from CLAUDE.md generation + // Semantic Context Injection (per-prompt via Chroma) + CLAUDE_MEM_SEMANTIC_INJECT: string; // 'true' | 'false' - inject relevant observations on each prompt + CLAUDE_MEM_SEMANTIC_INJECT_LIMIT: string; // Max observations to inject per prompt + // Tier Routing (model selection by queue complexity) + CLAUDE_MEM_TIER_ROUTING_ENABLED: string; // 'true' | 'false' - enable model tier routing + CLAUDE_MEM_TIER_SIMPLE_MODEL: string; // Tier alias or model ID for simple tool observations (Read, Glob, Grep) + CLAUDE_MEM_TIER_SUMMARY_MODEL: string; // Tier alias or model ID for session summaries // Chroma Vector Database Configuration CLAUDE_MEM_CHROMA_ENABLED: string; // 'true' | 'false' - set to 'false' for SQLite-only mode CLAUDE_MEM_CHROMA_MODE: string; // 'local' | 'remote' @@ -113,6 +120,13 @@ export class SettingsDefaultsManager { // Exclusion Settings CLAUDE_MEM_EXCLUDED_PROJECTS: '', // Comma-separated glob patterns for excluded project paths CLAUDE_MEM_FOLDER_MD_EXCLUDE: '[]', // JSON array of folder paths to exclude from CLAUDE.md generation + // Semantic Context Injection (per-prompt via Chroma vector search) + CLAUDE_MEM_SEMANTIC_INJECT: 'true', // Inject relevant past observations on every UserPromptSubmit + CLAUDE_MEM_SEMANTIC_INJECT_LIMIT: '5', // Top-N most relevant observations to inject per prompt + // Tier Routing (model selection by queue complexity) + CLAUDE_MEM_TIER_ROUTING_ENABLED: 'true', // Route observations to models by complexity + CLAUDE_MEM_TIER_SIMPLE_MODEL: 'haiku', // Portable tier alias — works across Direct API, Bedrock, Vertex, Azure (see #1463) + CLAUDE_MEM_TIER_SUMMARY_MODEL: '', // Empty = use default model for summaries // Chroma Vector Database Configuration CLAUDE_MEM_CHROMA_ENABLED: 'true', // Set to 'false' to disable Chroma and use SQLite-only search CLAUDE_MEM_CHROMA_MODE: 'local', // 'local' uses persistent chroma-mcp via uvx, 'remote' connects to existing server diff --git a/src/utils/context-injection.ts b/src/utils/context-injection.ts new file mode 100644 index 00000000..45a7a67f --- /dev/null +++ b/src/utils/context-injection.ts @@ -0,0 +1,68 @@ +/** + * Shared context injection utilities for claude-mem. + * + * Provides tag constants and a function to inject or update a + * section in any markdown file. Used by + * MCP integrations and OpenCode installer. + */ + +import path from 'path'; +import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs'; + +// ============================================================================ +// Tag Constants +// ============================================================================ + +export const CONTEXT_TAG_OPEN = ''; +export const CONTEXT_TAG_CLOSE = ''; + +// ============================================================================ +// Context Injection +// ============================================================================ + +/** + * Inject or update a section in a markdown file. + * Creates the file if it doesn't exist. Preserves content outside the tags. + * + * @param filePath - Absolute path to the target markdown file. + * @param contextContent - The content to place between the context tags. + * @param headerLine - Optional first line written when creating a new file + * (e.g. `"# Claude-Mem Memory Context"` for AGENTS.md). + */ +export function injectContextIntoMarkdownFile( + filePath: string, + contextContent: string, + headerLine?: string, +): void { + const parentDirectory = path.dirname(filePath); + mkdirSync(parentDirectory, { recursive: true }); + + const wrappedContent = `${CONTEXT_TAG_OPEN}\n${contextContent}\n${CONTEXT_TAG_CLOSE}`; + + if (existsSync(filePath)) { + let existingContent = readFileSync(filePath, 'utf-8'); + + const tagStartIndex = existingContent.indexOf(CONTEXT_TAG_OPEN); + const tagEndIndex = existingContent.indexOf(CONTEXT_TAG_CLOSE); + + if (tagStartIndex !== -1 && tagEndIndex !== -1) { + // Replace existing section + existingContent = + existingContent.slice(0, tagStartIndex) + + wrappedContent + + existingContent.slice(tagEndIndex + CONTEXT_TAG_CLOSE.length); + } else { + // Append section + existingContent = existingContent.trimEnd() + '\n\n' + wrappedContent + '\n'; + } + + writeFileSync(filePath, existingContent, 'utf-8'); + } else { + // Create new file + if (headerLine) { + writeFileSync(filePath, `${headerLine}\n\n${wrappedContent}\n`, 'utf-8'); + } else { + writeFileSync(filePath, wrappedContent + '\n', 'utf-8'); + } + } +} diff --git a/src/utils/json-utils.ts b/src/utils/json-utils.ts new file mode 100644 index 00000000..40b5b772 --- /dev/null +++ b/src/utils/json-utils.ts @@ -0,0 +1,27 @@ +/** + * Shared JSON file utilities for claude-mem. + * + * Provides safe read/write helpers used across the CLI and services. + */ + +import { existsSync, readFileSync } from 'fs'; +import { logger } from './logger.js'; + +/** + * Read a JSON file safely, returning a default value if the file + * does not exist. Throws on corrupt JSON to prevent silent data loss + * when callers merge and write back. + * + * @param filePath - Absolute path to the JSON file. + * @param defaultValue - Value returned when the file is missing. + * @returns The parsed JSON content, or `defaultValue` when file is missing. + * @throws {Error} When the file exists but contains invalid JSON. + */ +export function readJsonSafe(filePath: string, defaultValue: T): T { + if (!existsSync(filePath)) return defaultValue; + try { + return JSON.parse(readFileSync(filePath, 'utf-8')); + } catch (error) { + throw new Error(`Corrupt JSON file, refusing to overwrite: ${filePath}`); + } +} diff --git a/tests/context-injection.test.ts b/tests/context-injection.test.ts new file mode 100644 index 00000000..2e338994 --- /dev/null +++ b/tests/context-injection.test.ts @@ -0,0 +1,214 @@ +import { describe, it, expect, beforeEach, afterEach } from 'bun:test'; +import { mkdirSync, writeFileSync, readFileSync, existsSync, rmSync } from 'fs'; +import { join } from 'path'; +import { tmpdir } from 'os'; +import { + injectContextIntoMarkdownFile, + CONTEXT_TAG_OPEN, + CONTEXT_TAG_CLOSE, +} from '../src/utils/context-injection'; + +/** + * Tests for the shared context injection utility. + * + * injectContextIntoMarkdownFile is used by MCP integrations and OpenCode + * installer to inject or update a section in markdown files. + */ + +describe('Context Injection', () => { + let tempDir: string; + + beforeEach(() => { + tempDir = join(tmpdir(), `context-injection-test-${Date.now()}-${Math.random().toString(36).slice(2)}`); + mkdirSync(tempDir, { recursive: true }); + }); + + afterEach(() => { + try { + rmSync(tempDir, { recursive: true, force: true }); + } catch { + // Ignore cleanup errors + } + }); + + describe('tag constants', () => { + it('exports correct open and close tags', () => { + expect(CONTEXT_TAG_OPEN).toBe(''); + expect(CONTEXT_TAG_CLOSE).toBe(''); + }); + }); + + describe('inject into new file', () => { + it('creates a new file with context tags when file does not exist', () => { + const filePath = join(tempDir, 'CLAUDE.md'); + + injectContextIntoMarkdownFile(filePath, 'Hello world'); + + expect(existsSync(filePath)).toBe(true); + const content = readFileSync(filePath, 'utf-8'); + expect(content).toContain(CONTEXT_TAG_OPEN); + expect(content).toContain('Hello world'); + expect(content).toContain(CONTEXT_TAG_CLOSE); + }); + + it('creates parent directories if they do not exist', () => { + const filePath = join(tempDir, 'nested', 'deep', 'CLAUDE.md'); + + injectContextIntoMarkdownFile(filePath, 'test content'); + + expect(existsSync(filePath)).toBe(true); + }); + + it('writes content wrapped in context tags', () => { + const filePath = join(tempDir, 'CLAUDE.md'); + const contextContent = '# Recent Activity\n\nSome memory data here.'; + + injectContextIntoMarkdownFile(filePath, contextContent); + + const content = readFileSync(filePath, 'utf-8'); + const expected = `${CONTEXT_TAG_OPEN}\n${contextContent}\n${CONTEXT_TAG_CLOSE}\n`; + expect(content).toBe(expected); + }); + }); + + describe('headerLine support', () => { + it('prepends headerLine when creating a new file', () => { + const filePath = join(tempDir, 'AGENTS.md'); + const headerLine = '# Claude-Mem Memory Context'; + + injectContextIntoMarkdownFile(filePath, 'context data', headerLine); + + const content = readFileSync(filePath, 'utf-8'); + expect(content.startsWith(headerLine)).toBe(true); + expect(content).toContain(CONTEXT_TAG_OPEN); + expect(content).toContain('context data'); + }); + + it('places a blank line between headerLine and context tags', () => { + const filePath = join(tempDir, 'AGENTS.md'); + const headerLine = '# My Header'; + + injectContextIntoMarkdownFile(filePath, 'data', headerLine); + + const content = readFileSync(filePath, 'utf-8'); + expect(content).toBe(`${headerLine}\n\n${CONTEXT_TAG_OPEN}\ndata\n${CONTEXT_TAG_CLOSE}\n`); + }); + + it('does not use headerLine when file already exists', () => { + const filePath = join(tempDir, 'AGENTS.md'); + writeFileSync(filePath, '# Existing Content\n\nSome stuff.\n'); + + injectContextIntoMarkdownFile(filePath, 'new context', '# Should Not Appear'); + + const content = readFileSync(filePath, 'utf-8'); + expect(content).toContain('# Existing Content'); + expect(content).not.toContain('# Should Not Appear'); + expect(content).toContain('new context'); + }); + }); + + describe('replace existing context section', () => { + it('replaces content between existing context tags', () => { + const filePath = join(tempDir, 'CLAUDE.md'); + const initialContent = [ + '# Project Instructions', + '', + `${CONTEXT_TAG_OPEN}`, + 'Old context data', + `${CONTEXT_TAG_CLOSE}`, + '', + '## Other stuff', + ].join('\n'); + writeFileSync(filePath, initialContent); + + injectContextIntoMarkdownFile(filePath, 'New context data'); + + const content = readFileSync(filePath, 'utf-8'); + expect(content).toContain('New context data'); + expect(content).not.toContain('Old context data'); + expect(content).toContain('# Project Instructions'); + expect(content).toContain('## Other stuff'); + }); + + it('preserves content before and after the context section', () => { + const filePath = join(tempDir, 'CLAUDE.md'); + const before = '# Header\n\nSome instructions.\n\n'; + const after = '\n\n## Footer\n\nMore content.\n'; + const initialContent = `${before}${CONTEXT_TAG_OPEN}\nold\n${CONTEXT_TAG_CLOSE}${after}`; + writeFileSync(filePath, initialContent); + + injectContextIntoMarkdownFile(filePath, 'replaced'); + + const content = readFileSync(filePath, 'utf-8'); + expect(content).toContain('# Header'); + expect(content).toContain('Some instructions.'); + expect(content).toContain('## Footer'); + expect(content).toContain('More content.'); + expect(content).toContain('replaced'); + expect(content).not.toContain('old'); + }); + }); + + describe('append to existing file', () => { + it('appends context section to file without existing tags', () => { + const filePath = join(tempDir, 'CLAUDE.md'); + writeFileSync(filePath, '# My Project\n\nInstructions here.\n'); + + injectContextIntoMarkdownFile(filePath, 'appended context'); + + const content = readFileSync(filePath, 'utf-8'); + expect(content).toContain('# My Project'); + expect(content).toContain('Instructions here.'); + expect(content).toContain(CONTEXT_TAG_OPEN); + expect(content).toContain('appended context'); + expect(content).toContain(CONTEXT_TAG_CLOSE); + }); + + it('separates appended section with a blank line', () => { + const filePath = join(tempDir, 'CLAUDE.md'); + writeFileSync(filePath, '# Header'); + + injectContextIntoMarkdownFile(filePath, 'data'); + + const content = readFileSync(filePath, 'utf-8'); + // Should have double newline before the tag + expect(content).toContain(`# Header\n\n${CONTEXT_TAG_OPEN}`); + }); + + it('trims trailing whitespace before appending', () => { + const filePath = join(tempDir, 'CLAUDE.md'); + writeFileSync(filePath, '# Header\n\n\n \n'); + + injectContextIntoMarkdownFile(filePath, 'data'); + + const content = readFileSync(filePath, 'utf-8'); + // Should not have excessive whitespace before the tag + expect(content).toContain(`# Header\n\n${CONTEXT_TAG_OPEN}`); + }); + }); + + describe('idempotency', () => { + it('produces same result when called twice with same content', () => { + const filePath = join(tempDir, 'CLAUDE.md'); + + injectContextIntoMarkdownFile(filePath, 'stable content'); + const firstWrite = readFileSync(filePath, 'utf-8'); + + injectContextIntoMarkdownFile(filePath, 'stable content'); + const secondWrite = readFileSync(filePath, 'utf-8'); + + expect(secondWrite).toBe(firstWrite); + }); + + it('updates content when called with different data', () => { + const filePath = join(tempDir, 'CLAUDE.md'); + + injectContextIntoMarkdownFile(filePath, 'version 1'); + injectContextIntoMarkdownFile(filePath, 'version 2'); + + const content = readFileSync(filePath, 'utf-8'); + expect(content).toContain('version 2'); + expect(content).not.toContain('version 1'); + }); + }); +}); diff --git a/tests/infrastructure/health-monitor.test.ts b/tests/infrastructure/health-monitor.test.ts index f75c747d..f9b2b948 100644 --- a/tests/infrastructure/health-monitor.test.ts +++ b/tests/infrastructure/health-monitor.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect, beforeEach, afterEach, mock } from 'bun:test'; +import { describe, it, expect, beforeEach, afterEach, mock, spyOn } from 'bun:test'; +import net from 'net'; import { isPortInUse, waitForHealth, @@ -15,45 +16,73 @@ describe('HealthMonitor', () => { }); describe('isPortInUse', () => { - it('should return true for occupied port (health check succeeds)', async () => { - global.fetch = mock(() => Promise.resolve({ ok: true } as Response)); + // Note: Since we are on Linux (as per session_context), isPortInUse uses 'net' + // instead of 'fetch'. We need to mock 'net.createServer().listen()' + + it('should return true for occupied port (EADDRINUSE)', async () => { + // Create a specific mock for this test + const createServerMock = mock(() => ({ + once: mock((event: string, cb: Function) => { + if (event === 'error') { + // Trigger EADDRINUSE immediately + setTimeout(() => cb({ code: 'EADDRINUSE' }), 0); + } + }), + listen: mock(() => {}) + })); + + const spy = spyOn(net, 'createServer').mockImplementation(createServerMock as any); const result = await isPortInUse(37777); expect(result).toBe(true); - expect(global.fetch).toHaveBeenCalledWith('http://127.0.0.1:37777/api/health'); + expect(net.createServer).toHaveBeenCalled(); + + spy.mockRestore(); }); - it('should return false for free port (connection refused)', async () => { - global.fetch = mock(() => Promise.reject(new Error('ECONNREFUSED'))); + it('should return false for free port (listening succeeds)', async () => { + const closeMock = mock((cb: Function) => cb()); + const createServerMock = mock(() => ({ + once: mock((event: string, cb: Function) => { + if (event === 'listening') { + // Trigger listening success + setTimeout(() => cb(), 0); + } + }), + listen: mock(() => {}), + close: closeMock + })); + + const spy = spyOn(net, 'createServer').mockImplementation(createServerMock as any); const result = await isPortInUse(39999); expect(result).toBe(false); + expect(net.createServer).toHaveBeenCalled(); + expect(closeMock).toHaveBeenCalled(); + + spy.mockRestore(); }); - it('should return false when health check returns non-ok', async () => { - global.fetch = mock(() => Promise.resolve({ ok: false, status: 503 } as Response)); - - const result = await isPortInUse(37777); - - expect(result).toBe(false); - }); - - it('should return false on network timeout', async () => { - global.fetch = mock(() => Promise.reject(new Error('ETIMEDOUT'))); - - const result = await isPortInUse(37777); - - expect(result).toBe(false); - }); - - it('should return false on fetch failed error', async () => { - global.fetch = mock(() => Promise.reject(new Error('fetch failed'))); + it('should return false for other socket errors', async () => { + const createServerMock = mock(() => ({ + once: mock((event: string, cb: Function) => { + if (event === 'error') { + // Trigger other error (e.g., EACCES) + setTimeout(() => cb({ code: 'EACCES' }), 0); + } + }), + listen: mock(() => {}) + })); + + const spy = spyOn(net, 'createServer').mockImplementation(createServerMock as any); const result = await isPortInUse(37777); expect(result).toBe(false); + + spy.mockRestore(); }); }); @@ -203,54 +232,80 @@ describe('HealthMonitor', () => { describe('waitForPortFree', () => { it('should return true immediately when port is already free', async () => { - global.fetch = mock(() => Promise.reject(new Error('ECONNREFUSED'))); + const createServerMock = mock(() => ({ + once: mock((event: string, cb: Function) => { + if (event === 'listening') setTimeout(() => cb(), 0); + }), + listen: mock(() => {}), + close: mock((cb: Function) => cb()) + })); + const spy = spyOn(net, 'createServer').mockImplementation(createServerMock as any); const start = Date.now(); const result = await waitForPortFree(39999, 5000); const elapsed = Date.now() - start; expect(result).toBe(true); - // Should return quickly expect(elapsed).toBeLessThan(1000); + spy.mockRestore(); }); it('should timeout when port remains occupied', async () => { - global.fetch = mock(() => Promise.resolve({ ok: true } as Response)); + const createServerMock = mock(() => ({ + once: mock((event: string, cb: Function) => { + if (event === 'error') setTimeout(() => cb({ code: 'EADDRINUSE' }), 0); + }), + listen: mock(() => {}) + })); + const spy = spyOn(net, 'createServer').mockImplementation(createServerMock as any); const start = Date.now(); const result = await waitForPortFree(37777, 1500); const elapsed = Date.now() - start; expect(result).toBe(false); - // Should take close to timeout duration expect(elapsed).toBeGreaterThanOrEqual(1400); expect(elapsed).toBeLessThan(2500); + spy.mockRestore(); }); it('should succeed when port becomes free', async () => { let callCount = 0; - global.fetch = mock(() => { - callCount++; - // Port occupied for first 2 checks, then free - if (callCount < 3) { - return Promise.resolve({ ok: true } as Response); - } - return Promise.reject(new Error('ECONNREFUSED')); - }); + const spy = spyOn(net, 'createServer').mockImplementation(() => ({ + once: mock((event: string, cb: Function) => { + callCount++; + // Port occupied for first 2 checks, then free + if (callCount < 3) { + if (event === 'error') setTimeout(() => cb({ code: 'EADDRINUSE' }), 0); + } else { + if (event === 'listening') setTimeout(() => cb(), 0); + } + }), + listen: mock(() => {}), + close: mock((cb: Function) => cb()) + } as any)); const result = await waitForPortFree(37777, 5000); expect(result).toBe(true); expect(callCount).toBeGreaterThanOrEqual(3); + spy.mockRestore(); }); it('should use default timeout when not specified', async () => { - global.fetch = mock(() => Promise.reject(new Error('ECONNREFUSED'))); + const createServerMock = mock(() => ({ + once: mock((event: string, cb: Function) => { + if (event === 'listening') setTimeout(() => cb(), 0); + }), + listen: mock(() => {}), + close: mock((cb: Function) => cb()) + })); + const spy = spyOn(net, 'createServer').mockImplementation(createServerMock as any); - // Just verify it doesn't throw and returns quickly const result = await waitForPortFree(39999); expect(result).toBe(true); + spy.mockRestore(); }); }); }); diff --git a/tests/install-non-tty.test.ts b/tests/install-non-tty.test.ts new file mode 100644 index 00000000..fdaca866 --- /dev/null +++ b/tests/install-non-tty.test.ts @@ -0,0 +1,112 @@ +import { describe, it, expect } from 'bun:test'; +import { readFileSync } from 'fs'; +import { join } from 'path'; + +/** + * Tests for the non-TTY detection in the install command. + * + * The install command (src/npx-cli/commands/install.ts) has non-interactive + * fallbacks so it works in CI/CD, Docker, and piped environments where + * process.stdin.isTTY is undefined. + * + * Since isInteractive, runTasks, and log are not exported, we verify + * their presence and correctness via source inspection. This is a valid + * approach for testing private module-level constructs that can't be + * imported directly. + */ + +const installSourcePath = join( + __dirname, + '..', + 'src', + 'npx-cli', + 'commands', + 'install.ts', +); +const installSource = readFileSync(installSourcePath, 'utf-8'); + +describe('Install Non-TTY Support', () => { + describe('isInteractive flag', () => { + it('defines isInteractive based on process.stdin.isTTY', () => { + expect(installSource).toContain('const isInteractive = process.stdin.isTTY === true'); + }); + + it('uses strict equality (===) not truthy check for isTTY', () => { + // Ensures undefined isTTY is treated as false, not just falsy + const match = installSource.match(/const isInteractive = process\.stdin\.isTTY === true/); + expect(match).not.toBeNull(); + }); + }); + + describe('runTasks helper', () => { + it('defines a runTasks function', () => { + expect(installSource).toContain('async function runTasks'); + }); + + it('has interactive branch using p.tasks', () => { + expect(installSource).toContain('await p.tasks(tasks)'); + }); + + it('has non-interactive fallback using console.log', () => { + // In non-TTY mode, tasks iterate and log output directly + expect(installSource).toContain('console.log(` ${msg}`)'); + }); + + it('branches on isInteractive', () => { + expect(installSource).toContain('if (isInteractive)'); + }); + }); + + describe('log wrapper', () => { + it('defines log.info that falls back to console.log', () => { + expect(installSource).toContain('info: (msg: string) =>'); + // Should have console.log fallback + expect(installSource).toMatch(/info:.*console\.log/); + }); + + it('defines log.success that falls back to console.log', () => { + expect(installSource).toContain('success: (msg: string) =>'); + expect(installSource).toMatch(/success:.*console\.log/); + }); + + it('defines log.warn that falls back to console.warn', () => { + expect(installSource).toContain('warn: (msg: string) =>'); + expect(installSource).toMatch(/warn:.*console\.warn/); + }); + + it('defines log.error that falls back to console.error', () => { + expect(installSource).toContain('error: (msg: string) =>'); + expect(installSource).toMatch(/error:.*console\.error/); + }); + }); + + describe('non-interactive install path', () => { + it('defaults to claude-code when not interactive and no IDE specified', () => { + // The non-interactive path should have a fallback + expect(installSource).toContain("selectedIDEs = ['claude-code']"); + }); + + it('uses console.log for intro in non-interactive mode', () => { + expect(installSource).toContain("console.log('claude-mem install')"); + }); + + it('uses console.log for note/summary in non-interactive mode', () => { + expect(installSource).toContain("console.log(`\\n ${installStatus}`)"); + }); + }); + + describe('TaskDescriptor interface', () => { + it('defines a task interface with title and task function', () => { + expect(installSource).toContain('interface TaskDescriptor'); + expect(installSource).toContain('title: string'); + expect(installSource).toContain('task: (message: (msg: string) => void) => Promise'); + }); + }); + + describe('InstallOptions interface', () => { + it('exports InstallOptions with optional ide field', () => { + expect(installSource).toContain('export interface InstallOptions'); + expect(installSource).toContain('ide?: string'); + }); + }); +}); diff --git a/tests/json-utils.test.ts b/tests/json-utils.test.ts new file mode 100644 index 00000000..07625602 --- /dev/null +++ b/tests/json-utils.test.ts @@ -0,0 +1,127 @@ +import { describe, it, expect, beforeEach, afterEach } from 'bun:test'; +import { mkdirSync, writeFileSync, existsSync, rmSync } from 'fs'; +import { join } from 'path'; +import { tmpdir } from 'os'; +import { readJsonSafe } from '../src/utils/json-utils'; + +/** + * Tests for the shared JSON file utilities. + * + * readJsonSafe is used across the CLI and services to safely read JSON + * files with fallback to defaults when files are missing or corrupt. + */ + +describe('JSON Utils', () => { + let tempDir: string; + + beforeEach(() => { + tempDir = join(tmpdir(), `json-utils-test-${Date.now()}-${Math.random().toString(36).slice(2)}`); + mkdirSync(tempDir, { recursive: true }); + }); + + afterEach(() => { + try { + rmSync(tempDir, { recursive: true, force: true }); + } catch { + // Ignore cleanup errors + } + }); + + describe('readJsonSafe', () => { + it('returns default value when file does not exist', () => { + const nonExistentPath = join(tempDir, 'does-not-exist.json'); + + const result = readJsonSafe(nonExistentPath, { fallback: true }); + + expect(result).toEqual({ fallback: true }); + }); + + it('returns parsed content for valid JSON file', () => { + const filePath = join(tempDir, 'valid.json'); + const data = { name: 'test', count: 42, nested: { key: 'value' } }; + writeFileSync(filePath, JSON.stringify(data)); + + const result = readJsonSafe(filePath, {}); + + expect(result).toEqual(data); + }); + + it('throws on corrupt JSON file to prevent data loss', () => { + const filePath = join(tempDir, 'corrupt.json'); + writeFileSync(filePath, 'this is not valid json {{{'); + + expect(() => readJsonSafe(filePath, { recovered: true })).toThrow( + /Corrupt JSON file, refusing to overwrite/ + ); + }); + + it('throws on empty file to prevent data loss', () => { + const filePath = join(tempDir, 'empty.json'); + writeFileSync(filePath, ''); + + expect(() => readJsonSafe(filePath, [])).toThrow( + /Corrupt JSON file, refusing to overwrite/ + ); + }); + + it('works with array default values', () => { + const nonExistentPath = join(tempDir, 'missing.json'); + + const result = readJsonSafe(nonExistentPath, ['a', 'b']); + + expect(result).toEqual(['a', 'b']); + }); + + it('works with string default values', () => { + const nonExistentPath = join(tempDir, 'missing.json'); + + const result = readJsonSafe(nonExistentPath, 'default'); + + expect(result).toBe('default'); + }); + + it('works with number default values', () => { + const nonExistentPath = join(tempDir, 'missing.json'); + + const result = readJsonSafe(nonExistentPath, 0); + + expect(result).toBe(0); + }); + + it('reads JSON arrays correctly', () => { + const filePath = join(tempDir, 'array.json'); + writeFileSync(filePath, JSON.stringify([1, 2, 3])); + + const result = readJsonSafe(filePath, []); + + expect(result).toEqual([1, 2, 3]); + }); + + it('reads deeply nested JSON correctly', () => { + const filePath = join(tempDir, 'nested.json'); + const deepData = { + level1: { + level2: { + level3: { + value: 'deep', + }, + }, + }, + }; + writeFileSync(filePath, JSON.stringify(deepData)); + + const result = readJsonSafe(filePath, { level1: { level2: { level3: { value: '' } } } }); + + expect(result.level1.level2.level3.value).toBe('deep'); + }); + + it('handles JSON with trailing newline', () => { + const filePath = join(tempDir, 'trailing-newline.json'); + writeFileSync(filePath, JSON.stringify({ ok: true }) + '\n'); + + const result = readJsonSafe(filePath, {}); + + expect(result).toEqual({ ok: true }); + }); + }); +}); diff --git a/tests/mcp-integrations.test.ts b/tests/mcp-integrations.test.ts new file mode 100644 index 00000000..a3e68c06 --- /dev/null +++ b/tests/mcp-integrations.test.ts @@ -0,0 +1,304 @@ +import { describe, it, expect, beforeEach, afterEach } from 'bun:test'; +import { mkdirSync, writeFileSync, readFileSync, existsSync, rmSync } from 'fs'; +import { join } from 'path'; +import { tmpdir } from 'os'; + +/** + * Tests for the MCP integration factory utilities. + * + * Because McpIntegrations.ts uses `findMcpServerPath()` which checks specific + * filesystem paths, and the factory functions are not individually exported, + * we test the underlying helpers indirectly by exercising writeMcpJsonConfig + * and buildMcpServerEntry behavior through the readJsonSafe + JSON file writing + * patterns they use. + * + * We also verify the key behavioral contract: MCP entries use process.execPath. + */ + +import { readJsonSafe } from '../src/utils/json-utils'; +import { injectContextIntoMarkdownFile, CONTEXT_TAG_OPEN, CONTEXT_TAG_CLOSE } from '../src/utils/context-injection'; + +/** + * Reimplements the core logic of buildMcpServerEntry and writeMcpJsonConfig + * from McpIntegrations.ts for testability, since those functions are not exported. + * The tests verify the contract these functions must uphold. + */ +function buildMcpServerEntry(mcpServerPath: string): { command: string; args: string[] } { + return { + command: process.execPath, + args: [mcpServerPath], + }; +} + +function writeMcpJsonConfig( + configFilePath: string, + mcpServerPath: string, + serversKeyName: string = 'mcpServers', +): void { + const parentDirectory = join(configFilePath, '..'); + mkdirSync(parentDirectory, { recursive: true }); + + const existingConfig = readJsonSafe>(configFilePath, {}); + + if (!existingConfig[serversKeyName]) { + existingConfig[serversKeyName] = {}; + } + + existingConfig[serversKeyName]['claude-mem'] = buildMcpServerEntry(mcpServerPath); + + writeFileSync(configFilePath, JSON.stringify(existingConfig, null, 2) + '\n'); +} + +describe('MCP Integrations', () => { + let tempDir: string; + + beforeEach(() => { + tempDir = join(tmpdir(), `mcp-integrations-test-${Date.now()}-${Math.random().toString(36).slice(2)}`); + mkdirSync(tempDir, { recursive: true }); + }); + + afterEach(() => { + try { + rmSync(tempDir, { recursive: true, force: true }); + } catch { + // Ignore cleanup errors + } + }); + + describe('buildMcpServerEntry', () => { + it('uses process.execPath as the command, not "node"', () => { + const entry = buildMcpServerEntry('/path/to/mcp-server.cjs'); + + expect(entry.command).toBe(process.execPath); + expect(entry.command).not.toBe('node'); + }); + + it('passes the mcp server path as the sole argument', () => { + const serverPath = '/usr/local/lib/mcp-server.cjs'; + const entry = buildMcpServerEntry(serverPath); + + expect(entry.args).toEqual([serverPath]); + }); + + it('handles paths with spaces', () => { + const serverPath = '/path/to/my project/mcp-server.cjs'; + const entry = buildMcpServerEntry(serverPath); + + expect(entry.args).toEqual([serverPath]); + }); + }); + + describe('writeMcpJsonConfig', () => { + it('creates config file if it does not exist', () => { + const configPath = join(tempDir, '.config', 'ide', 'mcp.json'); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + expect(existsSync(configPath)).toBe(true); + }); + + it('creates parent directories if they do not exist', () => { + const configPath = join(tempDir, 'deep', 'nested', 'mcp.json'); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + expect(existsSync(join(tempDir, 'deep', 'nested'))).toBe(true); + }); + + it('writes valid JSON with claude-mem entry', () => { + const configPath = join(tempDir, 'mcp.json'); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + const content = readFileSync(configPath, 'utf-8'); + const config = JSON.parse(content); + expect(config.mcpServers).toBeDefined(); + expect(config.mcpServers['claude-mem']).toBeDefined(); + expect(config.mcpServers['claude-mem'].command).toBe(process.execPath); + expect(config.mcpServers['claude-mem'].args).toEqual(['/path/to/mcp.cjs']); + }); + + it('uses custom serversKeyName when provided', () => { + const configPath = join(tempDir, 'mcp.json'); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs', 'servers'); + + const config = JSON.parse(readFileSync(configPath, 'utf-8')); + expect(config.servers).toBeDefined(); + expect(config.servers['claude-mem']).toBeDefined(); + expect(config.mcpServers).toBeUndefined(); + }); + + it('preserves existing servers when adding claude-mem', () => { + const configPath = join(tempDir, 'mcp.json'); + const existingConfig = { + mcpServers: { + 'other-tool': { + command: 'python', + args: ['/path/to/other.py'], + }, + }, + }; + writeFileSync(configPath, JSON.stringify(existingConfig)); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + const config = JSON.parse(readFileSync(configPath, 'utf-8')); + expect(config.mcpServers['other-tool']).toBeDefined(); + expect(config.mcpServers['other-tool'].command).toBe('python'); + expect(config.mcpServers['claude-mem']).toBeDefined(); + }); + + it('preserves non-server keys in existing config', () => { + const configPath = join(tempDir, 'mcp.json'); + const existingConfig = { + version: 2, + settings: { theme: 'dark' }, + mcpServers: {}, + }; + writeFileSync(configPath, JSON.stringify(existingConfig)); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + const config = JSON.parse(readFileSync(configPath, 'utf-8')); + expect(config.version).toBe(2); + expect(config.settings).toEqual({ theme: 'dark' }); + expect(config.mcpServers['claude-mem']).toBeDefined(); + }); + }); + + describe('idempotency', () => { + it('running install twice does not create duplicate entries', () => { + const configPath = join(tempDir, 'mcp.json'); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + const config = JSON.parse(readFileSync(configPath, 'utf-8')); + const serverKeys = Object.keys(config.mcpServers); + const claudeMemEntries = serverKeys.filter((k) => k === 'claude-mem'); + expect(claudeMemEntries).toHaveLength(1); + }); + + it('updates the server path on re-install', () => { + const configPath = join(tempDir, 'mcp.json'); + + writeMcpJsonConfig(configPath, '/old/path/mcp.cjs'); + writeMcpJsonConfig(configPath, '/new/path/mcp.cjs'); + + const config = JSON.parse(readFileSync(configPath, 'utf-8')); + expect(config.mcpServers['claude-mem'].args).toEqual(['/new/path/mcp.cjs']); + }); + }); + + describe('corrupt file recovery', () => { + it('throws on corrupt JSON to prevent data loss', () => { + const configPath = join(tempDir, 'mcp.json'); + writeFileSync(configPath, 'not valid json {{{{'); + + expect(() => writeMcpJsonConfig(configPath, '/path/to/mcp.cjs')).toThrow( + /Corrupt JSON file, refusing to overwrite/ + ); + + // Original file should be untouched + expect(readFileSync(configPath, 'utf-8')).toBe('not valid json {{{{'); + }); + + it('throws on empty file to prevent data loss', () => { + const configPath = join(tempDir, 'mcp.json'); + writeFileSync(configPath, ''); + + expect(() => writeMcpJsonConfig(configPath, '/path/to/mcp.cjs')).toThrow( + /Corrupt JSON file, refusing to overwrite/ + ); + }); + + it('throws on file with only whitespace', () => { + const configPath = join(tempDir, 'mcp.json'); + writeFileSync(configPath, ' \n\n '); + + expect(() => writeMcpJsonConfig(configPath, '/path/to/mcp.cjs')).toThrow( + /Corrupt JSON file, refusing to overwrite/ + ); + }); + }); + + describe('merge with existing config', () => { + it('preserves other servers in mcpServers key', () => { + const configPath = join(tempDir, 'mcp.json'); + const existingConfig = { + mcpServers: { + 'server-a': { command: 'ruby', args: ['/a.rb'] }, + 'server-b': { command: 'node', args: ['/b.js'] }, + }, + }; + writeFileSync(configPath, JSON.stringify(existingConfig)); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + const config = JSON.parse(readFileSync(configPath, 'utf-8')); + expect(Object.keys(config.mcpServers)).toHaveLength(3); + expect(config.mcpServers['server-a'].command).toBe('ruby'); + expect(config.mcpServers['server-b'].command).toBe('node'); + expect(config.mcpServers['claude-mem'].command).toBe(process.execPath); + }); + + it('preserves other servers when using "servers" key', () => { + const configPath = join(tempDir, 'mcp.json'); + const existingConfig = { + servers: { + 'copilot-tool': { command: 'python', args: ['/tool.py'] }, + }, + }; + writeFileSync(configPath, JSON.stringify(existingConfig)); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs', 'servers'); + + const config = JSON.parse(readFileSync(configPath, 'utf-8')); + expect(config.servers['copilot-tool']).toBeDefined(); + expect(config.servers['claude-mem']).toBeDefined(); + }); + + it('handles config with mcpServers as empty object', () => { + const configPath = join(tempDir, 'mcp.json'); + writeFileSync(configPath, JSON.stringify({ mcpServers: {} })); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + const config = JSON.parse(readFileSync(configPath, 'utf-8')); + expect(config.mcpServers['claude-mem']).toBeDefined(); + }); + + it('handles config without the servers key at all', () => { + const configPath = join(tempDir, 'mcp.json'); + writeFileSync(configPath, JSON.stringify({ version: 1 })); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + const config = JSON.parse(readFileSync(configPath, 'utf-8')); + expect(config.version).toBe(1); + expect(config.mcpServers['claude-mem']).toBeDefined(); + }); + }); + + describe('output format', () => { + it('writes pretty-printed JSON with 2-space indent', () => { + const configPath = join(tempDir, 'mcp.json'); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + const content = readFileSync(configPath, 'utf-8'); + expect(content).toContain('\n'); + expect(content).toContain(' "mcpServers"'); + }); + + it('ends file with trailing newline', () => { + const configPath = join(tempDir, 'mcp.json'); + + writeMcpJsonConfig(configPath, '/path/to/mcp.cjs'); + + const content = readFileSync(configPath, 'utf-8'); + expect(content.endsWith('\n')).toBe(true); + }); + }); +}); diff --git a/tests/sdk/prompts.test.ts b/tests/sdk/prompts.test.ts new file mode 100644 index 00000000..b998f1fd --- /dev/null +++ b/tests/sdk/prompts.test.ts @@ -0,0 +1,20 @@ +import { describe, expect, it } from 'bun:test'; + +import { buildObservationPrompt } from '../../src/sdk/prompts.js'; + +describe('buildObservationPrompt', () => { + it('instructs the observer to avoid prose skip responses', () => { + const prompt = buildObservationPrompt({ + id: 1, + tool_name: 'exec_command', + tool_input: JSON.stringify({ cmd: 'pwd' }), + tool_output: JSON.stringify({ output: '/repo' }), + created_at_epoch: Date.now(), + cwd: '/repo', + }); + + expect(prompt).toContain('Return either one or more ... blocks, or an empty response'); + expect(prompt).toContain('Concrete debugging findings from logs, queue state, database rows, session routing, or code-path inspection'); + expect(prompt).toContain('Never reply with prose such as "Skipping", "No substantive tool executions"'); + }); +}); diff --git a/tests/worker/agents/response-processor.test.ts b/tests/worker/agents/response-processor.test.ts index a14f2ffc..1638bfdb 100644 --- a/tests/worker/agents/response-processor.test.ts +++ b/tests/worker/agents/response-processor.test.ts @@ -212,6 +212,36 @@ describe('ResponseProcessor', () => { }); }); + describe('non-XML observer responses', () => { + it('warns when the observer returns prose that will be discarded', async () => { + const session = createMockSession(); + const responseText = 'Skipping — repeated log scan with no new findings.'; + + await processAgentResponse( + responseText, + session, + mockDbManager, + mockSessionManager, + mockWorker, + 100, + null, + 'TestAgent' + ); + + expect(logger.warn).toHaveBeenCalledWith( + 'PARSER', + 'TestAgent returned non-XML response; observation content was discarded', + expect.objectContaining({ + sessionId: 1, + preview: responseText + }) + ); + const [, , observations, summary] = mockStoreObservations.mock.calls[0]; + expect(observations).toHaveLength(0); + expect(summary).toBeNull(); + }); + }); + describe('parsing summary from XML response', () => { it('should parse summary from response', async () => { const session = createMockSession();