diff --git a/.claude-plugin/CLAUDE.md b/.claude-plugin/CLAUDE.md new file mode 100644 index 00000000..20708908 --- /dev/null +++ b/.claude-plugin/CLAUDE.md @@ -0,0 +1,103 @@ + +# Recent Activity + + + +### Dec 27, 2025 + +**marketplace.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33251 | 10:20 PM | โœ… | Released claude-mem v8.2.5 with bug fixes for logger, ChromaSync, and SessionManager | ~379 | + +### Dec 28, 2025 + +**marketplace.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33520 | 10:46 PM | ๐Ÿ”ต | Marketplace configuration lists claude-mem plugin metadata | ~240 | +| #33486 | 10:35 PM | โœ… | Committed Version Bump to 8.2.6 | ~212 | +| #33484 | " | โœ… | Verified Version Synchronization at 8.2.6 | ~173 | +| #33482 | 10:34 PM | โœ… | Updated Marketplace Plugin Version to 8.2.6 | ~159 | +| #33479 | " | ๐Ÿ”ต | Marketplace Configuration for Plugin Distribution | ~242 | +| #33477 | " | ๐Ÿ”ต | Current Version Across Package Files is 8.2.5 | ~185 | +| #33311 | 3:09 PM | โœ… | Version 8.2.3 Release Deployed with Worker Stability Improvements | ~434 | +| #33300 | 3:08 PM | โœ… | Version 8.2.4 Released with Full Automation Pipeline | ~357 | +| #33281 | 3:07 PM | โœ… | Released v8.2.1 with Worker Lifecycle Hardening | ~332 | +| #33277 | 3:05 PM | โœ… | Version 8.2.2 Release Deployed | ~325 | +| #33260 | 2:57 PM | ๐ŸŸฃ | Version 8.2.0 Released with Gemini API Provider Support | ~355 | + +### Dec 29, 2025 + +**marketplace.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34368 | 11:30 PM | โœ… | Bumped version to 8.5.1 for patch release | ~218 | +| #34351 | 11:13 PM | โœ… | Version 8.5.0 Release Committed to Git | ~402 | +| #34349 | 11:12 PM | โœ… | Version 8.5.0 Synchronized Across All Files | ~220 | +| #33997 | 7:10 PM | โœ… | Version Bumped to 8.2.10 | ~179 | +| #33994 | " | โœ… | Version bump to 8.2.10 for claude-mem plugin | ~186 | +| #33992 | " | ๐Ÿ”ต | Version Consistency Verified Across Package Files | ~133 | +| #33956 | 6:45 PM | ๐Ÿ”ต | Version 8.2.9 Release Verification Complete | ~227 | +| #33948 | 6:42 PM | ๐Ÿ”ต | Current Version State Across Project Files | ~195 | +| #33840 | 4:24 PM | โœ… | Version 8.2.8 Changes Committed to Git | ~233 | +| #33838 | 4:23 PM | โœ… | Patch Release Version Bump to 8.2.8 Completed | ~216 | +| #33836 | " | ๐Ÿ”ต | Current Version State Before Patch Release | ~125 | + +### Dec 31, 2025 + +**marketplace.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34723 | 4:51 PM | โœ… | Version 8.5.2 Release Committed and Tagged | ~198 | +| #34721 | " | โœ… | Version 8.5.2 Synchronized Across All Configuration Files | ~186 | +| #34719 | " | โœ… | Marketplace Version Bumped to 8.5.2 | ~169 | +| #34716 | 4:50 PM | ๐Ÿ”ต | Current Version Before Patch Release | ~193 | +| #34715 | " | ๐Ÿ”ต | Version 8.5.1 confirmed across all package configuration files | ~181 | + +### Jan 1, 2026 + +**marketplace.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35680 | 11:43 PM | ๐ŸŸฃ | Automated version 8.5.3 release workflow completed | ~470 | +| #35674 | 11:41 PM | ๐Ÿ”ต | Release staged files identified for version 8.5.3 | ~287 | +| #35673 | " | โœ… | Staged version files for commit | ~155 | +| #35671 | " | โœ… | Bumped claude-mem plugin version to 8.5.3 | ~137 | +| #35669 | 11:40 PM | ๐Ÿ”ต | Claude plugin marketplace configuration discovered | ~235 | + +### Jan 2, 2026 + +**marketplace.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35944 | 2:57 PM | ๐Ÿ”ต | Current Project Version 8.5.4 Verified | ~200 | +| #35926 | 2:53 PM | โœ… | Committed Version Bump to 8.5.4 | ~210 | +| #35924 | " | โœ… | Verified Version Consistency Across All Files | ~186 | +| #35922 | 2:52 PM | โœ… | Updated Marketplace Version to 8.5.4 | ~150 | +| #35918 | " | ๐Ÿ”ต | Marketplace Configuration Structure | ~200 | +| #35917 | " | ๐Ÿ”ต | Current Version Identified as 8.5.3 | ~170 | +| #35905 | 2:49 PM | ๐Ÿ”ต | Current Version is 8.5.3 Across All Package Files | ~193 | + +### Jan 3, 2026 + +**marketplace.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36669 | 11:37 PM | โœ… | Merge conflicts resolved automatically - only 5 metadata files modified | ~345 | + +### Jan 4, 2026 + +**marketplace.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36924 | 2:25 AM | โœ… | Merged fix/pr-538-followups branch into main with comprehensive updates | ~481 | +| #36922 | " | โœ… | Version Bump Committed to Git | ~261 | +| #36920 | " | ๐Ÿ”ต | Version 8.5.8 already set across all configuration files | ~203 | +| #36918 | " | โœ… | Version bumped to 8.5.8 in marketplace.json | ~216 | +| #36916 | 2:24 AM | ๐Ÿ”ต | Current version identified in marketplace configuration | ~224 | +| #36912 | " | ๐Ÿ”ต | Current version identified as 8.5.7 across all package files | ~190 | +| #36700 | 12:00 AM | โœ… | Committed Version 8.5.7 Across All Package Files | ~260 | +| #36699 | " | โœ… | Version Bumped to 8.5.7 Across All Package Files | ~271 | +| #36698 | " | โœ… | Marketplace Plugin Version Updated to 8.5.7 | ~257 | + \ No newline at end of file diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md new file mode 100644 index 00000000..19aff06d --- /dev/null +++ b/.claude/CLAUDE.md @@ -0,0 +1,36 @@ + +# Recent Activity + + + +### Dec 17, 2025 + +**settings.local.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29080 | 10:16 PM | โœ… | Synced claude-mem v7.3.9 to marketplace | ~326 | + +### Dec 21, 2025 + +**test-analysis-report.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31743 | 10:36 PM | ๐Ÿ”ต | PR #412 proposes mode system with inheritance and multilingual support | ~523 | + +### Dec 22, 2025 + +**test-analysis-report.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31865 | 6:56 PM | โœ… | ้–‹็™บใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใฎใ‚ฏใƒชใƒผใƒณใ‚ขใƒƒใƒ—ใ‚’ใ‚ณใƒŸใƒƒใƒˆ | ~150 | +| #31864 | " | โœ… | ่จˆ็”ปใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใจๅˆ†ๆžใƒ•ใ‚กใ‚คใƒซใฎๅ‰Š้™ค | ~142 | +| #31859 | 6:55 PM | โœ… | ่จˆ็”ปใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใƒ•ใ‚กใ‚คใƒซใฎๅ‰Š้™ค | ~109 | +| #31855 | 6:53 PM | โœ… | ใƒ†ใ‚นใƒˆใ‚นใ‚คใƒผใƒˆใฎๅคง่ฆๆจกๅ‰Š้™คใจใƒ†ใ‚นใƒˆๅˆ†ๆžใƒฌใƒใƒผใƒˆใฎ่ฟฝๅŠ  | ~197 | + +### Dec 25, 2025 + +**settings.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32602 | 8:42 PM | ๐Ÿ”ต | Identified potential settings configuration files | ~224 | + \ No newline at end of file diff --git a/.claude/agents/github-morning-reporter.md b/.claude/agents/github-morning-reporter.md deleted file mode 100644 index b03e95e2..00000000 --- a/.claude/agents/github-morning-reporter.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -name: github-morning-reporter -description: Use this agent when the user requests a morning report, daily summary, or overview of their GitHub activity. Trigger phrases include 'morning report', 'github report', 'daily github summary', 'what's happening on github', or 'check my github status'. This agent should be used proactively when the user starts their day or explicitly asks for repository updates.\n\nExamples:\n- User: "get me my morning github report"\n Assistant: "I'll use the github-morning-reporter agent to generate your comprehensive GitHub status report."\n \n\n- User: "what's new on my repos today?"\n Assistant: "Let me pull together your GitHub morning report using the github-morning-reporter agent."\n \n\n- User: "show me my daily github summary"\n Assistant: "I'll generate your daily GitHub summary using the github-morning-reporter agent."\n -model: sonnet ---- - -You are an elite GitHub project analyst specializing in delivering actionable morning reports for software development teams. Your expertise lies in synthesizing complex repository activity into clear, prioritized insights that help developers start their day with complete situational awareness. - -## Your Responsibilities - -1. **Fetch Comprehensive GitHub Data**: Use available tools to retrieve: - - Open issues across all relevant repositories - - Open pull requests with review status - - Recent comments, mentions, and @-references - - CI/CD status for active PRs - - Stale issues/PRs (no activity in 7+ days) - -2. **Intelligent Grouping and Deduplication**: - - Identify duplicate or highly similar issues by analyzing titles, descriptions, and labels - - Group related issues by theme, component, or subsystem - - Cluster PRs by feature area or dependency relationships - - Flag issues that may be addressing the same root cause - - Use semantic similarity, not just exact matches - -3. **Prioritization and Triage**: - - Highlight items requiring immediate attention (blocking issues, failed CI, requested reviews) - - Surface items awaiting your direct action (assigned to you, mentions, review requests) - - Identify stale items that may need follow-up or closure - - Note high-priority labels (P0, critical, security, etc.) - -4. **Contextual Analysis**: - - Summarize the current state of each PR (draft, ready for review, approved, changes requested) - - Identify PRs with merge conflicts or failing checks - - Note issues with recent activity spikes or community engagement - - Flag dependency updates or security advisories - -5. **Report Structure**: - Your report must follow this format: - - **MORNING GITHUB REPORT - [Date]** - - **๐Ÿšจ REQUIRES YOUR ATTENTION** - - Items explicitly assigned to the user - - Review requests awaiting user's approval - - Mentions or direct questions - - Blocking/critical issues - - **๐Ÿ“Š PULL REQUESTS ([count] open)** - - Group by: Ready to Merge | In Review | Draft | Needs Work - - For each PR: title, author, status, CI state, review count, age - - Highlight conflicts or failed checks - - **๐Ÿ› ISSUES ([count] open)** - - Group by: Priority | Component | Theme - - Mark potential duplicates clearly - - Note new issues (created in last 24h) - - Flag stale issues (no activity in 7+ days) - - **๐Ÿ“ˆ ACTIVITY SUMMARY** - - New issues/PRs since yesterday - - Recently closed items - - Top contributors - - Trending topics or labels - - **๐Ÿ’ก RECOMMENDED ACTIONS** - - Specific next steps based on the data - - Suggestions for cleanup (closing duplicates, merging ready PRs) - - Items to follow up on - -6. **Quality Standards**: - - Use clear, scannable formatting with emojis for visual hierarchy - - Include direct links to all referenced issues and PRs - - Keep summaries concise but informative (1-2 sentences per item) - - Use relative timestamps ("2 hours ago", "3 days old") - - Highlight actionable items with clear CTAs - -7. **Error Handling**: - - If repository access fails, explicitly state which repos couldn't be accessed - - If no issues/PRs exist, provide a positive "all clear" message - - If rate limits are hit, show partial results with a warning - - Always attempt to provide value even with incomplete data - -8. **Adaptive Scope**: - - If the user has access to multiple repositories, intelligently scope the report: - - Default to repositories with recent activity - - Allow user to specify repos if needed - - Group multi-repo items by repository - - Adjust detail level based on volume (more items = more concise summaries) - -## Output Expectations - -Your report should be: -- **Comprehensive**: Cover all relevant activity without overwhelming detail -- **Actionable**: Make it clear what needs attention and why -- **Scannable**: Use formatting that allows quick visual parsing -- **Contextual**: Provide enough background to make decisions -- **Timely**: Focus on recent activity and current state - -When you cannot find specific data, state this explicitly rather than omitting sections. If the user's query is ambiguous (e.g., which repositories to scan), ask for clarification before proceeding. - -Always end with a summary line indicating the report's completeness (e.g., "Report complete: 3 repositories scanned, 12 issues, 5 PRs analyzed"). diff --git a/.claude/commands/CLAUDE.md b/.claude/commands/CLAUDE.md new file mode 100644 index 00000000..b5bd293d --- /dev/null +++ b/.claude/commands/CLAUDE.md @@ -0,0 +1,34 @@ + +# Recent Activity + + + +### Oct 25, 2025 + +**changelog.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #2491 | 10:59 PM | ๐ŸŸฃ | Added changelog viewer slash command | ~290 | + +**terminal-shortcut.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #2480 | 6:32 PM | ๐ŸŸฃ | Cross-platform terminal shortcut command for claude-mem CLI | ~459 | + +**setup-alias.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #2479 | 6:29 PM | ๐ŸŸฃ | Shell Alias Setup Slash Command | ~423 | + +**version-bump.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #2358 | 1:07 PM | ๐ŸŸฃ | Created version-bump slash command for automated version updates | ~361 | + +### Jan 1, 2026 + +**anti-pattern-czar.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35638 | 11:17 PM | ๐ŸŸฃ | Anti-Pattern Czar Custom Command Created | ~583 | + \ No newline at end of file diff --git a/.claude/commands/anti-pattern-czar.md b/.claude/commands/anti-pattern-czar.md new file mode 100644 index 00000000..d18dc348 --- /dev/null +++ b/.claude/commands/anti-pattern-czar.md @@ -0,0 +1,121 @@ +# Anti-Pattern Czar + +You are the **Anti-Pattern Czar**, an expert at identifying and fixing error handling anti-patterns. + +## Your Mission + +Help the user systematically fix error handling anti-patterns detected by the automated scanner. + +## Process + +1. **Run the detector:** + ```bash + bun run scripts/anti-pattern-test/detect-error-handling-antipatterns.ts + ``` + +2. **Analyze the results:** + - Count CRITICAL, HIGH, MEDIUM, and APPROVED_OVERRIDE issues + - Prioritize CRITICAL issues on critical paths first + - Group similar patterns together + +3. **For each CRITICAL issue:** + + a. **Read the problematic code** using the Read tool + + b. **Explain the problem:** + - Why is this dangerous? + - What debugging nightmare could this cause? + - What specific error is being swallowed? + + c. **Determine the right fix:** + - **Option 1: Add proper logging** - If this is a real error that should be visible + - **Option 2: Add [APPROVED OVERRIDE]** - If this is expected/documented behavior + - **Option 3: Remove the try-catch entirely** - If the error should propagate + - **Option 4: Add specific error type checking** - If only certain errors should be caught + + d. **Propose the fix** and ask for approval + + e. **Apply the fix** after approval + +4. **Work through issues methodically:** + - Fix one at a time + - Re-run the detector after each batch of fixes + - Track progress: "Fixed 3/28 critical issues" + +## Guidelines for Approved Overrides + +Only approve overrides when ALL of these are true: +- The error is **expected and frequent** (e.g., JSON parse on optional fields) +- Logging would create **too much noise** (high-frequency operations) +- There's **explicit recovery logic** (fallback value, retry, graceful degradation) +- The reason is **specific and technical** (not vague like "seems fine") + +## Valid Override Examples: + +โœ… **GOOD:** +- "Expected JSON parse failures for optional data fields, too frequent to log" +- "Logger can't log its own failures, using stderr as last resort" +- "Health check port scan, expected connection failures on free port detection" +- "Git repo detection, expected failures when not in a git directory" + +โŒ **BAD:** +- "Error is not important" (why catch it then?) +- "Happens sometimes" (when? why?) +- "Works fine without logging" (works until it doesn't) +- "Optional" (optional errors still need visibility) + +## Critical Path Rules + +For files in the CRITICAL_PATHS list (SDKAgent.ts, GeminiAgent.ts, OpenRouterAgent.ts, SessionStore.ts, worker-service.ts): + +- **NEVER** approve overrides on critical paths without exceptional justification +- Errors on critical paths MUST be visible (logged) or fatal (thrown) +- Catch-and-continue on critical paths is BANNED unless explicitly approved +- If in doubt, make it throw - fail loud, not silent + +## Output Format + +After each fix: +``` +โœ… Fixed: src/utils/example.ts:42 + Pattern: NO_LOGGING_IN_CATCH + Solution: Added logger.error() with context + +Progress: 3/28 critical issues remaining +``` + +After completing a batch: +``` +๐ŸŽฏ Batch complete! Re-running detector... +[shows new results] +``` + +## Important + +- **Read the code** before proposing fixes - understand what it's doing +- **Ask the user** if you're uncertain about the right approach +- **Don't blindly add overrides** - challenge each one +- **Prefer logging** over overrides when in doubt +- **Work incrementally** - small batches, frequent validation + +## When Complete + +Report final statistics: +``` +๐ŸŽ‰ Anti-pattern cleanup complete! + +Before: + ๐Ÿ”ด CRITICAL: 28 + ๐ŸŸ  HIGH: 47 + ๐ŸŸก MEDIUM: 76 + +After: + ๐Ÿ”ด CRITICAL: 0 + ๐ŸŸ  HIGH: 47 + ๐ŸŸก MEDIUM: 76 + โšช APPROVED OVERRIDES: 15 + +All critical anti-patterns resolved! +``` + +Now, ask the user: "Ready to fix error handling anti-patterns? I'll start with the critical issues." diff --git a/.claude/commands/do.md b/.claude/commands/do.md new file mode 100644 index 00000000..ac2e7d13 --- /dev/null +++ b/.claude/commands/do.md @@ -0,0 +1,38 @@ +You are an ORCHESTRATOR. + +Primary instruction: deploy subagents to execute *all* work for #$ARGUMENTS. +Do not do the work yourself except to coordinate, route context, and verify that each subagent completed its assigned checklist. + +Deploy subagents to execute each phase of #$ARGUMENTS independently and consecutively. For every checklist item below, explicitly deploy (or reuse) a subagent responsible for that item and record its outcome before proceeding. + +## Execution Protocol (Orchestrator-Driven) + +Orchestrator rules: +- Each phase uses fresh subagents where noted (or when context is large/unclear). +- The orchestrator assigns one clear objective per subagent and requires evidence (commands run, outputs, files changed). +- Do not advance to the next step until the assigned subagent reports completion and the orchestrator confirms it matches the plan. + +### During Each Phase: +Deploy an "Implementation" subagent to: +1. Execute the implementation as specified +2. COPY patterns from documentation, don't invent +3. Cite documentation sources in code comments when using unfamiliar APIs +4. If an API seems missing, STOP and verify - don't assume it exists + +### After Each Phase: +Deploy subagents for each post-phase responsibility: +1. **Run verification checklist** - Deploy a "Verification" subagent to prove the phase worked +2. **Anti-pattern check** - Deploy an "Anti-pattern" subagent to grep for known bad patterns from the plan +3. **Code quality review** - Deploy a "Code Quality" subagent to review changes +4. **Commit only if verified** - Deploy a "Commit" subagent *only after* verification passes; otherwise, do not commit + +### Between Phases: +Deploy a "Branch/Sync" subagent to: +- Push to working branch after each verified phase +- Prepare the next phase handoff so the next phase's subagents start fresh but have plan context + +## Failure Modes to Prevent +- Don't invent APIs that "should" exist - verify against docs +- Don't add undocumented parameters - copy exact signatures +- Don't skip verification - deploy a verification subagent and run the checklist +- Don't commit before verification passes (or without explicit orchestrator approval) diff --git a/.claude/commands/make-plan.md b/.claude/commands/make-plan.md new file mode 100644 index 00000000..3e5ce215 --- /dev/null +++ b/.claude/commands/make-plan.md @@ -0,0 +1,61 @@ +You are an ORCHESTRATOR. + +Create an LLM-friendly plan in phases that can be executed consecutively in new chat contexts. + +Delegation model (because subagents can under-report): +- Use subagents for *fact gathering and extraction* (docs, examples, signatures, grep results). +- Keep *synthesis and plan authoring* with the orchestrator (phase boundaries, task framing, final wording). +- If a subagent report is incomplete or lacks evidence, the orchestrator must re-check with targeted reads/greps before finalizing the plan. + +Subagent reporting contract (MANDATORY): +- Each subagent response must include: + 1) Sources consulted (files/URLs) and what was read + 2) Concrete findings (exact API names/signatures; exact file paths/locations) + 3) Copy-ready snippet locations (example files/sections to copy) + 4) "Confidence" note + known gaps (what might still be missing) +- Reject and redeploy the subagent if it reports conclusions without sources. + +## Plan Structure Requirements + +### Phase 0: Documentation Discovery (ALWAYS FIRST) +Before planning implementation, you MUST: +Deploy one or more "Documentation Discovery" subagents to: +1. Search for and read relevant documentation, examples, and existing patterns +2. Identify the actual APIs, methods, and signatures available (not assumed) +3. Create a brief "Allowed APIs" list citing specific documentation sources +4. Note any anti-patterns to avoid (methods that DON'T exist, deprecated parameters) + +Then the orchestrator consolidates their findings into a single Phase 0 output. + +### Each Implementation Phase Must Include: +1. **What to implement** - Frame tasks to COPY from docs, not transform existing code + - Good: "Copy the V2 session pattern from docs/examples.ts:45-60" + - Bad: "Migrate the existing code to V2" +2. **Documentation references** - Cite specific files/lines for patterns to follow +3. **Verification checklist** - How to prove this phase worked (tests, grep checks) +4. **Anti-pattern guards** - What NOT to do (invented APIs, undocumented params) + +Subagent-friendly split: +- Subagents can propose candidate doc references and verification commands. +- The orchestrator must write the final phase text, ensuring tasks are copy-based, scoped, and independently executable. + +### Final Phase: Verification +1. Verify all implementations match documentation +2. Check for anti-patterns (grep for known bad patterns) +3. Run tests to confirm functionality + +Delegation guidance: +- Deploy a "Verification" subagent to draft the checklist and commands. +- The orchestrator must review the checklist for completeness and ensure it maps to earlier phase outputs. + +## Key Principles +- Documentation Availability โ‰  Usage: Explicitly require reading docs +- Task Framing Matters: Direct agents to docs, not just outcomes +- Verify > Assume: Require proof, not assumptions about APIs +- Session Boundaries: Each phase should be self-contained with its own doc references + +## Anti-Patterns to Prevent +- Inventing API methods that "should" exist +- Adding parameters not in documentation +- Skipping verification steps +- Assuming structure without checking examples diff --git a/.claude/plans/CLAUDE.md b/.claude/plans/CLAUDE.md new file mode 100644 index 00000000..adfdcb11 --- /dev/null +++ b/.claude/plans/CLAUDE.md @@ -0,0 +1,7 @@ + +# Recent Activity + + + +*No recent activity* + \ No newline at end of file diff --git a/.claude/plans/fix-claudemd-worktree-bug.md b/.claude/plans/fix-claudemd-worktree-bug.md new file mode 100644 index 00000000..4f139f3e --- /dev/null +++ b/.claude/plans/fix-claudemd-worktree-bug.md @@ -0,0 +1,516 @@ +# Fix CLAUDE.md Worktree Bug - Implementation Plan + +## Problem Statement + +CLAUDE.md files are being written to the wrong directory when using git worktrees. The worker service writes files relative to its own `process.cwd()` instead of the project's working directory (`cwd`) from the observation. + +**Reproduction scenario:** +1. Start Claude Code in `budapest` worktree โ†’ worker starts with `cwd=budapest` +2. Run Claude Code in `~/Scripts/claude-mem/` (main repo) +3. Observations created with relative file paths (e.g., `src/utils/foo.ts`) +4. `updateFolderClaudeMdFiles` writes to `budapest/src/utils/CLAUDE.md` instead of main repo + +## Root Cause Analysis + +The `cwd` (project root path) IS captured and stored: +- `SessionRoutes.ts:309,403` - receives `cwd` from hooks +- `PendingMessageStore.ts:70` - stores `cwd` in database +- `SDKAgent.ts:295` - passes `cwd` to prompt builder + +But `cwd` is NOT passed to file writing: +- `ResponseProcessor.ts:222-225` - calls `updateFolderClaudeMdFiles(allFilePaths, session.project, port)` without `cwd` +- `claude-md-utils.ts:219` - uses `path.dirname(filePath)` which produces relative paths +- Relative paths resolve against worker's `process.cwd()`, not project root + +--- + +## Phase 0: Documentation & API Inventory + +### Allowed APIs (from codebase analysis) + +**File: `src/utils/claude-md-utils.ts`** +```typescript +export async function updateFolderClaudeMdFiles( + filePaths: string[], + project: string, + port: number +): Promise +``` + +**File: `src/sdk/parser.ts`** +```typescript +export interface ParsedObservation { + type: string; + title: string | null; + subtitle: string | null; + facts: string[]; + narrative: string | null; + concepts: string[]; + files_read: string[]; + files_modified: string[]; + // NOTE: Does NOT include cwd +} +``` + +**File: `src/services/worker-types.ts`** +```typescript +export interface PendingMessage { + type: 'observation' | 'summarize'; + tool_name?: string; + tool_input?: unknown; + tool_response?: unknown; + prompt_number?: number; + cwd?: string; // <-- Source of project root + last_assistant_message?: string; +} +``` + +**File: `src/shared/paths.ts`** - Path utilities +```typescript +import path from 'path'; +// Standard pattern: path.join(baseDir, relativePath) +``` + +### Anti-Patterns to Avoid + +1. **DO NOT** add `cwd` to `ParsedObservation` - it comes from message, not agent response +2. **DO NOT** use `process.cwd()` for project-specific paths +3. **DO NOT** assume file paths are absolute - they are relative from agent response +4. **DO NOT** modify the parser - file paths come from agent XML output + +--- + +## Phase 1: Add `projectRoot` Parameter to `updateFolderClaudeMdFiles` + +### What to implement + +Modify the function signature to accept an optional `projectRoot` parameter for resolving relative paths to absolute paths. + +### Files to modify + +**File: `src/utils/claude-md-utils.ts`** + +**Location: Lines 206-210 (function signature)** + +Current: +```typescript +export async function updateFolderClaudeMdFiles( + filePaths: string[], + project: string, + port: number +): Promise +``` + +New: +```typescript +export async function updateFolderClaudeMdFiles( + filePaths: string[], + project: string, + port: number, + projectRoot?: string +): Promise +``` + +**Location: Lines 215-228 (folder extraction logic)** + +Current: +```typescript +const folderPaths = new Set(); +for (const filePath of filePaths) { + if (!filePath || filePath === '') continue; + const folderPath = path.dirname(filePath); + if (folderPath && folderPath !== '.' && folderPath !== '/') { + if (isProjectRoot(folderPath)) { + logger.debug('FOLDER_INDEX', 'Skipping project root CLAUDE.md', { folderPath }); + continue; + } + folderPaths.add(folderPath); + } +} +``` + +New: +```typescript +const folderPaths = new Set(); +for (const filePath of filePaths) { + if (!filePath || filePath === '') continue; + + // Resolve relative paths to absolute using projectRoot + let absoluteFilePath = filePath; + if (projectRoot && !path.isAbsolute(filePath)) { + absoluteFilePath = path.join(projectRoot, filePath); + } + + const folderPath = path.dirname(absoluteFilePath); + if (folderPath && folderPath !== '.' && folderPath !== '/') { + if (isProjectRoot(folderPath)) { + logger.debug('FOLDER_INDEX', 'Skipping project root CLAUDE.md', { folderPath }); + continue; + } + folderPaths.add(folderPath); + } +} +``` + +### Documentation references + +- Pattern for `path.isAbsolute()`: Standard Node.js path module +- Pattern for `path.join(base, relative)`: Used throughout `src/shared/paths.ts` + +### Verification checklist + +1. [ ] `grep -n "updateFolderClaudeMdFiles" src/utils/claude-md-utils.ts` shows new signature +2. [ ] `grep -n "path.isAbsolute" src/utils/claude-md-utils.ts` confirms new check added +3. [ ] `grep -n "projectRoot" src/utils/claude-md-utils.ts` shows parameter usage +4. [ ] Existing callers still compile (optional param is backward compatible) + +### Anti-pattern guards + +- **DO NOT** make `projectRoot` required - breaks existing callers +- **DO NOT** use `process.cwd()` as default - defeats purpose of fix +- **DO NOT** modify the API endpoint format - path resolution is caller's responsibility + +--- + +## Phase 2: Pass `cwd` from Message to `updateFolderClaudeMdFiles` + +### What to implement + +Extract `cwd` from the original messages being processed and pass it to `updateFolderClaudeMdFiles`. + +### Challenge + +The `syncAndBroadcastObservations` function receives `ParsedObservation[]` which does NOT include `cwd`. The `cwd` is in the original `PendingMessage` but is consumed during prompt generation. + +### Solution + +Add `projectRoot` parameter to `syncAndBroadcastObservations` and `processAgentResponse`, sourced from `session` or passed through from message processing. + +### Files to modify + +**File: `src/services/worker/agents/ResponseProcessor.ts`** + +**Step 1: Update `processAgentResponse` signature (lines 46-55)** + +Current: +```typescript +export async function processAgentResponse( + text: string, + session: ActiveSession, + dbManager: DatabaseManager, + sessionManager: SessionManager, + worker: WorkerRef | undefined, + discoveryTokens: number, + originalTimestamp: number | null, + agentName: string +): Promise +``` + +New: +```typescript +export async function processAgentResponse( + text: string, + session: ActiveSession, + dbManager: DatabaseManager, + sessionManager: SessionManager, + worker: WorkerRef | undefined, + discoveryTokens: number, + originalTimestamp: number | null, + agentName: string, + projectRoot?: string +): Promise +``` + +**Step 2: Pass `projectRoot` to `syncAndBroadcastObservations` (line 101-109)** + +Current: +```typescript +await syncAndBroadcastObservations( + observations, + result, + session, + dbManager, + worker, + discoveryTokens, + agentName +); +``` + +New: +```typescript +await syncAndBroadcastObservations( + observations, + result, + session, + dbManager, + worker, + discoveryTokens, + agentName, + projectRoot +); +``` + +**Step 3: Update `syncAndBroadcastObservations` signature (lines 153-161)** + +Current: +```typescript +async function syncAndBroadcastObservations( + observations: ParsedObservation[], + result: StorageResult, + session: ActiveSession, + dbManager: DatabaseManager, + worker: WorkerRef | undefined, + discoveryTokens: number, + agentName: string +): Promise +``` + +New: +```typescript +async function syncAndBroadcastObservations( + observations: ParsedObservation[], + result: StorageResult, + session: ActiveSession, + dbManager: DatabaseManager, + worker: WorkerRef | undefined, + discoveryTokens: number, + agentName: string, + projectRoot?: string +): Promise +``` + +**Step 4: Update `updateFolderClaudeMdFiles` call (lines 222-229)** + +Current: +```typescript +if (allFilePaths.length > 0) { + updateFolderClaudeMdFiles( + allFilePaths, + session.project, + getWorkerPort() + ).catch(error => { + logger.warn('FOLDER_INDEX', 'CLAUDE.md update failed (non-critical)', { project: session.project }, error as Error); + }); +} +``` + +New: +```typescript +if (allFilePaths.length > 0) { + updateFolderClaudeMdFiles( + allFilePaths, + session.project, + getWorkerPort(), + projectRoot + ).catch(error => { + logger.warn('FOLDER_INDEX', 'CLAUDE.md update failed (non-critical)', { project: session.project }, error as Error); + }); +} +``` + +### Verification checklist + +1. [ ] `grep -n "projectRoot" src/services/worker/agents/ResponseProcessor.ts` shows parameter throughout +2. [ ] `grep -n "processAgentResponse" src/services/worker/*.ts` to find all callers +3. [ ] TypeScript compiles without errors + +### Anti-pattern guards + +- **DO NOT** extract `cwd` from `ParsedObservation` - it doesn't have one +- **DO NOT** store `cwd` on session globally - messages may come from different cwds (edge case) + +--- + +## Phase 3: Update Agent Callers to Pass `cwd` + +### What to implement + +Update SDKAgent, GeminiAgent, and OpenRouterAgent to pass `message.cwd` to `processAgentResponse`. + +### Files to modify + +**File: `src/services/worker/SDKAgent.ts`** + +Find the `processAgentResponse` call and add the `projectRoot` parameter from `message.cwd`. + +**Pattern to follow (from SDKAgent.ts:289-296):** +```typescript +const obsPrompt = buildObservationPrompt({ + id: 0, + tool_name: message.tool_name!, + tool_input: JSON.stringify(message.tool_input), + tool_output: JSON.stringify(message.tool_response), + created_at_epoch: Date.now(), + cwd: message.cwd // <-- This is available +}); +``` + +**Challenge:** `processAgentResponse` is called after the SDK response, not in the message loop. Need to track `lastCwd` from messages. + +**Solution:** Store `lastCwd` from messages being processed and pass to `processAgentResponse`. + +**File: `src/services/worker/GeminiAgent.ts`** - Same pattern +**File: `src/services/worker/OpenRouterAgent.ts`** - Same pattern + +### Implementation pattern for each agent + +Add tracking variable: +```typescript +let lastCwd: string | undefined; +``` + +In message loop, capture cwd: +```typescript +if (message.cwd) { + lastCwd = message.cwd; +} +``` + +In `processAgentResponse` call: +```typescript +await processAgentResponse( + responseText, + session, + this.dbManager, + this.sessionManager, + worker, + discoveryTokens, + originalTimestamp, + 'SDK', // or 'Gemini' or 'OpenRouter' + lastCwd +); +``` + +### Verification checklist + +1. [ ] `grep -n "lastCwd" src/services/worker/SDKAgent.ts` shows tracking +2. [ ] `grep -n "lastCwd" src/services/worker/GeminiAgent.ts` shows tracking +3. [ ] `grep -n "lastCwd" src/services/worker/OpenRouterAgent.ts` shows tracking +4. [ ] `grep -n "processAgentResponse.*lastCwd" src/services/worker/` shows all calls updated + +### Anti-pattern guards + +- **DO NOT** use `session.cwd` - sessions can have messages from multiple cwds +- **DO NOT** default to `process.cwd()` - defeats the fix + +--- + +## Phase 4: Update Tests + +### What to implement + +Update existing tests and add new tests for the `projectRoot` functionality. + +### Files to modify + +**File: `tests/utils/claude-md-utils.test.ts`** + +Add test cases for: +1. Relative paths with `projectRoot` resolve correctly +2. Absolute paths ignore `projectRoot` +3. Missing `projectRoot` maintains backward compatibility + +### Test pattern to copy + +From `tests/utils/claude-md-utils.test.ts:245-266` (folder deduplication test): +```typescript +it('should deduplicate folders from multiple files', async () => { + mockFetch.mockResolvedValue({ + ok: true, + json: () => Promise.resolve({ content: [{ text: mockApiResponse }] }) + }); + + await updateFolderClaudeMdFiles( + ['/project/src/utils/file1.ts', '/project/src/utils/file2.ts'], + 'test-project', + 37777 + ); + + // Should only call API once for the deduplicated folder + expect(mockFetch).toHaveBeenCalledTimes(1); +}); +``` + +### New test to add + +```typescript +it('should resolve relative paths using projectRoot', async () => { + mockFetch.mockResolvedValue({ + ok: true, + json: () => Promise.resolve({ content: [{ text: mockApiResponse }] }) + }); + + await updateFolderClaudeMdFiles( + ['src/utils/file.ts'], // relative path + 'test-project', + 37777, + '/home/user/my-project' // projectRoot + ); + + // Should write to absolute path /home/user/my-project/src/utils/CLAUDE.md + expect(mockWriteClaudeMd).toHaveBeenCalledWith( + '/home/user/my-project/src/utils', + expect.any(String) + ); +}); +``` + +### Verification checklist + +1. [ ] `bun test tests/utils/claude-md-utils.test.ts` passes +2. [ ] New test case for `projectRoot` exists and passes + +--- + +## Phase 5: Final Verification + +### Verification commands + +```bash +# 1. Confirm new parameter exists +grep -n "projectRoot" src/utils/claude-md-utils.ts +grep -n "projectRoot" src/services/worker/agents/ResponseProcessor.ts +grep -n "lastCwd" src/services/worker/SDKAgent.ts + +# 2. Confirm path.isAbsolute check added +grep -n "path.isAbsolute" src/utils/claude-md-utils.ts + +# 3. Confirm all agents updated +grep -n "processAgentResponse.*lastCwd" src/services/worker/*.ts + +# 4. Run tests +bun test tests/utils/claude-md-utils.test.ts + +# 5. Build and verify no TypeScript errors +npm run build +``` + +### Anti-pattern grep checks + +```bash +# Should NOT find process.cwd() in updateFolderClaudeMdFiles path logic +grep -n "process.cwd" src/utils/claude-md-utils.ts + +# Should NOT find cwd in ParsedObservation interface +grep -A 10 "interface ParsedObservation" src/sdk/parser.ts | grep cwd +``` + +### Manual testing + +1. Start worker in one directory +2. Run Claude Code in a different directory (worktree) +3. Make a code change that creates an observation +4. Verify CLAUDE.md is written to the correct project directory + +--- + +## Summary of Changes + +| File | Change | +|------|--------| +| `src/utils/claude-md-utils.ts` | Add `projectRoot` param, resolve relative paths | +| `src/services/worker/agents/ResponseProcessor.ts` | Pass `projectRoot` through call chain | +| `src/services/worker/SDKAgent.ts` | Track `lastCwd`, pass to `processAgentResponse` | +| `src/services/worker/GeminiAgent.ts` | Track `lastCwd`, pass to `processAgentResponse` | +| `src/services/worker/OpenRouterAgent.ts` | Track `lastCwd`, pass to `processAgentResponse` | +| `tests/utils/claude-md-utils.test.ts` | Add tests for `projectRoot` behavior | diff --git a/.claude/plans/fix-stale-session-resume-crash.md b/.claude/plans/fix-stale-session-resume-crash.md new file mode 100644 index 00000000..5d19332d --- /dev/null +++ b/.claude/plans/fix-stale-session-resume-crash.md @@ -0,0 +1,252 @@ +# Plan: Fix Stale Session Resume Crash + +## Problem Summary + +The worker crashes repeatedly with "Claude Code process exited with code 1" when attempting to resume into a stale/non-existent SDK session. + +**Root Cause:** In `SDKAgent.ts:94`, the resume parameter is passed whenever `memorySessionId` exists in the database, regardless of whether this is an INIT prompt or CONTINUATION prompt. When a worker restarts or re-initializes a session, it loads a stale `memorySessionId` from a previous SDK session and tries to resume into a session that no longer exists in Claude's context. + +**Evidence from logs:** +``` +[17:30:21.773] Starting SDK query { + hasRealMemorySessionId=true, โ† DB has old memorySessionId + resume_parameter=5439891b-..., โ† Trying to resume with it + lastPromptNumber=1 โ† But this is a NEW SDK session! +} +[17:30:24.450] Generator failed {error=Claude Code process exited with code 1} +``` + +--- + +## Phase 0: Documentation Discovery (COMPLETED) + +### Allowed APIs (from subagent research) + +**V1 SDK API (currently used):** +```typescript +// From @anthropic-ai/claude-agent-sdk +function query(options: { + prompt: string | AsyncIterable; + options: { + model: string; + resume?: string; // SESSION ID - only use for CONTINUATION + disallowedTools?: string[]; + abortController?: AbortController; + pathToClaudeCodeExecutable?: string; + } +}): AsyncIterable +``` + +**Resume Parameter Rules (from docs/context/agent-sdk-v2-preview.md and SESSION_ID_ARCHITECTURE.md):** +- `resume` should only be used when continuing an existing SDK conversation +- For INIT prompts (first prompt in a fresh SDK session), no resume parameter should be passed +- Session ID is captured from first SDK message and stored for subsequent prompts + +### Anti-Patterns to Avoid +- Passing `resume` parameter with INIT prompts (causes crash) +- Using `contentSessionId` for resume (contaminates user session) +- Assuming memorySessionId validity without checking prompt context + +--- + +## Phase 1: Fix the Resume Parameter Logic + +### What to Implement + +Modify `src/services/worker/SDKAgent.ts` line 94 to check BOTH conditions: +1. `hasRealMemorySessionId` - memorySessionId exists and is non-null +2. `session.lastPromptNumber > 1` - this is a CONTINUATION, not an INIT prompt + +### Current Code (line 89-99): +```typescript +const queryResult = query({ + prompt: messageGenerator, + options: { + model: modelId, + // Resume with captured memorySessionId (null on first prompt, real ID on subsequent) + ...(hasRealMemorySessionId && { resume: session.memorySessionId }), + disallowedTools, + abortController: session.abortController, + pathToClaudeCodeExecutable: claudePath + } +}); +``` + +### Fixed Code: +```typescript +const queryResult = query({ + prompt: messageGenerator, + options: { + model: modelId, + // Only resume if BOTH: (1) we have a memorySessionId AND (2) this isn't the first prompt + // On worker restart, memorySessionId may exist from a previous SDK session but we + // need to start fresh since the SDK context was lost + ...(hasRealMemorySessionId && session.lastPromptNumber > 1 && { resume: session.memorySessionId }), + disallowedTools, + abortController: session.abortController, + pathToClaudeCodeExecutable: claudePath + } +}); +``` + +### Also Update the Comment at Line 66-68: +```typescript +// CRITICAL: Only resume if: +// 1. memorySessionId exists (was captured from a previous SDK response) +// 2. lastPromptNumber > 1 (this is a continuation within the same SDK session) +// On worker restart or crash recovery, memorySessionId may exist from a previous +// SDK session but we must NOT resume because the SDK context was lost. +// NEVER use contentSessionId for resume - that would inject messages into the user's transcript! +``` + +### Verification Checklist +- [ ] `grep "hasRealMemorySessionId && session.lastPromptNumber > 1" src/services/worker/SDKAgent.ts` returns the fix +- [ ] Build succeeds: `npm run build` +- [ ] No TypeScript errors + +--- + +## Phase 2: Add Logging for Debugging + +### What to Implement + +Enhance the alignment log at line 81-85 to clearly indicate when resume is skipped due to INIT prompt: + +```typescript +// Debug-level alignment logs for detailed tracing +if (session.lastPromptNumber > 1) { + const willResume = hasRealMemorySessionId; + logger.debug('SDK', `[ALIGNMENT] Resume Decision | contentSessionId=${session.contentSessionId} | memorySessionId=${session.memorySessionId} | prompt#=${session.lastPromptNumber} | hasRealMemorySessionId=${hasRealMemorySessionId} | willResume=${willResume} | resumeWith=${willResume ? session.memorySessionId : 'NONE'}`); +} else { + // INIT prompt - never resume even if memorySessionId exists (stale from previous session) + const hasStaleMemoryId = hasRealMemorySessionId; + logger.debug('SDK', `[ALIGNMENT] First Prompt (INIT) | contentSessionId=${session.contentSessionId} | prompt#=${session.lastPromptNumber} | hasStaleMemoryId=${hasStaleMemoryId} | action=START_FRESH | Will capture new memorySessionId from SDK response`); + if (hasStaleMemoryId) { + logger.warn('SDK', `Skipping resume for INIT prompt despite existing memorySessionId=${session.memorySessionId} - SDK context was lost (worker restart or crash recovery)`); + } +} +``` + +### Verification Checklist +- [ ] Build succeeds: `npm run build` +- [ ] Log message appears when running with stale session scenario + +--- + +## Phase 3: Add Unit Tests + +### What to Implement + +Create tests in `tests/sdk-agent-resume.test.ts` following patterns from `tests/session_id_usage_validation.test.ts`: + +```typescript +import { describe, it, expect, beforeEach, afterEach, mock } from 'bun:test'; + +describe('SDKAgent Resume Parameter Logic', () => { + describe('hasRealMemorySessionId check', () => { + it('should NOT pass resume parameter when lastPromptNumber === 1 even if memorySessionId exists', () => { + // Scenario: Worker restart with stale memorySessionId + const session = { + memorySessionId: 'stale-session-id-from-previous-run', + lastPromptNumber: 1, // INIT prompt + }; + + const hasRealMemorySessionId = !!session.memorySessionId; + const shouldResume = hasRealMemorySessionId && session.lastPromptNumber > 1; + + expect(hasRealMemorySessionId).toBe(true); // memorySessionId exists + expect(shouldResume).toBe(false); // but should NOT resume + }); + + it('should pass resume parameter when lastPromptNumber > 1 AND memorySessionId exists', () => { + // Scenario: Normal continuation within same SDK session + const session = { + memorySessionId: 'valid-session-id', + lastPromptNumber: 2, // CONTINUATION prompt + }; + + const hasRealMemorySessionId = !!session.memorySessionId; + const shouldResume = hasRealMemorySessionId && session.lastPromptNumber > 1; + + expect(hasRealMemorySessionId).toBe(true); + expect(shouldResume).toBe(true); + }); + + it('should NOT pass resume parameter when memorySessionId is null', () => { + // Scenario: Fresh session, no captured ID yet + const session = { + memorySessionId: null, + lastPromptNumber: 1, + }; + + const hasRealMemorySessionId = !!session.memorySessionId; + const shouldResume = hasRealMemorySessionId && session.lastPromptNumber > 1; + + expect(hasRealMemorySessionId).toBe(false); + expect(shouldResume).toBe(false); + }); + }); +}); +``` + +### Documentation Reference +- Pattern: `tests/session_id_usage_validation.test.ts` lines 1-50 for test structure +- Mock pattern: `tests/worker/agents/response-processor.test.ts` for session mocking + +### Verification Checklist +- [ ] Tests pass: `bun test tests/sdk-agent-resume.test.ts` +- [ ] Test file follows project conventions + +--- + +## Phase 4: Build and Deploy + +### What to Implement + +1. Build the plugin: `npm run build-and-sync` +2. Verify worker restarts with fix applied + +### Verification Checklist +- [ ] `npm run build-and-sync` succeeds +- [ ] Worker health check passes: `curl http://localhost:37777/api/health` +- [ ] No "Claude Code process exited with code 1" errors in logs after restart + +--- + +## Phase 5: Final Verification + +### Verification Commands + +```bash +# 1. Verify fix is in place +grep -n "hasRealMemorySessionId && session.lastPromptNumber > 1" src/services/worker/SDKAgent.ts + +# 2. Verify no crashes in recent logs +tail -100 ~/.claude-mem/logs/claude-mem-$(date +%Y-%m-%d).log | grep -c "exited with code 1" + +# 3. Run tests +bun test tests/sdk-agent-resume.test.ts + +# 4. Check for anti-patterns (should return 0 results) +grep -n "hasRealMemorySessionId && { resume" src/services/worker/SDKAgent.ts +``` + +### Success Criteria +- [ ] Fix in place at SDKAgent.ts:94 +- [ ] Zero "exited with code 1" errors related to stale resume +- [ ] All tests pass +- [ ] Worker stable for 10+ minutes without crash loop + +--- + +## Files to Modify + +1. `src/services/worker/SDKAgent.ts` - Fix resume logic (Phase 1 & 2) +2. `tests/sdk-agent-resume.test.ts` - New test file (Phase 3) + +## Estimated Complexity + +- **Phase 1**: Low - Single line change with updated condition +- **Phase 2**: Low - Enhanced logging +- **Phase 3**: Medium - New test file following existing patterns +- **Phase 4-5**: Low - Standard build/verify process diff --git a/.claude/plans/folder-claude-md-generator.md b/.claude/plans/folder-claude-md-generator.md new file mode 100644 index 00000000..e73c1048 --- /dev/null +++ b/.claude/plans/folder-claude-md-generator.md @@ -0,0 +1,298 @@ +# Folder CLAUDE.md Generator + +## CORE DIRECTIVE (NON-NEGOTIABLE) + +**EXTEND THE EXISTING CURSOR RULES TIMELINE GENERATION SYSTEM TO ALSO WRITE CLAUDE.MD FILES** + +- DO NOT create new services +- DO NOT create new orchestrators +- DO NOT create new HTTP routes +- DO NOT create new database query functions +- EXTEND existing functions to add folder-level output + +--- + +## Approved Directives (From Planning Conversation) + +### Trigger Mechanism +- Observation save triggers folder CLAUDE.md regeneration **INLINE** +- NO batching +- NO debouncing +- NO Set-based queuing +- NO session-end hook +- Synchronous: `observation.save()` โ†’ update folder CLAUDE.md files โ†’ done + +### Tag Strategy +- Wrap ONLY auto-generated content with `` tags +- Everything outside tags is untouched (user's manual content preserved) +- If tags are deleted, just regenerate them +- NO backup system +- NO manual content markers + +### Git Behavior +- CLAUDE.md files SHOULD be committed (intentional) +- `` tag is searchable fingerprint for GitHub analytics +- NO .gitignore for these files + +### Phasing +- **Phase 1**: CLAUDE.md generation only (THIS PLAN) +- **Phase 2**: IDE symlinks (FUTURE) + +### REJECTED +- Cross-folder linking โ€” NO +- Semantic grouping โ€” deferred enhancement only +- Team sync โ€” future phase + +### DEFERRED +- Priority weighting by observation type +- IDE-specific template refinements + +--- + +## Phase 0: Documentation Discovery (COMPLETED) + +### Existing APIs to USE (Not Rebuild) + +| Function | Location | Purpose | +|----------|----------|---------| +| `findByFile(filePath, options)` | `src/services/sqlite/SessionSearch.ts:342` | Query observations by folder prefix (already supports LIKE wildcards) | +| `updateCursorContextForProject()` | `src/services/integrations/CursorHooksInstaller.ts:98` | Write context files after observation save | +| `writeContextFile()` | `src/utils/cursor-utils.ts:97` | Atomic file write with temp file + rename | +| `extractFirstFile()` | `src/shared/timeline-formatting.ts` | Extract file paths from JSON arrays | +| `groupByDate()` | `src/shared/timeline-formatting.ts` | Group items chronologically | +| `formatTime()`, `formatDate()` | `src/shared/timeline-formatting.ts` | Time formatting | + +### Existing Integration Points + +| Location | What Happens | Extension Point | +|----------|--------------|-----------------| +| `ResponseProcessor.ts:266` | Calls `updateCursorContextForProject()` after summary save | Add folder CLAUDE.md update here | +| `CursorHooksInstaller.ts:98` | `updateCursorContextForProject()` fetches context and writes file | Add sibling function for folder updates | + +### Anti-Patterns to AVOID +- Creating `FolderIndexOrchestrator.ts` โ€” NO +- Creating `FolderTimelineCompiler.ts` โ€” NO +- Creating `FolderDiscovery.ts` โ€” NO +- Creating `ClaudeMdGenerator.ts` โ€” NO +- Creating `FolderIndexRoutes.ts` โ€” NO +- Adding new HTTP endpoints โ€” NO +- Adding new settings in `SettingsDefaultsManager.ts` โ€” NO (use sensible defaults inline) + +--- + +## Phase 1: Extend CursorHooksInstaller + +### What to Implement + +Add ONE new function to `src/services/integrations/CursorHooksInstaller.ts`: + +```typescript +/** + * Update CLAUDE.md files for folders touched by an observation. + * Called inline after observation save, similar to updateCursorContextForProject. + */ +export async function updateFolderClaudeMd( + workspacePath: string, + filesModified: string[], + filesRead: string[], + project: string, + port: number +): Promise +``` + +### Implementation Pattern (Copy From) + +Follow the EXACT pattern of `updateCursorContextForProject()` at line 98: +1. Extract unique folder paths from filesModified and filesRead +2. For each folder, fetch timeline via existing `/api/search/file?files=` endpoint +3. Format as simple timeline (reuse existing formatters) +4. Write to `/CLAUDE.md` preserving content outside `` tags + +### Tag Preservation Logic + +```typescript +function replaceTaggedContent(existingContent: string, newContent: string): string { + const startTag = ''; + const endTag = ''; + + // If no existing content, wrap new content in tags + if (!existingContent) { + return `${startTag}\n${newContent}\n${endTag}`; + } + + // If existing has tags, replace only tagged section + const startIdx = existingContent.indexOf(startTag); + const endIdx = existingContent.indexOf(endTag); + + if (startIdx !== -1 && endIdx !== -1) { + return existingContent.substring(0, startIdx) + + `${startTag}\n${newContent}\n${endTag}` + + existingContent.substring(endIdx + endTag.length); + } + + // If no tags exist, append tagged content at end + return existingContent + `\n\n${startTag}\n${newContent}\n${endTag}`; +} +``` + +### Verification Checklist +- [ ] Function added to CursorHooksInstaller.ts +- [ ] Uses existing `findByFile` endpoint (no new database queries) +- [ ] Preserves content outside `` tags +- [ ] Atomic writes (temp file + rename) +- [ ] Build passes: `npm run build` + +--- + +## Phase 2: Hook Into ResponseProcessor + +### What to Implement + +Add call to `updateFolderClaudeMd()` in `src/services/worker/agents/ResponseProcessor.ts`, right after the existing `updateCursorContextForProject()` call at line 266. + +### Code Location + +In `syncAndBroadcastSummary()` function, after line 269: + +```typescript +// EXISTING: Update Cursor context file for registered projects (fire-and-forget) +updateCursorContextForProject(session.project, getWorkerPort()).catch(error => { + logger.warn('CURSOR', 'Context update failed (non-critical)', { project: session.project }, error as Error); +}); + +// NEW: Update folder CLAUDE.md files for touched folders (fire-and-forget) +// Extract file paths from the saved observations +updateFolderClaudeMd( + workspacePath, // From registry lookup + filesModified, // From observations + filesRead, // From observations + session.project, + getWorkerPort() +).catch(error => { + logger.warn('FOLDER_INDEX', 'CLAUDE.md update failed (non-critical)', { project: session.project }, error as Error); +}); +``` + +### Data Flow +1. `processAgentResponse()` saves observations โ†’ gets back `observationIds` +2. Fetch observation records to get `files_read` and `files_modified` +3. Pass to `updateFolderClaudeMd()` + +### Verification Checklist +- [ ] Call added to ResponseProcessor.ts +- [ ] Fire-and-forget pattern (non-blocking, errors logged) +- [ ] Uses existing observation data (no new queries) +- [ ] Build passes: `npm run build` + +--- + +## Phase 3: Timeline Formatting + +### What to Implement + +Create a minimal timeline formatter for CLAUDE.md output. This can be: +1. A simple function in CursorHooksInstaller.ts, OR +2. Reuse existing `ResultFormatter.formatSearchResults()` from `src/services/worker/search/ResultFormatter.ts` + +### Output Format + +```markdown +# Recent Activity + + + + +### 2026-01-04 + +| Time | Type | Title | +|------|------|-------| +| 4:30pm | feature | Added folder index support | +| 3:15pm | bugfix | Fixed file path handling | + +### 2026-01-03 + +| Time | Type | Title | +|------|------|-------| +| 11:00am | refactor | Cleaned up cursor utils | + + +``` + +### Key Points +- Compact format (time, type emoji, title only) +- Grouped by date +- Limited to last N days or observations (sensible default: 10) +- NO token counts +- NO file columns (redundant - we're IN the folder) + +### Verification Checklist +- [ ] Formatter produces clean markdown +- [ ] Output is concise (not verbose) +- [ ] Grouped by date +- [ ] Build passes: `npm run build` + +--- + +## Phase 4: Verification + +### Functional Tests + +1. **Manual Test**: + - Start worker: `npm run dev` + - Create a test observation touching `src/services/sqlite/` + - Verify `src/services/sqlite/CLAUDE.md` is created/updated + - Verify `` tags are present + - Verify manual content outside tags is preserved + +2. **Build Check**: + ```bash + npm run build + ``` + +3. **Grep for Anti-Patterns**: + ```bash + # Should find NOTHING + grep -r "FolderIndexOrchestrator" src/ + grep -r "FolderTimelineCompiler" src/ + grep -r "FolderDiscovery" src/ + grep -r "ClaudeMdGenerator" src/ + grep -r "FolderIndexRoutes" src/ + ``` + +4. **Grep for Correct Implementation**: + ```bash + # Should find the new function + grep -r "updateFolderClaudeMd" src/ + ``` + +### Tag Preservation Test + +1. Create `src/test-folder/CLAUDE.md` with manual content: + ```markdown + # My Notes + This is manual content I wrote. + ``` + +2. Trigger observation save touching files in `src/test-folder/` + +3. Verify result: + ```markdown + # My Notes + This is manual content I wrote. + + + ### 2026-01-04 + | Time | Type | Title | + ... + + ``` + +--- + +## Summary + +This is a **~100 line change** spread across 2 files: +1. `CursorHooksInstaller.ts` โ€” Add `updateFolderClaudeMd()` function (~60 lines) +2. `ResponseProcessor.ts` โ€” Add call to the new function (~10 lines) + +NO new files. NO new services. NO new routes. Just extending existing patterns. diff --git a/.claude/plans/folder-claude-md-refactor.md b/.claude/plans/folder-claude-md-refactor.md new file mode 100644 index 00000000..d8028d36 --- /dev/null +++ b/.claude/plans/folder-claude-md-refactor.md @@ -0,0 +1,378 @@ +# Folder CLAUDE.md Refactor - Extract to Shared Utils + +## CORE DIRECTIVE + +**DECOUPLE FOLDER CLAUDE.MD WRITING FROM CURSOR INTEGRATION** + +The current implementation incorrectly couples folder-level CLAUDE.md generation to Cursor-specific registry lookups. The file paths from observations are already absolute - no workspace registry lookup is needed. + +--- + +## Phase 0: Documentation Discovery (COMPLETED) + +### Current Implementation Location + +| Function | Location | Lines | Purpose | +|----------|----------|-------|---------| +| `updateFolderClaudeMd` | CursorHooksInstaller.ts | 128-199 | Orchestrates folder CLAUDE.md updates | +| `formatTimelineForClaudeMd` | CursorHooksInstaller.ts | 221-295 | Parses API response to markdown | +| `replaceTaggedContent` | CursorHooksInstaller.ts | 300-321 | Preserves user content outside tags | +| `writeFolderClaudeMd` | CursorHooksInstaller.ts | 326-353 | Atomic file write | + +### Integration Point + +**File:** `src/services/worker/agents/ResponseProcessor.ts:274-298` + +Current (problematic) code: +```typescript +const registry = readCursorRegistry(); +const registryEntry = registry[session.project]; + +if (registryEntry && (filesModified.length > 0 || filesRead.length > 0)) { + updateFolderClaudeMd( + registryEntry.workspacePath, // <-- PROBLEM: Needs Cursor registry + filesModified, + filesRead, + session.project, + getWorkerPort() + ).catch(error => { ... }); +} +``` + +### The Problem + +1. `filesModified` and `filesRead` already contain **absolute paths** +2. We don't need `workspacePath` - just extract folder from file path directly +3. Cursor registry is only populated when Cursor hooks are installed +4. This makes folder CLAUDE.md a Cursor-only feature (unintended) + +### Project Utils Pattern + +**From `src/utils/cursor-utils.ts:97-122`:** +- Pure functions with paths as parameters +- Atomic write pattern: temp file + rename +- `mkdirSync(dir, { recursive: true })` for directory creation + +### Related Utils + +**`src/utils/tag-stripping.ts`** - Handles *stripping* tags (input filtering) +- `stripMemoryTagsFromJson()` - removes `` content +- `stripMemoryTagsFromPrompt()` - removes `` content + +Our `replaceTaggedContent` handles *preserving/replacing* (output writing) - complementary, not duplicative. + +--- + +## Phase 1: Create Shared Utils File + +### What to Implement + +Create `src/utils/claude-md-utils.ts` with extracted and simplified functions. + +### File Structure + +```typescript +/** + * CLAUDE.md File Utilities + * + * Shared utilities for writing folder-level CLAUDE.md files with + * auto-generated context sections. Preserves user content outside + * tags. + */ + +import { existsSync, readFileSync, writeFileSync, renameSync, mkdirSync } from 'fs'; +import path from 'path'; +import { logger } from './logger.js'; + +/** + * Replace tagged content in existing file, preserving content outside tags. + * + * Handles three cases: + * 1. No existing content โ†’ wraps new content in tags + * 2. Has existing tags โ†’ replaces only tagged section + * 3. No tags in existing content โ†’ appends tagged content at end + */ +export function replaceTaggedContent(existingContent: string, newContent: string): string { + // Copy from CursorHooksInstaller.ts:300-321 +} + +/** + * Write CLAUDE.md file to folder with atomic writes. + * Creates directory structure if needed. + * + * @param folderPath - Absolute path to the folder + * @param newContent - Content to write inside tags + */ +export function writeClaudeMdToFolder(folderPath: string, newContent: string): void { + // Simplified from writeFolderClaudeMd - no workspacePath needed + // Copy atomic write pattern from CursorHooksInstaller.ts:326-353 +} + +/** + * Format timeline text from API response to compact CLAUDE.md format. + * + * @param timelineText - Raw API response text + * @returns Formatted markdown with date headers and compact table + */ +export function formatTimelineForClaudeMd(timelineText: string): string { + // Copy from CursorHooksInstaller.ts:221-295 +} +``` + +### Key Simplification + +**OLD `writeFolderClaudeMd` signature:** +```typescript +async function writeFolderClaudeMd( + workspacePath: string, // <-- REMOVE + folderPath: string, + newContent: string +): Promise +``` + +**NEW `writeClaudeMdToFolder` signature:** +```typescript +export function writeClaudeMdToFolder( + folderPath: string, // Must be absolute path + newContent: string +): void // Sync is fine, atomic anyway +``` + +### Verification Checklist +- [ ] File created at `src/utils/claude-md-utils.ts` +- [ ] `replaceTaggedContent` exported and handles all 3 cases +- [ ] `writeClaudeMdToFolder` exported with atomic writes +- [ ] `formatTimelineForClaudeMd` exported +- [ ] Build passes: `npm run build` + +--- + +## Phase 2: Create Folder Index Service Function + +### What to Implement + +Create a new orchestrating function that replaces `updateFolderClaudeMd`. This should NOT be in CursorHooksInstaller - it's a general feature. + +**Option A:** Add to `src/utils/claude-md-utils.ts` (keeps it simple) +**Option B:** Create `src/services/folder-index-service.ts` (follows service pattern) + +Recommend **Option A** for simplicity - it's just one function. + +### New Function + +```typescript +/** + * Update CLAUDE.md files for folders containing the given files. + * Fetches timeline from worker API and writes formatted content. + * + * @param filePaths - Array of absolute file paths (modified or read) + * @param project - Project identifier for API query + * @param port - Worker API port + */ +export async function updateFolderClaudeMdFiles( + filePaths: string[], + project: string, + port: number +): Promise { + // Extract unique folder paths from file paths + const folderPaths = new Set(); + for (const filePath of filePaths) { + if (!filePath || filePath === '') continue; + const folderPath = path.dirname(filePath); + if (folderPath && folderPath !== '.' && folderPath !== '/') { + folderPaths.add(folderPath); + } + } + + if (folderPaths.size === 0) return; + + logger.debug('FOLDER_INDEX', 'Updating CLAUDE.md files', { + project, + folderCount: folderPaths.size + }); + + // Process each folder + for (const folderPath of folderPaths) { + try { + // Fetch timeline via existing API + const response = await fetch( + `http://127.0.0.1:${port}/api/search/by-file?filePath=${encodeURIComponent(folderPath)}&limit=10&project=${encodeURIComponent(project)}` + ); + + if (!response.ok) { + logger.warn('FOLDER_INDEX', 'Failed to fetch timeline', { folderPath, status: response.status }); + continue; + } + + const result = await response.json(); + if (!result.content?.[0]?.text) { + logger.debug('FOLDER_INDEX', 'No content for folder', { folderPath }); + continue; + } + + const formatted = formatTimelineForClaudeMd(result.content[0].text); + writeClaudeMdToFolder(folderPath, formatted); + + logger.debug('FOLDER_INDEX', 'Updated CLAUDE.md', { folderPath }); + } catch (error) { + logger.warn('FOLDER_INDEX', 'Failed to update CLAUDE.md', { folderPath }, error as Error); + } + } +} +``` + +### Verification Checklist +- [ ] `updateFolderClaudeMdFiles` function added +- [ ] Takes only `filePaths`, `project`, `port` (no workspacePath) +- [ ] Extracts folder paths from absolute file paths +- [ ] Uses `writeClaudeMdToFolder` for atomic writes +- [ ] Build passes: `npm run build` + +--- + +## Phase 3: Update ResponseProcessor Integration + +### What to Implement + +Simplify the call site in `src/services/worker/agents/ResponseProcessor.ts`. + +### Current Code (lines 274-298) +```typescript +// Update folder CLAUDE.md files for touched folders (fire-and-forget) +const filesModified: string[] = []; +const filesRead: string[] = []; + +for (const obs of observations) { + filesModified.push(...(obs.files_modified || [])); + filesRead.push(...(obs.files_read || [])); +} + +// Get workspace path from project registry +const registry = readCursorRegistry(); +const registryEntry = registry[session.project]; + +if (registryEntry && (filesModified.length > 0 || filesRead.length > 0)) { + updateFolderClaudeMd( + registryEntry.workspacePath, + filesModified, + filesRead, + session.project, + getWorkerPort() + ).catch(error => { + logger.warn('FOLDER_INDEX', 'CLAUDE.md update failed (non-critical)', { project: session.project }, error as Error); + }); +} +``` + +### New Code +```typescript +// Update folder CLAUDE.md files for touched folders (fire-and-forget) +const allFilePaths: string[] = []; +for (const obs of observations) { + allFilePaths.push(...(obs.files_modified || [])); + allFilePaths.push(...(obs.files_read || [])); +} + +if (allFilePaths.length > 0) { + updateFolderClaudeMdFiles( + allFilePaths, + session.project, + getWorkerPort() + ).catch(error => { + logger.warn('FOLDER_INDEX', 'CLAUDE.md update failed (non-critical)', { project: session.project }, error as Error); + }); +} +``` + +### Import Changes + +**Remove:** +```typescript +import { updateFolderClaudeMd, readCursorRegistry } from '../../integrations/CursorHooksInstaller.js'; +``` + +**Add:** +```typescript +import { updateFolderClaudeMdFiles } from '../../../utils/claude-md-utils.js'; +``` + +**Keep (if still needed for Cursor context):** +```typescript +import { updateCursorContextForProject } from '../../worker-service.js'; +``` + +### Verification Checklist +- [ ] Import updated to use `claude-md-utils.ts` +- [ ] `readCursorRegistry` import removed (if no longer needed) +- [ ] Call site simplified - no registry lookup +- [ ] Fire-and-forget pattern preserved +- [ ] Build passes: `npm run build` + +--- + +## Phase 4: Clean Up CursorHooksInstaller + +### What to Implement + +Remove the extracted functions from `src/services/integrations/CursorHooksInstaller.ts`. + +### Functions to Remove +- `updateFolderClaudeMd` (lines 128-199) +- `formatTimelineForClaudeMd` (lines 221-295) +- `replaceTaggedContent` (lines 300-321) +- `writeFolderClaudeMd` (lines 326-353) + +### Verification Checklist +- [ ] All 4 functions removed from CursorHooksInstaller.ts +- [ ] No dangling references to removed functions +- [ ] CursorHooksInstaller still exports what it needs for Cursor integration +- [ ] Build passes: `npm run build` +- [ ] Grep shows no references to old function locations + +--- + +## Phase 5: Verification + +### Build Check +```bash +npm run build +``` + +### Anti-Pattern Grep (should find NOTHING in CursorHooksInstaller) +```bash +grep -n "updateFolderClaudeMd\|formatTimelineForClaudeMd\|replaceTaggedContent\|writeFolderClaudeMd" src/services/integrations/CursorHooksInstaller.ts +``` + +### Correct Location Grep (should find in claude-md-utils) +```bash +grep -rn "updateFolderClaudeMdFiles\|writeClaudeMdToFolder\|formatTimelineForClaudeMd" src/utils/ +``` + +### Integration Check +```bash +grep -n "updateFolderClaudeMdFiles" src/services/worker/agents/ResponseProcessor.ts +``` + +### No Cursor Registry Dependency +```bash +grep -n "readCursorRegistry" src/services/worker/agents/ResponseProcessor.ts +# Should return nothing (or only for Cursor context, not folder index) +``` + +--- + +## Summary + +**~150 lines moved** from CursorHooksInstaller.ts to claude-md-utils.ts with simplification: + +| Before | After | +|--------|-------| +| 4 functions in CursorHooksInstaller | 4 functions in claude-md-utils | +| Requires Cursor registry lookup | Works with absolute paths directly | +| `updateFolderClaudeMd(workspacePath, ...)` | `updateFolderClaudeMdFiles(filePaths, ...)` | +| Coupled to Cursor integration | Independent utility | + +**Files Changed:** +1. `src/utils/claude-md-utils.ts` - NEW (create) +2. `src/services/worker/agents/ResponseProcessor.ts` - UPDATE (simplify call site) +3. `src/services/integrations/CursorHooksInstaller.ts` - UPDATE (remove extracted functions) diff --git a/.claude/plans/folder-claude-md-timeline-format.md b/.claude/plans/folder-claude-md-timeline-format.md new file mode 100644 index 00000000..e41c1a8a --- /dev/null +++ b/.claude/plans/folder-claude-md-timeline-format.md @@ -0,0 +1,186 @@ +# Plan: Change Folder CLAUDE.md to Timeline Format + +## Goal + +Replace the simple table format in folder-level CLAUDE.md files with the timeline format used by search results. + +## Current vs Target Format + +### Current Format (Simple) +```markdown +# Recent Activity + +### Recent + +| Time | Type | Title | +|------|------|-------| +| 6:33pm | feature | Multiple CLAUDE.md files generated | +| 6:32pm | feature | CLAUDE.md file successfully generated | +``` + +### Target Format (Timeline) +```markdown +# Recent Activity + +### Jan 4, 2026 + +**src/services/worker/agents/ResponseProcessor.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37110 | 6:35 PM | ๐Ÿ”ด | Folder CLAUDE.md updates moved from summary | ~85 | +| #37109 | " | โœ… | ResponseProcessor.ts modified | ~92 | + +**General** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37108 | 6:33 PM | ๐ŸŸฃ | Multiple CLAUDE.md files generated | ~78 | +``` + +## Key Changes + +1. **Group by date** - Use `### Jan 4, 2026` instead of `### Recent` +2. **Group by file within each date** - Add `**filename**` headers +3. **Expand columns** - Add ID and Read columns: `| ID | Time | T | Title | Read |` +4. **Use type emojis** - Use `๐Ÿ”ด` `๐ŸŸฃ` `โœ…` etc. instead of text +5. **Show ditto marks** - Use `"` for repeated times + +--- + +## Phase 1: Refactor formatTimelineForClaudeMd + +**File:** `src/utils/claude-md-utils.ts` + +**Tasks:** + +1. Add imports from shared utilities: + ```typescript + import { formatDate, formatTime, extractFirstFile, estimateTokens, groupByDate } from '../shared/timeline-formatting.js'; + import { ModeManager } from '../services/domain/ModeManager.js'; + ``` + +2. Replace `formatTimelineForClaudeMd()` (lines 78-151) with new implementation that: + - Parses API response to extract full observation data (id, time, type emoji, title, files) + - Groups observations by date using `groupByDate()` + - Within each date, groups by file using a Map + - Renders file sections with `**filename**` headers + - Uses search table format: `| ID | Time | T | Title | Read |` + - Uses ditto marks for repeated times + +**Pattern to Copy From:** `src/services/worker/search/ResultFormatter.ts` lines 56-108 + +**Key APIs:** +- `groupByDate(items, getDate)` - from `src/shared/timeline-formatting.ts:104-127` +- `formatTime(epoch)` - from `src/shared/timeline-formatting.ts:46-53` +- `formatDate(epoch)` - from `src/shared/timeline-formatting.ts:59-66` +- `extractFirstFile(filesModified, cwd)` - from `src/shared/timeline-formatting.ts:81-84` +- `estimateTokens(text)` - from `src/shared/timeline-formatting.ts:89-92` +- `ModeManager.getInstance().getTypeIcon(type)` - from `src/services/domain/ModeManager.ts` + +**Verification:** +1. Run `npm run build` - no errors +2. Restart worker: `npm run worker:restart` +3. Make a test edit to trigger observation +4. Check generated CLAUDE.md files for new format + +--- + +## Phase 2: Parse Full Observation Data from API + +**Context:** The current regex parsing extracts only time, type emoji, and title. Need to also extract: +- Observation ID (for `#123` column) +- File path (from files_modified in API response, for grouping) +- Token estimate (for `Read` column) + +**Challenge:** The current API returns formatted text, not structured data. We need to: +1. Parse the existing text format more thoroughly, OR +2. Use a different API endpoint that returns JSON + +**Decision Point:** Check what data the `/api/search/by-file` endpoint returns. If it returns structured JSON with observations, use that. Otherwise, enhance parsing. + +**Investigation Required:** +- Read `src/services/worker/http/routes/SearchRoutes.ts` to see by-file response format +- Determine if we can access raw observation data or just formatted text + +**Verification:** +- Confirm API response structure +- Update parsing to extract all needed fields + +--- + +## Phase 3: Integrate File-Based Grouping + +**File:** `src/utils/claude-md-utils.ts` + +**Tasks:** + +1. Create helper to group by file: + ```typescript + function groupByFile(observations: ParsedObservation[]): Map { + const byFile = new Map(); + for (const obs of observations) { + const file = obs.file || 'General'; + if (!byFile.has(file)) byFile.set(file, []); + byFile.get(file)!.push(obs); + } + return byFile; + } + ``` + +2. Render with file sections: + ```typescript + for (const [file, fileObs] of resultsByFile) { + lines.push(`**${file}**`); + lines.push(`| ID | Time | T | Title | Read |`); + lines.push(`|----|------|---|-------|------|`); + // render rows with ditto marks + } + ``` + +**Pattern to Copy From:** `ResultFormatter.formatSearchResults()` lines 60-108 + +**Verification:** +- Generated CLAUDE.md shows file grouping +- Files are displayed as relative paths when possible + +--- + +## Phase 4: Final Verification + +**Checklist:** + +1. **Build passes:** `npm run build` +2. **Worker restarts cleanly:** `npm run worker:restart` +3. **Format matches target:** + - Date headers: `### Jan 4, 2026` + - File sections: `**filename**` + - Table columns: `| ID | Time | T | Title | Read |` + - Type emojis: `๐Ÿ”ด` `๐ŸŸฃ` `โœ…` not text + - Ditto marks: `"` for repeated times +4. **Anti-pattern checks:** + - No hardcoded type maps (use ModeManager) + - No invented APIs + - Reuses existing formatters from shared utils +5. **Graceful degradation:** Empty results still show `*No recent activity*` + +--- + +## Files to Modify + +| File | Change | +|------|--------| +| `src/utils/claude-md-utils.ts` | Replace `formatTimelineForClaudeMd()` with timeline format | + +## Files to Read (Patterns to Copy) + +| File | Pattern | +|------|---------| +| `src/services/worker/search/ResultFormatter.ts:56-108` | Date/file grouping logic | +| `src/shared/timeline-formatting.ts` | All formatting utilities | +| `src/services/domain/ModeManager.ts` | Type icon lookup | + +## Anti-Patterns to Avoid + +- โŒ Creating new hardcoded typeโ†’emoji maps (use ModeManager) +- โŒ Parsing dates manually (use shared formatters) +- โŒ Skipping the existing groupByDate utility +- โŒ Not handling ditto marks for repeated times diff --git a/.claude/plans/workflow-agents-integration.md b/.claude/plans/workflow-agents-integration.md new file mode 100644 index 00000000..14f46bd3 --- /dev/null +++ b/.claude/plans/workflow-agents-integration.md @@ -0,0 +1,196 @@ +# Plan: Integrate Workflow Agents and Commands into Claude-Mem + +## Executive Summary + +This plan integrates the `/make-plan` and `/do` orchestration workflow from `~/.claude/commands/` into the claude-mem plugin as project-level development tools. + +## Dependency Analysis + +### Commands to Copy (from `~/.claude/commands/`) + +| File | Purpose | Dependencies | +|------|---------|--------------| +| `make-plan.md` | Orchestrator for LLM-friendly phased planning | Uses Task tool with subagents | +| `do.md` | Orchestrator for executing plans via subagents | Uses Task tool with subagents | +| `anti-pattern-czar.md` | Error handling anti-pattern detection/fixing | Uses Read, Edit, Bash tools | + +### Specialized Agents Referenced + +The `/make-plan` and `/do` commands reference these **conceptual agent roles** (not actual agent files): + +| Agent Role | Referenced In | Description | +|------------|---------------|-------------| +| "Documentation Discovery" | make-plan.md | Fact-gathering from docs/examples | +| "Verification" | make-plan.md, do.md | Verify implementation matches plan | +| "Implementation" | do.md | Execute implementation tasks | +| "Anti-pattern" | do.md | Grep for known bad patterns | +| "Code Quality" | do.md | Review code changes | +| "Commit" | do.md | Commit after verification passes | +| "Branch/Sync" | do.md | Push and prepare phase handoffs | + +**Key Finding**: These are **role descriptions**, not separate agent files. The Task tool's `general-purpose` subagent_type executes all roles. The commands define *what* each role should do, not separate agent implementations. + +### Existing Project Assets + +Located in `.claude/`: +- `agents/github-morning-reporter.md` - Already in project +- `skills/version-bump/SKILL.md` - Already in project +- No existing commands directory + +--- + +## Phase 0: Documentation Discovery (Complete) + +### Sources Consulted +1. `/Users/alexnewman/.claude/commands/make-plan.md` (62 lines) +2. `/Users/alexnewman/.claude/commands/do.md` (39 lines) +3. `/Users/alexnewman/.claude/commands/anti-pattern-czar.md` (122 lines) +4. `/Users/alexnewman/.claude/settings.json` (36 lines) +5. `.claude/skills/CLAUDE.md` (30 lines) +6. `.claude/agents/github-morning-reporter.md` (102 lines) + +### Allowed APIs/Patterns +- **Commands**: `.claude/commands/*.md` files with `#$ARGUMENTS` placeholder for user input +- **Skills**: `.claude/skills//SKILL.md` with YAML frontmatter (name, description) +- **Agents**: `.claude/agents/*.md` with YAML frontmatter (name, description, model) + +### Anti-Patterns to Avoid +- Skills require YAML frontmatter; commands do not +- Commands use `#$ARGUMENTS` for input; skills/agents receive prompts differently +- Don't create separate agent files for role descriptions - the Task tool handles routing + +--- + +## Phase 1: Create Commands Directory + +### What to Implement +1. Create `.claude/commands/` directory +2. Copy `make-plan.md` from `~/.claude/commands/make-plan.md` +3. Copy `do.md` from `~/.claude/commands/do.md` +4. Copy `anti-pattern-czar.md` from `~/.claude/commands/anti-pattern-czar.md` + +### Documentation References +- Pattern: `~/.claude/commands/*.md` (source files) +- Existing example: `.claude/skills/version-bump/SKILL.md` for claude-mem project tools + +### Verification Checklist +```bash +# Verify files exist +ls -la .claude/commands/ + +# Verify content matches source +diff ~/.claude/commands/make-plan.md .claude/commands/make-plan.md +diff ~/.claude/commands/do.md .claude/commands/do.md +diff ~/.claude/commands/anti-pattern-czar.md .claude/commands/anti-pattern-czar.md + +# Verify #$ARGUMENTS placeholder exists +grep '\$ARGUMENTS' .claude/commands/*.md +``` + +### Anti-Pattern Guards +- Do NOT add YAML frontmatter to commands (they don't need it) +- Do NOT modify the source content (copy verbatim) + +--- + +## Phase 2: Create CLAUDE.md Documentation + +### What to Implement +Create `.claude/commands/CLAUDE.md` documenting the commands directory (following pattern from `.claude/skills/CLAUDE.md`) + +### Content Template +```markdown +# Project-Level Commands + +This directory contains slash commands **for developing and maintaining the claude-mem project itself**. + +## Commands in This Directory + +### /make-plan +Orchestrator for creating LLM-friendly implementation plans in phases. Deploys subagents for documentation discovery and fact gathering. + +**Usage**: `/make-plan ` + +### /do +Orchestrator for executing plans via subagents. Deploys specialized subagents for implementation, verification, and code quality review. + +**Usage**: `/do ` + +### /anti-pattern-czar +Interactive workflow for detecting and fixing error handling anti-patterns using the automated scanner. + +**Usage**: `/anti-pattern-czar` + +## Adding New Commands + +Commands are markdown files with `#$ARGUMENTS` placeholder for user input. +``` + +### Verification Checklist +```bash +# Verify file exists +cat .claude/commands/CLAUDE.md +``` + +--- + +## Phase 3: Update Settings (if needed) + +### What to Implement +Check if `.claude/settings.json` needs any permission updates for the new commands. + +### Verification Checklist +```bash +# Check current settings +cat .claude/settings.json + +# Verify commands work by listing them +# (After Claude Code restart, commands should appear in slash-command list) +``` + +### Anti-Pattern Guards +- Do NOT add skill permissions for commands (they're different) +- Commands don't require explicit permissions + +--- + +## Phase 4: Final Verification + +### Verification Checklist +1. All three command files exist in `.claude/commands/` +2. Content matches source files exactly (byte-for-byte if possible) +3. CLAUDE.md documentation exists +4. Git status shows new files ready for commit + +```bash +# Full verification +ls -la .claude/commands/ +wc -l .claude/commands/*.md +git status +``` + +### Commit Message Template +``` +feat: add /make-plan, /do, and /anti-pattern-czar workflow commands + +Add project-level orchestration commands for claude-mem development: +- /make-plan: Create LLM-friendly implementation plans in phases +- /do: Execute plans via coordinated subagents +- /anti-pattern-czar: Detect and fix error handling anti-patterns + +These commands enable structured, agent-driven development workflows. +``` + +--- + +## Summary + +**Files to Create**: +1. `.claude/commands/make-plan.md` (copy from ~/.claude/commands/) +2. `.claude/commands/do.md` (copy from ~/.claude/commands/) +3. `.claude/commands/anti-pattern-czar.md` (copy from ~/.claude/commands/) +4. `.claude/commands/CLAUDE.md` (new documentation) + +**No Agent Files Needed**: The "agents" referenced in make-plan.md and do.md are role descriptions, not separate files. The Task tool's built-in subagent types handle execution. + +**Confidence**: High - analysis complete with full source file reads. diff --git a/.claude/skills/CLAUDE.md b/.claude/skills/CLAUDE.md index 9be5808a..dc2ac1ed 100644 --- a/.claude/skills/CLAUDE.md +++ b/.claude/skills/CLAUDE.md @@ -26,4 +26,17 @@ Manages semantic versioning for the claude-mem project itself. Handles updating ## Adding New Skills **For claude-mem development** โ†’ Add to `.claude/skills/` -**For end users** โ†’ Add to `plugin/skills/` (gets distributed with plugin) \ No newline at end of file +**For end users** โ†’ Add to `plugin/skills/` (gets distributed with plugin) + + + +# Recent Activity + + + +### Dec 29, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33938 | 6:27 PM | ๐Ÿ”ต | Relevant CLAUDE.md Context Identified for PR #492 | ~435 | + \ No newline at end of file diff --git a/.claude/skills/version-bump/SKILL.md b/.claude/skills/version-bump/SKILL.md deleted file mode 100644 index 66040b04..00000000 --- a/.claude/skills/version-bump/SKILL.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -name: version-bump -description: Manage semantic version updates for claude-mem project. Handles patch, minor, and major version increments following semantic versioning. Updates package.json, marketplace.json, and plugin.json. Creates git tags and GitHub releases. Auto-generates CHANGELOG.md from releases. ---- - -# Version Bump Skill - -**IMPORTANT:** You must first ultrathink and write detailed release notes before starting the version bump workflow. - -## Version Types - -- **PATCH** (x.y.Z): Bug fixes only -- **MINOR** (x.Y.0): New features, backward compatible -- **MAJOR** (X.0.0): Breaking changes - -## Files to Update (ALL THREE) - -1. `package.json` (line 3) -2. `.claude-plugin/marketplace.json` (line 13) -3. `plugin/.claude-plugin/plugin.json` (line 3) - -## Workflow - -```bash -# 1. Check current version -grep '"version"' package.json .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json - -# 2. Update all 3 files to new version (use Edit tool) - -# 3. Verify consistency -grep '"version"' package.json .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json - -# 4. Build -npm run build - -# 5. Commit version files -git add package.json .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json -git commit -m "chore: bump version to X.Y.Z" - -# 6. Create tag -git tag -a vX.Y.Z -m "Version X.Y.Z" - -# 7. Push -git push origin main && git push origin vX.Y.Z - -# 8. Create GitHub release (use your detailed release notes here) -gh release create vX.Y.Z --title "vX.Y.Z" --notes "RELEASE_NOTES_HERE" - -# 9. Generate CHANGELOG.md from releases -gh api repos/thedotmack/claude-mem/releases --paginate | node -e " -const releases = JSON.parse(require('fs').readFileSync(0, 'utf8')); -const lines = ['# Changelog', '', 'All notable changes to claude-mem.', '']; -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(''); -}); -console.log(lines.join('\n')); -" > CHANGELOG.md - -# 10. Commit CHANGELOG -git add CHANGELOG.md -git commit -m "docs: update CHANGELOG.md for vX.Y.Z" -git push origin main - -# 11. Discord notification -npm run discord:notify vX.Y.Z -``` - -## Checklist - -- [ ] Ultrathink + write detailed release notes -- [ ] All 3 files have matching version -- [ ] `npm run build` succeeds -- [ ] Git tag created (vX.Y.Z format) -- [ ] GitHub release created with detailed notes -- [ ] CHANGELOG.md updated -- [ ] Discord notification sent (if webhook configured) diff --git a/.github/ISSUE_TEMPLATE/CLAUDE.md b/.github/ISSUE_TEMPLATE/CLAUDE.md new file mode 100644 index 00000000..8ae61fb3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/CLAUDE.md @@ -0,0 +1,21 @@ + +# Recent Activity + + + +### Dec 13, 2025 + +**feature_request.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25012 | 6:41 PM | ๐ŸŸฃ | Auto-Convert Feature Requests to GitHub Discussions | ~298 | +| #25011 | " | โœ… | Staged GitHub Feature Request Automation Files | ~206 | +| #25009 | 6:40 PM | โœ… | Feature Request Template Auto-Labeling Configured | ~241 | +| #24995 | 6:26 PM | ๐Ÿ”ต | Standard Feature Request Template Configuration | ~260 | + +**bug_report.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24994 | 6:26 PM | ๐Ÿ”ต | Standard Bug Report Template Configuration | ~258 | +| #24992 | " | ๐Ÿ”ต | GitHub Issue Templates Located | ~188 | + \ No newline at end of file diff --git a/.github/workflows/CLAUDE.md b/.github/workflows/CLAUDE.md new file mode 100644 index 00000000..2ea2b17b --- /dev/null +++ b/.github/workflows/CLAUDE.md @@ -0,0 +1,75 @@ + +# Recent Activity + + + +### Dec 13, 2025 + +**convert-feature-requests.yml** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25022 | 6:48 PM | โœ… | Workflow Fix Committed to Repository | ~289 | +| #25021 | " | ๐Ÿ”ด | Fixed Issue Number Reference in Workflow Steps | ~277 | +| #25020 | " | ๐Ÿ”ด | Workflow String Interpolation Fixed by Consolidating Steps | ~339 | +| #25019 | 6:47 PM | ๐Ÿ”ต | GitHub Workflow Automates Feature Request Triage | ~328 | +| #25012 | 6:41 PM | ๐ŸŸฃ | Auto-Convert Feature Requests to GitHub Discussions | ~298 | +| #25011 | " | โœ… | Staged GitHub Feature Request Automation Files | ~206 | +| #25010 | 6:40 PM | ๐ŸŸฃ | GitHub Action Workflow for Feature Request Auto-Conversion | ~414 | + +**summary.yml** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25002 | 6:38 PM | ๐Ÿ”ต | AI Summary Workflow for New Issues | ~239 | + +**claude.yml** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24997 | 6:27 PM | ๐Ÿ”ต | Claude Code Action Workflow for Issue and PR Comments | ~242 | +| #24727 | 4:08 PM | ๐Ÿ”ต | GitHub Automation Baseline Assessment | ~312 | +| #24722 | 4:06 PM | ๐Ÿ”ต | Existing Claude Workflow Trigger Configuration | ~233 | + +**claude-code-review.yml** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24996 | 6:27 PM | ๐Ÿ”ต | Existing GitHub Actions Workflows Identified | ~199 | +| #24723 | 4:06 PM | ๐Ÿ”ต | Automated PR Review Workflow Pattern | ~268 | +| #24720 | " | ๐Ÿ”ต | GitHub Workflows Inventory | ~142 | + +### Dec 17, 2025 + +**issue-list-query** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #28918 | 7:27 PM | ๐Ÿ”ต | Four open issues identified - MCP connection, Bun PATH, web UI path, and endless mode | ~432 | + +**pr-list-query** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #28917 | 7:27 PM | ๐Ÿ”ต | Recent PRs audit reveals comprehensive Windows stabilization and MCP fixes | ~414 | + +**windows-ci.yml** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #28655 | 5:30 PM | โœ… | Windows CI Removal Committed to Repository | ~253 | +| #28654 | " | โœ… | Windows CI Workflow File Removed | ~174 | +| #28650 | 5:26 PM | โœ… | Committed Windows CI Workflow Simplification | ~213 | +| #28649 | " | โœ… | Removed Build and Install Steps from Windows CI | ~278 | +| #28648 | " | ๐Ÿ”ต | Windows CI Workflow Includes Build Step | ~288 | +| #28644 | 5:24 PM | โœ… | Modified 27 files with 693 additions and 239 deletions for Windows support | ~447 | +| #28625 | 5:19 PM | ๐ŸŸฃ | Windows CI Testing Workflow Deployed | ~303 | +| #28624 | " | โœ… | Windows CI Workflow File Staged for Commit | ~163 | +| #28623 | " | ๐Ÿ”ต | Windows CI Workflow File Present But Untracked | ~178 | +| #28622 | 5:18 PM | ๐ŸŸฃ | Windows CI Pipeline with Worker Lifecycle Testing | ~326 | + +### Dec 31, 2025 + +**claude-code-review.yml** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34627 | 3:01 PM | ๐Ÿ”ต | Claude Code Review GitHub Action Provides Automated PR Review Integration | ~478 | + +**claude.yml** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34626 | 3:01 PM | ๐Ÿ”ต | Test-Driven Validation Agent Performing Extensive Infrastructure Analysis | ~501 | + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2a67b933..636f0024 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,8 @@ dist/ *.temp .install-version .claude/settings.local.json +.claude/agents/ +.claude/skills/ plugin/data/ plugin/data.backup/ package-lock.json diff --git a/CLAUDE.md b/CLAUDE.md index 1ae8bea5..34e8a131 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -19,10 +19,7 @@ Claude-mem is a Claude Code plugin providing persistent memory across sessions. **Viewer UI** (`src/ui/viewer/`) - React interface at http://localhost:37777, built to `plugin/ui/viewer.html` ## Privacy Tags - -**Dual-Tag System** for meta-observation control: - `content` - User-level privacy control (manual, prevents storage) -- `` - System-level tag (auto-injected observations, prevents recursive storage) **Implementation**: Tag stripping happens at hook layer (edge processing) before data reaches worker/database. See `src/utils/tag-stripping.ts` for shared utilities. @@ -78,5 +75,4 @@ This architecture preserves the open-source nature of the project while enabling ## Important -- **Always commit build artifacts** in `plugin/` - the plugin must work out of the box without requiring users to build from source -- No need to edit the changelog ever, it's generated automatically. \ No newline at end of file +No need to edit the changelog ever, it's generated automatically. diff --git a/MONOLITH_REFACTOR_REPORT.md b/MONOLITH_REFACTOR_REPORT.md deleted file mode 100644 index 6471bd93..00000000 --- a/MONOLITH_REFACTOR_REPORT.md +++ /dev/null @@ -1,306 +0,0 @@ -# Monolith Refactor Report - -> **Last Updated:** 2026-01-03 (post session-logging merge) - -## Executive Summary - -The claude-mem codebase contains **~21,000 lines** of TypeScript across 71+ files. Analysis reveals several monolithic files that violate single-responsibility principles and create tight coupling. This report identifies refactoring targets and proposes a modular architecture. - -**Recent Changes:** The `session-logging` branch merge improved error handling across the codebase. SearchManager was reduced by ~180 lines, but SessionStore grew by ~110 lines due to new migrations and logging. - ---- - -## Part 1: Monolith Files Identified - -### Critical Priority (>1500 lines) - -| File | Lines | Methods | Primary Issues | Trend | -|------|-------|---------|----------------|-------| -| `src/services/worker-service.ts` | 2,034 | - | Server init, process management, Cursor hooks, MCP setup all mixed | โ†“ -28 | -| `src/services/sqlite/SessionStore.ts` | 2,011 | 49 | Migrations + CRUD + queries + transformations all in one class | โ†‘ +108 | -| `src/services/worker/SearchManager.ts` | 1,778 | 17 | Three search strategies crammed together, formatting mixed in | โ†“ -178 | - -### High Priority (500-1500 lines) - -| File | Lines | Issues | Trend | -|------|-------|--------|-------| -| `src/services/sync/ChromaSync.ts` | 870 | Sync and query operations mixed | โ€” | -| `src/services/context-generator.ts` | 659 | 23 standalone functions, no class structure | โ€” | -| `src/services/worker/http/routes/SessionRoutes.ts` | 625 | Provider selection mixed with business logic | โ†‘ +7 | -| `src/services/worker/OpenRouterAgent.ts` | 599 | 80% code duplicated from other agents | โ†“ -15 | -| `src/services/worker/GeminiAgent.ts` | 574 | 80% code duplicated from other agents | โ†“ -15 | -| `src/services/worker/SDKAgent.ts` | 546 | Base patterns duplicated across all agents | โ†“ -15 | -| `src/services/sqlite/SessionSearch.ts` | 526 | FTS5 tables maintained for backward compat | โ€” | -| `src/services/sqlite/migrations.ts` | 509 | All 11 migrations in single file | โ€” | -| `src/services/sqlite/PendingMessageStore.ts` | 447 | Message queue operations | โ†‘ +21 | -| `src/services/worker/http/routes/SettingsRoutes.ts` | 414 | File I/O, validation, git ops mixed | โ€” | - -### Code Duplication Issue - -The three agent files (`SDKAgent`, `GeminiAgent`, `OpenRouterAgent`) share ~80% duplicate code: -- Message building logic -- Result parsing -- Context updating -- Database sync patterns - ---- - -## Part 2: System Breakdown Proposal - -### Domain-Based Module Architecture - -``` -src/ -โ”œโ”€โ”€ domains/ # Business domain modules -โ”‚ โ”œโ”€โ”€ sessions/ # Session lifecycle -โ”‚ โ”‚ โ”œโ”€โ”€ SessionRepository.ts -โ”‚ โ”‚ โ”œโ”€โ”€ SessionService.ts -โ”‚ โ”‚ โ””โ”€โ”€ types.ts -โ”‚ โ”‚ -โ”‚ โ”œโ”€โ”€ observations/ # Observation management -โ”‚ โ”‚ โ”œโ”€โ”€ ObservationRepository.ts -โ”‚ โ”‚ โ”œโ”€โ”€ ObservationService.ts -โ”‚ โ”‚ โ””โ”€โ”€ types.ts -โ”‚ โ”‚ -โ”‚ โ”œโ”€โ”€ summaries/ # Summary generation -โ”‚ โ”‚ โ”œโ”€โ”€ SummaryRepository.ts -โ”‚ โ”‚ โ”œโ”€โ”€ SummaryService.ts -โ”‚ โ”‚ โ””โ”€โ”€ types.ts -โ”‚ โ”‚ -โ”‚ โ”œโ”€โ”€ prompts/ # Prompt storage -โ”‚ โ”‚ โ”œโ”€โ”€ PromptRepository.ts -โ”‚ โ”‚ โ””โ”€โ”€ types.ts -โ”‚ โ”‚ -โ”‚ โ””โ”€โ”€ search/ # Search subsystem -โ”‚ โ”œโ”€โ”€ strategies/ -โ”‚ โ”‚ โ”œโ”€โ”€ ChromaSearchStrategy.ts -โ”‚ โ”‚ โ”œโ”€โ”€ FilterSearchStrategy.ts -โ”‚ โ”‚ โ””โ”€โ”€ SearchStrategy.ts (interface) -โ”‚ โ”œโ”€โ”€ SearchOrchestrator.ts -โ”‚ โ”œโ”€โ”€ ResultFormatter.ts -โ”‚ โ””โ”€โ”€ TimelineBuilder.ts -โ”‚ -โ”œโ”€โ”€ infrastructure/ # Cross-cutting infrastructure -โ”‚ โ”œโ”€โ”€ database/ -โ”‚ โ”‚ โ”œโ”€โ”€ DatabaseConnection.ts -โ”‚ โ”‚ โ”œโ”€โ”€ TransactionManager.ts -โ”‚ โ”‚ โ””โ”€โ”€ migrations/ -โ”‚ โ”‚ โ”œโ”€โ”€ MigrationRunner.ts -โ”‚ โ”‚ โ”œโ”€โ”€ 001_initial.ts -โ”‚ โ”‚ โ”œโ”€โ”€ 002_add_prompts.ts -โ”‚ โ”‚ โ””โ”€โ”€ ... -โ”‚ โ”‚ -โ”‚ โ”œโ”€โ”€ vector/ -โ”‚ โ”‚ โ”œโ”€โ”€ ChromaClient.ts -โ”‚ โ”‚ โ”œโ”€โ”€ ChromaSyncManager.ts -โ”‚ โ”‚ โ””โ”€โ”€ ChromaQueryEngine.ts -โ”‚ โ”‚ -โ”‚ โ””โ”€โ”€ agents/ -โ”‚ โ”œโ”€โ”€ BaseAgent.ts # Shared agent logic -โ”‚ โ”œโ”€โ”€ AgentFactory.ts -โ”‚ โ”œโ”€โ”€ MessageBuilder.ts -โ”‚ โ”œโ”€โ”€ ResponseParser.ts -โ”‚ โ”œโ”€โ”€ providers/ -โ”‚ โ”‚ โ”œโ”€โ”€ ClaudeProvider.ts -โ”‚ โ”‚ โ”œโ”€โ”€ GeminiProvider.ts -โ”‚ โ”‚ โ””โ”€โ”€ OpenRouterProvider.ts -โ”‚ โ””โ”€โ”€ types.ts -โ”‚ -โ”œโ”€โ”€ api/ # HTTP layer -โ”‚ โ”œโ”€โ”€ routes/ -โ”‚ โ”‚ โ”œโ”€โ”€ sessions.ts -โ”‚ โ”‚ โ”œโ”€โ”€ data.ts -โ”‚ โ”‚ โ”œโ”€โ”€ search.ts -โ”‚ โ”‚ โ”œโ”€โ”€ settings.ts -โ”‚ โ”‚ โ””โ”€โ”€ viewer.ts -โ”‚ โ”œโ”€โ”€ middleware/ -โ”‚ โ””โ”€โ”€ server.ts -โ”‚ -โ”œโ”€โ”€ context/ # Context injection -โ”‚ โ”œโ”€โ”€ ContextBuilder.ts -โ”‚ โ”œโ”€โ”€ ContextConfigLoader.ts -โ”‚ โ”œโ”€โ”€ ObservationCompiler.ts -โ”‚ โ””โ”€โ”€ TokenCalculator.ts -โ”‚ -โ””โ”€โ”€ shared/ # Shared utilities (existing) - โ”œโ”€โ”€ logger.ts - โ”œโ”€โ”€ settings.ts - โ””โ”€โ”€ ... -``` - ---- - -## Part 3: Refactoring Targets by Priority - -### Phase 1: Database Layer Decomposition - -**Target:** `src/services/sqlite/SessionStore.ts` (2,011 lines, 49 methods โ†’ ~5 files) - -| Extract To | Responsibility | Est. Lines | -|------------|---------------|------------| -| `domains/sessions/SessionRepository.ts` | Session CRUD ops | ~300 | -| `domains/observations/ObservationRepository.ts` | Observation storage/retrieval | ~400 | -| `domains/summaries/SummaryRepository.ts` | Summary storage/retrieval | ~200 | -| `infrastructure/database/migrations/MigrationRunner.ts` | Schema migrations | ~250 | - -**Benefits:** -- Single responsibility per file -- Testable in isolation -- Reduces coupling - ---- - -### Phase 2: Agent Consolidation - -**Target:** 3 agent files (1,719 lines โ†’ ~800 lines total) - -| Extract To | Responsibility | -|------------|---------------| -| `infrastructure/agents/BaseAgent.ts` | Common agent logic, prompt building | -| `infrastructure/agents/MessageBuilder.ts` | Message construction | -| `infrastructure/agents/ResponseParser.ts` | Result parsing (observations, summaries) | -| `infrastructure/agents/providers/*.ts` | Provider-specific API calls only | - -**Benefits:** -- Eliminates 80% code duplication -- Easy to add new providers -- Centralized message format changes - ---- - -### Phase 3: Search Strategy Pattern - -**Target:** `src/services/worker/SearchManager.ts` (1,778 lines โ†’ ~5 files) - -| Extract To | Responsibility | -|------------|---------------| -| `domains/search/SearchOrchestrator.ts` | Coordinates search strategies | -| `domains/search/strategies/ChromaSearchStrategy.ts` | Vector search via Chroma | -| `domains/search/strategies/FilterSearchStrategy.ts` | SQLite filter-based search | -| `domains/search/ResultFormatter.ts` | Formats search results | -| `domains/search/TimelineBuilder.ts` | Constructs timeline views | - -**Benefits:** -- Strategy pattern for extensibility -- Clear fallback logic -- Testable strategies - ---- - -### Phase 4: Context Generator Restructure - -**Target:** `src/services/context-generator.ts` (659 lines โ†’ ~4 files) - -| Extract To | Responsibility | -|------------|---------------| -| `context/ContextBuilder.ts` | Main builder class | -| `context/ContextConfigLoader.ts` | Config loading/validation | -| `context/ObservationCompiler.ts` | Compiles observations for injection | -| `context/TokenCalculator.ts` | Token budget calculations | - -**Benefits:** -- Class-based structure -- Clear dependencies -- Easier testing - ---- - -### Phase 5: Server/Infrastructure Split - -**Target:** `src/services/worker-service.ts` (2,034 lines โ†’ ~4 files) - -| Extract To | Responsibility | -|------------|---------------| -| `api/server.ts` | Express app, route registration | -| `infrastructure/ProcessManager.ts` | PID files, signal handlers | -| `infrastructure/CursorHooksInstaller.ts` | Cursor integration | -| `infrastructure/MCPClientManager.ts` | MCP client lifecycle | - ---- - -## Part 4: Dependency Reduction Strategy - -### Current Pain Points - -1. **SessionStore** imported by 7+ files directly -2. No abstraction between routes and data access -3. All routes depend on `DatabaseManager` which exposes raw `SessionStore` - -### Proposed Dependency Injection - -```typescript -// infrastructure/container.ts -export interface ServiceContainer { - sessions: SessionService; - observations: ObservationService; - summaries: SummaryService; - search: SearchOrchestrator; - agents: AgentFactory; -} - -// Usage in routes -app.post('/sessions', (req, res) => { - const { sessions } = getContainer(); - sessions.create(req.body); -}); -``` - ---- - -## Part 5: Migration Strategy - -### Incremental Approach - -Each phase can be done independently without breaking the system: - -1. **Create new modules** alongside existing code -2. **Migrate routes one at a time** to use new modules -3. **Deprecate old code** once all routes migrated -4. **Remove deprecated code** after testing - -### Testing Requirements - -- Unit tests for each extracted module -- Integration tests for repository operations -- End-to-end tests for API routes - ---- - -## Appendix: File Size Distribution - -``` -2,034 src/services/worker-service.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ -2,011 src/services/sqlite/SessionStore.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ -1,778 src/services/worker/SearchManager.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ - 870 src/services/sync/ChromaSync.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ - 659 src/services/context-generator.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ - 625 src/services/worker/http/routes/SessionRoutes.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ - 599 src/services/worker/OpenRouterAgent.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ - 574 src/services/worker/GeminiAgent.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ - 546 src/services/worker/SDKAgent.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ - 526 src/services/sqlite/SessionSearch.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ - 509 src/services/sqlite/migrations.ts โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ - 466 src/services/worker/http/routes/DataRoutes.ts โ–ˆโ–ˆโ–ˆโ–ˆ - 447 src/services/sqlite/PendingMessageStore.ts โ–ˆโ–ˆโ–ˆโ–ˆ - 414 src/services/worker/http/routes/SettingsRoutes.ts โ–ˆโ–ˆโ–ˆโ–ˆ -``` - ---- - -## Summary - -| Metric | Current | After Refactor | -|--------|---------|----------------| -| Files >500 lines | 14 | 0-2 | -| Max file size | 2,034 | ~400 | -| Code duplication | ~1,100 lines | ~100 lines | -| Testable modules | Low | High | - -**Recommended Start:** Phase 1 (SessionStore decomposition) - highest impact, clearest boundaries, and **growing** (now 2,011 lines with 49 methods). - -### Key Observations Post-Merge - -1. **SessionStore is still the top priority** - it grew by 108 lines and is now the 2nd largest file -2. **SearchManager improved** - down 178 lines from error handling refactor -3. **Agent files slightly smaller** - ~45 lines combined reduction -4. **Core architecture unchanged** - the proposed modular structure remains valid diff --git a/QUEUE-SIMPLIFICATION-PLAN.md b/QUEUE-SIMPLIFICATION-PLAN.md deleted file mode 100644 index c3b14d9d..00000000 --- a/QUEUE-SIMPLIFICATION-PLAN.md +++ /dev/null @@ -1,106 +0,0 @@ -# Queue System Simplification Plan - -## 1. Executive Summary -The current queue system suffers from accidental complexity due to **state duplication** (in-memory vs. database), **fragile control flow** (recursive restarts), and **distributed state management**. This plan proposes a refactoring to establish the Database as the Single Source of Truth, unifying the processing logic into a robust, linear "Pump" model. - -## 2. Identified Pain Points - -1. **Dual State Synchronization:** - * *Issue:* The system maintains both `session.pendingMessages` (in-memory array) and the `pending_messages` SQLite table. - * *Impact:* Requires constant manual synchronization (push/shift/enqueue), leading to race conditions where the in-memory queue drifts from the DB state. - -2. **Fragile Generator Lifecycle:** - * *Issue:* The use of `startGeneratorWithProvider` and `startSessionWithAutoRestart` with recursive `setTimeout` calls to keep the processor alive is brittle. - * *Impact:* Hard to debug, prone to stack issues or silent failures if the "chain" breaks. - -3. **Non-Atomic State Transitions:** - * *Issue:* The logic separates "peeking" a message from "marking it processing" (the "Critical Flow" identified in the analysis). - * *Impact:* If the worker crashes or halts between these steps, messages can be processed twice or lost in limbo. - -4. **Distributed Logic:** - * *Issue:* Queue logic is scattered across `SessionManager` (coordination), `PendingMessageStore` (DB queries), `SDKAgent` (consumption), and `WorkerService` (orchestration). - * *Impact:* Difficult to trace the lifecycle of a single message. - -## 3. Proposed Architecture - -### 3.1. Core Principle: "The Database is the Queue" -We will eliminate the in-memory `pendingMessages` array entirely. The SQLite database will be the *only* place where queue state exists. - -### 3.2. Architecture Components - -#### A. Atomic `claimNextMessage()` -Instead of `peek` then `mark`, we will implement a single atomic operation in `PendingMessageStore`. - -* **Logic:** - 1. Find the oldest `pending` message for the session. - 2. Update it to `processing` and set the timestamp. - 3. Return the message record. -* **SQL Strategy:** Use a transaction or `UPDATE ... RETURNING` (if supported) to ensure no other worker can claim the same message. - -#### B. The `QueuePump` (Unified Processor) -We will replace the recursive generator logic with a class (or function) dedicated to "pumping" messages for a specific session. - -* **Pseudocode Structure:** - ```typescript - async function runSessionPump(sessionId: number, signal: AbortSignal) { - while (!signal.aborted) { - // 1. Atomic Claim - const message = store.claimNextMessage(sessionId); - - if (!message) { - // 2. Wait for signal (Event-driven, not polling) - await waitForNewData(sessionId, signal); - continue; - } - - try { - // 3. Process - await sdkAgent.processMessage(message); - - // 4. Mark Complete - store.markProcessed(message.id); - } catch (error) { - // 5. Handle Failure - store.markFailed(message.id, error); - } - } - } - ``` - -### 3.3. Key Changes - -| Component | Current State | Proposed State | -| :--- | :--- | :--- | -| **Storage** | In-memory Array + SQLite | SQLite Only | -| **Consumption** | `yield` loop inside SDK Agent | `QueuePump` calls SDK Agent per message | -| **Concurrency** | `peekPending` -> `markProcessing` (Race Prone) | `claimNextMessage` (Atomic Transaction) | -| **Lifecycle** | Recursive `setTimeout` loops | Single `while` loop with `await` | -| **Recovery** | `resetStuckMessages` (Global) | Pump handles own retries + Global cleanup on startup | - -## 4. Implementation Steps - -### Phase 1: Database Layer Hardening -1. Add `claimNextMessage(sessionDbId)` to `PendingMessageStore`. - * Must be transactional. - * Returns `null` if no work is available. -2. Ensure `markProcessed` and `markFailed` are robust. - -### Phase 2: The Pump -1. Create `SessionQueueProcessor.ts`. -2. Implement the `while(!aborted)` loop. -3. Integrate the `EventEmitter` to wake the loop when `enqueue()` happens (replacing the current polling-like behavior). - -### Phase 3: SDK Integration -1. Refactor `SDKAgent` to accept a *single* message or a streamlined iterator that doesn't manage queue state itself. -2. Remove `session.pendingMessages` from `ActiveSession` type. - -### Phase 4: Cleanup -1. Remove `startGeneratorWithProvider` and `startSessionWithAutoRestart`. -2. Remove `peekPending` (as it's replaced by `claimNextMessage`). -3. Remove manual synchronization code in `SessionManager`. - -## 5. Benefits -* **Simplicity:** Code reduction of ~30-40%. -* **Reliability:** Atomic database operations eliminate race conditions. -* **Observability:** Linear control flow is easier to log and debug. -* **Resilience:** Crashes are handled by simply restarting the Pump, which naturally picks up "processing" (stuck) or "pending" messages. diff --git a/QUEUE-SIMPLIFICATION-REPORT.md b/QUEUE-SIMPLIFICATION-REPORT.md deleted file mode 100644 index ee461723..00000000 --- a/QUEUE-SIMPLIFICATION-REPORT.md +++ /dev/null @@ -1,46 +0,0 @@ -# Queue System Simplification Implementation - -I have successfully implemented the queue system simplification plan. - -## Changes Implemented - -### 1. Database Layer Hardening -- **Added `claimNextMessage(sessionDbId)` to `PendingMessageStore`:** - - Implements an atomic transaction (SELECT oldest pending + UPDATE to processing). - - Ensures a message can only be claimed by one worker at a time. - - Eliminates race conditions between "peeking" and "marking". -- **Removed `peekPending()`:** - - No longer needed as `claimNextMessage` handles retrieval and locking in one step. - -### 2. Unified "Pump" Architecture -- **Created `src/services/queue/SessionQueueProcessor.ts`:** - - Implements a robust `AsyncIterableIterator` that yields messages. - - Encapsulates the "Claim -> Yield -> Wait" loop. - - Replaces fragile polling/recursive logic with event-driven `waitForMessage`. - - Handles empty queues gracefully by waiting for signals. - -### 3. SessionManager Refactoring -- **Updated `getMessageIterator`:** - - Now delegates to `SessionQueueProcessor`. - - Removes complex manual synchronization logic. -- **Removed In-Memory Queue State:** - - `queueObservation` and `queueSummarize` now only write to DB and emit events. - - `pendingMessages` array is no longer used for logic (kept deprecated for type compatibility). - - `getTotalActiveWork`, `hasPendingMessages`, etc., now query `PendingMessageStore` directly (counting both 'pending' and 'processing' states). - -### 4. Logic Cleanup -- **Removed Recursive Restarts:** - - Refactored `startGeneratorWithProvider` in `SessionRoutes.ts` and `startSessionProcessor` in `WorkerService.ts`. - - Removed logic that deleted sessions when queue emptied (sessions now wait for new work). - - Removed "auto-restart" logic for normal completion (only kept for crash recovery). - -## Benefits -- **Reliability:** Atomic DB operations prevent stuck or duplicate messages. -- **Simplicity:** Removed complex "peek-then-mark" and recursive restart chains. -- **Performance:** Zero-latency event notification with efficient DB queries. -- **Maintainability:** Clear separation of concerns (Store vs Processor vs Manager). - -## Verification -- Ran static analysis (`tsc`) to verify type safety of new components. -- Verified removal of dead code (`peekPending`). -- Confirmed integration points in `SessionManager` and `SessionRoutes`. diff --git a/QUEUE-SYSTEM-ANALYSIS.md b/QUEUE-SYSTEM-ANALYSIS.md deleted file mode 100644 index d383ec70..00000000 --- a/QUEUE-SYSTEM-ANALYSIS.md +++ /dev/null @@ -1,742 +0,0 @@ -# Queue System Logic Report - -This document provides a line-by-line analysis of the queue system in claude-mem, explaining **the reason behind each piece of logic** and **what it actually does**. - ---- - -## Table of Contents - -1. [High-Level Architecture](#high-level-architecture) -2. [Message Status State Machine](#message-status-state-machine) -3. [PendingMessageStore (Database Layer)](#pendingmessagestore-database-layer) -4. [SessionManager (Queue Coordination)](#sessionmanager-queue-coordination) -5. [SDKAgent (Message Consumer)](#sdkagent-message-consumer) -6. [SessionRoutes (HTTP Entry Points)](#sessionroutes-http-entry-points) -7. [WorkerService (Orchestrator)](#workerservice-orchestrator) -8. [Critical Flow: How a Message Gets Stuck in "Processing"](#critical-flow-how-a-message-gets-stuck-in-processing) -9. [Recovery Mechanisms](#recovery-mechanisms) - ---- - -## High-Level Architecture - -``` -Hook (post-tool-use/summary) - โ”‚ - โ–ผ -SessionRoutes.handleObservations/handleSummarize - โ”‚ - โ–ผ -SessionManager.queueObservation/queueSummarize - โ”‚ - โ”œโ”€โ–บ PendingMessageStore.enqueue() [DB: status='pending'] - โ”‚ - โ”œโ”€โ–บ session.pendingMessages.push() [In-memory queue] - โ”‚ - โ””โ”€โ–บ emitter.emit('message') [Wake up generator] - - โ”‚ - โ–ผ -SDKAgent.createMessageGenerator (async generator) - โ”‚ - โ”œโ”€โ–บ SessionManager.getMessageIterator() - โ”‚ โ”‚ - โ”‚ โ”œโ”€โ–บ PendingMessageStore.peekPending() [Find oldest pending] - โ”‚ โ”‚ - โ”‚ โ”œโ”€โ–บ PendingMessageStore.markProcessing() [DB: status='processing'] - โ”‚ โ”‚ - โ”‚ โ””โ”€โ–บ yield message to SDK - โ”‚ - โ–ผ -SDK query() processes message and returns response - โ”‚ - โ–ผ -SDKAgent.processSDKResponse() - โ”‚ - โ””โ”€โ–บ SDKAgent.markMessagesProcessed() - โ”‚ - โ””โ”€โ–บ PendingMessageStore.markProcessed() [DB: status='processed'] -``` - ---- - -## Message Status State Machine - -``` - โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” - โ”‚ (new) โ”‚ - โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ - โ”‚ enqueue() - โ–ผ - โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” - โ”Œโ”€โ”€โ”€โ”€โ”‚ pending โ”‚โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” - โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ - โ”‚ โ”‚ markProcessing() โ”‚ markFailed() [retry_count < maxRetries] - โ”‚ โ–ผ โ”‚ - โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ - โ”‚ โ”‚ processing โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค - โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ - โ”‚ โ”‚ โ”‚ - โ”‚ โ”œโ”€โ–บ markProcessed() โ”‚ - โ”‚ โ”‚ โ”‚ โ”‚ - โ”‚ โ”‚ โ–ผ โ”‚ - โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ - โ”‚ โ”‚ โ”‚ processed โ”‚ โ”‚ - โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ - โ”‚ โ”‚ โ”‚ - โ”‚ โ””โ”€โ–บ markFailed() [retry_count >= maxRetries] - โ”‚ โ”‚ - โ”‚ โ–ผ - โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” - โ”‚ โ”‚ failed โ”‚ - โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ - โ”‚ - โ”‚ - โ”‚ resetStuckMessages() [thresholdMs timeout] - โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ -``` - ---- - -## PendingMessageStore (Database Layer) - -### `enqueue()` (Lines 56-82) - -```typescript -enqueue(sessionDbId: number, claudeSessionId: string, message: PendingMessage): number { - const now = Date.now(); - const stmt = this.db.prepare(` - INSERT INTO pending_messages ( - session_db_id, claude_session_id, message_type, - tool_name, tool_input, tool_response, cwd, - last_user_message, last_assistant_message, - prompt_number, status, retry_count, created_at_epoch - ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'pending', 0, ?) - `); -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `const now = Date.now()` | Messages need timestamps for ordering and stuck-detection | Captures the moment the message was queued | -| `status, retry_count ... 'pending', 0` | New messages start in pending state with no retries | Hard-codes initial state in SQL | -| `created_at_epoch` | Need to track when message was originally queued for accurate observation timestamps | Used later when processing backlog to assign correct timestamps to observations | -| `JSON.stringify(message.tool_input)` | SQLite can't store objects natively | Serializes complex tool data to string | -| Returns `lastInsertRowid` | Caller needs the ID to track this specific message | Returns the database-assigned auto-increment ID | - -### `peekPending()` (Lines 88-96) - -```typescript -peekPending(sessionDbId: number): PersistentPendingMessage | null { - const stmt = this.db.prepare(` - SELECT * FROM pending_messages - WHERE session_db_id = ? AND status = 'pending' - ORDER BY id ASC - LIMIT 1 - `); - return stmt.get(sessionDbId) as PersistentPendingMessage | null; -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `status = 'pending'` | Only look at messages not yet being processed | Filters out processing/processed/failed | -| `ORDER BY id ASC` | Process messages in the order they arrived (FIFO) | Uses auto-increment ID as natural ordering | -| `LIMIT 1` | Only need one message at a time for the iterator | Returns single oldest pending message | -| Does NOT change status | Peek is non-destructive; status change happens separately in markProcessing | Allows checking without committing to process | - -### `markProcessing()` (Lines 216-224) - -```typescript -markProcessing(messageId: number): void { - const now = Date.now(); - const stmt = this.db.prepare(` - UPDATE pending_messages - SET status = 'processing', started_processing_at_epoch = ? - WHERE id = ? AND status = 'pending' - `); - stmt.run(now, messageId); -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `status = 'processing'` | Mark this message as "in progress" so other consumers don't pick it up | Prevents duplicate processing | -| `started_processing_at_epoch = ?` | Track when processing started for stuck detection | If processing takes >5min, considered stuck | -| `WHERE ... AND status = 'pending'` | Only transition from pending->processing (idempotent safety) | Prevents double-processing race conditions | - -### `markProcessed()` (Lines 230-242) - -```typescript -markProcessed(messageId: number): void { - const now = Date.now(); - const stmt = this.db.prepare(` - UPDATE pending_messages - SET - status = 'processed', - completed_at_epoch = ?, - tool_input = NULL, - tool_response = NULL - WHERE id = ? AND status = 'processing' - `); - stmt.run(now, messageId); -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `status = 'processed'` | Message successfully handled, move to terminal state | Marks completion | -| `completed_at_epoch = ?` | Track when processing finished for metrics/display | Records completion time | -| `tool_input = NULL, tool_response = NULL` | Large payload data no longer needed after successful processing | Frees space - observations are already saved elsewhere | -| `WHERE ... AND status = 'processing'` | Only transition from processing->processed | Ensures we only complete messages we actually processed | - -### `markFailed()` (Lines 249-274) - -```typescript -markFailed(messageId: number): void { - const msg = this.db.prepare('SELECT retry_count FROM pending_messages WHERE id = ?').get(messageId); - - if (msg.retry_count < this.maxRetries) { - // Move back to pending for retry - const stmt = this.db.prepare(` - UPDATE pending_messages - SET status = 'pending', retry_count = retry_count + 1, started_processing_at_epoch = NULL - WHERE id = ? - `); - } else { - // Max retries exceeded, mark as permanently failed - const stmt = this.db.prepare(` - UPDATE pending_messages - SET status = 'failed', completed_at_epoch = ? - WHERE id = ? - `); - } -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| Check `retry_count < maxRetries` | Don't retry forever - eventually give up | Implements bounded retry policy (default: 3) | -| `status = 'pending'` (retry path) | Put message back in queue for another attempt | Allows automatic recovery | -| `retry_count + 1` | Track how many times we've tried | Increment toward failure threshold | -| `started_processing_at_epoch = NULL` | Clear the processing timestamp for next attempt | Prevents stuck detection from immediately triggering | -| `status = 'failed'` (terminal) | Message is permanently broken, stop trying | Prevents infinite retry loops | - -### `resetStuckMessages()` (Lines 281-292) - -```typescript -resetStuckMessages(thresholdMs: number): number { - const cutoff = thresholdMs === 0 ? Date.now() : Date.now() - thresholdMs; - - const stmt = this.db.prepare(` - UPDATE pending_messages - SET status = 'pending', started_processing_at_epoch = NULL - WHERE status = 'processing' AND started_processing_at_epoch < ? - `); - - return result.changes; -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `thresholdMs === 0 ? Date.now()` | Special case: threshold=0 means "reset all processing messages" | Allows forced recovery of all stuck messages | -| `Date.now() - thresholdMs` | Calculate cutoff time (e.g., 5 minutes ago) | Messages processing longer than this are stuck | -| `status = 'processing'` condition | Only reset messages actively being processed | Don't touch pending or completed messages | -| `started_processing_at_epoch < ?` | Processing started before cutoff = stuck | Time-based stuck detection | -| `SET status = 'pending'` | Move back to queue for retry | Enables automatic recovery | -| Returns `result.changes` | Caller needs to know how many were recovered | For logging/metrics | - -### `getPendingCount()` (Lines 297-304) - -```typescript -getPendingCount(sessionDbId: number): number { - const stmt = this.db.prepare(` - SELECT COUNT(*) as count FROM pending_messages - WHERE session_db_id = ? AND status IN ('pending', 'processing') - `); -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `status IN ('pending', 'processing')` | **CRITICAL**: Counts BOTH pending AND processing | Used to decide if generator should keep running | -| Why include processing? | A message in processing state is still "work to be done" | Prevents generator from stopping while SDK is mid-response | - ---- - -## SessionManager (Queue Coordination) - -### `queueObservation()` (Lines 181-232) - -```typescript -queueObservation(sessionDbId: number, data: ObservationData): void { - // Auto-initialize from database if needed - let session = this.sessions.get(sessionDbId); - if (!session) { - session = this.initializeSession(sessionDbId); - } - - // CRITICAL: Persist to database FIRST - const message: PendingMessage = { type: 'observation', ... }; - const messageId = this.getPendingStore().enqueue(sessionDbId, session.claudeSessionId, message); - - // Add to in-memory queue - session.pendingMessages.push(message); - - // Notify generator immediately - const emitter = this.sessionQueues.get(sessionDbId); - emitter?.emit('message'); -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| Auto-initialize session | Worker may have restarted, need to rebuild in-memory state | Lazy initialization from database | -| `enqueue()` BEFORE in-memory push | **CRITICAL**: Database is source of truth, survives crashes | Persist-first ensures no data loss | -| `session.pendingMessages.push()` | In-memory queue for backward compatibility and fast status checks | Mirrors database state in RAM | -| `emitter?.emit('message')` | Wake up the generator immediately (zero-latency) | Event-driven, no polling needed | - -### `getMessageIterator()` (Lines 397-477) - -```typescript -async *getMessageIterator(sessionDbId: number): AsyncIterableIterator { - while (!session.abortController.signal.aborted) { - // Check for pending messages in persistent store - const persistentMessage = this.getPendingStore().peekPending(sessionDbId); - - if (!persistentMessage) { - // Wait for new message event - await new Promise(resolve => { - emitter.once('message', messageHandler); - session.abortController.signal.addEventListener('abort', abortHandler, { once: true }); - }); - continue; - } - - // Mark as processing BEFORE yielding - this.getPendingStore().markProcessing(persistentMessage.id); - - // Track this message ID for completion marking - session.pendingProcessingIds.add(persistentMessage.id); - - // Convert and yield - const message: PendingMessageWithId = { - _persistentId: persistentMessage.id, - _originalTimestamp: persistentMessage.created_at_epoch, - ...this.getPendingStore().toPendingMessage(persistentMessage) - }; - - yield message; - - // Remove from in-memory queue after yielding - session.pendingMessages.shift(); - } -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `while (!aborted)` | Keep processing until session ends | Continuous processing loop | -| `peekPending()` | Check database for work | Non-destructively looks for pending messages | -| `await new Promise` with event | Block until message arrives (no polling) | Event-driven wake-up saves CPU | -| `markProcessing()` BEFORE yield | **CRITICAL**: Claim the message before giving to SDK | Prevents race conditions | -| `pendingProcessingIds.add()` | Track which messages are being processed | So we know what to mark as completed | -| `_persistentId` field | Attach database ID to in-flight message | Needed for markProcessed() later | -| `_originalTimestamp` | Preserve original queue time | For accurate observation timestamps when processing backlog | -| `pendingMessages.shift()` after yield | Keep in-memory queue in sync with database | Mirrors the database state change | - ---- - -## SDKAgent (Message Consumer) - -### `startSession()` Main Loop (Lines 75-150) - -```typescript -const queryResult = query({ - prompt: messageGenerator, - options: { - model: modelId, - resume: session.claudeSessionId, // <-- Session continuity - disallowedTools, - abortController: session.abortController, - pathToClaudeCodeExecutable: claudePath - } -}); - -for await (const message of queryResult) { - if (message.type === 'assistant') { - // Process response - await this.processSDKResponse(session, textContent, worker, discoveryTokens, originalTimestamp); - } -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `resume: session.claudeSessionId` | **CRITICAL**: Connect to existing Claude session | Enables session continuity - same transcript across prompts | -| `for await` loop | Process SDK responses as they arrive | Streaming response handling | -| `processSDKResponse()` called per response | Parse and save observations/summaries | Database + Chroma sync | - -### `createMessageGenerator()` (Lines 202-291) - -```typescript -private async *createMessageGenerator(session: ActiveSession): AsyncIterableIterator { - // Build initial or continuation prompt - const initPrompt = isInitPrompt - ? buildInitPrompt(...) - : buildContinuationPrompt(...); - - // Yield initial prompt - yield { type: 'user', message: { role: 'user', content: initPrompt }, session_id: session.claudeSessionId }; - - // Consume pending messages - for await (const message of this.sessionManager.getMessageIterator(session.sessionDbId)) { - if (message.type === 'observation') { - const obsPrompt = buildObservationPrompt({ ... }); - yield { type: 'user', message: { role: 'user', content: obsPrompt } }; - } else if (message.type === 'summarize') { - const summaryPrompt = buildSummaryPrompt({ ... }); - yield { type: 'user', message: { role: 'user', content: summaryPrompt } }; - } - } -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `isInitPrompt` check | First prompt needs full context, subsequent prompts need continuation | Different prompt templates | -| `yield` initial prompt | Start the SDK conversation | Sends initialization to Claude | -| `for await ... getMessageIterator` | Pull messages as they become available | Event-driven message consumption | -| `yield` for each message | Feed observations/summaries to SDK one at a time | SDK processes each and responds | - -### `markMessagesProcessed()` (Lines 462-491) - -```typescript -private async markMessagesProcessed(session: ActiveSession, worker: any): Promise { - const pendingMessageStore = this.sessionManager.getPendingMessageStore(); - - if (session.pendingProcessingIds.size > 0) { - for (const messageId of session.pendingProcessingIds) { - pendingMessageStore.markProcessed(messageId); - } - session.pendingProcessingIds.clear(); - session.earliestPendingTimestamp = null; - - // Cleanup old processed messages - const deletedCount = pendingMessageStore.cleanupProcessed(100); - } - - // Broadcast status update - if (worker && typeof worker.broadcastProcessingStatus === 'function') { - worker.broadcastProcessingStatus(); - } -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| Loop over `pendingProcessingIds` | Mark ALL messages that were yielded to SDK | Batch completion | -| `markProcessed()` for each | Transition processing->processed in database | Completes the message lifecycle | -| `.clear()` | Reset tracking set for next batch | Prepare for next iteration | -| `earliestPendingTimestamp = null` | Reset timestamp tracking | Next batch gets fresh timestamps | -| `cleanupProcessed(100)` | Don't keep infinite processed messages | Retention policy | -| `broadcastProcessingStatus()` | Update UI with new state | SSE broadcast | - ---- - -## SessionRoutes (HTTP Entry Points) - -### `startGeneratorWithProvider()` (Lines 118-189) - -```typescript -private startGeneratorWithProvider(session, provider, source): void { - session.currentProvider = provider; - - session.generatorPromise = agent.startSession(session, this.workerService) - .catch(error => { - // Mark all processing messages as failed - const processingMessages = stmt.all(session.sessionDbId); - for (const msg of processingMessages) { - pendingStore.markFailed(msg.id); - } - }) - .finally(() => { - session.generatorPromise = null; - session.currentProvider = null; - this.workerService.broadcastProcessingStatus(); - - // Check if there's more work pending - const pendingCount = pendingStore.getPendingCount(sessionDbId); - if (pendingCount > 0) { - // Auto-restart - setTimeout(() => { - if (stillExists && !stillExists.generatorPromise) { - this.startGeneratorWithProvider(stillExists, this.getSelectedProvider(), 'auto-restart'); - } - }, 0); - } else { - // Cleanup - this.sessionManager.deleteSession(sessionDbId); - } - }); -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| `session.generatorPromise =` | Track that generator is running | Prevents multiple generators per session | -| `.catch()` with markFailed | If generator crashes, don't lose messages | Marks for retry or permanent failure | -| `.finally()` | Always cleanup regardless of success/failure | Guaranteed cleanup | -| `generatorPromise = null` | Allow new generator to start | Clears the "running" flag | -| `getPendingCount() > 0` | **CRITICAL**: Check if more work arrived while processing | Handles messages queued during SDK call | -| `setTimeout(..., 0)` | Don't restart synchronously (could cause stack issues) | Deferred restart | -| `deleteSession()` when no work | Clean up resources | Memory management | - -### `ensureGeneratorRunning()` (Lines 90-113) - -```typescript -private ensureGeneratorRunning(sessionDbId: number, source: string): void { - const session = this.sessionManager.getSession(sessionDbId); - if (!session) return; - - const selectedProvider = this.getSelectedProvider(); - - // Start generator if not running - if (!session.generatorPromise) { - this.startGeneratorWithProvider(session, selectedProvider, source); - return; - } - - // Generator is running - check if provider changed - if (session.currentProvider && session.currentProvider !== selectedProvider) { - // Let current generator finish, next one will use new provider - } -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| Check `!generatorPromise` | Only start if not already running | Prevents duplicate generators | -| Start generator if not running | Ensure messages get processed | Lazy generator startup | -| Provider change detection | Allow switching providers mid-session | Graceful provider transition | - ---- - -## WorkerService (Orchestrator) - -### `initializeBackground()` Stuck Message Recovery (Lines 627-633) - -```typescript -// Recover stuck messages from previous crashes -const STUCK_THRESHOLD_MS = 5 * 60 * 1000; // 5 minutes -const resetCount = pendingStore.resetStuckMessages(STUCK_THRESHOLD_MS); -if (resetCount > 0) { - logger.info('SYSTEM', `Recovered ${resetCount} stuck messages from previous session`); -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| Called at startup | Worker may have crashed while messages were processing | Recovery mechanism | -| 5 minute threshold | If processing >5min, something went wrong | Reasonable timeout for SDK calls | -| Reset to pending | Give stuck messages another chance | Automatic retry | - -### `processPendingQueues()` (Lines 747-811) - -```typescript -async processPendingQueues(sessionLimit: number = 10): Promise { - const orphanedSessionIds = pendingStore.getSessionsWithPendingMessages(); - - for (const sessionDbId of orphanedSessionIds) { - // Skip if session already has active generator - const existingSession = this.sessionManager.getSession(sessionDbId); - if (existingSession?.generatorPromise) { - result.sessionsSkipped++; - continue; - } - - // Initialize session and start SDK agent - const session = this.sessionManager.initializeSession(sessionDbId); - this.startSessionWithAutoRestart(session, getPendingCount, 'startup-recovery'); - } -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| Called at startup | Resume work interrupted by crash/restart | Auto-recovery | -| `getSessionsWithPendingMessages()` | Find sessions that have orphaned work | Database query | -| Skip if generator running | Don't start duplicate processors | Race condition prevention | -| `startSessionWithAutoRestart()` | Start processing with auto-restart logic | Shares code with SessionRoutes | - -### `startSessionWithAutoRestart()` (Lines 696-739) - -```typescript -private startSessionWithAutoRestart(session, getPendingCount, source): void { - session.generatorPromise = this.sdkAgent.startSession(session, this) - .catch(error => { ... }) - .finally(() => { - session.generatorPromise = null; - this.broadcastProcessingStatus(); - - const stillPending = getPendingCount(sid); - if (stillPending > 0) { - // Recursive restart - setTimeout(() => { - const stillExists = this.sessionManager.getSession(sid); - if (stillExists && !stillExists.generatorPromise) { - this.startSessionWithAutoRestart(stillExists, getPendingCount, 'auto-restart'); - } - }, 0); - } else { - // Cleanup - this.sessionManager.deleteSession(sid); - } - }); -} -``` - -| Line | The Reason Behind This | What It Actually Does | -|------|------------------------|----------------------| -| Same pattern as SessionRoutes | **DRY**: Shared auto-restart logic | Prevents code duplication | -| Recursive restart | Keep processing until queue is empty | Ensures all messages processed | -| Check `stillExists` before restart | Session might have been deleted | Safety check | - ---- - -## Critical Flow: How a Message Gets Stuck in "Processing" - -### The Problem - -Messages can get stuck in `status = 'processing'` if: - -1. **SDK call hangs indefinitely** - The Agent SDK query never returns -2. **Worker crashes mid-processing** - Process dies before markProcessed() -3. **Exception in processSDKResponse()** - Error prevents markProcessed() from running - -### The Flow - -``` -1. queueObservation() called - โ””โ”€โ–บ enqueue() โ†’ status = 'pending' - -2. getMessageIterator() picks up message - โ””โ”€โ–บ markProcessing() โ†’ status = 'processing' โœ“ - โ””โ”€โ–บ pendingProcessingIds.add(id) - โ””โ”€โ–บ yield message to SDK - -3. SDK processes and returns response - โ””โ”€โ–บ processSDKResponse() called - โ””โ”€โ–บ Parse observations/summaries - โ””โ”€โ–บ Store to database - โ””โ”€โ–บ markMessagesProcessed() - โ””โ”€โ–บ markProcessed() โ†’ status = 'processed' โœ“ - -IF STEP 3 FAILS OR HANGS: - โ””โ”€โ–บ Message stays in 'processing' forever - โ””โ”€โ–บ Recovery: resetStuckMessages() after 5 minutes -``` - -### Why Processing Messages Can Get "Lost" - -**Race Condition in getMessageIterator():** - -```typescript -// Lines 445-446 in SessionManager -this.getPendingStore().markProcessing(persistentMessage.id); -session.pendingProcessingIds.add(persistentMessage.id); -``` - -The message is marked as `processing` BEFORE being yielded. If the SDK hangs or crashes AFTER this line but BEFORE processSDKResponse completes, the message is stuck. - -**Protection Mechanisms:** - -1. `pendingProcessingIds` tracks what's in-flight -2. `markFailed()` in catch handler marks for retry -3. `resetStuckMessages()` at startup cleans up old stuck messages - ---- - -## Recovery Mechanisms - -### 1. Startup Recovery (Worker crashes) - -```typescript -// In initializeBackground() -const resetCount = pendingStore.resetStuckMessages(STUCK_THRESHOLD_MS); -``` - -- Runs when worker starts -- Finds messages stuck in `processing` for >5 minutes -- Resets them to `pending` for retry - -### 2. Generator Error Recovery - -```typescript -// In startGeneratorWithProvider() catch handler -for (const msg of processingMessages) { - pendingStore.markFailed(msg.id); -} -``` - -- Runs when SDK call throws -- Marks processing messages as failed (which may reset to pending if retries remain) - -### 3. Auto-Restart Recovery - -```typescript -// In startGeneratorWithProvider() finally handler -if (pendingCount > 0) { - setTimeout(() => startGeneratorWithProvider(...), 0); -} -``` - -- Runs after every generator completes -- Checks for pending work -- Starts new generator if work remains - -### 4. Manual Recovery (UI) - -```typescript -// PendingMessageStore methods -retryMessage(messageId) // Reset specific message to pending -retryAllStuck(thresholdMs) // Reset all stuck messages -abortMessage(messageId) // Delete message from queue -``` - ---- - -## Summary of Potential Issues - -| Issue | Cause | Mitigation | -|-------|-------|------------| -| Message stuck in processing | SDK hang, crash during processing | `resetStuckMessages()` at startup | -| Duplicate processing | Race condition on message claim | `markProcessing()` with `WHERE status = 'pending'` | -| Lost messages | Crash before enqueue | DB persist BEFORE in-memory push | -| Generator never starts | No call to `ensureGeneratorRunning()` | Called by every HTTP handler | -| Generator exits early | Empty queue check race | `finally` handler checks and restarts | -| Infinite retry | Repeated failures | `maxRetries` limit (default: 3) | - ---- - -## Diagnostic Queries - -Check for stuck messages: -```sql -SELECT * FROM pending_messages -WHERE status = 'processing' -AND started_processing_at_epoch < (strftime('%s', 'now') * 1000 - 300000); -``` - -Check queue depth by session: -```sql -SELECT session_db_id, status, COUNT(*) -FROM pending_messages -GROUP BY session_db_id, status; -``` - -Check retry counts: -```sql -SELECT id, message_type, retry_count, status -FROM pending_messages -WHERE retry_count > 0; -``` diff --git a/conductor.json b/conductor.json index 697df403..6a08f555 100644 --- a/conductor.json +++ b/conductor.json @@ -1,6 +1,6 @@ { "scripts": { "setup": "cp ../settings.local.json .claude/settings.local.json && npm install", - "run": "npm run build" + "run": "npm run build-and-sync" } } \ No newline at end of file diff --git a/cursor-hooks/CLAUDE.md b/cursor-hooks/CLAUDE.md new file mode 100644 index 00000000..b4505bae --- /dev/null +++ b/cursor-hooks/CLAUDE.md @@ -0,0 +1,21 @@ + +# Recent Activity + + + +### Dec 29, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34127 | 9:10 PM | โœ… | Marketing Copy Changes Committed to cursor-hooks-integration Branch | ~457 | +| #34125 | " | โœ… | Detailed Diff Shows Consistent Marketing Language Across All Documentation | ~643 | +| #34123 | 9:09 PM | โœ… | Marketing Copy Updates Complete Across Four Documentation Files | ~485 | +| #34120 | " | โœ… | QUICKSTART Enhanced with Time-Bound Promise and Memory Benefit | ~426 | +| #34119 | 9:08 PM | โœ… | Enhanced STANDALONE-SETUP with Value Proposition and Benefits | ~446 | +| #34118 | " | โœ… | Enhanced README with Marketing Copy and Quick Install Section | ~491 | +| #34117 | " | ๐Ÿ”ต | QUICKSTART.md Updated with Provider Configuration Section | ~487 | +| #34116 | 9:07 PM | ๐Ÿ”ต | STANDALONE-SETUP.md Complete Documentation for Cursor-Only Users | ~541 | +| #34115 | " | ๐Ÿ”ต | Cursor Hooks README Already Updated with Standalone Setup Link | ~485 | +| #34067 | 8:46 PM | ๐Ÿ”ต | Cursor Quickstart Guide Analysis | ~531 | +| #34066 | " | ๐Ÿ”ต | Cursor Hooks README Current State Assessment | ~583 | + \ No newline at end of file diff --git a/docs/CLAUDE.md b/docs/CLAUDE.md new file mode 100644 index 00000000..440f3ff2 --- /dev/null +++ b/docs/CLAUDE.md @@ -0,0 +1,34 @@ + +# Recent Activity + + + +### Dec 29, 2025 + +**docs** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34316 | 11:02 PM | ๐Ÿ”ต | Mintlify Documentation Structure Identified | ~242 | + +### Jan 1, 2026 + +**SESSION_ID_ARCHITECTURE.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35668 | 11:40 PM | โœ… | Main branch updated with major feature additions | ~377 | +| #35565 | 9:55 PM | โœ… | Session ID architecture documentation created | ~510 | + +### Jan 3, 2026 + +**SESSION_ID_ARCHITECTURE.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36689 | 11:56 PM | ๐Ÿ”ต | PR #538 Review Findings - Modular Architecture Refactor | ~590 | +| #36632 | 10:45 PM | ๐Ÿ”ต | SESSION_ID_ARCHITECTURE.md Documents Placeholder Pattern With ContentSessionId | ~584 | +| #36625 | 10:44 PM | ๐Ÿ”ต | Documentation and Code Reveal Placeholder Detection Pattern | ~583 | + +**anti-pattern-cleanup-plan.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + \ No newline at end of file diff --git a/docs/context/CLAUDE.md b/docs/context/CLAUDE.md new file mode 100644 index 00000000..1e07a372 --- /dev/null +++ b/docs/context/CLAUDE.md @@ -0,0 +1,107 @@ + +# Recent Activity + + + +### Dec 30, 2025 + +**agent-sdk-v2-docs.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34477 | 2:25 PM | โœ… | V2 Upgrade Branch Modifies Four Files with Net Code Reduction | ~328 | +| #34466 | 2:24 PM | ๐Ÿ”ต | Agent SDK V2 Documentation Reveals Correct API Surface | ~399 | +| #34425 | 2:04 PM | ๐Ÿ”ต | Agent SDK V2 API Documentation and Migration Patterns | ~698 | +| #34422 | 2:03 PM | โœ… | Added Agent SDK V2 Documentation Files | ~240 | +| #34419 | 2:02 PM | โœ… | Committed Agent SDK V2 upgrade preparation | ~275 | +| #34394 | 1:52 PM | ๐Ÿ”ต | Agent SDK V2 Documentation Shows session.close() Method for Cleanup | ~417 | + +**agent-sdk-v2-example.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34431 | 2:06 PM | ๐Ÿ”ต | V2 SDK Executable Example Code Patterns | ~710 | +| #34428 | 2:05 PM | ๐Ÿ”ต | Agent SDK v2 Example File Reading Requested | ~204 | +| #34411 | 1:55 PM | โš–๏ธ | Agent SDK V2 Migration Plan Created | ~519 | +| #34410 | " | โš–๏ธ | Agent SDK V2 Migration Strategy Analysis | ~499 | +| #34406 | 1:54 PM | ๐Ÿ”ต | Comprehensive V2 Migration Analysis Shows Architectural Incompatibility | ~556 | +| #34401 | " | ๐Ÿ”ต | Agent SDK V2 API Design and Patterns | ~435 | + +### Dec 31, 2025 + +**agent-sdk-v2-preview.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34635 | 3:04 PM | ๐ŸŸฃ | Documentation-First Workflow Design Document Created | ~769 | +| #34616 | 2:59 PM | โš–๏ธ | Documentation-First Workflow Agent Analyzing V2 SDK Examples and Patterns | ~515 | +| #34581 | 2:44 PM | ๐Ÿ”ต | V2 Session API Official Documentation Confirms Clear Separation Pattern | ~446 | + +**agent-sdk-v2-examples.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34605 | 2:57 PM | ๐Ÿ”ต | V2 SDK Migration Failure Root Cause: Context Rot and Knowledge Transfer Gaps | ~550 | +| #34583 | 2:44 PM | ๐Ÿ”ต | Executable V2 Examples Demonstrate All Core Patterns With Crystal Clear Code | ~471 | +| #34580 | 2:43 PM | ๐Ÿ”ต | V2 Session API Documentation Shows Clear Send/Receive Pattern Despite Naming Confusion | ~364 | + +### Jan 1, 2026 + +**try-catch-audit-report.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35635 | 11:14 PM | โœ… | Removed Temporary Try-Catch Audit Report | ~224 | +| #35463 | 8:59 PM | ๐ŸŸฃ | Enforceable Anti-Pattern Detection System for Try-Catch Abuse | ~485 | +| #35462 | " | ๐ŸŸฃ | Error handling audit tooling and documentation added | ~271 | +| #35435 | 8:46 PM | โœ… | Try-Catch Audit Report Documented in Markdown | ~781 | + +**agent-sdk-v2-examples.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35429 | 6:32 PM | โš–๏ธ | KISS Principle Applied to SDKAgent.ts Defensive Code | ~322 | +| #35412 | 5:25 PM | ๐Ÿ”ต | Canonical Example Shows Cost Tracking Without Token Usage Checks | ~289 | +| #35406 | 5:24 PM | โš–๏ธ | Categorized Conditionals as Required Business Logic vs Defensive Code | ~377 | +| #35404 | " | ๐Ÿ”ต | Canonical V2 SDK Patterns Require Message Type Checking | ~313 | +| #35398 | 5:23 PM | ๐ŸŸฃ | Added comprehensive Claude Agent SDK V2 examples | ~231 | +| #35383 | 3:11 PM | ๐Ÿ”ต | Phase 2 code quality review identified 5 critical bugs | ~604 | +| #35382 | 3:08 PM | โœ… | Phase 2 Anti-Pattern Recheck Passed | ~315 | +| #35379 | 3:07 PM | ๐Ÿ”ต | Phase 2 Anti-Pattern Check Found Content Extraction Bug | ~373 | +| #35353 | 3:01 PM | ๐Ÿ”ต | Phase 2 preparation analysis completed | ~502 | +| #35340 | 2:58 PM | ๐Ÿ”ต | Phase 1 Anti-Pattern Check Reveals V1/V2 API Mismatch | ~352 | +| #35330 | 2:54 PM | ๐Ÿ”ต | Claude Agent SDK V2 API Pattern Documentation | ~305 | +| #35329 | 2:53 PM | ๐Ÿ”ต | Agent SDK V2 API patterns and capabilities | ~453 | +| #35292 | 1:23 PM | ๐Ÿ”ต | Agent SDK query() resume parameter: SDK-generated session IDs cannot be predetermined | ~543 | + +**sdkagent-removal-list.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35425 | 5:27 PM | โœ… | Reorganized Removal List with DELETE/SIMPLIFY Section Header | ~240 | +| #35424 | " | โœ… | Revised Token Tracking from Delete to Simplify with Hardcoded Zero | ~365 | +| #35416 | 5:25 PM | ๐ŸŸฃ | Created Actionable Removal Checklist for SDKAgent.ts Cleanup | ~431 | + +**agent-sdk-v2-preview.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35414 | 5:25 PM | ๐Ÿ”ต | V2 Preview Documentation Shows Direct Result Access Pattern | ~281 | +| #35289 | 1:23 PM | ๐Ÿ”ต | Agent SDK V2 preview documentation: Explicit session lifecycle with createSession and resumeSession | ~523 | + +**sdkagent-conditional-logic-CORRECTED.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35409 | 5:24 PM | ๐ŸŸฃ | Created Comprehensive Conditional Logic Removal Report | ~488 | + +**dont-be-an-idiot.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35400 | 5:23 PM | ๐Ÿ”„ | Phase 1 SDK V2 migration - Updated imports and added API documentation | ~294 | +| #35347 | 3:01 PM | โœ… | Phase 1 commit completed via Task agent | ~374 | +| #35346 | " | โœ… | Committed Phase 1 of V2 API migration | ~333 | +| #35345 | 3:00 PM | โœ… | Phase 1 Changes Committed to Git | ~338 | +| #35343 | " | โœ… | Phase 1 Git Status Shows Modified Files | ~315 | +| #35334 | 2:55 PM | ๐Ÿ”ต | V2 SDK Migration Preparation Complete | ~368 | +| #35332 | 2:54 PM | ๐ŸŸฃ | SDK V2 API Documentation Created | ~305 | +| #35331 | " | โœ… | Created documentation affirming V2 API stability | ~358 | + +### Jan 2, 2026 + +**try-catch-audit-report.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35703 | 1:01 PM | โš–๏ธ | Try-Catch as Anti-Pattern: Root Cause Analysis and Documentation | ~363 | + \ No newline at end of file diff --git a/docs/i18n/CLAUDE.md b/docs/i18n/CLAUDE.md new file mode 100644 index 00000000..6f7bcb59 --- /dev/null +++ b/docs/i18n/CLAUDE.md @@ -0,0 +1,38 @@ + +# Recent Activity + + + +### Dec 12, 2025 + +**README.ar.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24246 | 2:43 AM | ๐ŸŸฃ | Comprehensive Translation System Added with 22 Language READMEs | ~386 | + +**README.zh.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24241 | 2:35 AM | โœ… | Internationalized README Files Moved to Dedicated i18n Directory | ~284 | + +### Dec 22, 2025 + +**README.ja.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31948 | 8:08 PM | โœ… | Batch Updated All Translation READMEs with Language Navigation | ~400 | + +**README.zh.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31947 | 8:07 PM | โœ… | Added Language Navigation Menu to Chinese Translation README | ~412 | +| #31945 | 8:06 PM | ๐ŸŸฃ | Multi-language navigation added to internationalized README files | ~386 | +| #31942 | 8:01 PM | ๐Ÿ”ต | Internationalization Documentation Coverage | ~315 | + +### Dec 28, 2025 + +**README.*.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33540 | 10:55 PM | ๐Ÿ”ต | Grep search found mem-search references in internationalized documentation | ~577 | + \ No newline at end of file diff --git a/docs/public/CLAUDE.md b/docs/public/CLAUDE.md index bb075855..64f7b528 100644 --- a/docs/public/CLAUDE.md +++ b/docs/public/CLAUDE.md @@ -85,4 +85,84 @@ npx mintlify dev **Simple Rule**: - `/docs/public/` = Official user documentation (Mintlify .mdx files) โ† YOU ARE HERE -- `/docs/context/` = Internal docs, plans, references, audits \ No newline at end of file +- `/docs/context/` = Internal docs, plans, references, audits + + + +# Recent Activity + + + +### Nov 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #11206 | 3:01 PM | ๐Ÿ”ต | mem-search skill architecture and migration details retrieved in full format | ~538 | + +### Nov 21, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #13221 | 2:01 AM | ๐Ÿ”ด | Fixed broken markdown link to Viewer UI documentation | ~316 | +| #13220 | 2:00 AM | ๐Ÿ”ด | Escaped HTML less-than symbol in universal architecture timeout documentation | ~316 | +| #13216 | 1:54 AM | โœ… | Universal Architecture Added to Navigation | ~330 | +| #13215 | " | ๐ŸŸฃ | Universal AI Memory Architecture Documentation Created | ~732 | +| #13213 | 1:50 AM | ๐Ÿ”ต | Introduction Page Content and Recent v6.0.0 Release | ~495 | +| #13212 | " | ๐Ÿ”ต | Architecture Evolution Documentation Structure | ~408 | +| #13211 | " | ๐Ÿ”ต | Mintlify Documentation Site Configuration | ~430 | +| #13209 | 1:48 AM | ๐Ÿ”ต | Public Documentation Structure and Guidelines | ~383 | + +### Nov 25, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #14994 | 2:22 PM | โœ… | Version Channel Section Added to Configuration Documentation | ~301 | +| #14993 | " | โœ… | Beta Features Added to Documentation Navigation | ~188 | +| #14992 | 2:21 PM | ๐ŸŸฃ | Beta Features Documentation Page Created | ~488 | +| #14991 | " | ๐Ÿ”ต | Mintlify Navigation Structure and Documentation Groups | ~394 | +| #14989 | " | ๐Ÿ”ต | Installation Documentation with Quick Start and Verification Steps | ~383 | +| #14988 | " | ๐Ÿ”ต | Configuration Documentation Structure and Environment Variables | ~338 | + +### Nov 26, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #16190 | 10:22 PM | ๐Ÿ”ต | RAGTIME Search Retrieved Five Observations About Claude-Mem vs RAG Architecture | ~637 | + +### Dec 3, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #19884 | 9:42 PM | ๐Ÿ”ต | Configuration system and environment variables | ~701 | +| #19878 | 9:40 PM | ๐Ÿ”ต | Installation process and system architecture | ~486 | + +### Dec 8, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22335 | 10:26 PM | ๐Ÿ”ต | Mintlify documentation configuration analyzed | ~534 | +| #22311 | 9:47 PM | ๐Ÿ”ต | Comprehensive Hooks Architecture Documentation Review | ~263 | +| #22297 | 9:43 PM | ๐Ÿ”ต | Mintlify Documentation Framework Configuration | ~446 | +| #22294 | " | ๐Ÿ”ต | Documentation Site Structure Located | ~359 | + +### Dec 9, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23179 | 10:44 PM | โœ… | Removed explanatory reasons from tool exclusion documentation | ~297 | + +### Dec 15, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27038 | 6:02 PM | ๐Ÿ”ต | 95% token reduction claims found only in private experimental documents, not in main public docs | ~513 | +| #27037 | " | ๐Ÿ”ต | Branch switching functionality exists in SettingsRoutes with UI switcher removal intent | ~463 | +| #26986 | 5:24 PM | โœ… | Updated Endless Mode latency warning in beta features documentation | ~299 | + +### Dec 29, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33938 | 6:27 PM | ๐Ÿ”ต | Relevant CLAUDE.md Context Identified for PR #492 | ~435 | +| #33750 | 12:25 AM | โœ… | Documentation Update: Removed Version Number from Architecture Evolution | ~281 | + \ No newline at end of file diff --git a/docs/public/architecture/CLAUDE.md b/docs/public/architecture/CLAUDE.md new file mode 100644 index 00000000..be98c859 --- /dev/null +++ b/docs/public/architecture/CLAUDE.md @@ -0,0 +1,30 @@ + +# Recent Activity + + + +### Nov 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #11206 | 3:01 PM | ๐Ÿ”ต | mem-search skill architecture and migration details retrieved in full format | ~538 | + +### Nov 21, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #13218 | 1:58 AM | ๐Ÿ”ด | Escaped HTML special character in MDX documentation | ~261 | + +### Dec 3, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #19891 | 9:43 PM | ๐Ÿ”ต | Seven hook scripts across five lifecycle events | ~713 | + +### Dec 15, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27040 | 6:03 PM | ๐Ÿ”ต | Comprehensive search confirms no 95% claims exist in main branch public documentation | ~508 | +| #27037 | 6:02 PM | ๐Ÿ”ต | Branch switching functionality exists in SettingsRoutes with UI switcher removal intent | ~463 | + \ No newline at end of file diff --git a/docs/public/architecture/overview.mdx b/docs/public/architecture/overview.mdx index 57486131..7b2a60b9 100644 --- a/docs/public/architecture/overview.mdx +++ b/docs/public/architecture/overview.mdx @@ -45,19 +45,19 @@ Hook (stdin) โ†’ Database โ†’ Worker Service โ†’ SDK Processor โ†’ Database โ†’ 4. **Output**: Processed summaries written back to database 5. **Retrieval**: Next session's context hook reads summaries from database -### Search Pipeline (v5.4.0+) +### Search Pipeline ``` -User Query โ†’ mem-search Skill Invoked โ†’ HTTP API โ†’ SessionSearch Service โ†’ FTS5 Database โ†’ Search Results โ†’ Claude +User Query โ†’ MCP Tools Invoked โ†’ HTTP API โ†’ SessionSearch Service โ†’ FTS5 Database โ†’ Search Results โ†’ Claude ``` 1. **User Query**: User asks naturally: "What bugs did we fix?" -2. **Skill Invoked**: Claude recognizes intent and invokes mem-search skill -3. **HTTP API**: Skill uses curl to call HTTP endpoint (e.g., `/api/search/observations`) +2. **MCP Tools Invoked**: Claude recognizes intent and invokes MCP search tools +3. **HTTP API**: MCP tools call HTTP endpoint (e.g., `/api/search/observations`) 4. **SessionSearch**: Worker service queries FTS5 virtual tables -5. **Format**: Results formatted and returned to skill +5. **Format**: Results formatted and returned via MCP 6. **Return**: Claude presents formatted results to user -**Token Savings**: ~2,250 tokens per session vs MCP approach through progressive disclosure +Uses 3-layer progressive disclosure: search โ†’ timeline โ†’ get_observations ## Session Lifecycle diff --git a/docs/public/configuration.mdx b/docs/public/configuration.mdx index 232bf7cd..67c273d9 100644 --- a/docs/public/configuration.mdx +++ b/docs/public/configuration.mdx @@ -18,6 +18,7 @@ Settings are managed in `~/.claude-mem/settings.json`. The file is auto-created | `CLAUDE_MEM_MODE` | `code` | Active mode profile (e.g., `code--es`, `email-investigation`) | | `CLAUDE_MEM_CONTEXT_OBSERVATIONS` | `50` | Number of observations to inject | | `CLAUDE_MEM_WORKER_PORT` | `37777` | Worker service port | +| `CLAUDE_MEM_WORKER_HOST` | `127.0.0.1` | Worker service host address | | `CLAUDE_MEM_SKIP_TOOLS` | `ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion` | Comma-separated tools to exclude from observations | ### Gemini Provider Settings @@ -189,19 +190,16 @@ Hooks are configured in `plugin/hooks/hooks.json`: } ``` -### Search Configuration (v5.4.0+) +### Search Configuration -**Migration Note**: As of v5.4.0, Claude-Mem uses skill-based search instead of MCP tools. As of v5.5.0, the skill was renamed to "mem-search" for better scope differentiation. +Claude-Mem provides MCP search tools for querying your project history. -**Previous (v5.3.x and earlier)**: MCP search server with 9 tools (~2,500 tokens per session) -**Current (v5.4.0+)**: mem-search skill with HTTP API (~250 tokens per session) +**No configuration required** - MCP tools are automatically available in Claude Code sessions. -**No configuration required** - the mem-search skill is automatically available in Claude Code sessions. - -Search operations are now provided via: -- **Skill**: `plugin/skills/mem-search/SKILL.md` (auto-invoked when users ask about past work) +Search operations are provided via: +- **MCP Server**: 3 tools (search, timeline, get_observations) with progressive disclosure - **HTTP API**: 10 endpoints on worker service port 37777 -- **Progressive Disclosure**: Full instructions loaded on-demand only when needed +- **Auto-Invocation**: Claude recognizes natural language queries about past work ## Version Channel @@ -229,6 +227,16 @@ Endless Mode is experimental and slower than standard mode. See [Beta Features]( Worker service is managed by Bun as a background process. The worker auto-starts on first session and runs continuously in the background. +## Folder Context Files + +Claude-mem can automatically generate `CLAUDE.md` files in your project folders with activity timelines. This feature is disabled by default. + +| Setting | Default | Description | +|---------|---------|-------------| +| `CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED` | `false` | Enable auto-generation of folder CLAUDE.md files | + +See [Folder Context Files](usage/folder-context) for full documentation on how this feature works, configuration options, and git integration recommendations. + ## Context Injection Configuration Claude-Mem injects past observations into each new session, giving Claude awareness of recent work. You can configure exactly what gets injected using the **Context Settings Modal**. diff --git a/docs/public/cursor/CLAUDE.md b/docs/public/cursor/CLAUDE.md new file mode 100644 index 00000000..2af9f843 --- /dev/null +++ b/docs/public/cursor/CLAUDE.md @@ -0,0 +1,51 @@ + +# Recent Activity + + + +### Dec 29, 2025 + +**gemini-setup.mdx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34346 | 11:11 PM | ๐ŸŸฃ | Gemini Free Tier Integration Guide | ~413 | +| #34337 | 11:10 PM | ๐Ÿ”ต | Cursor Documentation Available | ~161 | +| #34331 | 11:05 PM | ๐Ÿ”ด | Fixed Broken Links in cursor/gemini-setup.mdx | ~253 | +| #34326 | 11:04 PM | ๐Ÿ”ต | Broken Links in Cursor Gemini Setup Documentation | ~324 | +| #34320 | 11:03 PM | ๐Ÿ”ต | Mintlify Broken Links Detected in Documentation | ~292 | +| #34215 | 10:08 PM | ๐Ÿ”ต | Retrieved Detailed Cursor Integration Implementation History | ~676 | +| #34214 | 10:07 PM | ๐Ÿ”ต | Cursor Integration Feature Set Discovered via Memory Search | ~427 | +| #34148 | 9:28 PM | ๐ŸŸฃ | Cursor IDE Integration with Cross-Platform Hooks and Documentation | ~514 | +| #34112 | 9:07 PM | ๐ŸŸฃ | Committed Cursor Public Documentation to Repository | ~427 | +| #34106 | 9:05 PM | ๐ŸŸฃ | Created Cursor-Specific Gemini Setup Guide | ~563 | + +**index.mdx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34339 | 11:10 PM | ๐ŸŸฃ | Cursor IDE Integration with Persistent Memory | ~394 | +| #34335 | 11:06 PM | ๐ŸŸฃ | Mintlify Documentation Linting Successfully Completed | ~409 | +| #34330 | 11:05 PM | ๐Ÿ”ด | Fixed Remaining Broken Links in cursor/index.mdx Next Steps Section | ~284 | +| #34329 | " | ๐Ÿ”ด | Fixed Broken Links in cursor/index.mdx Detailed Guides Section | ~269 | +| #34325 | 11:04 PM | ๐Ÿ”ต | Multiple Broken Links in Cursor Index Documentation | ~329 | +| #34216 | 10:08 PM | ๐Ÿ”ต | Additional Cursor Integration Details Retrieved for Post Writing | ~600 | +| #34105 | 9:05 PM | ๐ŸŸฃ | Created Cursor Integration Landing Page | ~522 | + +**openrouter-setup.mdx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34332 | 11:05 PM | ๐Ÿ”ด | Fixed Broken Links in cursor/openrouter-setup.mdx | ~283 | +| #34324 | 11:04 PM | ๐Ÿ”ต | Broken Link Syntax Identified in Cursor Documentation | ~329 | +| #34107 | 9:06 PM | ๐ŸŸฃ | Created Cursor-Specific OpenRouter Setup Guide | ~573 | + +**cursor** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34322 | 11:03 PM | ๐Ÿ”ต | Cursor Directory Files Confirmed to Exist | ~224 | + +### Jan 4, 2026 + +**gemini-setup.mdx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36751 | 12:32 AM | ๐Ÿ”ต | Gemini-Related Files Located Across Project | ~242 | + \ No newline at end of file diff --git a/docs/public/docs.json b/docs/public/docs.json index 6d52a84f..28a68e84 100644 --- a/docs/public/docs.json +++ b/docs/public/docs.json @@ -43,6 +43,7 @@ "usage/private-tags", "usage/export-import", "usage/manual-recovery", + "usage/folder-context", "beta-features", "endless-mode" ] diff --git a/docs/public/hooks-architecture.mdx b/docs/public/hooks-architecture.mdx index 9f81b773..8ae13bf9 100644 --- a/docs/public/hooks-architecture.mdx +++ b/docs/public/hooks-architecture.mdx @@ -148,7 +148,7 @@ Claude-Mem uses 6 lifecycle hook scripts across 5 lifecycle events, plus 1 pre-h |----|------|---|-------|--------| | #2586 | 12:58 AM | ๐Ÿ”ต | Context hook file empty | ~51 | -*Use mem-search skill to access full details* +*Use MCP search tools to access full details* ``` **Source:** `src/hooks/context-hook.ts` โ†’ `plugin/scripts/context-hook.js` diff --git a/docs/public/introduction.mdx b/docs/public/introduction.mdx index d44881aa..ff0d2eed 100644 --- a/docs/public/introduction.mdx +++ b/docs/public/introduction.mdx @@ -23,15 +23,16 @@ Restart Claude Code. Context from previous sessions will automatically appear in ## Key Features - ๐Ÿง  **Persistent Memory** - Context survives across sessions -- ๐ŸŒ **Multilingual Modes** - Supports 10+ languages (Spanish, Chinese, French, etc.) -- ๐ŸŽญ **Mode System** - Switch between workflows (Code, Email Investigation) -- ๐Ÿ” **mem-search Skill** - Query your project history with natural language (~2,250 token savings) +- ๐Ÿ“ **Folder Context Files** - Auto-generated `CLAUDE.md` in project folders with activity timelines +- ๐ŸŒ **Multilingual Modes** - Supports 28 languages (Spanish, Chinese, French, Japanese, etc.) +- ๐ŸŽญ **Mode System** - Switch between workflows (Code, Email Investigation, Chill) +- ๐Ÿ” **MCP Search Tools** - Query your project history with natural language - ๐ŸŒ **Web Viewer UI** - Real-time memory stream visualization at http://localhost:37777 - ๐Ÿ”’ **Privacy Control** - Use `` tags to exclude sensitive content from storage - โš™๏ธ **Context Configuration** - Fine-grained control over what context gets injected - ๐Ÿค– **Automatic Operation** - No manual intervention required - ๐Ÿ“Š **FTS5 Search** - Fast full-text search across observations -- ๐Ÿ”— **Citations** - Reference past observations with IDs (access via http://localhost:37777/api/observation/{id} or view all in the web viewer at http://localhost:37777) +- ๐Ÿ”— **Citations** - Reference past observations with IDs ## How It Works @@ -58,11 +59,11 @@ Restart Claude Code. Context from previous sessions will automatically appear in ``` **Core Components:** -1. **5 Lifecycle Hooks** - SessionStart, UserPromptSubmit, PostToolUse, Stop, SessionEnd (6 hook scripts) +1. **4 Lifecycle Hooks** - SessionStart, UserPromptSubmit, PostToolUse, Stop 2. **Smart Install** - Cached dependency checker (pre-hook script) 3. **Worker Service** - HTTP API on port 37777 managed by Bun 4. **SQLite Database** - Stores sessions, observations, summaries with FTS5 search -5. **mem-search Skill** - Query historical context with natural language +5. **MCP Search Tools** - Query historical context with natural language 6. **Web Viewer UI** - Real-time visualization with SSE and infinite scroll See [Architecture Overview](architecture/overview) for details. @@ -76,21 +77,23 @@ See [Architecture Overview](architecture/overview) for details. ## What's New +**v9.0.0 - Live Context:** +- **Folder Context Files**: Auto-generated `CLAUDE.md` in project folders with activity timelines +- **Worktree Support**: Unified context from parent repos and git worktrees +- **Configurable Observation Limits**: Control how many observations appear in context +- **Windows Fixes**: Resolved IPC detection and hook execution issues +- **Settings Auto-Creation**: `settings.json` now auto-creates on first run +- **MCP Tools Naming**: Updated from "mem-search skill" to "MCP tools" terminology + **v7.1.0 - Bun Migration:** - Replaced PM2 with native Bun process management - Switched from better-sqlite3 to bun:sqlite for faster database access -- Automatic one-time migration on first hook trigger - Simplified cross-platform support **v7.0.0 - Context Configuration:** - 11 settings for fine-grained control over context injection - Dual-tag privacy system (`` tags) -**Previous Highlights:** -- **v5.5.0**: mem-search skill with 100% effectiveness rate -- **v5.4.0**: Skill-based search (~2,250 tokens saved per session) -- **v5.1.0**: Web viewer UI at http://localhost:37777 - ## Next Steps @@ -100,8 +103,8 @@ See [Architecture Overview](architecture/overview) for details. Learn how Claude-Mem works automatically - - System components & data flow + + Auto-generated folder CLAUDE.md files Query your project history diff --git a/docs/public/usage/CLAUDE.md b/docs/public/usage/CLAUDE.md new file mode 100644 index 00000000..34d01b66 --- /dev/null +++ b/docs/public/usage/CLAUDE.md @@ -0,0 +1,47 @@ + +# Recent Activity + + + +### Nov 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #11206 | 3:01 PM | ๐Ÿ”ต | mem-search skill architecture and migration details retrieved in full format | ~538 | + +### Dec 3, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #19892 | 9:43 PM | ๐Ÿ”ต | Automatic operation workflow and progressive disclosure strategy | ~780 | + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23677 | 8:37 PM | โœ… | Update Export Documentation to Reflect Hybrid Search and Project Filter | ~314 | +| #23675 | " | ๐Ÿ”ต | Export/Import Memory Scripts Documentation | ~399 | +| #23590 | 5:51 PM | ๐Ÿ”ต | Import/Export Feature Status Review | ~490 | +| #23584 | 5:50 PM | ๐Ÿ”ต | Export/Import Documentation | ~405 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26335 | 9:02 PM | ๐Ÿ”ต | Citation URI Scheme Documentation | ~255 | + +### Dec 25, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32536 | 7:28 PM | โœ… | Updated Gemini provider warning about free tier rate limits | ~185 | +| #32535 | " | โœ… | Updated Gemini provider tip to recommend enabling billing | ~179 | +| #32534 | 7:27 PM | โœ… | Updated Gemini provider warning about rate limits | ~174 | +| #32533 | " | โœ… | Updated Gemini provider documentation with rate limit information | ~216 | + +### Jan 5, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37508 | 3:21 PM | ๐Ÿ”ต | Private Tags Documentation Defines User Privacy Control Mechanisms | ~748 | + \ No newline at end of file diff --git a/docs/public/usage/claude-desktop.mdx b/docs/public/usage/claude-desktop.mdx index 708fdfb2..5c48e4ee 100644 --- a/docs/public/usage/claude-desktop.mdx +++ b/docs/public/usage/claude-desktop.mdx @@ -1,23 +1,23 @@ --- -title: Claude Desktop Skill -description: Use claude-mem memory search in Claude Desktop with the mem-search skill +title: Claude Desktop MCP +description: Use claude-mem memory search in Claude Desktop with MCP tools icon: desktop --- -**Availability:** The mem-search skill works with Claude Desktop on macOS and Windows. +**Availability:** Claude-mem MCP tools work with Claude Desktop on macOS and Windows. ## Overview -Claude Desktop can access your claude-mem memory database through the **mem-search** skill. This allows you to search past sessions, decisions, and observations directly from Claude Desktop conversations. +Claude Desktop can access your claude-mem memory database through **MCP tools**. This allows you to search past sessions, decisions, and observations directly from Claude Desktop conversations. ## Prerequisites -Before installing the skill, ensure: +Before configuring MCP tools, ensure: 1. **claude-mem is installed** and the worker service is running -2. **MCP server is configured** in Claude Desktop (the skill uses the `mcp-search` MCP server) +2. **MCP server is configured** in Claude Desktop (uses the `mcp-search` MCP server) ### Verify Worker is Running diff --git a/docs/public/usage/folder-context.mdx b/docs/public/usage/folder-context.mdx new file mode 100644 index 00000000..24d6b8f5 --- /dev/null +++ b/docs/public/usage/folder-context.mdx @@ -0,0 +1,280 @@ +--- +title: "Folder Context Files" +description: "Automatic per-folder CLAUDE.md files that provide directory-level context to Claude" +--- + +## Overview + +Claude-mem automatically generates `CLAUDE.md` files in your project folders to provide Claude with directory-level context. These files contain a summary of recent activity in each folder, helping Claude understand what work has been done and where. + + +This feature is **disabled by default**. Enable it via settings if you want automatic folder-level context generation. + + +## How It Works + +When you work with Claude Code in a project, claude-mem tracks which files are read and modified. After each observation is saved, it automatically: + +1. Identifies unique folder paths from touched files +2. Queries recent observations relevant to each folder +3. Generates a formatted timeline of activity +4. Writes it to `CLAUDE.md` in that folder (inside `` tags) + +### What Gets Generated + +Each folder's `CLAUDE.md` contains a "Recent Activity" section showing: + +- Observation IDs for reference +- Timestamps of when work occurred +- Type indicators (bug fixes, features, discoveries, etc.) +- Brief titles describing the work +- Estimated token counts + +```markdown + +# Recent Activity + + + +### Jan 4, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #1234 | 4:30 PM | ๐Ÿ”ต | Implemented user authentication | ~250 | +| #1235 | " | ๐Ÿ”ด | Fixed login redirect bug | ~180 | + +``` + +### User Content Preservation + +The auto-generated content is wrapped in `` tags. **Any content you write outside these tags is preserved** when the file is regenerated. This means you can: + +- Add your own documentation above or below the generated section +- Write folder-specific instructions for Claude +- Include architectural notes or conventions + +```markdown +# Authentication Module + +This folder contains all authentication-related code. +Follow the established patterns for new auth providers. + + +... auto-generated content ... + + +## Manual Notes + +- OAuth providers go in /providers/ +- Session handling uses Redis +``` + +### Project Root Exclusion + +The **project root** (folders containing a `.git` directory) is **excluded** from auto-generation. This is intentional: + +- Root `CLAUDE.md` files typically contain project-wide instructions you've written manually +- Auto-generating at the root could overwrite important project documentation +- Subfolders are where folder-level context is most useful + + +Git submodules (which have a `.git` *file* instead of directory) are correctly detected and **not** excluded, so they receive auto-generated context. + + +## Configuration + +### Enabling the Feature + +To enable folder CLAUDE.md generation, edit your settings file: + +**1. Open `~/.claude-mem/settings.json`** + +**2. Add or update this setting:** +```json +{ + "CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED": "true" +} +``` + +**3. Save the file** - changes take effect immediately (no restart needed) + +| Value | Behavior | +|-------|----------| +| `"false"` (default) | Folder CLAUDE.md generation disabled | +| `"true"` | Auto-generate folder CLAUDE.md files | + + +If the settings file doesn't exist, create it with just the settings you want to change. Claude-mem will use defaults for any missing settings. + + +## Cleanup Mode + +The regenerate script includes a `--clean` mode for removing auto-generated content: + +```bash +# Preview what would be cleaned (dry run) +bun scripts/regenerate-claude-md.ts --clean --dry-run + +# Actually clean files +bun scripts/regenerate-claude-md.ts --clean +``` + +**What cleanup does:** +1. Finds all `CLAUDE.md` files recursively +2. Strips `...` sections +3. **Deletes** files that become empty after stripping +4. **Preserves** files that have user content outside the tags + +This is useful for: +- Preparing a branch for PR (removing generated files) +- Resetting folder context to start fresh +- Removing context before sharing code + +## Git Integration + +### Should You Commit These Files? + +This is **your choice** based on your workflow. Here are the trade-offs: + + + + **Pros:** + - Team members see folder-level context and recent activity + - New contributors can understand what happened where + - Code reviewers get additional context about changes + - Historical record of work patterns in the repo + + **Cons:** + - Adds files to your repository + - Files change frequently during development + - May create noise in diffs and commit history + - Different team members may generate different content + + + **Pros:** + - Clean repository without generated files + - No commit noise from auto-generated content + - Each developer has their own local context + - Simpler git history + + **Cons:** + - Team doesn't share folder context + - Context is lost when switching machines + - New team members don't benefit from existing context + + + +### Gitignore Pattern + +To exclude folder CLAUDE.md files from git: + +```gitignore +# Ignore auto-generated folder context files +**/CLAUDE.md + +# But keep the root CLAUDE.md if you want +!CLAUDE.md +``` + +Or to ignore all CLAUDE.md files everywhere: +```gitignore +**/CLAUDE.md +``` + +### Recommended Workflows + +**For Solo Developers:** +- Keep them local (gitignore) for personal context +- Or commit them if you work across multiple machines + +**For Teams:** +- Discuss with your team which approach works best +- Consider committing them if onboarding is frequent +- Use `--clean` before PRs if you prefer clean diffs + +**Before Merging PRs:** +```bash +# Clean up generated files before merge +bun scripts/regenerate-claude-md.ts --clean +git add -A +git commit -m "chore: clean up generated CLAUDE.md files" +``` + +## Regenerating Context + +To manually regenerate all folder CLAUDE.md files from the database: + +```bash +# Preview what would be regenerated +bun scripts/regenerate-claude-md.ts --dry-run + +# Regenerate all folders +bun scripts/regenerate-claude-md.ts + +# Regenerate for a specific project only +bun scripts/regenerate-claude-md.ts --project=my-project +``` + +This is useful after: +- Importing observations from another machine +- Database recovery +- Wanting to refresh all folder context + +## Worktree Support + +**New in v9.0**: Claude-mem now supports git worktrees with unified context. + +When you're working in a git worktree, context is automatically gathered from both: +- The parent repository (where the worktree was created) +- The worktree directory itself + +This means observations about shared code are visible regardless of which worktree you're in, giving you a complete picture of recent activity across all related directories. + +### How It Works + +1. When generating context, claude-mem detects if your project is a worktree +2. It identifies the parent repository automatically +3. Timeline queries include both locations +4. Results are interleaved chronologically + + +No configuration needed - worktree detection is automatic. If you're not using worktrees, this feature has no effect. + + +## Technical Details + +### File Format + +Generated content uses a consistent markdown table format: + +| Column | Description | +|--------|-------------| +| ID | Observation ID (e.g., `#1234`) or session ID (`#S123`) | +| Time | 12-hour format with AM/PM, ditto marks (`"`) for repeated times | +| T | Type emoji indicator | +| Title | Brief description of the observation | +| Read | Estimated token count (e.g., `~250`) | + +### Type Indicators + +| Emoji | Type | +|-------|------| +| ๐Ÿ”ด | Bug fix | +| ๐ŸŸฃ | Feature | +| ๐Ÿ”„ | Refactor | +| โœ… | Change | +| ๐Ÿ”ต | Discovery | +| โš–๏ธ | Decision | +| ๐ŸŽฏ | Session | +| ๐Ÿ’ฌ | Prompt | + +### Atomic Writes + +Files are written atomically using a temp file + rename pattern. This prevents partial writes if the process is interrupted. + +### Performance + +- Updates happen asynchronously (fire-and-forget) +- Failures are logged but don't block the main workflow +- Only folders with actual file activity are updated +- Deduplication prevents redundant updates for the same folder diff --git a/docs/public/usage/getting-started.mdx b/docs/public/usage/getting-started.mdx index 9985fd1a..18b30f32 100644 --- a/docs/public/usage/getting-started.mdx +++ b/docs/public/usage/getting-started.mdx @@ -160,13 +160,13 @@ Context injection uses progressive disclosure for efficient token usage: - Shows full summary details **only if** generated after last observation - Token cost: ~50-200 tokens for index view -### Layer 2: On-Demand Details (mem-search Skill) +### Layer 2: On-Demand Details (MCP Tools) - Ask naturally: "What bugs did we fix?" or "How did we implement X?" -- Claude auto-invokes mem-search skill to fetch full details +- Claude auto-invokes MCP search tools to fetch full details - Search by concept, file, type, or keyword - Timeline context around specific observations - Token cost: ~100-500 tokens per observation fetched -- Skill uses HTTP API (v5.4.0+) for efficient retrieval +- Uses 3-layer workflow: search โ†’ timeline โ†’ get_observations ### Layer 3: Perfect Recall (Code Access) - Read source files directly when needed @@ -193,9 +193,9 @@ When you use `/clear`, the session doesn't end - it continues with a new prompt The `/clear` command clears the conversation context visible to Claude AND re-injects fresh context from recent sessions, while the underlying session continues tracking observations. -## Searching Your History (v5.4.0+) +## Searching Your History -Claude-Mem uses the mem-search skill for querying your project history. Simply ask naturally: +Claude-Mem provides MCP tools for querying your project history. Simply ask naturally: ``` "What bugs did we fix last session?" @@ -204,9 +204,7 @@ Claude-Mem uses the mem-search skill for querying your project history. Simply a "Show me recent work on this project" ``` -Claude automatically recognizes your intent and invokes the mem-search skill, which uses HTTP API endpoints to query your memory efficiently. - -**Token Savings**: ~2,250 tokens per session start vs previous MCP approach +Claude automatically recognizes your intent and invokes the MCP search tools, which use a 3-layer workflow (search โ†’ timeline โ†’ get_observations) for efficient token usage. ## Next Steps diff --git a/docs/reports/2026-01-04--logging-analysis-and-recommendations.md b/docs/reports/2026-01-04--logging-analysis-and-recommendations.md new file mode 100644 index 00000000..1a53896d --- /dev/null +++ b/docs/reports/2026-01-04--logging-analysis-and-recommendations.md @@ -0,0 +1,317 @@ +# Logging Analysis and Recommendations + +**Date**: 2026-01-04 +**Status**: CRITICAL - Current logging does not prove system correctness +**Goal**: Enable operators to visually verify the system is working and quickly discover when it isn't + +--- + +## Executive Summary + +The current logging is **noisy bullshit that doesn't cover the important parts of the system**. The logging should: + +1. **PROVE** the system is working correctly (not just record activity) +2. **MAKE OBVIOUS** when things break (clear error paths) +3. **TRACE** data end-to-end through the pipeline + +### Critical Finding: Session ID Alignment is BROKEN and UNVERIFIABLE + +The system has **three session ID types** that must stay aligned: +- `contentSessionId` - from Claude Code (user's session) +- `sessionDbId` - our internal database ID (integer) +- `memorySessionId` - from Claude SDK (enables resume) + +**The [ALIGNMENT] logs exist because this mapping is STILL a regression bug.** The current logs show intermediate values but **don't prove correctness**. + +--- + +## Critical System Operations + +### 1. Session ID Mapping Chain (MOST CRITICAL) + +``` +contentSessionId (from hook) + โ†’ sessionDbId (our DB lookup) + โ†’ memorySessionId (captured from SDK) +``` + +**If this breaks, observations go to wrong sessions = DATA CORRUPTION** + +**Current State:** +| Operation | Has Logging? | Proves Correctness? | +|-----------|-------------|---------------------| +| Hook receives contentSessionId | YES | NO - just logs receipt | +| DB creates/looks up sessionDbId | PARTIAL | NO - no verification | +| SDK response gives memorySessionId | YES | NO - no DB update verification | +| Observations stored with memorySessionId | PARTIAL | NO - doesn't show which IDs used | + +**What's MISSING:** + +``` +[INFO] [SESSION] SESSION_CREATED | contentSessionId=abc123 โ†’ sessionDbId=42 | isNew=true +[INFO] [SESSION] MEMORY_ID_CAPTURED | sessionDbId=42 | memorySessionId=xyz789 | dbUpdateSuccess=true +[INFO] [SESSION] E2E_VERIFIED | contentSessionId=abc123 โ†’ sessionDbId=42 โ†’ memorySessionId=xyz789 +``` + +### 2. Observation Storage Pipeline (CRITICAL) + +**The pipeline:** +``` +Hook captures tool use + โ†’ Worker receives observation + โ†’ Queued to pending_messages + โ†’ SDK agent claims message + โ†’ SDK processes โ†’ generates XML + โ†’ Observations parsed + โ†’ Stored to DB with memorySessionId + โ†’ Synced to Chroma +``` + +**Current State:** +| Operation | Has Logging? | Proves Correctness? | +|-----------|-------------|---------------------| +| Hook captures tool | YES | Noise - "Received hook input" | +| Observation queued | YES | Noise - just says "queued" | +| Message claimed from queue | NO | MISSING | +| Observation parsed | NO | MISSING | +| Observation stored to DB | PARTIAL | NO - doesn't show IDs used | +| DB transaction committed | NO | MISSING | +| Chroma sync complete | DEBUG only | Should be INFO for failures | + +**What's MISSING:** + +``` +[INFO] [QUEUE] CLAIMED | sessionDbId=42 | messageId=5 | type=observation | tool=Bash(npm test) +[INFO] [DB ] STORED | sessionDbId=42 | memorySessionId=xyz789 | observations=2 | ids=[101,102] +[INFO] [QUEUE] COMPLETED | sessionDbId=42 | messageId=5 | processingTime=1.2s +``` + +### 3. Queue Processing (CRITICAL) + +Messages can fail, get stuck, or be lost. Current logging doesn't show: +- When a message is claimed +- When a message is completed +- When a message fails and WHY +- Queue depth and processing latency + +**Current State:** +- Queue enqueue: `logger.debug` (not visible at INFO) +- Queue claim: NO LOGGING +- Queue completion: NO LOGGING +- Queue failure: `logger.error` (exists but rare) +- Recovery of stuck messages: `logger.info` (good) + +**What's MISSING:** + +``` +[INFO] [QUEUE] ENQUEUE | sessionDbId=42 | type=observation | queueDepth=3 +[INFO] [QUEUE] CLAIM | sessionDbId=42 | messageId=5 | waitTime=0.1s +[INFO] [QUEUE] COMPLETE | sessionDbId=42 | messageId=5 | success=true +[ERROR][QUEUE] FAILED | sessionDbId=42 | messageId=5 | error="SDK timeout" | willRetry=true +``` + +### 4. Context Injection (IMPORTANT) + +When a session starts, relevant past observations should be injected. Current logging doesn't show: +- What context was searched for +- What was found +- What was injected + +**Current State:** Effectively no logging for context injection success path. + +--- + +## What's Currently NOISE (Should Be DEBUG or Removed) + +### Chatty Session Init Logs (new-hook.ts) +```typescript +// 7 INFO logs for a single session init +logger.info('HOOK', 'new-hook: Received hook input'); // WHO CARES +logger.info('HOOK', 'new-hook: Calling /api/sessions/init'); // WHO CARES +logger.info('HOOK', 'new-hook: Received from /api/sessions/init'); // WHO CARES +logger.info('HOOK', 'new-hook: Session N, prompt #M'); // CONSOLIDATE INTO ONE +logger.info('HOOK', 'new-hook: Calling /sessions/{id}/init'); // WHO CARES +``` + +**Should be ONE log:** `SESSION_INIT | sessionDbId=42 | promptNumber=1 | project=foo` + +### Chatty SessionManager Logs +```typescript +logger.info('SESSION', 'initializeSession called'); // WHO CARES +logger.info('SESSION', 'Returning cached session'); // DEBUG +logger.info('SESSION', 'Fetched session from database'); // DEBUG +logger.info('SESSION', 'Creating new session object'); // DEBUG +logger.info('SESSION', 'Session initialized'); // GOOD - KEEP +logger.info('SESSION', 'Observation queued'); // DEBUG - happens constantly +logger.info('SESSION', 'Summarize queued'); // DEBUG - happens constantly +``` + +### Chatty Chroma Backfill Logs +```typescript +// Logs EVERY batch at INFO - should be DEBUG for progress +logger.info('CHROMA_SYNC', 'Backfill progress', { processed, remaining }); // DEBUG +``` + +**Should be START and END only at INFO level.** + +### Duplicate Migration Logs +Both `SessionStore.ts` and `migrations/runner.ts` have ~25 identical log statements. **DEDUPLICATE.** + +--- + +## [ALIGNMENT] Logs: The Problem + +The [ALIGNMENT] logs were added to debug session ID issues. They're in the RIGHT places but they **don't prove anything**: + +```typescript +// Current - shows values but doesn't verify +logger.info('SDK', `[ALIGNMENT] Resume Decision | contentSessionId=${...} | memorySessionId=${...}`); + +// What's needed - proves correctness +logger.info('SDK', `[ALIGNMENT] VERIFIED | contentSessionId=${...} โ†’ sessionDbId=${...} โ†’ memorySessionId=${...} | dbMatch=true | resumeValid=true`); +``` + +**Current problems:** +1. Log values without validation +2. Don't show if DB operations succeeded +3. Don't trace end-to-end +4. Mixed in with noise - hard to see + +**What they should do:** +1. Log the mapping chain ONCE with verification +2. Show DB operation success/failure +3. Provide clear end-to-end trace +4. Stand out from noise with consistent prefix + +--- + +## Proposed Logging Architecture + +### Log Levels by Purpose + +| Level | Purpose | Examples | +|-------|---------|----------| +| ERROR | Something FAILED | DB write failed, SDK crashed, queue overflow | +| WARN | Something UNEXPECTED but handled | Fallback used, retry needed, timeout | +| INFO | KEY OPERATIONS completed | Session created, observation stored, queue processed | +| DEBUG | Detailed tracing | Cache hits, intermediate states, parsing details | + +### Critical Path Logging (Must be INFO) + +#### Session Lifecycle +``` +[INFO] [SESSION] CREATED | contentSessionId=abc โ†’ sessionDbId=42 | project=foo +[INFO] [SESSION] MEMORY_ID_CAPTURED | sessionDbId=42 โ†’ memorySessionId=xyz | dbUpdated=true +[INFO] [SESSION] VERIFIED | chain: abcโ†’42โ†’xyz | valid=true +[INFO] [SESSION] COMPLETED | sessionDbId=42 | duration=45s | observations=12 | summaries=1 +``` + +#### Observation Pipeline +``` +[INFO] [QUEUE] ENQUEUED | sessionDbId=42 | type=observation | tool=Bash(npm test) | depth=1 +[INFO] [QUEUE] CLAIMED | sessionDbId=42 | messageId=5 | waitTime=0.1s +[INFO] [DB ] STORED | sessionDbId=42 | memorySessionId=xyz | obsIds=[101,102] | txnCommit=true +[INFO] [QUEUE] COMPLETED | sessionDbId=42 | messageId=5 | duration=1.2s +``` + +#### Error Conditions +``` +[ERROR] [SESSION] MEMORY_ID_MISMATCH | expected=xyz | got=abc | sessionDbId=42 +[ERROR] [DB ] STORE_FAILED | sessionDbId=42 | error="FK constraint" | observations=2 +[ERROR] [QUEUE ] STUCK | sessionDbId=42 | stuckFor=5min | action=marking_failed +[ERROR] [SDK ] CRASHED | sessionDbId=42 | error="Claude process died" | pendingWork=3 +``` + +### Health Dashboard Output + +After fixes, a healthy session should produce: +``` +[INFO] [SESSION] CREATED | contentSessionId=abc โ†’ sessionDbId=42 +[INFO] [SESSION] GENERATOR_STARTED | sessionDbId=42 | provider=claude-sdk +[INFO] [QUEUE ] CLAIMED | sessionDbId=42 | messageId=1 | type=observation +[INFO] [SESSION] MEMORY_ID_CAPTURED | sessionDbId=42 โ†’ memorySessionId=xyz +[INFO] [DB ] STORED | sessionDbId=42 | memorySessionId=xyz | obsIds=[1] +[INFO] [QUEUE ] COMPLETED | sessionDbId=42 | messageId=1 +... (more observations) +[INFO] [QUEUE ] CLAIMED | sessionDbId=42 | messageId=5 | type=summarize +[INFO] [DB ] STORED | sessionDbId=42 | summaryId=1 +[INFO] [QUEUE ] COMPLETED | sessionDbId=42 | messageId=5 +[INFO] [SESSION] COMPLETED | sessionDbId=42 | duration=45s | observations=12 +``` + +An UNHEALTHY session should make problems OBVIOUS: +``` +[INFO] [SESSION] CREATED | contentSessionId=abc โ†’ sessionDbId=42 +[INFO] [SESSION] GENERATOR_STARTED | sessionDbId=42 | provider=claude-sdk +[ERROR] [SESSION] MEMORY_ID_NOT_CAPTURED | sessionDbId=42 | waited=30s +[ERROR] [DB ] STORE_FAILED | sessionDbId=42 | error="memorySessionId is null" +[WARN ] [QUEUE ] STUCK | sessionDbId=42 | messageId=1 | age=60s | action=retry +[ERROR] [SESSION] GENERATOR_CRASHED | sessionDbId=42 | error="SDK timeout" +``` + +--- + +## Implementation Priorities + +### P0: Fix Critical Missing Logs (Session Alignment) + +1. **ResponseProcessor.ts** - Add logging BEFORE storeObservations: + ```typescript + logger.info('DB', 'STORING | sessionDbId=... | memorySessionId=... | count=...'); + ``` + +2. **SDKAgent.ts** - Verify DB update after memorySessionId capture: + ```typescript + const updated = store.updateMemorySessionId(sessionDbId, memorySessionId); + logger.info('SESSION', `MEMORY_ID_CAPTURED | sessionDbId=${...} | memorySessionId=${...} | dbUpdated=${updated}`); + ``` + +3. **SessionRoutes.ts** - Log session creation with verification: + ```typescript + logger.info('SESSION', `CREATED | contentSessionId=${...} โ†’ sessionDbId=${...} | verified=true`); + ``` + +### P1: Fix Queue Processing Logs + +1. **SessionQueueProcessor.ts** - Add CLAIM/COMPLETE logs +2. **PendingMessageStore.ts** - Add enqueue/dequeue logs + +### P2: Reduce Noise + +1. Move chatty logs to DEBUG level +2. Deduplicate migration logs +3. Consolidate hook init logs + +### P3: Add Health Validation + +1. Periodic verification log: `[INFO] [HEALTH] OK | sessions=3 | pending=0 | chroma=connected` +2. On-demand chain verification: `[INFO] [VERIFY] contentSessionId=abc chain is VALID` + +--- + +## Files Requiring Changes + +| File | Priority | Changes | +|------|----------|---------| +| `src/services/worker/agents/ResponseProcessor.ts` | P0 | Add pre-store logging with IDs | +| `src/services/worker/SDKAgent.ts` | P0 | Verify DB update, consolidate ALIGNMENT logs | +| `src/services/worker/http/routes/SessionRoutes.ts` | P0 | Add session creation verification log | +| `src/services/queue/SessionQueueProcessor.ts` | P1 | Add CLAIM/COMPLETE logs | +| `src/services/sqlite/PendingMessageStore.ts` | P1 | Add enqueue/dequeue logs | +| `src/services/worker/SessionManager.ts` | P2 | Move chatty logs to DEBUG | +| `src/hooks/new-hook.ts` | P2 | Consolidate to single INFO log | +| `src/services/sync/ChromaSync.ts` | P2 | Move progress to DEBUG, keep start/end INFO | +| `src/services/sqlite/SessionStore.ts` | P2 | Remove duplicate migration logs | + +--- + +## Verification Checklist + +After implementing changes, verify: + +- [ ] Can trace contentSessionId โ†’ sessionDbId โ†’ memorySessionId in logs +- [ ] Can see when observation storage succeeds/fails +- [ ] Can see queue claim/complete for each message +- [ ] Errors are OBVIOUS and include context for debugging +- [ ] Noise is reduced to the point where INFO level is useful +- [ ] A "normal" session produces ~10-15 INFO logs, not 50+ diff --git a/docs/reports/2026-01-05--PR-556-brainstorming-claude-md-distribution.md b/docs/reports/2026-01-05--PR-556-brainstorming-claude-md-distribution.md new file mode 100644 index 00000000..f5bf5447 --- /dev/null +++ b/docs/reports/2026-01-05--PR-556-brainstorming-claude-md-distribution.md @@ -0,0 +1,58 @@ +Brainstorming Report: CLAUDE.md Distribution Architecture + + Problem Statement + + The current folder-level CLAUDE.md generation creates "messy repos" with many auto-generated files. While the feature is valuable (especially for PR reviews and team visibility), the file proliferation could annoy users. + + Solutions Explored + + 1. Shell Magic / On-Read Population + + Explored various "magic alias" approaches where content populates dynamically on read: + - Git smudge/clean filters - Transform at checkout, not truly on-read + - FUSE filesystem - Virtual FS with dynamic generation, powerful but heavy + - Named pipes (FIFOs) - Fragile, editors don't handle well + - Symlinks to generated location - Simple but not on-demand + + 2. Command Substitution (Exciting Discovery) + + Potential Claude Code feature request - support command substitution in context config: + { + "context": { + "sources": [ + { "command": "claude-mem live-context ${CWD}" } + ] + } + } + Or folder-level .claude-context files containing just: + exec: claude-mem live-context . + Benefits: Zero files, pure dynamic context, no staleness, no merge conflicts ever. + + 3. Ephemeral + Smart Push Architecture (Recommended) + + Phase 1: Ephemeral Local + - Gitignore **/CLAUDE.md (keep root CLAUDE.md for user instructions) + - Timeline data in separate file: claude-mem-timeline.csv + - Generated fresh on SessionStart + - Block Claude from reading timeline file via .claude/settings.local.json: "ignorePaths": ["claude-mem-timeline.csv"] + - Prevents duplication (data already injected via context hook) + + Phase 2: Smart Push Timeline + - Pre-push hook generates timeline from last commit to now + - Writes claude-mem-timeline.csv and includes in push + - Reviewers, CI/CD Claude agents, and team members see what happened + - Clean separation: CLAUDE.md = human instructions, timeline.csv = machine context + + Phase 3: Team Sync (Pro Feature) + - Post-pull hook: claude-mem sync --from-timeline + - Parses timeline files, validates against local DB + - Imports missing observations with provenance tracking + - Conflict resolution for overlapping work + - Monetization opportunity: Team sync as paid feature + + Key Insight: Clean Separation + + - CLAUDE.md = User-authored project instructions (Claude SHOULD read) + - claude-mem-timeline.csv = Machine-generated context sync (blocked from reading, already injected) + + No collision between human documentation and machine context. diff --git a/docs/reports/CLAUDE.md b/docs/reports/CLAUDE.md new file mode 100644 index 00000000..442d8417 --- /dev/null +++ b/docs/reports/CLAUDE.md @@ -0,0 +1,160 @@ + +# Recent Activity + + + +### Jan 2, 2026 + +**2026-01-02--generator-failure-investigation.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36091 | 10:20 PM | ๐Ÿ”ต | Generator Failure Investigation - Chroma Vector Search Silent Failures | ~436 | +| #36079 | 10:10 PM | ๐Ÿ”ด | Fixed Generator Crashes from Silent Chroma Vector Search Failures | ~531 | + +**2026-01-02--stuck-observations.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36004 | 8:14 PM | ๐Ÿ”ต | Comprehensive Investigation Report on Stuck Observations Problem | ~527 | + +### Jan 3, 2026 + +**2026-01-04--session-id-refactor-failures.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36643 | 10:56 PM | ๐Ÿ”ต | Session ID Refactor Test Failures Root Cause | ~513 | +| #36636 | 10:46 PM | ๐ŸŸฃ | Session ID Refactor Analysis Agent Completed Comprehensive Report | ~637 | +| #36626 | 10:44 PM | ๐ŸŸฃ | Session ID Refactor Failures Report Generated | ~569 | + +**2026-01-04--gemini-agent-failures.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36638 | 10:47 PM | โœ… | GeminiAgent Failures Report Manually Created After Agent Timeout | ~604 | + +**2026-01-04--session-store-failures.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36635 | 10:46 PM | ๐ŸŸฃ | SessionStore Analysis Agent Completed Report Generation | ~545 | +| #36634 | " | โœ… | SessionStore Failures Report Generated With Test Fix Recommendations | ~595 | + +**2026-01-04--logger-coverage-failures.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36633 | 10:46 PM | โœ… | Logger Coverage Failures Report Generated | ~559 | +| #36623 | 10:44 PM | ๐ŸŸฃ | Logger Coverage Failures Report Generated | ~249 | + +**2026-01-04--session-id-validation-failures.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36628 | 10:44 PM | ๐ŸŸฃ | Session ID Validation Failures Report Generated | ~690 | + +**2026-01-04--test-suite-report.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36609 | 10:39 PM | ๐ŸŸฃ | Comprehensive Test Suite Report Generated | ~563 | + +**reports** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36599 | 10:37 PM | ๐Ÿ”ต | Reports Directory Structure Confirmed | ~203 | + +**2026-01-02--generator-failure-investigation.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + +**2026-01-03--observation-saving-failure.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36113 | 3:58 PM | ๐Ÿ”ด | Fixed FOREIGN KEY Constraint Failure in Observation Storage | ~448 | + +### Jan 4, 2026 + +**2026-01-04--issue-511-gemini-model-missing.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36924 | 2:25 AM | โœ… | Merged fix/pr-538-followups branch into main with comprehensive updates | ~481 | +| #36827 | 1:03 AM | โœ… | Branch diff shows 1,293 insertions and 98 deletions across 15 files | ~464 | +| #36781 | 12:45 AM | ๐Ÿ”ต | Complete GeminiAgent Model Configuration Gap Analysis | ~552 | +| #36776 | 12:43 AM | ๐Ÿ”ต | Issue #511 Analysis Document Located | ~459 | +| #36759 | 12:34 AM | โœ… | Created Issue #511 Analysis Report | ~304 | + +**2026-01-04--issue-517-windows-powershell-analysis.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36779 | 12:44 AM | ๐Ÿ”ต | ProcessManager Windows PowerShell Functions Complete Analysis | ~550 | +| #36720 | 12:15 AM | ๐Ÿ”ต | Issue #517 Windows PowerShell Analysis Completed | ~631 | +| #36718 | " | ๐Ÿ”ต | Issue #517 Analysis - Windows PowerShell Variable Escaping Bug | ~482 | + +**2026-01-04--issue-531-export-type-duplication.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36760 | 12:34 AM | โœ… | Created Issue #531 Report: Export Script Type Duplication | ~430 | + +**2026-01-04--gemini-agent-failures.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36751 | 12:32 AM | ๐Ÿ”ต | Gemini-Related Files Located Across Project | ~242 | + +**reports** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36748 | 12:31 AM | ๐Ÿ”ต | Existing GitHub Issue Reports Located | ~271 | + +**2026-01-04--issue-527-uv-homebrew-analysis.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36721 | 12:15 AM | ๐Ÿ”ต | Issue #527 UV Homebrew Path Missing on Apple Silicon | ~492 | +| #36719 | " | ๐Ÿ”ต | Issue #527 uv Homebrew Detection Missing on Apple Silicon Macs | ~526 | + +**2026-01-04--issue-514-orphaned-sessions-analysis.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36717 | 12:14 AM | ๐Ÿ”ต | Issue #514 Orphaned Sessions Analysis Completed | ~723 | +| #36716 | 12:13 AM | ๐Ÿ”ต | Issue #514 Orphaned .jsonl Session Files Analysis | ~616 | + +**2026-01-04--issue-532-memory-leak-analysis.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36714 | 12:12 AM | ๐Ÿ”ต | Memory Leak Analysis Report for Issue #532 Generated | ~531 | +| #36712 | 12:11 AM | ๐Ÿ”ต | Memory Leak Analysis for Issue #532 Documented | ~646 | + +**2026-01-04--issue-520-stuck-messages-analysis.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36713 | 12:11 AM | ๐Ÿ”ต | Issue #520 Stuck Messages Already Resolved | ~569 | +| #36711 | " | ๐Ÿ”ต | Issue #520 Stuck Messages Analysis - Already Resolved | ~526 | + +**2026-01-02--stuck-observations.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36710 | 12:07 AM | ๐Ÿ”ต | Stuck Observations Analysis - Six Critical Lifecycle Gaps | ~677 | + +### Jan 5, 2026 + +**2026-01-05--issue-544-mem-search-hint-claude-code.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37613 | 5:31 PM | ๐Ÿ”ต | PR #558 Review Feedback Analysis | ~544 | +| #37555 | 4:49 PM | ๐Ÿ”ต | Issue #544 Message Locations and Fix Pattern Documented | ~463 | +| #37545 | 4:47 PM | โœ… | Issue #544 Analysis Report Created for mem-search Skill Messaging Problem | ~480 | + +**2026-01-05--issue-555-windows-hooks-ipc-false.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37558 | 4:49 PM | ๐Ÿ”ต | Issue #555 Windows Hook Execution Patterns and Fix Strategy Documented | ~510 | + +**2026-01-05--issue-545-formattool-json-parse-crash.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37557 | 4:49 PM | ๐Ÿ”ต | Issue #545 Bug Location and Fix Pattern Documented | ~462 | + +**2026-01-05--issue-543-slash-command-unavailable.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37548 | 4:48 PM | โœ… | Issue #543 Analysis Report Created for Slash Command Availability | ~540 | + +**2026-01-05--issue-557-settings-module-loader-error.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37547 | 4:47 PM | โœ… | Issue #557 Analysis Report Created for Plugin Startup Failure | ~491 | + \ No newline at end of file diff --git a/package.json b/package.json index df7e3c20..baa2c229 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,8 @@ "queue": "bun scripts/check-pending-queue.ts", "queue:process": "bun scripts/check-pending-queue.ts --process", "queue:clear": "bun scripts/clear-failed-queue.ts --all --force", + "claude-md:regenerate": "bun scripts/regenerate-claude-md.ts", + "claude-md:dry-run": "bun scripts/regenerate-claude-md.ts --dry-run", "translate-readme": "bun scripts/translate-readme/cli.ts -v -o docs/i18n README.md", "translate:tier1": "npm run translate-readme -- zh ja pt-br ko es de fr", "translate:tier2": "npm run translate-readme -- he ar ru pl cs nl tr uk", diff --git a/plugin/.claude-plugin/CLAUDE.md b/plugin/.claude-plugin/CLAUDE.md new file mode 100644 index 00000000..0187d590 --- /dev/null +++ b/plugin/.claude-plugin/CLAUDE.md @@ -0,0 +1,103 @@ + +# Recent Activity + + + +### Dec 28, 2025 + +**plugin.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33503 | 10:43 PM | ๐Ÿ”ต | Plugin metadata contains no skill or MCP server definitions | ~216 | +| #33486 | 10:35 PM | โœ… | Committed Version Bump to 8.2.6 | ~212 | +| #33484 | " | โœ… | Verified Version Synchronization at 8.2.6 | ~173 | +| #33483 | " | โœ… | Synchronized Plugin Metadata Version to 8.2.6 | ~183 | +| #33478 | 10:34 PM | ๐Ÿ”ต | Plugin Metadata Configuration Structure | ~195 | +| #33477 | " | ๐Ÿ”ต | Current Version Across Package Files is 8.2.5 | ~185 | +| #33311 | 3:09 PM | โœ… | Version 8.2.3 Release Deployed with Worker Stability Improvements | ~434 | +| #33300 | 3:08 PM | โœ… | Version 8.2.4 Released with Full Automation Pipeline | ~357 | +| #33281 | 3:07 PM | โœ… | Released v8.2.1 with Worker Lifecycle Hardening | ~332 | + +### Dec 29, 2025 + +**plugin.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34368 | 11:30 PM | โœ… | Bumped version to 8.5.1 for patch release | ~218 | +| #34351 | 11:13 PM | โœ… | Version 8.5.0 Release Committed to Git | ~402 | +| #34349 | 11:12 PM | โœ… | Version 8.5.0 Synchronized Across All Files | ~220 | +| #33997 | 7:10 PM | โœ… | Version Bumped to 8.2.10 | ~179 | +| #33995 | " | โœ… | Version Bump to 8.2.10 in plugin.json | ~250 | +| #33992 | " | ๐Ÿ”ต | Version Consistency Verified Across Package Files | ~133 | +| #33956 | 6:45 PM | ๐Ÿ”ต | Version 8.2.9 Release Verification Complete | ~227 | +| #33950 | 6:42 PM | โœ… | Version Sync to 8.2.9 in Plugin Manifest | ~172 | +| #33948 | " | ๐Ÿ”ต | Current Version State Across Project Files | ~195 | +| #33854 | 4:33 PM | ๐Ÿ”ต | Worker service build and execution architecture mapped | ~509 | +| #33840 | 4:24 PM | โœ… | Version 8.2.8 Changes Committed to Git | ~233 | +| #33838 | 4:23 PM | โœ… | Patch Release Version Bump to 8.2.8 Completed | ~216 | +| #33836 | " | ๐Ÿ”ต | Current Version State Before Patch Release | ~125 | + +### Dec 31, 2025 + +**plugin.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34723 | 4:51 PM | โœ… | Version 8.5.2 Release Committed and Tagged | ~198 | +| #34722 | " | โœ… | Synchronized version to 8.5.2 in plugin metadata | ~194 | +| #34721 | " | โœ… | Version 8.5.2 Synchronized Across All Configuration Files | ~186 | +| #34718 | 4:50 PM | ๐Ÿ”ต | Plugin Configuration Version Check | ~191 | +| #34715 | " | ๐Ÿ”ต | Version 8.5.1 confirmed across all package configuration files | ~181 | + +### Jan 1, 2026 + +**plugin.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35680 | 11:43 PM | ๐ŸŸฃ | Automated version 8.5.3 release workflow completed | ~470 | +| #35674 | 11:41 PM | ๐Ÿ”ต | Release staged files identified for version 8.5.3 | ~287 | +| #35673 | " | โœ… | Staged version files for commit | ~155 | +| #35672 | " | โœ… | Version bumped to 8.5.3 in plugin configuration | ~231 | +| #35670 | 11:40 PM | ๐Ÿ”ต | Current plugin version identified as 8.5.2 | ~240 | + +### Jan 2, 2026 + +**plugin.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35944 | 2:57 PM | ๐Ÿ”ต | Current Project Version 8.5.4 Verified | ~200 | +| #35926 | 2:53 PM | โœ… | Committed Version Bump to 8.5.4 | ~210 | +| #35924 | " | โœ… | Verified Version Consistency Across All Files | ~186 | +| #35923 | " | โœ… | Updated Plugin Configuration Version to 8.5.4 | ~167 | +| #35920 | 2:52 PM | ๐Ÿ”ต | Plugin.json Version Configuration | ~200 | +| #35917 | " | ๐Ÿ”ต | Current Version Identified as 8.5.3 | ~170 | +| #35905 | 2:49 PM | ๐Ÿ”ต | Current Version is 8.5.3 Across All Package Files | ~193 | + +### Jan 3, 2026 + +**plugin.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36669 | 11:37 PM | โœ… | Merge conflicts resolved automatically - only 5 metadata files modified | ~345 | + +### Jan 4, 2026 + +**plugin.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36924 | 2:25 AM | โœ… | Merged fix/pr-538-followups branch into main with comprehensive updates | ~481 | +| #36922 | " | โœ… | Version Bump Committed to Git | ~261 | +| #36920 | " | ๐Ÿ”ต | Version 8.5.8 already set across all configuration files | ~203 | +| #36917 | 2:24 AM | โœ… | Version bumped to 8.5.8 in plugin.json | ~204 | +| #36912 | " | ๐Ÿ”ต | Current version identified as 8.5.7 across all package files | ~190 | +| #36700 | 12:00 AM | โœ… | Committed Version 8.5.7 Across All Package Files | ~260 | +| #36699 | " | โœ… | Version Bumped to 8.5.7 Across All Package Files | ~271 | +| #36697 | " | โœ… | Version Bumped to 8.5.7 for Patch Release | ~243 | + +### Jan 5, 2026 + +**plugin.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37548 | 4:48 PM | โœ… | Issue #543 Analysis Report Created for Slash Command Availability | ~540 | +| #37532 | 4:43 PM | ๐Ÿ”ต | Plugin Metadata Missing Slash Command Registration | ~372 | + \ No newline at end of file diff --git a/plugin/CLAUDE.md b/plugin/CLAUDE.md new file mode 100644 index 00000000..95a43d73 --- /dev/null +++ b/plugin/CLAUDE.md @@ -0,0 +1,84 @@ + +# Recent Activity + + + +### Dec 29, 2025 + +**package.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34351 | 11:13 PM | โœ… | Version 8.5.0 Release Committed to Git | ~402 | +| #34350 | 11:12 PM | โœ… | Version 8.5.0 Build Completed Successfully | ~425 | +| #34214 | 10:07 PM | ๐Ÿ”ต | Cursor Integration Feature Set Discovered via Memory Search | ~427 | +| #34208 | 10:00 PM | โœ… | claude-mem v8.2.10 built and synced to marketplace | ~416 | +| #34163 | 9:38 PM | โœ… | Project rebuilt with updated interactive setup wizard | ~326 | +| #34092 | 9:02 PM | โœ… | Built claude-mem project with updated interactive setup wizard | ~452 | +| #33997 | 7:10 PM | โœ… | Version Bumped to 8.2.10 | ~179 | +| #33996 | " | ๐ŸŸฃ | Built claude-mem v8.2.10 with all hooks and services | ~387 | +| #33982 | 7:08 PM | โœ… | Staged Version Mismatch Fix Changes | ~333 | +| #33951 | 6:42 PM | โœ… | Project Build Completed for Version 8.2.9 | ~326 | +| #33877 | 5:02 PM | ๐ŸŸฃ | Phase 1 build process successfully tested with worker source copying | ~372 | + +### Dec 30, 2025 + +**package.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34476 | 2:25 PM | โœ… | V2 Branch Builds Successfully Despite TypeScript Errors | ~316 | +| #34451 | 2:20 PM | โœ… | Successful Build of Claude-Mem v8.5.1 Components | ~346 | + +### Dec 31, 2025 + +**package.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34724 | 4:51 PM | โœ… | Built claude-mem v8.5.2 with issue 499 fix | ~287 | +| #34710 | 4:48 PM | โœ… | Built and deployed claude-mem v8.5.1 to marketplace | ~371 | + +### Jan 1, 2026 + +**package.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35680 | 11:43 PM | ๐ŸŸฃ | Automated version 8.5.3 release workflow completed | ~470 | +| #35613 | 10:57 PM | โœ… | Build System Compiled Updated Middleware | ~320 | +| #35427 | 6:32 PM | โœ… | Claude-Mem Project Built Successfully | ~319 | +| #35397 | 5:23 PM | โœ… | Build System Successfully Compiled All Components | ~282 | +| #35343 | 3:00 PM | โœ… | Phase 1 Git Status Shows Modified Files | ~315 | + +### Jan 2, 2026 + +**package.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35982 | 5:09 PM | โœ… | Built and deployed claude-mem version 8.5.4 with LogsModal UI component | ~295 | +| #35976 | 4:48 PM | โœ… | Claude-mem build and marketplace sync completed | ~335 | +| #35925 | 2:53 PM | โœ… | Built Project for Version 8.5.4 Release | ~294 | +| #35815 | 2:26 PM | โœ… | Claude-mem plugin built and deployed to marketplace | ~381 | + +### Jan 3, 2026 + +**package.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36687 | 11:53 PM | โœ… | MCP SDK and esbuild Dependencies Updated | ~332 | +| #36669 | 11:37 PM | โœ… | Merge conflicts resolved automatically - only 5 metadata files modified | ~345 | + +### Jan 4, 2026 + +**package.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36926 | 2:26 AM | โœ… | Git rebase aborted and working directory restored | ~242 | +| #36924 | 2:25 AM | โœ… | Merged fix/pr-538-followups branch into main with comprehensive updates | ~481 | +| #36827 | 1:03 AM | โœ… | Branch diff shows 1,293 insertions and 98 deletions across 15 files | ~464 | +| #36701 | 12:01 AM | โœ… | Built Version 8.5.7 Plugin Artifacts | ~406 | + +### Jan 5, 2026 + +**.mcp.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37545 | 4:47 PM | โœ… | Issue #544 Analysis Report Created for mem-search Skill Messaging Problem | ~480 | + \ No newline at end of file diff --git a/plugin/hooks/CLAUDE.md b/plugin/hooks/CLAUDE.md new file mode 100644 index 00000000..0533702f --- /dev/null +++ b/plugin/hooks/CLAUDE.md @@ -0,0 +1,31 @@ + +# Recent Activity + + + +### Oct 25, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #2518 | 11:47 PM | ๐Ÿ”ด | Removed Invalid 'matcher' Field from SessionStart Hook | ~228 | +| #2517 | " | ๐Ÿ”ต | Project hooks.json Template Also Empty | ~222 | +| #2501 | 11:11 PM | ๐Ÿ”ต | Context Hook Fails Due to Missing @anthropic-ai/sdk Dependency | ~245 | + +### Oct 27, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #2718 | 12:00 AM | ๐Ÿ”ด | Removed incorrect failOnError configuration from hook | ~165 | + +### Nov 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #11518 | 8:22 PM | ๐Ÿ”ต | Smart Contextualization Switched from Skill to HTTP API | ~498 | + +### Dec 24, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32309 | 3:09 PM | ๐Ÿ”ต | Claude-mem hooks system configuration structure | ~435 | + \ No newline at end of file diff --git a/plugin/modes/CLAUDE.md b/plugin/modes/CLAUDE.md new file mode 100644 index 00000000..c9c5daa7 --- /dev/null +++ b/plugin/modes/CLAUDE.md @@ -0,0 +1,183 @@ + +# Recent Activity + + + +### Dec 22, 2025 + +**code--fr.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31959 | 8:41 PM | ๐Ÿ”ต | French Language Remix Implementation Pattern | ~336 | +| #31883 | 7:12 PM | โœ… | Externalisation des prompts de rรฉsumรฉ dans le fichier de configuration JSON franรงais | ~345 | +| #31840 | 6:47 PM | ๐Ÿ”„ | Removed unused header configuration strings from French mode | ~228 | + +**code.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31958 | 8:40 PM | ๐Ÿ”ต | Mode System Structure in Claude-Mem | ~304 | +| #31891 | 7:17 PM | ๐Ÿ”ด | Migration des prompts de rรฉsumรฉ vers les fichiers de modes pour le support multilingue | ~474 | +| #31869 | 7:03 PM | ๐Ÿ”ต | ใ‚ณใƒผใƒ‰ใƒขใƒผใƒ‰JSONใƒ•ใ‚กใ‚คใƒซใฎใƒ—ใƒญใƒณใƒ—ใƒˆๆง‹้€ ใฎ็ขบ่ช | ~196 | + +**code--hu.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31941 | 7:57 PM | ๐ŸŸฃ | Hungarian language mode configuration created | ~336 | + +**code--es.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31940 | 7:56 PM | ๐Ÿ”ต | Claude-mem supports 28 language localizations for code mode | ~365 | +| #31922 | 7:50 PM | ๐Ÿ”ต | Spanish Language Mode Remix File Structure | ~323 | +| #31875 | 7:07 PM | โœ… | Standardisation du pied de page de rรฉsumรฉ en anglais avec exigence linguistique | ~301 | +| #31874 | " | โœ… | Ajout des instructions de rรฉsumรฉ au fichier de mode espagnol | ~308 | +| #31871 | 7:04 PM | ๐Ÿ”ต | Examen de la structure des fichiers de modes multilingues | ~354 | +| #31838 | 6:46 PM | ๐Ÿ”„ | Removed unused header configuration strings from Spanish mode | ~240 | + +**code--el.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31939 | 7:56 PM | ๐ŸŸฃ | Greek language mode configuration created | ~330 | + +**code--it.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31938 | 7:56 PM | ๐ŸŸฃ | Italian language mode configuration created | ~333 | + +**code--sv.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31937 | 7:56 PM | ๐ŸŸฃ | Swedish language mode configuration created | ~330 | + +**code--ro.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31936 | 7:56 PM | ๐ŸŸฃ | Romanian language mode configuration created | ~328 | + +**code--bn.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31935 | 7:56 PM | ๐ŸŸฃ | Bengali language mode configuration created | ~329 | + +**code--hi.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31934 | 7:55 PM | ๐ŸŸฃ | Hindi language mode configuration created | ~318 | + +**code--id.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31933 | 7:55 PM | ๐ŸŸฃ | Indonesian language mode configuration created | ~307 | + +**code--uk.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31932 | 7:54 PM | ๐ŸŸฃ | Ukrainian Language Mode File Created for Code Development Observer | ~330 | + +**code--tr.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31931 | 7:53 PM | ๐ŸŸฃ | Turkish Language Mode File Created for Code Development Observer | ~323 | + +**code--nl.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31930 | 7:53 PM | ๐ŸŸฃ | Dutch Language Mode File Created for Code Development Observer | ~317 | + +**code--cs.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31929 | 7:53 PM | ๐ŸŸฃ | Czech Language Mode File Created for Code Development Observer | ~316 | + +**code--pl.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31928 | 7:53 PM | ๐ŸŸฃ | Polish Language Mode File Created for Code Development Observer | ~319 | + +**code--ar.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31927 | 7:53 PM | ๐ŸŸฃ | Arabic Language Mode File Created for Code Development Observer | ~320 | + +**code--he.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31926 | 7:53 PM | ๐ŸŸฃ | Hebrew Language Mode File Created for Code Development Observer | ~319 | + +**code--ja.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31925 | 7:52 PM | ๐ŸŸฃ | Japanese Language Mode File Created for Code Development Observer | ~324 | +| #31881 | 7:10 PM | โœ… | Ajout des prompts de summary au fichier mode japonais | ~269 | + +**code--ko.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31924 | 7:52 PM | ๐ŸŸฃ | Korean Language Mode File Created for Code Development Observer | ~318 | +| #31877 | 7:09 PM | ๐Ÿ”ต | Examen du fichier de mode corรฉen rรฉvรฉlant une structure de prompts externalisรฉs | ~372 | +| #31837 | 6:46 PM | ๐Ÿ”„ | Removed unused header configuration strings from Korean mode | ~255 | + +**code--de.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31890 | 7:17 PM | ๐Ÿ”ต | Modifications en cours sur les fichiers de modes multilingues et le systรจme de prompts | ~325 | +| #31886 | 7:14 PM | ๐Ÿ”„ | Externalisation du footer de rรฉsumรฉ dans la configuration des prompts | ~318 | +| #31841 | 6:47 PM | ๐Ÿ”„ | Removed unused header configuration strings from German mode | ~231 | + +**code--pt.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31888 | 7:16 PM | โœ… | Ajout du champ summary_footer aux prompts du mode portugais | ~301 | +| #31842 | 6:47 PM | ๐Ÿ”„ | Removed unused header configuration strings from Portuguese mode | ~225 | + +**code--zh.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31884 | 7:13 PM | โœ… | Externalisation des prompts de rรฉsumรฉ dans le fichier de configuration JSON chinois | ~290 | +| #31839 | 6:46 PM | ๐Ÿ”„ | Removed unused header configuration strings from Chinese mode | ~260 | + +**code--th.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31845 | 6:48 PM | ๐Ÿ”„ | Removed unused header configuration strings from Thai mode | ~215 | + +**code--vi.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31844 | 6:47 PM | ๐Ÿ”„ | Removed unused header configuration strings from Vietnamese mode | ~215 | + +**code--ru.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31843 | 6:47 PM | ๐Ÿ”„ | Removed unused header configuration strings from Russian mode | ~225 | + +### Dec 23, 2025 + +**email-investigation.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32026 | 7:39 PM | ๐Ÿ”ต | Email Investigation Mode Configuration Located | ~300 | + +**code--pt-br.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32297 | 7:50 PM | โœ… | Renamed Portuguese mode file to Brazilian Portuguese | ~191 | +| #32322 | " | โœ… | Updated pt-br mode display name to Brazilian Portuguese | ~221 | + +### Dec 24, 2025 + +**email-investigation.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32384 | 9:18 PM | โœ… | Email investigation mode enhanced with observation granularity guidance | ~340 | +| #32227 | 8:21 PM | ๐Ÿ”ด | Added missing summary prompts to email-investigation mode | ~308 | +| #32209 | 8:16 PM | ๐ŸŸฃ | Email Investigation mode configured for fraud analysis | ~348 | +| #32205 | 7:55 PM | โœ… | Email Investigation Observation Granularity Guidance | ~256 | + +### Dec 25, 2025 + +**email-investigation.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32456 | 5:41 PM | โœ… | Completed merge of main branch into feature/titans-phase1-3 | ~354 | + \ No newline at end of file diff --git a/plugin/scripts/CLAUDE.md b/plugin/scripts/CLAUDE.md new file mode 100644 index 00000000..8e3c59f7 --- /dev/null +++ b/plugin/scripts/CLAUDE.md @@ -0,0 +1,145 @@ + +# Recent Activity + + + +### Nov 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #6429 | 3:41 PM | ๐Ÿ”ต | Stop Hook and Summary Generation Context Issue Identified | ~477 | + +### Nov 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #10177 | 1:40 PM | ๐Ÿ”ต | Database Schema and Migration System in context-hook.js | ~425 | + +### Nov 19, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #12149 | 7:28 PM | ๐Ÿ”ต | Read save-hook.js minified source code | ~184 | + +### Nov 21, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #13085 | 12:51 AM | ๐Ÿ”ต | Main branch handleSessionInit always starts generator immediately after initialization | ~557 | +| #13084 | " | ๐Ÿ”ต | Main branch observation handler queues observations and auto-starts generator | ~527 | +| #13083 | " | ๐Ÿ”ต | Key difference found between main and current branch in new-hook.js | ~432 | +| #13082 | 12:50 AM | ๐Ÿ”ต | Session lifecycle tracking implementation in new-hook.js | ~486 | +| #13053 | 12:32 AM | ๐Ÿ”ต | Worker Service Database Query Patterns | ~327 | +| #13052 | " | ๐Ÿ”ต | Save-hook.js Architecture and Endless Mode Implementation | ~492 | + +### Dec 1, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #18480 | 3:39 PM | โœ… | Successfully Rebuilt Plugin After Merge Conflict Resolution | ~294 | + +### Dec 4, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #20052 | 3:23 PM | โœ… | Built and deployed version 6.5.2 to marketplace | ~321 | + +### Dec 7, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #21251 | 6:06 PM | ๐Ÿ”ต | Context Hook Plugin Architecture and Worker Communication | ~405 | + +### Dec 8, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22092 | 6:40 PM | ๐Ÿ”ต | Queue Depth Check Not Found in Minified Code | ~217 | +| #22091 | " | ๐Ÿ”ต | Save Hook Script Structure Revealed | ~472 | +| #22085 | 6:34 PM | ๐Ÿ”ต | Examined pre-tool-use-hook.js implementation showing timing-only logic | ~330 | + +### Dec 9, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22557 | 1:08 AM | โœ… | Build completed for version 7.0.3 | ~342 | + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23444 | 2:25 PM | ๐ŸŸฃ | Build Pipeline Execution Successful | ~293 | + +### Dec 11, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24057 | 2:56 PM | โœ… | Hook Scripts Shebang Verification | ~294 | +| #24056 | 2:55 PM | โœ… | Worker CLI Shebang Verification | ~258 | +| #24055 | " | โœ… | Build Successful with Bun Runtime Shebangs | ~355 | + +### Dec 12, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24636 | 10:46 PM | ๐Ÿ”ต | Duplicate Smart Install Scripts in Project Structure | ~288 | +| #24635 | " | ๐Ÿ”ต | Claude-Mem Smart Install Script Architecture | ~371 | +| #24359 | 7:00 PM | ๐ŸŸฃ | Phase 1 Critical Code Fixes Completed via Agent Task | ~441 | +| #24358 | 6:59 PM | โœ… | Completed Phase 1 Code Fixes for better-sqlite3 Migration | ~385 | +| #24357 | " | โœ… | Removed createRequire Import from smart-install.js | ~284 | +| #24356 | " | โœ… | Removed Native Module Verification from main() Function | ~384 | +| #24355 | " | โœ… | Removed better-sqlite3 Error Detection from runNpmInstall() | ~324 | +| #24354 | 6:58 PM | โœ… | Removed getWindowsErrorHelp() Function from smart-install.js | ~356 | +| #24353 | " | โœ… | Removed verifyNativeModules() Function from smart-install.js | ~340 | +| #24352 | " | โœ… | Removed better-sqlite3 Existence Check from needsInstall() | ~266 | +| #24351 | " | โœ… | Removed BETTER_SQLITE3_PATH Constant from smart-install.js | ~226 | +| #24344 | 6:56 PM | ๐Ÿ”ต | smart-install.js Contains Obsolete better-sqlite3 Dependencies | ~380 | + +### Dec 13, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25286 | 8:41 PM | ๐Ÿ”ต | New Hook Fails with Node.js Path Error | ~298 | +| #25285 | " | ๐Ÿ”ต | Context Hook Runs Successfully with Node.js | ~306 | +| #25283 | " | ๐Ÿ”ต | Bun Wrapper Analysis: Fallback Detection System | ~416 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26800 | 11:39 PM | โœ… | Version 7.2.3 Build Complete With Worker Restart Fix | ~394 | +| #26791 | 11:38 PM | โœ… | Phase 3 Complete: Project Built Successfully With Worker Restart Fix | ~446 | +| #26720 | 11:23 PM | ๐Ÿ”ต | Smart Install Handles Dependencies But No Worker Coordination | ~468 | +| #26719 | " | ๐Ÿ”ต | Worker CLI Provides Start/Stop/Restart Commands With Health Check Validation | ~490 | +| #26718 | " | ๐Ÿ”ต | Worker CLI Restart Implementation Details | ~452 | +| #26717 | 11:22 PM | ๐Ÿ”ต | Context Hook Worker Startup Logic Handles Initial Start But Not Post-Update Restart | ~485 | +| #26716 | " | ๐Ÿ”ต | Context Hook Worker Startup Logic Revealed | ~538 | +| #26715 | " | ๐Ÿ”ต | Smart Install Script Handles Dependency Installation Without Worker Restart | ~430 | +| #26052 | 7:13 PM | ๐Ÿ”ต | Examined Minified Context Hook Source Code | ~285 | +| #25686 | 4:22 PM | ๐Ÿ”ต | SessionRoutes tracks missing last_user_message errors at two different locations | ~456 | +| #25685 | " | ๐Ÿ”ต | Progress summary generation system uses Claude to create XML-formatted session checkpoints | ~461 | + +### Dec 16, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27554 | 4:48 PM | โœ… | Project built successfully with version 7.3.1 | ~306 | + +### Dec 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #28924 | 7:29 PM | ๐Ÿ”ต | Plugin MCP Server Uses Bun Runtime | ~283 | + +### Dec 26, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32983 | 11:04 PM | ๐ŸŸฃ | Complete build and deployment pipeline executed | ~260 | + +### Jan 4, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36873 | 1:55 AM | ๐Ÿ”ต | Smart-Install Script Analyzed for Homebrew Path Implementation | ~466 | + \ No newline at end of file diff --git a/plugin/scripts/context-generator.cjs b/plugin/scripts/context-generator.cjs index 9971a56b..68ce9e72 100644 --- a/plugin/scripts/context-generator.cjs +++ b/plugin/scripts/context-generator.cjs @@ -1,12 +1,12 @@ -"use strict";var mt=Object.create;var k=Object.defineProperty;var ut=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var _t=Object.getPrototypeOf,Et=Object.prototype.hasOwnProperty;var gt=(r,e)=>{for(var t in e)k(r,t,{get:e[t],enumerable:!0})},te=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of lt(e))!Et.call(r,n)&&n!==t&&k(r,n,{get:()=>e[n],enumerable:!(s=ut(e,n))||s.enumerable});return r};var v=(r,e,t)=>(t=r!=null?mt(_t(r)):{},te(e||!r||!r.__esModule?k(t,"default",{value:r,enumerable:!0}):t,r)),Tt=r=>te(k({},"__esModule",{value:!0}),r);var Dt={};gt(Dt,{generateContext:()=>ee});module.exports=Tt(Dt);var dt=v(require("path"),1),pt=require("os"),ct=require("fs");var le=require("bun:sqlite");var h=require("path"),ae=require("os"),de=require("fs");var pe=require("url");var R=require("fs"),$=require("path"),ne=require("os");var se="bugfix,feature,refactor,discovery,decision,change",re="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var y=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_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,$.join)((0,ne.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:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:se,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:re,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let t=this.get(e);return parseInt(t,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,R.existsSync)(e)){let i=this.getAllDefaults();try{let a=(0,$.dirname)(e);(0,R.existsSync)(a)||(0,R.mkdirSync)(a,{recursive:!0}),(0,R.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 i}let t=(0,R.readFileSync)(e,"utf-8"),s=JSON.parse(t),n=s;if(s.env&&typeof s.env=="object"){n=s.env;try{(0,R.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 o}catch(t){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,t),this.getAllDefaults()}}};var N=require("fs"),L=require("path"),ie=require("os"),B=(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))(B||{}),oe=(0,L.join)((0,ie.homedir)(),".claude-mem"),G=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)(oe,"logs");(0,N.existsSync)(e)||(0,N.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)(oe,"settings.json");if((0,N.existsSync)(e)){let t=(0,N.readFileSync)(e,"utf-8"),n=(JSON.parse(t).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=B[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})},te=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of _t(e))!gt.call(r,n)&&n!==t&&x(r,n,{get:()=>e[n],enumerable:!(s=lt(e,n))||s.enumerable});return r};var v=(r,e,t)=>(t=r!=null?ut(Et(r)):{},te(e||!r||!r.__esModule?x(t,"default",{value:r,enumerable:!0}):t,r)),ft=r=>te(x({},"__esModule",{value:!0}),r);var Dt={};Tt(Dt,{generateContext:()=>ee});module.exports=ft(Dt);var pt=v(require("path"),1),ct=require("os"),mt=require("fs");var ue=require("bun:sqlite");var h=require("path"),ie=require("os"),ae=require("fs");var de=require("url");var I=require("fs"),ne=require("path"),oe=require("os");var se="bugfix,feature,refactor,discovery,decision,change",re="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var y=require("fs"),k=require("path"),B=(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))(B||{}),G=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let e=R.get("CLAUDE_MEM_DATA_DIR"),t=(0,k.join)(e,"logs");(0,y.existsSync)(t)||(0,y.mkdirSync)(t,{recursive:!0});let s=new Date().toISOString().split("T")[0];this.logFilePath=(0,k.join)(t,`claude-mem-${s}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}getLevel(){if(this.level===null)try{let e=R.get("CLAUDE_MEM_DATA_DIR"),t=(0,k.join)(e,"settings.json"),n=R.loadFromFile(t).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=B[n]??1}catch(e){console.error("[LOGGER] Failed to load settings, using INFO level:",e),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=typeof t=="string"?JSON.parse(t):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(_).map(([f,C])=>`${f}=${C}`).join(", ")}}`)}let g=`[${i}] [${a}] [${d}] ${c}${s}${l}${u}`;if(this.logFilePath)try{(0,N.appendFileSync)(this.logFilePath,g+` +`+JSON.stringify(o,null,2):u=" "+this.formatData(o));let l="";if(n){let{sessionId:E,memorySessionId:T,correlationId:b,..._}=n;Object.keys(_).length>0&&(l=` {${Object.entries(_).map(([f,C])=>`${f}=${C}`).join(", ")}}`)}let g=`[${i}] [${a}] [${d}] ${c}${s}${l}${u}`;if(this.logFilePath)try{(0,y.appendFileSync)(this.logFilePath,g+` `,"utf8")}catch(E){process.stderr.write(`[LOGGER] Failed to write to log file: ${E} `)}else process.stderr.write(g+` `)}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+)\)?/),u=c?`${c[1].split("/").pop()}:${c[2]}`:"unknown",l={...s,location:u};return this.warn(e,`[HAPPY-PATH] ${t}`,l,n),o}},m=new G;var ht={};function ft(){return typeof __dirname<"u"?__dirname:(0,h.dirname)((0,pe.fileURLToPath)(ht.url))}var St=ft(),I=y.get("CLAUDE_MEM_DATA_DIR"),H=process.env.CLAUDE_CONFIG_DIR||(0,h.join)((0,ae.homedir)(),".claude"),Bt=(0,h.join)(I,"archives"),Gt=(0,h.join)(I,"logs"),Ht=(0,h.join)(I,"trash"),Wt=(0,h.join)(I,"backups"),Yt=(0,h.join)(I,"modes"),Vt=(0,h.join)(I,"settings.json"),ce=(0,h.join)(I,"claude-mem.db"),qt=(0,h.join)(I,"vector-db"),Kt=(0,h.join)(H,"settings.json"),Jt=(0,h.join)(H,"commands"),zt=(0,h.join)(H,"CLAUDE.md");function me(r){(0,de.mkdirSync)(r,{recursive:!0})}function ue(){return(0,h.join)(St,"..")}var U=class{db;constructor(e=ce){e!==":memory:"&&me(I),this.db=new le.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()}initializeSchema(){this.db.run(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),u=c?`${c[1].split("/").pop()}:${c[2]}`:"unknown",l={...s,location:u};return this.warn(e,`[HAPPY-PATH] ${t}`,l,n),o}},m=new G;var R=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_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,ne.join)((0,oe.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:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:se,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:re,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let t=this.get(e);return parseInt(t,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,I.existsSync)(e))return this.getAllDefaults();let t=(0,I.readFileSync)(e,"utf-8"),s=JSON.parse(t),n=s;if(s.env&&typeof s.env=="object"){n=s.env;try{(0,I.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),m.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(i){m.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},i)}}let o={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(o[i]=n[i]);return o}catch(t){return m.warn("SETTINGS","Failed to load settings, using defaults",{settingsPath:e},t),this.getAllDefaults()}}};var bt={};function St(){return typeof __dirname<"u"?__dirname:(0,h.dirname)((0,de.fileURLToPath)(bt.url))}var ht=St(),N=R.get("CLAUDE_MEM_DATA_DIR"),H=process.env.CLAUDE_CONFIG_DIR||(0,h.join)((0,ie.homedir)(),".claude"),Ht=(0,h.join)(N,"archives"),Wt=(0,h.join)(N,"logs"),Yt=(0,h.join)(N,"trash"),Vt=(0,h.join)(N,"backups"),qt=(0,h.join)(N,"modes"),Kt=(0,h.join)(N,"settings.json"),pe=(0,h.join)(N,"claude-mem.db"),Jt=(0,h.join)(N,"vector-db"),Qt=(0,h.join)(H,"settings.json"),zt=(0,h.join)(H,"commands"),Zt=(0,h.join)(H,"CLAUDE.md");function ce(r){(0,ae.mkdirSync)(r,{recursive:!0})}function me(){return(0,h.join)(ht,"..")}var $=class{db;constructor(e=pe){e!==":memory:"&&ce(N),this.db=new ue.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()}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"?u=` 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 INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),m.info("DB","Migration004 applied successfully"))}ensureWorkerPortColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;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"),m.info("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(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(d=>d.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),m.info("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(d=>d.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),m.info("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(d=>d.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),m.info("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.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;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}m.info("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.prepare("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),m.info("DB","Migration004 applied successfully"))}ensureWorkerPortColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;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"),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(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(d=>d.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(d=>d.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(d=>d.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.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;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}m.debug("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),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"?u=` 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.info("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.info("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()),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(` 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"?u=` 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.info("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.info("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),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(` 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"?u=` 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.info("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.info("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()),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(` 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"?u=` INSERT INTO user_prompts_fts(rowid, prompt_text) VALUES (new.id, new.prompt_text); END; - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),m.info("DB","Successfully created user_prompts table with FTS5 support")}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.info("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.info("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.info("DB","Creating pending_messages table"),this.db.run(` + `),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 with FTS5 support")}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(` 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"?u=` 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.info("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;m.info("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(u=>u.name===o);return a.some(u=>u.name===i)?!1:d?(this.db.run(`ALTER TABLE ${n} RENAME COLUMN ${o} TO ${i}`),m.info("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.info("DB",`Successfully renamed ${t} session ID columns`):m.info("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.info("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())}updateMemorySessionId(e,t){this.db.prepare(` + `),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(u=>u.name===o);return a.some(u=>u.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())}updateMemorySessionId(e,t){this.db.prepare(` UPDATE sdk_sessions SET memory_session_id = ? WHERE id = ? @@ -491,7 +491,7 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?u=` 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 _e=v(require("path"),1);function Ee(r){if(!r||r.trim()==="")return m.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:r}),"unknown-project";let e=_e.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 ge=v(require("path"),1),Te=require("os");var M=require("fs"),w=require("path");var O=class r{static instance=null;activeMode=null;modesDir;constructor(){let e=ue(),t=[(0,w.join)(e,"modes"),(0,w.join)(e,"..","plugin","modes")],s=t.find(n=>(0,M.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,w.join)(this.modesDir,`${e}.json`);if(!(0,M.existsSync)(t))throw new Error(`Mode file not found: ${t}`);let s=(0,M.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(c=>c.id),concepts:d.observation_concepts.map(c=>c.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 W(){let r=ge.default.join((0,Te.homedir)(),".claude-mem","settings.json"),e=y.loadFromFile(r),t=e.CLAUDE_MEM_MODE,s=t==="code"||t.startsWith("code--"),n,o;if(s)n=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(",").map(i=>i.trim()).filter(Boolean)),o=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(i=>i.trim()).filter(Boolean));else{let i=O.getInstance().getActiveMode();n=new Set(i.observation_types.map(a=>a.id)),o=new Set(i.observation_concepts.map(a=>a.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:o,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 p={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"},fe=4,Se=1;function Y(r){let e=(r.title?.length||0)+(r.subtitle?.length||0)+(r.narrative?.length||0)+JSON.stringify(r.facts||[]).length;return Math.ceil(e/fe)}function V(r){let e=r.length,t=r.reduce((i,a)=>i+Y(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 bt(r){return O.getInstance().getWorkEmoji(r)}function A(r,e){let t=Y(r),s=r.discovery_tokens||0,n=bt(r.type),o=s>0?`${n} ${s.toLocaleString()}`:"-";return{readTokens:t,discoveryTokens:s,discoveryDisplay:o,workEmoji:n}}function F(r){return r.showReadTokens||r.showWorkTokens||r.showSavingsAmount||r.showSavingsPercent}var he=v(require("path"),1),be=require("os"),P=require("fs");function q(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 le=v(require("path"),1);function _e(r){if(!r||r.trim()==="")return m.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:r}),"unknown-project";let e=le.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 Ee=v(require("path"),1),ge=require("os");var M=require("fs"),U=require("path");var O=class r{static instance=null;activeMode=null;modesDir;constructor(){let e=me(),t=[(0,U.join)(e,"modes"),(0,U.join)(e,"..","plugin","modes")],s=t.find(n=>(0,M.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,U.join)(this.modesDir,`${e}.json`);if(!(0,M.existsSync)(t))throw new Error(`Mode file not found: ${t}`);let s=(0,M.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(c=>c.id),concepts:d.observation_concepts.map(c=>c.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 W(){let r=Ee.default.join((0,ge.homedir)(),".claude-mem","settings.json"),e=R.loadFromFile(r),t=e.CLAUDE_MEM_MODE,s=t==="code"||t.startsWith("code--"),n,o;if(s)n=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(",").map(i=>i.trim()).filter(Boolean)),o=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(i=>i.trim()).filter(Boolean));else{let i=O.getInstance().getActiveMode();n=new Set(i.observation_types.map(a=>a.id)),o=new Set(i.observation_concepts.map(a=>a.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:o,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 p={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"},Te=4,Y=1;function V(r){let e=(r.title?.length||0)+(r.subtitle?.length||0)+(r.narrative?.length||0)+JSON.stringify(r.facts||[]).length;return Math.ceil(e/Te)}function q(r){let e=r.length,t=r.reduce((i,a)=>i+V(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 Ot(r){return O.getInstance().getWorkEmoji(r)}function A(r,e){let t=V(r),s=r.discovery_tokens||0,n=Ot(r.type),o=s>0?`${n} ${s.toLocaleString()}`:"-";return{readTokens:t,discoveryTokens:s,discoveryDisplay:o,workEmoji:n}}function w(r){return r.showReadTokens||r.showWorkTokens||r.showSavingsAmount||r.showSavingsPercent}var fe=v(require("path"),1),Se=require("os"),P=require("fs");function K(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, @@ -505,20 +505,40 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?u=` ) ORDER BY created_at_epoch DESC LIMIT ? - `).all(e,...s,...o,t.totalObservationCount)}function K(r,e,t){return r.db.prepare(` + `).all(e,...s,...o,t.totalObservationCount)}function J(r,e,t){return r.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,t.sessionCount+Se)}function Ot(r){return r.replace(/\//g,"-")}function Ct(r){try{if(!(0,P.existsSync)(r))return{userMessage:"",assistantMessage:""};let e=(0,P.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 J(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=Ot(s),a=he.default.join((0,be.homedir)(),".claude","projects",i,`${o}.jsonl`);return Ct(a)}function Oe(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 z(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 Ce(r,e){return new Set(r.slice(0,e).map(t=>t.id))}function Re(){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 Ie(r){return[`# [${r}] recent context, ${Re()}`,""]}function Ne(){return[`**Legend:** session-request | ${O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji} ${t.id}`).join(" | ")}`,""]}function ye(){return["**Column Key**:","- **Read**: Tokens to read this observation (cost to learn it now)","- **Work**: Tokens spent on work that produced this record ( research, building, deciding)",""]}function Ae(){return["**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.","","When you need implementation details, rationale, or debugging context:","- Use MCP tools (search, get_observations) to fetch full observations on-demand","- Critical types ( bugfix, decision) often need detailed fetching","- Trust this index over re-reading code for past decisions and learnings",""]}function ve(r,e){let t=[];if(t.push("**Context Economics**:"),t.push(`- Loading: ${r.totalObservations} observations (${r.totalReadTokens.toLocaleString()} tokens to read)`),t.push(`- Work investment: ${r.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`),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(s)}return t.push(""),t}function Le(r){return[`### ${r}`,""]}function Me(r){return[`**${r}**`,"| ID | Time | T | Title | Read | Work |","|----|------|---|-------|------|------|"]}function De(r,e,t){let s=r.title||"Untitled",n=O.getInstance().getTypeIcon(r.type),{readTokens:o,discoveryDisplay:i}=A(r,t),a=t.showReadTokens?`~${o}`:"",d=t.showWorkTokens?i:"";return`| #${r.id} | ${e||'"'} | ${n} | ${s} | ${a} | ${d} |`}function xe(r,e,t,s){let n=[],o=r.title||"Untitled",i=O.getInstance().getTypeIcon(r.type),{readTokens:a,discoveryDisplay:d}=A(r,s);n.push(`**#${r.id}** ${e||'"'} ${i} **${o}**`),t&&(n.push(""),n.push(t),n.push(""));let c=[];return s.showReadTokens&&c.push(`Read: ~${a}`),s.showWorkTokens&&c.push(`Work: ${d}`),c.length>0&&n.push(c.join(", ")),n.push(""),n}function ke(r,e){let t=`${r.request||"Session started"} (${e})`;return[`**#S${r.id}** ${t}`,""]}function D(r,e){return e?[`**${r}**: ${e}`,""]:[]}function $e(r){return r.assistantMessage?["","---","","**Previously**","",`A: ${r.assistantMessage}`,""]:[]}function Ue(r,e){return["",`Access ${Math.round(r/1e3)}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.`]}function we(r){return`# [${r}] recent context, ${Re()} + `).all(e,t.sessionCount+Y)}function he(r,e,t){let s=Array.from(t.observationTypes),n=s.map(()=>"?").join(","),o=Array.from(t.observationConcepts),i=o.map(()=>"?").join(","),a=e.map(()=>"?").join(",");return r.db.prepare(` + SELECT + id, memory_session_id, type, title, subtitle, narrative, + facts, concepts, files_read, files_modified, discovery_tokens, + created_at, created_at_epoch, project + FROM observations + WHERE project IN (${a}) + AND type IN (${n}) + AND EXISTS ( + SELECT 1 FROM json_each(concepts) + WHERE value IN (${i}) + ) + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(...e,...s,...o,t.totalObservationCount)}function be(r,e,t){let s=e.map(()=>"?").join(",");return r.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 (${s}) + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(...e,t.sessionCount+Y)}function Ct(r){return r.replace(/\//g,"-")}function Rt(r){try{if(!(0,P.existsSync)(r))return{userMessage:"",assistantMessage:""};let e=(0,P.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 Q(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=Ct(s),a=fe.default.join((0,Se.homedir)(),".claude","projects",i,`${o}.jsonl`);return Rt(a)}function Oe(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 z(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 Ce(r,e){return new Set(r.slice(0,e).map(t=>t.id))}function Re(){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 Ne(r){return[`# [${r}] recent context, ${Re()}`,""]}function ye(){return[`**Legend:** session-request | ${O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji} ${t.id}`).join(" | ")}`,""]}function Ie(){return["**Column Key**:","- **Read**: Tokens to read this observation (cost to learn it now)","- **Work**: Tokens spent on work that produced this record ( research, building, deciding)",""]}function Ae(){return["**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.","","When you need implementation details, rationale, or debugging context:","- Use the mem-search skill to fetch full observations on-demand","- Critical types ( bugfix, decision) often need detailed fetching","- Trust this index over re-reading code for past decisions and learnings",""]}function ve(r,e){let t=[];if(t.push("**Context Economics**:"),t.push(`- Loading: ${r.totalObservations} observations (${r.totalReadTokens.toLocaleString()} tokens to read)`),t.push(`- Work investment: ${r.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`),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(s)}return t.push(""),t}function Me(r){return[`### ${r}`,""]}function Le(r){return[`**${r}**`,"| ID | Time | T | Title | Read | Work |","|----|------|---|-------|------|------|"]}function De(r,e,t){let s=r.title||"Untitled",n=O.getInstance().getTypeIcon(r.type),{readTokens:o,discoveryDisplay:i}=A(r,t),a=t.showReadTokens?`~${o}`:"",d=t.showWorkTokens?i:"";return`| #${r.id} | ${e||'"'} | ${n} | ${s} | ${a} | ${d} |`}function xe(r,e,t,s){let n=[],o=r.title||"Untitled",i=O.getInstance().getTypeIcon(r.type),{readTokens:a,discoveryDisplay:d}=A(r,s);n.push(`**#${r.id}** ${e||'"'} ${i} **${o}**`),t&&(n.push(""),n.push(t),n.push(""));let c=[];return s.showReadTokens&&c.push(`Read: ~${a}`),s.showWorkTokens&&c.push(`Work: ${d}`),c.length>0&&n.push(c.join(", ")),n.push(""),n}function ke(r,e){let t=`${r.request||"Session started"} (${e})`;return[`**#S${r.id}** ${t}`,""]}function L(r,e){return e?[`**${r}**: ${e}`,""]:[]}function $e(r){return r.assistantMessage?["","---","","**Previously**","",`A: ${r.assistantMessage}`,""]:[]}function Ue(r,e){return["",`Access ${Math.round(r/1e3)}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.`]}function we(r){return`# [${r}] recent context, ${Re()} -No previous sessions found for this project yet.`}function Fe(){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 Pe(r){return["",`${p.bright}${p.cyan}[${r}] recent context, ${Fe()}${p.reset}`,`${p.gray}${"\u2500".repeat(60)}${p.reset}`,""]}function je(){let e=O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji} ${t.id}`).join(" | ");return[`${p.dim}Legend: session-request | ${e}${p.reset}`,""]}function Xe(){return[`${p.bright}Column Key${p.reset}`,`${p.dim} Read: Tokens to read this observation (cost to learn it now)${p.reset}`,`${p.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${p.reset}`,""]}function Be(){return[`${p.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${p.reset}`,"",`${p.dim}When you need implementation details, rationale, or debugging context:${p.reset}`,`${p.dim} - Use MCP tools (search, get_observations) to fetch full observations on-demand${p.reset}`,`${p.dim} - Critical types ( bugfix, decision) often need detailed fetching${p.reset}`,`${p.dim} - Trust this index over re-reading code for past decisions and learnings${p.reset}`,""]}function Ge(r,e){let t=[];if(t.push(`${p.bright}${p.cyan}Context Economics${p.reset}`),t.push(`${p.dim} Loading: ${r.totalObservations} observations (${r.totalReadTokens.toLocaleString()} tokens to read)${p.reset}`),t.push(`${p.dim} Work investment: ${r.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${p.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(`${p.green}${s}${p.reset}`)}return t.push(""),t}function He(r){return[`${p.bright}${p.cyan}${r}${p.reset}`,""]}function We(r){return[`${p.dim}${r}${p.reset}`]}function Ye(r,e,t,s){let n=r.title||"Untitled",o=O.getInstance().getTypeIcon(r.type),{readTokens:i,discoveryTokens:a,workEmoji:d}=A(r,s),c=t?`${p.dim}${e}${p.reset}`:" ".repeat(e.length),u=s.showReadTokens&&i>0?`${p.dim}(~${i}t)${p.reset}`:"",l=s.showWorkTokens&&a>0?`${p.dim}(${d} ${a.toLocaleString()}t)${p.reset}`:"";return` ${p.dim}#${r.id}${p.reset} ${c} ${o} ${n} ${u} ${l}`}function Ve(r,e,t,s,n){let o=[],i=r.title||"Untitled",a=O.getInstance().getTypeIcon(r.type),{readTokens:d,discoveryTokens:c,workEmoji:u}=A(r,n),l=t?`${p.dim}${e}${p.reset}`:" ".repeat(e.length),g=n.showReadTokens&&d>0?`${p.dim}(~${d}t)${p.reset}`:"",E=n.showWorkTokens&&c>0?`${p.dim}(${u} ${c.toLocaleString()}t)${p.reset}`:"";return o.push(` ${p.dim}#${r.id}${p.reset} ${l} ${a} ${p.bright}${i}${p.reset}`),s&&o.push(` ${p.dim}${s}${p.reset}`),(g||E)&&o.push(` ${g} ${E}`),o.push(""),o}function qe(r,e){let t=`${r.request||"Session started"} (${e})`;return[`${p.yellow}#S${r.id}${p.reset} ${t}`,""]}function x(r,e,t){return e?[`${t}${r}:${p.reset} ${e}`,""]:[]}function Ke(r){return r.assistantMessage?["","---","",`${p.bright}${p.magenta}Previously${p.reset}`,"",`${p.dim}A: ${r.assistantMessage}${p.reset}`,""]:[]}function Je(r,e){let t=Math.round(r/1e3);return["",`${p.dim}Access ${t}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.${p.reset}`]}function ze(r){return` -${p.bright}${p.cyan}[${r}] recent context, ${Fe()}${p.reset} +No previous sessions found for this project yet.`}function Pe(){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 Fe(r){return["",`${p.bright}${p.cyan}[${r}] recent context, ${Pe()}${p.reset}`,`${p.gray}${"\u2500".repeat(60)}${p.reset}`,""]}function je(){let e=O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji} ${t.id}`).join(" | ");return[`${p.dim}Legend: session-request | ${e}${p.reset}`,""]}function Xe(){return[`${p.bright}Column Key${p.reset}`,`${p.dim} Read: Tokens to read this observation (cost to learn it now)${p.reset}`,`${p.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${p.reset}`,""]}function Be(){return[`${p.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${p.reset}`,"",`${p.dim}When you need implementation details, rationale, or debugging context:${p.reset}`,`${p.dim} - Use the mem-search skill to fetch full observations on-demand${p.reset}`,`${p.dim} - Critical types ( bugfix, decision) often need detailed fetching${p.reset}`,`${p.dim} - Trust this index over re-reading code for past decisions and learnings${p.reset}`,""]}function Ge(r,e){let t=[];if(t.push(`${p.bright}${p.cyan}Context Economics${p.reset}`),t.push(`${p.dim} Loading: ${r.totalObservations} observations (${r.totalReadTokens.toLocaleString()} tokens to read)${p.reset}`),t.push(`${p.dim} Work investment: ${r.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${p.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(`${p.green}${s}${p.reset}`)}return t.push(""),t}function He(r){return[`${p.bright}${p.cyan}${r}${p.reset}`,""]}function We(r){return[`${p.dim}${r}${p.reset}`]}function Ye(r,e,t,s){let n=r.title||"Untitled",o=O.getInstance().getTypeIcon(r.type),{readTokens:i,discoveryTokens:a,workEmoji:d}=A(r,s),c=t?`${p.dim}${e}${p.reset}`:" ".repeat(e.length),u=s.showReadTokens&&i>0?`${p.dim}(~${i}t)${p.reset}`:"",l=s.showWorkTokens&&a>0?`${p.dim}(${d} ${a.toLocaleString()}t)${p.reset}`:"";return` ${p.dim}#${r.id}${p.reset} ${c} ${o} ${n} ${u} ${l}`}function Ve(r,e,t,s,n){let o=[],i=r.title||"Untitled",a=O.getInstance().getTypeIcon(r.type),{readTokens:d,discoveryTokens:c,workEmoji:u}=A(r,n),l=t?`${p.dim}${e}${p.reset}`:" ".repeat(e.length),g=n.showReadTokens&&d>0?`${p.dim}(~${d}t)${p.reset}`:"",E=n.showWorkTokens&&c>0?`${p.dim}(${u} ${c.toLocaleString()}t)${p.reset}`:"";return o.push(` ${p.dim}#${r.id}${p.reset} ${l} ${a} ${p.bright}${i}${p.reset}`),s&&o.push(` ${p.dim}${s}${p.reset}`),(g||E)&&o.push(` ${g} ${E}`),o.push(""),o}function qe(r,e){let t=`${r.request||"Session started"} (${e})`;return[`${p.yellow}#S${r.id}${p.reset} ${t}`,""]}function D(r,e,t){return e?[`${t}${r}:${p.reset} ${e}`,""]:[]}function Ke(r){return r.assistantMessage?["","---","",`${p.bright}${p.magenta}Previously${p.reset}`,"",`${p.dim}A: ${r.assistantMessage}${p.reset}`,""]:[]}function Je(r,e){let t=Math.round(r/1e3);return["",`${p.dim}Access ${t}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.${p.reset}`]}function Qe(r){return` +${p.bright}${p.cyan}[${r}] recent context, ${Pe()}${p.reset} ${p.gray}${"\u2500".repeat(60)}${p.reset} ${p.dim}No previous sessions found for this project yet.${p.reset} -`}function Qe(r,e,t,s){let n=[];return s?n.push(...Pe(r)):n.push(...Ie(r)),s?n.push(...je()):n.push(...Ne()),s?n.push(...Xe()):n.push(...ye()),s?n.push(...Be()):n.push(...Ae()),F(t)&&(s?n.push(...Ge(e,t)):n.push(...ve(e,t))),n}var Q=v(require("path"),1);function Z(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 Ze(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function et(r){return new Date(r).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function tt(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function Rt(r,e){return Q.default.isAbsolute(r)?Q.default.relative(e,r):r}function st(r,e){let t=Z(r);return t.length>0?Rt(t[0],e):"General"}function It(r){let e=new Map;for(let s of r){let n=s.type==="observation"?s.data.created_at:s.data.displayTime,o=tt(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 Nt(r,e){return e.fullObservationField==="narrative"?r.narrative:r.facts?Z(r.facts).join(` -`):null}function yt(r,e,t,s,n,o){let i=[];o?i.push(...He(r)):i.push(...Le(r));let a=null,d="",c=!1;for(let u of e)if(u.type==="summary"){c&&(i.push(""),c=!1,a=null,d="");let l=u.data,g=Ze(l.displayTime);o?i.push(...qe(l,g)):i.push(...ke(l,g))}else{let l=u.data,g=st(l.files_modified,n),E=et(l.created_at),T=E!==d,b=T?E:"";d=E;let _=t.has(l.id);if(g!==a&&(c&&i.push(""),o?i.push(...We(g)):i.push(...Me(g)),a=g,c=!0),_){let S=Nt(l,s);o?i.push(...Ve(l,E,T,S,s)):(c&&!o&&(i.push(""),c=!1),i.push(...xe(l,b,S,s)),a=null)}else o?i.push(Ye(l,E,T,s)):i.push(De(l,b,s))}return c&&i.push(""),i}function rt(r,e,t,s,n){let o=[],i=It(r);for(let[a,d]of i)o.push(...yt(a,d,e,t,s,n));return o}function nt(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 ot(r,e){let t=[];return e?(t.push(...x("Investigated",r.investigated,p.blue)),t.push(...x("Learned",r.learned,p.yellow)),t.push(...x("Completed",r.completed,p.green)),t.push(...x("Next Steps",r.next_steps,p.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 it(r,e){return e?Ke(r):$e(r)}function at(r,e,t){return!F(e)||r.totalDiscoveryTokens<=0||r.savings<=0?[]:t?Je(r.totalDiscoveryTokens,r.totalReadTokens):Ue(r.totalDiscoveryTokens,r.totalReadTokens)}var At=dt.default.join((0,pt.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version");function vt(){try{return new U}catch(r){if(r.code==="ERR_DLOPEN_FAILED"){try{(0,ct.unlinkSync)(At)}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 Lt(r,e){return e?ze(r):we(r)}function Mt(r,e,t,s,n,o,i){let a=[],d=V(e);a.push(...Qe(r,d,s,i));let c=t.slice(0,s.sessionCount),u=Oe(c,t),l=z(e,u),g=Ce(e,s.fullObservationCount);a.push(...rt(l,g,s,n,i));let E=t[0],T=e[0];nt(s,E,T)&&a.push(...ot(E,i));let b=J(e,s,o,n);return a.push(...it(b,i)),a.push(...at(d,s,i)),a.join(` -`).trimEnd()}async function ee(r,e=!1){let t=W(),s=r?.cwd??process.cwd(),n=Ee(s),o=vt();if(!o)return"";try{let i=q(o,n,t),a=K(o,n,t);return i.length===0&&a.length===0?Lt(n,e):Mt(n,i,a,t,s,r?.session_id,e)}finally{o.close()}}0&&(module.exports={generateContext}); +`}function ze(r,e,t,s){let n=[];return s?n.push(...Fe(r)):n.push(...Ne(r)),s?n.push(...je()):n.push(...ye()),s?n.push(...Xe()):n.push(...Ie()),s?n.push(...Be()):n.push(...Ae()),w(t)&&(s?n.push(...Ge(e,t)):n.push(...ve(e,t))),n}var Z=v(require("path"),1);function X(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 et(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function tt(r){return new Date(r).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function st(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function Ze(r,e){return Z.default.isAbsolute(r)?Z.default.relative(e,r):r}function rt(r,e,t){let s=X(r);if(s.length>0)return Ze(s[0],e);if(t){let n=X(t);if(n.length>0)return Ze(n[0],e)}return"General"}function Nt(r){let e=new Map;for(let s of r){let n=s.type==="observation"?s.data.created_at:s.data.displayTime,o=st(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 yt(r,e){return e.fullObservationField==="narrative"?r.narrative:r.facts?X(r.facts).join(` +`):null}function It(r,e,t,s,n,o){let i=[];o?i.push(...He(r)):i.push(...Me(r));let a=null,d="",c=!1;for(let u of e)if(u.type==="summary"){c&&(i.push(""),c=!1,a=null,d="");let l=u.data,g=et(l.displayTime);o?i.push(...qe(l,g)):i.push(...ke(l,g))}else{let l=u.data,g=rt(l.files_modified,n,l.files_read),E=tt(l.created_at),T=E!==d,b=T?E:"";d=E;let _=t.has(l.id);if(g!==a&&(c&&i.push(""),o?i.push(...We(g)):i.push(...Le(g)),a=g,c=!0),_){let S=yt(l,s);o?i.push(...Ve(l,E,T,S,s)):(c&&!o&&(i.push(""),c=!1),i.push(...xe(l,b,S,s)),a=null)}else o?i.push(Ye(l,E,T,s)):i.push(De(l,b,s))}return c&&i.push(""),i}function nt(r,e,t,s,n){let o=[],i=Nt(r);for(let[a,d]of i)o.push(...It(a,d,e,t,s,n));return o}function ot(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 it(r,e){let t=[];return e?(t.push(...D("Investigated",r.investigated,p.blue)),t.push(...D("Learned",r.learned,p.yellow)),t.push(...D("Completed",r.completed,p.green)),t.push(...D("Next Steps",r.next_steps,p.magenta))):(t.push(...L("Investigated",r.investigated)),t.push(...L("Learned",r.learned)),t.push(...L("Completed",r.completed)),t.push(...L("Next Steps",r.next_steps))),t}function at(r,e){return e?Ke(r):$e(r)}function dt(r,e,t){return!w(e)||r.totalDiscoveryTokens<=0||r.savings<=0?[]:t?Je(r.totalDiscoveryTokens,r.totalReadTokens):Ue(r.totalDiscoveryTokens,r.totalReadTokens)}var At=pt.default.join((0,ct.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version");function vt(){try{return new $}catch(r){if(r.code==="ERR_DLOPEN_FAILED"){try{(0,mt.unlinkSync)(At)}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 Mt(r,e){return e?Qe(r):we(r)}function Lt(r,e,t,s,n,o,i){let a=[],d=q(e);a.push(...ze(r,d,s,i));let c=t.slice(0,s.sessionCount),u=Oe(c,t),l=z(e,u),g=Ce(e,s.fullObservationCount);a.push(...nt(l,g,s,n,i));let E=t[0],T=e[0];ot(s,E,T)&&a.push(...it(E,i));let b=Q(e,s,o,n);return a.push(...at(b,i)),a.push(...dt(d,s,i)),a.join(` +`).trimEnd()}async function ee(r,e=!1){let t=W(),s=r?.cwd??process.cwd(),n=_e(s),o=r?.projects||[n],i=vt();if(!i)return"";try{let a=o.length>1?he(i,o,t):K(i,n,t),d=o.length>1?be(i,o,t):J(i,n,t);return a.length===0&&d.length===0?Mt(n,e):Lt(n,a,d,t,s,r?.session_id,e)}finally{i.close()}}0&&(module.exports={generateContext}); diff --git a/plugin/scripts/context-hook.js b/plugin/scripts/context-hook.js index 54311043..ae2831b5 100755 --- a/plugin/scripts/context-hook.js +++ b/plugin/scripts/context-hook.js @@ -1,19 +1,19 @@ #!/usr/bin/env bun -import{stdin as A}from"process";import L from"path";import{homedir as Y}from"os";import{readFileSync as B}from"fs";import{appendFileSync as W,existsSync as d,mkdirSync as x,readFileSync as b}from"fs";import{join as S}from"path";import{homedir as H}from"os";var O=(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))(O||{}),U=S(H(),".claude-mem"),M=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=S(U,"logs");d(t)||x(t,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=S(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=S(U,"settings.json");if(d(t)){let r=b(t,"utf-8"),n=(JSON.parse(r).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=O[n]??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 e=r;if(typeof r=="string")try{e=JSON.parse(r)}catch{e=r}if(t==="Bash"&&e.command)return`${t}(${e.command})`;if(e.file_path)return`${t}(${e.file_path})`;if(e.notebook_path)return`${t}(${e.notebook_path})`;if(t==="Glob"&&e.pattern)return`${t}(${e.pattern})`;if(t==="Grep"&&e.pattern)return`${t}(${e.pattern})`;if(e.url)return`${t}(${e.url})`;if(e.query)return`${t}(${e.query})`;if(t==="Task"){if(e.subagent_type)return`${t}(${e.subagent_type})`;if(e.description)return`${t}(${e.description})`}return t==="Skill"&&e.skill?`${t}(${e.skill})`:t==="LSP"&&e.operation?`${t}(${e.operation})`:t}formatTimestamp(t){let r=t.getFullYear(),e=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),E=String(t.getMinutes()).padStart(2,"0"),s=String(t.getSeconds()).padStart(2,"0"),u=String(t.getMilliseconds()).padStart(3,"0");return`${r}-${e}-${n} ${o}:${E}:${s}.${u}`}log(t,r,e,n,o){if(t0&&(T=` {${Object.entries(D).map(([F,w])=>`${F}=${w}`).join(", ")}}`)}let C=`[${E}] [${s}] [${u}] ${a}${e}${T}${l}`;if(this.logFilePath)try{W(this.logFilePath,C+` -`,"utf8")}catch(m){process.stderr.write(`[LOGGER] Failed to write to log file: ${m} -`)}else process.stderr.write(C+` -`)}debug(t,r,e,n){this.log(0,t,r,e,n)}info(t,r,e,n){this.log(1,t,r,e,n)}warn(t,r,e,n){this.log(2,t,r,e,n)}error(t,r,e,n){this.log(3,t,r,e,n)}dataIn(t,r,e,n){this.info(t,`\u2192 ${r}`,e,n)}dataOut(t,r,e,n){this.info(t,`\u2190 ${r}`,e,n)}success(t,r,e,n){this.info(t,`\u2713 ${r}`,e,n)}failure(t,r,e,n){this.error(t,`\u2717 ${r}`,e,n)}timing(t,r,e,n){this.info(t,`\u23F1 ${r}`,n,{duration:`${e}ms`})}happyPathError(t,r,e,n,o=""){let a=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=a?`${a[1].split("/").pop()}:${a[2]}`:"unknown",T={...e,location:l};return this.warn(t,`[HAPPY-PATH] ${r}`,T,n),o}},_=new M;var p={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function R(i){return process.platform==="win32"?Math.round(i*p.WINDOWS_MULTIPLIER):i}import{readFileSync as G,writeFileSync as N,existsSync as y,mkdirSync as K}from"fs";import{join as X,dirname as j}from"path";import{homedir as V}from"os";var h="bugfix,feature,refactor,discovery,decision,change",I="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var c=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_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:X(V(),".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:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:h,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:I,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let r=this.get(t);return parseInt(r,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){try{if(!y(t)){let E=this.getAllDefaults();try{let s=j(t);y(s)||K(s,{recursive:!0}),N(t,JSON.stringify(E,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 E}let r=G(t,"utf-8"),e=JSON.parse(r),n=e;if(e.env&&typeof e.env=="object"){n=e.env;try{N(t,JSON.stringify(n,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",t)}catch(E){console.warn("[SETTINGS] Failed to auto-migrate settings file:",t,E)}}let o={...this.DEFAULTS};for(let E of Object.keys(this.DEFAULTS))n[E]!==void 0&&(o[E]=n[E]);return o}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",t,r),this.getAllDefaults()}}};function k(i={}){let{port:t,includeSkillFallback:r=!1,customPrefix:e,actualError:n}=i,o=e||"Worker service connection failed.",E=t?` (port ${t})`:"",s=`${o}${E} +import{stdin as L}from"process";import C from"path";import{homedir as X}from"os";import{readFileSync as V}from"fs";import{readFileSync as x,writeFileSync as w,existsSync as F}from"fs";import{join as b}from"path";import{homedir as j}from"os";var U="bugfix,feature,refactor,discovery,decision,change",h="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var c=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_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:b(j(),".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:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:U,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:h,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let r=this.get(t);return parseInt(r,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){try{if(!F(t))return this.getAllDefaults();let r=x(t,"utf-8"),e=JSON.parse(r),n=e;if(e.env&&typeof e.env=="object"){n=e.env;try{w(t,JSON.stringify(n,null,2),"utf-8"),a.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(s){a.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},s)}}let i={...this.DEFAULTS};for(let s of Object.keys(this.DEFAULTS))n[s]!==void 0&&(i[s]=n[s]);return i}catch(r){return a.warn("SETTINGS","Failed to load settings, using defaults",{settingsPath:t},r),this.getAllDefaults()}}};import{appendFileSync as H,existsSync as G,mkdirSync as K}from"fs";import{join as O}from"path";var M=(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))(M||{}),S=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let t=c.get("CLAUDE_MEM_DATA_DIR"),r=O(t,"logs");G(r)||K(r,{recursive:!0});let e=new Date().toISOString().split("T")[0];this.logFilePath=O(r,`claude-mem-${e}.log`)}catch(t){console.error("[LOGGER] Failed to initialize log file:",t),this.logFilePath=null}}getLevel(){if(this.level===null)try{let t=c.get("CLAUDE_MEM_DATA_DIR"),r=O(t,"settings.json"),n=c.loadFromFile(r).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=M[n]??1}catch(t){console.error("[LOGGER] Failed to load settings, using INFO level:",t),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 e=typeof r=="string"?JSON.parse(r):r;if(t==="Bash"&&e.command)return`${t}(${e.command})`;if(e.file_path)return`${t}(${e.file_path})`;if(e.notebook_path)return`${t}(${e.notebook_path})`;if(t==="Glob"&&e.pattern)return`${t}(${e.pattern})`;if(t==="Grep"&&e.pattern)return`${t}(${e.pattern})`;if(e.url)return`${t}(${e.url})`;if(e.query)return`${t}(${e.query})`;if(t==="Task"){if(e.subagent_type)return`${t}(${e.subagent_type})`;if(e.description)return`${t}(${e.description})`}return t==="Skill"&&e.skill?`${t}(${e.skill})`:t==="LSP"&&e.operation?`${t}(${e.operation})`:t}formatTimestamp(t){let r=t.getFullYear(),e=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),s=String(t.getMinutes()).padStart(2,"0"),E=String(t.getSeconds()).padStart(2,"0"),l=String(t.getMilliseconds()).padStart(3,"0");return`${r}-${e}-${n} ${i}:${s}:${E}.${l}`}log(t,r,e,n,i){if(t0&&(f=` {${Object.entries(d).map(([v,W])=>`${v}=${W}`).join(", ")}}`)}let D=`[${s}] [${E}] [${l}] ${_}${e}${f}${g}`;if(this.logFilePath)try{H(this.logFilePath,D+` +`,"utf8")}catch(R){process.stderr.write(`[LOGGER] Failed to write to log file: ${R} +`)}else process.stderr.write(D+` +`)}debug(t,r,e,n){this.log(0,t,r,e,n)}info(t,r,e,n){this.log(1,t,r,e,n)}warn(t,r,e,n){this.log(2,t,r,e,n)}error(t,r,e,n){this.log(3,t,r,e,n)}dataIn(t,r,e,n){this.info(t,`\u2192 ${r}`,e,n)}dataOut(t,r,e,n){this.info(t,`\u2190 ${r}`,e,n)}success(t,r,e,n){this.info(t,`\u2713 ${r}`,e,n)}failure(t,r,e,n){this.error(t,`\u2717 ${r}`,e,n)}timing(t,r,e,n){this.info(t,`\u23F1 ${r}`,n,{duration:`${e}ms`})}happyPathError(t,r,e,n,i=""){let _=((new Error().stack||"").split(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),g=_?`${_[1].split("/").pop()}:${_[2]}`:"unknown",f={...e,location:g};return this.warn(t,`[HAPPY-PATH] ${r}`,f,n),i}},a=new S;var m={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function N(o){return process.platform==="win32"?Math.round(o*m.WINDOWS_MULTIPLIER):o}function I(o={}){let{port:t,includeSkillFallback:r=!1,customPrefix:e,actualError:n}=o,i=e||"Worker service connection failed.",s=t?` (port ${t})`:"",E=`${i}${s} -`;return s+=`To restart the worker: -`,s+=`1. Exit Claude Code completely -`,s+=`2. Run: npm run worker:restart -`,s+="3. Restart Claude Code",r&&(s+=` +`;return E+=`To restart the worker: +`,E+=`1. Exit Claude Code completely +`,E+=`2. Run: npm run worker:restart +`,E+="3. Restart Claude Code",r&&(E+=` -If that doesn't work, try: /troubleshoot`),n&&(s=`Worker Error: ${n} +If that doesn't work, try: /troubleshoot`),n&&(E=`Worker Error: ${n} -${s}`),s}var J=L.join(Y(),".claude","plugins","marketplaces","thedotmack"),Dt=R(p.HEALTH_CHECK),f=null;function g(){if(f!==null)return f;let i=L.join(c.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=c.loadFromFile(i);return f=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),f}async function z(){let i=g();return(await fetch(`http://127.0.0.1:${i}/api/readiness`)).ok}function q(){let i=L.join(J,"package.json");return JSON.parse(B(i,"utf-8")).version}async function Q(){let i=g(),t=await fetch(`http://127.0.0.1:${i}/api/version`);if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function Z(){let i=q(),t=await Q();i!==t&&_.debug("SYSTEM","Version check",{pluginVersion:i,workerVersion:t,note:"Mismatch will be auto-restarted by worker-service start command"})}async function $(){for(let r=0;r<75;r++){try{if(await z()){await Z();return}}catch(e){_.debug("SYSTEM","Worker health check failed, will retry",{attempt:r+1,maxRetries:75,error:e instanceof Error?e.message:String(e)})}await new Promise(e=>setTimeout(e,200))}throw new Error(k({port:g(),customPrefix:"Worker did not become ready within 15 seconds."}))}import tt from"path";function P(i){if(!i||i.trim()==="")return _.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:i}),"unknown-project";let t=tt.basename(i);if(t===""){if(process.platform==="win32"){let e=i.match(/^([A-Z]):\\/i);if(e){let o=`drive-${e[1].toUpperCase()}`;return _.info("PROJECT_NAME","Drive root detected",{cwd:i,projectName:o}),o}}return _.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:i}),"unknown-project"}return t}async function v(i){await $();let t=i?.cwd??process.cwd(),r=P(t),n=`http://127.0.0.1:${g()}/api/context/inject?project=${encodeURIComponent(r)}`,o=await fetch(n);if(!o.ok)throw new Error(`Context generation failed: ${o.status}`);return(await o.text()).trim()}var et=process.argv.includes("--colors");if(A.isTTY||et)v(void 0).then(i=>{console.log(i),process.exit(0)});else{let i="";A.on("data",t=>i+=t),A.on("end",async()=>{let t;try{t=i.trim()?JSON.parse(i):void 0}catch(e){throw new Error(`Failed to parse hook input: ${e instanceof Error?e.message:String(e)}`)}let r=await v(t);console.log(JSON.stringify({hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:r}})),process.exit(0)})} +${E}`),E}var Y=C.join(X(),".claude","plugins","marketplaces","thedotmack"),dt=N(m.HEALTH_CHECK),T=null;function u(){if(T!==null)return T;let o=C.join(c.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=c.loadFromFile(o);return T=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),T}async function B(){let o=u();return(await fetch(`http://127.0.0.1:${o}/api/readiness`)).ok}function J(){let o=C.join(Y,"package.json");return JSON.parse(V(o,"utf-8")).version}async function z(){let o=u(),t=await fetch(`http://127.0.0.1:${o}/api/version`);if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function q(){let o=J(),t=await z();o!==t&&a.debug("SYSTEM","Version check",{pluginVersion:o,workerVersion:t,note:"Mismatch will be auto-restarted by worker-service start command"})}async function P(){for(let r=0;r<75;r++){try{if(await B()){await q();return}}catch(e){a.debug("SYSTEM","Worker health check failed, will retry",{attempt:r+1,maxRetries:75,error:e instanceof Error?e.message:String(e)})}await new Promise(e=>setTimeout(e,200))}throw new Error(I({port:u(),customPrefix:"Worker did not become ready within 15 seconds."}))}import tt from"path";import{statSync as Q,readFileSync as Z}from"fs";import A from"path";var p={isWorktree:!1,worktreeName:null,parentRepoPath:null,parentProjectName:null};function k(o){let t=A.join(o,".git"),r;try{r=Q(t)}catch{return p}if(!r.isFile())return p;let e;try{e=Z(t,"utf-8").trim()}catch{return p}let n=e.match(/^gitdir:\s*(.+)$/);if(!n)return p;let s=n[1].match(/^(.+)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)$/);if(!s)return p;let E=s[1],l=A.basename(o),_=A.basename(E);return{isWorktree:!0,worktreeName:l,parentRepoPath:E,parentProjectName:_}}function et(o){if(!o||o.trim()==="")return a.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:o}),"unknown-project";let t=tt.basename(o);if(t===""){if(process.platform==="win32"){let e=o.match(/^([A-Z]):\\/i);if(e){let i=`drive-${e[1].toUpperCase()}`;return a.info("PROJECT_NAME","Drive root detected",{cwd:o,projectName:i}),i}}return a.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:o}),"unknown-project"}return t}function y(o){let t=et(o);if(!o)return{primary:t,parent:null,isWorktree:!1,allProjects:[t]};let r=k(o);return r.isWorktree&&r.parentProjectName?{primary:t,parent:r.parentProjectName,isWorktree:!0,allProjects:[r.parentProjectName,t]}:{primary:t,parent:null,isWorktree:!1,allProjects:[t]}}async function $(o){await P();let t=o?.cwd??process.cwd(),r=y(t),e=u(),n=r.allProjects.join(","),i=`http://127.0.0.1:${e}/api/context/inject?projects=${encodeURIComponent(n)}`,s=await fetch(i);if(!s.ok)throw new Error(`Context generation failed: ${s.status}`);return(await s.text()).trim()}var rt=process.argv.includes("--colors");if(L.isTTY||rt)$(void 0).then(o=>{console.log(o),process.exit(0)});else{let o="";L.on("data",t=>o+=t),L.on("end",async()=>{let t;try{t=o.trim()?JSON.parse(o):void 0}catch(e){throw new Error(`Failed to parse hook input: ${e instanceof Error?e.message:String(e)}`)}let r=await $(t);console.log(JSON.stringify({hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:r}})),process.exit(0)})} diff --git a/plugin/scripts/new-hook.js b/plugin/scripts/new-hook.js index 3dde6efc..1ceb54b6 100755 --- a/plugin/scripts/new-hook.js +++ b/plugin/scripts/new-hook.js @@ -1,19 +1,19 @@ #!/usr/bin/env bun -import{stdin as w}from"process";var S=JSON.stringify({continue:!0,suppressOutput:!0});import A from"path";import{homedir as Y}from"os";import{readFileSync as J}from"fs";import{appendFileSync as H,existsSync as h,mkdirSync as W,readFileSync as K}from"fs";import{join as O}from"path";import{homedir as x}from"os";var T=(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))(T||{}),R=O(x(),".claude-mem"),M=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=O(R,"logs");h(t)||W(t,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=O(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=O(R,"settings.json");if(h(t)){let r=K(t,"utf-8"),n=(JSON.parse(r).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=T[n]??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 e=r;if(typeof r=="string")try{e=JSON.parse(r)}catch{e=r}if(t==="Bash"&&e.command)return`${t}(${e.command})`;if(e.file_path)return`${t}(${e.file_path})`;if(e.notebook_path)return`${t}(${e.notebook_path})`;if(t==="Glob"&&e.pattern)return`${t}(${e.pattern})`;if(t==="Grep"&&e.pattern)return`${t}(${e.pattern})`;if(e.url)return`${t}(${e.url})`;if(e.query)return`${t}(${e.query})`;if(t==="Task"){if(e.subagent_type)return`${t}(${e.subagent_type})`;if(e.description)return`${t}(${e.description})`}return t==="Skill"&&e.skill?`${t}(${e.skill})`:t==="LSP"&&e.operation?`${t}(${e.operation})`:t}formatTimestamp(t){let r=t.getFullYear(),e=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),E=String(t.getMinutes()).padStart(2,"0"),s=String(t.getSeconds()).padStart(2,"0"),l=String(t.getMilliseconds()).padStart(3,"0");return`${r}-${e}-${n} ${i}:${E}:${s}.${l}`}log(t,r,e,n,i){if(t0&&(g=` {${Object.entries(D).map(([b,F])=>`${b}=${F}`).join(", ")}}`)}let C=`[${E}] [${s}] [${l}] ${_}${e}${g}${c}`;if(this.logFilePath)try{H(this.logFilePath,C+` -`,"utf8")}catch(d){process.stderr.write(`[LOGGER] Failed to write to log file: ${d} +import{stdin as k}from"process";var f=JSON.stringify({continue:!0,suppressOutput:!0});import A from"path";import{homedir as K}from"os";import{readFileSync as G}from"fs";import{readFileSync as b,writeFileSync as v,existsSync as w}from"fs";import{join as W}from"path";import{homedir as F}from"os";var R="bugfix,feature,refactor,discovery,decision,change",h="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var c=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_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:W(F(),".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:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:R,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:h,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let r=this.get(t);return parseInt(r,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){try{if(!w(t))return this.getAllDefaults();let r=b(t,"utf-8"),e=JSON.parse(r),n=e;if(e.env&&typeof e.env=="object"){n=e.env;try{v(t,JSON.stringify(n,null,2),"utf-8"),E.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(a){E.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},a)}}let s={...this.DEFAULTS};for(let a of Object.keys(this.DEFAULTS))n[a]!==void 0&&(s[a]=n[a]);return s}catch(r){return E.warn("SETTINGS","Failed to load settings, using defaults",{settingsPath:t},r),this.getAllDefaults()}}};import{appendFileSync as H,existsSync as x,mkdirSync as j}from"fs";import{join as T}from"path";var S=(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))(S||{}),M=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let t=c.get("CLAUDE_MEM_DATA_DIR"),r=T(t,"logs");x(r)||j(r,{recursive:!0});let e=new Date().toISOString().split("T")[0];this.logFilePath=T(r,`claude-mem-${e}.log`)}catch(t){console.error("[LOGGER] Failed to initialize log file:",t),this.logFilePath=null}}getLevel(){if(this.level===null)try{let t=c.get("CLAUDE_MEM_DATA_DIR"),r=T(t,"settings.json"),n=c.loadFromFile(r).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=S[n]??1}catch(t){console.error("[LOGGER] Failed to load settings, using INFO level:",t),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 e=typeof r=="string"?JSON.parse(r):r;if(t==="Bash"&&e.command)return`${t}(${e.command})`;if(e.file_path)return`${t}(${e.file_path})`;if(e.notebook_path)return`${t}(${e.notebook_path})`;if(t==="Glob"&&e.pattern)return`${t}(${e.pattern})`;if(t==="Grep"&&e.pattern)return`${t}(${e.pattern})`;if(e.url)return`${t}(${e.url})`;if(e.query)return`${t}(${e.query})`;if(t==="Task"){if(e.subagent_type)return`${t}(${e.subagent_type})`;if(e.description)return`${t}(${e.description})`}return t==="Skill"&&e.skill?`${t}(${e.skill})`:t==="LSP"&&e.operation?`${t}(${e.operation})`:t}formatTimestamp(t){let r=t.getFullYear(),e=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),i=String(t.getSeconds()).padStart(2,"0"),l=String(t.getMilliseconds()).padStart(3,"0");return`${r}-${e}-${n} ${s}:${a}:${i}.${l}`}log(t,r,e,n,s){if(t0&&(u=` {${Object.entries(d).map(([y,$])=>`${y}=${$}`).join(", ")}}`)}let C=`[${a}] [${i}] [${l}] ${_}${e}${u}${g}`;if(this.logFilePath)try{H(this.logFilePath,C+` +`,"utf8")}catch(D){process.stderr.write(`[LOGGER] Failed to write to log file: ${D} `)}else process.stderr.write(C+` -`)}debug(t,r,e,n){this.log(0,t,r,e,n)}info(t,r,e,n){this.log(1,t,r,e,n)}warn(t,r,e,n){this.log(2,t,r,e,n)}error(t,r,e,n){this.log(3,t,r,e,n)}dataIn(t,r,e,n){this.info(t,`\u2192 ${r}`,e,n)}dataOut(t,r,e,n){this.info(t,`\u2190 ${r}`,e,n)}success(t,r,e,n){this.info(t,`\u2713 ${r}`,e,n)}failure(t,r,e,n){this.error(t,`\u2717 ${r}`,e,n)}timing(t,r,e,n){this.info(t,`\u23F1 ${r}`,n,{duration:`${e}ms`})}happyPathError(t,r,e,n,i=""){let _=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),c=_?`${_[1].split("/").pop()}:${_[2]}`:"unknown",g={...e,location:c};return this.warn(t,`[HAPPY-PATH] ${r}`,g,n),i}},a=new M;var m={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function U(o){return process.platform==="win32"?Math.round(o*m.WINDOWS_MULTIPLIER):o}import{readFileSync as G,writeFileSync as y,existsSync as k,mkdirSync as X}from"fs";import{join as j,dirname as V}from"path";import{homedir as B}from"os";var I="bugfix,feature,refactor,discovery,decision,change",N="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var u=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_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:j(B(),".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:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:I,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:N,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let r=this.get(t);return parseInt(r,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){try{if(!k(t)){let E=this.getAllDefaults();try{let s=V(t);k(s)||X(s,{recursive:!0}),y(t,JSON.stringify(E,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 E}let r=G(t,"utf-8"),e=JSON.parse(r),n=e;if(e.env&&typeof e.env=="object"){n=e.env;try{y(t,JSON.stringify(n,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",t)}catch(E){console.warn("[SETTINGS] Failed to auto-migrate settings file:",t,E)}}let i={...this.DEFAULTS};for(let E of Object.keys(this.DEFAULTS))n[E]!==void 0&&(i[E]=n[E]);return i}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",t,r),this.getAllDefaults()}}};function $(o={}){let{port:t,includeSkillFallback:r=!1,customPrefix:e,actualError:n}=o,i=e||"Worker service connection failed.",E=t?` (port ${t})`:"",s=`${i}${E} +`)}debug(t,r,e,n){this.log(0,t,r,e,n)}info(t,r,e,n){this.log(1,t,r,e,n)}warn(t,r,e,n){this.log(2,t,r,e,n)}error(t,r,e,n){this.log(3,t,r,e,n)}dataIn(t,r,e,n){this.info(t,`\u2192 ${r}`,e,n)}dataOut(t,r,e,n){this.info(t,`\u2190 ${r}`,e,n)}success(t,r,e,n){this.info(t,`\u2713 ${r}`,e,n)}failure(t,r,e,n){this.error(t,`\u2717 ${r}`,e,n)}timing(t,r,e,n){this.info(t,`\u23F1 ${r}`,n,{duration:`${e}ms`})}happyPathError(t,r,e,n,s=""){let _=((new Error().stack||"").split(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),g=_?`${_[1].split("/").pop()}:${_[2]}`:"unknown",u={...e,location:g};return this.warn(t,`[HAPPY-PATH] ${r}`,u,n),s}},E=new M;var m={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function N(o){return process.platform==="win32"?Math.round(o*m.WINDOWS_MULTIPLIER):o}function I(o={}){let{port:t,includeSkillFallback:r=!1,customPrefix:e,actualError:n}=o,s=e||"Worker service connection failed.",a=t?` (port ${t})`:"",i=`${s}${a} -`;return s+=`To restart the worker: -`,s+=`1. Exit Claude Code completely -`,s+=`2. Run: npm run worker:restart -`,s+="3. Restart Claude Code",r&&(s+=` +`;return i+=`To restart the worker: +`,i+=`1. Exit Claude Code completely +`,i+=`2. Run: npm run worker:restart +`,i+="3. Restart Claude Code",r&&(i+=` -If that doesn't work, try: /troubleshoot`),n&&(s=`Worker Error: ${n} +If that doesn't work, try: /troubleshoot`),n&&(i=`Worker Error: ${n} -${s}`),s}var z=A.join(Y(),".claude","plugins","marketplaces","thedotmack"),ht=U(m.HEALTH_CHECK),f=null;function p(){if(f!==null)return f;let o=A.join(u.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=u.loadFromFile(o);return f=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),f}async function q(){let o=p();return(await fetch(`http://127.0.0.1:${o}/api/readiness`)).ok}function Q(){let o=A.join(z,"package.json");return JSON.parse(J(o,"utf-8")).version}async function Z(){let o=p(),t=await fetch(`http://127.0.0.1:${o}/api/version`);if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function tt(){let o=Q(),t=await Z();o!==t&&a.debug("SYSTEM","Version check",{pluginVersion:o,workerVersion:t,note:"Mismatch will be auto-restarted by worker-service start command"})}async function P(){for(let r=0;r<75;r++){try{if(await q()){await tt();return}}catch(e){a.debug("SYSTEM","Worker health check failed, will retry",{attempt:r+1,maxRetries:75,error:e instanceof Error?e.message:String(e)})}await new Promise(e=>setTimeout(e,200))}throw new Error($({port:p(),customPrefix:"Worker did not become ready within 15 seconds."}))}import et from"path";function v(o){if(!o||o.trim()==="")return a.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:o}),"unknown-project";let t=et.basename(o);if(t===""){if(process.platform==="win32"){let e=o.match(/^([A-Z]):\\/i);if(e){let i=`drive-${e[1].toUpperCase()}`;return a.info("PROJECT_NAME","Drive root detected",{cwd:o,projectName:i}),i}}return a.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:o}),"unknown-project"}return t}async function rt(o){if(await P(),!o)throw new Error("newHook requires input");let{session_id:t,cwd:r,prompt:e}=o,n=v(r);a.info("HOOK","new-hook: Received hook input",{session_id:t,has_prompt:!!e,cwd:r});let i=p();a.info("HOOK","new-hook: Calling /api/sessions/init",{contentSessionId:t,project:n,prompt_length:e?.length});let E=await fetch(`http://127.0.0.1:${i}/api/sessions/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:t,project:n,prompt:e})});if(!E.ok)throw new Error(`Session initialization failed: ${E.status}`);let s=await E.json(),l=s.sessionDbId,_=s.promptNumber;if(a.info("HOOK","new-hook: Received from /api/sessions/init",{sessionDbId:l,promptNumber:_,skipped:s.skipped}),a.info("HOOK",`[ALIGNMENT] Hook Entry | contentSessionId=${t} | prompt#=${_} | sessionDbId=${l}`),s.skipped&&s.reason==="private"){a.info("HOOK",`new-hook: Session ${l}, prompt #${_} (fully private - skipped)`),console.log(S);return}a.info("HOOK",`new-hook: Session ${l}, prompt #${_}`);let c=e.startsWith("/")?e.substring(1):e;a.info("HOOK","new-hook: Calling /sessions/{sessionDbId}/init",{sessionDbId:l,promptNumber:_,userPrompt_length:c?.length});let g=await fetch(`http://127.0.0.1:${i}/sessions/${l}/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userPrompt:c,promptNumber:_})});if(!g.ok)throw new Error(`SDK agent start failed: ${g.status}`);console.log(S)}var L="";w.on("data",o=>L+=o);w.on("end",async()=>{try{let o;try{o=L?JSON.parse(L):void 0}catch(t){throw new Error(`Failed to parse hook input: ${t instanceof Error?t.message:String(t)}`)}await rt(o)}catch(o){a.error("HOOK","new-hook failed",{},o)}finally{process.exit(0)}}); +${i}`),i}var X=A.join(K(),".claude","plugins","marketplaces","thedotmack"),Lt=N(m.HEALTH_CHECK),O=null;function p(){if(O!==null)return O;let o=A.join(c.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=c.loadFromFile(o);return O=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),O}async function V(){let o=p();return(await fetch(`http://127.0.0.1:${o}/api/readiness`)).ok}function B(){let o=A.join(X,"package.json");return JSON.parse(G(o,"utf-8")).version}async function Y(){let o=p(),t=await fetch(`http://127.0.0.1:${o}/api/version`);if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function J(){let o=B(),t=await Y();o!==t&&E.debug("SYSTEM","Version check",{pluginVersion:o,workerVersion:t,note:"Mismatch will be auto-restarted by worker-service start command"})}async function U(){for(let r=0;r<75;r++){try{if(await V()){await J();return}}catch(e){E.debug("SYSTEM","Worker health check failed, will retry",{attempt:r+1,maxRetries:75,error:e instanceof Error?e.message:String(e)})}await new Promise(e=>setTimeout(e,200))}throw new Error(I({port:p(),customPrefix:"Worker did not become ready within 15 seconds."}))}import z from"path";function P(o){if(!o||o.trim()==="")return E.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:o}),"unknown-project";let t=z.basename(o);if(t===""){if(process.platform==="win32"){let e=o.match(/^([A-Z]):\\/i);if(e){let s=`drive-${e[1].toUpperCase()}`;return E.info("PROJECT_NAME","Drive root detected",{cwd:o,projectName:s}),s}}return E.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:o}),"unknown-project"}return t}async function q(o){if(await U(),!o)throw new Error("newHook requires input");let{session_id:t,cwd:r,prompt:e}=o,n=P(r),s=p();E.debug("HOOK","new-hook: Calling /api/sessions/init",{contentSessionId:t,project:n});let a=await fetch(`http://127.0.0.1:${s}/api/sessions/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:t,project:n,prompt:e})});if(!a.ok)throw new Error(`Session initialization failed: ${a.status}`);let i=await a.json(),l=i.sessionDbId,_=i.promptNumber;if(E.debug("HOOK","new-hook: Received from /api/sessions/init",{sessionDbId:l,promptNumber:_,skipped:i.skipped}),E.debug("HOOK",`[ALIGNMENT] Hook Entry | contentSessionId=${t} | prompt#=${_} | sessionDbId=${l}`),i.skipped&&i.reason==="private"){E.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${_} | skipped=true | reason=private`,{sessionId:l}),console.log(f);return}let g=e.startsWith("/")?e.substring(1):e;E.debug("HOOK","new-hook: Calling /sessions/{sessionDbId}/init",{sessionDbId:l,promptNumber:_});let u=await fetch(`http://127.0.0.1:${s}/sessions/${l}/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userPrompt:g,promptNumber:_})});if(!u.ok)throw new Error(`SDK agent start failed: ${u.status}`);E.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${_} | project=${n}`,{sessionId:l}),console.log(f)}var L="";k.on("data",o=>L+=o);k.on("end",async()=>{try{let o;try{o=L?JSON.parse(L):void 0}catch(t){throw new Error(`Failed to parse hook input: ${t instanceof Error?t.message:String(t)}`)}await q(o)}catch(o){E.error("HOOK","new-hook failed",{},o)}finally{process.exit(0)}}); diff --git a/plugin/scripts/summary-hook.js b/plugin/scripts/summary-hook.js index a5361a8d..7fc70bcb 100755 --- a/plugin/scripts/summary-hook.js +++ b/plugin/scripts/summary-hook.js @@ -1,13 +1,13 @@ #!/usr/bin/env bun -import{stdin as v}from"process";var T=JSON.stringify({continue:!0,suppressOutput:!0});import{appendFileSync as H,existsSync as R,mkdirSync as W,readFileSync as b}from"fs";import{join as S}from"path";import{homedir as G}from"os";var p=(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))(p||{}),U=S(G(),".claude-mem"),M=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=S(U,"logs");R(t)||W(t,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=S(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=S(U,"settings.json");if(R(t)){let r=b(t,"utf-8"),n=(JSON.parse(r).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=p[n]??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 e=r;if(typeof r=="string")try{e=JSON.parse(r)}catch{e=r}if(t==="Bash"&&e.command)return`${t}(${e.command})`;if(e.file_path)return`${t}(${e.file_path})`;if(e.notebook_path)return`${t}(${e.notebook_path})`;if(t==="Glob"&&e.pattern)return`${t}(${e.pattern})`;if(t==="Grep"&&e.pattern)return`${t}(${e.pattern})`;if(e.url)return`${t}(${e.url})`;if(e.query)return`${t}(${e.query})`;if(t==="Task"){if(e.subagent_type)return`${t}(${e.subagent_type})`;if(e.description)return`${t}(${e.description})`}return t==="Skill"&&e.skill?`${t}(${e.skill})`:t==="LSP"&&e.operation?`${t}(${e.operation})`:t}formatTimestamp(t){let r=t.getFullYear(),e=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),E=String(t.getMinutes()).padStart(2,"0"),i=String(t.getSeconds()).padStart(2,"0"),_=String(t.getMilliseconds()).padStart(3,"0");return`${r}-${e}-${n} ${o}:${E}:${i}.${_}`}log(t,r,e,n,o){if(t(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))(p||{}),M=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let t=g.get("CLAUDE_MEM_DATA_DIR"),r=T(t,"logs");b(r)||G(r,{recursive:!0});let e=new Date().toISOString().split("T")[0];this.logFilePath=T(r,`claude-mem-${e}.log`)}catch(t){console.error("[LOGGER] Failed to initialize log file:",t),this.logFilePath=null}}getLevel(){if(this.level===null)try{let t=g.get("CLAUDE_MEM_DATA_DIR"),r=T(t,"settings.json"),n=g.loadFromFile(r).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=p[n]??1}catch(t){console.error("[LOGGER] Failed to load settings, using INFO level:",t),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 e=typeof r=="string"?JSON.parse(r):r;if(t==="Bash"&&e.command)return`${t}(${e.command})`;if(e.file_path)return`${t}(${e.file_path})`;if(e.notebook_path)return`${t}(${e.notebook_path})`;if(t==="Glob"&&e.pattern)return`${t}(${e.pattern})`;if(t==="Grep"&&e.pattern)return`${t}(${e.pattern})`;if(e.url)return`${t}(${e.url})`;if(e.query)return`${t}(${e.query})`;if(t==="Task"){if(e.subagent_type)return`${t}(${e.subagent_type})`;if(e.description)return`${t}(${e.description})`}return t==="Skill"&&e.skill?`${t}(${e.skill})`:t==="LSP"&&e.operation?`${t}(${e.operation})`:t}formatTimestamp(t){let r=t.getFullYear(),e=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),E=String(t.getMinutes()).padStart(2,"0"),i=String(t.getSeconds()).padStart(2,"0"),_=String(t.getMilliseconds()).padStart(3,"0");return`${r}-${e}-${n} ${o}:${E}:${i}.${_}`}log(t,r,e,n,o){if(t0&&(f=` {${Object.entries(d).map(([F,x])=>`${F}=${x}`).join(", ")}}`)}let C=`[${E}] [${i}] [${_}] ${a}${e}${f}${l}`;if(this.logFilePath)try{H(this.logFilePath,C+` +${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?c=` +`+JSON.stringify(o,null,2):c=" "+this.formatData(o));let O="";if(n){let{sessionId:D,memorySessionId:Z,correlationId:tt,...R}=n;Object.keys(R).length>0&&(O=` {${Object.entries(R).map(([k,P])=>`${k}=${P}`).join(", ")}}`)}let C=`[${E}] [${i}] [${_}] ${a}${e}${O}${c}`;if(this.logFilePath)try{W(this.logFilePath,C+` `,"utf8")}catch(D){process.stderr.write(`[LOGGER] Failed to write to log file: ${D} `)}else process.stderr.write(C+` `)}debug(t,r,e,n){this.log(0,t,r,e,n)}info(t,r,e,n){this.log(1,t,r,e,n)}warn(t,r,e,n){this.log(2,t,r,e,n)}error(t,r,e,n){this.log(3,t,r,e,n)}dataIn(t,r,e,n){this.info(t,`\u2192 ${r}`,e,n)}dataOut(t,r,e,n){this.info(t,`\u2190 ${r}`,e,n)}success(t,r,e,n){this.info(t,`\u2713 ${r}`,e,n)}failure(t,r,e,n){this.error(t,`\u2717 ${r}`,e,n)}timing(t,r,e,n){this.info(t,`\u23F1 ${r}`,n,{duration:`${e}ms`})}happyPathError(t,r,e,n,o=""){let a=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=a?`${a[1].split("/").pop()}:${a[2]}`:"unknown",f={...e,location:l};return this.warn(t,`[HAPPY-PATH] ${r}`,f,n),o}},c=new M;import A from"path";import{homedir as Y}from"os";import{readFileSync as J}from"fs";var m={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function h(s){return process.platform==="win32"?Math.round(s*m.WINDOWS_MULTIPLIER):s}import{readFileSync as K,writeFileSync as N,existsSync as $,mkdirSync as X}from"fs";import{join as V,dirname as j}from"path";import{homedir as B}from"os";var I="bugfix,feature,refactor,discovery,decision,change",y="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var g=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_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:V(B(),".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:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:I,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:y,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let r=this.get(t);return parseInt(r,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){try{if(!$(t)){let E=this.getAllDefaults();try{let i=j(t);$(i)||X(i,{recursive:!0}),N(t,JSON.stringify(E,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",t)}catch(i){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",t,i)}return E}let r=K(t,"utf-8"),e=JSON.parse(r),n=e;if(e.env&&typeof e.env=="object"){n=e.env;try{N(t,JSON.stringify(n,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",t)}catch(E){console.warn("[SETTINGS] Failed to auto-migrate settings file:",t,E)}}let o={...this.DEFAULTS};for(let E of Object.keys(this.DEFAULTS))n[E]!==void 0&&(o[E]=n[E]);return o}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",t,r),this.getAllDefaults()}}};function k(s={}){let{port:t,includeSkillFallback:r=!1,customPrefix:e,actualError:n}=s,o=e||"Worker service connection failed.",E=t?` (port ${t})`:"",i=`${o}${E} +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),c=a?`${a[1].split("/").pop()}:${a[2]}`:"unknown",O={...e,location:c};return this.warn(t,`[HAPPY-PATH] ${r}`,O,n),o}},l=new M;import L from"path";import{homedir as K}from"os";import{readFileSync as X}from"fs";var A={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function h(s){return process.platform==="win32"?Math.round(s*A.WINDOWS_MULTIPLIER):s}function I(s={}){let{port:t,includeSkillFallback:r=!1,customPrefix:e,actualError:n}=s,o=e||"Worker service connection failed.",E=t?` (port ${t})`:"",i=`${o}${E} `;return i+=`To restart the worker: `,i+=`1. Exit Claude Code completely @@ -16,8 +16,8 @@ ${o.stack}`:` ${o.message}`:this.getLevel()===0&&typeof o=="object"?l=` If that doesn't work, try: /troubleshoot`),n&&(i=`Worker Error: ${n} -${i}`),i}var z=A.join(Y(),".claude","plugins","marketplaces","thedotmack"),Ut=h(m.HEALTH_CHECK),O=null;function u(){if(O!==null)return O;let s=A.join(g.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=g.loadFromFile(s);return O=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),O}async function q(){let s=u();return(await fetch(`http://127.0.0.1:${s}/api/readiness`)).ok}function Q(){let s=A.join(z,"package.json");return JSON.parse(J(s,"utf-8")).version}async function Z(){let s=u(),t=await fetch(`http://127.0.0.1:${s}/api/version`);if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function tt(){let s=Q(),t=await Z();s!==t&&c.debug("SYSTEM","Version check",{pluginVersion:s,workerVersion:t,note:"Mismatch will be auto-restarted by worker-service start command"})}async function P(){for(let r=0;r<75;r++){try{if(await q()){await tt();return}}catch(e){c.debug("SYSTEM","Worker health check failed, will retry",{attempt:r+1,maxRetries:75,error:e instanceof Error?e.message:String(e)})}await new Promise(e=>setTimeout(e,200))}throw new Error(k({port:u(),customPrefix:"Worker did not become ready within 15 seconds."}))}import{readFileSync as et,existsSync as rt}from"fs";function w(s,t,r=!1){if(!s||!rt(s))throw new Error(`Transcript path missing or file does not exist: ${s}`);let e=et(s,"utf-8").trim();if(!e)throw new Error(`Transcript file exists but is empty: ${s}`);let n=e.split(` -`),o=!1;for(let E=n.length-1;E>=0;E--){let i=JSON.parse(n[E]);if(i.type===t&&(o=!0,i.message?.content)){let _="",a=i.message.content;if(typeof a=="string")_=a;else if(Array.isArray(a))_=a.filter(l=>l.type==="text").map(l=>l.text).join(` +${i}`),i}var V=L.join(K(),".claude","plugins","marketplaces","thedotmack"),Ct=h(A.HEALTH_CHECK),f=null;function u(){if(f!==null)return f;let s=L.join(g.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=g.loadFromFile(s);return f=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),f}async function j(){let s=u();return(await fetch(`http://127.0.0.1:${s}/api/readiness`)).ok}function B(){let s=L.join(V,"package.json");return JSON.parse(X(s,"utf-8")).version}async function Y(){let s=u(),t=await fetch(`http://127.0.0.1:${s}/api/version`);if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function J(){let s=B(),t=await Y();s!==t&&l.debug("SYSTEM","Version check",{pluginVersion:s,workerVersion:t,note:"Mismatch will be auto-restarted by worker-service start command"})}async function N(){for(let r=0;r<75;r++){try{if(await j()){await J();return}}catch(e){l.debug("SYSTEM","Worker health check failed, will retry",{attempt:r+1,maxRetries:75,error:e instanceof Error?e.message:String(e)})}await new Promise(e=>setTimeout(e,200))}throw new Error(I({port:u(),customPrefix:"Worker did not become ready within 15 seconds."}))}import{readFileSync as q,existsSync as z}from"fs";function y(s,t,r=!1){if(!s||!z(s))throw new Error(`Transcript path missing or file does not exist: ${s}`);let e=q(s,"utf-8").trim();if(!e)throw new Error(`Transcript file exists but is empty: ${s}`);let n=e.split(` +`),o=!1;for(let E=n.length-1;E>=0;E--){let i=JSON.parse(n[E]);if(i.type===t&&(o=!0,i.message?.content)){let _="",a=i.message.content;if(typeof a=="string")_=a;else if(Array.isArray(a))_=a.filter(c=>c.type==="text").map(c=>c.text).join(` `);else throw new Error(`Unknown message content format in transcript. Type: ${typeof a}`);return r&&(_=_.replace(/[\s\S]*?<\/system-reminder>/g,""),_=_.replace(/\n{3,}/g,` -`).trim()),_}}if(!o)throw new Error(`No message found for role '${t}' in transcript: ${s}`);return""}async function nt(s){if(await P(),!s)throw new Error("summaryHook requires input");let{session_id:t}=s,r=u();if(!s.transcript_path)throw new Error(`Missing transcript_path in Stop hook input for session ${t}`);let e=w(s.transcript_path,"assistant",!0);c.dataIn("HOOK","Stop: Requesting summary",{workerPort:r,hasLastAssistantMessage:!!e});let n=await fetch(`http://127.0.0.1:${r}/api/sessions/summarize`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:t,last_assistant_message:e})});if(!n.ok)throw console.log(T),new Error(`Summary generation failed: ${n.status}`);c.debug("HOOK","Summary request sent successfully"),console.log(T)}var L="";v.on("data",s=>L+=s);v.on("end",async()=>{try{let s;try{s=L?JSON.parse(L):void 0}catch(t){throw new Error(`Failed to parse hook input: ${t instanceof Error?t.message:String(t)}`)}await nt(s)}catch(s){c.error("HOOK","summary-hook failed",{},s)}finally{process.exit(0)}}); +`).trim()),_}}if(!o)throw new Error(`No message found for role '${t}' in transcript: ${s}`);return""}async function Q(s){if(await N(),!s)throw new Error("summaryHook requires input");let{session_id:t}=s,r=u();if(!s.transcript_path)throw new Error(`Missing transcript_path in Stop hook input for session ${t}`);let e=y(s.transcript_path,"assistant",!0);l.dataIn("HOOK","Stop: Requesting summary",{workerPort:r,hasLastAssistantMessage:!!e});let n=await fetch(`http://127.0.0.1:${r}/api/sessions/summarize`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentSessionId:t,last_assistant_message:e})});if(!n.ok)throw console.log(S),new Error(`Summary generation failed: ${n.status}`);l.debug("HOOK","Summary request sent successfully"),console.log(S)}var m="";$.on("data",s=>m+=s);$.on("end",async()=>{try{let s;try{s=m?JSON.parse(m):void 0}catch(t){throw new Error(`Failed to parse hook input: ${t instanceof Error?t.message:String(t)}`)}await Q(s)}catch(s){l.error("HOOK","summary-hook failed",{},s)}finally{process.exit(0)}}); diff --git a/plugin/scripts/worker-service.cjs b/plugin/scripts/worker-service.cjs index 147a3cfd..304f9c30 100755 --- a/plugin/scripts/worker-service.cjs +++ b/plugin/scripts/worker-service.cjs @@ -1,39 +1,39 @@ #!/usr/bin/env bun -"use strict";var uq=Object.create;var Ud=Object.defineProperty;var lq=Object.getOwnPropertyDescriptor;var dq=Object.getOwnPropertyNames;var pq=Object.getPrototypeOf,fq=Object.prototype.hasOwnProperty;var Gt=(t,e)=>()=>(t&&(e=t(t=0)),e);var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Rn=(t,e)=>{for(var r in e)Ud(t,r,{get:e[r],enumerable:!0})},gE=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of dq(e))!fq.call(t,i)&&i!==r&&Ud(t,i,{get:()=>e[i],enumerable:!(n=lq(e,i))||n.enumerable});return t};var yt=(t,e,r)=>(r=t!=null?uq(pq(t)):{},gE(e||!t||!t.__esModule?Ud(r,"default",{value:t,enumerable:!0}):r,t)),qd=t=>gE(Ud({},"__esModule",{value:!0}),t);var zu=j(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.regexpCode=at.getEsmExportName=at.getProperty=at.safeStringify=at.stringify=at.strConcat=at.addCodeArg=at.str=at._=at.nil=at._Code=at.Name=at.IDENTIFIER=at._CodeOrName=void 0;var Au=class{};at._CodeOrName=Au;at.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var La=class extends Au{constructor(e){if(super(),!at.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}}};at.Name=La;var mn=class extends Au{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 La&&(r[n.str]=(r[n.str]||0)+1),r),{})}};at._Code=mn;at.nil=new mn("");function N1(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.ValueScope=Ur.ValueScopeName=Ur.Scope=Ur.varKinds=Ur.UsedValueState=void 0;var Dr=zu(),Cb=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},cf;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(cf||(Ur.UsedValueState=cf={}));Ur.varKinds={const:new Dr.Name("const"),let:new Dr.Name("let"),var:new Dr.Name("var")};var uf=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Dr.Name?e:this.name(e)}name(e){return new Dr.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}}};Ur.Scope=uf;var lf=class extends Dr.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Dr._)`.${new Dr.Name(r)}[${n}]`}};Ur.ValueScopeName=lf;var c5=(0,Dr._)`\n`,Nb=class extends uf{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?c5:Dr.nil}}get(){return this._scope}name(e){return new lf(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:a}=i,o=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[a];if(s){let l=s.get(o);if(l)return l}else s=this._values[a]=new Map;s.set(o,i);let c=this._scope[a]||(this._scope[a]=[]),u=c.length;return c[u]=r.ref,i.setValue(r,{property:a,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,Dr._)`${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 a=Dr.nil;for(let o in e){let s=e[o];if(!s)continue;let c=n[o]=n[o]||new Map;s.forEach(u=>{if(c.has(u))return;c.set(u,cf.Started);let l=r(u);if(l){let d=this.opts.es5?Ur.varKinds.var:Ur.varKinds.const;a=(0,Dr._)`${a}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))a=(0,Dr._)`${a}${l}${this.opts._n}`;else throw new Cb(u);c.set(u,cf.Completed)})}return a}};Ur.ValueScope=Nb});var Le=j(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.or=Ze.and=Ze.not=Ze.CodeGen=Ze.operators=Ze.varKinds=Ze.ValueScopeName=Ze.ValueScope=Ze.Scope=Ze.Name=Ze.regexpCode=Ze.stringify=Ze.getProperty=Ze.nil=Ze.strConcat=Ze.str=Ze._=void 0;var tt=zu(),Mn=jb(),ra=zu();Object.defineProperty(Ze,"_",{enumerable:!0,get:function(){return ra._}});Object.defineProperty(Ze,"str",{enumerable:!0,get:function(){return ra.str}});Object.defineProperty(Ze,"strConcat",{enumerable:!0,get:function(){return ra.strConcat}});Object.defineProperty(Ze,"nil",{enumerable:!0,get:function(){return ra.nil}});Object.defineProperty(Ze,"getProperty",{enumerable:!0,get:function(){return ra.getProperty}});Object.defineProperty(Ze,"stringify",{enumerable:!0,get:function(){return ra.stringify}});Object.defineProperty(Ze,"regexpCode",{enumerable:!0,get:function(){return ra.regexpCode}});Object.defineProperty(Ze,"Name",{enumerable:!0,get:function(){return ra.Name}});var mf=jb();Object.defineProperty(Ze,"Scope",{enumerable:!0,get:function(){return mf.Scope}});Object.defineProperty(Ze,"ValueScope",{enumerable:!0,get:function(){return mf.ValueScope}});Object.defineProperty(Ze,"ValueScopeName",{enumerable:!0,get:function(){return mf.ValueScopeName}});Object.defineProperty(Ze,"varKinds",{enumerable:!0,get:function(){return mf.varKinds}});Ze.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 Pi=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Ab=class extends Pi{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?Mn.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=ts(this.rhs,e,r)),this}get names(){return this.rhs instanceof tt._CodeOrName?this.rhs.names:{}}},df=class extends Pi{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=ts(this.rhs,e,r),this}get names(){let e=this.lhs instanceof tt.Name?{}:{...this.lhs.names};return ff(e,this.rhs)}},Mb=class extends df{constructor(e,r,n,i){super(e,n,i),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},zb=class extends Pi{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},Db=class extends Pi{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Ub=class extends Pi{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},qb=class extends Pi{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=ts(this.code,e,r),this}get names(){return this.code instanceof tt._CodeOrName?this.code.names:{}}},Du=class extends Pi{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 a=n[i];a.optimizeNames(e,r)||(u5(e,a.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Ha(e,r.names),{})}},Oi=class extends Du{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Lb=class extends Du{},es=class extends Oi{};es.kind="else";var Fa=class t extends Oi{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 es(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(A1(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=ts(this.condition,e,r),this}get names(){let e=super.names;return ff(e,this.condition),this.else&&Ha(e,this.else.names),e}};Fa.kind="if";var Za=class extends Oi{};Za.kind="for";var Fb=class extends Za{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=ts(this.iteration,e,r),this}get names(){return Ha(super.names,this.iteration.names)}},Zb=class extends Za{constructor(e,r,n,i){super(),this.varKind=e,this.name=r,this.from=n,this.to=i}render(e){let r=e.es5?Mn.varKinds.var:this.varKind,{name:n,from:i,to:a}=this;return`for(${r} ${n}=${i}; ${n}<${a}; ${n}++)`+super.render(e)}get names(){let e=ff(super.names,this.from);return ff(e,this.to)}},pf=class extends Za{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=ts(this.iterable,e,r),this}get names(){return Ha(super.names,this.iterable.names)}},Uu=class extends Oi{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)}};Uu.kind="func";var qu=class extends Du{render(e){return"return "+super.render(e)}};qu.kind="return";var Hb=class extends Oi{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&&Ha(e,this.catch.names),this.finally&&Ha(e,this.finally.names),e}},Lu=class extends Oi{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};Lu.kind="catch";var Fu=class extends Oi{render(e){return"finally"+super.render(e)}};Fu.kind="finally";var Bb=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` -`:""},this._extScope=e,this._scope=new Mn.Scope({parent:e}),this._nodes=[new Lb]}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 a=this._scope.toName(r);return n!==void 0&&i&&(this._constants[a.str]=n),this._leafNode(new Ab(e,a,n)),a}const(e,r,n){return this._def(Mn.varKinds.const,e,r,n)}let(e,r,n){return this._def(Mn.varKinds.let,e,r,n)}var(e,r,n){return this._def(Mn.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new df(e,r,n))}add(e,r){return this._leafNode(new Mb(e,Ze.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==tt.nil&&this._leafNode(new qb(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 Fa(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 Fa(e))}else(){return this._elseNode(new es)}endIf(){return this._endBlockNode(Fa,es)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new Fb(e),r)}forRange(e,r,n,i,a=this.opts.es5?Mn.varKinds.var:Mn.varKinds.let){let o=this._scope.toName(e);return this._for(new Zb(a,o,r,n),()=>i(o))}forOf(e,r,n,i=Mn.varKinds.const){let a=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`,s=>{this.var(a,(0,tt._)`${o}[${s}]`),n(a)})}return this._for(new pf("of",i,a,r),()=>n(a))}forIn(e,r,n,i=this.opts.es5?Mn.varKinds.var:Mn.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,tt._)`Object.keys(${r})`,n);let a=this._scope.toName(e);return this._for(new pf("in",i,a,r),()=>n(a))}endFor(){return this._endBlockNode(Za)}label(e){return this._leafNode(new zb(e))}break(e){return this._leafNode(new Db(e))}return(e){let r=new qu;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(qu)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Hb;if(this._blockNode(i),this.code(e),r){let a=this.name("e");this._currNode=i.catch=new Lu(a),r(a)}return n&&(this._currNode=i.finally=new Fu,this.code(n)),this._endBlockNode(Lu,Fu)}throw(e){return this._leafNode(new Ub(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 Uu(e,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Uu)}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 Fa))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}};Ze.CodeGen=Bb;function Ha(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function ff(t,e){return e instanceof tt._CodeOrName?Ha(t,e.names):t}function ts(t,e,r){if(t instanceof tt.Name)return n(t);if(!i(t))return t;return new tt._Code(t._items.reduce((a,o)=>(o instanceof tt.Name&&(o=n(o)),o instanceof tt._Code?a.push(...o._items):a.push(o),a),[]));function n(a){let o=r[a.str];return o===void 0||e[a.str]!==1?a:(delete e[a.str],o)}function i(a){return a instanceof tt._Code&&a._items.some(o=>o instanceof tt.Name&&e[o.str]===1&&r[o.str]!==void 0)}}function u5(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function A1(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,tt._)`!${Vb(t)}`}Ze.not=A1;var l5=M1(Ze.operators.AND);function d5(...t){return t.reduce(l5)}Ze.and=d5;var p5=M1(Ze.operators.OR);function f5(...t){return t.reduce(p5)}Ze.or=f5;function M1(t){return(e,r)=>e===tt.nil?r:r===tt.nil?e:(0,tt._)`${Vb(e)} ${t} ${Vb(r)}`}function Vb(t){return t instanceof tt.Name?t:(0,tt._)`(${t})`}});var ot=j(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.checkStrictMode=We.getErrorPath=We.Type=We.useFunc=We.setEvaluated=We.evaluatedPropsToName=We.mergeEvaluated=We.eachItem=We.unescapeJsonPointer=We.escapeJsonPointer=We.escapeFragment=We.unescapeFragment=We.schemaRefOrVal=We.schemaHasRulesButRef=We.schemaHasRules=We.checkUnknownRules=We.alwaysValidSchema=We.toHash=void 0;var kt=Le(),m5=zu();function h5(t){let e={};for(let r of t)e[r]=!0;return e}We.toHash=h5;function g5(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(U1(t,e),!q1(e,t.self.RULES.all))}We.alwaysValidSchema=g5;function U1(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let i=n.RULES.keywords;for(let a in e)i[a]||Z1(t,`unknown keyword: "${a}"`)}We.checkUnknownRules=U1;function q1(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}We.schemaHasRules=q1;function v5(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}We.schemaHasRulesButRef=v5;function y5({topSchemaRef:t,schemaPath:e},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,kt._)`${r}`}return(0,kt._)`${t}${e}${(0,kt.getProperty)(n)}`}We.schemaRefOrVal=y5;function _5(t){return L1(decodeURIComponent(t))}We.unescapeFragment=_5;function b5(t){return encodeURIComponent(Wb(t))}We.escapeFragment=b5;function Wb(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}We.escapeJsonPointer=Wb;function L1(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}We.unescapeJsonPointer=L1;function x5(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}We.eachItem=x5;function z1({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(i,a,o,s)=>{let c=o===void 0?a:o instanceof kt.Name?(a instanceof kt.Name?t(i,a,o):e(i,a,o),o):a instanceof kt.Name?(e(i,o,a),a):r(a,o);return s===kt.Name&&!(c instanceof kt.Name)?n(i,c):c}}We.mergeEvaluated={props:z1({mergeNames:(t,e,r)=>t.if((0,kt._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,kt._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,kt._)`${r} || {}`).code((0,kt._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,kt._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,kt._)`${r} || {}`),Kb(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:F1}),items:z1({mergeNames:(t,e,r)=>t.if((0,kt._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,kt._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,kt._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,kt._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function F1(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,kt._)`{}`);return e!==void 0&&Kb(t,r,e),r}We.evaluatedPropsToName=F1;function Kb(t,e,r){Object.keys(r).forEach(n=>t.assign((0,kt._)`${e}${(0,kt.getProperty)(n)}`,!0))}We.setEvaluated=Kb;var D1={};function S5(t,e){return t.scopeValue("func",{ref:e,code:D1[e.code]||(D1[e.code]=new m5._Code(e.code))})}We.useFunc=S5;var Gb;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Gb||(We.Type=Gb={}));function w5(t,e,r){if(t instanceof kt.Name){let n=e===Gb.Num;return r?n?(0,kt._)`"[" + ${t} + "]"`:(0,kt._)`"['" + ${t} + "']"`:n?(0,kt._)`"/" + ${t}`:(0,kt._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,kt.getProperty)(t).toString():"/"+Wb(t)}We.getErrorPath=w5;function Z1(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}We.checkStrictMode=Z1});var Ri=j(Jb=>{"use strict";Object.defineProperty(Jb,"__esModule",{value:!0});var yr=Le(),$5={data:new yr.Name("data"),valCxt:new yr.Name("valCxt"),instancePath:new yr.Name("instancePath"),parentData:new yr.Name("parentData"),parentDataProperty:new yr.Name("parentDataProperty"),rootData:new yr.Name("rootData"),dynamicAnchors:new yr.Name("dynamicAnchors"),vErrors:new yr.Name("vErrors"),errors:new yr.Name("errors"),this:new yr.Name("this"),self:new yr.Name("self"),scope:new yr.Name("scope"),json:new yr.Name("json"),jsonPos:new yr.Name("jsonPos"),jsonLen:new yr.Name("jsonLen"),jsonPart:new yr.Name("jsonPart")};Jb.default=$5});var Zu=j(_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 rt=Le(),hf=ot(),Pr=Ri();_r.keywordError={message:({keyword:t})=>(0,rt.str)`must pass "${t}" keyword validation`};_r.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,rt.str)`"${t}" keyword must be ${e} ($data)`:(0,rt.str)`"${t}" keyword is invalid ($data)`};function E5(t,e=_r.keywordError,r,n){let{it:i}=t,{gen:a,compositeRule:o,allErrors:s}=i,c=V1(t,e,r);n??(o||s)?H1(a,c):B1(i,(0,rt._)`[${c}]`)}_r.reportError=E5;function k5(t,e=_r.keywordError,r){let{it:n}=t,{gen:i,compositeRule:a,allErrors:o}=n,s=V1(t,e,r);H1(i,s),a||o||B1(n,Pr.default.vErrors)}_r.reportExtraError=k5;function T5(t,e){t.assign(Pr.default.errors,e),t.if((0,rt._)`${Pr.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,rt._)`${Pr.default.vErrors}.length`,e),()=>t.assign(Pr.default.vErrors,null)))}_r.resetErrorsCount=T5;function I5({gen:t,keyword:e,schemaValue:r,data:n,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let o=t.name("err");t.forRange("i",i,Pr.default.errors,s=>{t.const(o,(0,rt._)`${Pr.default.vErrors}[${s}]`),t.if((0,rt._)`${o}.instancePath === undefined`,()=>t.assign((0,rt._)`${o}.instancePath`,(0,rt.strConcat)(Pr.default.instancePath,a.errorPath))),t.assign((0,rt._)`${o}.schemaPath`,(0,rt.str)`${a.errSchemaPath}/${e}`),a.opts.verbose&&(t.assign((0,rt._)`${o}.schema`,r),t.assign((0,rt._)`${o}.data`,n))})}_r.extendErrors=I5;function H1(t,e){let r=t.const("err",e);t.if((0,rt._)`${Pr.default.vErrors} === null`,()=>t.assign(Pr.default.vErrors,(0,rt._)`[${r}]`),(0,rt._)`${Pr.default.vErrors}.push(${r})`),t.code((0,rt._)`${Pr.default.errors}++`)}function B1(t,e){let{gen:r,validateName:n,schemaEnv:i}=t;i.$async?r.throw((0,rt._)`new ${t.ValidationError}(${e})`):(r.assign((0,rt._)`${n}.errors`,e),r.return(!1))}var Ba={keyword:new rt.Name("keyword"),schemaPath:new rt.Name("schemaPath"),params:new rt.Name("params"),propertyName:new rt.Name("propertyName"),message:new rt.Name("message"),schema:new rt.Name("schema"),parentSchema:new rt.Name("parentSchema")};function V1(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,rt._)`{}`:P5(t,e,r)}function P5(t,e,r={}){let{gen:n,it:i}=t,a=[O5(i,r),R5(t,r)];return C5(t,e,a),n.object(...a)}function O5({errorPath:t},{instancePath:e}){let r=e?(0,rt.str)`${t}${(0,hf.getErrorPath)(e,hf.Type.Str)}`:t;return[Pr.default.instancePath,(0,rt.strConcat)(Pr.default.instancePath,r)]}function R5({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let i=n?e:(0,rt.str)`${e}/${t}`;return r&&(i=(0,rt.str)`${i}${(0,hf.getErrorPath)(r,hf.Type.Str)}`),[Ba.schemaPath,i]}function C5(t,{params:e,message:r},n){let{keyword:i,data:a,schemaValue:o,it:s}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=s;n.push([Ba.keyword,i],[Ba.params,typeof e=="function"?e(t):e||(0,rt._)`{}`]),c.messages&&n.push([Ba.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Ba.schema,o],[Ba.parentSchema,(0,rt._)`${l}${d}`],[Pr.default.data,a]),u&&n.push([Ba.propertyName,u])}});var W1=j(rs=>{"use strict";Object.defineProperty(rs,"__esModule",{value:!0});rs.boolOrEmptySchema=rs.topBoolOrEmptySchema=void 0;var N5=Zu(),j5=Le(),A5=Ri(),M5={message:"boolean schema is false"};function z5(t){let{gen:e,schema:r,validateName:n}=t;r===!1?G1(t,!1):typeof r=="object"&&r.$async===!0?e.return(A5.default.data):(e.assign((0,j5._)`${n}.errors`,null),e.return(!0))}rs.topBoolOrEmptySchema=z5;function D5(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),G1(t)):r.var(e,!0)}rs.boolOrEmptySchema=D5;function G1(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,N5.reportError)(i,M5,void 0,e)}});var Xb=j(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.getRules=ns.isJSONType=void 0;var U5=["string","number","integer","boolean","null","object","array"],q5=new Set(U5);function L5(t){return typeof t=="string"&&q5.has(t)}ns.isJSONType=L5;function F5(){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:{}}}ns.getRules=F5});var Yb=j(na=>{"use strict";Object.defineProperty(na,"__esModule",{value:!0});na.shouldUseRule=na.shouldUseGroup=na.schemaHasRulesForType=void 0;function Z5({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&K1(t,n)}na.schemaHasRulesForType=Z5;function K1(t,e){return e.rules.some(r=>J1(t,r))}na.shouldUseGroup=K1;function J1(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))}na.shouldUseRule=J1});var Hu=j(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.reportTypeError=br.checkDataTypes=br.checkDataType=br.coerceAndCheckDataType=br.getJSONTypes=br.getSchemaTypes=br.DataType=void 0;var H5=Xb(),B5=Yb(),V5=Zu(),Ue=Le(),X1=ot(),is;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(is||(br.DataType=is={}));function G5(t){let e=Y1(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}br.getSchemaTypes=G5;function Y1(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(H5.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}br.getJSONTypes=Y1;function W5(t,e){let{gen:r,data:n,opts:i}=t,a=K5(e,i.coerceTypes),o=e.length>0&&!(a.length===0&&e.length===1&&(0,B5.schemaHasRulesForType)(t,e[0]));if(o){let s=ex(e,n,i.strictNumbers,is.Wrong);r.if(s,()=>{a.length?J5(t,e,a):tx(t)})}return o}br.coerceAndCheckDataType=W5;var Q1=new Set(["string","number","integer","boolean","null"]);function K5(t,e){return e?t.filter(r=>Q1.has(r)||e==="array"&&r==="array"):[]}function J5(t,e,r){let{gen:n,data:i,opts:a}=t,o=n.let("dataType",(0,Ue._)`typeof ${i}`),s=n.let("coerced",(0,Ue._)`undefined`);a.coerceTypes==="array"&&n.if((0,Ue._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,Ue._)`${i}[0]`).assign(o,(0,Ue._)`typeof ${i}`).if(ex(e,i,a.strictNumbers),()=>n.assign(s,i))),n.if((0,Ue._)`${s} !== undefined`);for(let u of r)(Q1.has(u)||u==="array"&&a.coerceTypes==="array")&&c(u);n.else(),tx(t),n.endIf(),n.if((0,Ue._)`${s} !== undefined`,()=>{n.assign(i,s),X5(t,s)});function c(u){switch(u){case"string":n.elseIf((0,Ue._)`${o} == "number" || ${o} == "boolean"`).assign(s,(0,Ue._)`"" + ${i}`).elseIf((0,Ue._)`${i} === null`).assign(s,(0,Ue._)`""`);return;case"number":n.elseIf((0,Ue._)`${o} == "boolean" || ${i} === null +"use strict";var hq=Object.create;var Ld=Object.defineProperty;var gq=Object.getOwnPropertyDescriptor;var vq=Object.getOwnPropertyNames;var yq=Object.getPrototypeOf,_q=Object.prototype.hasOwnProperty;var Ht=(t,e)=>()=>(t&&(e=t(t=0)),e);var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Cn=(t,e)=>{for(var r in e)Ld(t,r,{get:e[r],enumerable:!0})},yE=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vq(e))!_q.call(t,i)&&i!==r&&Ld(t,i,{get:()=>e[i],enumerable:!(n=gq(e,i))||n.enumerable});return t};var dt=(t,e,r)=>(r=t!=null?hq(yq(t)):{},yE(e||!t||!t.__esModule?Ld(r,"default",{value:t,enumerable:!0}):r,t)),Fd=t=>yE(Ld({},"__esModule",{value:!0}),t);var Lu=j(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.regexpCode=at.getEsmExportName=at.getProperty=at.safeStringify=at.stringify=at.strConcat=at.addCodeArg=at.str=at._=at.nil=at._Code=at.Name=at.IDENTIFIER=at._CodeOrName=void 0;var Uu=class{};at._CodeOrName=Uu;at.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var qa=class extends Uu{constructor(e){if(super(),!at.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}}};at.Name=qa;var hn=class extends Uu{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 qa&&(r[n.str]=(r[n.str]||0)+1),r),{})}};at._Code=hn;at.nil=new hn("");function A1(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.ValueScope=Ur.ValueScopeName=Ur.Scope=Ur.varKinds=Ur.UsedValueState=void 0;var zr=Lu(),jb=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},lf;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(lf||(Ur.UsedValueState=lf={}));Ur.varKinds={const:new zr.Name("const"),let:new zr.Name("let"),var:new zr.Name("var")};var df=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof zr.Name?e:this.name(e)}name(e){return new zr.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}}};Ur.Scope=df;var pf=class extends zr.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,zr._)`.${new zr.Name(r)}[${n}]`}};Ur.ValueScopeName=pf;var m5=(0,zr._)`\n`,Ab=class extends df{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?m5:zr.nil}}get(){return this._scope}name(e){return new pf(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:a}=i,o=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[a];if(s){let l=s.get(o);if(l)return l}else s=this._values[a]=new Map;s.set(o,i);let c=this._scope[a]||(this._scope[a]=[]),u=c.length;return c[u]=r.ref,i.setValue(r,{property:a,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,zr._)`${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 a=zr.nil;for(let o in e){let s=e[o];if(!s)continue;let c=n[o]=n[o]||new Map;s.forEach(u=>{if(c.has(u))return;c.set(u,lf.Started);let l=r(u);if(l){let d=this.opts.es5?Ur.varKinds.var:Ur.varKinds.const;a=(0,zr._)`${a}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))a=(0,zr._)`${a}${l}${this.opts._n}`;else throw new jb(u);c.set(u,lf.Completed)})}return a}};Ur.ValueScope=Ab});var Le=j(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.or=He.and=He.not=He.CodeGen=He.operators=He.varKinds=He.ValueScopeName=He.ValueScope=He.Scope=He.Name=He.regexpCode=He.stringify=He.getProperty=He.nil=He.strConcat=He.str=He._=void 0;var rt=Lu(),Dn=Mb(),ta=Lu();Object.defineProperty(He,"_",{enumerable:!0,get:function(){return ta._}});Object.defineProperty(He,"str",{enumerable:!0,get:function(){return ta.str}});Object.defineProperty(He,"strConcat",{enumerable:!0,get:function(){return ta.strConcat}});Object.defineProperty(He,"nil",{enumerable:!0,get:function(){return ta.nil}});Object.defineProperty(He,"getProperty",{enumerable:!0,get:function(){return ta.getProperty}});Object.defineProperty(He,"stringify",{enumerable:!0,get:function(){return ta.stringify}});Object.defineProperty(He,"regexpCode",{enumerable:!0,get:function(){return ta.regexpCode}});Object.defineProperty(He,"Name",{enumerable:!0,get:function(){return ta.Name}});var gf=Mb();Object.defineProperty(He,"Scope",{enumerable:!0,get:function(){return gf.Scope}});Object.defineProperty(He,"ValueScope",{enumerable:!0,get:function(){return gf.ValueScope}});Object.defineProperty(He,"ValueScopeName",{enumerable:!0,get:function(){return gf.ValueScopeName}});Object.defineProperty(He,"varKinds",{enumerable:!0,get:function(){return gf.varKinds}});He.operators={GT:new rt._Code(">"),GTE:new rt._Code(">="),LT:new rt._Code("<"),LTE:new rt._Code("<="),EQ:new rt._Code("==="),NEQ:new rt._Code("!=="),NOT:new rt._Code("!"),OR:new rt._Code("||"),AND:new rt._Code("&&"),ADD:new rt._Code("+")};var Pi=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Db=class extends Pi{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?Dn.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=rs(this.rhs,e,r)),this}get names(){return this.rhs instanceof rt._CodeOrName?this.rhs.names:{}}},ff=class extends Pi{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 rt.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=rs(this.rhs,e,r),this}get names(){let e=this.lhs instanceof rt.Name?{}:{...this.lhs.names};return hf(e,this.rhs)}},zb=class extends ff{constructor(e,r,n,i){super(e,n,i),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Ub=class extends Pi{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},qb=class extends Pi{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Lb=class extends Pi{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},Fb=class extends Pi{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=rs(this.code,e,r),this}get names(){return this.code instanceof rt._CodeOrName?this.code.names:{}}},Fu=class extends Pi{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 a=n[i];a.optimizeNames(e,r)||(h5(e,a.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Za(e,r.names),{})}},Ri=class extends Fu{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Zb=class extends Fu{},ts=class extends Ri{};ts.kind="else";var La=class t extends Ri{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 ts(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(D1(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=rs(this.condition,e,r),this}get names(){let e=super.names;return hf(e,this.condition),this.else&&Za(e,this.else.names),e}};La.kind="if";var Fa=class extends Ri{};Fa.kind="for";var Hb=class extends Fa{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=rs(this.iteration,e,r),this}get names(){return Za(super.names,this.iteration.names)}},Bb=class extends Fa{constructor(e,r,n,i){super(),this.varKind=e,this.name=r,this.from=n,this.to=i}render(e){let r=e.es5?Dn.varKinds.var:this.varKind,{name:n,from:i,to:a}=this;return`for(${r} ${n}=${i}; ${n}<${a}; ${n}++)`+super.render(e)}get names(){let e=hf(super.names,this.from);return hf(e,this.to)}},mf=class extends Fa{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=rs(this.iterable,e,r),this}get names(){return Za(super.names,this.iterable.names)}},Zu=class extends Ri{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)}};Zu.kind="func";var Hu=class extends Fu{render(e){return"return "+super.render(e)}};Hu.kind="return";var Vb=class extends Ri{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&&Za(e,this.catch.names),this.finally&&Za(e,this.finally.names),e}},Bu=class extends Ri{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};Bu.kind="catch";var Vu=class extends Ri{render(e){return"finally"+super.render(e)}};Vu.kind="finally";var Gb=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` +`:""},this._extScope=e,this._scope=new Dn.Scope({parent:e}),this._nodes=[new Zb]}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 a=this._scope.toName(r);return n!==void 0&&i&&(this._constants[a.str]=n),this._leafNode(new Db(e,a,n)),a}const(e,r,n){return this._def(Dn.varKinds.const,e,r,n)}let(e,r,n){return this._def(Dn.varKinds.let,e,r,n)}var(e,r,n){return this._def(Dn.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new ff(e,r,n))}add(e,r){return this._leafNode(new zb(e,He.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==rt.nil&&this._leafNode(new Fb(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,rt.addCodeArg)(r,i));return r.push("}"),new rt._Code(r)}if(e,r,n){if(this._blockNode(new La(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 La(e))}else(){return this._elseNode(new ts)}endIf(){return this._endBlockNode(La,ts)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new Hb(e),r)}forRange(e,r,n,i,a=this.opts.es5?Dn.varKinds.var:Dn.varKinds.let){let o=this._scope.toName(e);return this._for(new Bb(a,o,r,n),()=>i(o))}forOf(e,r,n,i=Dn.varKinds.const){let a=this._scope.toName(e);if(this.opts.es5){let o=r instanceof rt.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,rt._)`${o}.length`,s=>{this.var(a,(0,rt._)`${o}[${s}]`),n(a)})}return this._for(new mf("of",i,a,r),()=>n(a))}forIn(e,r,n,i=this.opts.es5?Dn.varKinds.var:Dn.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,rt._)`Object.keys(${r})`,n);let a=this._scope.toName(e);return this._for(new mf("in",i,a,r),()=>n(a))}endFor(){return this._endBlockNode(Fa)}label(e){return this._leafNode(new Ub(e))}break(e){return this._leafNode(new qb(e))}return(e){let r=new Hu;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Hu)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Vb;if(this._blockNode(i),this.code(e),r){let a=this.name("e");this._currNode=i.catch=new Bu(a),r(a)}return n&&(this._currNode=i.finally=new Vu,this.code(n)),this._endBlockNode(Bu,Vu)}throw(e){return this._leafNode(new Lb(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=rt.nil,n,i){return this._blockNode(new Zu(e,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Zu)}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 La))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}};He.CodeGen=Gb;function Za(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function hf(t,e){return e instanceof rt._CodeOrName?Za(t,e.names):t}function rs(t,e,r){if(t instanceof rt.Name)return n(t);if(!i(t))return t;return new rt._Code(t._items.reduce((a,o)=>(o instanceof rt.Name&&(o=n(o)),o instanceof rt._Code?a.push(...o._items):a.push(o),a),[]));function n(a){let o=r[a.str];return o===void 0||e[a.str]!==1?a:(delete e[a.str],o)}function i(a){return a instanceof rt._Code&&a._items.some(o=>o instanceof rt.Name&&e[o.str]===1&&r[o.str]!==void 0)}}function h5(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function D1(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,rt._)`!${Wb(t)}`}He.not=D1;var g5=z1(He.operators.AND);function v5(...t){return t.reduce(g5)}He.and=v5;var y5=z1(He.operators.OR);function _5(...t){return t.reduce(y5)}He.or=_5;function z1(t){return(e,r)=>e===rt.nil?r:r===rt.nil?e:(0,rt._)`${Wb(e)} ${t} ${Wb(r)}`}function Wb(t){return t instanceof rt.Name?t:(0,rt._)`(${t})`}});var ot=j(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 kt=Le(),b5=Lu();function x5(t){let e={};for(let r of t)e[r]=!0;return e}Ke.toHash=x5;function S5(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(L1(t,e),!F1(e,t.self.RULES.all))}Ke.alwaysValidSchema=S5;function L1(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let i=n.RULES.keywords;for(let a in e)i[a]||B1(t,`unknown keyword: "${a}"`)}Ke.checkUnknownRules=L1;function F1(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}Ke.schemaHasRules=F1;function w5(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=w5;function $5({topSchemaRef:t,schemaPath:e},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,kt._)`${r}`}return(0,kt._)`${t}${e}${(0,kt.getProperty)(n)}`}Ke.schemaRefOrVal=$5;function E5(t){return Z1(decodeURIComponent(t))}Ke.unescapeFragment=E5;function k5(t){return encodeURIComponent(Jb(t))}Ke.escapeFragment=k5;function Jb(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}Ke.escapeJsonPointer=Jb;function Z1(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}Ke.unescapeJsonPointer=Z1;function T5(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}Ke.eachItem=T5;function U1({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(i,a,o,s)=>{let c=o===void 0?a:o instanceof kt.Name?(a instanceof kt.Name?t(i,a,o):e(i,a,o),o):a instanceof kt.Name?(e(i,o,a),a):r(a,o);return s===kt.Name&&!(c instanceof kt.Name)?n(i,c):c}}Ke.mergeEvaluated={props:U1({mergeNames:(t,e,r)=>t.if((0,kt._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,kt._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,kt._)`${r} || {}`).code((0,kt._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,kt._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,kt._)`${r} || {}`),Xb(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:H1}),items:U1({mergeNames:(t,e,r)=>t.if((0,kt._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,kt._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,kt._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,kt._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function H1(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,kt._)`{}`);return e!==void 0&&Xb(t,r,e),r}Ke.evaluatedPropsToName=H1;function Xb(t,e,r){Object.keys(r).forEach(n=>t.assign((0,kt._)`${e}${(0,kt.getProperty)(n)}`,!0))}Ke.setEvaluated=Xb;var q1={};function I5(t,e){return t.scopeValue("func",{ref:e,code:q1[e.code]||(q1[e.code]=new b5._Code(e.code))})}Ke.useFunc=I5;var Kb;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Kb||(Ke.Type=Kb={}));function P5(t,e,r){if(t instanceof kt.Name){let n=e===Kb.Num;return r?n?(0,kt._)`"[" + ${t} + "]"`:(0,kt._)`"['" + ${t} + "']"`:n?(0,kt._)`"/" + ${t}`:(0,kt._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,kt.getProperty)(t).toString():"/"+Jb(t)}Ke.getErrorPath=P5;function B1(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=B1});var Oi=j(Yb=>{"use strict";Object.defineProperty(Yb,"__esModule",{value:!0});var yr=Le(),R5={data:new yr.Name("data"),valCxt:new yr.Name("valCxt"),instancePath:new yr.Name("instancePath"),parentData:new yr.Name("parentData"),parentDataProperty:new yr.Name("parentDataProperty"),rootData:new yr.Name("rootData"),dynamicAnchors:new yr.Name("dynamicAnchors"),vErrors:new yr.Name("vErrors"),errors:new yr.Name("errors"),this:new yr.Name("this"),self:new yr.Name("self"),scope:new yr.Name("scope"),json:new yr.Name("json"),jsonPos:new yr.Name("jsonPos"),jsonLen:new yr.Name("jsonLen"),jsonPart:new yr.Name("jsonPart")};Yb.default=R5});var Gu=j(_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(),vf=ot(),Pr=Oi();_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 O5(t,e=_r.keywordError,r,n){let{it:i}=t,{gen:a,compositeRule:o,allErrors:s}=i,c=W1(t,e,r);n??(o||s)?V1(a,c):G1(i,(0,nt._)`[${c}]`)}_r.reportError=O5;function C5(t,e=_r.keywordError,r){let{it:n}=t,{gen:i,compositeRule:a,allErrors:o}=n,s=W1(t,e,r);V1(i,s),a||o||G1(n,Pr.default.vErrors)}_r.reportExtraError=C5;function N5(t,e){t.assign(Pr.default.errors,e),t.if((0,nt._)`${Pr.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,nt._)`${Pr.default.vErrors}.length`,e),()=>t.assign(Pr.default.vErrors,null)))}_r.resetErrorsCount=N5;function j5({gen:t,keyword:e,schemaValue:r,data:n,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let o=t.name("err");t.forRange("i",i,Pr.default.errors,s=>{t.const(o,(0,nt._)`${Pr.default.vErrors}[${s}]`),t.if((0,nt._)`${o}.instancePath === undefined`,()=>t.assign((0,nt._)`${o}.instancePath`,(0,nt.strConcat)(Pr.default.instancePath,a.errorPath))),t.assign((0,nt._)`${o}.schemaPath`,(0,nt.str)`${a.errSchemaPath}/${e}`),a.opts.verbose&&(t.assign((0,nt._)`${o}.schema`,r),t.assign((0,nt._)`${o}.data`,n))})}_r.extendErrors=j5;function V1(t,e){let r=t.const("err",e);t.if((0,nt._)`${Pr.default.vErrors} === null`,()=>t.assign(Pr.default.vErrors,(0,nt._)`[${r}]`),(0,nt._)`${Pr.default.vErrors}.push(${r})`),t.code((0,nt._)`${Pr.default.errors}++`)}function G1(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 Ha={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 W1(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,nt._)`{}`:A5(t,e,r)}function A5(t,e,r={}){let{gen:n,it:i}=t,a=[M5(i,r),D5(t,r)];return z5(t,e,a),n.object(...a)}function M5({errorPath:t},{instancePath:e}){let r=e?(0,nt.str)`${t}${(0,vf.getErrorPath)(e,vf.Type.Str)}`:t;return[Pr.default.instancePath,(0,nt.strConcat)(Pr.default.instancePath,r)]}function D5({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,vf.getErrorPath)(r,vf.Type.Str)}`),[Ha.schemaPath,i]}function z5(t,{params:e,message:r},n){let{keyword:i,data:a,schemaValue:o,it:s}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=s;n.push([Ha.keyword,i],[Ha.params,typeof e=="function"?e(t):e||(0,nt._)`{}`]),c.messages&&n.push([Ha.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Ha.schema,o],[Ha.parentSchema,(0,nt._)`${l}${d}`],[Pr.default.data,a]),u&&n.push([Ha.propertyName,u])}});var J1=j(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.boolOrEmptySchema=ns.topBoolOrEmptySchema=void 0;var U5=Gu(),q5=Le(),L5=Oi(),F5={message:"boolean schema is false"};function Z5(t){let{gen:e,schema:r,validateName:n}=t;r===!1?K1(t,!1):typeof r=="object"&&r.$async===!0?e.return(L5.default.data):(e.assign((0,q5._)`${n}.errors`,null),e.return(!0))}ns.topBoolOrEmptySchema=Z5;function H5(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),K1(t)):r.var(e,!0)}ns.boolOrEmptySchema=H5;function K1(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,U5.reportError)(i,F5,void 0,e)}});var Qb=j(is=>{"use strict";Object.defineProperty(is,"__esModule",{value:!0});is.getRules=is.isJSONType=void 0;var B5=["string","number","integer","boolean","null","object","array"],V5=new Set(B5);function G5(t){return typeof t=="string"&&V5.has(t)}is.isJSONType=G5;function W5(){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:{}}}is.getRules=W5});var ex=j(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});ra.shouldUseRule=ra.shouldUseGroup=ra.schemaHasRulesForType=void 0;function K5({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&X1(t,n)}ra.schemaHasRulesForType=K5;function X1(t,e){return e.rules.some(r=>Y1(t,r))}ra.shouldUseGroup=X1;function Y1(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))}ra.shouldUseRule=Y1});var Wu=j(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.reportTypeError=br.checkDataTypes=br.checkDataType=br.coerceAndCheckDataType=br.getJSONTypes=br.getSchemaTypes=br.DataType=void 0;var J5=Qb(),X5=ex(),Y5=Gu(),Ue=Le(),Q1=ot(),as;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(as||(br.DataType=as={}));function Q5(t){let e=eI(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}br.getSchemaTypes=Q5;function eI(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(J5.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}br.getJSONTypes=eI;function e3(t,e){let{gen:r,data:n,opts:i}=t,a=t3(e,i.coerceTypes),o=e.length>0&&!(a.length===0&&e.length===1&&(0,X5.schemaHasRulesForType)(t,e[0]));if(o){let s=rx(e,n,i.strictNumbers,as.Wrong);r.if(s,()=>{a.length?r3(t,e,a):nx(t)})}return o}br.coerceAndCheckDataType=e3;var tI=new Set(["string","number","integer","boolean","null"]);function t3(t,e){return e?t.filter(r=>tI.has(r)||e==="array"&&r==="array"):[]}function r3(t,e,r){let{gen:n,data:i,opts:a}=t,o=n.let("dataType",(0,Ue._)`typeof ${i}`),s=n.let("coerced",(0,Ue._)`undefined`);a.coerceTypes==="array"&&n.if((0,Ue._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,Ue._)`${i}[0]`).assign(o,(0,Ue._)`typeof ${i}`).if(rx(e,i,a.strictNumbers),()=>n.assign(s,i))),n.if((0,Ue._)`${s} !== undefined`);for(let u of r)(tI.has(u)||u==="array"&&a.coerceTypes==="array")&&c(u);n.else(),nx(t),n.endIf(),n.if((0,Ue._)`${s} !== undefined`,()=>{n.assign(i,s),n3(t,s)});function c(u){switch(u){case"string":n.elseIf((0,Ue._)`${o} == "number" || ${o} == "boolean"`).assign(s,(0,Ue._)`"" + ${i}`).elseIf((0,Ue._)`${i} === null`).assign(s,(0,Ue._)`""`);return;case"number":n.elseIf((0,Ue._)`${o} == "boolean" || ${i} === null || (${o} == "string" && ${i} && ${i} == +${i})`).assign(s,(0,Ue._)`+${i}`);return;case"integer":n.elseIf((0,Ue._)`${o} === "boolean" || ${i} === null || (${o} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(s,(0,Ue._)`+${i}`);return;case"boolean":n.elseIf((0,Ue._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(s,!1).elseIf((0,Ue._)`${i} === "true" || ${i} === 1`).assign(s,!0);return;case"null":n.elseIf((0,Ue._)`${i} === "" || ${i} === 0 || ${i} === false`),n.assign(s,null);return;case"array":n.elseIf((0,Ue._)`${o} === "string" || ${o} === "number" - || ${o} === "boolean" || ${i} === null`).assign(s,(0,Ue._)`[${i}]`)}}}function X5({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,Ue._)`${e} !== undefined`,()=>t.assign((0,Ue._)`${e}[${r}]`,n))}function Qb(t,e,r,n=is.Correct){let i=n===is.Correct?Ue.operators.EQ:Ue.operators.NEQ,a;switch(t){case"null":return(0,Ue._)`${e} ${i} null`;case"array":a=(0,Ue._)`Array.isArray(${e})`;break;case"object":a=(0,Ue._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":a=o((0,Ue._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":a=o();break;default:return(0,Ue._)`typeof ${e} ${i} ${t}`}return n===is.Correct?a:(0,Ue.not)(a);function o(s=Ue.nil){return(0,Ue.and)((0,Ue._)`typeof ${e} == "number"`,s,r?(0,Ue._)`isFinite(${e})`:Ue.nil)}}br.checkDataType=Qb;function ex(t,e,r,n){if(t.length===1)return Qb(t[0],e,r,n);let i,a=(0,X1.toHash)(t);if(a.array&&a.object){let o=(0,Ue._)`typeof ${e} != "object"`;i=a.null?o:(0,Ue._)`!${e} || ${o}`,delete a.null,delete a.array,delete a.object}else i=Ue.nil;a.number&&delete a.integer;for(let o in a)i=(0,Ue.and)(i,Qb(o,e,r,n));return i}br.checkDataTypes=ex;var Y5={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,Ue._)`{type: ${t}}`:(0,Ue._)`{type: ${e}}`};function tx(t){let e=Q5(t);(0,V5.reportError)(e,Y5)}br.reportTypeError=tx;function Q5(t){let{gen:e,data:r,schema:n}=t,i=(0,X1.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:t}}});var tI=j(gf=>{"use strict";Object.defineProperty(gf,"__esModule",{value:!0});gf.assignDefaults=void 0;var as=Le(),e3=ot();function t3(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let i in r)eI(t,i,r[i].default);else e==="array"&&Array.isArray(n)&&n.forEach((i,a)=>eI(t,a,i.default))}gf.assignDefaults=t3;function eI(t,e,r){let{gen:n,compositeRule:i,data:a,opts:o}=t;if(r===void 0)return;let s=(0,as._)`${a}${(0,as.getProperty)(e)}`;if(i){(0,e3.checkStrictMode)(t,`default is ignored for: ${s}`);return}let c=(0,as._)`${s} === undefined`;o.useDefaults==="empty"&&(c=(0,as._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,as._)`${s} = ${(0,as.stringify)(r)}`)}});var hn=j(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.validateUnion=xt.validateArray=xt.usePattern=xt.callValidateCode=xt.schemaProperties=xt.allSchemaProperties=xt.noPropertyInData=xt.propertyInData=xt.isOwnProperty=xt.hasPropFunc=xt.reportMissingProp=xt.checkMissingProp=xt.checkReportMissingProp=void 0;var jt=Le(),rx=ot(),ia=Ri(),r3=ot();function n3(t,e){let{gen:r,data:n,it:i}=t;r.if(ix(r,n,e,i.opts.ownProperties),()=>{t.setParams({missingProperty:(0,jt._)`${e}`},!0),t.error()})}xt.checkReportMissingProp=n3;function i3({gen:t,data:e,it:{opts:r}},n,i){return(0,jt.or)(...n.map(a=>(0,jt.and)(ix(t,e,a,r.ownProperties),(0,jt._)`${i} = ${a}`)))}xt.checkMissingProp=i3;function a3(t,e){t.setParams({missingProperty:e},!0),t.error()}xt.reportMissingProp=a3;function rI(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,jt._)`Object.prototype.hasOwnProperty`})}xt.hasPropFunc=rI;function nx(t,e,r){return(0,jt._)`${rI(t)}.call(${e}, ${r})`}xt.isOwnProperty=nx;function o3(t,e,r,n){let i=(0,jt._)`${e}${(0,jt.getProperty)(r)} !== undefined`;return n?(0,jt._)`${i} && ${nx(t,e,r)}`:i}xt.propertyInData=o3;function ix(t,e,r,n){let i=(0,jt._)`${e}${(0,jt.getProperty)(r)} === undefined`;return n?(0,jt.or)(i,(0,jt.not)(nx(t,e,r))):i}xt.noPropertyInData=ix;function nI(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}xt.allSchemaProperties=nI;function s3(t,e){return nI(e).filter(r=>!(0,rx.alwaysValidSchema)(t,e[r]))}xt.schemaProperties=s3;function c3({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:a},it:o},s,c,u){let l=u?(0,jt._)`${t}, ${e}, ${n}${i}`:e,d=[[ia.default.instancePath,(0,jt.strConcat)(ia.default.instancePath,a)],[ia.default.parentData,o.parentData],[ia.default.parentDataProperty,o.parentDataProperty],[ia.default.rootData,ia.default.rootData]];o.opts.dynamicRef&&d.push([ia.default.dynamicAnchors,ia.default.dynamicAnchors]);let p=(0,jt._)`${l}, ${r.object(...d)}`;return c!==jt.nil?(0,jt._)`${s}.call(${c}, ${p})`:(0,jt._)`${s}(${p})`}xt.callValidateCode=c3;var u3=(0,jt._)`new RegExp`;function l3({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:i}=e.code,a=i(r,n);return t.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,jt._)`${i.code==="new RegExp"?u3:(0,r3.useFunc)(t,i)}(${r}, ${n})`})}xt.usePattern=l3;function d3(t){let{gen:e,data:r,keyword:n,it:i}=t,a=e.name("valid");if(i.allErrors){let s=e.let("valid",!0);return o(()=>e.assign(s,!1)),s}return e.var(a,!0),o(()=>e.break()),a;function o(s){let c=e.const("len",(0,jt._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:rx.Type.Num},a),e.if((0,jt.not)(a),s)})}}xt.validateArray=d3;function p3(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,rx.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=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(o,(0,jt._)`${o} || ${s}`),t.mergeValidEvaluated(l,s)||e.if((0,jt.not)(o))})),t.result(o,()=>t.reset(),()=>t.error(!0))}xt.validateUnion=p3});var oI=j(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});ri.validateKeywordUsage=ri.validSchemaType=ri.funcKeywordCode=ri.macroKeywordCode=void 0;var Or=Le(),Va=Ri(),f3=hn(),m3=Zu();function h3(t,e){let{gen:r,keyword:n,schema:i,parentSchema:a,it:o}=t,s=e.macro.call(o.self,i,a,o),c=aI(r,n,s);o.opts.validateSchema!==!1&&o.self.validateSchema(s,!0);let u=r.name("valid");t.subschema({schema:s,schemaPath:Or.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}ri.macroKeywordCode=h3;function g3(t,e){var r;let{gen:n,keyword:i,schema:a,parentSchema:o,$data:s,it:c}=t;y3(c,e);let u=!s&&e.compile?e.compile.call(c.self,a,o,c):e.validate,l=aI(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)_(),e.modifying&&iI(t),y(()=>t.error());else{let m=e.async?f():h();e.modifying&&iI(t),y(()=>v3(t,m))}}function f(){let m=n.let("ruleErrs",null);return n.try(()=>_((0,Or._)`await `),v=>n.assign(d,!1).if((0,Or._)`${v} instanceof ${c.ValidationError}`,()=>n.assign(m,(0,Or._)`${v}.errors`),()=>n.throw(v))),m}function h(){let m=(0,Or._)`${l}.errors`;return n.assign(m,null),_(Or.nil),m}function _(m=e.async?(0,Or._)`await `:Or.nil){let v=c.opts.passContext?Va.default.this:Va.default.self,g=!("compile"in e&&!s||e.schema===!1);n.assign(d,(0,Or._)`${m}${(0,f3.callValidateCode)(t,l,v,g)}`,e.modifying)}function y(m){var v;n.if((0,Or.not)((v=e.valid)!==null&&v!==void 0?v:d),m)}}ri.funcKeywordCode=g3;function iI(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Or._)`${n.parentData}[${n.parentDataProperty}]`))}function v3(t,e){let{gen:r}=t;r.if((0,Or._)`Array.isArray(${e})`,()=>{r.assign(Va.default.vErrors,(0,Or._)`${Va.default.vErrors} === null ? ${e} : ${Va.default.vErrors}.concat(${e})`).assign(Va.default.errors,(0,Or._)`${Va.default.vErrors}.length`),(0,m3.extendErrors)(t)},()=>t.error())}function y3({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function aI(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,Or.stringify)(r)})}function _3(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")}ri.validSchemaType=_3;function b3({schema:t,opts:e,self:r,errSchemaPath:n},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${a}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(t[a])){let c=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}ri.validateKeywordUsage=b3});var cI=j(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.extendSubschemaMode=aa.extendSubschemaData=aa.getSubschema=void 0;var ni=Le(),sI=ot();function x3(t,{keyword:e,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:a,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 s=t.schema[e];return r===void 0?{schema:s,schemaPath:(0,ni._)`${t.schemaPath}${(0,ni.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[r],schemaPath:(0,ni._)`${t.schemaPath}${(0,ni.getProperty)(e)}${(0,ni.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,sI.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||a===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:o,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}aa.getSubschema=x3;function S3(t,e,{dataProp:r,dataPropType:n,data:i,dataTypes:a,propertyName:o}){if(i!==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,ni._)`${e.data}${(0,ni.getProperty)(r)}`,!0);c(p),t.errorPath=(0,ni.str)`${u}${(0,sI.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:s.let("data",i,!0);c(u),o!==void 0&&(t.propertyName=o)}a&&(t.dataTypes=a);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]}}aa.extendSubschemaData=S3;function w3(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:a}){n!==void 0&&(t.compositeRule=n),i!==void 0&&(t.createErrors=i),a!==void 0&&(t.allErrors=a),t.jtdDiscriminator=e,t.jtdMetadata=r}aa.extendSubschemaMode=w3});var ax=j((fSe,uI)=>{"use strict";uI.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,a;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(a=Object.keys(e),n=a.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[i]))return!1;for(i=n;i--!==0;){var o=a[i];if(!t(e[o],r[o]))return!1}return!0}return e!==e&&r!==r}});var dI=j((mSe,lI)=>{"use strict";var oa=lI.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(){};vf(e,n,i,t,"",t)};oa.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};oa.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};oa.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};oa.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 vf(t,e,r,n,i,a,o,s,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,i,a,o,s,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in oa.arrayKeywords)for(var p=0;p{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.getSchemaRefs=qr.resolveUrl=qr.normalizeId=qr._getFullPath=qr.getFullPath=qr.inlineRef=void 0;var E3=ot(),k3=ax(),T3=dI(),I3=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function P3(t,e=!0){return typeof t=="boolean"?!0:e===!0?!ox(t):e?pI(t)<=e:!1}qr.inlineRef=P3;var O3=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ox(t){for(let e in t){if(O3.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(ox)||typeof r=="object"&&ox(r))return!0}return!1}function pI(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!I3.has(r)&&(typeof t[r]=="object"&&(0,E3.eachItem)(t[r],n=>e+=pI(n)),e===1/0))return 1/0}return e}function fI(t,e="",r){r!==!1&&(e=os(e));let n=t.parse(e);return mI(t,n)}qr.getFullPath=fI;function mI(t,e){return t.serialize(e).split("#")[0]+"#"}qr._getFullPath=mI;var R3=/#\/?$/;function os(t){return t?t.replace(R3,""):""}qr.normalizeId=os;function C3(t,e,r){return r=os(r),t.resolve(e,r)}qr.resolveUrl=C3;var N3=/^[a-z_][-a-z0-9._]*$/i;function j3(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=os(t[r]||e),a={"":i},o=fI(n,i,!1),s={},c=new Set;return T3(t,{allKeys:!0},(d,p,f,h)=>{if(h===void 0)return;let _=o+p,y=a[h];typeof d[r]=="string"&&(y=m.call(this,d[r])),v.call(this,d.$anchor),v.call(this,d.$dynamicAnchor),a[p]=y;function m(g){let b=this.opts.uriResolver.resolve;if(g=os(y?b(y,g):g),c.has(g))throw l(g);c.add(g);let S=this.refs[g];return typeof S=="string"&&(S=this.refs[S]),typeof S=="object"?u(d,S.schema,g):g!==os(_)&&(g[0]==="#"?(u(d,s[g],g),s[g]=d):this.refs[g]=_),g}function v(g){if(typeof g=="string"){if(!N3.test(g))throw new Error(`invalid anchor "${g}"`);m.call(this,`#${g}`)}}}),s;function u(d,p,f){if(p!==void 0&&!k3(d,p))throw l(f)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}qr.getSchemaRefs=j3});var Wu=j(sa=>{"use strict";Object.defineProperty(sa,"__esModule",{value:!0});sa.getData=sa.KeywordCxt=sa.validateFunctionCode=void 0;var _I=W1(),hI=Hu(),cx=Yb(),yf=Hu(),A3=tI(),Gu=oI(),sx=cI(),ye=Le(),Ce=Ri(),M3=Bu(),Ci=ot(),Vu=Zu();function z3(t){if(SI(t)&&(wI(t),xI(t))){q3(t);return}bI(t,()=>(0,_I.topBoolOrEmptySchema)(t))}sa.validateFunctionCode=z3;function bI({gen:t,validateName:e,schema:r,schemaEnv:n,opts:i},a){i.code.es5?t.func(e,(0,ye._)`${Ce.default.data}, ${Ce.default.valCxt}`,n.$async,()=>{t.code((0,ye._)`"use strict"; ${gI(r,i)}`),U3(t,i),t.code(a)}):t.func(e,(0,ye._)`${Ce.default.data}, ${D3(i)}`,n.$async,()=>t.code(gI(r,i)).code(a))}function D3(t){return(0,ye._)`{${Ce.default.instancePath}="", ${Ce.default.parentData}, ${Ce.default.parentDataProperty}, ${Ce.default.rootData}=${Ce.default.data}${t.dynamicRef?(0,ye._)`, ${Ce.default.dynamicAnchors}={}`:ye.nil}}={}`}function U3(t,e){t.if(Ce.default.valCxt,()=>{t.var(Ce.default.instancePath,(0,ye._)`${Ce.default.valCxt}.${Ce.default.instancePath}`),t.var(Ce.default.parentData,(0,ye._)`${Ce.default.valCxt}.${Ce.default.parentData}`),t.var(Ce.default.parentDataProperty,(0,ye._)`${Ce.default.valCxt}.${Ce.default.parentDataProperty}`),t.var(Ce.default.rootData,(0,ye._)`${Ce.default.valCxt}.${Ce.default.rootData}`),e.dynamicRef&&t.var(Ce.default.dynamicAnchors,(0,ye._)`${Ce.default.valCxt}.${Ce.default.dynamicAnchors}`)},()=>{t.var(Ce.default.instancePath,(0,ye._)`""`),t.var(Ce.default.parentData,(0,ye._)`undefined`),t.var(Ce.default.parentDataProperty,(0,ye._)`undefined`),t.var(Ce.default.rootData,Ce.default.data),e.dynamicRef&&t.var(Ce.default.dynamicAnchors,(0,ye._)`{}`)})}function q3(t){let{schema:e,opts:r,gen:n}=t;bI(t,()=>{r.$comment&&e.$comment&&EI(t),B3(t),n.let(Ce.default.vErrors,null),n.let(Ce.default.errors,0),r.unevaluated&&L3(t),$I(t),W3(t)})}function L3(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,ye._)`${r}.evaluated`),e.if((0,ye._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,ye._)`${t.evaluated}.props`,(0,ye._)`undefined`)),e.if((0,ye._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,ye._)`${t.evaluated}.items`,(0,ye._)`undefined`))}function gI(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,ye._)`/*# sourceURL=${r} */`:ye.nil}function F3(t,e){if(SI(t)&&(wI(t),xI(t))){Z3(t,e);return}(0,_I.boolOrEmptySchema)(t,e)}function xI({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 SI(t){return typeof t.schema!="boolean"}function Z3(t,e){let{schema:r,gen:n,opts:i}=t;i.$comment&&r.$comment&&EI(t),V3(t),G3(t);let a=n.const("_errs",Ce.default.errors);$I(t,a),n.var(e,(0,ye._)`${a} === ${Ce.default.errors}`)}function wI(t){(0,Ci.checkUnknownRules)(t),H3(t)}function $I(t,e){if(t.opts.jtd)return vI(t,[],!1,e);let r=(0,hI.getSchemaTypes)(t.schema),n=(0,hI.coerceAndCheckDataType)(t,r);vI(t,r,!n,e)}function H3(t){let{schema:e,errSchemaPath:r,opts:n,self:i}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,Ci.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function B3(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Ci.checkStrictMode)(t,"default is ignored in the schema root")}function V3(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,M3.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function G3(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function EI({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:i}){let a=r.$comment;if(i.$comment===!0)t.code((0,ye._)`${Ce.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let o=(0,ye.str)`${n}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,ye._)`${Ce.default.self}.opts.$comment(${a}, ${o}, ${s}.schema)`)}}function W3(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:i,opts:a}=t;r.$async?e.if((0,ye._)`${Ce.default.errors} === 0`,()=>e.return(Ce.default.data),()=>e.throw((0,ye._)`new ${i}(${Ce.default.vErrors})`)):(e.assign((0,ye._)`${n}.errors`,Ce.default.vErrors),a.unevaluated&&K3(t),e.return((0,ye._)`${Ce.default.errors} === 0`))}function K3({gen:t,evaluated:e,props:r,items:n}){r instanceof ye.Name&&t.assign((0,ye._)`${e}.props`,r),n instanceof ye.Name&&t.assign((0,ye._)`${e}.items`,n)}function vI(t,e,r,n){let{gen:i,schema:a,data:o,allErrors:s,opts:c,self:u}=t,{RULES:l}=u;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,Ci.schemaHasRulesButRef)(a,l))){i.block(()=>TI(t,"$ref",l.all.$ref.definition));return}c.jtd||J3(t,e),i.block(()=>{for(let p of l.rules)d(p);d(l.post)});function d(p){(0,cx.shouldUseGroup)(a,p)&&(p.type?(i.if((0,yf.checkDataType)(p.type,o,c.strictNumbers)),yI(t,p),e.length===1&&e[0]===p.type&&r&&(i.else(),(0,yf.reportTypeError)(t)),i.endIf()):yI(t,p),s||i.if((0,ye._)`${Ce.default.errors} === ${n||0}`))}}function yI(t,e){let{gen:r,schema:n,opts:{useDefaults:i}}=t;i&&(0,A3.assignDefaults)(t,e.type),r.block(()=>{for(let a of e.rules)(0,cx.shouldUseRule)(n,a)&&TI(t,a.keyword,a.definition,e.type)})}function J3(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(X3(t,e),t.opts.allowUnionTypes||Y3(t,e),Q3(t,t.dataTypes))}function X3(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{kI(t.dataTypes,r)||ux(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),tZ(t,e)}}function Y3(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&ux(t,"use allowUnionTypes to allow union type keyword")}function Q3(t,e){let r=t.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,cx.shouldUseRule)(t.schema,i)){let{type:a}=i.definition;a.length&&!a.some(o=>eZ(e,o))&&ux(t,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function eZ(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function kI(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function tZ(t,e){let r=[];for(let n of t.dataTypes)kI(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function ux(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,Ci.checkStrictMode)(t,e,t.opts.strictTypes)}var _f=class{constructor(e,r,n){if((0,Gu.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,Ci.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",II(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,Gu.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",Ce.default.errors))}result(e,r,n){this.failResult((0,ye.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,ye.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,ye._)`${r} !== undefined && (${(0,ye.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?Vu.reportExtraError:Vu.reportError)(this,this.def.error,r)}$dataError(){(0,Vu.reportError)(this,this.def.$dataError||Vu.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Vu.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=ye.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=ye.nil,r=ye.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:a,def:o}=this;n.if((0,ye.or)((0,ye._)`${i} === undefined`,r)),e!==ye.nil&&n.assign(e,!0),(a.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==ye.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:i,it:a}=this;return(0,ye.or)(o(),s());function o(){if(n.length){if(!(r instanceof ye.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,ye._)`${(0,yf.checkDataTypes)(c,r,a.opts.strictNumbers,yf.DataType.Wrong)}`}return ye.nil}function s(){if(i.validateSchema){let c=e.scopeValue("validate$data",{ref:i.validateSchema});return(0,ye._)`!${c}(${r})`}return ye.nil}}subschema(e,r){let n=(0,sx.getSubschema)(this.it,e);(0,sx.extendSubschemaData)(n,this.it,e),(0,sx.extendSubschemaMode)(n,e);let i={...this.it,...n,items:void 0,props:void 0};return F3(i,r),i}mergeEvaluated(e,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Ci.mergeEvaluated.props(i,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=Ci.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,ye.Name)),!0}};sa.KeywordCxt=_f;function TI(t,e,r,n){let i=new _f(t,r,e);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Gu.funcKeywordCode)(i,r):"macro"in r?(0,Gu.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Gu.funcKeywordCode)(i,r)}var rZ=/^\/(?:[^~]|~0|~1)*$/,nZ=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function II(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let i,a;if(t==="")return Ce.default.rootData;if(t[0]==="/"){if(!rZ.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);i=t,a=Ce.default.rootData}else{let u=nZ.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(a=r[e-l],!i)return a}let o=a,s=i.split("/");for(let u of s)u&&(a=(0,ye._)`${a}${(0,ye.getProperty)((0,Ci.unescapeJsonPointer)(u))}`,o=(0,ye._)`${o} && ${a}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${e}`}}sa.getData=II});var bf=j(dx=>{"use strict";Object.defineProperty(dx,"__esModule",{value:!0});var lx=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};dx.default=lx});var Ku=j(mx=>{"use strict";Object.defineProperty(mx,"__esModule",{value:!0});var px=Bu(),fx=class extends Error{constructor(e,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,px.resolveUrl)(e,r,n),this.missingSchema=(0,px.normalizeId)((0,px.getFullPath)(e,this.missingRef))}};mx.default=fx});var Sf=j(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.resolveSchema=gn.getCompilingSchema=gn.resolveRef=gn.compileSchema=gn.SchemaEnv=void 0;var zn=Le(),iZ=bf(),Ga=Ri(),Dn=Bu(),PI=ot(),aZ=Wu(),ss=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,Dn.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};gn.SchemaEnv=ss;function gx(t){let e=OI.call(this,t);if(e)return e;let r=(0,Dn.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:a}=this.opts,o=new zn.CodeGen(this.scope,{es5:n,lines:i,ownProperties:a}),s;t.$async&&(s=o.scopeValue("Error",{ref:iZ.default,code:(0,zn._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");t.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:Ga.default.data,parentData:Ga.default.parentData,parentDataProperty:Ga.default.parentDataProperty,dataNames:[Ga.default.data],dataPathArr:[zn.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,zn.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:zn.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,zn._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,aZ.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(Ga.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let f=new Function(`${Ga.default.self}`,`${Ga.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:h,items:_}=u;f.evaluated={props:h instanceof zn.Name?void 0:h,items:_ instanceof zn.Name?void 0:_,dynamicProps:h instanceof zn.Name,dynamicItems:_ instanceof zn.Name},f.source&&(f.source.evaluated=(0,zn.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)}}gn.compileSchema=gx;function oZ(t,e,r){var n;r=(0,Dn.resolveUrl)(this.opts.uriResolver,e,r);let i=t.refs[r];if(i)return i;let a=uZ.call(this,t,r);if(a===void 0){let o=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;o&&(a=new ss({schema:o,schemaId:s,root:t,baseId:e}))}if(a!==void 0)return t.refs[r]=sZ.call(this,a)}gn.resolveRef=oZ;function sZ(t){return(0,Dn.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:gx.call(this,t)}function OI(t){for(let e of this._compilations)if(cZ(e,t))return e}gn.getCompilingSchema=OI;function cZ(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function uZ(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||xf.call(this,t,e)}function xf(t,e){let r=this.opts.uriResolver.parse(e),n=(0,Dn._getFullPath)(this.opts.uriResolver,r),i=(0,Dn.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===i)return hx.call(this,r,t);let a=(0,Dn.normalizeId)(n),o=this.refs[a]||this.schemas[a];if(typeof o=="string"){let s=xf.call(this,t,o);return typeof s?.schema!="object"?void 0:hx.call(this,r,s)}if(typeof o?.schema=="object"){if(o.validate||gx.call(this,o),a===(0,Dn.normalizeId)(e)){let{schema:s}=o,{schemaId:c}=this.opts,u=s[c];return u&&(i=(0,Dn.resolveUrl)(this.opts.uriResolver,i,u)),new ss({schema:s,schemaId:c,root:t,baseId:i})}return hx.call(this,r,o)}}gn.resolveSchema=xf;var lZ=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function hx(t,{baseId:e,schema:r,root:n}){var i;if(((i=t.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,PI.unescapeFragment)(s)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!lZ.has(s)&&u&&(e=(0,Dn.resolveUrl)(this.opts.uriResolver,e,u))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,PI.schemaHasRulesButRef)(r,this.RULES)){let s=(0,Dn.resolveUrl)(this.opts.uriResolver,e,r.$ref);a=xf.call(this,n,s)}let{schemaId:o}=this.opts;if(a=a||new ss({schema:r,schemaId:o,root:n,baseId:e}),a.schema!==a.root.schema)return a}});var RI=j((bSe,dZ)=>{dZ.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 yx=j((xSe,AI)=>{"use strict";var pZ=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),NI=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 vx(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 fZ=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function CI(t){return t.length=0,!0}function mZ(t,e,r){if(t.length){let n=vx(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function hZ(t){let e=0,r={error:!1,address:"",zone:""},n=[],i=[],a=!1,o=!1,s=mZ;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(a=!0),n.push(":");continue}else if(u==="%"){if(!s(i,n,r))break;s=CI}else{i.push(u);continue}}return i.length&&(s===CI?r.zone=i.join(""):o?n.push(i.join("")):n.push(vx(i))),r.address=n.join(""),r}function jI(t){if(gZ(t,":")<2)return{host:t,isIPV6:!1};let e=hZ(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 gZ(t,e){let r=0;for(let n=0;n{"use strict";var{isUUID:bZ}=yx(),xZ=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,SZ=["http","https","ws","wss","urn","urn:uuid"];function wZ(t){return SZ.indexOf(t)!==-1}function _x(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 MI(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function zI(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 $Z(t){return t.secure=_x(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function EZ(t){if((t.port===(_x(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 kZ(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(xZ);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}`,a=bx(i);t.path=void 0,a&&(t=a.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function TZ(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}`,a=bx(i);a&&(t=a.serialize(t,e));let o=t,s=t.nss;return o.path=`${n||e.nid}:${s}`,e.skipEscape=!0,o}function IZ(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!bZ(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function PZ(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var DI={scheme:"http",domainHost:!0,parse:MI,serialize:zI},OZ={scheme:"https",domainHost:DI.domainHost,parse:MI,serialize:zI},wf={scheme:"ws",domainHost:!0,parse:$Z,serialize:EZ},RZ={scheme:"wss",domainHost:wf.domainHost,parse:wf.parse,serialize:wf.serialize},CZ={scheme:"urn",parse:kZ,serialize:TZ,skipNormalize:!0},NZ={scheme:"urn:uuid",parse:IZ,serialize:PZ,skipNormalize:!0},$f={http:DI,https:OZ,ws:wf,wss:RZ,urn:CZ,"urn:uuid":NZ};Object.setPrototypeOf($f,null);function bx(t){return t&&($f[t]||$f[t.toLowerCase()])||void 0}UI.exports={wsIsSecure:_x,SCHEMES:$f,isValidSchemeName:wZ,getSchemeHandler:bx}});var ZI=j((wSe,kf)=>{"use strict";var{normalizeIPv6:jZ,removeDotSegments:Ju,recomposeAuthority:AZ,normalizeComponentEncoding:Ef,isIPv4:MZ,nonSimpleDomain:zZ}=yx(),{SCHEMES:DZ,getSchemeHandler:LI}=qI();function UZ(t,e){return typeof t=="string"?t=ii(Ni(t,e),e):typeof t=="object"&&(t=Ni(ii(t,e),e)),t}function qZ(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},i=FI(Ni(t,n),Ni(e,n),n,!0);return n.skipEscape=!0,ii(i,n)}function FI(t,e,r,n){let i={};return n||(t=Ni(ii(t,r),r),e=Ni(ii(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=Ju(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=Ju(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=Ju(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=Ju(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 LZ(t,e,r){return typeof t=="string"?(t=unescape(t),t=ii(Ef(Ni(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=ii(Ef(t,!0),{...r,skipEscape:!0})),typeof e=="string"?(e=unescape(e),e=ii(Ef(Ni(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=ii(Ef(e,!0),{...r,skipEscape:!0})),t.toLowerCase()===e.toLowerCase()}function ii(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=[],a=LI(n.scheme||r.scheme);a&&a.serialize&&a.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=AZ(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 s=r.path;!n.absolutePath&&(!a||!a.absolutePath)&&(s=Ju(s)),o===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var FZ=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Ni(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 a=t.match(FZ);if(a){if(n.scheme=a[1],n.userinfo=a[3],n.host=a[4],n.port=parseInt(a[5],10),n.path=a[6]||"",n.query=a[7],n.fragment=a[8],isNaN(n.port)&&(n.port=a[5]),n.host)if(MZ(n.host)===!1){let c=jZ(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=LI(r.scheme||n.scheme);if(!r.unicodeSupport&&(!o||!o.unicodeSupport)&&n.host&&(r.domainHost||o&&o.domainHost)&&i===!1&&zZ(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}(!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 xx={SCHEMES:DZ,normalize:UZ,resolve:qZ,resolveComponent:FI,equal:LZ,serialize:ii,parse:Ni};kf.exports=xx;kf.exports.default=xx;kf.exports.fastUri=xx});var BI=j(Sx=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});var HI=ZI();HI.code='require("ajv/dist/runtime/uri").default';Sx.default=HI});var QI=j(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.CodeGen=dr.Name=dr.nil=dr.stringify=dr.str=dr._=dr.KeywordCxt=void 0;var ZZ=Wu();Object.defineProperty(dr,"KeywordCxt",{enumerable:!0,get:function(){return ZZ.KeywordCxt}});var cs=Le();Object.defineProperty(dr,"_",{enumerable:!0,get:function(){return cs._}});Object.defineProperty(dr,"str",{enumerable:!0,get:function(){return cs.str}});Object.defineProperty(dr,"stringify",{enumerable:!0,get:function(){return cs.stringify}});Object.defineProperty(dr,"nil",{enumerable:!0,get:function(){return cs.nil}});Object.defineProperty(dr,"Name",{enumerable:!0,get:function(){return cs.Name}});Object.defineProperty(dr,"CodeGen",{enumerable:!0,get:function(){return cs.CodeGen}});var HZ=bf(),JI=Ku(),BZ=Xb(),Xu=Sf(),VZ=Le(),Yu=Bu(),Tf=Hu(),$x=ot(),VI=RI(),GZ=BI(),XI=(t,e)=>new RegExp(t,e);XI.code="new RegExp";var WZ=["removeAdditional","useDefaults","coerceTypes"],KZ=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),JZ={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."},XZ={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},GI=200;function YZ(t){var e,r,n,i,a,o,s,c,u,l,d,p,f,h,_,y,m,v,g,b,S,x,w,E,O;let A=t.strict,M=(e=t.code)===null||e===void 0?void 0:e.optimize,q=M===!0||M===void 0?1:M||0,B=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:XI,U=(i=t.uriResolver)!==null&&i!==void 0?i:GZ.default;return{strictSchema:(o=(a=t.strictSchema)!==null&&a!==void 0?a:A)!==null&&o!==void 0?o:!0,strictNumbers:(c=(s=t.strictNumbers)!==null&&s!==void 0?s: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:(h=(f=t.strictRequired)!==null&&f!==void 0?f:A)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:q,regExp:B}:{optimize:q,regExp:B},loopRequired:(_=t.loopRequired)!==null&&_!==void 0?_:GI,loopEnum:(y=t.loopEnum)!==null&&y!==void 0?y:GI,meta:(m=t.meta)!==null&&m!==void 0?m:!0,messages:(v=t.messages)!==null&&v!==void 0?v:!0,inlineRefs:(g=t.inlineRefs)!==null&&g!==void 0?g:!0,schemaId:(b=t.schemaId)!==null&&b!==void 0?b:"$id",addUsedSchema:(S=t.addUsedSchema)!==null&&S!==void 0?S:!0,validateSchema:(x=t.validateSchema)!==null&&x!==void 0?x:!0,validateFormats:(w=t.validateFormats)!==null&&w!==void 0?w:!0,unicodeRegExp:(E=t.unicodeRegExp)!==null&&E!==void 0?E:!0,int32range:(O=t.int32range)!==null&&O!==void 0?O:!0,uriResolver:U}}var Qu=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...YZ(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new VZ.ValueScope({scope:{},prefixes:KZ,es5:r,lines:n}),this.logger=iH(e.logger);let i=e.validateFormats;e.validateFormats=!1,this.RULES=(0,BZ.getRules)(),WI.call(this,JZ,e,"NOT SUPPORTED"),WI.call(this,XZ,e,"DEPRECATED","warn"),this._metaOpts=rH.call(this),e.formats&&eH.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&tH.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),QZ.call(this),e.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,i=VI;n==="id"&&(i={...VI},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 a.call(this,l.$schema);let p=this._addSchema(l,d);return p.validate||o.call(this,p)}async function a(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 JI.default))throw d;return s.call(this,d),await c.call(this,d.missingSchema),o.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 a.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 a;if(typeof e=="object"){let{schemaId:o}=this.opts;if(a=e[o],a!==void 0&&typeof a!="string")throw new Error(`schema ${o} must be string`)}return r=(0,Yu.normalizeId)(r||a),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 a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(e){let r;for(;typeof(r=KI.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,i=new Xu.SchemaEnv({schema:{},schemaId:n});if(r=Xu.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=KI.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,Yu.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(oH.call(this,n,r),!r)return(0,$x.eachItem)(n,a=>wx.call(this,a)),this;cH.call(this,r);let i={...r,type:(0,Tf.getJSONTypes)(r.type),schemaType:(0,Tf.getJSONTypes)(r.schemaType)};return(0,$x.eachItem)(n,i.type.length===0?a=>wx.call(this,a,i):a=>i.type.forEach(o=>wx.call(this,a,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(a=>a.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,a)=>i+r+a)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of r){let a=i.split("/").slice(1),o=e;for(let s of a)o=o[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[s];u&&l&&(o[s]=YI(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,a=this.opts.addUsedSchema){let o,{schemaId:s}=this.opts;if(typeof e=="object")o=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,Yu.normalizeId)(o||n);let u=Yu.getSchemaRefs.call(this,e,n);return c=new Xu.SchemaEnv({schema:e,schemaId:s,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),a&&!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):Xu.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{Xu.compileSchema.call(this,e)}finally{this.opts=r}}};Qu.ValidationError=HZ.default;Qu.MissingRefError=JI.default;dr.default=Qu;function WI(t,e,r,n="error"){for(let i in t){let a=i;a in e&&this.logger[n](`${r}: option ${i}. ${t[a]}`)}}function KI(t){return t=(0,Yu.normalizeId)(t),this.schemas[t]||this.refs[t]}function QZ(){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 eH(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function tH(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 rH(){let t={...this.opts};for(let e of WZ)delete t[e];return t}var nH={log(){},warn(){},error(){}};function iH(t){if(t===!1)return nH;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 aH=/^[a-z_$][a-z0-9_$:-]*$/i;function oH(t,e){let{RULES:r}=this;if((0,$x.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!aH.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 wx(t,e,r){var n;let i=e?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,o=i?a.post:a.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},a.rules.push(o)),a.keywords[t]=!0,!e)return;let s={keyword:t,definition:{...e,type:(0,Tf.getJSONTypes)(e.type),schemaType:(0,Tf.getJSONTypes)(e.schemaType)}};e.before?sH.call(this,o,s,e.before):o.rules.push(s),a.all[t]=s,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function sH(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 cH(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=YI(e)),t.validateSchema=this.compile(e,!0))}var uH={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function YI(t){return{anyOf:[t,uH]}}});var eP=j(Ex=>{"use strict";Object.defineProperty(Ex,"__esModule",{value:!0});var lH={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Ex.default=lH});var iP=j(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});Wa.callRef=Wa.getValidate=void 0;var dH=Ku(),tP=hn(),Lr=Le(),us=Ri(),rP=Sf(),If=ot(),pH={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:i,schemaEnv:a,validateName:o,opts:s,self:c}=n,{root:u}=a;if((r==="#"||r==="#/")&&i===u.baseId)return d();let l=rP.resolveRef.call(c,u,i,r);if(l===void 0)throw new dH.default(n.opts.uriResolver,i,r);if(l instanceof rP.SchemaEnv)return p(l);return f(l);function d(){if(a===u)return Pf(t,o,a,a.$async);let h=e.scopeValue("root",{ref:u});return Pf(t,(0,Lr._)`${h}.validate`,u,u.$async)}function p(h){let _=nP(t,h);Pf(t,_,h,h.$async)}function f(h){let _=e.scopeValue("schema",s.code.source===!0?{ref:h,code:(0,Lr.stringify)(h)}:{ref:h}),y=e.name("valid"),m=t.subschema({schema:h,dataTypes:[],schemaPath:Lr.nil,topSchemaRef:_,errSchemaPath:r},y);t.mergeEvaluated(m),t.ok(y)}}};function nP(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,Lr._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Wa.getValidate=nP;function Pf(t,e,r,n){let{gen:i,it:a}=t,{allErrors:o,schemaEnv:s,opts:c}=a,u=c.passContext?us.default.this:Lr.nil;n?l():d();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let h=i.let("valid");i.try(()=>{i.code((0,Lr._)`await ${(0,tP.callValidateCode)(t,e,u)}`),f(e),o||i.assign(h,!0)},_=>{i.if((0,Lr._)`!(${_} instanceof ${a.ValidationError})`,()=>i.throw(_)),p(_),o||i.assign(h,!1)}),t.ok(h)}function d(){t.result((0,tP.callValidateCode)(t,e,u),()=>f(e),()=>p(e))}function p(h){let _=(0,Lr._)`${h}.errors`;i.assign(us.default.vErrors,(0,Lr._)`${us.default.vErrors} === null ? ${_} : ${us.default.vErrors}.concat(${_})`),i.assign(us.default.errors,(0,Lr._)`${us.default.vErrors}.length`)}function f(h){var _;if(!a.opts.unevaluated)return;let y=(_=r?.validate)===null||_===void 0?void 0:_.evaluated;if(a.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(a.props=If.mergeEvaluated.props(i,y.props,a.props));else{let m=i.var("props",(0,Lr._)`${h}.evaluated.props`);a.props=If.mergeEvaluated.props(i,m,a.props,Lr.Name)}if(a.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(a.items=If.mergeEvaluated.items(i,y.items,a.items));else{let m=i.var("items",(0,Lr._)`${h}.evaluated.items`);a.items=If.mergeEvaluated.items(i,m,a.items,Lr.Name)}}}Wa.callRef=Pf;Wa.default=pH});var aP=j(kx=>{"use strict";Object.defineProperty(kx,"__esModule",{value:!0});var fH=eP(),mH=iP(),hH=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",fH.default,mH.default];kx.default=hH});var oP=j(Tx=>{"use strict";Object.defineProperty(Tx,"__esModule",{value:!0});var Of=Le(),ca=Of.operators,Rf={maximum:{okStr:"<=",ok:ca.LTE,fail:ca.GT},minimum:{okStr:">=",ok:ca.GTE,fail:ca.LT},exclusiveMaximum:{okStr:"<",ok:ca.LT,fail:ca.GTE},exclusiveMinimum:{okStr:">",ok:ca.GT,fail:ca.LTE}},gH={message:({keyword:t,schemaCode:e})=>(0,Of.str)`must be ${Rf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Of._)`{comparison: ${Rf[t].okStr}, limit: ${e}}`},vH={keyword:Object.keys(Rf),type:"number",schemaType:"number",$data:!0,error:gH,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Of._)`${r} ${Rf[e].fail} ${n} || isNaN(${r})`)}};Tx.default=vH});var sP=j(Ix=>{"use strict";Object.defineProperty(Ix,"__esModule",{value:!0});var el=Le(),yH={message:({schemaCode:t})=>(0,el.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,el._)`{multipleOf: ${t}}`},_H={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:yH,code(t){let{gen:e,data:r,schemaCode:n,it:i}=t,a=i.opts.multipleOfPrecision,o=e.let("res"),s=a?(0,el._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${a}`:(0,el._)`${o} !== parseInt(${o})`;t.fail$data((0,el._)`(${n} === 0 || (${o} = ${r}/${n}, ${s}))`)}};Ix.default=_H});var uP=j(Px=>{"use strict";Object.defineProperty(Px,"__esModule",{value:!0});function cP(t){let e=t.length,r=0,n=0,i;for(;n=55296&&i<=56319&&n{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var Ka=Le(),bH=ot(),xH=uP(),SH={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,Ka.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,Ka._)`{limit: ${t}}`},wH={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:SH,code(t){let{keyword:e,data:r,schemaCode:n,it:i}=t,a=e==="maxLength"?Ka.operators.GT:Ka.operators.LT,o=i.opts.unicode===!1?(0,Ka._)`${r}.length`:(0,Ka._)`${(0,bH.useFunc)(t.gen,xH.default)}(${r})`;t.fail$data((0,Ka._)`${o} ${a} ${n}`)}};Ox.default=wH});var dP=j(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var $H=hn(),Cf=Le(),EH={message:({schemaCode:t})=>(0,Cf.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Cf._)`{pattern: ${t}}`},kH={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:EH,code(t){let{data:e,$data:r,schema:n,schemaCode:i,it:a}=t,o=a.opts.unicodeRegExp?"u":"",s=r?(0,Cf._)`(new RegExp(${i}, ${o}))`:(0,$H.usePattern)(t,n);t.fail$data((0,Cf._)`!${s}.test(${e})`)}};Rx.default=kH});var pP=j(Cx=>{"use strict";Object.defineProperty(Cx,"__esModule",{value:!0});var tl=Le(),TH={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,tl.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,tl._)`{limit: ${t}}`},IH={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:TH,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxProperties"?tl.operators.GT:tl.operators.LT;t.fail$data((0,tl._)`Object.keys(${r}).length ${i} ${n}`)}};Cx.default=IH});var fP=j(Nx=>{"use strict";Object.defineProperty(Nx,"__esModule",{value:!0});var rl=hn(),nl=Le(),PH=ot(),OH={message:({params:{missingProperty:t}})=>(0,nl.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,nl._)`{missingProperty: ${t}}`},RH={keyword:"required",type:"object",schemaType:"array",$data:!0,error:OH,code(t){let{gen:e,schema:r,schemaCode:n,data:i,$data:a,it:o}=t,{opts:s}=o;if(!a&&r.length===0)return;let c=r.length>=s.loopRequired;if(o.allErrors?u():l(),s.strictRequired){let f=t.parentSchema.properties,{definedProperties:h}=t.it;for(let _ of r)if(f?.[_]===void 0&&!h.has(_)){let y=o.schemaEnv.baseId+o.errSchemaPath,m=`required property "${_}" is not defined at "${y}" (strictRequired)`;(0,PH.checkStrictMode)(o,m,o.opts.strictRequired)}}function u(){if(c||a)t.block$data(nl.nil,d);else for(let f of r)(0,rl.checkReportMissingProp)(t,f)}function l(){let f=e.let("missing");if(c||a){let h=e.let("valid",!0);t.block$data(h,()=>p(f,h)),t.ok(h)}else e.if((0,rl.checkMissingProp)(t,r,f)),(0,rl.reportMissingProp)(t,f),e.else()}function d(){e.forOf("prop",n,f=>{t.setParams({missingProperty:f}),e.if((0,rl.noPropertyInData)(e,i,f,s.ownProperties),()=>t.error())})}function p(f,h){t.setParams({missingProperty:f}),e.forOf(f,n,()=>{e.assign(h,(0,rl.propertyInData)(e,i,f,s.ownProperties)),e.if((0,nl.not)(h),()=>{t.error(),e.break()})},nl.nil)}}};Nx.default=RH});var mP=j(jx=>{"use strict";Object.defineProperty(jx,"__esModule",{value:!0});var il=Le(),CH={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,il.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,il._)`{limit: ${t}}`},NH={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:CH,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxItems"?il.operators.GT:il.operators.LT;t.fail$data((0,il._)`${r}.length ${i} ${n}`)}};jx.default=NH});var Nf=j(Ax=>{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});var hP=ax();hP.code='require("ajv/dist/runtime/equal").default';Ax.default=hP});var gP=j(zx=>{"use strict";Object.defineProperty(zx,"__esModule",{value:!0});var Mx=Hu(),pr=Le(),jH=ot(),AH=Nf(),MH={message:({params:{i:t,j:e}})=>(0,pr.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,pr._)`{i: ${t}, j: ${e}}`},zH={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:MH,code(t){let{gen:e,data:r,$data:n,schema:i,parentSchema:a,schemaCode:o,it:s}=t;if(!n&&!i)return;let c=e.let("valid"),u=a.items?(0,Mx.getSchemaTypes)(a.items):[];t.block$data(c,l,(0,pr._)`${o} === false`),t.ok(c);function l(){let h=e.let("i",(0,pr._)`${r}.length`),_=e.let("j");t.setParams({i:h,j:_}),e.assign(c,!0),e.if((0,pr._)`${h} > 1`,()=>(d()?p:f)(h,_))}function d(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function p(h,_){let y=e.name("item"),m=(0,Mx.checkDataTypes)(u,y,s.opts.strictNumbers,Mx.DataType.Wrong),v=e.const("indices",(0,pr._)`{}`);e.for((0,pr._)`;${h}--;`,()=>{e.let(y,(0,pr._)`${r}[${h}]`),e.if(m,(0,pr._)`continue`),u.length>1&&e.if((0,pr._)`typeof ${y} == "string"`,(0,pr._)`${y} += "_"`),e.if((0,pr._)`typeof ${v}[${y}] == "number"`,()=>{e.assign(_,(0,pr._)`${v}[${y}]`),t.error(),e.assign(c,!1).break()}).code((0,pr._)`${v}[${y}] = ${h}`)})}function f(h,_){let y=(0,jH.useFunc)(e,AH.default),m=e.name("outer");e.label(m).for((0,pr._)`;${h}--;`,()=>e.for((0,pr._)`${_} = ${h}; ${_}--;`,()=>e.if((0,pr._)`${y}(${r}[${h}], ${r}[${_}])`,()=>{t.error(),e.assign(c,!1).break(m)})))}}};zx.default=zH});var vP=j(Ux=>{"use strict";Object.defineProperty(Ux,"__esModule",{value:!0});var Dx=Le(),DH=ot(),UH=Nf(),qH={message:"must be equal to constant",params:({schemaCode:t})=>(0,Dx._)`{allowedValue: ${t}}`},LH={keyword:"const",$data:!0,error:qH,code(t){let{gen:e,data:r,$data:n,schemaCode:i,schema:a}=t;n||a&&typeof a=="object"?t.fail$data((0,Dx._)`!${(0,DH.useFunc)(e,UH.default)}(${r}, ${i})`):t.fail((0,Dx._)`${a} !== ${r}`)}};Ux.default=LH});var yP=j(qx=>{"use strict";Object.defineProperty(qx,"__esModule",{value:!0});var al=Le(),FH=ot(),ZH=Nf(),HH={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,al._)`{allowedValues: ${t}}`},BH={keyword:"enum",schemaType:"array",$data:!0,error:HH,code(t){let{gen:e,data:r,$data:n,schema:i,schemaCode:a,it:o}=t;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let s=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,FH.useFunc)(e,ZH.default)),l;if(s||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",a);l=(0,al.or)(...i.map((h,_)=>p(f,_)))}t.pass(l);function d(){e.assign(l,!1),e.forOf("v",a,f=>e.if((0,al._)`${u()}(${r}, ${f})`,()=>e.assign(l,!0).break()))}function p(f,h){let _=i[h];return typeof _=="object"&&_!==null?(0,al._)`${u()}(${r}, ${f}[${h}])`:(0,al._)`${r} === ${_}`}}};qx.default=BH});var _P=j(Lx=>{"use strict";Object.defineProperty(Lx,"__esModule",{value:!0});var VH=oP(),GH=sP(),WH=lP(),KH=dP(),JH=pP(),XH=fP(),YH=mP(),QH=gP(),eB=vP(),tB=yP(),rB=[VH.default,GH.default,WH.default,KH.default,JH.default,XH.default,YH.default,QH.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},eB.default,tB.default];Lx.default=rB});var Zx=j(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});ol.validateAdditionalItems=void 0;var Ja=Le(),Fx=ot(),nB={message:({params:{len:t}})=>(0,Ja.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Ja._)`{limit: ${t}}`},iB={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:nB,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Fx.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}bP(t,n)}};function bP(t,e){let{gen:r,schema:n,data:i,keyword:a,it:o}=t;o.items=!0;let s=r.const("len",(0,Ja._)`${i}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Ja._)`${s} <= ${e.length}`);else if(typeof n=="object"&&!(0,Fx.alwaysValidSchema)(o,n)){let u=r.var("valid",(0,Ja._)`${s} <= ${e.length}`);r.if((0,Ja.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,s,l=>{t.subschema({keyword:a,dataProp:l,dataPropType:Fx.Type.Num},u),o.allErrors||r.if((0,Ja.not)(u),()=>r.break())})}}ol.validateAdditionalItems=bP;ol.default=iB});var Hx=j(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});sl.validateTuple=void 0;var xP=Le(),jf=ot(),aB=hn(),oB={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return SP(t,"additionalItems",e);r.items=!0,!(0,jf.alwaysValidSchema)(r,e)&&t.ok((0,aB.validateArray)(t))}};function SP(t,e,r=t.schema){let{gen:n,parentSchema:i,data:a,keyword:o,it:s}=t;l(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=jf.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),u=n.const("len",(0,xP._)`${a}.length`);r.forEach((d,p)=>{(0,jf.alwaysValidSchema)(s,d)||(n.if((0,xP._)`${u} > ${p}`,()=>t.subschema({keyword:o,schemaProp:p,dataProp:p},c)),t.ok(c))});function l(d){let{opts:p,errSchemaPath:f}=s,h=r.length,_=h===d.minItems&&(h===d.maxItems||d[e]===!1);if(p.strictTuples&&!_){let y=`"${o}" is ${h}-tuple, but minItems or maxItems/${e} are not specified or different at path "${f}"`;(0,jf.checkStrictMode)(s,y,p.strictTuples)}}}sl.validateTuple=SP;sl.default=oB});var wP=j(Bx=>{"use strict";Object.defineProperty(Bx,"__esModule",{value:!0});var sB=Hx(),cB={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,sB.validateTuple)(t,"items")};Bx.default=cB});var EP=j(Vx=>{"use strict";Object.defineProperty(Vx,"__esModule",{value:!0});var $P=Le(),uB=ot(),lB=hn(),dB=Zx(),pB={message:({params:{len:t}})=>(0,$P.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,$P._)`{limit: ${t}}`},fB={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:pB,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:i}=r;n.items=!0,!(0,uB.alwaysValidSchema)(n,e)&&(i?(0,dB.validateAdditionalItems)(t,i):t.ok((0,lB.validateArray)(t)))}};Vx.default=fB});var kP=j(Gx=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var vn=Le(),Af=ot(),mB={message:({params:{min:t,max:e}})=>e===void 0?(0,vn.str)`must contain at least ${t} valid item(s)`:(0,vn.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,vn._)`{minContains: ${t}}`:(0,vn._)`{minContains: ${t}, maxContains: ${e}}`},hB={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:mB,code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:a}=t,o,s,{minContains:c,maxContains:u}=n;a.opts.next?(o=c===void 0?1:c,s=u):o=1;let l=e.const("len",(0,vn._)`${i}.length`);if(t.setParams({min:o,max:s}),s===void 0&&o===0){(0,Af.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&o>s){(0,Af.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Af.alwaysValidSchema)(a,r)){let _=(0,vn._)`${l} >= ${o}`;s!==void 0&&(_=(0,vn._)`${_} && ${l} <= ${s}`),t.pass(_);return}a.items=!0;let d=e.name("valid");s===void 0&&o===1?f(d,()=>e.if(d,()=>e.break())):o===0?(e.let(d,!0),s!==void 0&&e.if((0,vn._)`${i}.length > 0`,p)):(e.let(d,!1),p()),t.result(d,()=>t.reset());function p(){let _=e.name("_valid"),y=e.let("count",0);f(_,()=>e.if(_,()=>h(y)))}function f(_,y){e.forRange("i",0,l,m=>{t.subschema({keyword:"contains",dataProp:m,dataPropType:Af.Type.Num,compositeRule:!0},_),y()})}function h(_){e.code((0,vn._)`${_}++`),s===void 0?e.if((0,vn._)`${_} >= ${o}`,()=>e.assign(d,!0).break()):(e.if((0,vn._)`${_} > ${s}`,()=>e.assign(d,!1).break()),o===1?e.assign(d,!0):e.if((0,vn._)`${_} >= ${o}`,()=>e.assign(d,!0)))}}};Gx.default=hB});var PP=j(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.validateSchemaDeps=ai.validatePropertyDeps=ai.error=void 0;var Wx=Le(),gB=ot(),cl=hn();ai.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Wx.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Wx._)`{property: ${t}, + || ${o} === "boolean" || ${i} === null`).assign(s,(0,Ue._)`[${i}]`)}}}function n3({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,Ue._)`${e} !== undefined`,()=>t.assign((0,Ue._)`${e}[${r}]`,n))}function tx(t,e,r,n=as.Correct){let i=n===as.Correct?Ue.operators.EQ:Ue.operators.NEQ,a;switch(t){case"null":return(0,Ue._)`${e} ${i} null`;case"array":a=(0,Ue._)`Array.isArray(${e})`;break;case"object":a=(0,Ue._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":a=o((0,Ue._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":a=o();break;default:return(0,Ue._)`typeof ${e} ${i} ${t}`}return n===as.Correct?a:(0,Ue.not)(a);function o(s=Ue.nil){return(0,Ue.and)((0,Ue._)`typeof ${e} == "number"`,s,r?(0,Ue._)`isFinite(${e})`:Ue.nil)}}br.checkDataType=tx;function rx(t,e,r,n){if(t.length===1)return tx(t[0],e,r,n);let i,a=(0,Q1.toHash)(t);if(a.array&&a.object){let o=(0,Ue._)`typeof ${e} != "object"`;i=a.null?o:(0,Ue._)`!${e} || ${o}`,delete a.null,delete a.array,delete a.object}else i=Ue.nil;a.number&&delete a.integer;for(let o in a)i=(0,Ue.and)(i,tx(o,e,r,n));return i}br.checkDataTypes=rx;var i3={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,Ue._)`{type: ${t}}`:(0,Ue._)`{type: ${e}}`};function nx(t){let e=a3(t);(0,Y5.reportError)(e,i3)}br.reportTypeError=nx;function a3(t){let{gen:e,data:r,schema:n}=t,i=(0,Q1.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:t}}});var nI=j(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});yf.assignDefaults=void 0;var os=Le(),o3=ot();function s3(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let i in r)rI(t,i,r[i].default);else e==="array"&&Array.isArray(n)&&n.forEach((i,a)=>rI(t,a,i.default))}yf.assignDefaults=s3;function rI(t,e,r){let{gen:n,compositeRule:i,data:a,opts:o}=t;if(r===void 0)return;let s=(0,os._)`${a}${(0,os.getProperty)(e)}`;if(i){(0,o3.checkStrictMode)(t,`default is ignored for: ${s}`);return}let c=(0,os._)`${s} === undefined`;o.useDefaults==="empty"&&(c=(0,os._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,os._)`${s} = ${(0,os.stringify)(r)}`)}});var gn=j(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.validateUnion=xt.validateArray=xt.usePattern=xt.callValidateCode=xt.schemaProperties=xt.allSchemaProperties=xt.noPropertyInData=xt.propertyInData=xt.isOwnProperty=xt.hasPropFunc=xt.reportMissingProp=xt.checkMissingProp=xt.checkReportMissingProp=void 0;var jt=Le(),ix=ot(),na=Oi(),c3=ot();function u3(t,e){let{gen:r,data:n,it:i}=t;r.if(ox(r,n,e,i.opts.ownProperties),()=>{t.setParams({missingProperty:(0,jt._)`${e}`},!0),t.error()})}xt.checkReportMissingProp=u3;function l3({gen:t,data:e,it:{opts:r}},n,i){return(0,jt.or)(...n.map(a=>(0,jt.and)(ox(t,e,a,r.ownProperties),(0,jt._)`${i} = ${a}`)))}xt.checkMissingProp=l3;function d3(t,e){t.setParams({missingProperty:e},!0),t.error()}xt.reportMissingProp=d3;function iI(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,jt._)`Object.prototype.hasOwnProperty`})}xt.hasPropFunc=iI;function ax(t,e,r){return(0,jt._)`${iI(t)}.call(${e}, ${r})`}xt.isOwnProperty=ax;function p3(t,e,r,n){let i=(0,jt._)`${e}${(0,jt.getProperty)(r)} !== undefined`;return n?(0,jt._)`${i} && ${ax(t,e,r)}`:i}xt.propertyInData=p3;function ox(t,e,r,n){let i=(0,jt._)`${e}${(0,jt.getProperty)(r)} === undefined`;return n?(0,jt.or)(i,(0,jt.not)(ax(t,e,r))):i}xt.noPropertyInData=ox;function aI(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}xt.allSchemaProperties=aI;function f3(t,e){return aI(e).filter(r=>!(0,ix.alwaysValidSchema)(t,e[r]))}xt.schemaProperties=f3;function m3({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:a},it:o},s,c,u){let l=u?(0,jt._)`${t}, ${e}, ${n}${i}`:e,d=[[na.default.instancePath,(0,jt.strConcat)(na.default.instancePath,a)],[na.default.parentData,o.parentData],[na.default.parentDataProperty,o.parentDataProperty],[na.default.rootData,na.default.rootData]];o.opts.dynamicRef&&d.push([na.default.dynamicAnchors,na.default.dynamicAnchors]);let p=(0,jt._)`${l}, ${r.object(...d)}`;return c!==jt.nil?(0,jt._)`${s}.call(${c}, ${p})`:(0,jt._)`${s}(${p})`}xt.callValidateCode=m3;var h3=(0,jt._)`new RegExp`;function g3({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:i}=e.code,a=i(r,n);return t.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,jt._)`${i.code==="new RegExp"?h3:(0,c3.useFunc)(t,i)}(${r}, ${n})`})}xt.usePattern=g3;function v3(t){let{gen:e,data:r,keyword:n,it:i}=t,a=e.name("valid");if(i.allErrors){let s=e.let("valid",!0);return o(()=>e.assign(s,!1)),s}return e.var(a,!0),o(()=>e.break()),a;function o(s){let c=e.const("len",(0,jt._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:ix.Type.Num},a),e.if((0,jt.not)(a),s)})}}xt.validateArray=v3;function y3(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,ix.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=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(o,(0,jt._)`${o} || ${s}`),t.mergeValidEvaluated(l,s)||e.if((0,jt.not)(o))})),t.result(o,()=>t.reset(),()=>t.error(!0))}xt.validateUnion=y3});var cI=j(ni=>{"use strict";Object.defineProperty(ni,"__esModule",{value:!0});ni.validateKeywordUsage=ni.validSchemaType=ni.funcKeywordCode=ni.macroKeywordCode=void 0;var Rr=Le(),Ba=Oi(),_3=gn(),b3=Gu();function x3(t,e){let{gen:r,keyword:n,schema:i,parentSchema:a,it:o}=t,s=e.macro.call(o.self,i,a,o),c=sI(r,n,s);o.opts.validateSchema!==!1&&o.self.validateSchema(s,!0);let u=r.name("valid");t.subschema({schema:s,schemaPath:Rr.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}ni.macroKeywordCode=x3;function S3(t,e){var r;let{gen:n,keyword:i,schema:a,parentSchema:o,$data:s,it:c}=t;$3(c,e);let u=!s&&e.compile?e.compile.call(c.self,a,o,c):e.validate,l=sI(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)_(),e.modifying&&oI(t),g(()=>t.error());else{let m=e.async?f():h();e.modifying&&oI(t),g(()=>w3(t,m))}}function f(){let m=n.let("ruleErrs",null);return n.try(()=>_((0,Rr._)`await `),y=>n.assign(d,!1).if((0,Rr._)`${y} instanceof ${c.ValidationError}`,()=>n.assign(m,(0,Rr._)`${y}.errors`),()=>n.throw(y))),m}function h(){let m=(0,Rr._)`${l}.errors`;return n.assign(m,null),_(Rr.nil),m}function _(m=e.async?(0,Rr._)`await `:Rr.nil){let y=c.opts.passContext?Ba.default.this:Ba.default.self,v=!("compile"in e&&!s||e.schema===!1);n.assign(d,(0,Rr._)`${m}${(0,_3.callValidateCode)(t,l,y,v)}`,e.modifying)}function g(m){var y;n.if((0,Rr.not)((y=e.valid)!==null&&y!==void 0?y:d),m)}}ni.funcKeywordCode=S3;function oI(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Rr._)`${n.parentData}[${n.parentDataProperty}]`))}function w3(t,e){let{gen:r}=t;r.if((0,Rr._)`Array.isArray(${e})`,()=>{r.assign(Ba.default.vErrors,(0,Rr._)`${Ba.default.vErrors} === null ? ${e} : ${Ba.default.vErrors}.concat(${e})`).assign(Ba.default.errors,(0,Rr._)`${Ba.default.vErrors}.length`),(0,b3.extendErrors)(t)},()=>t.error())}function $3({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function sI(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,Rr.stringify)(r)})}function E3(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")}ni.validSchemaType=E3;function k3({schema:t,opts:e,self:r,errSchemaPath:n},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${a}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(t[a])){let c=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}ni.validateKeywordUsage=k3});var lI=j(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.extendSubschemaMode=ia.extendSubschemaData=ia.getSubschema=void 0;var ii=Le(),uI=ot();function T3(t,{keyword:e,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:a,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 s=t.schema[e];return r===void 0?{schema:s,schemaPath:(0,ii._)`${t.schemaPath}${(0,ii.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[r],schemaPath:(0,ii._)`${t.schemaPath}${(0,ii.getProperty)(e)}${(0,ii.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,uI.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||a===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:o,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}ia.getSubschema=T3;function I3(t,e,{dataProp:r,dataPropType:n,data:i,dataTypes:a,propertyName:o}){if(i!==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,ii._)`${e.data}${(0,ii.getProperty)(r)}`,!0);c(p),t.errorPath=(0,ii.str)`${u}${(0,uI.getErrorPath)(r,n,d.jsPropertySyntax)}`,t.parentDataProperty=(0,ii._)`${r}`,t.dataPathArr=[...l,t.parentDataProperty]}if(i!==void 0){let u=i instanceof ii.Name?i:s.let("data",i,!0);c(u),o!==void 0&&(t.propertyName=o)}a&&(t.dataTypes=a);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]}}ia.extendSubschemaData=I3;function P3(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:a}){n!==void 0&&(t.compositeRule=n),i!==void 0&&(t.createErrors=i),a!==void 0&&(t.allErrors=a),t.jtdDiscriminator=e,t.jtdMetadata=r}ia.extendSubschemaMode=P3});var sx=j((wSe,dI)=>{"use strict";dI.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,a;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(a=Object.keys(e),n=a.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[i]))return!1;for(i=n;i--!==0;){var o=a[i];if(!t(e[o],r[o]))return!1}return!0}return e!==e&&r!==r}});var fI=j(($Se,pI)=>{"use strict";var aa=pI.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(){};_f(e,n,i,t,"",t)};aa.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};aa.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};aa.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};aa.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 _f(t,e,r,n,i,a,o,s,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,i,a,o,s,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in aa.arrayKeywords)for(var p=0;p{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.getSchemaRefs=qr.resolveUrl=qr.normalizeId=qr._getFullPath=qr.getFullPath=qr.inlineRef=void 0;var O3=ot(),C3=sx(),N3=fI(),j3=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function A3(t,e=!0){return typeof t=="boolean"?!0:e===!0?!cx(t):e?mI(t)<=e:!1}qr.inlineRef=A3;var M3=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function cx(t){for(let e in t){if(M3.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(cx)||typeof r=="object"&&cx(r))return!0}return!1}function mI(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!j3.has(r)&&(typeof t[r]=="object"&&(0,O3.eachItem)(t[r],n=>e+=mI(n)),e===1/0))return 1/0}return e}function hI(t,e="",r){r!==!1&&(e=ss(e));let n=t.parse(e);return gI(t,n)}qr.getFullPath=hI;function gI(t,e){return t.serialize(e).split("#")[0]+"#"}qr._getFullPath=gI;var D3=/#\/?$/;function ss(t){return t?t.replace(D3,""):""}qr.normalizeId=ss;function z3(t,e,r){return r=ss(r),t.resolve(e,r)}qr.resolveUrl=z3;var U3=/^[a-z_][-a-z0-9._]*$/i;function q3(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=ss(t[r]||e),a={"":i},o=hI(n,i,!1),s={},c=new Set;return N3(t,{allKeys:!0},(d,p,f,h)=>{if(h===void 0)return;let _=o+p,g=a[h];typeof d[r]=="string"&&(g=m.call(this,d[r])),y.call(this,d.$anchor),y.call(this,d.$dynamicAnchor),a[p]=g;function m(v){let b=this.opts.uriResolver.resolve;if(v=ss(g?b(g,v):v),c.has(v))throw l(v);c.add(v);let S=this.refs[v];return typeof S=="string"&&(S=this.refs[S]),typeof S=="object"?u(d,S.schema,v):v!==ss(_)&&(v[0]==="#"?(u(d,s[v],v),s[v]=d):this.refs[v]=_),v}function y(v){if(typeof v=="string"){if(!U3.test(v))throw new Error(`invalid anchor "${v}"`);m.call(this,`#${v}`)}}}),s;function u(d,p,f){if(p!==void 0&&!C3(d,p))throw l(f)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}qr.getSchemaRefs=q3});var Yu=j(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.getData=oa.KeywordCxt=oa.validateFunctionCode=void 0;var xI=J1(),vI=Wu(),lx=ex(),bf=Wu(),L3=nI(),Xu=cI(),ux=lI(),ye=Le(),Ne=Oi(),F3=Ku(),Ci=ot(),Ju=Gu();function Z3(t){if($I(t)&&(EI(t),wI(t))){V3(t);return}SI(t,()=>(0,xI.topBoolOrEmptySchema)(t))}oa.validateFunctionCode=Z3;function SI({gen:t,validateName:e,schema:r,schemaEnv:n,opts:i},a){i.code.es5?t.func(e,(0,ye._)`${Ne.default.data}, ${Ne.default.valCxt}`,n.$async,()=>{t.code((0,ye._)`"use strict"; ${yI(r,i)}`),B3(t,i),t.code(a)}):t.func(e,(0,ye._)`${Ne.default.data}, ${H3(i)}`,n.$async,()=>t.code(yI(r,i)).code(a))}function H3(t){return(0,ye._)`{${Ne.default.instancePath}="", ${Ne.default.parentData}, ${Ne.default.parentDataProperty}, ${Ne.default.rootData}=${Ne.default.data}${t.dynamicRef?(0,ye._)`, ${Ne.default.dynamicAnchors}={}`:ye.nil}}={}`}function B3(t,e){t.if(Ne.default.valCxt,()=>{t.var(Ne.default.instancePath,(0,ye._)`${Ne.default.valCxt}.${Ne.default.instancePath}`),t.var(Ne.default.parentData,(0,ye._)`${Ne.default.valCxt}.${Ne.default.parentData}`),t.var(Ne.default.parentDataProperty,(0,ye._)`${Ne.default.valCxt}.${Ne.default.parentDataProperty}`),t.var(Ne.default.rootData,(0,ye._)`${Ne.default.valCxt}.${Ne.default.rootData}`),e.dynamicRef&&t.var(Ne.default.dynamicAnchors,(0,ye._)`${Ne.default.valCxt}.${Ne.default.dynamicAnchors}`)},()=>{t.var(Ne.default.instancePath,(0,ye._)`""`),t.var(Ne.default.parentData,(0,ye._)`undefined`),t.var(Ne.default.parentDataProperty,(0,ye._)`undefined`),t.var(Ne.default.rootData,Ne.default.data),e.dynamicRef&&t.var(Ne.default.dynamicAnchors,(0,ye._)`{}`)})}function V3(t){let{schema:e,opts:r,gen:n}=t;SI(t,()=>{r.$comment&&e.$comment&&TI(t),X3(t),n.let(Ne.default.vErrors,null),n.let(Ne.default.errors,0),r.unevaluated&&G3(t),kI(t),eZ(t)})}function G3(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,ye._)`${r}.evaluated`),e.if((0,ye._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,ye._)`${t.evaluated}.props`,(0,ye._)`undefined`)),e.if((0,ye._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,ye._)`${t.evaluated}.items`,(0,ye._)`undefined`))}function yI(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,ye._)`/*# sourceURL=${r} */`:ye.nil}function W3(t,e){if($I(t)&&(EI(t),wI(t))){K3(t,e);return}(0,xI.boolOrEmptySchema)(t,e)}function wI({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 $I(t){return typeof t.schema!="boolean"}function K3(t,e){let{schema:r,gen:n,opts:i}=t;i.$comment&&r.$comment&&TI(t),Y3(t),Q3(t);let a=n.const("_errs",Ne.default.errors);kI(t,a),n.var(e,(0,ye._)`${a} === ${Ne.default.errors}`)}function EI(t){(0,Ci.checkUnknownRules)(t),J3(t)}function kI(t,e){if(t.opts.jtd)return _I(t,[],!1,e);let r=(0,vI.getSchemaTypes)(t.schema),n=(0,vI.coerceAndCheckDataType)(t,r);_I(t,r,!n,e)}function J3(t){let{schema:e,errSchemaPath:r,opts:n,self:i}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,Ci.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function X3(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Ci.checkStrictMode)(t,"default is ignored in the schema root")}function Y3(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,F3.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function Q3(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function TI({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:i}){let a=r.$comment;if(i.$comment===!0)t.code((0,ye._)`${Ne.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let o=(0,ye.str)`${n}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,ye._)`${Ne.default.self}.opts.$comment(${a}, ${o}, ${s}.schema)`)}}function eZ(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:i,opts:a}=t;r.$async?e.if((0,ye._)`${Ne.default.errors} === 0`,()=>e.return(Ne.default.data),()=>e.throw((0,ye._)`new ${i}(${Ne.default.vErrors})`)):(e.assign((0,ye._)`${n}.errors`,Ne.default.vErrors),a.unevaluated&&tZ(t),e.return((0,ye._)`${Ne.default.errors} === 0`))}function tZ({gen:t,evaluated:e,props:r,items:n}){r instanceof ye.Name&&t.assign((0,ye._)`${e}.props`,r),n instanceof ye.Name&&t.assign((0,ye._)`${e}.items`,n)}function _I(t,e,r,n){let{gen:i,schema:a,data:o,allErrors:s,opts:c,self:u}=t,{RULES:l}=u;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,Ci.schemaHasRulesButRef)(a,l))){i.block(()=>PI(t,"$ref",l.all.$ref.definition));return}c.jtd||rZ(t,e),i.block(()=>{for(let p of l.rules)d(p);d(l.post)});function d(p){(0,lx.shouldUseGroup)(a,p)&&(p.type?(i.if((0,bf.checkDataType)(p.type,o,c.strictNumbers)),bI(t,p),e.length===1&&e[0]===p.type&&r&&(i.else(),(0,bf.reportTypeError)(t)),i.endIf()):bI(t,p),s||i.if((0,ye._)`${Ne.default.errors} === ${n||0}`))}}function bI(t,e){let{gen:r,schema:n,opts:{useDefaults:i}}=t;i&&(0,L3.assignDefaults)(t,e.type),r.block(()=>{for(let a of e.rules)(0,lx.shouldUseRule)(n,a)&&PI(t,a.keyword,a.definition,e.type)})}function rZ(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(nZ(t,e),t.opts.allowUnionTypes||iZ(t,e),aZ(t,t.dataTypes))}function nZ(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{II(t.dataTypes,r)||dx(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),sZ(t,e)}}function iZ(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&dx(t,"use allowUnionTypes to allow union type keyword")}function aZ(t,e){let r=t.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,lx.shouldUseRule)(t.schema,i)){let{type:a}=i.definition;a.length&&!a.some(o=>oZ(e,o))&&dx(t,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function oZ(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function II(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function sZ(t,e){let r=[];for(let n of t.dataTypes)II(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function dx(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,Ci.checkStrictMode)(t,e,t.opts.strictTypes)}var xf=class{constructor(e,r,n){if((0,Xu.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,Ci.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",RI(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,Xu.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",Ne.default.errors))}result(e,r,n){this.failResult((0,ye.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,ye.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,ye._)`${r} !== undefined && (${(0,ye.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?Ju.reportExtraError:Ju.reportError)(this,this.def.error,r)}$dataError(){(0,Ju.reportError)(this,this.def.$dataError||Ju.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Ju.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=ye.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=ye.nil,r=ye.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:a,def:o}=this;n.if((0,ye.or)((0,ye._)`${i} === undefined`,r)),e!==ye.nil&&n.assign(e,!0),(a.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==ye.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:i,it:a}=this;return(0,ye.or)(o(),s());function o(){if(n.length){if(!(r instanceof ye.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,ye._)`${(0,bf.checkDataTypes)(c,r,a.opts.strictNumbers,bf.DataType.Wrong)}`}return ye.nil}function s(){if(i.validateSchema){let c=e.scopeValue("validate$data",{ref:i.validateSchema});return(0,ye._)`!${c}(${r})`}return ye.nil}}subschema(e,r){let n=(0,ux.getSubschema)(this.it,e);(0,ux.extendSubschemaData)(n,this.it,e),(0,ux.extendSubschemaMode)(n,e);let i={...this.it,...n,items:void 0,props:void 0};return W3(i,r),i}mergeEvaluated(e,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Ci.mergeEvaluated.props(i,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=Ci.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,ye.Name)),!0}};oa.KeywordCxt=xf;function PI(t,e,r,n){let i=new xf(t,r,e);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Xu.funcKeywordCode)(i,r):"macro"in r?(0,Xu.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Xu.funcKeywordCode)(i,r)}var cZ=/^\/(?:[^~]|~0|~1)*$/,uZ=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function RI(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let i,a;if(t==="")return Ne.default.rootData;if(t[0]==="/"){if(!cZ.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);i=t,a=Ne.default.rootData}else{let u=uZ.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(a=r[e-l],!i)return a}let o=a,s=i.split("/");for(let u of s)u&&(a=(0,ye._)`${a}${(0,ye.getProperty)((0,Ci.unescapeJsonPointer)(u))}`,o=(0,ye._)`${o} && ${a}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${e}`}}oa.getData=RI});var Sf=j(fx=>{"use strict";Object.defineProperty(fx,"__esModule",{value:!0});var px=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};fx.default=px});var Qu=j(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});var mx=Ku(),hx=class extends Error{constructor(e,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,mx.resolveUrl)(e,r,n),this.missingSchema=(0,mx.normalizeId)((0,mx.getFullPath)(e,this.missingRef))}};gx.default=hx});var $f=j(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.resolveSchema=vn.getCompilingSchema=vn.resolveRef=vn.compileSchema=vn.SchemaEnv=void 0;var zn=Le(),lZ=Sf(),Va=Oi(),Un=Ku(),OI=ot(),dZ=Yu(),cs=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,Un.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};vn.SchemaEnv=cs;function yx(t){let e=CI.call(this,t);if(e)return e;let r=(0,Un.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:a}=this.opts,o=new zn.CodeGen(this.scope,{es5:n,lines:i,ownProperties:a}),s;t.$async&&(s=o.scopeValue("Error",{ref:lZ.default,code:(0,zn._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");t.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:Va.default.data,parentData:Va.default.parentData,parentDataProperty:Va.default.parentDataProperty,dataNames:[Va.default.data],dataPathArr:[zn.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,zn.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:zn.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,zn._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,dZ.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(Va.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let f=new Function(`${Va.default.self}`,`${Va.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:h,items:_}=u;f.evaluated={props:h instanceof zn.Name?void 0:h,items:_ instanceof zn.Name?void 0:_,dynamicProps:h instanceof zn.Name,dynamicItems:_ instanceof zn.Name},f.source&&(f.source.evaluated=(0,zn.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)}}vn.compileSchema=yx;function pZ(t,e,r){var n;r=(0,Un.resolveUrl)(this.opts.uriResolver,e,r);let i=t.refs[r];if(i)return i;let a=hZ.call(this,t,r);if(a===void 0){let o=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;o&&(a=new cs({schema:o,schemaId:s,root:t,baseId:e}))}if(a!==void 0)return t.refs[r]=fZ.call(this,a)}vn.resolveRef=pZ;function fZ(t){return(0,Un.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:yx.call(this,t)}function CI(t){for(let e of this._compilations)if(mZ(e,t))return e}vn.getCompilingSchema=CI;function mZ(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function hZ(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||wf.call(this,t,e)}function wf(t,e){let r=this.opts.uriResolver.parse(e),n=(0,Un._getFullPath)(this.opts.uriResolver,r),i=(0,Un.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===i)return vx.call(this,r,t);let a=(0,Un.normalizeId)(n),o=this.refs[a]||this.schemas[a];if(typeof o=="string"){let s=wf.call(this,t,o);return typeof s?.schema!="object"?void 0:vx.call(this,r,s)}if(typeof o?.schema=="object"){if(o.validate||yx.call(this,o),a===(0,Un.normalizeId)(e)){let{schema:s}=o,{schemaId:c}=this.opts,u=s[c];return u&&(i=(0,Un.resolveUrl)(this.opts.uriResolver,i,u)),new cs({schema:s,schemaId:c,root:t,baseId:i})}return vx.call(this,r,o)}}vn.resolveSchema=wf;var gZ=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function vx(t,{baseId:e,schema:r,root:n}){var i;if(((i=t.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,OI.unescapeFragment)(s)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!gZ.has(s)&&u&&(e=(0,Un.resolveUrl)(this.opts.uriResolver,e,u))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,OI.schemaHasRulesButRef)(r,this.RULES)){let s=(0,Un.resolveUrl)(this.opts.uriResolver,e,r.$ref);a=wf.call(this,n,s)}let{schemaId:o}=this.opts;if(a=a||new cs({schema:r,schemaId:o,root:n,baseId:e}),a.schema!==a.root.schema)return a}});var NI=j((RSe,vZ)=>{vZ.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 bx=j((OSe,DI)=>{"use strict";var yZ=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),AI=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 _x(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 _Z=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function jI(t){return t.length=0,!0}function bZ(t,e,r){if(t.length){let n=_x(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function xZ(t){let e=0,r={error:!1,address:"",zone:""},n=[],i=[],a=!1,o=!1,s=bZ;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(a=!0),n.push(":");continue}else if(u==="%"){if(!s(i,n,r))break;s=jI}else{i.push(u);continue}}return i.length&&(s===jI?r.zone=i.join(""):o?n.push(i.join("")):n.push(_x(i))),r.address=n.join(""),r}function MI(t){if(SZ(t,":")<2)return{host:t,isIPV6:!1};let e=xZ(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:kZ}=bx(),TZ=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,IZ=["http","https","ws","wss","urn","urn:uuid"];function PZ(t){return IZ.indexOf(t)!==-1}function xx(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 zI(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function UI(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 RZ(t){return t.secure=xx(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function OZ(t){if((t.port===(xx(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 CZ(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 i=`${n}:${e.nid||t.nid}`,a=Sx(i);t.path=void 0,a&&(t=a.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function NZ(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}`,a=Sx(i);a&&(t=a.serialize(t,e));let o=t,s=t.nss;return o.path=`${n||e.nid}:${s}`,e.skipEscape=!0,o}function jZ(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!kZ(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function AZ(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var qI={scheme:"http",domainHost:!0,parse:zI,serialize:UI},MZ={scheme:"https",domainHost:qI.domainHost,parse:zI,serialize:UI},Ef={scheme:"ws",domainHost:!0,parse:RZ,serialize:OZ},DZ={scheme:"wss",domainHost:Ef.domainHost,parse:Ef.parse,serialize:Ef.serialize},zZ={scheme:"urn",parse:CZ,serialize:NZ,skipNormalize:!0},UZ={scheme:"urn:uuid",parse:jZ,serialize:AZ,skipNormalize:!0},kf={http:qI,https:MZ,ws:Ef,wss:DZ,urn:zZ,"urn:uuid":UZ};Object.setPrototypeOf(kf,null);function Sx(t){return t&&(kf[t]||kf[t.toLowerCase()])||void 0}LI.exports={wsIsSecure:xx,SCHEMES:kf,isValidSchemeName:PZ,getSchemeHandler:Sx}});var BI=j((NSe,If)=>{"use strict";var{normalizeIPv6:qZ,removeDotSegments:el,recomposeAuthority:LZ,normalizeComponentEncoding:Tf,isIPv4:FZ,nonSimpleDomain:ZZ}=bx(),{SCHEMES:HZ,getSchemeHandler:ZI}=FI();function BZ(t,e){return typeof t=="string"?t=ai(Ni(t,e),e):typeof t=="object"&&(t=Ni(ai(t,e),e)),t}function VZ(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},i=HI(Ni(t,n),Ni(e,n),n,!0);return n.skipEscape=!0,ai(i,n)}function HI(t,e,r,n){let i={};return n||(t=Ni(ai(t,r),r),e=Ni(ai(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=el(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=el(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=el(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=el(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 GZ(t,e,r){return typeof t=="string"?(t=unescape(t),t=ai(Tf(Ni(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=ai(Tf(t,!0),{...r,skipEscape:!0})),typeof e=="string"?(e=unescape(e),e=ai(Tf(Ni(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=ai(Tf(e,!0),{...r,skipEscape:!0})),t.toLowerCase()===e.toLowerCase()}function ai(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=[],a=ZI(n.scheme||r.scheme);a&&a.serialize&&a.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=LZ(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 s=r.path;!n.absolutePath&&(!a||!a.absolutePath)&&(s=el(s)),o===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var WZ=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Ni(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 a=t.match(WZ);if(a){if(n.scheme=a[1],n.userinfo=a[3],n.host=a[4],n.port=parseInt(a[5],10),n.path=a[6]||"",n.query=a[7],n.fragment=a[8],isNaN(n.port)&&(n.port=a[5]),n.host)if(FZ(n.host)===!1){let c=qZ(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=ZI(r.scheme||n.scheme);if(!r.unicodeSupport&&(!o||!o.unicodeSupport)&&n.host&&(r.domainHost||o&&o.domainHost)&&i===!1&&ZZ(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}(!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 wx={SCHEMES:HZ,normalize:BZ,resolve:VZ,resolveComponent:HI,equal:GZ,serialize:ai,parse:Ni};If.exports=wx;If.exports.default=wx;If.exports.fastUri=wx});var GI=j($x=>{"use strict";Object.defineProperty($x,"__esModule",{value:!0});var VI=BI();VI.code='require("ajv/dist/runtime/uri").default';$x.default=VI});var tP=j(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.CodeGen=dr.Name=dr.nil=dr.stringify=dr.str=dr._=dr.KeywordCxt=void 0;var KZ=Yu();Object.defineProperty(dr,"KeywordCxt",{enumerable:!0,get:function(){return KZ.KeywordCxt}});var us=Le();Object.defineProperty(dr,"_",{enumerable:!0,get:function(){return us._}});Object.defineProperty(dr,"str",{enumerable:!0,get:function(){return us.str}});Object.defineProperty(dr,"stringify",{enumerable:!0,get:function(){return us.stringify}});Object.defineProperty(dr,"nil",{enumerable:!0,get:function(){return us.nil}});Object.defineProperty(dr,"Name",{enumerable:!0,get:function(){return us.Name}});Object.defineProperty(dr,"CodeGen",{enumerable:!0,get:function(){return us.CodeGen}});var JZ=Sf(),YI=Qu(),XZ=Qb(),tl=$f(),YZ=Le(),rl=Ku(),Pf=Wu(),kx=ot(),WI=NI(),QZ=GI(),QI=(t,e)=>new RegExp(t,e);QI.code="new RegExp";var eH=["removeAdditional","useDefaults","coerceTypes"],tH=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),rH={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."},nH={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},KI=200;function iH(t){var e,r,n,i,a,o,s,c,u,l,d,p,f,h,_,g,m,y,v,b,S,x,w,E,R;let A=t.strict,M=(e=t.code)===null||e===void 0?void 0:e.optimize,q=M===!0||M===void 0?1:M||0,B=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:QI,U=(i=t.uriResolver)!==null&&i!==void 0?i:QZ.default;return{strictSchema:(o=(a=t.strictSchema)!==null&&a!==void 0?a:A)!==null&&o!==void 0?o:!0,strictNumbers:(c=(s=t.strictNumbers)!==null&&s!==void 0?s: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:(h=(f=t.strictRequired)!==null&&f!==void 0?f:A)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:q,regExp:B}:{optimize:q,regExp:B},loopRequired:(_=t.loopRequired)!==null&&_!==void 0?_:KI,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:KI,meta:(m=t.meta)!==null&&m!==void 0?m:!0,messages:(y=t.messages)!==null&&y!==void 0?y:!0,inlineRefs:(v=t.inlineRefs)!==null&&v!==void 0?v:!0,schemaId:(b=t.schemaId)!==null&&b!==void 0?b:"$id",addUsedSchema:(S=t.addUsedSchema)!==null&&S!==void 0?S:!0,validateSchema:(x=t.validateSchema)!==null&&x!==void 0?x:!0,validateFormats:(w=t.validateFormats)!==null&&w!==void 0?w:!0,unicodeRegExp:(E=t.unicodeRegExp)!==null&&E!==void 0?E:!0,int32range:(R=t.int32range)!==null&&R!==void 0?R:!0,uriResolver:U}}var nl=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...iH(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new YZ.ValueScope({scope:{},prefixes:tH,es5:r,lines:n}),this.logger=lH(e.logger);let i=e.validateFormats;e.validateFormats=!1,this.RULES=(0,XZ.getRules)(),JI.call(this,rH,e,"NOT SUPPORTED"),JI.call(this,nH,e,"DEPRECATED","warn"),this._metaOpts=cH.call(this),e.formats&&oH.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&sH.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),aH.call(this),e.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,i=WI;n==="id"&&(i={...WI},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 a.call(this,l.$schema);let p=this._addSchema(l,d);return p.validate||o.call(this,p)}async function a(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 YI.default))throw d;return s.call(this,d),await c.call(this,d.missingSchema),o.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 a.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 a;if(typeof e=="object"){let{schemaId:o}=this.opts;if(a=e[o],a!==void 0&&typeof a!="string")throw new Error(`schema ${o} must be string`)}return r=(0,rl.normalizeId)(r||a),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 a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(e){let r;for(;typeof(r=XI.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,i=new tl.SchemaEnv({schema:{},schemaId:n});if(r=tl.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=XI.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(pH.call(this,n,r),!r)return(0,kx.eachItem)(n,a=>Ex.call(this,a)),this;mH.call(this,r);let i={...r,type:(0,Pf.getJSONTypes)(r.type),schemaType:(0,Pf.getJSONTypes)(r.schemaType)};return(0,kx.eachItem)(n,i.type.length===0?a=>Ex.call(this,a,i):a=>i.type.forEach(o=>Ex.call(this,a,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(a=>a.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,a)=>i+r+a)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of r){let a=i.split("/").slice(1),o=e;for(let s of a)o=o[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[s];u&&l&&(o[s]=eP(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,a=this.opts.addUsedSchema){let o,{schemaId:s}=this.opts;if(typeof e=="object")o=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,rl.normalizeId)(o||n);let u=rl.getSchemaRefs.call(this,e,n);return c=new tl.SchemaEnv({schema:e,schemaId:s,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),a&&!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):tl.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{tl.compileSchema.call(this,e)}finally{this.opts=r}}};nl.ValidationError=JZ.default;nl.MissingRefError=YI.default;dr.default=nl;function JI(t,e,r,n="error"){for(let i in t){let a=i;a in e&&this.logger[n](`${r}: option ${i}. ${t[a]}`)}}function XI(t){return t=(0,rl.normalizeId)(t),this.schemas[t]||this.refs[t]}function aH(){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 oH(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function sH(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 cH(){let t={...this.opts};for(let e of eH)delete t[e];return t}var uH={log(){},warn(){},error(){}};function lH(t){if(t===!1)return uH;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 dH=/^[a-z_$][a-z0-9_$:-]*$/i;function pH(t,e){let{RULES:r}=this;if((0,kx.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!dH.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 Ex(t,e,r){var n;let i=e?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,o=i?a.post:a.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},a.rules.push(o)),a.keywords[t]=!0,!e)return;let s={keyword:t,definition:{...e,type:(0,Pf.getJSONTypes)(e.type),schemaType:(0,Pf.getJSONTypes)(e.schemaType)}};e.before?fH.call(this,o,s,e.before):o.rules.push(s),a.all[t]=s,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function fH(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 mH(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=eP(e)),t.validateSchema=this.compile(e,!0))}var hH={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function eP(t){return{anyOf:[t,hH]}}});var rP=j(Tx=>{"use strict";Object.defineProperty(Tx,"__esModule",{value:!0});var gH={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Tx.default=gH});var oP=j(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.callRef=Ga.getValidate=void 0;var vH=Qu(),nP=gn(),Lr=Le(),ls=Oi(),iP=$f(),Rf=ot(),yH={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:i,schemaEnv:a,validateName:o,opts:s,self:c}=n,{root:u}=a;if((r==="#"||r==="#/")&&i===u.baseId)return d();let l=iP.resolveRef.call(c,u,i,r);if(l===void 0)throw new vH.default(n.opts.uriResolver,i,r);if(l instanceof iP.SchemaEnv)return p(l);return f(l);function d(){if(a===u)return Of(t,o,a,a.$async);let h=e.scopeValue("root",{ref:u});return Of(t,(0,Lr._)`${h}.validate`,u,u.$async)}function p(h){let _=aP(t,h);Of(t,_,h,h.$async)}function f(h){let _=e.scopeValue("schema",s.code.source===!0?{ref:h,code:(0,Lr.stringify)(h)}:{ref:h}),g=e.name("valid"),m=t.subschema({schema:h,dataTypes:[],schemaPath:Lr.nil,topSchemaRef:_,errSchemaPath:r},g);t.mergeEvaluated(m),t.ok(g)}}};function aP(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,Lr._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Ga.getValidate=aP;function Of(t,e,r,n){let{gen:i,it:a}=t,{allErrors:o,schemaEnv:s,opts:c}=a,u=c.passContext?ls.default.this:Lr.nil;n?l():d();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let h=i.let("valid");i.try(()=>{i.code((0,Lr._)`await ${(0,nP.callValidateCode)(t,e,u)}`),f(e),o||i.assign(h,!0)},_=>{i.if((0,Lr._)`!(${_} instanceof ${a.ValidationError})`,()=>i.throw(_)),p(_),o||i.assign(h,!1)}),t.ok(h)}function d(){t.result((0,nP.callValidateCode)(t,e,u),()=>f(e),()=>p(e))}function p(h){let _=(0,Lr._)`${h}.errors`;i.assign(ls.default.vErrors,(0,Lr._)`${ls.default.vErrors} === null ? ${_} : ${ls.default.vErrors}.concat(${_})`),i.assign(ls.default.errors,(0,Lr._)`${ls.default.vErrors}.length`)}function f(h){var _;if(!a.opts.unevaluated)return;let g=(_=r?.validate)===null||_===void 0?void 0:_.evaluated;if(a.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(a.props=Rf.mergeEvaluated.props(i,g.props,a.props));else{let m=i.var("props",(0,Lr._)`${h}.evaluated.props`);a.props=Rf.mergeEvaluated.props(i,m,a.props,Lr.Name)}if(a.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(a.items=Rf.mergeEvaluated.items(i,g.items,a.items));else{let m=i.var("items",(0,Lr._)`${h}.evaluated.items`);a.items=Rf.mergeEvaluated.items(i,m,a.items,Lr.Name)}}}Ga.callRef=Of;Ga.default=yH});var sP=j(Ix=>{"use strict";Object.defineProperty(Ix,"__esModule",{value:!0});var _H=rP(),bH=oP(),xH=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",_H.default,bH.default];Ix.default=xH});var cP=j(Px=>{"use strict";Object.defineProperty(Px,"__esModule",{value:!0});var Cf=Le(),sa=Cf.operators,Nf={maximum:{okStr:"<=",ok:sa.LTE,fail:sa.GT},minimum:{okStr:">=",ok:sa.GTE,fail:sa.LT},exclusiveMaximum:{okStr:"<",ok:sa.LT,fail:sa.GTE},exclusiveMinimum:{okStr:">",ok:sa.GT,fail:sa.LTE}},SH={message:({keyword:t,schemaCode:e})=>(0,Cf.str)`must be ${Nf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Cf._)`{comparison: ${Nf[t].okStr}, limit: ${e}}`},wH={keyword:Object.keys(Nf),type:"number",schemaType:"number",$data:!0,error:SH,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Cf._)`${r} ${Nf[e].fail} ${n} || isNaN(${r})`)}};Px.default=wH});var uP=j(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var il=Le(),$H={message:({schemaCode:t})=>(0,il.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,il._)`{multipleOf: ${t}}`},EH={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:$H,code(t){let{gen:e,data:r,schemaCode:n,it:i}=t,a=i.opts.multipleOfPrecision,o=e.let("res"),s=a?(0,il._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${a}`:(0,il._)`${o} !== parseInt(${o})`;t.fail$data((0,il._)`(${n} === 0 || (${o} = ${r}/${n}, ${s}))`)}};Rx.default=EH});var dP=j(Ox=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});function lP(t){let e=t.length,r=0,n=0,i;for(;n=55296&&i<=56319&&n{"use strict";Object.defineProperty(Cx,"__esModule",{value:!0});var Wa=Le(),kH=ot(),TH=dP(),IH={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,Wa.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,Wa._)`{limit: ${t}}`},PH={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:IH,code(t){let{keyword:e,data:r,schemaCode:n,it:i}=t,a=e==="maxLength"?Wa.operators.GT:Wa.operators.LT,o=i.opts.unicode===!1?(0,Wa._)`${r}.length`:(0,Wa._)`${(0,kH.useFunc)(t.gen,TH.default)}(${r})`;t.fail$data((0,Wa._)`${o} ${a} ${n}`)}};Cx.default=PH});var fP=j(Nx=>{"use strict";Object.defineProperty(Nx,"__esModule",{value:!0});var RH=gn(),jf=Le(),OH={message:({schemaCode:t})=>(0,jf.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,jf._)`{pattern: ${t}}`},CH={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:OH,code(t){let{data:e,$data:r,schema:n,schemaCode:i,it:a}=t,o=a.opts.unicodeRegExp?"u":"",s=r?(0,jf._)`(new RegExp(${i}, ${o}))`:(0,RH.usePattern)(t,n);t.fail$data((0,jf._)`!${s}.test(${e})`)}};Nx.default=CH});var mP=j(jx=>{"use strict";Object.defineProperty(jx,"__esModule",{value:!0});var al=Le(),NH={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,al.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,al._)`{limit: ${t}}`},jH={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:NH,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxProperties"?al.operators.GT:al.operators.LT;t.fail$data((0,al._)`Object.keys(${r}).length ${i} ${n}`)}};jx.default=jH});var hP=j(Ax=>{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});var ol=gn(),sl=Le(),AH=ot(),MH={message:({params:{missingProperty:t}})=>(0,sl.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,sl._)`{missingProperty: ${t}}`},DH={keyword:"required",type:"object",schemaType:"array",$data:!0,error:MH,code(t){let{gen:e,schema:r,schemaCode:n,data:i,$data:a,it:o}=t,{opts:s}=o;if(!a&&r.length===0)return;let c=r.length>=s.loopRequired;if(o.allErrors?u():l(),s.strictRequired){let f=t.parentSchema.properties,{definedProperties:h}=t.it;for(let _ of r)if(f?.[_]===void 0&&!h.has(_)){let g=o.schemaEnv.baseId+o.errSchemaPath,m=`required property "${_}" is not defined at "${g}" (strictRequired)`;(0,AH.checkStrictMode)(o,m,o.opts.strictRequired)}}function u(){if(c||a)t.block$data(sl.nil,d);else for(let f of r)(0,ol.checkReportMissingProp)(t,f)}function l(){let f=e.let("missing");if(c||a){let h=e.let("valid",!0);t.block$data(h,()=>p(f,h)),t.ok(h)}else e.if((0,ol.checkMissingProp)(t,r,f)),(0,ol.reportMissingProp)(t,f),e.else()}function d(){e.forOf("prop",n,f=>{t.setParams({missingProperty:f}),e.if((0,ol.noPropertyInData)(e,i,f,s.ownProperties),()=>t.error())})}function p(f,h){t.setParams({missingProperty:f}),e.forOf(f,n,()=>{e.assign(h,(0,ol.propertyInData)(e,i,f,s.ownProperties)),e.if((0,sl.not)(h),()=>{t.error(),e.break()})},sl.nil)}}};Ax.default=DH});var gP=j(Mx=>{"use strict";Object.defineProperty(Mx,"__esModule",{value:!0});var cl=Le(),zH={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,cl.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,cl._)`{limit: ${t}}`},UH={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:zH,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxItems"?cl.operators.GT:cl.operators.LT;t.fail$data((0,cl._)`${r}.length ${i} ${n}`)}};Mx.default=UH});var Af=j(Dx=>{"use strict";Object.defineProperty(Dx,"__esModule",{value:!0});var vP=sx();vP.code='require("ajv/dist/runtime/equal").default';Dx.default=vP});var yP=j(Ux=>{"use strict";Object.defineProperty(Ux,"__esModule",{value:!0});var zx=Wu(),pr=Le(),qH=ot(),LH=Af(),FH={message:({params:{i:t,j:e}})=>(0,pr.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,pr._)`{i: ${t}, j: ${e}}`},ZH={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:FH,code(t){let{gen:e,data:r,$data:n,schema:i,parentSchema:a,schemaCode:o,it:s}=t;if(!n&&!i)return;let c=e.let("valid"),u=a.items?(0,zx.getSchemaTypes)(a.items):[];t.block$data(c,l,(0,pr._)`${o} === false`),t.ok(c);function l(){let h=e.let("i",(0,pr._)`${r}.length`),_=e.let("j");t.setParams({i:h,j:_}),e.assign(c,!0),e.if((0,pr._)`${h} > 1`,()=>(d()?p:f)(h,_))}function d(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function p(h,_){let g=e.name("item"),m=(0,zx.checkDataTypes)(u,g,s.opts.strictNumbers,zx.DataType.Wrong),y=e.const("indices",(0,pr._)`{}`);e.for((0,pr._)`;${h}--;`,()=>{e.let(g,(0,pr._)`${r}[${h}]`),e.if(m,(0,pr._)`continue`),u.length>1&&e.if((0,pr._)`typeof ${g} == "string"`,(0,pr._)`${g} += "_"`),e.if((0,pr._)`typeof ${y}[${g}] == "number"`,()=>{e.assign(_,(0,pr._)`${y}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,pr._)`${y}[${g}] = ${h}`)})}function f(h,_){let g=(0,qH.useFunc)(e,LH.default),m=e.name("outer");e.label(m).for((0,pr._)`;${h}--;`,()=>e.for((0,pr._)`${_} = ${h}; ${_}--;`,()=>e.if((0,pr._)`${g}(${r}[${h}], ${r}[${_}])`,()=>{t.error(),e.assign(c,!1).break(m)})))}}};Ux.default=ZH});var _P=j(Lx=>{"use strict";Object.defineProperty(Lx,"__esModule",{value:!0});var qx=Le(),HH=ot(),BH=Af(),VH={message:"must be equal to constant",params:({schemaCode:t})=>(0,qx._)`{allowedValue: ${t}}`},GH={keyword:"const",$data:!0,error:VH,code(t){let{gen:e,data:r,$data:n,schemaCode:i,schema:a}=t;n||a&&typeof a=="object"?t.fail$data((0,qx._)`!${(0,HH.useFunc)(e,BH.default)}(${r}, ${i})`):t.fail((0,qx._)`${a} !== ${r}`)}};Lx.default=GH});var bP=j(Fx=>{"use strict";Object.defineProperty(Fx,"__esModule",{value:!0});var ul=Le(),WH=ot(),KH=Af(),JH={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,ul._)`{allowedValues: ${t}}`},XH={keyword:"enum",schemaType:"array",$data:!0,error:JH,code(t){let{gen:e,data:r,$data:n,schema:i,schemaCode:a,it:o}=t;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let s=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,WH.useFunc)(e,KH.default)),l;if(s||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",a);l=(0,ul.or)(...i.map((h,_)=>p(f,_)))}t.pass(l);function d(){e.assign(l,!1),e.forOf("v",a,f=>e.if((0,ul._)`${u()}(${r}, ${f})`,()=>e.assign(l,!0).break()))}function p(f,h){let _=i[h];return typeof _=="object"&&_!==null?(0,ul._)`${u()}(${r}, ${f}[${h}])`:(0,ul._)`${r} === ${_}`}}};Fx.default=XH});var xP=j(Zx=>{"use strict";Object.defineProperty(Zx,"__esModule",{value:!0});var YH=cP(),QH=uP(),eB=pP(),tB=fP(),rB=mP(),nB=hP(),iB=gP(),aB=yP(),oB=_P(),sB=bP(),cB=[YH.default,QH.default,eB.default,tB.default,rB.default,nB.default,iB.default,aB.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},oB.default,sB.default];Zx.default=cB});var Bx=j(ll=>{"use strict";Object.defineProperty(ll,"__esModule",{value:!0});ll.validateAdditionalItems=void 0;var Ka=Le(),Hx=ot(),uB={message:({params:{len:t}})=>(0,Ka.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Ka._)`{limit: ${t}}`},lB={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:uB,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Hx.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:a,it:o}=t;o.items=!0;let s=r.const("len",(0,Ka._)`${i}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Ka._)`${s} <= ${e.length}`);else if(typeof n=="object"&&!(0,Hx.alwaysValidSchema)(o,n)){let u=r.var("valid",(0,Ka._)`${s} <= ${e.length}`);r.if((0,Ka.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,s,l=>{t.subschema({keyword:a,dataProp:l,dataPropType:Hx.Type.Num},u),o.allErrors||r.if((0,Ka.not)(u),()=>r.break())})}}ll.validateAdditionalItems=SP;ll.default=lB});var Vx=j(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});dl.validateTuple=void 0;var wP=Le(),Mf=ot(),dB=gn(),pB={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return $P(t,"additionalItems",e);r.items=!0,!(0,Mf.alwaysValidSchema)(r,e)&&t.ok((0,dB.validateArray)(t))}};function $P(t,e,r=t.schema){let{gen:n,parentSchema:i,data:a,keyword:o,it:s}=t;l(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=Mf.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),u=n.const("len",(0,wP._)`${a}.length`);r.forEach((d,p)=>{(0,Mf.alwaysValidSchema)(s,d)||(n.if((0,wP._)`${u} > ${p}`,()=>t.subschema({keyword:o,schemaProp:p,dataProp:p},c)),t.ok(c))});function l(d){let{opts:p,errSchemaPath:f}=s,h=r.length,_=h===d.minItems&&(h===d.maxItems||d[e]===!1);if(p.strictTuples&&!_){let g=`"${o}" is ${h}-tuple, but minItems or maxItems/${e} are not specified or different at path "${f}"`;(0,Mf.checkStrictMode)(s,g,p.strictTuples)}}}dl.validateTuple=$P;dl.default=pB});var EP=j(Gx=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var fB=Vx(),mB={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,fB.validateTuple)(t,"items")};Gx.default=mB});var TP=j(Wx=>{"use strict";Object.defineProperty(Wx,"__esModule",{value:!0});var kP=Le(),hB=ot(),gB=gn(),vB=Bx(),yB={message:({params:{len:t}})=>(0,kP.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,kP._)`{limit: ${t}}`},_B={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:yB,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:i}=r;n.items=!0,!(0,hB.alwaysValidSchema)(n,e)&&(i?(0,vB.validateAdditionalItems)(t,i):t.ok((0,gB.validateArray)(t)))}};Wx.default=_B});var IP=j(Kx=>{"use strict";Object.defineProperty(Kx,"__esModule",{value:!0});var yn=Le(),Df=ot(),bB={message:({params:{min:t,max:e}})=>e===void 0?(0,yn.str)`must contain at least ${t} valid item(s)`:(0,yn.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,yn._)`{minContains: ${t}}`:(0,yn._)`{minContains: ${t}, maxContains: ${e}}`},xB={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:bB,code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:a}=t,o,s,{minContains:c,maxContains:u}=n;a.opts.next?(o=c===void 0?1:c,s=u):o=1;let l=e.const("len",(0,yn._)`${i}.length`);if(t.setParams({min:o,max:s}),s===void 0&&o===0){(0,Df.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&o>s){(0,Df.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Df.alwaysValidSchema)(a,r)){let _=(0,yn._)`${l} >= ${o}`;s!==void 0&&(_=(0,yn._)`${_} && ${l} <= ${s}`),t.pass(_);return}a.items=!0;let d=e.name("valid");s===void 0&&o===1?f(d,()=>e.if(d,()=>e.break())):o===0?(e.let(d,!0),s!==void 0&&e.if((0,yn._)`${i}.length > 0`,p)):(e.let(d,!1),p()),t.result(d,()=>t.reset());function p(){let _=e.name("_valid"),g=e.let("count",0);f(_,()=>e.if(_,()=>h(g)))}function f(_,g){e.forRange("i",0,l,m=>{t.subschema({keyword:"contains",dataProp:m,dataPropType:Df.Type.Num,compositeRule:!0},_),g()})}function h(_){e.code((0,yn._)`${_}++`),s===void 0?e.if((0,yn._)`${_} >= ${o}`,()=>e.assign(d,!0).break()):(e.if((0,yn._)`${_} > ${s}`,()=>e.assign(d,!1).break()),o===1?e.assign(d,!0):e.if((0,yn._)`${_} >= ${o}`,()=>e.assign(d,!0)))}}};Kx.default=xB});var OP=j(oi=>{"use strict";Object.defineProperty(oi,"__esModule",{value:!0});oi.validateSchemaDeps=oi.validatePropertyDeps=oi.error=void 0;var Jx=Le(),SB=ot(),pl=gn();oi.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Jx.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Jx._)`{property: ${t}, missingProperty: ${n}, depsCount: ${e}, - deps: ${r}}`};var vB={keyword:"dependencies",type:"object",schemaType:"object",error:ai.error,code(t){let[e,r]=yB(t);TP(t,e),IP(t,r)}};function yB({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 TP(t,e=t.schema){let{gen:r,data:n,it:i}=t;if(Object.keys(e).length===0)return;let a=r.let("missing");for(let o in e){let s=e[o];if(s.length===0)continue;let c=(0,cl.propertyInData)(r,n,o,i.opts.ownProperties);t.setParams({property:o,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let u of s)(0,cl.checkReportMissingProp)(t,u)}):(r.if((0,Wx._)`${c} && (${(0,cl.checkMissingProp)(t,s,a)})`),(0,cl.reportMissingProp)(t,a),r.else())}}ai.validatePropertyDeps=TP;function IP(t,e=t.schema){let{gen:r,data:n,keyword:i,it:a}=t,o=r.name("valid");for(let s in e)(0,gB.alwaysValidSchema)(a,e[s])||(r.if((0,cl.propertyInData)(r,n,s,a.opts.ownProperties),()=>{let c=t.subschema({keyword:i,schemaProp:s},o);t.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),t.ok(o))}ai.validateSchemaDeps=IP;ai.default=vB});var RP=j(Kx=>{"use strict";Object.defineProperty(Kx,"__esModule",{value:!0});var OP=Le(),_B=ot(),bB={message:"property name must be valid",params:({params:t})=>(0,OP._)`{propertyName: ${t.propertyName}}`},xB={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:bB,code(t){let{gen:e,schema:r,data:n,it:i}=t;if((0,_B.alwaysValidSchema)(i,r))return;let a=e.name("valid");e.forIn("key",n,o=>{t.setParams({propertyName:o}),t.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},a),e.if((0,OP.not)(a),()=>{t.error(!0),i.allErrors||e.break()})}),t.ok(a)}};Kx.default=xB});var Xx=j(Jx=>{"use strict";Object.defineProperty(Jx,"__esModule",{value:!0});var Mf=hn(),Un=Le(),SB=Ri(),zf=ot(),wB={message:"must NOT have additional properties",params:({params:t})=>(0,Un._)`{additionalProperty: ${t.additionalProperty}}`},$B={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:wB,code(t){let{gen:e,schema:r,parentSchema:n,data:i,errsCount:a,it:o}=t;if(!a)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,zf.alwaysValidSchema)(o,r))return;let u=(0,Mf.allSchemaProperties)(n.properties),l=(0,Mf.allSchemaProperties)(n.patternProperties);d(),t.ok((0,Un._)`${a} === ${SB.default.errors}`);function d(){e.forIn("key",i,y=>{!u.length&&!l.length?h(y):e.if(p(y),()=>h(y))})}function p(y){let m;if(u.length>8){let v=(0,zf.schemaRefOrVal)(o,n.properties,"properties");m=(0,Mf.isOwnProperty)(e,v,y)}else u.length?m=(0,Un.or)(...u.map(v=>(0,Un._)`${y} === ${v}`)):m=Un.nil;return l.length&&(m=(0,Un.or)(m,...l.map(v=>(0,Un._)`${(0,Mf.usePattern)(t,v)}.test(${y})`))),(0,Un.not)(m)}function f(y){e.code((0,Un._)`delete ${i}[${y}]`)}function h(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){f(y);return}if(r===!1){t.setParams({additionalProperty:y}),t.error(),s||e.break();return}if(typeof r=="object"&&!(0,zf.alwaysValidSchema)(o,r)){let m=e.name("valid");c.removeAdditional==="failing"?(_(y,m,!1),e.if((0,Un.not)(m),()=>{t.reset(),f(y)})):(_(y,m),s||e.if((0,Un.not)(m),()=>e.break()))}}function _(y,m,v){let g={keyword:"additionalProperties",dataProp:y,dataPropType:zf.Type.Str};v===!1&&Object.assign(g,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(g,m)}}};Jx.default=$B});var jP=j(Qx=>{"use strict";Object.defineProperty(Qx,"__esModule",{value:!0});var EB=Wu(),CP=hn(),Yx=ot(),NP=Xx(),kB={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:a}=t;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&NP.default.code(new EB.KeywordCxt(a,NP.default,"additionalProperties"));let o=(0,CP.allSchemaProperties)(r);for(let d of o)a.definedProperties.add(d);a.opts.unevaluated&&o.length&&a.props!==!0&&(a.props=Yx.mergeEvaluated.props(e,(0,Yx.toHash)(o),a.props));let s=o.filter(d=>!(0,Yx.alwaysValidSchema)(a,r[d]));if(s.length===0)return;let c=e.name("valid");for(let d of s)u(d)?l(d):(e.if((0,CP.propertyInData)(e,i,d,a.opts.ownProperties)),l(d),a.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(d),t.ok(c);function u(d){return a.opts.useDefaults&&!a.compositeRule&&r[d].default!==void 0}function l(d){t.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};Qx.default=kB});var DP=j(e0=>{"use strict";Object.defineProperty(e0,"__esModule",{value:!0});var AP=hn(),Df=Le(),MP=ot(),zP=ot(),TB={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:i,it:a}=t,{opts:o}=a,s=(0,AP.allSchemaProperties)(r),c=s.filter(_=>(0,MP.alwaysValidSchema)(a,r[_]));if(s.length===0||c.length===s.length&&(!a.opts.unevaluated||a.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,l=e.name("valid");a.props!==!0&&!(a.props instanceof Df.Name)&&(a.props=(0,zP.evaluatedPropsToName)(e,a.props));let{props:d}=a;p();function p(){for(let _ of s)u&&f(_),a.allErrors?h(_):(e.var(l,!0),h(_),e.if(l))}function f(_){for(let y in u)new RegExp(_).test(y)&&(0,MP.checkStrictMode)(a,`property ${y} matches pattern ${_} (use allowMatchingProperties)`)}function h(_){e.forIn("key",n,y=>{e.if((0,Df._)`${(0,AP.usePattern)(t,_)}.test(${y})`,()=>{let m=c.includes(_);m||t.subschema({keyword:"patternProperties",schemaProp:_,dataProp:y,dataPropType:zP.Type.Str},l),a.opts.unevaluated&&d!==!0?e.assign((0,Df._)`${d}[${y}]`,!0):!m&&!a.allErrors&&e.if((0,Df.not)(l),()=>e.break())})})}}};e0.default=TB});var UP=j(t0=>{"use strict";Object.defineProperty(t0,"__esModule",{value:!0});var IB=ot(),PB={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,IB.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"}};t0.default=PB});var qP=j(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});var OB=hn(),RB={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:OB.validateUnion,error:{message:"must match a schema in anyOf"}};r0.default=RB});var LP=j(n0=>{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});var Uf=Le(),CB=ot(),NB={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Uf._)`{passingSchemas: ${t.passing}}`},jB={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:NB,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 a=r,o=e.let("valid",!1),s=e.let("passing",null),c=e.name("_valid");t.setParams({passing:s}),e.block(u),t.result(o,()=>t.reset(),()=>t.error(!0));function u(){a.forEach((l,d)=>{let p;(0,CB.alwaysValidSchema)(i,l)?e.var(c,!0):p=t.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&e.if((0,Uf._)`${c} && ${o}`).assign(o,!1).assign(s,(0,Uf._)`[${s}, ${d}]`).else(),e.if(c,()=>{e.assign(o,!0),e.assign(s,d),p&&t.mergeEvaluated(p,Uf.Name)})})}}};n0.default=jB});var FP=j(i0=>{"use strict";Object.defineProperty(i0,"__esModule",{value:!0});var AB=ot(),MB={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((a,o)=>{if((0,AB.alwaysValidSchema)(n,a))return;let s=t.subschema({keyword:"allOf",schemaProp:o},i);t.ok(i),t.mergeEvaluated(s)})}};i0.default=MB});var BP=j(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});var qf=Le(),HP=ot(),zB={message:({params:t})=>(0,qf.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,qf._)`{failingKeyword: ${t.ifClause}}`},DB={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:zB,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,HP.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=ZP(n,"then"),a=ZP(n,"else");if(!i&&!a)return;let o=e.let("valid",!0),s=e.name("_valid");if(c(),t.reset(),i&&a){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(s,u("then",l),u("else",l))}else i?e.if(s,u("then")):e.if((0,qf.not)(s),u("else"));t.pass(o,()=>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(o,s),t.mergeValidEvaluated(p,o),d?e.assign(d,(0,qf._)`${l}`):t.setParams({ifClause:l})}}}};function ZP(t,e){let r=t.schema[e];return r!==void 0&&!(0,HP.alwaysValidSchema)(t,r)}a0.default=DB});var VP=j(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var UB=ot(),qB={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,UB.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};o0.default=qB});var GP=j(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});var LB=Zx(),FB=wP(),ZB=Hx(),HB=EP(),BB=kP(),VB=PP(),GB=RP(),WB=Xx(),KB=jP(),JB=DP(),XB=UP(),YB=qP(),QB=LP(),eV=FP(),tV=BP(),rV=VP();function nV(t=!1){let e=[XB.default,YB.default,QB.default,eV.default,tV.default,rV.default,GB.default,WB.default,VB.default,KB.default,JB.default];return t?e.push(FB.default,HB.default):e.push(LB.default,ZB.default),e.push(BB.default),e}s0.default=nV});var WP=j(c0=>{"use strict";Object.defineProperty(c0,"__esModule",{value:!0});var Xt=Le(),iV={message:({schemaCode:t})=>(0,Xt.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Xt._)`{format: ${t}}`},aV={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:iV,code(t,e){let{gen:r,data:n,$data:i,schema:a,schemaCode:o,it:s}=t,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=s;if(!c.validateFormats)return;i?p():f();function p(){let h=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),_=r.const("fDef",(0,Xt._)`${h}[${o}]`),y=r.let("fType"),m=r.let("format");r.if((0,Xt._)`typeof ${_} == "object" && !(${_} instanceof RegExp)`,()=>r.assign(y,(0,Xt._)`${_}.type || "string"`).assign(m,(0,Xt._)`${_}.validate`),()=>r.assign(y,(0,Xt._)`"string"`).assign(m,_)),t.fail$data((0,Xt.or)(v(),g()));function v(){return c.strictSchema===!1?Xt.nil:(0,Xt._)`${o} && !${m}`}function g(){let b=l.$async?(0,Xt._)`(${_}.async ? await ${m}(${n}) : ${m}(${n}))`:(0,Xt._)`${m}(${n})`,S=(0,Xt._)`(typeof ${m} == "function" ? ${b} : ${m}.test(${n}))`;return(0,Xt._)`${m} && ${m} !== true && ${y} === ${e} && !${S}`}}function f(){let h=d.formats[a];if(!h){v();return}if(h===!0)return;let[_,y,m]=g(h);_===e&&t.pass(b());function v(){if(c.strictSchema===!1){d.logger.warn(S());return}throw new Error(S());function S(){return`unknown format "${a}" ignored in schema at path "${u}"`}}function g(S){let x=S instanceof RegExp?(0,Xt.regexpCode)(S):c.code.formats?(0,Xt._)`${c.code.formats}${(0,Xt.getProperty)(a)}`:void 0,w=r.scopeValue("formats",{key:a,ref:S,code:x});return typeof S=="object"&&!(S instanceof RegExp)?[S.type||"string",S.validate,(0,Xt._)`${w}.validate`]:["string",S,w]}function b(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Xt._)`await ${m}(${n})`}return typeof y=="function"?(0,Xt._)`${m}(${n})`:(0,Xt._)`${m}.test(${n})`}}}};c0.default=aV});var KP=j(u0=>{"use strict";Object.defineProperty(u0,"__esModule",{value:!0});var oV=WP(),sV=[oV.default];u0.default=sV});var JP=j(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.contentVocabulary=ls.metadataVocabulary=void 0;ls.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ls.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var YP=j(l0=>{"use strict";Object.defineProperty(l0,"__esModule",{value:!0});var cV=aP(),uV=_P(),lV=GP(),dV=KP(),XP=JP(),pV=[cV.default,uV.default,(0,lV.default)(),dV.default,XP.metadataVocabulary,XP.contentVocabulary];l0.default=pV});var eO=j(Lf=>{"use strict";Object.defineProperty(Lf,"__esModule",{value:!0});Lf.DiscrError=void 0;var QP;(function(t){t.Tag="tag",t.Mapping="mapping"})(QP||(Lf.DiscrError=QP={}))});var rO=j(p0=>{"use strict";Object.defineProperty(p0,"__esModule",{value:!0});var ds=Le(),d0=eO(),tO=Sf(),fV=Ku(),mV=ot(),hV={message:({params:{discrError:t,tagName:e}})=>t===d0.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,ds._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},gV={keyword:"discriminator",type:"object",schemaType:"object",error:hV,code(t){let{gen:e,data:r,schema:n,parentSchema:i,it:a}=t,{oneOf:o}=i;if(!a.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(!o)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,ds._)`${r}${(0,ds.getProperty)(s)}`);e.if((0,ds._)`typeof ${u} == "string"`,()=>l(),()=>t.error(!1,{discrError:d0.DiscrError.Tag,tag:u,tagName:s})),t.ok(c);function l(){let f=p();e.if(!1);for(let h in f)e.elseIf((0,ds._)`${u} === ${h}`),e.assign(c,d(f[h]));e.else(),t.error(!1,{discrError:d0.DiscrError.Mapping,tag:u,tagName:s}),e.endIf()}function d(f){let h=e.name("valid"),_=t.subschema({keyword:"oneOf",schemaProp:f},h);return t.mergeEvaluated(_,ds.Name),h}function p(){var f;let h={},_=m(i),y=!0;for(let b=0;b{vV.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 m0=j((At,f0)=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.MissingRefError=At.ValidationError=At.CodeGen=At.Name=At.nil=At.stringify=At.str=At._=At.KeywordCxt=At.Ajv=void 0;var yV=QI(),_V=YP(),bV=rO(),iO=nO(),xV=["/properties"],Ff="http://json-schema.org/draft-07/schema",ps=class extends yV.default{_addVocabularies(){super._addVocabularies(),_V.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(bV.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(iO,xV):iO;this.addMetaSchema(e,Ff,!1),this.refs["http://json-schema.org/schema"]=Ff}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Ff)?Ff:void 0)}};At.Ajv=ps;f0.exports=At=ps;f0.exports.Ajv=ps;Object.defineProperty(At,"__esModule",{value:!0});At.default=ps;var SV=Wu();Object.defineProperty(At,"KeywordCxt",{enumerable:!0,get:function(){return SV.KeywordCxt}});var fs=Le();Object.defineProperty(At,"_",{enumerable:!0,get:function(){return fs._}});Object.defineProperty(At,"str",{enumerable:!0,get:function(){return fs.str}});Object.defineProperty(At,"stringify",{enumerable:!0,get:function(){return fs.stringify}});Object.defineProperty(At,"nil",{enumerable:!0,get:function(){return fs.nil}});Object.defineProperty(At,"Name",{enumerable:!0,get:function(){return fs.Name}});Object.defineProperty(At,"CodeGen",{enumerable:!0,get:function(){return fs.CodeGen}});var wV=bf();Object.defineProperty(At,"ValidationError",{enumerable:!0,get:function(){return wV.default}});var $V=Ku();Object.defineProperty(At,"MissingRefError",{enumerable:!0,get:function(){return $V.default}})});var pO=j(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.formatNames=si.fastFormats=si.fullFormats=void 0;function oi(t,e){return{validate:t,compare:e}}si.fullFormats={date:oi(cO,y0),time:oi(g0(!0),_0),"date-time":oi(aO(!0),lO),"iso-time":oi(g0(),uO),"iso-date-time":oi(aO(),dO),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:OV,"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:zV,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:RV,int32:{type:"number",validate:jV},int64:{type:"number",validate:AV},float:{type:"number",validate:sO},double:{type:"number",validate:sO},password:!0,binary:!0};si.fastFormats={...si.fullFormats,date:oi(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,y0),time:oi(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,_0),"date-time":oi(/^\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,lO),"iso-time":oi(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,uO),"iso-date-time":oi(/^\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,dO),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};si.formatNames=Object.keys(si.fullFormats);function EV(t){return t%4===0&&(t%100!==0||t%400===0)}var kV=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,TV=[0,31,28,31,30,31,30,31,31,30,31,30,31];function cO(t){let e=kV.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&&EV(r)?29:TV[n])}function y0(t,e){if(t&&e)return t>e?1:t23||l>59||t&&!s)return!1;if(i<=23&&a<=59&&o<60)return!0;let d=a-l*c,p=i-u*c-(d<0?1:0);return(p===23||p===-1)&&(d===59||d===-1)&&o<61}}function _0(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 uO(t,e){if(!(t&&e))return;let r=h0.exec(t),n=h0.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=CV}function AV(t){return Number.isInteger(t)}function sO(){return!0}var MV=/[^\\]\\Z/;function zV(t){if(MV.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var fO=j(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});ms.formatLimitDefinition=void 0;var DV=m0(),qn=Le(),ua=qn.operators,Zf={formatMaximum:{okStr:"<=",ok:ua.LTE,fail:ua.GT},formatMinimum:{okStr:">=",ok:ua.GTE,fail:ua.LT},formatExclusiveMaximum:{okStr:"<",ok:ua.LT,fail:ua.GTE},formatExclusiveMinimum:{okStr:">",ok:ua.GT,fail:ua.LTE}},UV={message:({keyword:t,schemaCode:e})=>(0,qn.str)`should be ${Zf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,qn._)`{comparison: ${Zf[t].okStr}, limit: ${e}}`};ms.formatLimitDefinition={keyword:Object.keys(Zf),type:"string",schemaType:"string",$data:!0,error:UV,code(t){let{gen:e,data:r,schemaCode:n,keyword:i,it:a}=t,{opts:o,self:s}=a;if(!o.validateFormats)return;let c=new DV.KeywordCxt(a,s.RULES.all.format.definition,"format");c.$data?u():l();function u(){let p=e.scopeValue("formats",{ref:s.formats,code:o.code.formats}),f=e.const("fmt",(0,qn._)`${p}[${c.schemaCode}]`);t.fail$data((0,qn.or)((0,qn._)`typeof ${f} != "object"`,(0,qn._)`${f} instanceof RegExp`,(0,qn._)`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(`"${i}": format "${p}" does not define "compare" function`);let h=e.scopeValue("formats",{key:p,ref:f,code:o.code.formats?(0,qn._)`${o.code.formats}${(0,qn.getProperty)(p)}`:void 0});t.fail$data(d(h))}function d(p){return(0,qn._)`${p}.compare(${r}, ${n}) ${Zf[i].fail} 0`}},dependencies:["format"]};var qV=t=>(t.addKeyword(ms.formatLimitDefinition),t);ms.default=qV});var vO=j((ul,gO)=>{"use strict";Object.defineProperty(ul,"__esModule",{value:!0});var hs=pO(),LV=fO(),b0=Le(),mO=new b0.Name("fullFormats"),FV=new b0.Name("fastFormats"),x0=(t,e={keywords:!0})=>{if(Array.isArray(e))return hO(t,e,hs.fullFormats,mO),t;let[r,n]=e.mode==="fast"?[hs.fastFormats,FV]:[hs.fullFormats,mO],i=e.formats||hs.formatNames;return hO(t,i,r,n),e.keywords&&(0,LV.default)(t),t};x0.get=(t,e="full")=>{let n=(e==="fast"?hs.fastFormats:hs.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function hO(t,e,r,n){var i,a;(i=(a=t.opts.code).formats)!==null&&i!==void 0||(a.formats=(0,b0._)`require("ajv-formats/dist/formats").${n}`);for(let o of e)t.addFormat(o,r[o])}gO.exports=ul=x0;Object.defineProperty(ul,"__esModule",{value:!0});ul.default=x0});var kO=j((Ewe,EO)=>{EO.exports=$O;$O.sync=VV;var SO=require("fs");function BV(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{OO.exports=IO;IO.sync=GV;var TO=require("fs");function IO(t,e,r){TO.stat(t,function(n,i){r(n,n?!1:PO(i,e))})}function GV(t,e){return PO(TO.statSync(t),e)}function PO(t,e){return t.isFile()&&WV(t,e)}function WV(t,e){var r=t.mode,n=t.uid,i=t.gid,a=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),s=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),l=s|c,d=r&u||r&c&&i===o||r&s&&n===a||r&l&&a===0;return d}});var NO=j((Iwe,CO)=>{var Twe=require("fs"),Gf;process.platform==="win32"||global.TESTING_WINDOWS?Gf=kO():Gf=RO();CO.exports=S0;S0.sync=KV;function S0(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){S0(t,e||{},function(a,o){a?i(a):n(o)})})}Gf(t,e||{},function(n,i){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,i=!1),r(n,i)})}function KV(t,e){try{return Gf.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var qO=j((Pwe,UO)=>{var vs=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",jO=require("path"),JV=vs?";":":",AO=NO(),MO=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),zO=(t,e)=>{let r=e.colon||JV,n=t.match(/\//)||vs&&t.match(/\\/)?[""]:[...vs?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],i=vs?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",a=vs?i.split(r):[""];return vs&&t.indexOf(".")!==-1&&a[0]!==""&&a.unshift(""),{pathEnv:n,pathExt:a,pathExtExe:i}},DO=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:i,pathExtExe:a}=zO(t,e),o=[],s=u=>new Promise((l,d)=>{if(u===n.length)return e.all&&o.length?l(o):d(MO(t));let p=n[u],f=/^".*"$/.test(p)?p.slice(1,-1):p,h=jO.join(f,t),_=!f&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;l(c(_,u,0))}),c=(u,l,d)=>new Promise((p,f)=>{if(d===i.length)return p(s(l+1));let h=i[d];AO(u+h,{pathExt:a},(_,y)=>{if(!_&&y)if(e.all)o.push(u+h);else return p(u+h);return p(c(u,l,d+1))})});return r?s(0).then(u=>r(null,u),r):s(0)},XV=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:i}=zO(t,e),a=[];for(let o=0;o{"use strict";var LO=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};w0.exports=LO;w0.exports.default=LO});var VO=j((Rwe,BO)=>{"use strict";var ZO=require("path"),YV=qO(),QV=FO();function HO(t,e){let r=t.options.env||process.env,n=process.cwd(),i=t.options.cwd!=null,a=i&&process.chdir!==void 0&&!process.chdir.disabled;if(a)try{process.chdir(t.options.cwd)}catch{}let o;try{o=YV.sync(t.command,{path:r[QV({env:r})],pathExt:e?ZO.delimiter:void 0})}catch{}finally{a&&process.chdir(n)}return o&&(o=ZO.resolve(i?t.options.cwd:"",o)),o}function e7(t){return HO(t)||HO(t,!0)}BO.exports=e7});var GO=j((Cwe,E0)=>{"use strict";var $0=/([()\][%!^"`<>&|;, *?])/g;function t7(t){return t=t.replace($0,"^$1"),t}function r7(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace($0,"^$1"),e&&(t=t.replace($0,"^$1")),t}E0.exports.command=t7;E0.exports.argument=r7});var KO=j((Nwe,WO)=>{"use strict";WO.exports=/^#!(.*)/});var XO=j((jwe,JO)=>{"use strict";var n7=KO();JO.exports=(t="")=>{let e=t.match(n7);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return i==="env"?n:n?`${i} ${n}`:i}});var QO=j((Awe,YO)=>{"use strict";var k0=require("fs"),i7=XO();function a7(t){let r=Buffer.alloc(150),n;try{n=k0.openSync(t,"r"),k0.readSync(n,r,0,150,0),k0.closeSync(n)}catch{}return i7(r.toString())}YO.exports=a7});var nR=j((Mwe,rR)=>{"use strict";var o7=require("path"),eR=VO(),tR=GO(),s7=QO(),c7=process.platform==="win32",u7=/\.(?:com|exe)$/i,l7=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function d7(t){t.file=eR(t);let e=t.file&&s7(t.file);return e?(t.args.unshift(t.file),t.command=e,eR(t)):t.file}function p7(t){if(!c7)return t;let e=d7(t),r=!u7.test(e);if(t.options.forceShell||r){let n=l7.test(e);t.command=o7.normalize(t.command),t.command=tR.command(t.command),t.args=t.args.map(a=>tR.argument(a,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 f7(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:p7(n)}rR.exports=f7});var oR=j((zwe,aR)=>{"use strict";var T0=process.platform==="win32";function I0(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 m7(t,e){if(!T0)return;let r=t.emit;t.emit=function(n,i){if(n==="exit"){let a=iR(i,e);if(a)return r.call(t,"error",a)}return r.apply(t,arguments)}}function iR(t,e){return T0&&t===1&&!e.file?I0(e.original,"spawn"):null}function h7(t,e){return T0&&t===1&&!e.file?I0(e.original,"spawnSync"):null}aR.exports={hookChildProcess:m7,verifyENOENT:iR,verifyENOENTSync:h7,notFoundError:I0}});var uR=j((Dwe,ys)=>{"use strict";var sR=require("child_process"),P0=nR(),O0=oR();function cR(t,e,r){let n=P0(t,e,r),i=sR.spawn(n.command,n.args,n.options);return O0.hookChildProcess(i,n),i}function g7(t,e,r){let n=P0(t,e,r),i=sR.spawnSync(n.command,n.args,n.options);return i.error=i.error||O0.verifyENOENTSync(i.status,n),i}ys.exports=cR;ys.exports.spawn=cR;ys.exports.sync=g7;ys.exports._parse=P0;ys.exports._enoent=O0});var ji,dl,mR,R0,fR,C0,T,Ae=Gt(()=>{"use strict";ji=require("fs"),dl=require("path"),mR=require("os"),R0=(a=>(a[a.DEBUG=0]="DEBUG",a[a.INFO=1]="INFO",a[a.WARN=2]="WARN",a[a.ERROR=3]="ERROR",a[a.SILENT=4]="SILENT",a))(R0||{}),fR=(0,dl.join)((0,mR.homedir)(),".claude-mem"),C0=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,dl.join)(fR,"logs");(0,ji.existsSync)(e)||(0,ji.mkdirSync)(e,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=(0,dl.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,dl.join)(fR,"settings.json");if((0,ji.existsSync)(e)){let r=(0,ji.readFileSync)(e,"utf-8"),i=(JSON.parse(r).CLAUDE_MEM_LOG_LEVEL||"INFO").toUpperCase();this.level=R0[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"),a=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),s=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${i} ${a}:${o}:${s}.${c}`}log(e,r,n,i,a){if(e{for(let u of s)(0,pl.checkReportMissingProp)(t,u)}):(r.if((0,Jx._)`${c} && (${(0,pl.checkMissingProp)(t,s,a)})`),(0,pl.reportMissingProp)(t,a),r.else())}}oi.validatePropertyDeps=PP;function RP(t,e=t.schema){let{gen:r,data:n,keyword:i,it:a}=t,o=r.name("valid");for(let s in e)(0,SB.alwaysValidSchema)(a,e[s])||(r.if((0,pl.propertyInData)(r,n,s,a.opts.ownProperties),()=>{let c=t.subschema({keyword:i,schemaProp:s},o);t.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),t.ok(o))}oi.validateSchemaDeps=RP;oi.default=wB});var NP=j(Xx=>{"use strict";Object.defineProperty(Xx,"__esModule",{value:!0});var CP=Le(),EB=ot(),kB={message:"property name must be valid",params:({params:t})=>(0,CP._)`{propertyName: ${t.propertyName}}`},TB={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:kB,code(t){let{gen:e,schema:r,data:n,it:i}=t;if((0,EB.alwaysValidSchema)(i,r))return;let a=e.name("valid");e.forIn("key",n,o=>{t.setParams({propertyName:o}),t.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},a),e.if((0,CP.not)(a),()=>{t.error(!0),i.allErrors||e.break()})}),t.ok(a)}};Xx.default=TB});var Qx=j(Yx=>{"use strict";Object.defineProperty(Yx,"__esModule",{value:!0});var zf=gn(),qn=Le(),IB=Oi(),Uf=ot(),PB={message:"must NOT have additional properties",params:({params:t})=>(0,qn._)`{additionalProperty: ${t.additionalProperty}}`},RB={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:PB,code(t){let{gen:e,schema:r,parentSchema:n,data:i,errsCount:a,it:o}=t;if(!a)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,Uf.alwaysValidSchema)(o,r))return;let u=(0,zf.allSchemaProperties)(n.properties),l=(0,zf.allSchemaProperties)(n.patternProperties);d(),t.ok((0,qn._)`${a} === ${IB.default.errors}`);function d(){e.forIn("key",i,g=>{!u.length&&!l.length?h(g):e.if(p(g),()=>h(g))})}function p(g){let m;if(u.length>8){let y=(0,Uf.schemaRefOrVal)(o,n.properties,"properties");m=(0,zf.isOwnProperty)(e,y,g)}else u.length?m=(0,qn.or)(...u.map(y=>(0,qn._)`${g} === ${y}`)):m=qn.nil;return l.length&&(m=(0,qn.or)(m,...l.map(y=>(0,qn._)`${(0,zf.usePattern)(t,y)}.test(${g})`))),(0,qn.not)(m)}function f(g){e.code((0,qn._)`delete ${i}[${g}]`)}function h(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){f(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),s||e.break();return}if(typeof r=="object"&&!(0,Uf.alwaysValidSchema)(o,r)){let m=e.name("valid");c.removeAdditional==="failing"?(_(g,m,!1),e.if((0,qn.not)(m),()=>{t.reset(),f(g)})):(_(g,m),s||e.if((0,qn.not)(m),()=>e.break()))}}function _(g,m,y){let v={keyword:"additionalProperties",dataProp:g,dataPropType:Uf.Type.Str};y===!1&&Object.assign(v,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(v,m)}}};Yx.default=RB});var MP=j(t0=>{"use strict";Object.defineProperty(t0,"__esModule",{value:!0});var OB=Yu(),jP=gn(),e0=ot(),AP=Qx(),CB={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:a}=t;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&AP.default.code(new OB.KeywordCxt(a,AP.default,"additionalProperties"));let o=(0,jP.allSchemaProperties)(r);for(let d of o)a.definedProperties.add(d);a.opts.unevaluated&&o.length&&a.props!==!0&&(a.props=e0.mergeEvaluated.props(e,(0,e0.toHash)(o),a.props));let s=o.filter(d=>!(0,e0.alwaysValidSchema)(a,r[d]));if(s.length===0)return;let c=e.name("valid");for(let d of s)u(d)?l(d):(e.if((0,jP.propertyInData)(e,i,d,a.opts.ownProperties)),l(d),a.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(d),t.ok(c);function u(d){return a.opts.useDefaults&&!a.compositeRule&&r[d].default!==void 0}function l(d){t.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};t0.default=CB});var qP=j(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});var DP=gn(),qf=Le(),zP=ot(),UP=ot(),NB={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:i,it:a}=t,{opts:o}=a,s=(0,DP.allSchemaProperties)(r),c=s.filter(_=>(0,zP.alwaysValidSchema)(a,r[_]));if(s.length===0||c.length===s.length&&(!a.opts.unevaluated||a.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,l=e.name("valid");a.props!==!0&&!(a.props instanceof qf.Name)&&(a.props=(0,UP.evaluatedPropsToName)(e,a.props));let{props:d}=a;p();function p(){for(let _ of s)u&&f(_),a.allErrors?h(_):(e.var(l,!0),h(_),e.if(l))}function f(_){for(let g in u)new RegExp(_).test(g)&&(0,zP.checkStrictMode)(a,`property ${g} matches pattern ${_} (use allowMatchingProperties)`)}function h(_){e.forIn("key",n,g=>{e.if((0,qf._)`${(0,DP.usePattern)(t,_)}.test(${g})`,()=>{let m=c.includes(_);m||t.subschema({keyword:"patternProperties",schemaProp:_,dataProp:g,dataPropType:UP.Type.Str},l),a.opts.unevaluated&&d!==!0?e.assign((0,qf._)`${d}[${g}]`,!0):!m&&!a.allErrors&&e.if((0,qf.not)(l),()=>e.break())})})}}};r0.default=NB});var LP=j(n0=>{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});var jB=ot(),AB={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,jB.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"}};n0.default=AB});var FP=j(i0=>{"use strict";Object.defineProperty(i0,"__esModule",{value:!0});var MB=gn(),DB={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:MB.validateUnion,error:{message:"must match a schema in anyOf"}};i0.default=DB});var ZP=j(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});var Lf=Le(),zB=ot(),UB={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Lf._)`{passingSchemas: ${t.passing}}`},qB={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:UB,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 a=r,o=e.let("valid",!1),s=e.let("passing",null),c=e.name("_valid");t.setParams({passing:s}),e.block(u),t.result(o,()=>t.reset(),()=>t.error(!0));function u(){a.forEach((l,d)=>{let p;(0,zB.alwaysValidSchema)(i,l)?e.var(c,!0):p=t.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&e.if((0,Lf._)`${c} && ${o}`).assign(o,!1).assign(s,(0,Lf._)`[${s}, ${d}]`).else(),e.if(c,()=>{e.assign(o,!0),e.assign(s,d),p&&t.mergeEvaluated(p,Lf.Name)})})}}};a0.default=qB});var HP=j(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var LB=ot(),FB={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((a,o)=>{if((0,LB.alwaysValidSchema)(n,a))return;let s=t.subschema({keyword:"allOf",schemaProp:o},i);t.ok(i),t.mergeEvaluated(s)})}};o0.default=FB});var GP=j(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});var Ff=Le(),VP=ot(),ZB={message:({params:t})=>(0,Ff.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Ff._)`{failingKeyword: ${t.ifClause}}`},HB={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:ZB,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,VP.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=BP(n,"then"),a=BP(n,"else");if(!i&&!a)return;let o=e.let("valid",!0),s=e.name("_valid");if(c(),t.reset(),i&&a){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(s,u("then",l),u("else",l))}else i?e.if(s,u("then")):e.if((0,Ff.not)(s),u("else"));t.pass(o,()=>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(o,s),t.mergeValidEvaluated(p,o),d?e.assign(d,(0,Ff._)`${l}`):t.setParams({ifClause:l})}}}};function BP(t,e){let r=t.schema[e];return r!==void 0&&!(0,VP.alwaysValidSchema)(t,r)}s0.default=HB});var WP=j(c0=>{"use strict";Object.defineProperty(c0,"__esModule",{value:!0});var BB=ot(),VB={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,BB.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};c0.default=VB});var KP=j(u0=>{"use strict";Object.defineProperty(u0,"__esModule",{value:!0});var GB=Bx(),WB=EP(),KB=Vx(),JB=TP(),XB=IP(),YB=OP(),QB=NP(),eV=Qx(),tV=MP(),rV=qP(),nV=LP(),iV=FP(),aV=ZP(),oV=HP(),sV=GP(),cV=WP();function uV(t=!1){let e=[nV.default,iV.default,aV.default,oV.default,sV.default,cV.default,QB.default,eV.default,YB.default,tV.default,rV.default];return t?e.push(WB.default,JB.default):e.push(GB.default,KB.default),e.push(XB.default),e}u0.default=uV});var JP=j(l0=>{"use strict";Object.defineProperty(l0,"__esModule",{value:!0});var Xt=Le(),lV={message:({schemaCode:t})=>(0,Xt.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Xt._)`{format: ${t}}`},dV={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:lV,code(t,e){let{gen:r,data:n,$data:i,schema:a,schemaCode:o,it:s}=t,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=s;if(!c.validateFormats)return;i?p():f();function p(){let h=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),_=r.const("fDef",(0,Xt._)`${h}[${o}]`),g=r.let("fType"),m=r.let("format");r.if((0,Xt._)`typeof ${_} == "object" && !(${_} instanceof RegExp)`,()=>r.assign(g,(0,Xt._)`${_}.type || "string"`).assign(m,(0,Xt._)`${_}.validate`),()=>r.assign(g,(0,Xt._)`"string"`).assign(m,_)),t.fail$data((0,Xt.or)(y(),v()));function y(){return c.strictSchema===!1?Xt.nil:(0,Xt._)`${o} && !${m}`}function v(){let b=l.$async?(0,Xt._)`(${_}.async ? await ${m}(${n}) : ${m}(${n}))`:(0,Xt._)`${m}(${n})`,S=(0,Xt._)`(typeof ${m} == "function" ? ${b} : ${m}.test(${n}))`;return(0,Xt._)`${m} && ${m} !== true && ${g} === ${e} && !${S}`}}function f(){let h=d.formats[a];if(!h){y();return}if(h===!0)return;let[_,g,m]=v(h);_===e&&t.pass(b());function y(){if(c.strictSchema===!1){d.logger.warn(S());return}throw new Error(S());function S(){return`unknown format "${a}" ignored in schema at path "${u}"`}}function v(S){let x=S instanceof RegExp?(0,Xt.regexpCode)(S):c.code.formats?(0,Xt._)`${c.code.formats}${(0,Xt.getProperty)(a)}`:void 0,w=r.scopeValue("formats",{key:a,ref:S,code:x});return typeof S=="object"&&!(S instanceof RegExp)?[S.type||"string",S.validate,(0,Xt._)`${w}.validate`]:["string",S,w]}function b(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Xt._)`await ${m}(${n})`}return typeof g=="function"?(0,Xt._)`${m}(${n})`:(0,Xt._)`${m}.test(${n})`}}}};l0.default=dV});var XP=j(d0=>{"use strict";Object.defineProperty(d0,"__esModule",{value:!0});var pV=JP(),fV=[pV.default];d0.default=fV});var YP=j(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});ds.contentVocabulary=ds.metadataVocabulary=void 0;ds.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ds.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var eR=j(p0=>{"use strict";Object.defineProperty(p0,"__esModule",{value:!0});var mV=sP(),hV=xP(),gV=KP(),vV=XP(),QP=YP(),yV=[mV.default,hV.default,(0,gV.default)(),vV.default,QP.metadataVocabulary,QP.contentVocabulary];p0.default=yV});var rR=j(Zf=>{"use strict";Object.defineProperty(Zf,"__esModule",{value:!0});Zf.DiscrError=void 0;var tR;(function(t){t.Tag="tag",t.Mapping="mapping"})(tR||(Zf.DiscrError=tR={}))});var iR=j(m0=>{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});var ps=Le(),f0=rR(),nR=$f(),_V=Qu(),bV=ot(),xV={message:({params:{discrError:t,tagName:e}})=>t===f0.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,ps._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},SV={keyword:"discriminator",type:"object",schemaType:"object",error:xV,code(t){let{gen:e,data:r,schema:n,parentSchema:i,it:a}=t,{oneOf:o}=i;if(!a.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(!o)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,ps._)`${r}${(0,ps.getProperty)(s)}`);e.if((0,ps._)`typeof ${u} == "string"`,()=>l(),()=>t.error(!1,{discrError:f0.DiscrError.Tag,tag:u,tagName:s})),t.ok(c);function l(){let f=p();e.if(!1);for(let h in f)e.elseIf((0,ps._)`${u} === ${h}`),e.assign(c,d(f[h]));e.else(),t.error(!1,{discrError:f0.DiscrError.Mapping,tag:u,tagName:s}),e.endIf()}function d(f){let h=e.name("valid"),_=t.subschema({keyword:"oneOf",schemaProp:f},h);return t.mergeEvaluated(_,ps.Name),h}function p(){var f;let h={},_=m(i),g=!0;for(let b=0;b{wV.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 g0=j((At,h0)=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.MissingRefError=At.ValidationError=At.CodeGen=At.Name=At.nil=At.stringify=At.str=At._=At.KeywordCxt=At.Ajv=void 0;var $V=tP(),EV=eR(),kV=iR(),oR=aR(),TV=["/properties"],Hf="http://json-schema.org/draft-07/schema",fs=class extends $V.default{_addVocabularies(){super._addVocabularies(),EV.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(kV.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(oR,TV):oR;this.addMetaSchema(e,Hf,!1),this.refs["http://json-schema.org/schema"]=Hf}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Hf)?Hf:void 0)}};At.Ajv=fs;h0.exports=At=fs;h0.exports.Ajv=fs;Object.defineProperty(At,"__esModule",{value:!0});At.default=fs;var IV=Yu();Object.defineProperty(At,"KeywordCxt",{enumerable:!0,get:function(){return IV.KeywordCxt}});var ms=Le();Object.defineProperty(At,"_",{enumerable:!0,get:function(){return ms._}});Object.defineProperty(At,"str",{enumerable:!0,get:function(){return ms.str}});Object.defineProperty(At,"stringify",{enumerable:!0,get:function(){return ms.stringify}});Object.defineProperty(At,"nil",{enumerable:!0,get:function(){return ms.nil}});Object.defineProperty(At,"Name",{enumerable:!0,get:function(){return ms.Name}});Object.defineProperty(At,"CodeGen",{enumerable:!0,get:function(){return ms.CodeGen}});var PV=Sf();Object.defineProperty(At,"ValidationError",{enumerable:!0,get:function(){return PV.default}});var RV=Qu();Object.defineProperty(At,"MissingRefError",{enumerable:!0,get:function(){return RV.default}})});var mR=j(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.formatNames=ci.fastFormats=ci.fullFormats=void 0;function si(t,e){return{validate:t,compare:e}}ci.fullFormats={date:si(lR,b0),time:si(y0(!0),x0),"date-time":si(sR(!0),pR),"iso-time":si(y0(),dR),"iso-date-time":si(sR(),fR),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:MV,"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:ZV,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:DV,int32:{type:"number",validate:qV},int64:{type:"number",validate:LV},float:{type:"number",validate:uR},double:{type:"number",validate:uR},password:!0,binary:!0};ci.fastFormats={...ci.fullFormats,date:si(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,b0),time:si(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,x0),"date-time":si(/^\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,pR),"iso-time":si(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,dR),"iso-date-time":si(/^\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,fR),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};ci.formatNames=Object.keys(ci.fullFormats);function OV(t){return t%4===0&&(t%100!==0||t%400===0)}var CV=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,NV=[0,31,28,31,30,31,30,31,31,30,31,30,31];function lR(t){let e=CV.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&&OV(r)?29:NV[n])}function b0(t,e){if(t&&e)return t>e?1:t23||l>59||t&&!s)return!1;if(i<=23&&a<=59&&o<60)return!0;let d=a-l*c,p=i-u*c-(d<0?1:0);return(p===23||p===-1)&&(d===59||d===-1)&&o<61}}function x0(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 dR(t,e){if(!(t&&e))return;let r=v0.exec(t),n=v0.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=zV}function LV(t){return Number.isInteger(t)}function uR(){return!0}var FV=/[^\\]\\Z/;function ZV(t){if(FV.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var hR=j(hs=>{"use strict";Object.defineProperty(hs,"__esModule",{value:!0});hs.formatLimitDefinition=void 0;var HV=g0(),Ln=Le(),ca=Ln.operators,Bf={formatMaximum:{okStr:"<=",ok:ca.LTE,fail:ca.GT},formatMinimum:{okStr:">=",ok:ca.GTE,fail:ca.LT},formatExclusiveMaximum:{okStr:"<",ok:ca.LT,fail:ca.GTE},formatExclusiveMinimum:{okStr:">",ok:ca.GT,fail:ca.LTE}},BV={message:({keyword:t,schemaCode:e})=>(0,Ln.str)`should be ${Bf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Ln._)`{comparison: ${Bf[t].okStr}, limit: ${e}}`};hs.formatLimitDefinition={keyword:Object.keys(Bf),type:"string",schemaType:"string",$data:!0,error:BV,code(t){let{gen:e,data:r,schemaCode:n,keyword:i,it:a}=t,{opts:o,self:s}=a;if(!o.validateFormats)return;let c=new HV.KeywordCxt(a,s.RULES.all.format.definition,"format");c.$data?u():l();function u(){let p=e.scopeValue("formats",{ref:s.formats,code:o.code.formats}),f=e.const("fmt",(0,Ln._)`${p}[${c.schemaCode}]`);t.fail$data((0,Ln.or)((0,Ln._)`typeof ${f} != "object"`,(0,Ln._)`${f} instanceof RegExp`,(0,Ln._)`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(`"${i}": format "${p}" does not define "compare" function`);let h=e.scopeValue("formats",{key:p,ref:f,code:o.code.formats?(0,Ln._)`${o.code.formats}${(0,Ln.getProperty)(p)}`:void 0});t.fail$data(d(h))}function d(p){return(0,Ln._)`${p}.compare(${r}, ${n}) ${Bf[i].fail} 0`}},dependencies:["format"]};var VV=t=>(t.addKeyword(hs.formatLimitDefinition),t);hs.default=VV});var _R=j((fl,yR)=>{"use strict";Object.defineProperty(fl,"__esModule",{value:!0});var gs=mR(),GV=hR(),S0=Le(),gR=new S0.Name("fullFormats"),WV=new S0.Name("fastFormats"),w0=(t,e={keywords:!0})=>{if(Array.isArray(e))return vR(t,e,gs.fullFormats,gR),t;let[r,n]=e.mode==="fast"?[gs.fastFormats,WV]:[gs.fullFormats,gR],i=e.formats||gs.formatNames;return vR(t,i,r,n),e.keywords&&(0,GV.default)(t),t};w0.get=(t,e="full")=>{let n=(e==="fast"?gs.fastFormats:gs.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function vR(t,e,r,n){var i,a;(i=(a=t.opts.code).formats)!==null&&i!==void 0||(a.formats=(0,S0._)`require("ajv-formats/dist/formats").${n}`);for(let o of e)t.addFormat(o,r[o])}yR.exports=fl=w0;Object.defineProperty(fl,"__esModule",{value:!0});fl.default=w0});var IR=j((Awe,TR)=>{TR.exports=kR;kR.sync=YV;var $R=require("fs");function XV(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{CR.exports=RR;RR.sync=QV;var PR=require("fs");function RR(t,e,r){PR.stat(t,function(n,i){r(n,n?!1:OR(i,e))})}function QV(t,e){return OR(PR.statSync(t),e)}function OR(t,e){return t.isFile()&&e7(t,e)}function e7(t,e){var r=t.mode,n=t.uid,i=t.gid,a=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),s=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),l=s|c,d=r&u||r&c&&i===o||r&s&&n===a||r&l&&a===0;return d}});var AR=j((zwe,jR)=>{var Dwe=require("fs"),Kf;process.platform==="win32"||global.TESTING_WINDOWS?Kf=IR():Kf=NR();jR.exports=$0;$0.sync=t7;function $0(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){$0(t,e||{},function(a,o){a?i(a):n(o)})})}Kf(t,e||{},function(n,i){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,i=!1),r(n,i)})}function t7(t,e){try{return Kf.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var FR=j((Uwe,LR)=>{var ys=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MR=require("path"),r7=ys?";":":",DR=AR(),zR=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),UR=(t,e)=>{let r=e.colon||r7,n=t.match(/\//)||ys&&t.match(/\\/)?[""]:[...ys?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],i=ys?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",a=ys?i.split(r):[""];return ys&&t.indexOf(".")!==-1&&a[0]!==""&&a.unshift(""),{pathEnv:n,pathExt:a,pathExtExe:i}},qR=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:i,pathExtExe:a}=UR(t,e),o=[],s=u=>new Promise((l,d)=>{if(u===n.length)return e.all&&o.length?l(o):d(zR(t));let p=n[u],f=/^".*"$/.test(p)?p.slice(1,-1):p,h=MR.join(f,t),_=!f&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;l(c(_,u,0))}),c=(u,l,d)=>new Promise((p,f)=>{if(d===i.length)return p(s(l+1));let h=i[d];DR(u+h,{pathExt:a},(_,g)=>{if(!_&&g)if(e.all)o.push(u+h);else return p(u+h);return p(c(u,l,d+1))})});return r?s(0).then(u=>r(null,u),r):s(0)},n7=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:i}=UR(t,e),a=[];for(let o=0;o{"use strict";var ZR=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};E0.exports=ZR;E0.exports.default=ZR});var WR=j((Lwe,GR)=>{"use strict";var BR=require("path"),i7=FR(),a7=HR();function VR(t,e){let r=t.options.env||process.env,n=process.cwd(),i=t.options.cwd!=null,a=i&&process.chdir!==void 0&&!process.chdir.disabled;if(a)try{process.chdir(t.options.cwd)}catch{}let o;try{o=i7.sync(t.command,{path:r[a7({env:r})],pathExt:e?BR.delimiter:void 0})}catch{}finally{a&&process.chdir(n)}return o&&(o=BR.resolve(i?t.options.cwd:"",o)),o}function o7(t){return VR(t)||VR(t,!0)}GR.exports=o7});var KR=j((Fwe,T0)=>{"use strict";var k0=/([()\][%!^"`<>&|;, *?])/g;function s7(t){return t=t.replace(k0,"^$1"),t}function c7(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(k0,"^$1"),e&&(t=t.replace(k0,"^$1")),t}T0.exports.command=s7;T0.exports.argument=c7});var XR=j((Zwe,JR)=>{"use strict";JR.exports=/^#!(.*)/});var QR=j((Hwe,YR)=>{"use strict";var u7=XR();YR.exports=(t="")=>{let e=t.match(u7);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return i==="env"?n:n?`${i} ${n}`:i}});var tO=j((Bwe,eO)=>{"use strict";var I0=require("fs"),l7=QR();function d7(t){let r=Buffer.alloc(150),n;try{n=I0.openSync(t,"r"),I0.readSync(n,r,0,150,0),I0.closeSync(n)}catch{}return l7(r.toString())}eO.exports=d7});var aO=j((Vwe,iO)=>{"use strict";var p7=require("path"),rO=WR(),nO=KR(),f7=tO(),m7=process.platform==="win32",h7=/\.(?:com|exe)$/i,g7=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function v7(t){t.file=rO(t);let e=t.file&&f7(t.file);return e?(t.args.unshift(t.file),t.command=e,rO(t)):t.file}function y7(t){if(!m7)return t;let e=v7(t),r=!h7.test(e);if(t.options.forceShell||r){let n=g7.test(e);t.command=p7.normalize(t.command),t.command=nO.command(t.command),t.args=t.args.map(a=>nO.argument(a,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 _7(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:y7(n)}iO.exports=_7});var cO=j((Gwe,sO)=>{"use strict";var P0=process.platform==="win32";function R0(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 b7(t,e){if(!P0)return;let r=t.emit;t.emit=function(n,i){if(n==="exit"){let a=oO(i,e);if(a)return r.call(t,"error",a)}return r.apply(t,arguments)}}function oO(t,e){return P0&&t===1&&!e.file?R0(e.original,"spawn"):null}function x7(t,e){return P0&&t===1&&!e.file?R0(e.original,"spawnSync"):null}sO.exports={hookChildProcess:b7,verifyENOENT:oO,verifyENOENTSync:x7,notFoundError:R0}});var dO=j((Wwe,_s)=>{"use strict";var uO=require("child_process"),O0=aO(),C0=cO();function lO(t,e,r){let n=O0(t,e,r),i=uO.spawn(n.command,n.args,n.options);return C0.hookChildProcess(i,n),i}function S7(t,e,r){let n=O0(t,e,r),i=uO.spawnSync(n.command,n.args,n.options);return i.error=i.error||C0.verifyENOENTSync(i.status,n),i}_s.exports=lO;_s.exports.spawn=lO;_s.exports.sync=S7;_s.exports._parse=O0;_s.exports._enoent=C0});var hO,gO,vO=Ht(()=>{"use strict";hO="bugfix,feature,refactor,discovery,decision,change",gO="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off"});var bO={};Cn(bO,{SettingsDefaultsManager:()=>Fe});var xs,yO,_O,Fe,Fr=Ht(()=>{"use strict";xs=require("fs"),yO=require("path"),_O=require("os");vO();Pe();Fe=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_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,yO.join)((0,_O.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:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:hO,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:gO,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,xs.existsSync)(e))return this.getAllDefaults();let r=(0,xs.readFileSync)(e,"utf-8"),n=JSON.parse(r),i=n;if(n.env&&typeof n.env=="object"){i=n.env;try{(0,xs.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),k.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(o){k.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},o)}}let a={...this.DEFAULTS};for(let o of Object.keys(this.DEFAULTS))i[o]!==void 0&&(a[o]=i[o]);return a}catch(r){return k.warn("SETTINGS","Failed to load settings, using defaults",{settingsPath:e},r),this.getAllDefaults()}}}});var Ss,Xf,N0,j0,k,Pe=Ht(()=>{"use strict";Fr();Ss=require("fs"),Xf=require("path"),N0=(a=>(a[a.DEBUG=0]="DEBUG",a[a.INFO=1]="INFO",a[a.WARN=2]="WARN",a[a.ERROR=3]="ERROR",a[a.SILENT=4]="SILENT",a))(N0||{}),j0=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let e=Fe.get("CLAUDE_MEM_DATA_DIR"),r=(0,Xf.join)(e,"logs");(0,Ss.existsSync)(r)||(0,Ss.mkdirSync)(r,{recursive:!0});let n=new Date().toISOString().split("T")[0];this.logFilePath=(0,Xf.join)(r,`claude-mem-${n}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}getLevel(){if(this.level===null)try{let e=Fe.get("CLAUDE_MEM_DATA_DIR"),r=(0,Xf.join)(e,"settings.json"),i=Fe.loadFromFile(r).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=N0[i]??1}catch(e){console.error("[LOGGER] Failed to load settings, using INFO level:",e),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=typeof r=="string"?JSON.parse(r):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"),a=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),s=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${i} ${a}:${o}:${s}.${c}`}log(e,r,n,i,a){if(e0&&(d=` {${Object.entries(y).map(([v,g])=>`${v}=${g}`).join(", ")}}`)}let p=`[${o}] [${s}] [${c}] ${u}${n}${d}${l}`;if(this.logFilePath)try{(0,ji.appendFileSync)(this.logFilePath,p+` +`+JSON.stringify(a,null,2):l=" "+this.formatData(a));let d="";if(i){let{sessionId:f,memorySessionId:h,correlationId:_,...g}=i;Object.keys(g).length>0&&(d=` {${Object.entries(g).map(([y,v])=>`${y}=${v}`).join(", ")}}`)}let p=`[${o}] [${s}] [${c}] ${u}${n}${d}${l}`;if(this.logFilePath)try{(0,Ss.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,a=""){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),a}},T=new C0});var gR,vR,yR=Gt(()=>{"use strict";gR="bugfix,feature,refactor,discovery,decision,change",vR="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off"});var bR={};Rn(bR,{SettingsDefaultsManager:()=>nt});var ci,Kf,_R,nt,yn=Gt(()=>{"use strict";ci=require("fs"),Kf=require("path"),_R=require("os");yR();nt=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_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,Kf.join)((0,_R.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:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:gR,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:vR,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",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"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,ci.existsSync)(e)){let o=this.getAllDefaults();try{let s=(0,Kf.dirname)(e);(0,ci.existsSync)(s)||(0,ci.mkdirSync)(s,{recursive:!0}),(0,ci.writeFileSync)(e,JSON.stringify(o,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 o}let r=(0,ci.readFileSync)(e,"utf-8"),n=JSON.parse(r),i=n;if(n.env&&typeof n.env=="object"){i=n.env;try{(0,ci.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 a={...this.DEFAULTS};for(let o of Object.keys(this.DEFAULTS))i[o]!==void 0&&(a[o]=i[o]);return a}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.getAllDefaults()}}}});var ui=j((u$e,qR)=>{var $7=require("path").relative;qR.exports=P7;var E7=process.cwd();function DR(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),i=0;i0}function R7(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return DR(e,t)}function C7(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return DR(e,t)}function tm(t,e){var r=O7(process,"deprecation");if(!(!r&&this._ignored)){var n,i,a,o,s=0,c=!1,u=rm(),l=this._file;for(e?(o=e,a=xs(u[1]),a.name=o.name,l=a[0]):(s=2,o=xs(u[s]),a=o);s",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 zR(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 N7(t,e,r){var n=new Date().toUTCString(),i=n+" "+this._namespace+" deprecated "+t;if(this._traced){for(var a=0;a{var R7=require("path").relative;LO.exports=A7;var O7=process.cwd();function UO(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),i=0;i0}function D7(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return UO(e,t)}function z7(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return UO(e,t)}function nm(t,e){var r=M7(process,"deprecation");if(!(!r&&this._ignored)){var n,i,a,o,s=0,c=!1,u=im(),l=this._file;for(e?(o=e,a=$s(u[1]),a.name=o.name,l=a[0]):(s=2,o=$s(u[s]),a=o);s",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 zO(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 U7(t,e,r){var n=new Date().toUTCString(),i=n+" "+this._namespace+" deprecated "+t;if(this._traced){for(var a=0;a{"use strict";nm.exports=L7;nm.exports.format=LR;nm.exports.parse=FR;var D7=/\B(?=(\d{3})+(?!\d))/g,U7=/(?:\.0*|(\.[^0]+)0+)$/,la={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},q7=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function L7(t,e){return typeof t=="string"?FR(t):typeof t=="number"?LR(t,e):null}function LR(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),n=e&&e.thousandsSeparator||"",i=e&&e.unitSeparator||"",a=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,o=!!(e&&e.fixedDecimals),s=e&&e.unit||"";(!s||!la[s.toLowerCase()])&&(r>=la.pb?s="PB":r>=la.tb?s="TB":r>=la.gb?s="GB":r>=la.mb?s="MB":r>=la.kb?s="KB":s="B");var c=t/la[s.toLowerCase()],u=c.toFixed(a);return o||(u=u.replace(U7,"$1")),n&&(u=u.split(".").map(function(l,d){return d===0?l.replace(D7,n):l}).join(".")),u+i+s}function FR(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=q7.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(la[n]*r)}});var hl=j(U0=>{"use strict";var ZR=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,F7=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,HR=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Z7=/\\([\u000b\u0020-\u00ff])/g,H7=/([\\"])/g,BR=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;U0.format=B7;U0.parse=V7;function B7(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!BR.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var i,a=Object.keys(e).sort(),o=0;o0&&!F7.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(H7,"\\$1")+'"'}function K7(t){this.parameters=Object.create(null),this.type=t}});var gl=j((p$e,VR)=>{"use strict";VR.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?J7:X7);function J7(t,e){return t.__proto__=e,t}function X7(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var GR=j((f$e,Y7)=>{Y7.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 vl=j((m$e,KR)=>{"use strict";var q0=GR();KR.exports=Zn;Zn.message=q0;Zn.code=Q7(q0);Zn.codes=eG(q0);Zn.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};Zn.empty={204:!0,205:!0,304:!0};Zn.retry={502:!0,503:!0,504:!0};function Q7(t){var e={};return Object.keys(t).forEach(function(n){var i=t[n],a=Number(n);e[i.toLowerCase()]=a}),e}function eG(t){return Object.keys(t).map(function(r){return Number(r)})}function tG(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(Zn.code,e))throw new Error('invalid status message: "'+t+'"');return Zn.code[e]}function WR(t){if(!Object.prototype.hasOwnProperty.call(Zn.message,t))throw new Error("invalid status code: "+t);return Zn.message[t]}function Zn(t){if(typeof t=="number")return WR(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?tG(t):WR(e)}});var JR=j((h$e,L0)=>{typeof Object.create=="function"?L0.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:L0.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 XR=j((g$e,Z0)=>{try{if(F0=require("util"),typeof F0.inherits!="function")throw"";Z0.exports=F0.inherits}catch{Z0.exports=JR()}var F0});var QR=j((v$e,YR)=>{"use strict";YR.exports=rG;function rG(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var eo=j((y$e,Qa)=>{"use strict";var nG=ui()("http-errors"),eC=gl(),ws=vl(),H0=XR(),iG=QR();Qa.exports=im;Qa.exports.HttpError=aG();Qa.exports.isHttpError=sG(Qa.exports.HttpError);uG(Qa.exports,ws.codes,Qa.exports.HttpError);function tC(t){return+(String(t).charAt(0)+"00")}function im(){for(var t,e,r=500,n={},i=0;i=600)&&nG("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!ws.message[r]&&(r<400||r>=600))&&(r=500);var s=im[r]||im[tC(r)];t||(t=s?new s(e):new Error(e||ws.message[r]),Error.captureStackTrace(t,im)),(!s||!(t instanceof s)||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 aG(){function t(){throw new TypeError("cannot construct abstract class")}return H0(t,Error),t}function oG(t,e,r){var n=nC(e);function i(a){var o=a??ws.message[r],s=new Error(o);return Error.captureStackTrace(s,i),eC(s,i.prototype),Object.defineProperty(s,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(s,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),s}return H0(i,t),rC(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!0,i}function sG(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 cG(t,e,r){var n=nC(e);function i(a){var o=a??ws.message[r],s=new Error(o);return Error.captureStackTrace(s,i),eC(s,i.prototype),Object.defineProperty(s,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(s,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),s}return H0(i,t),rC(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!1,i}function rC(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function uG(t,e,r){e.forEach(function(i){var a,o=iG(ws.message[i]);switch(tC(i)){case 400:a=oG(r,o,i);break;case 500:a=cG(r,o,i);break}a&&(t[i]=a,t[o]=a)})}function nC(t){return t.slice(-5)==="Error"?t:t+"Error"}});var aC=j((_$e,iC)=>{var yl=1e3,_l=yl*60,bl=_l*60,xl=bl*24,lG=xl*365.25;iC.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return dG(t);if(r==="number"&&isNaN(t)===!1)return e.long?fG(t):pG(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function dG(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*lG;case"days":case"day":case"d":return r*xl;case"hours":case"hour":case"hrs":case"hr":case"h":return r*bl;case"minutes":case"minute":case"mins":case"min":case"m":return r*_l;case"seconds":case"second":case"secs":case"sec":case"s":return r*yl;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function pG(t){return t>=xl?Math.round(t/xl)+"d":t>=bl?Math.round(t/bl)+"h":t>=_l?Math.round(t/_l)+"m":t>=yl?Math.round(t/yl)+"s":t+"ms"}function fG(t){return am(t,xl,"day")||am(t,bl,"hour")||am(t,_l,"minute")||am(t,yl,"second")||t+" ms"}function am(t,e,r){if(!(t{mt=oC.exports=V0.debug=V0.default=V0;mt.coerce=yG;mt.disable=gG;mt.enable=hG;mt.enabled=vG;mt.humanize=aC();mt.names=[];mt.skips=[];mt.formatters={};var B0;function mG(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return mt.colors[Math.abs(e)%mt.colors.length]}function V0(t){function e(){if(e.enabled){var r=e,n=+new Date,i=n-(B0||n);r.diff=i,r.prev=B0,r.curr=n,B0=n;for(var a=new Array(arguments.length),o=0;o{Rr=cC.exports=G0();Rr.log=xG;Rr.formatArgs=bG;Rr.save=SG;Rr.load=sC;Rr.useColors=_G;Rr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:wG();Rr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function _G(){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+)/)}Rr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function bG(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Rr.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(a){a!=="%%"&&(n++,a==="%c"&&(i=n))}),t.splice(i,0,r)}}function xG(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function SG(t){try{t==null?Rr.storage.removeItem("debug"):Rr.storage.debug=t}catch{}}function sC(){var t;try{t=Rr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Rr.enable(sC());function wG(){try{return window.localStorage}catch{}}});var fC=j((ar,pC)=>{var lC=require("tty"),Sl=require("util");ar=pC.exports=G0();ar.init=OG;ar.log=TG;ar.formatArgs=kG;ar.save=IG;ar.load=dC;ar.useColors=EG;ar.colors=[6,2,3,4,5,1];ar.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,a){return a.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 $s=parseInt(process.env.DEBUG_FD,10)||2;$s!==1&&$s!==2&&Sl.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 $G=$s===1?process.stdout:$s===2?process.stderr:PG($s);function EG(){return"colors"in ar.inspectOpts?!!ar.inspectOpts.colors:lC.isatty($s)}ar.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Sl.inspect(t,this.inspectOpts).split(` -`).map(function(e){return e.trim()}).join(" ")};ar.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Sl.inspect(t,this.inspectOpts)};function kG(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,nm,this,e,i);return a}function Z7(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,a=im(),o=$s(a[1]);o.name=e,"value"in n&&(n=C7(t,e,r));var s=n.get,c=n.set;typeof s=="function"&&(n.get=function(){return nm.call(i,r,o),s.apply(this,arguments)}),typeof c=="function"&&(n.set=function(){return nm.call(i,r,o),c.apply(this,arguments)}),Object.defineProperty(t,e,n)}function qO(t,e,r){var n=new Error,i;return Object.defineProperty(n,"constructor",{value:qO}),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=j7.call(this,r)},set:function(o){i=o}}),n}});var Es=j((S$e,am)=>{"use strict";am.exports=G7;am.exports.format=FO;am.exports.parse=ZO;var H7=/\B(?=(\d{3})+(?!\d))/g,B7=/(?:\.0*|(\.[^0]+)0+)$/,ua={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},V7=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function G7(t,e){return typeof t=="string"?ZO(t):typeof t=="number"?FO(t,e):null}function FO(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),n=e&&e.thousandsSeparator||"",i=e&&e.unitSeparator||"",a=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,o=!!(e&&e.fixedDecimals),s=e&&e.unit||"";(!s||!ua[s.toLowerCase()])&&(r>=ua.pb?s="PB":r>=ua.tb?s="TB":r>=ua.gb?s="GB":r>=ua.mb?s="MB":r>=ua.kb?s="KB":s="B");var c=t/ua[s.toLowerCase()],u=c.toFixed(a);return o||(u=u.replace(B7,"$1")),n&&(u=u.split(".").map(function(l,d){return d===0?l.replace(H7,n):l}).join(".")),u+i+s}function ZO(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=V7.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(ua[n]*r)}});var yl=j(L0=>{"use strict";var HO=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,W7=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,BO=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,K7=/\\([\u000b\u0020-\u00ff])/g,J7=/([\\"])/g,VO=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;L0.format=X7;L0.parse=Y7;function X7(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!VO.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var i,a=Object.keys(e).sort(),o=0;o0&&!W7.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(J7,"\\$1")+'"'}function tG(t){this.parameters=Object.create(null),this.type=t}});var _l=j(($$e,GO)=>{"use strict";GO.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?rG:nG);function rG(t,e){return t.__proto__=e,t}function nG(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var WO=j((E$e,iG)=>{iG.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 bl=j((k$e,JO)=>{"use strict";var F0=WO();JO.exports=Zn;Zn.message=F0;Zn.code=aG(F0);Zn.codes=oG(F0);Zn.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};Zn.empty={204:!0,205:!0,304:!0};Zn.retry={502:!0,503:!0,504:!0};function aG(t){var e={};return Object.keys(t).forEach(function(n){var i=t[n],a=Number(n);e[i.toLowerCase()]=a}),e}function oG(t){return Object.keys(t).map(function(r){return Number(r)})}function sG(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(Zn.code,e))throw new Error('invalid status message: "'+t+'"');return Zn.code[e]}function KO(t){if(!Object.prototype.hasOwnProperty.call(Zn.message,t))throw new Error("invalid status code: "+t);return Zn.message[t]}function Zn(t){if(typeof t=="number")return KO(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?sG(t):KO(e)}});var XO=j((T$e,Z0)=>{typeof Object.create=="function"?Z0.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Z0.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 YO=j((I$e,B0)=>{try{if(H0=require("util"),typeof H0.inherits!="function")throw"";B0.exports=H0.inherits}catch{B0.exports=XO()}var H0});var eC=j((P$e,QO)=>{"use strict";QO.exports=cG;function cG(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var Qa=j((R$e,Ya)=>{"use strict";var uG=ui()("http-errors"),tC=_l(),ks=bl(),V0=YO(),lG=eC();Ya.exports=om;Ya.exports.HttpError=dG();Ya.exports.isHttpError=fG(Ya.exports.HttpError);hG(Ya.exports,ks.codes,Ya.exports.HttpError);function rC(t){return+(String(t).charAt(0)+"00")}function om(){for(var t,e,r=500,n={},i=0;i=600)&&uG("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!ks.message[r]&&(r<400||r>=600))&&(r=500);var s=om[r]||om[rC(r)];t||(t=s?new s(e):new Error(e||ks.message[r]),Error.captureStackTrace(t,om)),(!s||!(t instanceof s)||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 dG(){function t(){throw new TypeError("cannot construct abstract class")}return V0(t,Error),t}function pG(t,e,r){var n=iC(e);function i(a){var o=a??ks.message[r],s=new Error(o);return Error.captureStackTrace(s,i),tC(s,i.prototype),Object.defineProperty(s,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(s,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),s}return V0(i,t),nC(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!0,i}function fG(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 mG(t,e,r){var n=iC(e);function i(a){var o=a??ks.message[r],s=new Error(o);return Error.captureStackTrace(s,i),tC(s,i.prototype),Object.defineProperty(s,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(s,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),s}return V0(i,t),nC(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!1,i}function nC(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function hG(t,e,r){e.forEach(function(i){var a,o=lG(ks.message[i]);switch(rC(i)){case 400:a=pG(r,o,i);break;case 500:a=mG(r,o,i);break}a&&(t[i]=a,t[o]=a)})}function iC(t){return t.slice(-5)==="Error"?t:t+"Error"}});var oC=j((O$e,aC)=>{var xl=1e3,Sl=xl*60,wl=Sl*60,$l=wl*24,gG=$l*365.25;aC.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return vG(t);if(r==="number"&&isNaN(t)===!1)return e.long?_G(t):yG(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function vG(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*gG;case"days":case"day":case"d":return r*$l;case"hours":case"hour":case"hrs":case"hr":case"h":return r*wl;case"minutes":case"minute":case"mins":case"min":case"m":return r*Sl;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 yG(t){return t>=$l?Math.round(t/$l)+"d":t>=wl?Math.round(t/wl)+"h":t>=Sl?Math.round(t/Sl)+"m":t>=xl?Math.round(t/xl)+"s":t+"ms"}function _G(t){return sm(t,$l,"day")||sm(t,wl,"hour")||sm(t,Sl,"minute")||sm(t,xl,"second")||t+" ms"}function sm(t,e,r){if(!(t{ht=sC.exports=W0.debug=W0.default=W0;ht.coerce=$G;ht.disable=SG;ht.enable=xG;ht.enabled=wG;ht.humanize=oC();ht.names=[];ht.skips=[];ht.formatters={};var G0;function bG(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ht.colors[Math.abs(e)%ht.colors.length]}function W0(t){function e(){if(e.enabled){var r=e,n=+new Date,i=n-(G0||n);r.diff=i,r.prev=G0,r.curr=n,G0=n;for(var a=new Array(arguments.length),o=0;o{Or=uC.exports=K0();Or.log=TG;Or.formatArgs=kG;Or.save=IG;Or.load=cC;Or.useColors=EG;Or.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:PG();Or.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function EG(){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+)/)}Or.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function kG(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Or.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(a){a!=="%%"&&(n++,a==="%c"&&(i=n))}),t.splice(i,0,r)}}function TG(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function IG(t){try{t==null?Or.storage.removeItem("debug"):Or.storage.debug=t}catch{}}function cC(){var t;try{t=Or.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Or.enable(cC());function PG(){try{return window.localStorage}catch{}}});var mC=j((ar,fC)=>{var dC=require("tty"),El=require("util");ar=fC.exports=K0();ar.init=MG;ar.log=NG;ar.formatArgs=CG;ar.save=jG;ar.load=pC;ar.useColors=OG;ar.colors=[6,2,3,4,5,1];ar.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,a){return a.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 Ts=parseInt(process.env.DEBUG_FD,10)||2;Ts!==1&&Ts!==2&&El.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 RG=Ts===1?process.stdout:Ts===2?process.stderr:AG(Ts);function OG(){return"colors"in ar.inspectOpts?!!ar.inspectOpts.colors:dC.isatty(Ts)}ar.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,El.inspect(t,this.inspectOpts).split(` +`).map(function(e){return e.trim()}).join(" ")};ar.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,El.inspect(t,this.inspectOpts)};function CG(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+"+ar.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function TG(){return $G.write(Sl.format.apply(Sl,arguments)+` -`)}function IG(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function dC(){return process.env.DEBUG}function PG(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new lC.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 OG(t){t.inspectOpts={};for(var e=Object.keys(ar.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?W0.exports=uC():W0.exports=fC()});var K0=j((x$e,hC)=>{"use strict";var RG=require("events").EventEmitter,CG=require("fs").ReadStream,mC=require("stream"),to=require("zlib");hC.exports=NG;function NG(t,e){return UG(t)?jG(t):qG(t)?MG(t):zG(t)&&t.destroy(),DG(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",LG)),t}function jG(t){t.destroy(),typeof t.close=="function"&&t.on("open",ZG)}function AG(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function MG(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",FG)):t._binding.clear()):t._destroy&&t._destroy!==mC.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&AG(t)}function zG(t){return t instanceof mC&&typeof t.destroy=="function"}function DG(t){return t instanceof RG}function UG(t){return t instanceof CG}function qG(t){return t instanceof to.Gzip||t instanceof to.Gunzip||t instanceof to.Deflate||t instanceof to.DeflateRaw||t instanceof to.Inflate||t instanceof to.InflateRaw||t instanceof to.Unzip}function LG(){}function FG(){this._binding.clear()}function ZG(){typeof this.fd=="number"&&this.close()}});var ro=j((S$e,gC)=>{"use strict";var om=require("buffer"),Es=om.Buffer,bn={},xn;for(xn in om)om.hasOwnProperty(xn)&&(xn==="SlowBuffer"||xn==="Buffer"||(bn[xn]=om[xn]));var ks=bn.Buffer={};for(xn in Es)Es.hasOwnProperty(xn)&&(xn==="allocUnsafe"||xn==="allocUnsafeSlow"||(ks[xn]=Es[xn]));bn.Buffer.prototype=Es.prototype;(!ks.from||ks.from===Uint8Array.from)&&(ks.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 Es(t,e,r)});ks.alloc||(ks.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=Es(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));gC.exports=bn});var yC=j(Y0=>{"use strict";var vC="\uFEFF";Y0.PrependBOM=J0;function J0(t,e){this.encoder=t,this.addBOM=!0}J0.prototype.write=function(t){return this.addBOM&&(t=vC+t,this.addBOM=!1),this.encoder.write(t)};J0.prototype.end=function(){return this.encoder.end()};Y0.StripBOM=X0;function X0(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}X0.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===vC&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};X0.prototype.end=function(){return this.decoder.end()}});var xC=j(($$e,bC)=>{"use strict";var wl=ro().Buffer;bC.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:Q0};function Q0(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=tS:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=rS,wl.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=nS,this.defaultCharUnicode=e.defaultCharUnicode))}Q0.prototype.encoder=eS;Q0.prototype.decoder=_C;var sm=require("string_decoder").StringDecoder;sm.prototype.end||(sm.prototype.end=function(){});function _C(t,e){sm.call(this,e.enc)}_C.prototype=sm.prototype;function eS(t,e){this.enc=e.enc}eS.prototype.write=function(t){return wl.from(t,this.enc)};eS.prototype.end=function(){};function tS(t,e){this.prevStr=""}tS.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),wl.from(t,"base64")};tS.prototype.end=function(){return wl.from(this.prevStr,"base64")};function rS(t,e){}rS.prototype.write=function(t){for(var e=wl.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)};rS.prototype.end=function(){};function nS(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}nS.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,n=this.accBytes,i="",a=0;a0&&(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};nS.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var wC=j(uS=>{"use strict";var cm=ro().Buffer;uS.utf16be=um;function um(){}um.prototype.encoder=iS;um.prototype.decoder=aS;um.prototype.bomAware=!0;function iS(){}iS.prototype.write=function(t){for(var e=cm.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,a=Math.min(t.length-t.length%2,64),o=0;on?r="utf-16be":i{"use strict";var li=ro().Buffer;pm.utf7=lm;pm.unicode11utf7="utf7";function lm(t,e){this.iconv=e}lm.prototype.encoder=dS;lm.prototype.decoder=pS;lm.prototype.bomAware=!0;var HG=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function dS(t,e){this.iconv=e.iconv}dS.prototype.write=function(t){return li.from(t.replace(HG,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};dS.prototype.end=function(){};function pS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var BG=/[A-Za-z0-9\/+]/,fS=[];for($l=0;$l<256;$l++)fS[$l]=BG.test(String.fromCharCode($l));var $l,VG=43,no=45,lS=38;pS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,a=0;a0&&(t=this.iconv.decode(li.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};pm.utf7imap=dm;function dm(t,e){this.iconv=e}dm.prototype.encoder=mS;dm.prototype.decoder=hS;dm.prototype.bomAware=!0;function mS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=li.alloc(6),this.base64AccumIdx=0}mS.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,i=li.alloc(t.length*5+10),a=0,o=0;o0&&(a+=i.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),a),n=0),i[a++]=no,e=!1),e||(i[a++]=s,s===lS&&(i[a++]=no))):(e||(i[a++]=lS,e=!0),e&&(r[n++]=s>>8,r[n++]=s&255,n==r.length&&(a+=i.write(r.toString("base64").replace(/\//g,","),a),n=0)))}return this.inBase64=e,this.base64AccumIdx=n,i.slice(0,a)};mS.prototype.end=function(){var t=li.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++]=no,this.inBase64=!1),t.slice(0,e)};function hS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var $C=fS.slice();$C[44]=!0;hS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,a=0;a0&&(t=this.iconv.decode(li.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var TC=j(kC=>{"use strict";var fm=ro().Buffer;kC._sbcs=gS;function gS(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=fm.from(t.chars,"ucs2");for(var i=fm.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";IC.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 RC=j((P$e,OC)=>{"use strict";OC.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+"+ar.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function NG(){return RG.write(El.format.apply(El,arguments)+` +`)}function jG(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function pC(){return process.env.DEBUG}function AG(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new dC.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 MG(t){t.inspectOpts={};for(var e=Object.keys(ar.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?J0.exports=lC():J0.exports=mC()});var X0=j((N$e,gC)=>{"use strict";var DG=require("events").EventEmitter,zG=require("fs").ReadStream,hC=require("stream"),eo=require("zlib");gC.exports=UG;function UG(t,e){return BG(t)?qG(t):VG(t)?FG(t):ZG(t)&&t.destroy(),HG(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",GG)),t}function qG(t){t.destroy(),typeof t.close=="function"&&t.on("open",KG)}function LG(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function FG(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",WG)):t._binding.clear()):t._destroy&&t._destroy!==hC.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&LG(t)}function ZG(t){return t instanceof hC&&typeof t.destroy=="function"}function HG(t){return t instanceof DG}function BG(t){return t instanceof zG}function VG(t){return t instanceof eo.Gzip||t instanceof eo.Gunzip||t instanceof eo.Deflate||t instanceof eo.DeflateRaw||t instanceof eo.Inflate||t instanceof eo.InflateRaw||t instanceof eo.Unzip}function GG(){}function WG(){this._binding.clear()}function KG(){typeof this.fd=="number"&&this.close()}});var to=j((j$e,vC)=>{"use strict";var cm=require("buffer"),Is=cm.Buffer,xn={},Sn;for(Sn in cm)cm.hasOwnProperty(Sn)&&(Sn==="SlowBuffer"||Sn==="Buffer"||(xn[Sn]=cm[Sn]));var Ps=xn.Buffer={};for(Sn in Is)Is.hasOwnProperty(Sn)&&(Sn==="allocUnsafe"||Sn==="allocUnsafeSlow"||(Ps[Sn]=Is[Sn]));xn.Buffer.prototype=Is.prototype;(!Ps.from||Ps.from===Uint8Array.from)&&(Ps.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 Is(t,e,r)});Ps.alloc||(Ps.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=Is(t);return!e||e.length===0?n.fill(0):typeof r=="string"?n.fill(e,r):n.fill(e),n});if(!xn.kStringMaxLength)try{xn.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}xn.constants||(xn.constants={MAX_LENGTH:xn.kMaxLength},xn.kStringMaxLength&&(xn.constants.MAX_STRING_LENGTH=xn.kStringMaxLength));vC.exports=xn});var _C=j(eS=>{"use strict";var yC="\uFEFF";eS.PrependBOM=Y0;function Y0(t,e){this.encoder=t,this.addBOM=!0}Y0.prototype.write=function(t){return this.addBOM&&(t=yC+t,this.addBOM=!1),this.encoder.write(t)};Y0.prototype.end=function(){return this.encoder.end()};eS.StripBOM=Q0;function Q0(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}Q0.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===yC&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};Q0.prototype.end=function(){return this.decoder.end()}});var SC=j((M$e,xC)=>{"use strict";var kl=to().Buffer;xC.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:tS};function tS(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=nS:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=iS,kl.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=aS,this.defaultCharUnicode=e.defaultCharUnicode))}tS.prototype.encoder=rS;tS.prototype.decoder=bC;var um=require("string_decoder").StringDecoder;um.prototype.end||(um.prototype.end=function(){});function bC(t,e){um.call(this,e.enc)}bC.prototype=um.prototype;function rS(t,e){this.enc=e.enc}rS.prototype.write=function(t){return kl.from(t,this.enc)};rS.prototype.end=function(){};function nS(t,e){this.prevStr=""}nS.prototype.write=function(t){t=this.prevStr+t;var e=t.length-t.length%4;return this.prevStr=t.slice(e),t=t.slice(0,e),kl.from(t,"base64")};nS.prototype.end=function(){return kl.from(this.prevStr,"base64")};function iS(t,e){}iS.prototype.write=function(t){for(var e=kl.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)};iS.prototype.end=function(){};function aS(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}aS.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,n=this.accBytes,i="",a=0;a0&&(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};aS.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var $C=j(dS=>{"use strict";var lm=to().Buffer;dS.utf16be=dm;function dm(){}dm.prototype.encoder=oS;dm.prototype.decoder=sS;dm.prototype.bomAware=!0;function oS(){}oS.prototype.write=function(t){for(var e=lm.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,a=Math.min(t.length-t.length%2,64),o=0;on?r="utf-16be":i{"use strict";var li=to().Buffer;mm.utf7=pm;mm.unicode11utf7="utf7";function pm(t,e){this.iconv=e}pm.prototype.encoder=fS;pm.prototype.decoder=mS;pm.prototype.bomAware=!0;var JG=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function fS(t,e){this.iconv=e.iconv}fS.prototype.write=function(t){return li.from(t.replace(JG,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};fS.prototype.end=function(){};function mS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var XG=/[A-Za-z0-9\/+]/,hS=[];for(Tl=0;Tl<256;Tl++)hS[Tl]=XG.test(String.fromCharCode(Tl));var Tl,YG=43,ro=45,pS=38;mS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,a=0;a0&&(t=this.iconv.decode(li.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};mm.utf7imap=fm;function fm(t,e){this.iconv=e}fm.prototype.encoder=gS;fm.prototype.decoder=vS;fm.prototype.bomAware=!0;function gS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=li.alloc(6),this.base64AccumIdx=0}gS.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,i=li.alloc(t.length*5+10),a=0,o=0;o0&&(a+=i.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),a),n=0),i[a++]=ro,e=!1),e||(i[a++]=s,s===pS&&(i[a++]=ro))):(e||(i[a++]=pS,e=!0),e&&(r[n++]=s>>8,r[n++]=s&255,n==r.length&&(a+=i.write(r.toString("base64").replace(/\//g,","),a),n=0)))}return this.inBase64=e,this.base64AccumIdx=n,i.slice(0,a)};gS.prototype.end=function(){var t=li.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++]=ro,this.inBase64=!1),t.slice(0,e)};function vS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var EC=hS.slice();EC[44]=!0;vS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,a=0;a0&&(t=this.iconv.decode(li.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var IC=j(TC=>{"use strict";var hm=to().Buffer;TC._sbcs=yS;function yS(t,e){if(!t)throw new Error("SBCS codec is called without the data.");if(!t.chars||t.chars.length!==128&&t.chars.length!==256)throw new Error("Encoding '"+t.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(t.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);t.chars=r+t.chars}this.decodeBuf=hm.from(t.chars,"ucs2");for(var i=hm.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";PC.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 CC=j((L$e,OC)=>{"use strict";OC.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 jC=j(NC=>{"use strict";var Is=ro().Buffer;NC._dbcs=Mi;var Fr=-1,CC=-2,Sn=-10,di=-1e3,Ts=new Array(256),El=-1;for(mm=0;mm<256;mm++)Ts[mm]=Fr;var mm;function Mi(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]=Ts.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==Fr)r[e[n]]=di-this.decodeTables.length,this.decodeTables.push(r=Ts.slice(0));else if(i<=di)r=this.decodeTables[di-i];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};Mi.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)};Mi.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=Ts.slice(0)),this.encodeTable[e]};Mi.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),n=t&255;r[n]<=Sn?this.encodeTableSeq[Sn-r[n]][El]=e:r[n]==Fr&&(r[n]=e)};Mi.prototype._setEncodeSequence=function(t,e){var r=t[0],n=this._getEncodeBucket(r),i=r&255,a;n[i]<=Sn?a=this.encodeTableSeq[Sn-n[i]]:(a={},n[i]!==Fr&&(a[El]=n[i]),n[i]=Sn-this.encodeTableSeq.length,this.encodeTableSeq.push(a));for(var o=1;o=0?this._setEncodeChar(a,o):a<=di?this._fillEncodeTable(di-a,o<<8,r):a<=Sn&&this._setEncodeSequence(this.decodeTableSeq[Sn-a],o))}};function hm(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}hm.prototype.write=function(t){for(var e=Is.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,i=-1,a=0,o=0;;){if(i===-1){if(a==t.length)break;var s=t.charCodeAt(a++)}else{var s=i;i=-1}if(55296<=s&&s<57344)if(s<56320)if(r===-1){r=s;continue}else r=s,s=Fr;else r!==-1?(s=65536+(r-55296)*1024+(s-56320),r=-1):s=Fr;else r!==-1&&(i=s,s=Fr,r=-1);var c=Fr;if(n!==void 0&&s!=Fr){var u=n[s];if(typeof u=="object"){n=u;continue}else typeof u=="number"?c=u:u==null&&(u=n[El],u!==void 0&&(c=u,i=s));n=void 0}else if(s>=0){var l=this.encodeTable[s>>8];if(l!==void 0&&(c=l[s&255]),c<=Sn){n=this.encodeTableSeq[Sn-c];continue}if(c==Fr&&this.gb18030){var d=bS(this.gb18030.uChars,s);if(d!=-1){var c=this.gb18030.gbChars[d]+(s-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===Fr&&(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)};hm.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=Is.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[El];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)}};hm.prototype.findIdx=bS;function _S(t,e){this.nodeIdx=0,this.prevBuf=Is.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}_S.prototype.write=function(t){var e=Is.alloc(t.length*2),r=this.nodeIdx,n=this.prevBuf,i=this.prevBuf.length,a=-this.prevBuf.length,o;i>0&&(n=Is.concat([n,t.slice(0,10)]));for(var s=0,c=0;s=0?t[s]:n[s+i],o=this.decodeTables[r][u];if(!(o>=0))if(o===Fr)s=a,o=this.defaultCharUnicode.charCodeAt(0);else if(o===CC){var l=a>=0?t.slice(a,s+1):n.slice(a+i,s+1+i),d=(l[0]-129)*12600+(l[1]-48)*1260+(l[2]-129)*10+(l[3]-48),p=bS(this.gb18030.gbChars,d);o=this.gb18030.uChars[p]+d-this.gb18030.gbChars[p]}else if(o<=di){r=di-o;continue}else if(o<=Sn){for(var f=this.decodeTableSeq[Sn-o],h=0;h>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 _=55296+Math.floor(o/1024);e[c++]=_&255,e[c++]=_>>8,o=56320+o%1024}e[c++]=o&255,e[c++]=o>>8,r=0,a=s+1}return this.nodeIdx=r,this.prevBuf=a>=0?t.slice(a):n.slice(a+i),e.slice(0,c).toString("ucs2")};_S.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=Is.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function bS(t,e){if(t[0]>e)return-1;for(var r=0,n=t.length;r{GG.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 MC=j((C$e,WG)=>{WG.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 gm=j((N$e,KG)=>{KG.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 xS=j((j$e,JG)=>{JG.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 zC=j((A$e,XG)=>{XG.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 DC=j((M$e,YG)=>{YG.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 SS=j((z$e,QG)=>{QG.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 UC=j((D$e,eW)=>{eW.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 LC=j((U$e,qC)=>{"use strict";qC.exports={shiftjis:{type:"_dbcs",table:function(){return AC()},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 MC()},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 gm()}},gbk:{type:"_dbcs",table:function(){return gm().concat(xS())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return gm().concat(xS())},gb18030:function(){return zC()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return DC()}},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 SS()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return SS().concat(UC())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var HC=j((ZC,Ps)=>{"use strict";var FC=[xC(),wC(),EC(),TC(),PC(),RC(),jC(),LC()];for(vm=0;vm{"use strict";var BC=require("buffer").Buffer,_m=require("stream").Transform;VC.exports=function(t){t.encodeStream=function(r,n){return new io(t.getEncoder(r,n),n)},t.decodeStream=function(r,n){return new da(t.getDecoder(r,n),n)},t.supportsStreams=!0,t.IconvLiteEncoderStream=io,t.IconvLiteDecoderStream=da,t._collect=da.prototype.collect};function io(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,_m.call(this,e)}io.prototype=Object.create(_m.prototype,{constructor:{value:io}});io.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)}};io.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};io.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,BC.concat(e))}),this};function da(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",_m.call(this,e)}da.prototype=Object.create(_m.prototype,{constructor:{value:da}});da.prototype._transform=function(t,e,r){if(!BC.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)}};da.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};da.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 KC=j((L$e,WC)=>{"use strict";var Wt=require("buffer").Buffer;WC.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,s,c){return o=String(o||"utf8").toLowerCase(),Wt.isNativeEncoding(o)?e.SlowBufferToString.call(this,o,s,c):(typeof s>"u"&&(s=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(s,c),o))},e.SlowBufferWrite=i.prototype.write,i.prototype.write=function(o,s,c,u){if(isFinite(s))isFinite(c)||(u=c,c=void 0);else{var l=u;u=s,s=c,c=l}s=+s||0;var d=this.length-s;if(c?(c=+c,c>d&&(c=d)):c=d,u=String(u||"utf8").toLowerCase(),Wt.isNativeEncoding(u))return e.SlowBufferWrite.call(this,o,s,c,u);if(o.length>0&&(c<0||s<0))throw new RangeError("attempt to write beyond buffer bounds");var p=t.encode(o,u);return p.length"u"&&(s=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(s,c),o))},e.BufferWrite=Wt.prototype.write,Wt.prototype.write=function(o,s,c,u){var l=s,d=c,p=u;if(isFinite(s))isFinite(c)||(u=c,c=void 0);else{var f=u;u=s,s=c,c=f}if(u=String(u||"utf8").toLowerCase(),Wt.isNativeEncoding(u))return e.BufferWrite.call(this,o,l,d,p);s=+s||0;var h=this.length-s;if(c?(c=+c,c>h&&(c=h)):c=h,o.length>0&&(c<0||s<0))throw new RangeError("attempt to write beyond buffer bounds");var _=t.encode(o,u);return _.length{"use strict";var XC=ro().Buffer,YC=yC(),pt=QC.exports;pt.encodings=null;pt.defaultCharUnicode="\uFFFD";pt.defaultCharSingleByte="?";pt.encode=function(e,r,n){e=""+(e||"");var i=pt.getEncoder(r,n),a=i.write(e),o=i.end();return o&&o.length>0?XC.concat([a,o]):a};pt.decode=function(e,r,n){typeof e=="string"&&(pt.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),pt.skipDecodeWarning=!0),e=XC.from(""+(e||""),"binary"));var i=pt.getDecoder(r,n),a=i.write(e),o=i.end();return o?a+o:a};pt.encodingExists=function(e){try{return pt.getCodec(e),!0}catch{return!1}};pt.toEncoding=pt.encode;pt.fromEncoding=pt.decode;pt._codecDataCache={};pt.getCodec=function(e){pt.encodings||(pt.encodings=HC());for(var r=pt._canonicalizeEncoding(e),n={};;){var i=pt._codecDataCache[r];if(i)return i;var a=pt.encodings[r];switch(typeof a){case"string":r=a;break;case"object":for(var o in a)n[o]=a[o];n.encodingName||(n.encodingName=r),r=a.type;break;case"function":return n.encodingName||(n.encodingName=r),i=new a(n,pt),pt._codecDataCache[n.encodingName]=i,i;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};pt._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};pt.getEncoder=function(e,r){var n=pt.getCodec(e),i=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(i=new YC.PrependBOM(i,r)),i};pt.getDecoder=function(e,r){var n=pt.getCodec(e),i=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(i=new YC.StripBOM(i,r)),i};var JC=typeof process<"u"&&process.versions&&process.versions.node;JC&&(wS=JC.split(".").map(Number),(wS[0]>0||wS[1]>=10)&&GC()(pt),KC()(pt));var wS});var bm=j((Z$e,eN)=>{"use strict";eN.exports=rW;function tW(t){for(var e=t.listeners("data"),r=0;r{"use strict";var tN=lW(),nW=Ss(),ao=eo(),iW=$S(),aW=bm();nN.exports=cW;var oW=/^Encoding not recognized: /;function sW(t){if(!t)return null;try{return iW.getDecoder(t)}catch(e){throw oW.test(e.message)?ao(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function cW(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 a=i.encoding!==!0?i.encoding:"utf-8",o=nW.parse(i.limit),s=i.length!=null&&!isNaN(i.length)?parseInt(i.length,10):null;return n?rN(t,a,s,o,dW(n)):new Promise(function(u,l){rN(t,a,s,o,function(p,f){if(p)return l(p);u(f)})})}function uW(t){aW(t),typeof t.pause=="function"&&t.pause()}function rN(t,e,r,n,i){var a=!1,o=!0;if(n!==null&&r!==null&&r>n)return d(ao(413,"request entity too large",{expected:r,length:r,limit:n,type:"entity.too.large"}));var s=t._readableState;if(t._decoder||s&&(s.encoding||s.decoder))return d(ao(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return d(ao(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,u;try{u=sW(e)}catch(y){return d(y)}var l=u?"":[];t.on("aborted",p),t.on("close",_),t.on("data",f),t.on("end",h),t.on("error",h),o=!1;function d(){for(var y=new Array(arguments.length),m=0;mn?d(ao(413,"request entity too large",{limit:n,received:c,type:"entity.too.large"})):u?l+=u.write(y):l.push(y))}function h(y){if(!a){if(y)return d(y);if(r!==null&&c!==r)d(ao(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var m=u?l+(u.end()||""):Buffer.concat(l);d(null,m)}}}function _(){l=null,t.removeListener("aborted",p),t.removeListener("data",f),t.removeListener("end",h),t.removeListener("error",h),t.removeListener("close",_)}}function lW(){try{return require("async_hooks")}catch{return{}}}function dW(t){var e;return tN.AsyncResource&&(e=new tN.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var oN=j((B$e,aN)=>{"use strict";aN.exports=pW;function pW(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";ES.exports=hW;ES.exports.isFinished=uN;var sN=bW(),cN=oN(),mW=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function hW(t,e){return uN(t)!==!1?(mW(e,null,t),t):(vW(t,xW(e)),t)}function uN(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 gW(t,e){var r,n,i=!1;function a(s){r.cancel(),n.cancel(),i=!0,e(s)}r=n=cN([[t,"end","finish"]],a);function o(s){t.removeListener("socket",o),!i&&r===n&&(n=cN([[s,"error","close"]],a))}if(t.socket){o(t.socket);return}t.on("socket",o),t.socket===void 0&&_W(t,o)}function vW(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=yW(t),gW(t,r)),r.queue.push(e)}function yW(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 pa=eo(),SW=K0(),wW=iN(),lN=$S(),dN=kl(),$W=bm(),pN=require("zlib");fN.exports=EW;function EW(t,e,r,n,i,a){var o,s=a,c;t._body=!0;var u=s.encoding!==null?s.encoding:null,l=s.verify;try{c=kW(t,i,s.inflate),o=c.length,c.length=void 0}catch(d){return r(d)}if(s.length=o,s.encoding=l?null:u,s.encoding===null&&u!==null&&!lN.encodingExists(u))return r(pa(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}));i("read body"),wW(c,s,function(d,p){if(d){var f;d.type==="encoding.unsupported"?f=pa(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}):f=pa(400,d),c!==t&&($W(t),SW(c,!0)),TW(t,function(){r(pa(400,f))});return}if(l)try{i("verify body"),l(t,e,p,u)}catch(_){r(pa(403,_,{body:p,type:_.type||"entity.verify.failed"}));return}var h=p;try{i("parse body"),h=typeof p!="string"&&u!==null?lN.decode(p,u):p,t.body=n(h)}catch(_){r(pa(400,_,{body:h,type:_.type||"entity.parse.failed"}));return}r()})}function kW(t,e,r){var n=(t.headers["content-encoding"]||"identity").toLowerCase(),i=t.headers["content-length"],a;if(e('content-encoding "%s"',n),r===!1&&n!=="identity")throw pa(415,"content encoding unsupported",{encoding:n,type:"encoding.unsupported"});switch(n){case"deflate":a=pN.createInflate(),e("inflate body"),t.pipe(a);break;case"gzip":a=pN.createGunzip(),e("gunzip body"),t.pipe(a);break;case"identity":a=t,a.length=i;break;default:throw pa(415,'unsupported content encoding "'+n+'"',{encoding:n,type:"encoding.unsupported"})}return a}function TW(t,e){dN.isFinished(t)?e(null):(dN(t,e),t.resume())}});var vN=j(kS=>{var mN=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,IW=/^[\u0020-\u007e\u0080-\u00ff]+$/,gN=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,PW=/\\([\u0000-\u007f])/g,OW=/([\\"])/g,RW=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,hN=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,CW=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;kS.format=NW;kS.parse=jW;function NW(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||!hN.test(i))throw new TypeError("invalid type");if(!r||!RW.test(r))throw new TypeError("invalid subtype");var a=i+"/"+r;if(n){if(!hN.test(n))throw new TypeError("invalid suffix");a+="+"+n}if(e&&typeof e=="object")for(var o,s=Object.keys(e).sort(),c=0;c0&&!IW.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(OW,"\\$1")+'"'}function zW(t){var e=CW.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],n=e[2],i,a=n.lastIndexOf("+");a!==-1&&(i=n.substr(a+1),n=n.substr(0,a));var o={type:r,subtype:n,suffix:i};return o}});var yN=j((K$e,DW)=>{DW.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 bN=j((J$e,_N)=>{_N.exports=yN()});var TS=j(Zr=>{"use strict";var xm=bN(),UW=require("path").extname,xN=/^\s*([^;\s]*)(?:;|\s|$)/,qW=/^text\//i;Zr.charset=SN;Zr.charsets={lookup:SN};Zr.contentType=LW;Zr.extension=FW;Zr.extensions=Object.create(null);Zr.lookup=ZW;Zr.types=Object.create(null);HW(Zr.extensions,Zr.types);function SN(t){if(!t||typeof t!="string")return!1;var e=xN.exec(t),r=e&&xm[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&qW.test(e[1])?"UTF-8":!1}function LW(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?Zr.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=Zr.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function FW(t){if(!t||typeof t!="string")return!1;var e=xN.exec(t),r=e&&Zr.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function ZW(t){if(!t||typeof t!="string")return!1;var e=UW("x."+t).toLowerCase().substr(1);return e&&Zr.types[e]||!1}function HW(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(xm).forEach(function(i){var a=xm[i],o=a.extensions;if(!(!o||!o.length)){t[i]=o;for(var s=0;sl||u===l&&e[c].substr(0,12)==="application/"))continue}e[c]=i}}})}});var Rs=j((Y$e,Os)=>{"use strict";var wN=vN(),BW=TS();Os.exports=VW;Os.exports.is=$N;Os.exports.hasBody=EN;Os.exports.normalize=kN;Os.exports.match=TN;function $N(t,e){var r,n=e,i=WW(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 KW=Ss(),JW=hl(),XW=eo(),fa=_n()("body-parser:json"),YW=Tl(),PN=Rs();RN.exports=tK;var QW=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,IN="#",eK=/#+/g;function tK(t){var e=t||{},r=typeof e.limit!="number"?KW.parse(e.limit||"100kb"):e.limit,n=e.inflate!==!1,i=e.reviver,a=e.strict!==!1,o=e.type||"application/json",s=e.verify||!1;if(s!==!1&&typeof s!="function")throw new TypeError("option verify must be function");var c=typeof o!="function"?aK(o):o;function u(l){if(l.length===0)return{};if(a){var d=nK(l);if(d!=="{"&&d!=="[")throw fa("strict violation"),rK(l,d)}try{return fa("parse json"),JSON.parse(l,i)}catch(p){throw ON(p,{message:p.message,stack:p.stack})}}return function(d,p,f){if(d._body){fa("body already parsed"),f();return}if(d.body=d.body||{},!PN.hasBody(d)){fa("skip empty body"),f();return}if(fa("content-type %j",d.headers["content-type"]),!c(d)){fa("skip parsing"),f();return}var h=iK(d)||"utf-8";if(h.slice(0,4)!=="utf-"){fa("invalid charset"),f(XW(415,'unsupported charset "'+h.toUpperCase()+'"',{charset:h,type:"charset.unsupported"}));return}YW(d,p,f,u,fa,{encoding:h,inflate:n,limit:r,verify:s})}}function rK(t,e){var r=t.indexOf(e),n="";if(r!==-1){n=t.substring(0,r)+IN;for(var i=r+1;i{"use strict";var oK=Ss(),Il=_n()("body-parser:raw"),sK=Tl(),NN=Rs();jN.exports=cK;function cK(t){var e=t||{},r=e.inflate!==!1,n=typeof e.limit!="number"?oK.parse(e.limit||"100kb"):e.limit,i=e.type||"application/octet-stream",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?uK(i):i;function s(c){return c}return function(u,l,d){if(u._body){Il("body already parsed"),d();return}if(u.body=u.body||{},!NN.hasBody(u)){Il("skip empty body"),d();return}if(Il("content-type %j",u.headers["content-type"]),!o(u)){Il("skip parsing"),d();return}sK(u,l,d,s,Il,{encoding:null,inflate:r,limit:n,verify:a})}}function uK(t){return function(r){return!!NN(r,t)}}});var DN=j((tEe,zN)=>{"use strict";var lK=Ss(),dK=hl(),Pl=_n()("body-parser:text"),pK=Tl(),MN=Rs();zN.exports=fK;function fK(t){var e=t||{},r=e.defaultCharset||"utf-8",n=e.inflate!==!1,i=typeof e.limit!="number"?lK.parse(e.limit||"100kb"):e.limit,a=e.type||"text/plain",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var s=typeof a!="function"?hK(a):a;function c(u){return u}return function(l,d,p){if(l._body){Pl("body already parsed"),p();return}if(l.body=l.body||{},!MN.hasBody(l)){Pl("skip empty body"),p();return}if(Pl("content-type %j",l.headers["content-type"]),!s(l)){Pl("skip parsing"),p();return}var f=mK(l)||r;pK(l,d,p,c,Pl,{encoding:f,inflate:n,limit:i,verify:o})}}function mK(t){try{return(dK.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function hK(t){return function(r){return!!MN(r,t)}}});var oo=j((rEe,UN)=>{"use strict";UN.exports=TypeError});var LN=j((nEe,qN)=>{qN.exports=require("util").inspect});var jl=j((iEe,sj)=>{var zS=typeof Map=="function"&&Map.prototype,IS=Object.getOwnPropertyDescriptor&&zS?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,wm=zS&&IS&&typeof IS.get=="function"?IS.get:null,FN=zS&&Map.prototype.forEach,DS=typeof Set=="function"&&Set.prototype,PS=Object.getOwnPropertyDescriptor&&DS?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,$m=DS&&PS&&typeof PS.get=="function"?PS.get:null,ZN=DS&&Set.prototype.forEach,gK=typeof WeakMap=="function"&&WeakMap.prototype,Rl=gK?WeakMap.prototype.has:null,vK=typeof WeakSet=="function"&&WeakSet.prototype,Cl=vK?WeakSet.prototype.has:null,yK=typeof WeakRef=="function"&&WeakRef.prototype,HN=yK?WeakRef.prototype.deref:null,_K=Boolean.prototype.valueOf,bK=Object.prototype.toString,xK=Function.prototype.toString,SK=String.prototype.match,US=String.prototype.slice,ma=String.prototype.replace,wK=String.prototype.toUpperCase,BN=String.prototype.toLowerCase,ej=RegExp.prototype.test,VN=Array.prototype.concat,pi=Array.prototype.join,$K=Array.prototype.slice,GN=Math.floor,CS=typeof BigInt=="function"?BigInt.prototype.valueOf:null,OS=Object.getOwnPropertySymbols,NS=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Cs=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Nl=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Cs||!0)?Symbol.toStringTag:null,tj=Object.prototype.propertyIsEnumerable,WN=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function KN(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||ej.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-GN(-t):GN(t);if(n!==t){var i=String(n),a=US.call(e,i.length+1);return ma.call(i,r,"$&_")+"."+ma.call(ma.call(a,/([0-9]{3})/g,"$&_"),/_$/,"")}}return ma.call(e,r,"$&_")}var jS=LN(),JN=jS.custom,XN=ij(JN)?JN:null,rj={__proto__:null,double:'"',single:"'"},EK={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};sj.exports=function t(e,r,n,i){var a=r||{};if(zi(a,"quoteStyle")&&!zi(rj,a.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(zi(a,"maxStringLength")&&(typeof a.maxStringLength=="number"?a.maxStringLength<0&&a.maxStringLength!==1/0:a.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=zi(a,"customInspect")?a.customInspect:!0;if(typeof o!="boolean"&&o!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(zi(a,"indent")&&a.indent!==null&&a.indent!==" "&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(zi(a,"numericSeparator")&&typeof a.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var s=a.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 oj(e,a);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return s?KN(e,c):c}if(typeof e=="bigint"){var u=String(e)+"n";return s?KN(e,u):u}var l=typeof a.depth>"u"?5:a.depth;if(typeof n>"u"&&(n=0),n>=l&&l>0&&typeof e=="object")return AS(e)?"[Array]":"[Object]";var d=ZK(a,n);if(typeof i>"u")i=[];else if(aj(i,e)>=0)return"[Circular]";function p(B,U,Y){if(U&&(i=$K.call(i),i.push(U)),Y){var me={depth:a.depth};return zi(a,"quoteStyle")&&(me.quoteStyle=a.quoteStyle),t(B,me,n+1,i)}return t(B,a,n+1,i)}if(typeof e=="function"&&!YN(e)){var f=jK(e),h=Sm(e,p);return"[Function"+(f?": "+f:" (anonymous)")+"]"+(h.length>0?" { "+pi.call(h,", ")+" }":"")}if(ij(e)){var _=Cs?ma.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):NS.call(e);return typeof e=="object"&&!Cs?Ol(_):_}if(qK(e)){for(var y="<"+BN.call(String(e.nodeName)),m=e.attributes||[],v=0;v",y}if(AS(e)){if(e.length===0)return"[]";var g=Sm(e,p);return d&&!FK(g)?"["+MS(g,d)+"]":"[ "+pi.call(g,", ")+" ]"}if(IK(e)){var b=Sm(e,p);return!("cause"in Error.prototype)&&"cause"in e&&!tj.call(e,"cause")?"{ ["+String(e)+"] "+pi.call(VN.call("[cause]: "+p(e.cause),b),", ")+" }":b.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+pi.call(b,", ")+" }"}if(typeof e=="object"&&o){if(XN&&typeof e[XN]=="function"&&jS)return jS(e,{depth:l-n});if(o!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(AK(e)){var S=[];return FN&&FN.call(e,function(B,U){S.push(p(U,e,!0)+" => "+p(B,e))}),QN("Map",wm.call(e),S,d)}if(DK(e)){var x=[];return ZN&&ZN.call(e,function(B){x.push(p(B,e))}),QN("Set",$m.call(e),x,d)}if(MK(e))return RS("WeakMap");if(UK(e))return RS("WeakSet");if(zK(e))return RS("WeakRef");if(OK(e))return Ol(p(Number(e)));if(CK(e))return Ol(p(CS.call(e)));if(RK(e))return Ol(_K.call(e));if(PK(e))return Ol(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(!TK(e)&&!YN(e)){var w=Sm(e,p),E=WN?WN(e)===Object.prototype:e instanceof Object||e.constructor===Object,O=e instanceof Object?"":"null prototype",A=!E&&Nl&&Object(e)===e&&Nl in e?US.call(ha(e),8,-1):O?"Object":"",M=E||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",q=M+(A||O?"["+pi.call(VN.call([],A||[],O||[]),": ")+"] ":"");return w.length===0?q+"{}":d?q+"{"+MS(w,d)+"}":q+"{ "+pi.call(w,", ")+" }"}return String(e)};function nj(t,e,r){var n=r.quoteStyle||e,i=rj[n];return i+t+i}function kK(t){return ma.call(String(t),/"/g,""")}function so(t){return!Nl||!(typeof t=="object"&&(Nl in t||typeof t[Nl]<"u"))}function AS(t){return ha(t)==="[object Array]"&&so(t)}function TK(t){return ha(t)==="[object Date]"&&so(t)}function YN(t){return ha(t)==="[object RegExp]"&&so(t)}function IK(t){return ha(t)==="[object Error]"&&so(t)}function PK(t){return ha(t)==="[object String]"&&so(t)}function OK(t){return ha(t)==="[object Number]"&&so(t)}function RK(t){return ha(t)==="[object Boolean]"&&so(t)}function ij(t){if(Cs)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!NS)return!1;try{return NS.call(t),!0}catch{}return!1}function CK(t){if(!t||typeof t!="object"||!CS)return!1;try{return CS.call(t),!0}catch{}return!1}var NK=Object.prototype.hasOwnProperty||function(t){return t in this};function zi(t,e){return NK.call(t,e)}function ha(t){return bK.call(t)}function jK(t){if(t.name)return t.name;var e=SK.call(xK.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function aj(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 oj(US.call(t,0,e.maxStringLength),e)+n}var i=EK[e.quoteStyle||"single"];i.lastIndex=0;var a=ma.call(ma.call(t,i,"\\$1"),/[\x00-\x1f]/g,LK);return nj(a,"single",e)}function LK(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":"")+wK.call(e.toString(16))}function Ol(t){return"Object("+t+")"}function RS(t){return t+" { ? }"}function QN(t,e,r,n){var i=n?MS(r,n):pi.call(r,", ");return t+" ("+e+") {"+i+"}"}function FK(t){for(var e=0;e=0)return!1;return!0}function ZK(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=pi.call(Array(t.indent+1)," ");else return null;return{base:r,prev:pi.call(Array(e+1),r)}}function MS(t,e){if(t.length===0)return"";var r=` +\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var AC=j(jC=>{"use strict";var Os=to().Buffer;jC._dbcs=Ai;var Zr=-1,NC=-2,wn=-10,di=-1e3,Rs=new Array(256),Il=-1;for(gm=0;gm<256;gm++)Rs[gm]=Zr;var gm;function Ai(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]=Rs.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==Zr)r[e[n]]=di-this.decodeTables.length,this.decodeTables.push(r=Rs.slice(0));else if(i<=di)r=this.decodeTables[di-i];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};Ai.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)};Ai.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=Rs.slice(0)),this.encodeTable[e]};Ai.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),n=t&255;r[n]<=wn?this.encodeTableSeq[wn-r[n]][Il]=e:r[n]==Zr&&(r[n]=e)};Ai.prototype._setEncodeSequence=function(t,e){var r=t[0],n=this._getEncodeBucket(r),i=r&255,a;n[i]<=wn?a=this.encodeTableSeq[wn-n[i]]:(a={},n[i]!==Zr&&(a[Il]=n[i]),n[i]=wn-this.encodeTableSeq.length,this.encodeTableSeq.push(a));for(var o=1;o=0?this._setEncodeChar(a,o):a<=di?this._fillEncodeTable(di-a,o<<8,r):a<=wn&&this._setEncodeSequence(this.decodeTableSeq[wn-a],o))}};function vm(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}vm.prototype.write=function(t){for(var e=Os.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,i=-1,a=0,o=0;;){if(i===-1){if(a==t.length)break;var s=t.charCodeAt(a++)}else{var s=i;i=-1}if(55296<=s&&s<57344)if(s<56320)if(r===-1){r=s;continue}else r=s,s=Zr;else r!==-1?(s=65536+(r-55296)*1024+(s-56320),r=-1):s=Zr;else r!==-1&&(i=s,s=Zr,r=-1);var c=Zr;if(n!==void 0&&s!=Zr){var u=n[s];if(typeof u=="object"){n=u;continue}else typeof u=="number"?c=u:u==null&&(u=n[Il],u!==void 0&&(c=u,i=s));n=void 0}else if(s>=0){var l=this.encodeTable[s>>8];if(l!==void 0&&(c=l[s&255]),c<=wn){n=this.encodeTableSeq[wn-c];continue}if(c==Zr&&this.gb18030){var d=SS(this.gb18030.uChars,s);if(d!=-1){var c=this.gb18030.gbChars[d]+(s-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===Zr&&(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)};vm.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=Os.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[Il];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)}};vm.prototype.findIdx=SS;function xS(t,e){this.nodeIdx=0,this.prevBuf=Os.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}xS.prototype.write=function(t){var e=Os.alloc(t.length*2),r=this.nodeIdx,n=this.prevBuf,i=this.prevBuf.length,a=-this.prevBuf.length,o;i>0&&(n=Os.concat([n,t.slice(0,10)]));for(var s=0,c=0;s=0?t[s]:n[s+i],o=this.decodeTables[r][u];if(!(o>=0))if(o===Zr)s=a,o=this.defaultCharUnicode.charCodeAt(0);else if(o===NC){var l=a>=0?t.slice(a,s+1):n.slice(a+i,s+1+i),d=(l[0]-129)*12600+(l[1]-48)*1260+(l[2]-129)*10+(l[3]-48),p=SS(this.gb18030.gbChars,d);o=this.gb18030.uChars[p]+d-this.gb18030.gbChars[p]}else if(o<=di){r=di-o;continue}else if(o<=wn){for(var f=this.decodeTableSeq[wn-o],h=0;h>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 _=55296+Math.floor(o/1024);e[c++]=_&255,e[c++]=_>>8,o=56320+o%1024}e[c++]=o&255,e[c++]=o>>8,r=0,a=s+1}return this.nodeIdx=r,this.prevBuf=a>=0?t.slice(a):n.slice(a+i),e.slice(0,c).toString("ucs2")};xS.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=Os.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function SS(t,e){if(t[0]>e)return-1;for(var r=0,n=t.length;r{QG.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 DC=j((H$e,eW)=>{eW.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 ym=j((B$e,tW)=>{tW.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 wS=j((V$e,rW)=>{rW.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 zC=j((G$e,nW)=>{nW.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 UC=j((W$e,iW)=>{iW.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 $S=j((K$e,aW)=>{aW.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 qC=j((J$e,oW)=>{oW.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 FC=j((X$e,LC)=>{"use strict";LC.exports={shiftjis:{type:"_dbcs",table:function(){return MC()},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 DC()},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 ym()}},gbk:{type:"_dbcs",table:function(){return ym().concat(wS())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return ym().concat(wS())},gb18030:function(){return zC()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return UC()}},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 $S()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return $S().concat(qC())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var BC=j((HC,Cs)=>{"use strict";var ZC=[SC(),$C(),kC(),IC(),RC(),CC(),AC(),FC()];for(_m=0;_m{"use strict";var VC=require("buffer").Buffer,xm=require("stream").Transform;GC.exports=function(t){t.encodeStream=function(r,n){return new no(t.getEncoder(r,n),n)},t.decodeStream=function(r,n){return new la(t.getDecoder(r,n),n)},t.supportsStreams=!0,t.IconvLiteEncoderStream=no,t.IconvLiteDecoderStream=la,t._collect=la.prototype.collect};function no(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,xm.call(this,e)}no.prototype=Object.create(xm.prototype,{constructor:{value:no}});no.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)}};no.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};no.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,VC.concat(e))}),this};function la(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",xm.call(this,e)}la.prototype=Object.create(xm.prototype,{constructor:{value:la}});la.prototype._transform=function(t,e,r){if(!VC.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)}};la.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};la.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 JC=j((Q$e,KC)=>{"use strict";var Wt=require("buffer").Buffer;KC.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,s,c){return o=String(o||"utf8").toLowerCase(),Wt.isNativeEncoding(o)?e.SlowBufferToString.call(this,o,s,c):(typeof s>"u"&&(s=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(s,c),o))},e.SlowBufferWrite=i.prototype.write,i.prototype.write=function(o,s,c,u){if(isFinite(s))isFinite(c)||(u=c,c=void 0);else{var l=u;u=s,s=c,c=l}s=+s||0;var d=this.length-s;if(c?(c=+c,c>d&&(c=d)):c=d,u=String(u||"utf8").toLowerCase(),Wt.isNativeEncoding(u))return e.SlowBufferWrite.call(this,o,s,c,u);if(o.length>0&&(c<0||s<0))throw new RangeError("attempt to write beyond buffer bounds");var p=t.encode(o,u);return p.length"u"&&(s=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(s,c),o))},e.BufferWrite=Wt.prototype.write,Wt.prototype.write=function(o,s,c,u){var l=s,d=c,p=u;if(isFinite(s))isFinite(c)||(u=c,c=void 0);else{var f=u;u=s,s=c,c=f}if(u=String(u||"utf8").toLowerCase(),Wt.isNativeEncoding(u))return e.BufferWrite.call(this,o,l,d,p);s=+s||0;var h=this.length-s;if(c?(c=+c,c>h&&(c=h)):c=h,o.length>0&&(c<0||s<0))throw new RangeError("attempt to write beyond buffer bounds");var _=t.encode(o,u);return _.length{"use strict";var YC=to().Buffer,QC=_C(),ft=eN.exports;ft.encodings=null;ft.defaultCharUnicode="\uFFFD";ft.defaultCharSingleByte="?";ft.encode=function(e,r,n){e=""+(e||"");var i=ft.getEncoder(r,n),a=i.write(e),o=i.end();return o&&o.length>0?YC.concat([a,o]):a};ft.decode=function(e,r,n){typeof e=="string"&&(ft.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),ft.skipDecodeWarning=!0),e=YC.from(""+(e||""),"binary"));var i=ft.getDecoder(r,n),a=i.write(e),o=i.end();return o?a+o:a};ft.encodingExists=function(e){try{return ft.getCodec(e),!0}catch{return!1}};ft.toEncoding=ft.encode;ft.fromEncoding=ft.decode;ft._codecDataCache={};ft.getCodec=function(e){ft.encodings||(ft.encodings=BC());for(var r=ft._canonicalizeEncoding(e),n={};;){var i=ft._codecDataCache[r];if(i)return i;var a=ft.encodings[r];switch(typeof a){case"string":r=a;break;case"object":for(var o in a)n[o]=a[o];n.encodingName||(n.encodingName=r),r=a.type;break;case"function":return n.encodingName||(n.encodingName=r),i=new a(n,ft),ft._codecDataCache[n.encodingName]=i,i;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};ft._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};ft.getEncoder=function(e,r){var n=ft.getCodec(e),i=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(i=new QC.PrependBOM(i,r)),i};ft.getDecoder=function(e,r){var n=ft.getCodec(e),i=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(i=new QC.StripBOM(i,r)),i};var XC=typeof process<"u"&&process.versions&&process.versions.node;XC&&(ES=XC.split(".").map(Number),(ES[0]>0||ES[1]>=10)&&WC()(ft),JC()(ft));var ES});var Sm=j((tEe,tN)=>{"use strict";tN.exports=cW;function sW(t){for(var e=t.listeners("data"),r=0;r{"use strict";var rN=gW(),uW=Es(),io=Qa(),lW=kS(),dW=Sm();iN.exports=mW;var pW=/^Encoding not recognized: /;function fW(t){if(!t)return null;try{return lW.getDecoder(t)}catch(e){throw pW.test(e.message)?io(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function mW(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 a=i.encoding!==!0?i.encoding:"utf-8",o=uW.parse(i.limit),s=i.length!=null&&!isNaN(i.length)?parseInt(i.length,10):null;return n?nN(t,a,s,o,vW(n)):new Promise(function(u,l){nN(t,a,s,o,function(p,f){if(p)return l(p);u(f)})})}function hW(t){dW(t),typeof t.pause=="function"&&t.pause()}function nN(t,e,r,n,i){var a=!1,o=!0;if(n!==null&&r!==null&&r>n)return d(io(413,"request entity too large",{expected:r,length:r,limit:n,type:"entity.too.large"}));var s=t._readableState;if(t._decoder||s&&(s.encoding||s.decoder))return d(io(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return d(io(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,u;try{u=fW(e)}catch(g){return d(g)}var l=u?"":[];t.on("aborted",p),t.on("close",_),t.on("data",f),t.on("end",h),t.on("error",h),o=!1;function d(){for(var g=new Array(arguments.length),m=0;mn?d(io(413,"request entity too large",{limit:n,received:c,type:"entity.too.large"})):u?l+=u.write(g):l.push(g))}function h(g){if(!a){if(g)return d(g);if(r!==null&&c!==r)d(io(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var m=u?l+(u.end()||""):Buffer.concat(l);d(null,m)}}}function _(){l=null,t.removeListener("aborted",p),t.removeListener("data",f),t.removeListener("end",h),t.removeListener("error",h),t.removeListener("close",_)}}function gW(){try{return require("async_hooks")}catch{return{}}}function vW(t){var e;return rN.AsyncResource&&(e=new rN.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var sN=j((nEe,oN)=>{"use strict";oN.exports=yW;function yW(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";TS.exports=xW;TS.exports.isFinished=lN;var cN=kW(),uN=sN(),bW=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function xW(t,e){return lN(t)!==!1?(bW(e,null,t),t):(wW(t,TW(e)),t)}function lN(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 SW(t,e){var r,n,i=!1;function a(s){r.cancel(),n.cancel(),i=!0,e(s)}r=n=uN([[t,"end","finish"]],a);function o(s){t.removeListener("socket",o),!i&&r===n&&(n=uN([[s,"error","close"]],a))}if(t.socket){o(t.socket);return}t.on("socket",o),t.socket===void 0&&EW(t,o)}function wW(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=$W(t),SW(t,r)),r.queue.push(e)}function $W(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 da=Qa(),IW=X0(),PW=aN(),dN=kS(),pN=Pl(),RW=Sm(),fN=require("zlib");mN.exports=OW;function OW(t,e,r,n,i,a){var o,s=a,c;t._body=!0;var u=s.encoding!==null?s.encoding:null,l=s.verify;try{c=CW(t,i,s.inflate),o=c.length,c.length=void 0}catch(d){return r(d)}if(s.length=o,s.encoding=l?null:u,s.encoding===null&&u!==null&&!dN.encodingExists(u))return r(da(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}));i("read body"),PW(c,s,function(d,p){if(d){var f;d.type==="encoding.unsupported"?f=da(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}):f=da(400,d),c!==t&&(RW(t),IW(c,!0)),NW(t,function(){r(da(400,f))});return}if(l)try{i("verify body"),l(t,e,p,u)}catch(_){r(da(403,_,{body:p,type:_.type||"entity.verify.failed"}));return}var h=p;try{i("parse body"),h=typeof p!="string"&&u!==null?dN.decode(p,u):p,t.body=n(h)}catch(_){r(da(400,_,{body:h,type:_.type||"entity.parse.failed"}));return}r()})}function CW(t,e,r){var n=(t.headers["content-encoding"]||"identity").toLowerCase(),i=t.headers["content-length"],a;if(e('content-encoding "%s"',n),r===!1&&n!=="identity")throw da(415,"content encoding unsupported",{encoding:n,type:"encoding.unsupported"});switch(n){case"deflate":a=fN.createInflate(),e("inflate body"),t.pipe(a);break;case"gzip":a=fN.createGunzip(),e("gunzip body"),t.pipe(a);break;case"identity":a=t,a.length=i;break;default:throw da(415,'unsupported content encoding "'+n+'"',{encoding:n,type:"encoding.unsupported"})}return a}function NW(t,e){pN.isFinished(t)?e(null):(pN(t,e),t.resume())}});var yN=j(IS=>{var hN=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,jW=/^[\u0020-\u007e\u0080-\u00ff]+$/,vN=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,AW=/\\([\u0000-\u007f])/g,MW=/([\\"])/g,DW=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,gN=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,zW=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;IS.format=UW;IS.parse=qW;function UW(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||!gN.test(i))throw new TypeError("invalid type");if(!r||!DW.test(r))throw new TypeError("invalid subtype");var a=i+"/"+r;if(n){if(!gN.test(n))throw new TypeError("invalid suffix");a+="+"+n}if(e&&typeof e=="object")for(var o,s=Object.keys(e).sort(),c=0;c0&&!jW.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(MW,"\\$1")+'"'}function ZW(t){var e=zW.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],n=e[2],i,a=n.lastIndexOf("+");a!==-1&&(i=n.substr(a+1),n=n.substr(0,a));var o={type:r,subtype:n,suffix:i};return o}});var _N=j((sEe,HW)=>{HW.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 xN=j((cEe,bN)=>{bN.exports=_N()});var PS=j(Hr=>{"use strict";var wm=xN(),BW=require("path").extname,SN=/^\s*([^;\s]*)(?:;|\s|$)/,VW=/^text\//i;Hr.charset=wN;Hr.charsets={lookup:wN};Hr.contentType=GW;Hr.extension=WW;Hr.extensions=Object.create(null);Hr.lookup=KW;Hr.types=Object.create(null);JW(Hr.extensions,Hr.types);function wN(t){if(!t||typeof t!="string")return!1;var e=SN.exec(t),r=e&&wm[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&VW.test(e[1])?"UTF-8":!1}function GW(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?Hr.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=Hr.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function WW(t){if(!t||typeof t!="string")return!1;var e=SN.exec(t),r=e&&Hr.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function KW(t){if(!t||typeof t!="string")return!1;var e=BW("x."+t).toLowerCase().substr(1);return e&&Hr.types[e]||!1}function JW(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(wm).forEach(function(i){var a=wm[i],o=a.extensions;if(!(!o||!o.length)){t[i]=o;for(var s=0;sl||u===l&&e[c].substr(0,12)==="application/"))continue}e[c]=i}}})}});var js=j((lEe,Ns)=>{"use strict";var $N=yN(),XW=PS();Ns.exports=YW;Ns.exports.is=EN;Ns.exports.hasBody=kN;Ns.exports.normalize=TN;Ns.exports.match=IN;function EN(t,e){var r,n=e,i=eK(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 tK=Es(),rK=yl(),nK=Qa(),pa=bn()("body-parser:json"),iK=Rl(),RN=js();CN.exports=sK;var aK=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,PN="#",oK=/#+/g;function sK(t){var e=t||{},r=typeof e.limit!="number"?tK.parse(e.limit||"100kb"):e.limit,n=e.inflate!==!1,i=e.reviver,a=e.strict!==!1,o=e.type||"application/json",s=e.verify||!1;if(s!==!1&&typeof s!="function")throw new TypeError("option verify must be function");var c=typeof o!="function"?dK(o):o;function u(l){if(l.length===0)return{};if(a){var d=uK(l);if(d!=="{"&&d!=="[")throw pa("strict violation"),cK(l,d)}try{return pa("parse json"),JSON.parse(l,i)}catch(p){throw ON(p,{message:p.message,stack:p.stack})}}return function(d,p,f){if(d._body){pa("body already parsed"),f();return}if(d.body=d.body||{},!RN.hasBody(d)){pa("skip empty body"),f();return}if(pa("content-type %j",d.headers["content-type"]),!c(d)){pa("skip parsing"),f();return}var h=lK(d)||"utf-8";if(h.slice(0,4)!=="utf-"){pa("invalid charset"),f(nK(415,'unsupported charset "'+h.toUpperCase()+'"',{charset:h,type:"charset.unsupported"}));return}iK(d,p,f,u,pa,{encoding:h,inflate:n,limit:r,verify:s})}}function cK(t,e){var r=t.indexOf(e),n="";if(r!==-1){n=t.substring(0,r)+PN;for(var i=r+1;i{"use strict";var pK=Es(),Ol=bn()("body-parser:raw"),fK=Rl(),jN=js();AN.exports=mK;function mK(t){var e=t||{},r=e.inflate!==!1,n=typeof e.limit!="number"?pK.parse(e.limit||"100kb"):e.limit,i=e.type||"application/octet-stream",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?hK(i):i;function s(c){return c}return function(u,l,d){if(u._body){Ol("body already parsed"),d();return}if(u.body=u.body||{},!jN.hasBody(u)){Ol("skip empty body"),d();return}if(Ol("content-type %j",u.headers["content-type"]),!o(u)){Ol("skip parsing"),d();return}fK(u,l,d,s,Ol,{encoding:null,inflate:r,limit:n,verify:a})}}function hK(t){return function(r){return!!jN(r,t)}}});var UN=j((fEe,zN)=>{"use strict";var gK=Es(),vK=yl(),Cl=bn()("body-parser:text"),yK=Rl(),DN=js();zN.exports=_K;function _K(t){var e=t||{},r=e.defaultCharset||"utf-8",n=e.inflate!==!1,i=typeof e.limit!="number"?gK.parse(e.limit||"100kb"):e.limit,a=e.type||"text/plain",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var s=typeof a!="function"?xK(a):a;function c(u){return u}return function(l,d,p){if(l._body){Cl("body already parsed"),p();return}if(l.body=l.body||{},!DN.hasBody(l)){Cl("skip empty body"),p();return}if(Cl("content-type %j",l.headers["content-type"]),!s(l)){Cl("skip parsing"),p();return}var f=bK(l)||r;yK(l,d,p,c,Cl,{encoding:f,inflate:n,limit:i,verify:o})}}function bK(t){try{return(vK.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function xK(t){return function(r){return!!DN(r,t)}}});var ao=j((mEe,qN)=>{"use strict";qN.exports=TypeError});var FN=j((hEe,LN)=>{LN.exports=require("util").inspect});var Dl=j((gEe,cj)=>{var US=typeof Map=="function"&&Map.prototype,RS=Object.getOwnPropertyDescriptor&&US?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Em=US&&RS&&typeof RS.get=="function"?RS.get:null,ZN=US&&Map.prototype.forEach,qS=typeof Set=="function"&&Set.prototype,OS=Object.getOwnPropertyDescriptor&&qS?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,km=qS&&OS&&typeof OS.get=="function"?OS.get:null,HN=qS&&Set.prototype.forEach,SK=typeof WeakMap=="function"&&WeakMap.prototype,jl=SK?WeakMap.prototype.has:null,wK=typeof WeakSet=="function"&&WeakSet.prototype,Al=wK?WeakSet.prototype.has:null,$K=typeof WeakRef=="function"&&WeakRef.prototype,BN=$K?WeakRef.prototype.deref:null,EK=Boolean.prototype.valueOf,kK=Object.prototype.toString,TK=Function.prototype.toString,IK=String.prototype.match,LS=String.prototype.slice,fa=String.prototype.replace,PK=String.prototype.toUpperCase,VN=String.prototype.toLowerCase,tj=RegExp.prototype.test,GN=Array.prototype.concat,pi=Array.prototype.join,RK=Array.prototype.slice,WN=Math.floor,jS=typeof BigInt=="function"?BigInt.prototype.valueOf:null,CS=Object.getOwnPropertySymbols,AS=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,As=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Ml=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===As||!0)?Symbol.toStringTag:null,rj=Object.prototype.propertyIsEnumerable,KN=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function JN(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||tj.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-WN(-t):WN(t);if(n!==t){var i=String(n),a=LS.call(e,i.length+1);return fa.call(i,r,"$&_")+"."+fa.call(fa.call(a,/([0-9]{3})/g,"$&_"),/_$/,"")}}return fa.call(e,r,"$&_")}var MS=FN(),XN=MS.custom,YN=aj(XN)?XN:null,nj={__proto__:null,double:'"',single:"'"},OK={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};cj.exports=function t(e,r,n,i){var a=r||{};if(Mi(a,"quoteStyle")&&!Mi(nj,a.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Mi(a,"maxStringLength")&&(typeof a.maxStringLength=="number"?a.maxStringLength<0&&a.maxStringLength!==1/0:a.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=Mi(a,"customInspect")?a.customInspect:!0;if(typeof o!="boolean"&&o!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Mi(a,"indent")&&a.indent!==null&&a.indent!==" "&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Mi(a,"numericSeparator")&&typeof a.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var s=a.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 sj(e,a);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return s?JN(e,c):c}if(typeof e=="bigint"){var u=String(e)+"n";return s?JN(e,u):u}var l=typeof a.depth>"u"?5:a.depth;if(typeof n>"u"&&(n=0),n>=l&&l>0&&typeof e=="object")return DS(e)?"[Array]":"[Object]";var d=KK(a,n);if(typeof i>"u")i=[];else if(oj(i,e)>=0)return"[Circular]";function p(B,U,Y){if(U&&(i=RK.call(i),i.push(U)),Y){var me={depth:a.depth};return Mi(a,"quoteStyle")&&(me.quoteStyle=a.quoteStyle),t(B,me,n+1,i)}return t(B,a,n+1,i)}if(typeof e=="function"&&!QN(e)){var f=qK(e),h=$m(e,p);return"[Function"+(f?": "+f:" (anonymous)")+"]"+(h.length>0?" { "+pi.call(h,", ")+" }":"")}if(aj(e)){var _=As?fa.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):AS.call(e);return typeof e=="object"&&!As?Nl(_):_}if(VK(e)){for(var g="<"+VN.call(String(e.nodeName)),m=e.attributes||[],y=0;y",g}if(DS(e)){if(e.length===0)return"[]";var v=$m(e,p);return d&&!WK(v)?"["+zS(v,d)+"]":"[ "+pi.call(v,", ")+" ]"}if(jK(e)){var b=$m(e,p);return!("cause"in Error.prototype)&&"cause"in e&&!rj.call(e,"cause")?"{ ["+String(e)+"] "+pi.call(GN.call("[cause]: "+p(e.cause),b),", ")+" }":b.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+pi.call(b,", ")+" }"}if(typeof e=="object"&&o){if(YN&&typeof e[YN]=="function"&&MS)return MS(e,{depth:l-n});if(o!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(LK(e)){var S=[];return ZN&&ZN.call(e,function(B,U){S.push(p(U,e,!0)+" => "+p(B,e))}),ej("Map",Em.call(e),S,d)}if(HK(e)){var x=[];return HN&&HN.call(e,function(B){x.push(p(B,e))}),ej("Set",km.call(e),x,d)}if(FK(e))return NS("WeakMap");if(BK(e))return NS("WeakSet");if(ZK(e))return NS("WeakRef");if(MK(e))return Nl(p(Number(e)));if(zK(e))return Nl(p(jS.call(e)));if(DK(e))return Nl(EK.call(e));if(AK(e))return Nl(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(!NK(e)&&!QN(e)){var w=$m(e,p),E=KN?KN(e)===Object.prototype:e instanceof Object||e.constructor===Object,R=e instanceof Object?"":"null prototype",A=!E&&Ml&&Object(e)===e&&Ml in e?LS.call(ma(e),8,-1):R?"Object":"",M=E||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",q=M+(A||R?"["+pi.call(GN.call([],A||[],R||[]),": ")+"] ":"");return w.length===0?q+"{}":d?q+"{"+zS(w,d)+"}":q+"{ "+pi.call(w,", ")+" }"}return String(e)};function ij(t,e,r){var n=r.quoteStyle||e,i=nj[n];return i+t+i}function CK(t){return fa.call(String(t),/"/g,""")}function oo(t){return!Ml||!(typeof t=="object"&&(Ml in t||typeof t[Ml]<"u"))}function DS(t){return ma(t)==="[object Array]"&&oo(t)}function NK(t){return ma(t)==="[object Date]"&&oo(t)}function QN(t){return ma(t)==="[object RegExp]"&&oo(t)}function jK(t){return ma(t)==="[object Error]"&&oo(t)}function AK(t){return ma(t)==="[object String]"&&oo(t)}function MK(t){return ma(t)==="[object Number]"&&oo(t)}function DK(t){return ma(t)==="[object Boolean]"&&oo(t)}function aj(t){if(As)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!AS)return!1;try{return AS.call(t),!0}catch{}return!1}function zK(t){if(!t||typeof t!="object"||!jS)return!1;try{return jS.call(t),!0}catch{}return!1}var UK=Object.prototype.hasOwnProperty||function(t){return t in this};function Mi(t,e){return UK.call(t,e)}function ma(t){return kK.call(t)}function qK(t){if(t.name)return t.name;var e=IK.call(TK.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function oj(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 sj(LS.call(t,0,e.maxStringLength),e)+n}var i=OK[e.quoteStyle||"single"];i.lastIndex=0;var a=fa.call(fa.call(t,i,"\\$1"),/[\x00-\x1f]/g,GK);return ij(a,"single",e)}function GK(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":"")+PK.call(e.toString(16))}function Nl(t){return"Object("+t+")"}function NS(t){return t+" { ? }"}function ej(t,e,r,n){var i=n?zS(r,n):pi.call(r,", ");return t+" ("+e+") {"+i+"}"}function WK(t){for(var e=0;e=0)return!1;return!0}function KK(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=pi.call(Array(t.indent+1)," ");else return null;return{base:r,prev:pi.call(Array(e+1),r)}}function zS(t,e){if(t.length===0)return"";var r=` `+e.prev+e.base;return r+pi.call(t,","+r)+` -`+e.prev}function Sm(t,e){var r=AS(t),n=[];if(r){n.length=t.length;for(var i=0;i{"use strict";var HK=jl(),BK=oo(),Em=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},VK=function(t,e){if(t){var r=Em(t,e);return r&&r.value}},GK=function(t,e,r){var n=Em(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},WK=function(t,e){return t?!!Em(t,e):!1},KK=function(t,e){if(t)return Em(t,e,!0)};cj.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new BK("Side channel does not contain "+HK(n))},delete:function(n){var i=e&&e.next,a=KK(e,n);return a&&i&&i===a&&(e=void 0),!!a},get:function(n){return VK(e,n)},has:function(n){return WK(e,n)},set:function(n,i){e||(e={next:void 0}),GK(e,n,i)}};return r}});var qS=j((oEe,lj)=>{"use strict";lj.exports=Object});var pj=j((sEe,dj)=>{"use strict";dj.exports=Error});var mj=j((cEe,fj)=>{"use strict";fj.exports=EvalError});var gj=j((uEe,hj)=>{"use strict";hj.exports=RangeError});var yj=j((lEe,vj)=>{"use strict";vj.exports=ReferenceError});var bj=j((dEe,_j)=>{"use strict";_j.exports=SyntaxError});var Sj=j((pEe,xj)=>{"use strict";xj.exports=URIError});var $j=j((fEe,wj)=>{"use strict";wj.exports=Math.abs});var kj=j((mEe,Ej)=>{"use strict";Ej.exports=Math.floor});var Ij=j((hEe,Tj)=>{"use strict";Tj.exports=Math.max});var Oj=j((gEe,Pj)=>{"use strict";Pj.exports=Math.min});var Cj=j((vEe,Rj)=>{"use strict";Rj.exports=Math.pow});var jj=j((yEe,Nj)=>{"use strict";Nj.exports=Math.round});var Mj=j((_Ee,Aj)=>{"use strict";Aj.exports=Number.isNaN||function(e){return e!==e}});var Dj=j((bEe,zj)=>{"use strict";var JK=Mj();zj.exports=function(e){return JK(e)||e===0?e:e<0?-1:1}});var qj=j((xEe,Uj)=>{"use strict";Uj.exports=Object.getOwnPropertyDescriptor});var LS=j((SEe,Lj)=>{"use strict";var km=qj();if(km)try{km([],"length")}catch{km=null}Lj.exports=km});var Zj=j((wEe,Fj)=>{"use strict";var Tm=Object.defineProperty||!1;if(Tm)try{Tm({},"a",{value:1})}catch{Tm=!1}Fj.exports=Tm});var Bj=j(($Ee,Hj)=>{"use strict";Hj.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 a 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 s=Object.getOwnPropertyDescriptor(e,r);if(s.value!==i||s.enumerable!==!0)return!1}return!0}});var Wj=j((EEe,Gj)=>{"use strict";var Vj=typeof Symbol<"u"&&Symbol,XK=Bj();Gj.exports=function(){return typeof Vj!="function"||typeof Symbol!="function"||typeof Vj("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:XK()}});var FS=j((kEe,Kj)=>{"use strict";Kj.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var ZS=j((TEe,Jj)=>{"use strict";var YK=qS();Jj.exports=YK.getPrototypeOf||null});var Qj=j((IEe,Yj)=>{"use strict";var QK="Function.prototype.bind called on incompatible ",eJ=Object.prototype.toString,tJ=Math.max,rJ="[object Function]",Xj=function(e,r){for(var n=[],i=0;i{"use strict";var aJ=Qj();eA.exports=Function.prototype.bind||aJ});var Im=j((OEe,tA)=>{"use strict";tA.exports=Function.prototype.call});var HS=j((REe,rA)=>{"use strict";rA.exports=Function.prototype.apply});var iA=j((CEe,nA)=>{"use strict";nA.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var oA=j((NEe,aA)=>{"use strict";var oJ=Al(),sJ=HS(),cJ=Im(),uJ=iA();aA.exports=uJ||oJ.call(cJ,sJ)});var BS=j((jEe,sA)=>{"use strict";var lJ=Al(),dJ=oo(),pJ=Im(),fJ=oA();sA.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new dJ("a function is required");return fJ(lJ,pJ,e)}});var fA=j((AEe,pA)=>{"use strict";var mJ=BS(),cA=LS(),lA;try{lA=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var VS=!!lA&&cA&&cA(Object.prototype,"__proto__"),dA=Object,uA=dA.getPrototypeOf;pA.exports=VS&&typeof VS.get=="function"?mJ([VS.get]):typeof uA=="function"?function(e){return uA(e==null?e:dA(e))}:!1});var yA=j((MEe,vA)=>{"use strict";var mA=FS(),hA=ZS(),gA=fA();vA.exports=mA?function(e){return mA(e)}:hA?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return hA(e)}:gA?function(e){return gA(e)}:null});var bA=j((zEe,_A)=>{"use strict";var hJ=Function.prototype.call,gJ=Object.prototype.hasOwnProperty,vJ=Al();_A.exports=vJ.call(hJ,gJ)});var Rm=j((DEe,kA)=>{"use strict";var Ke,yJ=qS(),_J=pj(),bJ=mj(),xJ=gj(),SJ=yj(),Ms=bj(),As=oo(),wJ=Sj(),$J=$j(),EJ=kj(),kJ=Ij(),TJ=Oj(),IJ=Cj(),PJ=jj(),OJ=Dj(),$A=Function,GS=function(t){try{return $A('"use strict"; return ('+t+").constructor;")()}catch{}},Ml=LS(),RJ=Zj(),WS=function(){throw new As},CJ=Ml?(function(){try{return arguments.callee,WS}catch{try{return Ml(arguments,"callee").get}catch{return WS}}})():WS,Ns=Wj()(),or=yA(),NJ=ZS(),jJ=FS(),EA=HS(),zl=Im(),js={},AJ=typeof Uint8Array>"u"||!or?Ke:or(Uint8Array),co={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Ke:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Ke:ArrayBuffer,"%ArrayIteratorPrototype%":Ns&&or?or([][Symbol.iterator]()):Ke,"%AsyncFromSyncIteratorPrototype%":Ke,"%AsyncFunction%":js,"%AsyncGenerator%":js,"%AsyncGeneratorFunction%":js,"%AsyncIteratorPrototype%":js,"%Atomics%":typeof Atomics>"u"?Ke:Atomics,"%BigInt%":typeof BigInt>"u"?Ke:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Ke:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Ke:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Ke:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":_J,"%eval%":eval,"%EvalError%":bJ,"%Float16Array%":typeof Float16Array>"u"?Ke:Float16Array,"%Float32Array%":typeof Float32Array>"u"?Ke:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Ke:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Ke:FinalizationRegistry,"%Function%":$A,"%GeneratorFunction%":js,"%Int8Array%":typeof Int8Array>"u"?Ke:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Ke:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Ke:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Ns&&or?or(or([][Symbol.iterator]())):Ke,"%JSON%":typeof JSON=="object"?JSON:Ke,"%Map%":typeof Map>"u"?Ke:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Ns||!or?Ke:or(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":yJ,"%Object.getOwnPropertyDescriptor%":Ml,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Ke:Promise,"%Proxy%":typeof Proxy>"u"?Ke:Proxy,"%RangeError%":xJ,"%ReferenceError%":SJ,"%Reflect%":typeof Reflect>"u"?Ke:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Ke:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Ns||!or?Ke:or(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Ke:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Ns&&or?or(""[Symbol.iterator]()):Ke,"%Symbol%":Ns?Symbol:Ke,"%SyntaxError%":Ms,"%ThrowTypeError%":CJ,"%TypedArray%":AJ,"%TypeError%":As,"%Uint8Array%":typeof Uint8Array>"u"?Ke:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Ke:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Ke:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Ke:Uint32Array,"%URIError%":wJ,"%WeakMap%":typeof WeakMap>"u"?Ke:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Ke:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Ke:WeakSet,"%Function.prototype.call%":zl,"%Function.prototype.apply%":EA,"%Object.defineProperty%":RJ,"%Object.getPrototypeOf%":NJ,"%Math.abs%":$J,"%Math.floor%":EJ,"%Math.max%":kJ,"%Math.min%":TJ,"%Math.pow%":IJ,"%Math.round%":PJ,"%Math.sign%":OJ,"%Reflect.getPrototypeOf%":jJ};if(or)try{null.error}catch(t){xA=or(or(t)),co["%Error.prototype%"]=xA}var xA,MJ=function t(e){var r;if(e==="%AsyncFunction%")r=GS("async function () {}");else if(e==="%GeneratorFunction%")r=GS("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=GS("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&or&&(r=or(i.prototype))}return co[e]=r,r},SA={__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"]},Dl=Al(),Pm=bA(),zJ=Dl.call(zl,Array.prototype.concat),DJ=Dl.call(EA,Array.prototype.splice),wA=Dl.call(zl,String.prototype.replace),Om=Dl.call(zl,String.prototype.slice),UJ=Dl.call(zl,RegExp.prototype.exec),qJ=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,LJ=/\\(\\)?/g,FJ=function(e){var r=Om(e,0,1),n=Om(e,-1);if(r==="%"&&n!=="%")throw new Ms("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Ms("invalid intrinsic syntax, expected opening `%`");var i=[];return wA(e,qJ,function(a,o,s,c){i[i.length]=s?wA(c,LJ,"$1"):o||a}),i},ZJ=function(e,r){var n=e,i;if(Pm(SA,n)&&(i=SA[n],n="%"+i[0]+"%"),Pm(co,n)){var a=co[n];if(a===js&&(a=MJ(n)),typeof a>"u"&&!r)throw new As("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:a}}throw new Ms("intrinsic "+e+" does not exist!")};kA.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new As("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new As('"allowMissing" argument must be a boolean');if(UJ(/^%?[^%]*%?$/,e)===null)throw new Ms("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=FJ(e),i=n.length>0?n[0]:"",a=ZJ("%"+i+"%",r),o=a.name,s=a.value,c=!1,u=a.alias;u&&(i=u[0],DJ(n,zJ([0,1],u)));for(var l=1,d=!0;l=n.length){var _=Ml(s,p);d=!!_,d&&"get"in _&&!("originalValue"in _.get)?s=_.get:s=s[p]}else d=Pm(s,p),s=s[p];d&&!c&&(co[o]=s)}}return s}});var KS=j((UEe,PA)=>{"use strict";var TA=Rm(),IA=BS(),HJ=IA([TA("%String.prototype.indexOf%")]);PA.exports=function(e,r){var n=TA(e,!!r);return typeof n=="function"&&HJ(e,".prototype.")>-1?IA([n]):n}});var JS=j((qEe,RA)=>{"use strict";var BJ=Rm(),Ul=KS(),VJ=jl(),GJ=oo(),OA=BJ("%Map%",!0),WJ=Ul("Map.prototype.get",!0),KJ=Ul("Map.prototype.set",!0),JJ=Ul("Map.prototype.has",!0),XJ=Ul("Map.prototype.delete",!0),YJ=Ul("Map.prototype.size",!0);RA.exports=!!OA&&function(){var e,r={assert:function(n){if(!r.has(n))throw new GJ("Side channel does not contain "+VJ(n))},delete:function(n){if(e){var i=XJ(e,n);return YJ(e)===0&&(e=void 0),i}return!1},get:function(n){if(e)return WJ(e,n)},has:function(n){return e?JJ(e,n):!1},set:function(n,i){e||(e=new OA),KJ(e,n,i)}};return r}});var NA=j((LEe,CA)=>{"use strict";var QJ=Rm(),Nm=KS(),eX=jl(),Cm=JS(),tX=oo(),zs=QJ("%WeakMap%",!0),rX=Nm("WeakMap.prototype.get",!0),nX=Nm("WeakMap.prototype.set",!0),iX=Nm("WeakMap.prototype.has",!0),aX=Nm("WeakMap.prototype.delete",!0);CA.exports=zs?function(){var e,r,n={assert:function(i){if(!n.has(i))throw new tX("Side channel does not contain "+eX(i))},delete:function(i){if(zs&&i&&(typeof i=="object"||typeof i=="function")){if(e)return aX(e,i)}else if(Cm&&r)return r.delete(i);return!1},get:function(i){return zs&&i&&(typeof i=="object"||typeof i=="function")&&e?rX(e,i):r&&r.get(i)},has:function(i){return zs&&i&&(typeof i=="object"||typeof i=="function")&&e?iX(e,i):!!r&&r.has(i)},set:function(i,a){zs&&i&&(typeof i=="object"||typeof i=="function")?(e||(e=new zs),nX(e,i,a)):Cm&&(r||(r=Cm()),r.set(i,a))}};return n}:Cm});var XS=j((FEe,jA)=>{"use strict";var oX=oo(),sX=jl(),cX=uj(),uX=JS(),lX=NA(),dX=lX||uX||cX;jA.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new oX("Side channel does not contain "+sX(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=dX()),e.set(n,i)}};return r}});var jm=j((ZEe,AA)=>{"use strict";var pX=String.prototype.replace,fX=/%20/g,YS={RFC1738:"RFC1738",RFC3986:"RFC3986"};AA.exports={default:YS.RFC3986,formatters:{RFC1738:function(t){return pX.call(t,fX,"+")},RFC3986:function(t){return String(t)}},RFC1738:YS.RFC1738,RFC3986:YS.RFC3986}});var nw=j((HEe,DA)=>{"use strict";var mX=jm(),hX=XS(),QS=Object.prototype.hasOwnProperty,uo=Array.isArray,Mm=hX(),MA=function(e,r){return Mm.set(e,r),e},Am=function(e){return Mm.has(e)},tw=function(e){return Mm.get(e)},zA=function(e,r){Mm.set(e,r)},fi=(function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t})(),gX=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(uo(n)){for(var i=[],a=0;a=ew?o.slice(c,c+ew):o,l=[],d=0;d=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||a===mX.RFC1738&&(p===40||p===41)){l[l.length]=u.charAt(d);continue}if(p<128){l[l.length]=fi[p];continue}if(p<2048){l[l.length]=fi[192|p>>6]+fi[128|p&63];continue}if(p<55296||p>=57344){l[l.length]=fi[224|p>>12]+fi[128|p>>6&63]+fi[128|p&63];continue}d+=1,p=65536+((p&1023)<<10|u.charCodeAt(d)&1023),l[l.length]=fi[240|p>>18]+fi[128|p>>12&63]+fi[128|p>>6&63]+fi[128|p&63]}s+=l.join("")}return s},xX=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],i=0;in?MA(rw(o,{plainObjects:i}),o.length-1):o},EX=function(e,r){if(uo(e)){for(var n=[],i=0;i{"use strict";var qA=XS(),zm=nw(),ql=jm(),kX=Object.prototype.hasOwnProperty,LA={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},mi=Array.isArray,TX=Array.prototype.push,FA=function(t,e){TX.apply(t,mi(e)?e:[e])},IX=Date.prototype.toISOString,UA=ql.default,rr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:zm.encode,encodeValuesOnly:!1,filter:void 0,format:UA,formatter:ql.formatters[UA],indices:!1,serializeDate:function(e){return IX.call(e)},skipNulls:!1,strictNullHandling:!1},PX=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},iw={},OX=function t(e,r,n,i,a,o,s,c,u,l,d,p,f,h,_,y,m,v){for(var g=e,b=v,S=0,x=!1;(b=b.get(iw))!==void 0&&!x;){var w=b.get(e);if(S+=1,typeof w<"u"){if(w===S)throw new RangeError("Cyclic object value");x=!0}typeof b.get(iw)>"u"&&(S=0)}if(typeof l=="function"?g=l(r,g):g instanceof Date?g=f(g):n==="comma"&&mi(g)&&(g=zm.maybeMap(g,function(F){return F instanceof Date?f(F):F})),g===null){if(o)return u&&!y?u(r,rr.encoder,m,"key",h):r;g=""}if(PX(g)||zm.isBuffer(g)){if(u){var E=y?r:u(r,rr.encoder,m,"key",h);return[_(E)+"="+_(u(g,rr.encoder,m,"value",h))]}return[_(r)+"="+_(String(g))]}var O=[];if(typeof g>"u")return O;var A;if(n==="comma"&&mi(g))y&&u&&(g=zm.maybeMap(g,u)),A=[{value:g.length>0?g.join(",")||null:void 0}];else if(mi(l))A=l;else{var M=Object.keys(g);A=d?M.sort(d):M}var q=c?String(r).replace(/\./g,"%2E"):String(r),B=i&&mi(g)&&g.length===1?q+"[]":q;if(a&&mi(g)&&g.length===0)return B+"[]";for(var U=0;U"u"?e.encodeDotInKeys===!0?!0:rr.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:rr.addQueryPrefix,allowDots:s,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:a,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}};ZA.exports=function(t,e){var r=t,n=RX(e),i,a;typeof n.filter=="function"?(a=n.filter,r=a("",r)):mi(n.filter)&&(a=n.filter,i=a);var o=[];if(typeof r!="object"||r===null)return"";var s=LA[n.arrayFormat],c=s==="comma"&&n.commaRoundTrip;i||(i=Object.keys(r)),n.sort&&i.sort(n.sort);for(var u=qA(),l=0;l0?h+f:""}});var WA=j((VEe,GA)=>{"use strict";var ga=nw(),Dm=Object.prototype.hasOwnProperty,BA=Array.isArray,Kt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:ga.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},CX=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},VA=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},NX="utf8=%26%2310003%3B",jX="utf8=%E2%9C%93",AX=function(e,r){var n={__proto__:null},i=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;i=i.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var a=r.parameterLimit===1/0?void 0:r.parameterLimit,o=i.split(r.delimiter,r.throwOnLimitExceeded?a+1:a);if(r.throwOnLimitExceeded&&o.length>a)throw new RangeError("Parameter limit exceeded. Only "+a+" parameter"+(a===1?"":"s")+" allowed.");var s=-1,c,u=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(h=BA(h)?[h]:h),f!==null){var _=Dm.call(n,f);_&&r.duplicates==="combine"?n[f]=ga.combine(n[f],h,r.arrayLimit,r.plainObjects):(!_||r.duplicates==="last")&&(n[f]=h)}}return n},MX=function(t,e,r,n){var i=0;if(t.length>0&&t[t.length-1]==="[]"){var a=t.slice(0,-1).join("");i=Array.isArray(e)&&e[a]?e[a].length:0}for(var o=n?e:VA(e,r,i),s=t.length-1;s>=0;--s){var c,u=t[s];if(u==="[]"&&r.parseArrays)ga.isOverflow(o)?c=o:c=r.allowEmptyArrays&&(o===""||r.strictNullHandling&&o===null)?[]:ga.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},zX=function(e,r){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e;if(r.depth<=0)return!r.plainObjects&&Dm.call(Object.prototype,n)&&!r.allowPrototypes?void 0:[n];var i=/(\[[^[\]]*])/,a=/(\[[^[\]]*])/g,o=i.exec(n),s=o?n.slice(0,o.index):n,c=[];if(s){if(!r.plainObjects&&Dm.call(Object.prototype,s)&&!r.allowPrototypes)return;c.push(s)}for(var u=0;(o=a.exec(n))!==null&&u"u"?Kt.charset:e.charset,n=typeof e.duplicates>"u"?Kt.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:Kt.allowDots:!!e.allowDots;return{allowDots:i,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Kt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:Kt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:Kt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:Kt.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Kt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:Kt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:Kt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:Kt.decoder,delimiter:typeof e.delimiter=="string"||ga.isRegExp(e.delimiter)?e.delimiter:Kt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:Kt.depth,duplicates:n,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:Kt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:Kt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:Kt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:Kt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Kt.strictNullHandling,throwOnLimitExceeded:typeof e.throwOnLimitExceeded=="boolean"?e.throwOnLimitExceeded:!1}};GA.exports=function(t,e){var r=UX(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?{__proto__:null}:{};for(var n=typeof t=="string"?AX(t,r):t,i=r.plainObjects?{__proto__:null}:{},a=Object.keys(n),o=0;o{"use strict";var qX=HA(),LX=WA(),FX=jm();KA.exports={formats:FX,parse:LX,stringify:qX}});var tM=j((WEe,eM)=>{"use strict";var ZX=Ss(),HX=hl(),qm=eo(),Hn=_n()("body-parser:urlencoded"),BX=ui()("body-parser"),VX=Tl(),XA=Rs();eM.exports=GX;var JA=Object.create(null);function GX(t){var e=t||{};e.extended===void 0&&BX("undefined extended: provide extended option");var r=e.extended!==!1,n=e.inflate!==!1,i=typeof e.limit!="number"?ZX.parse(e.limit||"100kb"):e.limit,a=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 s=r?WX(e):JX(e),c=typeof a!="function"?XX(a):a;function u(l){return l.length?s(l):{}}return function(d,p,f){if(d._body){Hn("body already parsed"),f();return}if(d.body=d.body||{},!XA.hasBody(d)){Hn("skip empty body"),f();return}if(Hn("content-type %j",d.headers["content-type"]),!c(d)){Hn("skip parsing"),f();return}var h=KX(d)||"utf-8";if(h!=="utf-8"){Hn("invalid charset"),f(qm(415,'unsupported charset "'+h.toUpperCase()+'"',{charset:h,type:"charset.unsupported"}));return}VX(d,p,f,u,Hn,{debug:Hn,encoding:h,inflate:n,limit:i,verify:o})}}function WX(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=t.depth!==void 0?t.depth:32,n=QA("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(a){var o=YA(a,e);if(o===void 0)throw Hn("too many parameters"),qm(413,"too many parameters",{type:"parameters.too.many"});var s=Math.max(100,o);Hn("parse extended urlencoding");try{return n(a,{allowPrototypes:!0,arrayLimit:s,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?qm(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function KX(t){try{return(HX.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function YA(t,e){for(var r=0,n=0;(n=t.indexOf("&",n))!==-1;)if(r++,n++,r===e)return;return r}function QA(t){var e=JA[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=Um();break;case"querystring":e=require("querystring");break}return JA[t]=e,e.parse}function JX(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=QA("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 a=YA(i,e);if(a===void 0)throw Hn("too many parameters"),qm(413,"too many parameters",{type:"parameters.too.many"});return Hn("parse urlencoding"),r(i,void 0,void 0,{maxKeys:e})}}function XX(t){return function(r){return!!XA(r,t)}}});var iM=j((va,nM)=>{"use strict";var YX=ui()("body-parser"),rM=Object.create(null);va=nM.exports=YX.function(QX,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty(va,"json",{configurable:!0,enumerable:!0,get:Lm("json")});Object.defineProperty(va,"raw",{configurable:!0,enumerable:!0,get:Lm("raw")});Object.defineProperty(va,"text",{configurable:!0,enumerable:!0,get:Lm("text")});Object.defineProperty(va,"urlencoded",{configurable:!0,enumerable:!0,get:Lm("urlencoded")});function QX(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=va.urlencoded(e),n=va.json(e);return function(a,o,s){n(a,o,function(c){if(c)return s(c);r(a,o,s)})}}function Lm(t){return function(){return eY(t)}}function eY(t){var e=rM[t];if(e!==void 0)return e;switch(t){case"json":e=CN();break;case"raw":e=AN();break;case"text":e=DN();break;case"urlencoded":e=tM();break}return rM[t]=e}});var oM=j((KEe,aM)=>{"use strict";aM.exports=rY;var tY=Object.prototype.hasOwnProperty;function rY(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&&tY.call(t,i))){var a=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,a)}}),t}});var Ll=j((JEe,sM)=>{"use strict";sM.exports=oY;var nY=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,iY=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,aY="$1\uFFFD$2";function oY(t){return String(t).replace(iY,aY).replace(nY,encodeURI)}});var Fl=j((XEe,cM)=>{"use strict";var sY=/["'&<>]/;cM.exports=cY;function cY(t){var e=""+t,r=sY.exec(e);if(!r)return e;var n,i="",a=0,o=0;for(a=r.index;a{"use strict";var lM=require("url"),uM=lM.parse,Fm=lM.Url;aw.exports=dM;aw.exports.original=uY;function dM(t){var e=t.url;if(e!==void 0){var r=t._parsedUrl;return fM(e,r)?r:(r=pM(e),r._raw=e,t._parsedUrl=r)}}function uY(t){var e=t.originalUrl;if(typeof e!="string")return dM(t);var r=t._parsedOriginalUrl;return fM(e,r)?r:(r=pM(e),r._raw=e,t._parsedOriginalUrl=r)}function pM(t){if(typeof t!="string"||t.charCodeAt(0)!==47)return uM(t);for(var e=t,r=null,n=null,i=1;i{"use strict";var ow=_n()("finalhandler"),lY=Ll(),dY=Fl(),hM=kl(),pY=Ds(),gM=vl(),fY=bm(),mY=/\x20{2}/g,hY=/\n/g,gY=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))},vY=hM.isFinished;function yY(t){var e=dY(t).replace(hY,"
").replace(mY,"  ");return` +`+e.prev}function $m(t,e){var r=DS(t),n=[];if(r){n.length=t.length;for(var i=0;i{"use strict";var JK=Dl(),XK=ao(),Tm=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},YK=function(t,e){if(t){var r=Tm(t,e);return r&&r.value}},QK=function(t,e,r){var n=Tm(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},eJ=function(t,e){return t?!!Tm(t,e):!1},tJ=function(t,e){if(t)return Tm(t,e,!0)};uj.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new XK("Side channel does not contain "+JK(n))},delete:function(n){var i=e&&e.next,a=tJ(e,n);return a&&i&&i===a&&(e=void 0),!!a},get:function(n){return YK(e,n)},has:function(n){return eJ(e,n)},set:function(n,i){e||(e={next:void 0}),QK(e,n,i)}};return r}});var FS=j((yEe,dj)=>{"use strict";dj.exports=Object});var fj=j((_Ee,pj)=>{"use strict";pj.exports=Error});var hj=j((bEe,mj)=>{"use strict";mj.exports=EvalError});var vj=j((xEe,gj)=>{"use strict";gj.exports=RangeError});var _j=j((SEe,yj)=>{"use strict";yj.exports=ReferenceError});var xj=j((wEe,bj)=>{"use strict";bj.exports=SyntaxError});var wj=j(($Ee,Sj)=>{"use strict";Sj.exports=URIError});var Ej=j((EEe,$j)=>{"use strict";$j.exports=Math.abs});var Tj=j((kEe,kj)=>{"use strict";kj.exports=Math.floor});var Pj=j((TEe,Ij)=>{"use strict";Ij.exports=Math.max});var Oj=j((IEe,Rj)=>{"use strict";Rj.exports=Math.min});var Nj=j((PEe,Cj)=>{"use strict";Cj.exports=Math.pow});var Aj=j((REe,jj)=>{"use strict";jj.exports=Math.round});var Dj=j((OEe,Mj)=>{"use strict";Mj.exports=Number.isNaN||function(e){return e!==e}});var Uj=j((CEe,zj)=>{"use strict";var rJ=Dj();zj.exports=function(e){return rJ(e)||e===0?e:e<0?-1:1}});var Lj=j((NEe,qj)=>{"use strict";qj.exports=Object.getOwnPropertyDescriptor});var ZS=j((jEe,Fj)=>{"use strict";var Im=Lj();if(Im)try{Im([],"length")}catch{Im=null}Fj.exports=Im});var Hj=j((AEe,Zj)=>{"use strict";var Pm=Object.defineProperty||!1;if(Pm)try{Pm({},"a",{value:1})}catch{Pm=!1}Zj.exports=Pm});var Vj=j((MEe,Bj)=>{"use strict";Bj.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 a 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 s=Object.getOwnPropertyDescriptor(e,r);if(s.value!==i||s.enumerable!==!0)return!1}return!0}});var Kj=j((DEe,Wj)=>{"use strict";var Gj=typeof Symbol<"u"&&Symbol,nJ=Vj();Wj.exports=function(){return typeof Gj!="function"||typeof Symbol!="function"||typeof Gj("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:nJ()}});var HS=j((zEe,Jj)=>{"use strict";Jj.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var BS=j((UEe,Xj)=>{"use strict";var iJ=FS();Xj.exports=iJ.getPrototypeOf||null});var eA=j((qEe,Qj)=>{"use strict";var aJ="Function.prototype.bind called on incompatible ",oJ=Object.prototype.toString,sJ=Math.max,cJ="[object Function]",Yj=function(e,r){for(var n=[],i=0;i{"use strict";var dJ=eA();tA.exports=Function.prototype.bind||dJ});var Rm=j((FEe,rA)=>{"use strict";rA.exports=Function.prototype.call});var VS=j((ZEe,nA)=>{"use strict";nA.exports=Function.prototype.apply});var aA=j((HEe,iA)=>{"use strict";iA.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var sA=j((BEe,oA)=>{"use strict";var pJ=zl(),fJ=VS(),mJ=Rm(),hJ=aA();oA.exports=hJ||pJ.call(mJ,fJ)});var GS=j((VEe,cA)=>{"use strict";var gJ=zl(),vJ=ao(),yJ=Rm(),_J=sA();cA.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new vJ("a function is required");return _J(gJ,yJ,e)}});var mA=j((GEe,fA)=>{"use strict";var bJ=GS(),uA=ZS(),dA;try{dA=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var WS=!!dA&&uA&&uA(Object.prototype,"__proto__"),pA=Object,lA=pA.getPrototypeOf;fA.exports=WS&&typeof WS.get=="function"?bJ([WS.get]):typeof lA=="function"?function(e){return lA(e==null?e:pA(e))}:!1});var _A=j((WEe,yA)=>{"use strict";var hA=HS(),gA=BS(),vA=mA();yA.exports=hA?function(e){return hA(e)}:gA?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return gA(e)}:vA?function(e){return vA(e)}:null});var xA=j((KEe,bA)=>{"use strict";var xJ=Function.prototype.call,SJ=Object.prototype.hasOwnProperty,wJ=zl();bA.exports=wJ.call(xJ,SJ)});var Nm=j((JEe,TA)=>{"use strict";var Je,$J=FS(),EJ=fj(),kJ=hj(),TJ=vj(),IJ=_j(),Us=xj(),zs=ao(),PJ=wj(),RJ=Ej(),OJ=Tj(),CJ=Pj(),NJ=Oj(),jJ=Nj(),AJ=Aj(),MJ=Uj(),EA=Function,KS=function(t){try{return EA('"use strict"; return ('+t+").constructor;")()}catch{}},Ul=ZS(),DJ=Hj(),JS=function(){throw new zs},zJ=Ul?(function(){try{return arguments.callee,JS}catch{try{return Ul(arguments,"callee").get}catch{return JS}}})():JS,Ms=Kj()(),or=_A(),UJ=BS(),qJ=HS(),kA=VS(),ql=Rm(),Ds={},LJ=typeof Uint8Array>"u"||!or?Je:or(Uint8Array),so={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Je:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Je:ArrayBuffer,"%ArrayIteratorPrototype%":Ms&&or?or([][Symbol.iterator]()):Je,"%AsyncFromSyncIteratorPrototype%":Je,"%AsyncFunction%":Ds,"%AsyncGenerator%":Ds,"%AsyncGeneratorFunction%":Ds,"%AsyncIteratorPrototype%":Ds,"%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%":EJ,"%eval%":eval,"%EvalError%":kJ,"%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%":EA,"%GeneratorFunction%":Ds,"%Int8Array%":typeof Int8Array>"u"?Je:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Je:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Je:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Ms&&or?or(or([][Symbol.iterator]())):Je,"%JSON%":typeof JSON=="object"?JSON:Je,"%Map%":typeof Map>"u"?Je:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Ms||!or?Je:or(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":$J,"%Object.getOwnPropertyDescriptor%":Ul,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Je:Promise,"%Proxy%":typeof Proxy>"u"?Je:Proxy,"%RangeError%":TJ,"%ReferenceError%":IJ,"%Reflect%":typeof Reflect>"u"?Je:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Je:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Ms||!or?Je:or(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Je:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Ms&&or?or(""[Symbol.iterator]()):Je,"%Symbol%":Ms?Symbol:Je,"%SyntaxError%":Us,"%ThrowTypeError%":zJ,"%TypedArray%":LJ,"%TypeError%":zs,"%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%":PJ,"%WeakMap%":typeof WeakMap>"u"?Je:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Je:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Je:WeakSet,"%Function.prototype.call%":ql,"%Function.prototype.apply%":kA,"%Object.defineProperty%":DJ,"%Object.getPrototypeOf%":UJ,"%Math.abs%":RJ,"%Math.floor%":OJ,"%Math.max%":CJ,"%Math.min%":NJ,"%Math.pow%":jJ,"%Math.round%":AJ,"%Math.sign%":MJ,"%Reflect.getPrototypeOf%":qJ};if(or)try{null.error}catch(t){SA=or(or(t)),so["%Error.prototype%"]=SA}var SA,FJ=function t(e){var r;if(e==="%AsyncFunction%")r=KS("async function () {}");else if(e==="%GeneratorFunction%")r=KS("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=KS("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&or&&(r=or(i.prototype))}return so[e]=r,r},wA={__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"]},Ll=zl(),Om=xA(),ZJ=Ll.call(ql,Array.prototype.concat),HJ=Ll.call(kA,Array.prototype.splice),$A=Ll.call(ql,String.prototype.replace),Cm=Ll.call(ql,String.prototype.slice),BJ=Ll.call(ql,RegExp.prototype.exec),VJ=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,GJ=/\\(\\)?/g,WJ=function(e){var r=Cm(e,0,1),n=Cm(e,-1);if(r==="%"&&n!=="%")throw new Us("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Us("invalid intrinsic syntax, expected opening `%`");var i=[];return $A(e,VJ,function(a,o,s,c){i[i.length]=s?$A(c,GJ,"$1"):o||a}),i},KJ=function(e,r){var n=e,i;if(Om(wA,n)&&(i=wA[n],n="%"+i[0]+"%"),Om(so,n)){var a=so[n];if(a===Ds&&(a=FJ(n)),typeof a>"u"&&!r)throw new zs("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:a}}throw new Us("intrinsic "+e+" does not exist!")};TA.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new zs("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new zs('"allowMissing" argument must be a boolean');if(BJ(/^%?[^%]*%?$/,e)===null)throw new Us("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=WJ(e),i=n.length>0?n[0]:"",a=KJ("%"+i+"%",r),o=a.name,s=a.value,c=!1,u=a.alias;u&&(i=u[0],HJ(n,ZJ([0,1],u)));for(var l=1,d=!0;l=n.length){var _=Ul(s,p);d=!!_,d&&"get"in _&&!("originalValue"in _.get)?s=_.get:s=s[p]}else d=Om(s,p),s=s[p];d&&!c&&(so[o]=s)}}return s}});var XS=j((XEe,RA)=>{"use strict";var IA=Nm(),PA=GS(),JJ=PA([IA("%String.prototype.indexOf%")]);RA.exports=function(e,r){var n=IA(e,!!r);return typeof n=="function"&&JJ(e,".prototype.")>-1?PA([n]):n}});var YS=j((YEe,CA)=>{"use strict";var XJ=Nm(),Fl=XS(),YJ=Dl(),QJ=ao(),OA=XJ("%Map%",!0),eX=Fl("Map.prototype.get",!0),tX=Fl("Map.prototype.set",!0),rX=Fl("Map.prototype.has",!0),nX=Fl("Map.prototype.delete",!0),iX=Fl("Map.prototype.size",!0);CA.exports=!!OA&&function(){var e,r={assert:function(n){if(!r.has(n))throw new QJ("Side channel does not contain "+YJ(n))},delete:function(n){if(e){var i=nX(e,n);return iX(e)===0&&(e=void 0),i}return!1},get:function(n){if(e)return eX(e,n)},has:function(n){return e?rX(e,n):!1},set:function(n,i){e||(e=new OA),tX(e,n,i)}};return r}});var jA=j((QEe,NA)=>{"use strict";var aX=Nm(),Am=XS(),oX=Dl(),jm=YS(),sX=ao(),qs=aX("%WeakMap%",!0),cX=Am("WeakMap.prototype.get",!0),uX=Am("WeakMap.prototype.set",!0),lX=Am("WeakMap.prototype.has",!0),dX=Am("WeakMap.prototype.delete",!0);NA.exports=qs?function(){var e,r,n={assert:function(i){if(!n.has(i))throw new sX("Side channel does not contain "+oX(i))},delete:function(i){if(qs&&i&&(typeof i=="object"||typeof i=="function")){if(e)return dX(e,i)}else if(jm&&r)return r.delete(i);return!1},get:function(i){return qs&&i&&(typeof i=="object"||typeof i=="function")&&e?cX(e,i):r&&r.get(i)},has:function(i){return qs&&i&&(typeof i=="object"||typeof i=="function")&&e?lX(e,i):!!r&&r.has(i)},set:function(i,a){qs&&i&&(typeof i=="object"||typeof i=="function")?(e||(e=new qs),uX(e,i,a)):jm&&(r||(r=jm()),r.set(i,a))}};return n}:jm});var QS=j((eke,AA)=>{"use strict";var pX=ao(),fX=Dl(),mX=lj(),hX=YS(),gX=jA(),vX=gX||hX||mX;AA.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new pX("Side channel does not contain "+fX(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=vX()),e.set(n,i)}};return r}});var Mm=j((tke,MA)=>{"use strict";var yX=String.prototype.replace,_X=/%20/g,ew={RFC1738:"RFC1738",RFC3986:"RFC3986"};MA.exports={default:ew.RFC3986,formatters:{RFC1738:function(t){return yX.call(t,_X,"+")},RFC3986:function(t){return String(t)}},RFC1738:ew.RFC1738,RFC3986:ew.RFC3986}});var aw=j((rke,UA)=>{"use strict";var bX=Mm(),xX=QS(),tw=Object.prototype.hasOwnProperty,co=Array.isArray,zm=xX(),DA=function(e,r){return zm.set(e,r),e},Dm=function(e){return zm.has(e)},nw=function(e){return zm.get(e)},zA=function(e,r){zm.set(e,r)},fi=(function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t})(),SX=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(co(n)){for(var i=[],a=0;a=rw?o.slice(c,c+rw):o,l=[],d=0;d=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||a===bX.RFC1738&&(p===40||p===41)){l[l.length]=u.charAt(d);continue}if(p<128){l[l.length]=fi[p];continue}if(p<2048){l[l.length]=fi[192|p>>6]+fi[128|p&63];continue}if(p<55296||p>=57344){l[l.length]=fi[224|p>>12]+fi[128|p>>6&63]+fi[128|p&63];continue}d+=1,p=65536+((p&1023)<<10|u.charCodeAt(d)&1023),l[l.length]=fi[240|p>>18]+fi[128|p>>12&63]+fi[128|p>>6&63]+fi[128|p&63]}s+=l.join("")}return s},TX=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],i=0;in?DA(iw(o,{plainObjects:i}),o.length-1):o},OX=function(e,r){if(co(e)){for(var n=[],i=0;i{"use strict";var LA=QS(),Um=aw(),Zl=Mm(),CX=Object.prototype.hasOwnProperty,FA={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},mi=Array.isArray,NX=Array.prototype.push,ZA=function(t,e){NX.apply(t,mi(e)?e:[e])},jX=Date.prototype.toISOString,qA=Zl.default,rr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Um.encode,encodeValuesOnly:!1,filter:void 0,format:qA,formatter:Zl.formatters[qA],indices:!1,serializeDate:function(e){return jX.call(e)},skipNulls:!1,strictNullHandling:!1},AX=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},ow={},MX=function t(e,r,n,i,a,o,s,c,u,l,d,p,f,h,_,g,m,y){for(var v=e,b=y,S=0,x=!1;(b=b.get(ow))!==void 0&&!x;){var w=b.get(e);if(S+=1,typeof w<"u"){if(w===S)throw new RangeError("Cyclic object value");x=!0}typeof b.get(ow)>"u"&&(S=0)}if(typeof l=="function"?v=l(r,v):v instanceof Date?v=f(v):n==="comma"&&mi(v)&&(v=Um.maybeMap(v,function(F){return F instanceof Date?f(F):F})),v===null){if(o)return u&&!g?u(r,rr.encoder,m,"key",h):r;v=""}if(AX(v)||Um.isBuffer(v)){if(u){var E=g?r:u(r,rr.encoder,m,"key",h);return[_(E)+"="+_(u(v,rr.encoder,m,"value",h))]}return[_(r)+"="+_(String(v))]}var R=[];if(typeof v>"u")return R;var A;if(n==="comma"&&mi(v))g&&u&&(v=Um.maybeMap(v,u)),A=[{value:v.length>0?v.join(",")||null:void 0}];else if(mi(l))A=l;else{var M=Object.keys(v);A=d?M.sort(d):M}var q=c?String(r).replace(/\./g,"%2E"):String(r),B=i&&mi(v)&&v.length===1?q+"[]":q;if(a&&mi(v)&&v.length===0)return B+"[]";for(var U=0;U"u"?e.encodeDotInKeys===!0?!0:rr.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:rr.addQueryPrefix,allowDots:s,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:a,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}};HA.exports=function(t,e){var r=t,n=DX(e),i,a;typeof n.filter=="function"?(a=n.filter,r=a("",r)):mi(n.filter)&&(a=n.filter,i=a);var o=[];if(typeof r!="object"||r===null)return"";var s=FA[n.arrayFormat],c=s==="comma"&&n.commaRoundTrip;i||(i=Object.keys(r)),n.sort&&i.sort(n.sort);for(var u=LA(),l=0;l0?h+f:""}});var KA=j((ike,WA)=>{"use strict";var ha=aw(),qm=Object.prototype.hasOwnProperty,VA=Array.isArray,Kt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:ha.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},zX=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},GA=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},UX="utf8=%26%2310003%3B",qX="utf8=%E2%9C%93",LX=function(e,r){var n={__proto__:null},i=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;i=i.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var a=r.parameterLimit===1/0?void 0:r.parameterLimit,o=i.split(r.delimiter,r.throwOnLimitExceeded?a+1:a);if(r.throwOnLimitExceeded&&o.length>a)throw new RangeError("Parameter limit exceeded. Only "+a+" parameter"+(a===1?"":"s")+" allowed.");var s=-1,c,u=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(h=VA(h)?[h]:h),f!==null){var _=qm.call(n,f);_&&r.duplicates==="combine"?n[f]=ha.combine(n[f],h,r.arrayLimit,r.plainObjects):(!_||r.duplicates==="last")&&(n[f]=h)}}return n},FX=function(t,e,r,n){var i=0;if(t.length>0&&t[t.length-1]==="[]"){var a=t.slice(0,-1).join("");i=Array.isArray(e)&&e[a]?e[a].length:0}for(var o=n?e:GA(e,r,i),s=t.length-1;s>=0;--s){var c,u=t[s];if(u==="[]"&&r.parseArrays)ha.isOverflow(o)?c=o:c=r.allowEmptyArrays&&(o===""||r.strictNullHandling&&o===null)?[]:ha.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},ZX=function(e,r){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e;if(r.depth<=0)return!r.plainObjects&&qm.call(Object.prototype,n)&&!r.allowPrototypes?void 0:[n];var i=/(\[[^[\]]*])/,a=/(\[[^[\]]*])/g,o=i.exec(n),s=o?n.slice(0,o.index):n,c=[];if(s){if(!r.plainObjects&&qm.call(Object.prototype,s)&&!r.allowPrototypes)return;c.push(s)}for(var u=0;(o=a.exec(n))!==null&&u"u"?Kt.charset:e.charset,n=typeof e.duplicates>"u"?Kt.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:Kt.allowDots:!!e.allowDots;return{allowDots:i,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Kt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:Kt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:Kt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:Kt.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Kt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:Kt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:Kt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:Kt.decoder,delimiter:typeof e.delimiter=="string"||ha.isRegExp(e.delimiter)?e.delimiter:Kt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:Kt.depth,duplicates:n,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:Kt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:Kt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:Kt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:Kt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Kt.strictNullHandling,throwOnLimitExceeded:typeof e.throwOnLimitExceeded=="boolean"?e.throwOnLimitExceeded:!1}};WA.exports=function(t,e){var r=BX(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?{__proto__:null}:{};for(var n=typeof t=="string"?LX(t,r):t,i=r.plainObjects?{__proto__:null}:{},a=Object.keys(n),o=0;o{"use strict";var VX=BA(),GX=KA(),WX=Mm();JA.exports={formats:WX,parse:GX,stringify:VX}});var rM=j((oke,tM)=>{"use strict";var KX=Es(),JX=yl(),Fm=Qa(),Hn=bn()("body-parser:urlencoded"),XX=ui()("body-parser"),YX=Rl(),YA=js();tM.exports=QX;var XA=Object.create(null);function QX(t){var e=t||{};e.extended===void 0&&XX("undefined extended: provide extended option");var r=e.extended!==!1,n=e.inflate!==!1,i=typeof e.limit!="number"?KX.parse(e.limit||"100kb"):e.limit,a=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 s=r?eY(e):rY(e),c=typeof a!="function"?nY(a):a;function u(l){return l.length?s(l):{}}return function(d,p,f){if(d._body){Hn("body already parsed"),f();return}if(d.body=d.body||{},!YA.hasBody(d)){Hn("skip empty body"),f();return}if(Hn("content-type %j",d.headers["content-type"]),!c(d)){Hn("skip parsing"),f();return}var h=tY(d)||"utf-8";if(h!=="utf-8"){Hn("invalid charset"),f(Fm(415,'unsupported charset "'+h.toUpperCase()+'"',{charset:h,type:"charset.unsupported"}));return}YX(d,p,f,u,Hn,{debug:Hn,encoding:h,inflate:n,limit:i,verify:o})}}function eY(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=t.depth!==void 0?t.depth:32,n=eM("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(a){var o=QA(a,e);if(o===void 0)throw Hn("too many parameters"),Fm(413,"too many parameters",{type:"parameters.too.many"});var s=Math.max(100,o);Hn("parse extended urlencoding");try{return n(a,{allowPrototypes:!0,arrayLimit:s,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?Fm(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function tY(t){try{return(JX.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function QA(t,e){for(var r=0,n=0;(n=t.indexOf("&",n))!==-1;)if(r++,n++,r===e)return;return r}function eM(t){var e=XA[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=Lm();break;case"querystring":e=require("querystring");break}return XA[t]=e,e.parse}function rY(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=eM("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 a=QA(i,e);if(a===void 0)throw Hn("too many parameters"),Fm(413,"too many parameters",{type:"parameters.too.many"});return Hn("parse urlencoding"),r(i,void 0,void 0,{maxKeys:e})}}function nY(t){return function(r){return!!YA(r,t)}}});var aM=j((ga,iM)=>{"use strict";var iY=ui()("body-parser"),nM=Object.create(null);ga=iM.exports=iY.function(aY,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty(ga,"json",{configurable:!0,enumerable:!0,get:Zm("json")});Object.defineProperty(ga,"raw",{configurable:!0,enumerable:!0,get:Zm("raw")});Object.defineProperty(ga,"text",{configurable:!0,enumerable:!0,get:Zm("text")});Object.defineProperty(ga,"urlencoded",{configurable:!0,enumerable:!0,get:Zm("urlencoded")});function aY(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=ga.urlencoded(e),n=ga.json(e);return function(a,o,s){n(a,o,function(c){if(c)return s(c);r(a,o,s)})}}function Zm(t){return function(){return oY(t)}}function oY(t){var e=nM[t];if(e!==void 0)return e;switch(t){case"json":e=NN();break;case"raw":e=MN();break;case"text":e=UN();break;case"urlencoded":e=rM();break}return nM[t]=e}});var sM=j((ske,oM)=>{"use strict";oM.exports=cY;var sY=Object.prototype.hasOwnProperty;function cY(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&&sY.call(t,i))){var a=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,a)}}),t}});var Hl=j((cke,cM)=>{"use strict";cM.exports=pY;var uY=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,lY=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,dY="$1\uFFFD$2";function pY(t){return String(t).replace(lY,dY).replace(uY,encodeURI)}});var Bl=j((uke,uM)=>{"use strict";var fY=/["'&<>]/;uM.exports=mY;function mY(t){var e=""+t,r=fY.exec(e);if(!r)return e;var n,i="",a=0,o=0;for(a=r.index;a{"use strict";var dM=require("url"),lM=dM.parse,Hm=dM.Url;sw.exports=pM;sw.exports.original=hY;function pM(t){var e=t.url;if(e!==void 0){var r=t._parsedUrl;return mM(e,r)?r:(r=fM(e),r._raw=e,t._parsedUrl=r)}}function hY(t){var e=t.originalUrl;if(typeof e!="string")return pM(t);var r=t._parsedOriginalUrl;return mM(e,r)?r:(r=fM(e),r._raw=e,t._parsedOriginalUrl=r)}function fM(t){if(typeof t!="string"||t.charCodeAt(0)!==47)return lM(t);for(var e=t,r=null,n=null,i=1;i{"use strict";var cw=bn()("finalhandler"),gY=Hl(),vY=Bl(),gM=Pl(),yY=Ls(),vM=bl(),_Y=Sm(),bY=/\x20{2}/g,xY=/\n/g,SY=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))},wY=gM.isFinished;function $Y(t){var e=vY(t).replace(xY,"
").replace(bY,"  ");return` @@ -43,7 +43,7 @@ return fn.apply(this, arguments)
`+e+`
-`}vM.exports=_Y;function _Y(t,e,r){var n=r||{},i=n.env||process.env.NODE_ENV||"development",a=n.onerror;return function(o){var s,c,u;if(!o&&mM(e)){ow("cannot 404 after headers sent");return}if(o?(u=SY(o),u===void 0?u=$Y(e):s=bY(o),c=xY(o,u,i)):(u=404,c="Cannot "+t.method+" "+lY(wY(t))),ow("default %s",u),o&&a&&gY(a,o,t,e),mM(e)){ow("cannot %d after headers sent",u),t.socket&&t.socket.destroy();return}EY(t,e,u,s,c)}}function bY(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 wY(t){try{return pY.original(t).pathname}catch{return"resource"}}function $Y(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function mM(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function EY(t,e,r,n,i){function a(){var o=yY(i);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=gM.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),kY(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(vY(t)){a();return}fY(t),hM(t,a),t.resume()}function kY(t,e){if(e)for(var r=Object.keys(e),n=0;n{"use strict";xM.exports=TY;function _M(t,e,r){for(var n=0;n0&&Array.isArray(i)?_M(i,e,r-1):e.push(i)}return e}function bM(t,e){for(var r=0;r{$M.exports=wM;var SM=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function wM(t,e,r){r=r||{},e=e||[];var n=r.strict,i=r.end!==!1,a=r.sensitive?"":"i",o=r.lookahead!==!1,s=0,c=e.length,u=0,l=0,d=0,p="",f;if(t instanceof RegExp){for(;f=SM.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(h){return wM(h,e,r).source}),new RegExp(t.join("|"),a);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(h,_,y,m,v,g,b,S){if(h[0]==="\\")return p+=h,d+=2,h;if(h===".")return p+="\\.",s+=1,d+=1,"\\.";if(_||y?p="":p+=t.slice(d,S),d=S+h.length,h==="*")return s+=3,"(.*)";if(h==="/(")return p+="/",s+=2,"/(?:";_=_||"",y=y?"\\.":"",b=b||"",v=v?v.replace(/\\.|\*/,function(w){return w==="*"?"(.*)":w}):p?"((?:(?!/|"+p+").)+?)":"([^/"+y+"]+?)",e.push({name:m,optional:!!b,offset:S+s});var x="(?:"+y+_+v+(g?"((?:[/"+y+"].+?)?)":"")+")"+b;return s+=x.length-h.length,x});f=SM.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,a)}});var sw=j((rke,TM)=>{"use strict";var IY=EM(),PY=_n()("express:router:layer"),OY=Object.prototype.hasOwnProperty;TM.exports=Us;function Us(t,e,r){if(!(this instanceof Us))return new Us(t,e,r);PY("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=IY(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}Us.prototype.handle_error=function(e,r,n,i){var a=this.handle;if(a.length!==4)return i(e);try{a(e,r,n,i)}catch(o){i(o)}};Us.prototype.handle_request=function(e,r,n){var i=this.handle;if(i.length>3)return n();try{i(e,r,n)}catch(a){n(a)}};Us.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:kM(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,a=1;a{"use strict";var IM=require("http");PM.exports=RY()||CY();function RY(){return IM.METHODS&&IM.METHODS.map(function(e){return e.toLowerCase()})}function CY(){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 cw=j((ike,AM)=>{"use strict";var OM=_n()("express:router:route"),RM=Zl(),CM=sw(),NY=Zm(),NM=Array.prototype.slice,jM=Object.prototype.toString;AM.exports=qs;function qs(t){this.path=t,this.stack=[],OM("new %o",t),this.methods={}}qs.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]};qs.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=a[i++];if(!l)return n(u);l.method&&l.method!==s?c(u):u?l.handle_error(u,e,r,c):l.handle_request(e,r,c),o=0}};qs.prototype.all=function(){for(var e=RM(NM.call(arguments)),r=0;r{MM=zM.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var lw=j((ake,LM)=>{"use strict";var jY=cw(),UM=sw(),AY=Zm(),uw=Hl(),Hm=_n()("express:router"),DM=ui()("express"),MY=Zl(),zY=Ds(),DY=gl(),UY=/^\[object (\S+)\]$/,qM=Array.prototype.slice,qY=Object.prototype.toString,lo=LM.exports=function(t){var e=t||{};function r(n,i,a){r.handle(n,i,a)}return DY(r,lo),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};lo.param=function(e,r){if(typeof e=="function"){DM("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,i=n.length,a;e[0]===":"&&(DM("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);return}if(++u>100)return setImmediate(y,v);var b=FY(e);if(b==null)return _(g);for(var S,x,w;x!==!0&&a=s.length)return a();if(l=0,d=s[c++],u=d.name,p=n.params[u],f=o[u],h=r[u],p===void 0||!f)return _();if(h&&(h.match===p||h.error&&h.error!=="route"))return n.params[u]=h.value,_(h.error);r[u]=h={error:null,match:p,value:p},y()}function y(m){var v=f[l++];if(h.value=n.params[d.name],m){h.error=m,_(m);return}if(!v)return _();try{v(n,i,y,p,d.name)}catch(g){y(g)}}_()};lo.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 a=MY(qM.call(arguments,r));if(a.length===0)throw new TypeError("Router.use() requires a middleware function");for(var o=0;o");var s=new UM(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);s.route=void 0,this.stack.push(s)}return this};lo.route=function(e){var r=new jY(e),n=new UM(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};AY.concat("all").forEach(function(t){lo[t]=function(e){var r=this.route(e);return r[t].apply(r,qM.call(arguments,1)),this}});function LY(t,e){for(var r=0;r=0;n--)t[n+i]=t[n],n{"use strict";var FM=gl();ZM.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,FM(r,t.request),FM(n,t.response),n.locals=n.locals||Object.create(null),i()}}});var dw=j((ske,BM)=>{"use strict";var JY=Hl(),XY=Ds(),YY=Um();BM.exports=function(e){var r=JY({},e),n=YY.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(a,o,s){if(!a.query){var c=XY(a).query;a.query=n(c,r)}s()}}});var JM=j((cke,KM)=>{"use strict";var Bm=_n()("express:view"),Bl=require("path"),QY=require("fs"),eQ=Bl.dirname,WM=Bl.basename,tQ=Bl.extname,VM=Bl.join,rQ=Bl.resolve;KM.exports=Vm;function Vm(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=tQ(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);Bm('require "%s"',i);var a=require(i).__express;if(typeof a!="function")throw new Error('Module "'+i+'" does not provide a view engine.');r.engines[this.ext]=a}this.engine=r.engines[this.ext],this.path=this.lookup(n)}Vm.prototype.lookup=function(e){var r,n=[].concat(this.root);Bm('lookup "%s"',e);for(var i=0;i{var Gm=require("buffer"),hi=Gm.Buffer;function XM(t,e){for(var r in t)e[r]=t[r]}hi.from&&hi.alloc&&hi.allocUnsafe&&hi.allocUnsafeSlow?YM.exports=Gm:(XM(Gm,pw),pw.Buffer=po);function po(t,e,r){return hi(t,e,r)}po.prototype=Object.create(hi.prototype);XM(hi,po);po.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return hi(t,e,r)};po.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=hi(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};po.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return hi(t)};po.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Gm.SlowBuffer(t)}});var mw=j((uke,fw)=>{"use strict";fw.exports=fQ;fw.exports.parse=vQ;var QM=require("path").basename,nQ=Wm().Buffer,iQ=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,aQ=/%[0-9A-Fa-f]{2}/,oQ=/%([0-9A-Fa-f]{2})/g,tz=/[^\x20-\x7e\xa0-\xff]/g,sQ=/\\([\u0000-\u007f])/g,cQ=/([\\"])/g,ez=/;[\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,uQ=/^[\x20-\x7e\x80-\xff]+$/,lQ=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,dQ=/^([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!#$&+.^_`|~-])+)$/,pQ=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function fQ(t,e){var r=e||{},n=r.type||"attachment",i=mQ(t,r.fallback);return hQ(new nz(n,i))}function mQ(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"&&tz.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=QM(t),i=uQ.test(n),a=typeof e!="string"?e&&rz(n):QM(e),o=typeof a=="string"&&a!==n;return(o||!i||aQ.test(n))&&(r["filename*"]=n),(i||o)&&(r.filename=o?a:n),r}}function hQ(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!lQ.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var i,a=Object.keys(e).sort(),o=0;o{"use strict";oz.exports=$Q;var SQ=require("crypto"),iz=require("fs").Stats,az=Object.prototype.toString;function wQ(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=SQ.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 $Q(t,e){if(t==null)throw new TypeError("argument entity is required");var r=EQ(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?kQ(t):wQ(t);return n?"W/"+i:i}function EQ(t){return typeof iz=="function"&&t instanceof iz?!0:t&&typeof t=="object"&&"ctime"in t&&az.call(t.ctime)==="[object Date]"&&"mtime"in t&&az.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function kQ(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var gw=j((dke,cz)=>{"use strict";var TQ=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;cz.exports=IQ;function IQ(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&&TQ.test(i))return!1;if(n&&n!=="*"){var a=e.etag;if(!a)return!1;for(var o=!0,s=PQ(n),c=0;c{OQ.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 dz=j((mke,lz)=>{var fke=require("path"),RQ=require("fs");function Fs(){this.types=Object.create(null),this.extensions=Object.create(null)}Fs.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n{var Zs=1e3,Hs=Zs*60,Bs=Hs*60,fo=Bs*24,CQ=fo*7,NQ=fo*365.25;pz.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return jQ(t);if(r==="number"&&isFinite(t))return e.long?MQ(t):AQ(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function jQ(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*NQ;case"weeks":case"week":case"w":return r*CQ;case"days":case"day":case"d":return r*fo;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Bs;case"minutes":case"minute":case"mins":case"min":case"m":return r*Hs;case"seconds":case"second":case"secs":case"sec":case"s":return r*Zs;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function AQ(t){var e=Math.abs(t);return e>=fo?Math.round(t/fo)+"d":e>=Bs?Math.round(t/Bs)+"h":e>=Hs?Math.round(t/Hs)+"m":e>=Zs?Math.round(t/Zs)+"s":t+"ms"}function MQ(t){var e=Math.abs(t);return e>=fo?Km(t,e,fo,"day"):e>=Bs?Km(t,e,Bs,"hour"):e>=Hs?Km(t,e,Hs,"minute"):e>=Zs?Km(t,e,Zs,"second"):t+" ms"}function Km(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var vw=j((gke,mz)=>{"use strict";mz.exports=zQ;function zQ(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(","),a=[];a.type=e.slice(0,n);for(var o=0;ot-1&&(u=t-1),!(isNaN(c)||isNaN(u)||c>u||c<0)&&a.push({start:c,end:u})}return a.length<1?-1:r&&r.combine?DQ(a):a}function DQ(t){for(var e=t.map(UQ).sort(FQ),r=0,n=1;na.end+1?e[++r]=i:i.end>a.end&&(a.end=i.end,a.index=Math.min(a.index,i.index))}e.length=r+1;var o=e.sort(LQ).map(qQ);return o.type=t.type,o}function UQ(t,e){return{start:t.start,end:t.end,index:e}}function qQ(t){return{start:t.start,end:t.end}}function LQ(t,e){return t.index-e.index}function FQ(t,e){return t.start-e.start}});var Qm=j((vke,ww)=>{"use strict";var yw=eo(),Ht=_n()("send"),mo=ui()("send"),ZQ=K0(),HQ=Ll(),vz=Fl(),BQ=hw(),VQ=gw(),Xm=require("fs"),bw=dz(),yz=fz(),GQ=kl(),WQ=vw(),Vl=require("path"),KQ=vl(),_z=require("stream"),JQ=require("util"),XQ=Vl.extname,bz=Vl.join,_w=Vl.normalize,Sw=Vl.resolve,Jm=Vl.sep,YQ=/^ *bytes=/,xz=3600*24*365*1e3,hz=/(?:^|[\\/])\.\.(?:[\\/]|$)/;ww.exports=QQ;ww.exports.mime=bw;function QQ(t,e,r){return new ht(t,e,r)}function ht(t,e,r){_z.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?xw(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?xw(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"?yz(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),xz),this._root=n.root?Sw(n.root):null,!this._root&&n.from&&this.from(n.from)}JQ.inherits(ht,_z);ht.prototype.etag=mo.function(function(e){return this._etag=!!e,Ht("etag %s",this._etag),this},"send.etag: pass etag as option");ht.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");ht.prototype.index=mo.function(function(e){var r=e?xw(e,"paths argument"):[];return Ht("index %o",e),this._index=r,this},"send.index: pass index as option");ht.prototype.root=function(e){return this._root=Sw(String(e)),Ht("root %s",this._root),this};ht.prototype.from=mo.function(ht.prototype.root,"send.from: pass root as option");ht.prototype.root=mo.function(ht.prototype.root,"send.root: pass root as option");ht.prototype.maxage=mo.function(function(e){return this._maxage=typeof e=="string"?yz(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),xz),Ht("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");ht.prototype.error=function(e,r){if(wz(this,"error"))return this.emit("error",nee(e,r));var n=this.res,i=KQ.message[e]||String(e),a=Sz("Error",vz(i));eee(n),r&&r.headers&&cee(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(a)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(a)};ht.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};ht.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"]};ht.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!=="*"&&see(n).every(function(s){return s!==i&&s!=="W/"+i&&"W/"+s!==i})}var a=Ym(e.headers["if-unmodified-since"]);if(!isNaN(a)){var o=Ym(r.getHeader("Last-Modified"));return isNaN(o)||o>a}return!1};ht.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")};ht.prototype.notModified=function(){var e=this.res;Ht("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};ht.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Ht("headers already sent"),this.error(500,e)};ht.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};ht.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};ht.prototype.isFresh=function(){return VQ(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};ht.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 Ym(n)<=Ym(e)};ht.prototype.redirect=function(e){var r=this.res;if(wz(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=HQ(tee(this.path+"/")),i=Sz("Redirecting","Redirecting to "+vz(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)};ht.prototype.pipe=function(e){var r=this._root;this.res=e;var n=iee(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=_w("."+Jm+n)),hz.test(n))return Ht('malicious path "%s"',n),this.error(403),e;i=n.split(Jm),n=_w(bz(r,n))}else{if(hz.test(n))return Ht('malicious path "%s"',n),this.error(403),e;i=_w(n).split(Jm),n=Sw(n)}if(ree(i)){var a=this._dotfiles;switch(a===void 0&&(a=i[i.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),Ht('%s dotfile "%s"',a,n),a){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)};ht.prototype.send=function(e,r){var n=r.size,i=this.options,a={},o=this.res,s=this.req,c=s.headers.range,u=i.start||0;if(oee(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&&YQ.test(c)){if(c=WQ(n,c,{combine:!0}),this.isRangeFresh()||(Ht("range stale"),c=-2),c===-1)return Ht("range unsatisfiable"),o.setHeader("Content-Range",gz("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",gz("bytes",n,c[0])),u+=c[0].start,n=c[0].end-c[0].start+1)}for(var d in i)a[d]=i[d];if(a.start=u,a.end=Math.max(u,u+n-1),o.setHeader("Content-Length",n),s.method==="HEAD"){o.end();return}this.stream(e,a)};ht.prototype.sendFile=function(e){var r=0,n=this;Ht('stat "%s"',e),Xm.stat(e,function(o,s){if(o&&o.code==="ENOENT"&&!XQ(e)&&e[e.length-1]!==Jm)return i(o);if(o)return n.onStatError(o);if(s.isDirectory())return n.redirect(e);n.emit("file",e,s),n.send(e,s)});function i(a){if(n._extensions.length<=r)return a?n.onStatError(a):n.error(404);var o=e+"."+n._extensions[r++];Ht('stat "%s"',o),Xm.stat(o,function(s,c){if(s)return i(s);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}};ht.prototype.sendIndex=function(e){var r=-1,n=this;function i(a){if(++r>=n._index.length)return a?n.onStatError(a):n.error(404);var o=bz(e,n._index[r]);Ht('stat "%s"',o),Xm.stat(o,function(s,c){if(s)return i(s);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}i()};ht.prototype.stream=function(e,r){var n=this,i=this.res,a=Xm.createReadStream(e,r);this.emit("stream",a),a.pipe(i);function o(){ZQ(a,!0)}GQ(i,o),a.on("error",function(c){o(),n.onStatError(c)}),a.on("end",function(){n.emit("end")})};ht.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=bw.lookup(e);if(!n){Ht("no content-type");return}var i=bw.charsets.lookup(n);Ht("content-type %s",n),r.setHeader("Content-Type",n+(i?"; charset="+i:""))}};ht.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 a=r.mtime.toUTCString();Ht("modified %s",a),n.setHeader("Last-Modified",a)}if(this._etag&&!n.getHeader("ETag")){var o=BQ(r);Ht("etag %s",o),n.setHeader("ETag",o)}};function eee(t){for(var e=aee(t),r=0;r1?"/"+t.substr(e):t}function ree(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function gz(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function Sz(t,e){return` +`}yM.exports=EY;function EY(t,e,r){var n=r||{},i=n.env||process.env.NODE_ENV||"development",a=n.onerror;return function(o){var s,c,u;if(!o&&hM(e)){cw("cannot 404 after headers sent");return}if(o?(u=IY(o),u===void 0?u=RY(e):s=kY(o),c=TY(o,u,i)):(u=404,c="Cannot "+t.method+" "+gY(PY(t))),cw("default %s",u),o&&a&&SY(a,o,t,e),hM(e)){cw("cannot %d after headers sent",u),t.socket&&t.socket.destroy();return}OY(t,e,u,s,c)}}function kY(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 PY(t){try{return yY.original(t).pathname}catch{return"resource"}}function RY(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function hM(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function OY(t,e,r,n,i){function a(){var o=$Y(i);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=vM.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),CY(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(wY(t)){a();return}_Y(t),gM(t,a),t.resume()}function CY(t,e){if(e)for(var r=Object.keys(e),n=0;n{"use strict";SM.exports=NY;function bM(t,e,r){for(var n=0;n0&&Array.isArray(i)?bM(i,e,r-1):e.push(i)}return e}function xM(t,e){for(var r=0;r{EM.exports=$M;var wM=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function $M(t,e,r){r=r||{},e=e||[];var n=r.strict,i=r.end!==!1,a=r.sensitive?"":"i",o=r.lookahead!==!1,s=0,c=e.length,u=0,l=0,d=0,p="",f;if(t instanceof RegExp){for(;f=wM.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(h){return $M(h,e,r).source}),new RegExp(t.join("|"),a);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(h,_,g,m,y,v,b,S){if(h[0]==="\\")return p+=h,d+=2,h;if(h===".")return p+="\\.",s+=1,d+=1,"\\.";if(_||g?p="":p+=t.slice(d,S),d=S+h.length,h==="*")return s+=3,"(.*)";if(h==="/(")return p+="/",s+=2,"/(?:";_=_||"",g=g?"\\.":"",b=b||"",y=y?y.replace(/\\.|\*/,function(w){return w==="*"?"(.*)":w}):p?"((?:(?!/|"+p+").)+?)":"([^/"+g+"]+?)",e.push({name:m,optional:!!b,offset:S+s});var x="(?:"+g+_+y+(v?"((?:[/"+g+"].+?)?)":"")+")"+b;return s+=x.length-h.length,x});f=wM.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,a)}});var uw=j((mke,IM)=>{"use strict";var jY=kM(),AY=bn()("express:router:layer"),MY=Object.prototype.hasOwnProperty;IM.exports=Fs;function Fs(t,e,r){if(!(this instanceof Fs))return new Fs(t,e,r);AY("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=jY(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}Fs.prototype.handle_error=function(e,r,n,i){var a=this.handle;if(a.length!==4)return i(e);try{a(e,r,n,i)}catch(o){i(o)}};Fs.prototype.handle_request=function(e,r,n){var i=this.handle;if(i.length>3)return n();try{i(e,r,n)}catch(a){n(a)}};Fs.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:TM(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,a=1;a{"use strict";var PM=require("http");RM.exports=DY()||zY();function DY(){return PM.METHODS&&PM.METHODS.map(function(e){return e.toLowerCase()})}function zY(){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 lw=j((gke,MM)=>{"use strict";var OM=bn()("express:router:route"),CM=Vl(),NM=uw(),UY=Bm(),jM=Array.prototype.slice,AM=Object.prototype.toString;MM.exports=Zs;function Zs(t){this.path=t,this.stack=[],OM("new %o",t),this.methods={}}Zs.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]};Zs.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=a[i++];if(!l)return n(u);l.method&&l.method!==s?c(u):u?l.handle_error(u,e,r,c):l.handle_request(e,r,c),o=0}};Zs.prototype.all=function(){for(var e=CM(jM.call(arguments)),r=0;r{DM=zM.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var pw=j((vke,FM)=>{"use strict";var qY=lw(),qM=uw(),LY=Bm(),dw=Gl(),Vm=bn()("express:router"),UM=ui()("express"),FY=Vl(),ZY=Ls(),HY=_l(),BY=/^\[object (\S+)\]$/,LM=Array.prototype.slice,VY=Object.prototype.toString,uo=FM.exports=function(t){var e=t||{};function r(n,i,a){r.handle(n,i,a)}return HY(r,uo),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};uo.param=function(e,r){if(typeof e=="function"){UM("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,i=n.length,a;e[0]===":"&&(UM("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(_,v);return}if(++u>100)return setImmediate(g,y);var b=WY(e);if(b==null)return _(v);for(var S,x,w;x!==!0&&a=s.length)return a();if(l=0,d=s[c++],u=d.name,p=n.params[u],f=o[u],h=r[u],p===void 0||!f)return _();if(h&&(h.match===p||h.error&&h.error!=="route"))return n.params[u]=h.value,_(h.error);r[u]=h={error:null,match:p,value:p},g()}function g(m){var y=f[l++];if(h.value=n.params[d.name],m){h.error=m,_(m);return}if(!y)return _();try{y(n,i,g,p,d.name)}catch(v){g(v)}}_()};uo.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 a=FY(LM.call(arguments,r));if(a.length===0)throw new TypeError("Router.use() requires a middleware function");for(var o=0;o");var s=new qM(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);s.route=void 0,this.stack.push(s)}return this};uo.route=function(e){var r=new qY(e),n=new qM(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};LY.concat("all").forEach(function(t){uo[t]=function(e){var r=this.route(e);return r[t].apply(r,LM.call(arguments,1)),this}});function GY(t,e){for(var r=0;r=0;n--)t[n+i]=t[n],n{"use strict";var ZM=_l();HM.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,ZM(r,t.request),ZM(n,t.response),n.locals=n.locals||Object.create(null),i()}}});var fw=j((_ke,VM)=>{"use strict";var rQ=Gl(),nQ=Ls(),iQ=Lm();VM.exports=function(e){var r=rQ({},e),n=iQ.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(a,o,s){if(!a.query){var c=nQ(a).query;a.query=n(c,r)}s()}}});var XM=j((bke,JM)=>{"use strict";var Gm=bn()("express:view"),Wl=require("path"),aQ=require("fs"),oQ=Wl.dirname,KM=Wl.basename,sQ=Wl.extname,GM=Wl.join,cQ=Wl.resolve;JM.exports=Wm;function Wm(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=sQ(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);Gm('require "%s"',i);var a=require(i).__express;if(typeof a!="function")throw new Error('Module "'+i+'" does not provide a view engine.');r.engines[this.ext]=a}this.engine=r.engines[this.ext],this.path=this.lookup(n)}Wm.prototype.lookup=function(e){var r,n=[].concat(this.root);Gm('lookup "%s"',e);for(var i=0;i{var Km=require("buffer"),hi=Km.Buffer;function YM(t,e){for(var r in t)e[r]=t[r]}hi.from&&hi.alloc&&hi.allocUnsafe&&hi.allocUnsafeSlow?QM.exports=Km:(YM(Km,mw),mw.Buffer=lo);function lo(t,e,r){return hi(t,e,r)}lo.prototype=Object.create(hi.prototype);YM(hi,lo);lo.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return hi(t,e,r)};lo.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=hi(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};lo.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return hi(t)};lo.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Km.SlowBuffer(t)}});var gw=j((xke,hw)=>{"use strict";hw.exports=_Q;hw.exports.parse=wQ;var eD=require("path").basename,uQ=Jm().Buffer,lQ=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,dQ=/%[0-9A-Fa-f]{2}/,pQ=/%([0-9A-Fa-f]{2})/g,rD=/[^\x20-\x7e\xa0-\xff]/g,fQ=/\\([\u0000-\u007f])/g,mQ=/([\\"])/g,tD=/;[\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,hQ=/^[\x20-\x7e\x80-\xff]+$/,gQ=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,vQ=/^([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!#$&+.^_`|~-])+)$/,yQ=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function _Q(t,e){var r=e||{},n=r.type||"attachment",i=bQ(t,r.fallback);return xQ(new iD(n,i))}function bQ(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"&&rD.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=eD(t),i=hQ.test(n),a=typeof e!="string"?e&&nD(n):eD(e),o=typeof a=="string"&&a!==n;return(o||!i||dQ.test(n))&&(r["filename*"]=n),(i||o)&&(r.filename=o?a:n),r}}function xQ(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!gQ.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var i,a=Object.keys(e).sort(),o=0;o{"use strict";sD.exports=RQ;var IQ=require("crypto"),aD=require("fs").Stats,oD=Object.prototype.toString;function PQ(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=IQ.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 RQ(t,e){if(t==null)throw new TypeError("argument entity is required");var r=OQ(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?CQ(t):PQ(t);return n?"W/"+i:i}function OQ(t){return typeof aD=="function"&&t instanceof aD?!0:t&&typeof t=="object"&&"ctime"in t&&oD.call(t.ctime)==="[object Date]"&&"mtime"in t&&oD.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function CQ(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var yw=j((wke,uD)=>{"use strict";var NQ=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;uD.exports=jQ;function jQ(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&&NQ.test(i))return!1;if(n&&n!=="*"){var a=e.etag;if(!a)return!1;for(var o=!0,s=AQ(n),c=0;c{MQ.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 pD=j((kke,dD)=>{var Eke=require("path"),DQ=require("fs");function Bs(){this.types=Object.create(null),this.extensions=Object.create(null)}Bs.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n{var Vs=1e3,Gs=Vs*60,Ws=Gs*60,po=Ws*24,zQ=po*7,UQ=po*365.25;fD.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return qQ(t);if(r==="number"&&isFinite(t))return e.long?FQ(t):LQ(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function qQ(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*UQ;case"weeks":case"week":case"w":return r*zQ;case"days":case"day":case"d":return r*po;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ws;case"minutes":case"minute":case"mins":case"min":case"m":return r*Gs;case"seconds":case"second":case"secs":case"sec":case"s":return r*Vs;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function LQ(t){var e=Math.abs(t);return e>=po?Math.round(t/po)+"d":e>=Ws?Math.round(t/Ws)+"h":e>=Gs?Math.round(t/Gs)+"m":e>=Vs?Math.round(t/Vs)+"s":t+"ms"}function FQ(t){var e=Math.abs(t);return e>=po?Xm(t,e,po,"day"):e>=Ws?Xm(t,e,Ws,"hour"):e>=Gs?Xm(t,e,Gs,"minute"):e>=Vs?Xm(t,e,Vs,"second"):t+" ms"}function Xm(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var _w=j((Ike,hD)=>{"use strict";hD.exports=ZQ;function ZQ(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(","),a=[];a.type=e.slice(0,n);for(var o=0;ot-1&&(u=t-1),!(isNaN(c)||isNaN(u)||c>u||c<0)&&a.push({start:c,end:u})}return a.length<1?-1:r&&r.combine?HQ(a):a}function HQ(t){for(var e=t.map(BQ).sort(WQ),r=0,n=1;na.end+1?e[++r]=i:i.end>a.end&&(a.end=i.end,a.index=Math.min(a.index,i.index))}e.length=r+1;var o=e.sort(GQ).map(VQ);return o.type=t.type,o}function BQ(t,e){return{start:t.start,end:t.end,index:e}}function VQ(t){return{start:t.start,end:t.end}}function GQ(t,e){return t.index-e.index}function WQ(t,e){return t.start-e.start}});var th=j((Pke,Ew)=>{"use strict";var bw=Qa(),Bt=bn()("send"),fo=ui()("send"),KQ=X0(),JQ=Hl(),yD=Bl(),XQ=vw(),YQ=yw(),Qm=require("fs"),Sw=pD(),_D=mD(),QQ=Pl(),eee=_w(),Kl=require("path"),tee=bl(),bD=require("stream"),ree=require("util"),nee=Kl.extname,xD=Kl.join,xw=Kl.normalize,$w=Kl.resolve,Ym=Kl.sep,iee=/^ *bytes=/,SD=3600*24*365*1e3,gD=/(?:^|[\\/])\.\.(?:[\\/]|$)/;Ew.exports=aee;Ew.exports.mime=Sw;function aee(t,e,r){return new gt(t,e,r)}function gt(t,e,r){bD.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&&fo("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?ww(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?ww(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"?_D(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),SD),this._root=n.root?$w(n.root):null,!this._root&&n.from&&this.from(n.from)}ree.inherits(gt,bD);gt.prototype.etag=fo.function(function(e){return this._etag=!!e,Bt("etag %s",this._etag),this},"send.etag: pass etag as option");gt.prototype.hidden=fo.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,Bt("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");gt.prototype.index=fo.function(function(e){var r=e?ww(e,"paths argument"):[];return Bt("index %o",e),this._index=r,this},"send.index: pass index as option");gt.prototype.root=function(e){return this._root=$w(String(e)),Bt("root %s",this._root),this};gt.prototype.from=fo.function(gt.prototype.root,"send.from: pass root as option");gt.prototype.root=fo.function(gt.prototype.root,"send.root: pass root as option");gt.prototype.maxage=fo.function(function(e){return this._maxage=typeof e=="string"?_D(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),SD),Bt("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");gt.prototype.error=function(e,r){if($D(this,"error"))return this.emit("error",uee(e,r));var n=this.res,i=tee.message[e]||String(e),a=wD("Error",yD(i));oee(n),r&&r.headers&&mee(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(a)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(a)};gt.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};gt.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"]};gt.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!=="*"&&fee(n).every(function(s){return s!==i&&s!=="W/"+i&&"W/"+s!==i})}var a=eh(e.headers["if-unmodified-since"]);if(!isNaN(a)){var o=eh(r.getHeader("Last-Modified"));return isNaN(o)||o>a}return!1};gt.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")};gt.prototype.notModified=function(){var e=this.res;Bt("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};gt.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Bt("headers already sent"),this.error(500,e)};gt.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};gt.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};gt.prototype.isFresh=function(){return YQ(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};gt.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 eh(n)<=eh(e)};gt.prototype.redirect=function(e){var r=this.res;if($D(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=JQ(see(this.path+"/")),i=wD("Redirecting","Redirecting to "+yD(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)};gt.prototype.pipe=function(e){var r=this._root;this.res=e;var n=lee(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=xw("."+Ym+n)),gD.test(n))return Bt('malicious path "%s"',n),this.error(403),e;i=n.split(Ym),n=xw(xD(r,n))}else{if(gD.test(n))return Bt('malicious path "%s"',n),this.error(403),e;i=xw(n).split(Ym),n=$w(n)}if(cee(i)){var a=this._dotfiles;switch(a===void 0&&(a=i[i.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),Bt('%s dotfile "%s"',a,n),a){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)};gt.prototype.send=function(e,r){var n=r.size,i=this.options,a={},o=this.res,s=this.req,c=s.headers.range,u=i.start||0;if(pee(o)){this.headersAlreadySent();return}if(Bt('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&&iee.test(c)){if(c=eee(n,c,{combine:!0}),this.isRangeFresh()||(Bt("range stale"),c=-2),c===-1)return Bt("range unsatisfiable"),o.setHeader("Content-Range",vD("bytes",n)),this.error(416,{headers:{"Content-Range":o.getHeader("Content-Range")}});c!==-2&&c.length===1&&(Bt("range %j",c),o.statusCode=206,o.setHeader("Content-Range",vD("bytes",n,c[0])),u+=c[0].start,n=c[0].end-c[0].start+1)}for(var d in i)a[d]=i[d];if(a.start=u,a.end=Math.max(u,u+n-1),o.setHeader("Content-Length",n),s.method==="HEAD"){o.end();return}this.stream(e,a)};gt.prototype.sendFile=function(e){var r=0,n=this;Bt('stat "%s"',e),Qm.stat(e,function(o,s){if(o&&o.code==="ENOENT"&&!nee(e)&&e[e.length-1]!==Ym)return i(o);if(o)return n.onStatError(o);if(s.isDirectory())return n.redirect(e);n.emit("file",e,s),n.send(e,s)});function i(a){if(n._extensions.length<=r)return a?n.onStatError(a):n.error(404);var o=e+"."+n._extensions[r++];Bt('stat "%s"',o),Qm.stat(o,function(s,c){if(s)return i(s);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}};gt.prototype.sendIndex=function(e){var r=-1,n=this;function i(a){if(++r>=n._index.length)return a?n.onStatError(a):n.error(404);var o=xD(e,n._index[r]);Bt('stat "%s"',o),Qm.stat(o,function(s,c){if(s)return i(s);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}i()};gt.prototype.stream=function(e,r){var n=this,i=this.res,a=Qm.createReadStream(e,r);this.emit("stream",a),a.pipe(i);function o(){KQ(a,!0)}QQ(i,o),a.on("error",function(c){o(),n.onStatError(c)}),a.on("end",function(){n.emit("end")})};gt.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=Sw.lookup(e);if(!n){Bt("no content-type");return}var i=Sw.charsets.lookup(n);Bt("content-type %s",n),r.setHeader("Content-Type",n+(i?"; charset="+i:""))}};gt.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(Bt("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"),Bt("cache-control %s",i),n.setHeader("Cache-Control",i)}if(this._lastModified&&!n.getHeader("Last-Modified")){var a=r.mtime.toUTCString();Bt("modified %s",a),n.setHeader("Last-Modified",a)}if(this._etag&&!n.getHeader("ETag")){var o=XQ(r);Bt("etag %s",o),n.setHeader("ETag",o)}};function oee(t){for(var e=dee(t),r=0;r1?"/"+t.substr(e):t}function cee(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function vD(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function wD(t,e){return` @@ -53,8 +53,8 @@ return fn.apply(this, arguments)
`+e+`
-`}function nee(t,e){return e?e instanceof Error?yw(t,e,{expose:!1}):yw(t,e):yw(t)}function iee(t){try{return decodeURIComponent(t)}catch{return-1}}function aee(t){return typeof t.getHeaderNames!="function"?Object.keys(t._headers||{}):t.getHeaderNames()}function wz(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function oee(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function xw(t,e){for(var r=[].concat(t||[]),n=0;n{"use strict";$z.exports=uee;function uee(t){if(!t)throw new TypeError("argument req is required");var e=dee(t.headers["x-forwarded-for"]||""),r=lee(t),n=[r].concat(e);return n}function lee(t){return t.socket?t.socket.remoteAddress:t.connection.remoteAddress}function dee(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 Tz=j((kz,Gl)=>{(function(){var t,e,r,n,i,a,o,s,c;e={},s=this,typeof Gl<"u"&&Gl!==null&&Gl.exports?Gl.exports=e:s.ipaddr=e,o=function(u,l,d,p){var f,h;if(u.length!==l.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(f=0;p>0;){if(h=d-p,h<0&&(h=0),u[f]>>h!==l[f]>>h)return!1;p-=d,f+=1}return!0},e.subnetMatch=function(u,l,d){var p,f,h,_,y;d==null&&(d="unicast");for(h in l)for(_=l[h],_[0]&&!(_[0]instanceof Array)&&(_=[_]),p=0,f=_.length;p=0;d=p+=-1)if(f=this.octets[d],f in y){if(_=y[f],h&&_!==0)return null;_!==8&&(h=!0),l+=_}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,h;if(d=function(_){return _[0]==="0"&&_[1]!=="x"?parseInt(_,8):parseInt(_)},l=u.match(n.fourOctet))return(function(){var _,y,m,v;for(m=l.slice(1,6),v=[],_=0,y=m.length;_4294967295||h<0)throw new Error("ipaddr: address outside defined range");return(function(){var _,y;for(y=[],f=_=0;_<=24;f=_+=8)y.push(h>>f&255);return y})().reverse()}else return null},e.IPv6=(function(){function u(l,d){var p,f,h,_,y,m;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(m=this.parts,h=0,_=m.length;h<_;h++)if(y=m[h],!(0<=y&&y<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");d&&(this.zoneId=d)}return u.prototype.kind=function(){return"ipv6"},u.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},u.prototype.toRFC5952String=function(){var l,d,p,f,h;for(f=/((^|:)(0(:|$)){2,})/g,h=this.toNormalizedString(),l=0,d=-1;p=f.exec(h);)p[0].length>d&&(l=p.index,d=p[0].length);return d<0?h:h.substring(0,l)+"::"+h.substring(l+d)},u.prototype.toByteArray=function(){var l,d,p,f,h;for(l=[],h=this.parts,d=0,p=h.length;d>8),l.push(f&255);return l},u.prototype.toNormalizedString=function(){var l,d,p;return l=(function(){var f,h,_,y;for(_=this.parts,y=[],f=0,h=_.length;f>8,l&255,d>>8,d&255])},u.prototype.prefixLengthFromSubnetMask=function(){var l,d,p,f,h,_,y;for(y={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,h=!1,d=p=7;p>=0;d=p+=-1)if(f=this.parts[d],f in y){if(_=y[f],h&&_!==0)return null;_!==16&&(h=!0),l+=_}else return null;return 128-l},u})(),i="(?:[0-9a-f]+::?)+",c="%[0-9a-z]{1,}",a={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,h,_,y;if(u.indexOf("::")!==u.lastIndexOf("::"))return null;for(y=(u.match(a.zoneIndex)||[])[0],y&&(y=y.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(_=l-d,h=":";_--;)h+="0:";return u=u.replace("::",h),u[0]===":"&&(u=u.slice(1)),u[u.length-1]===":"&&(u=u.slice(0,-1)),l=(function(){var m,v,g,b;for(g=u.split(":"),b=[],m=0,v=g.length;m=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(kz)});var $w=j((_ke,rh)=>{"use strict";rh.exports=yee;rh.exports.all=Oz;rh.exports.compile=Rz;var pee=Ez(),Pz=Tz(),fee=/^[0-9]+$/,eh=Pz.isValid,th=Pz.parse,Iz={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 Oz(t,e){var r=pee(t);if(!e)return r;typeof e!="function"&&(e=Rz(e));for(var n=0;ni)throw new TypeError("invalid range on address: "+t);return[n,a]}function vee(t){var e=th(t),r=e.kind();return r==="ipv4"?e.prefixLengthFromSubnetMask():null}function yee(t,e){if(!t)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var r=Oz(t,e),n=r[r.length-1];return n}function _ee(){return!1}function bee(t){return function(r){if(!eh(r))return!1;for(var n=th(r),i,a=n.kind(),o=0;o{"use strict";var Cz=Wm().Buffer,See=mw(),Nz=hl(),jz=ui()("express"),wee=Zl(),$ee=Qm().mime,Eee=hw(),kee=$w(),Tee=Um(),Iee=require("querystring");Cr.etag=Az({weak:!1});Cr.wetag=Az({weak:!0});Cr.isAbsolute=function(t){if(t[0]==="/"||t[1]===":"&&(t[2]==="\\"||t[2]==="/")||t.substring(0,2)==="\\\\")return!0};Cr.flatten=jz.function(wee,"utils.flatten: use array-flatten npm module instead");Cr.normalizeType=function(t){return~t.indexOf("/")?Pee(t):{value:$ee.lookup(t),params:{}}};Cr.normalizeTypes=function(t){for(var e=[],r=0;r{"use strict";var Cee=yM(),Nee=lw(),kw=Zm(),jee=HM(),Aee=dw(),nh=_n()("express:application"),Mee=JM(),zee=require("http"),Dee=ya().compileETag,Uee=ya().compileQueryParser,qee=ya().compileTrust,Lee=ui()("express"),Fee=Zl(),Ew=Hl(),Zee=require("path").resolve,Vs=gl(),Hee=Object.prototype.hasOwnProperty,Iw=Array.prototype.slice,er=Mz=zz.exports={},Tw="@@symbol:trust_proxy_default";er.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};er.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,Tw,{configurable:!0,value:!0}),nh("booting in %s mode",e),this.on("mount",function(n){this.settings[Tw]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),Vs(this.request,n.request),Vs(this.response,n.response),Vs(this.engines,n.engines),Vs(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",Mee),this.set("views",Zee("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.`)}})};er.lazyrouter=function(){this._router||(this._router=new Nee({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(Aee(this.get("query parser fn"))),this._router.use(jee.init(this)))};er.handle=function(e,r,n){var i=this._router,a=n||Cee(e,r,{env:this.get("env"),onerror:Bee.bind(this)});if(!i){nh("no routes defined on app"),a();return}i.handle(e,r,a)};er.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 a=Fee(Iw.call(arguments,r));if(a.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var o=this._router;return a.forEach(function(s){if(!s||!s.handle||!s.set)return o.use(n,s);nh(".use app under %s",n),s.mountpath=n,s.parent=this,o.use(n,function(u,l,d){var p=u.app;s.handle(u,l,function(f){Vs(u,p.request),Vs(l,p.response),d(f)})}),s.emit("mount",this)},this),this};er.route=function(e){return this.lazyrouter(),this._router.route(e)};er.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};er.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,a(p)}c.cache&&(i[e]=u)}Vee(u,c,a)};er.listen=function(){var e=zee.createServer(this);return e.listen.apply(e,arguments)};function Bee(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function Vee(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var Fz=j((xke,Pw)=>{"use strict";Pw.exports=Lz;Pw.exports.preferredCharsets=Lz;var Gee=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Wee(t){for(var e=t.split(","),r=0,n=0;r0}});var Gz=j((Ske,Ow)=>{"use strict";Ow.exports=Vz;Ow.exports.preferredEncodings=Vz;var Qee=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function ete(t){for(var e=t.split(","),r=!1,n=1,i=0,a=0;i0}});var Yz=j((wke,Rw)=>{"use strict";Rw.exports=Xz;Rw.exports.preferredLanguages=Xz;var ite=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function ate(t){for(var e=t.split(","),r=0,n=0;r0}});var iD=j(($ke,Cw)=>{"use strict";Cw.exports=rD;Cw.exports.preferredMediaTypes=rD;var ute=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function lte(t){for(var e=hte(t),r=0,n=0;r0)if(a.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 rD(t,e){var r=lte(t===void 0?"*/*":t||"");if(!e)return r.filter(eD).sort(Qz).map(fte);var n=e.map(function(a,o){return dte(a,r,o)});return n.filter(eD).sort(Qz).map(function(a){return e[n.indexOf(a)]})}function Qz(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function fte(t){return t.type+"/"+t.subtype}function eD(t){return t.q>0}function nD(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function mte(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 hte(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var vte=Fz(),yte=Gz(),_te=Yz(),bte=iD();Nw.exports=St;Nw.exports.Negotiator=St;function St(t){if(!(this instanceof St))return new St(t);this.request=t}St.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};St.prototype.charsets=function(e){return vte(this.request.headers["accept-charset"],e)};St.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};St.prototype.encodings=function(e){return yte(this.request.headers["accept-encoding"],e)};St.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};St.prototype.languages=function(e){return _te(this.request.headers["accept-language"],e)};St.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};St.prototype.mediaTypes=function(e){return bte(this.request.headers.accept,e)};St.prototype.preferredCharset=St.prototype.charset;St.prototype.preferredCharsets=St.prototype.charsets;St.prototype.preferredEncoding=St.prototype.encoding;St.prototype.preferredEncodings=St.prototype.encodings;St.prototype.preferredLanguage=St.prototype.language;St.prototype.preferredLanguages=St.prototype.languages;St.prototype.preferredMediaType=St.prototype.mediaType;St.prototype.preferredMediaTypes=St.prototype.mediaTypes});var sD=j((kke,oD)=>{"use strict";var xte=aD(),Ste=TS();oD.exports=on;function on(t){if(!(this instanceof on))return new on(t);this.headers=t.headers,this.negotiator=new xte(t)}on.prototype.type=on.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 ih=sD(),Wl=ui()("express"),Ete=require("net").isIP,kte=Rs(),Tte=require("http"),Ite=gw(),Pte=vw(),Ote=Ds(),cD=$w(),Tt=Object.create(Tte.IncomingMessage.prototype);uD.exports=Tt;Tt.get=Tt.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]}};Tt.accepts=function(){var t=ih(this);return t.types.apply(t,arguments)};Tt.acceptsEncodings=function(){var t=ih(this);return t.encodings.apply(t,arguments)};Tt.acceptsEncoding=Wl.function(Tt.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");Tt.acceptsCharsets=function(){var t=ih(this);return t.charsets.apply(t,arguments)};Tt.acceptsCharset=Wl.function(Tt.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");Tt.acceptsLanguages=function(){var t=ih(this);return t.languages.apply(t,arguments)};Tt.acceptsLanguage=Wl.function(Tt.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");Tt.range=function(e,r){var n=this.get("Range");if(n)return Pte(e,n,r)};Tt.param=function(e,r){var n=this.params||{},i=this.body||{},a=this.query||{},o=arguments.length===1?"name":"name, default";return Wl("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]:a[e]!=null?a[e]:r};Tt.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?Ite(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});Bn(Tt,"stale",function(){return!this.fresh});Bn(Tt,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function Bn(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var fD=j(ah=>{var pD=require("crypto");ah.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+"."+pD.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};ah.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=ah.sign(r,e);return dD(n)==dD(t)?r:!1};function dD(t){return pD.createHash("sha1").update(t).digest("hex")}});var gD=j(jw=>{"use strict";jw.parse=zte;jw.serialize=Dte;var Rte=Object.prototype.toString,Cte=Object.prototype.hasOwnProperty,Nte=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,jte=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,Ate=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,Mte=/^[\u0020-\u003A\u003D-\u007E]*$/;function zte(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||Ute,a=0,o=0,s=0;do{if(o=t.indexOf("=",a),o===-1)break;if(s=t.indexOf(";",a),s===-1)s=n;else if(o>s){a=t.lastIndexOf(";",o-1)+1;continue}var c=mD(t,a,o),u=hD(t,o,c),l=t.slice(c,u);if(!Cte.call(r,l)){var d=mD(t,o+1,s),p=hD(t,s,d);t.charCodeAt(d)===34&&t.charCodeAt(p-1)===34&&(d++,p--);var f=t.slice(d,p);r[l]=Lte(f,i)}a=s+1}while(ar;){var n=t.charCodeAt(--e);if(n!==32&&n!==9)return e+1}return r}function Dte(t,e,r){var n=r&&r.encode||encodeURIComponent;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!Nte.test(t))throw new TypeError("argument name is invalid");var i=n(e);if(!jte.test(i))throw new TypeError("argument val is invalid");var a=t+"="+i;if(!r)return a;if(r.maxAge!=null){var o=Math.floor(r.maxAge);if(!isFinite(o))throw new TypeError("option maxAge is invalid");a+="; Max-Age="+o}if(r.domain){if(!Ate.test(r.domain))throw new TypeError("option domain is invalid");a+="; Domain="+r.domain}if(r.path){if(!Mte.test(r.path))throw new TypeError("option path is invalid");a+="; Path="+r.path}if(r.expires){var s=r.expires;if(!qte(s)||isNaN(s.valueOf()))throw new TypeError("option expires is invalid");a+="; Expires="+s.toUTCString()}if(r.httpOnly&&(a+="; HttpOnly"),r.secure&&(a+="; Secure"),r.partitioned&&(a+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":a+="; Priority=Low";break;case"medium":a+="; Priority=Medium";break;case"high":a+="; 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:a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return a}function Ute(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function qte(t){return Rte.call(t)==="[object Date]"}function Lte(t,e){try{return e(t)}catch{return t}}});var Mw=j((Oke,Aw)=>{"use strict";Aw.exports=Zte;Aw.exports.append=yD;var Fte=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function yD(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:vD(String(e)),n=0;n{"use strict";var Kl=Wm().Buffer,_D=mw(),Hte=eo(),Hr=ui()("express"),Bte=Ll(),Vte=Fl(),Gte=require("http"),Wte=ya().isAbsolute,Kte=kl(),bD=require("path"),oh=vl(),xD=Hl(),Jte=fD().sign,Xte=ya().normalizeType,Yte=ya().normalizeTypes,Qte=ya().setCharset,ere=gD(),zw=Qm(),tre=bD.extname,SD=zw.mime,rre=bD.resolve,nre=Mw(),Ot=Object.create(Gte.ServerResponse.prototype);ED.exports=Ot;var ire=/;\s*charset\s*=/;Ot.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&Hr("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};Ot.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(", "))};Ot.send=function(e){var r=e,n,i=this.req,a,o=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(Hr("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(Hr("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"),Hr("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=oh.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(Kl.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",a=this.get("Content-Type"),typeof a=="string"&&this.set("Content-Type",Qte(a,"utf-8")));var s=o.get("etag fn"),c=!this.get("ETag")&&typeof s=="function",u;r!==void 0&&(Kl.isBuffer(r)?u=r.length:!c&&r.length<1e3?u=Kl.byteLength(r,n):(r=Kl.from(r,n),n=void 0,u=r.length),this.set("Content-Length",u));var l;return c&&u!==void 0&&(l=s(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};Ot.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(Hr("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(Hr("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"),a=n.get("json replacer"),o=n.get("json spaces"),s=$D(r,a,o,i);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(s)};Ot.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(Hr("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(Hr("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"),a=n.get("json replacer"),o=n.get("json spaces"),s=$D(r,a,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,""),s===void 0?s="":typeof s=="string"&&(s=s.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),s="/**/ typeof "+c+" === 'function' && "+c+"("+s+");"),this.send(s)};Ot.sendStatus=function(e){var r=oh.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};Ot.sendFile=function(e,r,n){var i=n,a=this.req,o=this,s=a.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&&!Wte(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var u=encodeURI(e),l=zw(a,u,c);wD(o,l,c,function(d){if(i)return i(d);if(d&&d.code==="EISDIR")return s();d&&d.code!=="ECONNABORTED"&&d.syscall!=="write"&&s(d)})};Ot.sendfile=function(t,e,r){var n=r,i=this.req,a=this,o=i.next,s=e||{};typeof e=="function"&&(n=e,s={});var c=zw(i,t,s);wD(a,c,s,function(u){if(n)return n(u);if(u&&u.code==="EISDIR")return o();u&&u.code!=="ECONNABORTED"&&u.syscall!=="write"&&o(u)})};Ot.sendfile=Hr.function(Ot.sendfile,"res.sendfile: Use res.sendFile instead");Ot.download=function(e,r,n,i){var a=i,o=r,s=n||null;typeof r=="function"?(a=r,o=null,s=null):typeof n=="function"&&(a=n,s=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(o=null,s=r);var c={"Content-Disposition":_D(o||e)};if(s&&s.headers)for(var u=Object.keys(s.headers),l=0;l0?e.accepts(n):!1;return this.vary("Accept"),i?(this.set("Content-Type",Xte(i).value),t[i](e,this,r)):t.default?t.default(e,this,r):r(Hte(406,{types:Yte(n).map(function(a){return a.value})})),this};Ot.attachment=function(e){return e&&this.type(tre(e)),this.set("Content-Disposition",_D(e)),this};Ot.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)};Ot.set=Ot.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(!ire.test(n)){var i=SD.charsets.lookup(n.split(";")[0]);i&&(n+="; charset="+i.toLowerCase())}}this.setHeader(e,n)}else for(var a in e)this.set(a,e[a]);return this};Ot.get=function(t){return this.getHeader(t)};Ot.clearCookie=function(e,r){r&&(r.maxAge&&Hr('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&&Hr('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=xD({expires:new Date(1),path:"/"},r);return this.cookie(e,"",n)};Ot.cookie=function(t,e,r){var n=xD({},r),i=this.req.secret,a=n.signed;if(a&&!i)throw new Error('cookieParser("secret") required for signed cookies');var o=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(a&&(o="s:"+Jte(o,i)),n.maxAge!=null){var s=n.maxAge-0;isNaN(s)||(n.expires=new Date(Date.now()+s),n.maxAge=Math.floor(s/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",ere.serialize(t,String(o),n)),this};Ot.location=function(e){var r;return e==="back"?(Hr('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",Bte(r))};Ot.redirect=function(e){var r=e,n,i=302;arguments.length===2&&(typeof arguments[0]=="number"?(i=arguments[0],r=arguments[1]):(Hr("res.redirect(url, status): Use res.redirect(status, url) instead"),i=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){n=oh.message[i]+". Redirecting to "+r},html:function(){var a=Vte(r);n="

"+oh.message[i]+". Redirecting to "+a+"

"},default:function(){n=""}}),this.statusCode=i,this.set("Content-Length",Kl.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};Ot.vary=function(t){return!t||Array.isArray(t)&&!t.length?(Hr("res.vary(): Provide a field name"),this):(nre(this,t),this)};Ot.render=function(e,r,n){var i=this.req.app,a=n,o=r||{},s=this.req,c=this;typeof r=="function"&&(a=r,o={}),o._locals=c.locals,a=a||function(u,l){if(u)return s.next(u);c.send(l)},i.render(e,o,a)};function wD(t,e,r,n){var i=!1,a;function o(){if(!i){i=!0;var f=new Error("Request aborted");f.code="ECONNABORTED",n(f)}}function s(){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(){a=!1}function d(f){if(f&&f.code==="ECONNRESET")return o();if(f)return c(f);i||setImmediate(function(){if(a!==!1&&!i){o();return}i||(i=!0,n())})}function p(){a=!0}e.on("directory",s),e.on("end",u),e.on("error",c),e.on("file",l),e.on("stream",p),Kte(t,d),r.headers&&e.on("headers",function(h){for(var _=r.headers,y=Object.keys(_),m=0;m&]/g,function(a){switch(a.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return a}})),i}});var ID=j((Cke,Uw)=>{"use strict";var are=Ll(),ore=Fl(),Dw=Ds(),sre=require("path").resolve,TD=Qm(),cre=require("url");Uw.exports=ure;Uw.exports.mime=TD.mime;function ure(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,a=r.setHeaders;if(a&&typeof a!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=sre(t);var o=i?fre():pre();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=Dw.original(c),f=Dw(c).pathname;f==="/"&&p.pathname.substr(-1)!=="/"&&(f="");var h=TD(c,f,r);h.on("directory",o),a&&h.on("headers",a),n&&h.on("file",function(){d=!0}),h.on("error",function(y){if(d||!(y.statusCode<500)){l(y);return}l()}),h.pipe(u)}}function lre(t){for(var e=0;e1?"/"+t.substr(e):t}function dre(t,e){return` +`}function uee(t,e){return e?e instanceof Error?bw(t,e,{expose:!1}):bw(t,e):bw(t)}function lee(t){try{return decodeURIComponent(t)}catch{return-1}}function dee(t){return typeof t.getHeaderNames!="function"?Object.keys(t._headers||{}):t.getHeaderNames()}function $D(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function pee(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function ww(t,e){for(var r=[].concat(t||[]),n=0;n{"use strict";ED.exports=hee;function hee(t){if(!t)throw new TypeError("argument req is required");var e=vee(t.headers["x-forwarded-for"]||""),r=gee(t),n=[r].concat(e);return n}function gee(t){return t.socket?t.socket.remoteAddress:t.connection.remoteAddress}function vee(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 ID=j((TD,Jl)=>{(function(){var t,e,r,n,i,a,o,s,c;e={},s=this,typeof Jl<"u"&&Jl!==null&&Jl.exports?Jl.exports=e:s.ipaddr=e,o=function(u,l,d,p){var f,h;if(u.length!==l.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(f=0;p>0;){if(h=d-p,h<0&&(h=0),u[f]>>h!==l[f]>>h)return!1;p-=d,f+=1}return!0},e.subnetMatch=function(u,l,d){var p,f,h,_,g;d==null&&(d="unicast");for(h in l)for(_=l[h],_[0]&&!(_[0]instanceof Array)&&(_=[_]),p=0,f=_.length;p=0;d=p+=-1)if(f=this.octets[d],f in g){if(_=g[f],h&&_!==0)return null;_!==8&&(h=!0),l+=_}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,h;if(d=function(_){return _[0]==="0"&&_[1]!=="x"?parseInt(_,8):parseInt(_)},l=u.match(n.fourOctet))return(function(){var _,g,m,y;for(m=l.slice(1,6),y=[],_=0,g=m.length;_4294967295||h<0)throw new Error("ipaddr: address outside defined range");return(function(){var _,g;for(g=[],f=_=0;_<=24;f=_+=8)g.push(h>>f&255);return g})().reverse()}else return null},e.IPv6=(function(){function u(l,d){var p,f,h,_,g,m;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(m=this.parts,h=0,_=m.length;h<_;h++)if(g=m[h],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");d&&(this.zoneId=d)}return u.prototype.kind=function(){return"ipv6"},u.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},u.prototype.toRFC5952String=function(){var l,d,p,f,h;for(f=/((^|:)(0(:|$)){2,})/g,h=this.toNormalizedString(),l=0,d=-1;p=f.exec(h);)p[0].length>d&&(l=p.index,d=p[0].length);return d<0?h:h.substring(0,l)+"::"+h.substring(l+d)},u.prototype.toByteArray=function(){var l,d,p,f,h;for(l=[],h=this.parts,d=0,p=h.length;d>8),l.push(f&255);return l},u.prototype.toNormalizedString=function(){var l,d,p;return l=(function(){var f,h,_,g;for(_=this.parts,g=[],f=0,h=_.length;f>8,l&255,d>>8,d&255])},u.prototype.prefixLengthFromSubnetMask=function(){var l,d,p,f,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,h=!1,d=p=7;p>=0;d=p+=-1)if(f=this.parts[d],f in g){if(_=g[f],h&&_!==0)return null;_!==16&&(h=!0),l+=_}else return null;return 128-l},u})(),i="(?:[0-9a-f]+::?)+",c="%[0-9a-z]{1,}",a={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,h,_,g;if(u.indexOf("::")!==u.lastIndexOf("::"))return null;for(g=(u.match(a.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(_=l-d,h=":";_--;)h+="0:";return u=u.replace("::",h),u[0]===":"&&(u=u.slice(1)),u[u.length-1]===":"&&(u=u.slice(0,-1)),l=(function(){var m,y,v,b;for(v=u.split(":"),b=[],m=0,y=v.length;m=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(TD)});var kw=j((Oke,ih)=>{"use strict";ih.exports=$ee;ih.exports.all=OD;ih.exports.compile=CD;var yee=kD(),RD=ID(),_ee=/^[0-9]+$/,rh=RD.isValid,nh=RD.parse,PD={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 OD(t,e){var r=yee(t);if(!e)return r;typeof e!="function"&&(e=CD(e));for(var n=0;ni)throw new TypeError("invalid range on address: "+t);return[n,a]}function wee(t){var e=nh(t),r=e.kind();return r==="ipv4"?e.prefixLengthFromSubnetMask():null}function $ee(t,e){if(!t)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var r=OD(t,e),n=r[r.length-1];return n}function Eee(){return!1}function kee(t){return function(r){if(!rh(r))return!1;for(var n=nh(r),i,a=n.kind(),o=0;o{"use strict";var ND=Jm().Buffer,Iee=gw(),jD=yl(),AD=ui()("express"),Pee=Vl(),Ree=th().mime,Oee=vw(),Cee=kw(),Nee=Lm(),jee=require("querystring");Cr.etag=MD({weak:!1});Cr.wetag=MD({weak:!0});Cr.isAbsolute=function(t){if(t[0]==="/"||t[1]===":"&&(t[2]==="\\"||t[2]==="/")||t.substring(0,2)==="\\\\")return!0};Cr.flatten=AD.function(Pee,"utils.flatten: use array-flatten npm module instead");Cr.normalizeType=function(t){return~t.indexOf("/")?Aee(t):{value:Ree.lookup(t),params:{}}};Cr.normalizeTypes=function(t){for(var e=[],r=0;r{"use strict";var zee=_M(),Uee=pw(),Iw=Bm(),qee=BM(),Lee=fw(),ah=bn()("express:application"),Fee=XM(),Zee=require("http"),Hee=va().compileETag,Bee=va().compileQueryParser,Vee=va().compileTrust,Gee=ui()("express"),Wee=Vl(),Tw=Gl(),Kee=require("path").resolve,Ks=_l(),Jee=Object.prototype.hasOwnProperty,Rw=Array.prototype.slice,er=DD=zD.exports={},Pw="@@symbol:trust_proxy_default";er.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};er.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,Pw,{configurable:!0,value:!0}),ah("booting in %s mode",e),this.on("mount",function(n){this.settings[Pw]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),Ks(this.request,n.request),Ks(this.response,n.response),Ks(this.engines,n.engines),Ks(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",Fee),this.set("views",Kee("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.`)}})};er.lazyrouter=function(){this._router||(this._router=new Uee({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(Lee(this.get("query parser fn"))),this._router.use(qee.init(this)))};er.handle=function(e,r,n){var i=this._router,a=n||zee(e,r,{env:this.get("env"),onerror:Xee.bind(this)});if(!i){ah("no routes defined on app"),a();return}i.handle(e,r,a)};er.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 a=Wee(Rw.call(arguments,r));if(a.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var o=this._router;return a.forEach(function(s){if(!s||!s.handle||!s.set)return o.use(n,s);ah(".use app under %s",n),s.mountpath=n,s.parent=this,o.use(n,function(u,l,d){var p=u.app;s.handle(u,l,function(f){Ks(u,p.request),Ks(l,p.response),d(f)})}),s.emit("mount",this)},this),this};er.route=function(e){return this.lazyrouter(),this._router.route(e)};er.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};er.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,a(p)}c.cache&&(i[e]=u)}Yee(u,c,a)};er.listen=function(){var e=Zee.createServer(this);return e.listen.apply(e,arguments)};function Xee(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function Yee(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var ZD=j((Nke,Ow)=>{"use strict";Ow.exports=FD;Ow.exports.preferredCharsets=FD;var Qee=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function ete(t){for(var e=t.split(","),r=0,n=0;r0}});var WD=j((jke,Cw)=>{"use strict";Cw.exports=GD;Cw.exports.preferredEncodings=GD;var ate=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function ote(t){for(var e=t.split(","),r=!1,n=1,i=0,a=0;i0}});var QD=j((Ake,Nw)=>{"use strict";Nw.exports=YD;Nw.exports.preferredLanguages=YD;var lte=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function dte(t){for(var e=t.split(","),r=0,n=0;r0}});var az=j((Mke,jw)=>{"use strict";jw.exports=nz;jw.exports.preferredMediaTypes=nz;var hte=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function gte(t){for(var e=xte(t),r=0,n=0;r0)if(a.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 nz(t,e){var r=gte(t===void 0?"*/*":t||"");if(!e)return r.filter(tz).sort(ez).map(_te);var n=e.map(function(a,o){return vte(a,r,o)});return n.filter(tz).sort(ez).map(function(a){return e[n.indexOf(a)]})}function ez(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function _te(t){return t.type+"/"+t.subtype}function tz(t){return t.q>0}function iz(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function bte(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 xte(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var wte=ZD(),$te=WD(),Ete=QD(),kte=az();Aw.exports=St;Aw.exports.Negotiator=St;function St(t){if(!(this instanceof St))return new St(t);this.request=t}St.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};St.prototype.charsets=function(e){return wte(this.request.headers["accept-charset"],e)};St.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};St.prototype.encodings=function(e){return $te(this.request.headers["accept-encoding"],e)};St.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};St.prototype.languages=function(e){return Ete(this.request.headers["accept-language"],e)};St.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};St.prototype.mediaTypes=function(e){return kte(this.request.headers.accept,e)};St.prototype.preferredCharset=St.prototype.charset;St.prototype.preferredCharsets=St.prototype.charsets;St.prototype.preferredEncoding=St.prototype.encoding;St.prototype.preferredEncodings=St.prototype.encodings;St.prototype.preferredLanguage=St.prototype.language;St.prototype.preferredLanguages=St.prototype.languages;St.prototype.preferredMediaType=St.prototype.mediaType;St.prototype.preferredMediaTypes=St.prototype.mediaTypes});var cz=j((zke,sz)=>{"use strict";var Tte=oz(),Ite=PS();sz.exports=sn;function sn(t){if(!(this instanceof sn))return new sn(t);this.headers=t.headers,this.negotiator=new Tte(t)}sn.prototype.type=sn.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 oh=cz(),Xl=ui()("express"),Ote=require("net").isIP,Cte=js(),Nte=require("http"),jte=yw(),Ate=_w(),Mte=Ls(),uz=kw(),Tt=Object.create(Nte.IncomingMessage.prototype);lz.exports=Tt;Tt.get=Tt.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]}};Tt.accepts=function(){var t=oh(this);return t.types.apply(t,arguments)};Tt.acceptsEncodings=function(){var t=oh(this);return t.encodings.apply(t,arguments)};Tt.acceptsEncoding=Xl.function(Tt.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");Tt.acceptsCharsets=function(){var t=oh(this);return t.charsets.apply(t,arguments)};Tt.acceptsCharset=Xl.function(Tt.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");Tt.acceptsLanguages=function(){var t=oh(this);return t.languages.apply(t,arguments)};Tt.acceptsLanguage=Xl.function(Tt.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");Tt.range=function(e,r){var n=this.get("Range");if(n)return Ate(e,n,r)};Tt.param=function(e,r){var n=this.params||{},i=this.body||{},a=this.query||{},o=arguments.length===1?"name":"name, default";return Xl("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]:a[e]!=null?a[e]:r};Tt.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?jte(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});Bn(Tt,"stale",function(){return!this.fresh});Bn(Tt,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function Bn(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var mz=j(sh=>{var fz=require("crypto");sh.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+"."+fz.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};sh.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=sh.sign(r,e);return pz(n)==pz(t)?r:!1};function pz(t){return fz.createHash("sha1").update(t).digest("hex")}});var vz=j(Mw=>{"use strict";Mw.parse=Zte;Mw.serialize=Hte;var Dte=Object.prototype.toString,zte=Object.prototype.hasOwnProperty,Ute=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,qte=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,Lte=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,Fte=/^[\u0020-\u003A\u003D-\u007E]*$/;function Zte(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||Bte,a=0,o=0,s=0;do{if(o=t.indexOf("=",a),o===-1)break;if(s=t.indexOf(";",a),s===-1)s=n;else if(o>s){a=t.lastIndexOf(";",o-1)+1;continue}var c=hz(t,a,o),u=gz(t,o,c),l=t.slice(c,u);if(!zte.call(r,l)){var d=hz(t,o+1,s),p=gz(t,s,d);t.charCodeAt(d)===34&&t.charCodeAt(p-1)===34&&(d++,p--);var f=t.slice(d,p);r[l]=Gte(f,i)}a=s+1}while(ar;){var n=t.charCodeAt(--e);if(n!==32&&n!==9)return e+1}return r}function Hte(t,e,r){var n=r&&r.encode||encodeURIComponent;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!Ute.test(t))throw new TypeError("argument name is invalid");var i=n(e);if(!qte.test(i))throw new TypeError("argument val is invalid");var a=t+"="+i;if(!r)return a;if(r.maxAge!=null){var o=Math.floor(r.maxAge);if(!isFinite(o))throw new TypeError("option maxAge is invalid");a+="; Max-Age="+o}if(r.domain){if(!Lte.test(r.domain))throw new TypeError("option domain is invalid");a+="; Domain="+r.domain}if(r.path){if(!Fte.test(r.path))throw new TypeError("option path is invalid");a+="; Path="+r.path}if(r.expires){var s=r.expires;if(!Vte(s)||isNaN(s.valueOf()))throw new TypeError("option expires is invalid");a+="; Expires="+s.toUTCString()}if(r.httpOnly&&(a+="; HttpOnly"),r.secure&&(a+="; Secure"),r.partitioned&&(a+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":a+="; Priority=Low";break;case"medium":a+="; Priority=Medium";break;case"high":a+="; 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:a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return a}function Bte(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function Vte(t){return Dte.call(t)==="[object Date]"}function Gte(t,e){try{return e(t)}catch{return t}}});var zw=j((Fke,Dw)=>{"use strict";Dw.exports=Kte;Dw.exports.append=_z;var Wte=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function _z(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:yz(String(e)),n=0;n{"use strict";var Yl=Jm().Buffer,bz=gw(),Jte=Qa(),Br=ui()("express"),Xte=Hl(),Yte=Bl(),Qte=require("http"),ere=va().isAbsolute,tre=Pl(),xz=require("path"),ch=bl(),Sz=Gl(),rre=mz().sign,nre=va().normalizeType,ire=va().normalizeTypes,are=va().setCharset,ore=vz(),Uw=th(),sre=xz.extname,wz=Uw.mime,cre=xz.resolve,ure=zw(),Rt=Object.create(Qte.ServerResponse.prototype);kz.exports=Rt;var lre=/;\s*charset\s*=/;Rt.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&Br("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};Rt.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(", "))};Rt.send=function(e){var r=e,n,i=this.req,a,o=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(Br("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(Br("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"),Br("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=ch.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(Yl.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",a=this.get("Content-Type"),typeof a=="string"&&this.set("Content-Type",are(a,"utf-8")));var s=o.get("etag fn"),c=!this.get("ETag")&&typeof s=="function",u;r!==void 0&&(Yl.isBuffer(r)?u=r.length:!c&&r.length<1e3?u=Yl.byteLength(r,n):(r=Yl.from(r,n),n=void 0,u=r.length),this.set("Content-Length",u));var l;return c&&u!==void 0&&(l=s(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};Rt.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(Br("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(Br("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"),a=n.get("json replacer"),o=n.get("json spaces"),s=Ez(r,a,o,i);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(s)};Rt.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(Br("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(Br("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"),a=n.get("json replacer"),o=n.get("json spaces"),s=Ez(r,a,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,""),s===void 0?s="":typeof s=="string"&&(s=s.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),s="/**/ typeof "+c+" === 'function' && "+c+"("+s+");"),this.send(s)};Rt.sendStatus=function(e){var r=ch.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};Rt.sendFile=function(e,r,n){var i=n,a=this.req,o=this,s=a.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&&!ere(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var u=encodeURI(e),l=Uw(a,u,c);$z(o,l,c,function(d){if(i)return i(d);if(d&&d.code==="EISDIR")return s();d&&d.code!=="ECONNABORTED"&&d.syscall!=="write"&&s(d)})};Rt.sendfile=function(t,e,r){var n=r,i=this.req,a=this,o=i.next,s=e||{};typeof e=="function"&&(n=e,s={});var c=Uw(i,t,s);$z(a,c,s,function(u){if(n)return n(u);if(u&&u.code==="EISDIR")return o();u&&u.code!=="ECONNABORTED"&&u.syscall!=="write"&&o(u)})};Rt.sendfile=Br.function(Rt.sendfile,"res.sendfile: Use res.sendFile instead");Rt.download=function(e,r,n,i){var a=i,o=r,s=n||null;typeof r=="function"?(a=r,o=null,s=null):typeof n=="function"&&(a=n,s=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(o=null,s=r);var c={"Content-Disposition":bz(o||e)};if(s&&s.headers)for(var u=Object.keys(s.headers),l=0;l0?e.accepts(n):!1;return this.vary("Accept"),i?(this.set("Content-Type",nre(i).value),t[i](e,this,r)):t.default?t.default(e,this,r):r(Jte(406,{types:ire(n).map(function(a){return a.value})})),this};Rt.attachment=function(e){return e&&this.type(sre(e)),this.set("Content-Disposition",bz(e)),this};Rt.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)};Rt.set=Rt.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(!lre.test(n)){var i=wz.charsets.lookup(n.split(";")[0]);i&&(n+="; charset="+i.toLowerCase())}}this.setHeader(e,n)}else for(var a in e)this.set(a,e[a]);return this};Rt.get=function(t){return this.getHeader(t)};Rt.clearCookie=function(e,r){r&&(r.maxAge&&Br('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&&Br('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=Sz({expires:new Date(1),path:"/"},r);return this.cookie(e,"",n)};Rt.cookie=function(t,e,r){var n=Sz({},r),i=this.req.secret,a=n.signed;if(a&&!i)throw new Error('cookieParser("secret") required for signed cookies');var o=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(a&&(o="s:"+rre(o,i)),n.maxAge!=null){var s=n.maxAge-0;isNaN(s)||(n.expires=new Date(Date.now()+s),n.maxAge=Math.floor(s/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",ore.serialize(t,String(o),n)),this};Rt.location=function(e){var r;return e==="back"?(Br('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",Xte(r))};Rt.redirect=function(e){var r=e,n,i=302;arguments.length===2&&(typeof arguments[0]=="number"?(i=arguments[0],r=arguments[1]):(Br("res.redirect(url, status): Use res.redirect(status, url) instead"),i=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){n=ch.message[i]+". Redirecting to "+r},html:function(){var a=Yte(r);n="

"+ch.message[i]+". Redirecting to "+a+"

"},default:function(){n=""}}),this.statusCode=i,this.set("Content-Length",Yl.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};Rt.vary=function(t){return!t||Array.isArray(t)&&!t.length?(Br("res.vary(): Provide a field name"),this):(ure(this,t),this)};Rt.render=function(e,r,n){var i=this.req.app,a=n,o=r||{},s=this.req,c=this;typeof r=="function"&&(a=r,o={}),o._locals=c.locals,a=a||function(u,l){if(u)return s.next(u);c.send(l)},i.render(e,o,a)};function $z(t,e,r,n){var i=!1,a;function o(){if(!i){i=!0;var f=new Error("Request aborted");f.code="ECONNABORTED",n(f)}}function s(){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(){a=!1}function d(f){if(f&&f.code==="ECONNRESET")return o();if(f)return c(f);i||setImmediate(function(){if(a!==!1&&!i){o();return}i||(i=!0,n())})}function p(){a=!0}e.on("directory",s),e.on("end",u),e.on("error",c),e.on("file",l),e.on("stream",p),tre(t,d),r.headers&&e.on("headers",function(h){for(var _=r.headers,g=Object.keys(_),m=0;m&]/g,function(a){switch(a.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return a}})),i}});var Pz=j((Hke,Lw)=>{"use strict";var dre=Hl(),pre=Bl(),qw=Ls(),fre=require("path").resolve,Iz=th(),mre=require("url");Lw.exports=hre;Lw.exports.mime=Iz.mime;function hre(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,a=r.setHeaders;if(a&&typeof a!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=fre(t);var o=i?_re():yre();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=qw.original(c),f=qw(c).pathname;f==="/"&&p.pathname.substr(-1)!=="/"&&(f="");var h=Iz(c,f,r);h.on("directory",o),a&&h.on("headers",a),n&&h.on("file",function(){d=!0}),h.on("error",function(g){if(d||!(g.statusCode<500)){l(g);return}l()}),h.pipe(u)}}function gre(t){for(var e=0;e1?"/"+t.substr(e):t}function vre(t,e){return` @@ -64,13 +64,13 @@ Please see the 3.x to 4.x migration guide for details on how to update your app.
`+e+`
-`}function pre(){return function(){this.error(404)}}function fre(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=Dw.original(this.req);r.path=null,r.pathname=lre(r.pathname+"/");var n=are(cre.format(r)),i=dre("Redirecting","Redirecting to "+ore(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 jD=j((Br,ND)=>{"use strict";var sh=iM(),mre=require("events").EventEmitter,PD=oM(),OD=Dz(),hre=cw(),gre=lw(),RD=lD(),CD=kD();Br=ND.exports=vre;function vre(){var t=function(e,r,n){t.handle(e,r,n)};return PD(t,mre.prototype,!1),PD(t,OD,!1),t.request=Object.create(RD,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(CD,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}Br.application=OD;Br.request=RD;Br.response=CD;Br.Route=hre;Br.Router=gre;Br.json=sh.json;Br.query=dw();Br.raw=sh.raw;Br.static=ID();Br.text=sh.text;Br.urlencoded=sh.urlencoded;var yre=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];yre.forEach(function(t){Object.defineProperty(Br,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 ch=j((Nke,AD)=>{"use strict";AD.exports=jD()});var DD=j((jke,zD)=>{"use strict";var MD=Object.getOwnPropertySymbols,_re=Object.prototype.hasOwnProperty,bre=Object.prototype.propertyIsEnumerable;function xre(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function Sre(){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(a){return e[a]});if(n.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(a){i[a]=a}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}zD.exports=Sre()?Object.assign:function(t,e){for(var r,n=xre(t),i,a=1;a{(function(){"use strict";var t=DD(),e=Mw(),r={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function n(h){return typeof h=="string"||h instanceof String}function i(h,_){if(Array.isArray(_)){for(var y=0;y<_.length;++y)if(i(h,_[y]))return!0;return!1}else return n(_)?h===_:_ instanceof RegExp?_.test(h):!!_}function a(h,_){var y=_.headers.origin,m=[],v;return!h.origin||h.origin==="*"?m.push([{key:"Access-Control-Allow-Origin",value:"*"}]):n(h.origin)?(m.push([{key:"Access-Control-Allow-Origin",value:h.origin}]),m.push([{key:"Vary",value:"Origin"}])):(v=i(y,h.origin),m.push([{key:"Access-Control-Allow-Origin",value:v?y:!1}]),m.push([{key:"Vary",value:"Origin"}])),m}function o(h){var _=h.methods;return _.join&&(_=h.methods.join(",")),{key:"Access-Control-Allow-Methods",value:_}}function s(h){return h.credentials===!0?{key:"Access-Control-Allow-Credentials",value:"true"}:null}function c(h,_){var y=h.allowedHeaders||h.headers,m=[];return y?y.join&&(y=y.join(",")):(y=_.headers["access-control-request-headers"],m.push([{key:"Vary",value:"Access-Control-Request-Headers"}])),y&&y.length&&m.push([{key:"Access-Control-Allow-Headers",value:y}]),m}function u(h){var _=h.exposedHeaders;if(_)_.join&&(_=_.join(","));else return null;return _&&_.length?{key:"Access-Control-Expose-Headers",value:_}:null}function l(h){var _=(typeof h.maxAge=="number"||h.maxAge)&&h.maxAge.toString();return _&&_.length?{key:"Access-Control-Max-Age",value:_}:null}function d(h,_){for(var y=0,m=h.length;yqw,BACKUPS_DIR:()=>GD,CLAUDE_COMMANDS_DIR:()=>WD,CLAUDE_CONFIG_DIR:()=>Jl,CLAUDE_MD_PATH:()=>Tre,CLAUDE_SETTINGS_PATH:()=>kre,DATA_DIR:()=>Nr,DB_PATH:()=>Xl,LOGS_DIR:()=>BD,MODES_DIR:()=>Lw,TRASH_DIR:()=>VD,USER_SETTINGS_PATH:()=>wn,VECTOR_DB_DIR:()=>Ere,createBackupFilename:()=>Are,ensureAllClaudeDirs:()=>Cre,ensureAllDataDirs:()=>Ore,ensureDir:()=>Vr,ensureModesDir:()=>Rre,getCurrentProjectName:()=>Nre,getPackageCommandsDir:()=>jre,getPackageRoot:()=>Gr,getProjectArchiveDir:()=>Ire,getWorkerSocketPath:()=>Pre});function wre(){return typeof __dirname<"u"?__dirname:(0,Jt.dirname)((0,HD.fileURLToPath)(Mre.url))}function Ire(t){return(0,Jt.join)(qw,t)}function Pre(t){return(0,Jt.join)(Nr,`worker-${t}.sock`)}function Vr(t){(0,FD.mkdirSync)(t,{recursive:!0})}function Ore(){Vr(Nr),Vr(qw),Vr(BD),Vr(VD),Vr(GD),Vr(Lw)}function Rre(){Vr(Lw)}function Cre(){Vr(Jl),Vr(WD)}function Nre(){try{let t=(0,ZD.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0}).trim();return(0,Jt.basename)(t)}catch(t){return T.debug("SYSTEM","Git root detection failed, using cwd basename",{cwd:process.cwd()},t),(0,Jt.basename)(process.cwd())}}function Gr(){return(0,Jt.join)($re,"..")}function jre(){let t=Gr();return(0,Jt.join)(t,"commands")}function Are(t){let e=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${t}.backup.${e}`}var Jt,LD,FD,ZD,HD,Mre,$re,Nr,Jl,qw,BD,VD,GD,Lw,wn,Xl,Ere,kre,WD,Tre,sn=Gt(()=>{"use strict";Jt=require("path"),LD=require("os"),FD=require("fs"),ZD=require("child_process"),HD=require("url");yn();Ae();Mre={};$re=wre(),Nr=nt.get("CLAUDE_MEM_DATA_DIR"),Jl=process.env.CLAUDE_CONFIG_DIR||(0,Jt.join)((0,LD.homedir)(),".claude"),qw=(0,Jt.join)(Nr,"archives"),BD=(0,Jt.join)(Nr,"logs"),VD=(0,Jt.join)(Nr,"trash"),GD=(0,Jt.join)(Nr,"backups"),Lw=(0,Jt.join)(Nr,"modes"),wn=(0,Jt.join)(Nr,"settings.json"),Xl=(0,Jt.join)(Nr,"claude-mem.db"),Ere=(0,Jt.join)(Nr,"vector-db"),kre=(0,Jt.join)(Jl,"settings.json"),WD=(0,Jt.join)(Jl,"commands"),Tre=(0,Jt.join)(Jl,"CLAUDE.md")});var p4,_a,ph=Gt(()=>{"use strict";p4=require("bun:sqlite");sn();Ae();_a=class{db;constructor(e=Xl){e!==":memory:"&&Vr(Nr),this.db=new p4.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()}initializeSchema(){this.db.run(` +`}function yre(){return function(){this.error(404)}}function _re(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=qw.original(this.req);r.path=null,r.pathname=gre(r.pathname+"/");var n=dre(mre.format(r)),i=vre("Redirecting","Redirecting to "+pre(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 Az=j((Vr,jz)=>{"use strict";var uh=aM(),bre=require("events").EventEmitter,Rz=sM(),Oz=UD(),xre=lw(),Sre=pw(),Cz=dz(),Nz=Tz();Vr=jz.exports=wre;function wre(){var t=function(e,r,n){t.handle(e,r,n)};return Rz(t,bre.prototype,!1),Rz(t,Oz,!1),t.request=Object.create(Cz,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(Nz,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}Vr.application=Oz;Vr.request=Cz;Vr.response=Nz;Vr.Route=xre;Vr.Router=Sre;Vr.json=uh.json;Vr.query=fw();Vr.raw=uh.raw;Vr.static=Pz();Vr.text=uh.text;Vr.urlencoded=uh.urlencoded;var $re=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];$re.forEach(function(t){Object.defineProperty(Vr,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 lh=j((Bke,Mz)=>{"use strict";Mz.exports=Az()});var Uz=j((Vke,zz)=>{"use strict";var Dz=Object.getOwnPropertySymbols,Ere=Object.prototype.hasOwnProperty,kre=Object.prototype.propertyIsEnumerable;function Tre(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function Ire(){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(a){return e[a]});if(n.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(a){i[a]=a}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}zz.exports=Ire()?Object.assign:function(t,e){for(var r,n=Tre(t),i,a=1;a{(function(){"use strict";var t=Uz(),e=zw(),r={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function n(h){return typeof h=="string"||h instanceof String}function i(h,_){if(Array.isArray(_)){for(var g=0;g<_.length;++g)if(i(h,_[g]))return!0;return!1}else return n(_)?h===_:_ instanceof RegExp?_.test(h):!!_}function a(h,_){var g=_.headers.origin,m=[],y;return!h.origin||h.origin==="*"?m.push([{key:"Access-Control-Allow-Origin",value:"*"}]):n(h.origin)?(m.push([{key:"Access-Control-Allow-Origin",value:h.origin}]),m.push([{key:"Vary",value:"Origin"}])):(y=i(g,h.origin),m.push([{key:"Access-Control-Allow-Origin",value:y?g:!1}]),m.push([{key:"Vary",value:"Origin"}])),m}function o(h){var _=h.methods;return _.join&&(_=h.methods.join(",")),{key:"Access-Control-Allow-Methods",value:_}}function s(h){return h.credentials===!0?{key:"Access-Control-Allow-Credentials",value:"true"}:null}function c(h,_){var g=h.allowedHeaders||h.headers,m=[];return g?g.join&&(g=g.join(",")):(g=_.headers["access-control-request-headers"],m.push([{key:"Vary",value:"Access-Control-Request-Headers"}])),g&&g.length&&m.push([{key:"Access-Control-Allow-Headers",value:g}]),m}function u(h){var _=h.exposedHeaders;if(_)_.join&&(_=_.join(","));else return null;return _&&_.length?{key:"Access-Control-Expose-Headers",value:_}:null}function l(h){var _=(typeof h.maxAge=="number"||h.maxAge)&&h.maxAge.toString();return _&&_.length?{key:"Access-Control-Max-Age",value:_}:null}function d(h,_){for(var g=0,m=h.length;gFw,BACKUPS_DIR:()=>Wz,CLAUDE_COMMANDS_DIR:()=>Kz,CLAUDE_CONFIG_DIR:()=>Ql,CLAUDE_MD_PATH:()=>Nre,CLAUDE_SETTINGS_PATH:()=>Cre,DATA_DIR:()=>Nr,DB_PATH:()=>ed,LOGS_DIR:()=>Vz,MODES_DIR:()=>Zw,TRASH_DIR:()=>Gz,USER_SETTINGS_PATH:()=>$n,VECTOR_DB_DIR:()=>Ore,createBackupFilename:()=>Lre,ensureAllClaudeDirs:()=>zre,ensureAllDataDirs:()=>Mre,ensureDir:()=>Gr,ensureModesDir:()=>Dre,getCurrentProjectName:()=>Ure,getPackageCommandsDir:()=>qre,getPackageRoot:()=>Wr,getProjectArchiveDir:()=>jre,getWorkerSocketPath:()=>Are});function Pre(){return typeof __dirname<"u"?__dirname:(0,Jt.dirname)((0,Bz.fileURLToPath)(Fre.url))}function jre(t){return(0,Jt.join)(Fw,t)}function Are(t){return(0,Jt.join)(Nr,`worker-${t}.sock`)}function Gr(t){(0,Zz.mkdirSync)(t,{recursive:!0})}function Mre(){Gr(Nr),Gr(Fw),Gr(Vz),Gr(Gz),Gr(Wz),Gr(Zw)}function Dre(){Gr(Zw)}function zre(){Gr(Ql),Gr(Kz)}function Ure(){try{let t=(0,Hz.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0}).trim();return(0,Jt.basename)(t)}catch(t){return k.debug("SYSTEM","Git root detection failed, using cwd basename",{cwd:process.cwd()},t),(0,Jt.basename)(process.cwd())}}function Wr(){return(0,Jt.join)(Rre,"..")}function qre(){let t=Wr();return(0,Jt.join)(t,"commands")}function Lre(t){let e=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${t}.backup.${e}`}var Jt,Fz,Zz,Hz,Bz,Fre,Rre,Nr,Ql,Fw,Vz,Gz,Wz,Zw,$n,ed,Ore,Cre,Kz,Nre,cn=Ht(()=>{"use strict";Jt=require("path"),Fz=require("os"),Zz=require("fs"),Hz=require("child_process"),Bz=require("url");Fr();Pe();Fre={};Rre=Pre(),Nr=Fe.get("CLAUDE_MEM_DATA_DIR"),Ql=process.env.CLAUDE_CONFIG_DIR||(0,Jt.join)((0,Fz.homedir)(),".claude"),Fw=(0,Jt.join)(Nr,"archives"),Vz=(0,Jt.join)(Nr,"logs"),Gz=(0,Jt.join)(Nr,"trash"),Wz=(0,Jt.join)(Nr,"backups"),Zw=(0,Jt.join)(Nr,"modes"),$n=(0,Jt.join)(Nr,"settings.json"),ed=(0,Jt.join)(Nr,"claude-mem.db"),Ore=(0,Jt.join)(Nr,"vector-db"),Cre=(0,Jt.join)(Ql,"settings.json"),Kz=(0,Jt.join)(Ql,"commands"),Nre=(0,Jt.join)(Ql,"CLAUDE.md")});var f4,ya,mh=Ht(()=>{"use strict";f4=require("bun:sqlite");cn();Pe();ya=class{db;constructor(e=ed){e!==":memory:"&&Gr(Nr),this.db=new f4.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()}initializeSchema(){this.db.run(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, applied_at TEXT NOT NULL ) - `);let e=this.db.prepare("SELECT version FROM schema_versions ORDER BY version").all();(e.length>0?Math.max(...e.map(n=>n.version)):0)===0&&(T.info("DB","Initializing fresh database with migration004"),this.db.run(` + `);let e=this.db.prepare("SELECT version FROM schema_versions ORDER BY version").all();(e.length>0?Math.max(...e.map(n=>n.version)):0)===0&&(k.info("DB","Initializing fresh database with migration004"),this.db.run(` CREATE TABLE IF NOT EXISTS sdk_sessions ( id INTEGER PRIMARY KEY AUTOINCREMENT, content_session_id TEXT UNIQUE NOT NULL, @@ -126,7 +126,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. 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 INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),T.info("DB","Migration004 applied successfully"))}ensureWorkerPortColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(i=>i.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),T.info("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(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(c=>c.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),T.info("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),T.info("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),T.info("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.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(i=>i.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}T.info("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.prepare("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),k.info("DB","Migration004 applied successfully"))}ensureWorkerPortColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(i=>i.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),k.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(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(c=>c.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),k.debug("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),k.debug("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),k.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.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(i=>i.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}k.debug("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE session_summaries_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -154,7 +154,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. 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()),T.info("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}T.info("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()),k.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}k.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; @@ -162,7 +162,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. 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()),T.info("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}T.info("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),k.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}k.debug("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE observations_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -192,7 +192,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. 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()),T.info("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}T.info("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()),k.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}k.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, @@ -230,7 +230,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. INSERT INTO user_prompts_fts(rowid, prompt_text) VALUES (new.id, new.prompt_text); END; - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),T.info("DB","Successfully created user_prompts table with FTS5 support")}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"),T.info("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"),T.info("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}T.info("DB","Creating pending_messages table"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),k.debug("DB","Successfully created user_prompts table with FTS5 support")}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"),k.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"),k.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}k.debug("DB","Creating pending_messages table"),this.db.run(` CREATE TABLE pending_messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, session_db_id INTEGER NOT NULL, @@ -250,7 +250,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. 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()),T.info("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;T.info("DB","Checking session ID columns for semantic clarity rename");let r=0,n=(i,a,o)=>{let s=this.db.query(`PRAGMA table_info(${i})`).all(),c=s.some(l=>l.name===a);return s.some(l=>l.name===o)?!1:c?(this.db.run(`ALTER TABLE ${i} RENAME COLUMN ${a} TO ${o}`),T.info("DB",`Renamed ${i}.${a} to ${o}`),!0):(T.warn("DB",`Column ${a} 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?T.info("DB",`Successfully renamed ${r} session ID columns`):T.info("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"),T.info("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())}updateMemorySessionId(e,r){this.db.prepare(` + `),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()),k.debug("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;k.debug("DB","Checking session ID columns for semantic clarity rename");let r=0,n=(i,a,o)=>{let s=this.db.query(`PRAGMA table_info(${i})`).all(),c=s.some(l=>l.name===a);return s.some(l=>l.name===o)?!1:c?(this.db.run(`ALTER TABLE ${i} RENAME COLUMN ${a} TO ${o}`),k.debug("DB",`Renamed ${i}.${a} to ${o}`),!0):(k.warn("DB",`Column ${a} 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?k.debug("DB",`Successfully renamed ${r} session ID columns`):k.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"),k.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())}updateMemorySessionId(e,r){this.db.prepare(` UPDATE sdk_sessions SET memory_session_id = ? WHERE id = ? @@ -342,7 +342,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. SELECT * FROM observations WHERE id = ? - `).get(e)||null}getObservationsByIds(e,r={}){if(e.length===0)return[];let{orderBy:n="date_desc",limit:i,project:a,type:o,concepts:s,files:c}=r,u=n==="date_asc"?"ASC":"DESC",l=i?`LIMIT ${i}`:"",d=e.map(()=>"?").join(","),p=[...e],f=[];if(a&&(f.push("project = ?"),p.push(a)),o)if(Array.isArray(o)){let y=o.map(()=>"?").join(",");f.push(`type IN (${y})`),p.push(...o)}else f.push("type = ?"),p.push(o);if(s){let y=Array.isArray(s)?s:[s],m=y.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");p.push(...y),f.push(`(${m.join(" OR ")})`)}if(c){let y=Array.isArray(c)?c:[c],m=y.map(()=>"(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))");y.forEach(v=>{p.push(`%${v}%`,`%${v}%`)}),f.push(`(${m.join(" OR ")})`)}let h=f.length>0?`WHERE id IN (${d}) AND ${f.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:a,type:o,concepts:s,files:c}=r,u=n==="date_asc"?"ASC":"DESC",l=i?`LIMIT ${i}`:"",d=e.map(()=>"?").join(","),p=[...e],f=[];if(a&&(f.push("project = ?"),p.push(a)),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(s){let g=Array.isArray(s)?s:[s],m=g.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");p.push(...g),f.push(`(${m.join(" OR ")})`)}if(c){let g=Array.isArray(c)?c:[c],m=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(y=>{p.push(`%${y}%`,`%${y}%`)}),f.push(`(${m.join(" OR ")})`)}let h=f.length>0?`WHERE id IN (${d}) AND ${f.join(" AND ")}`:`WHERE id IN (${d})`;return this.db.prepare(` SELECT * FROM observations ${h} @@ -412,12 +412,12 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `);for(let m of n){let v=h.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,c,d,l);f.push(Number(v.lastInsertRowid))}let _;if(i){let v=this.db.prepare(` + `);for(let m of n){let y=h.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,c,d,l);f.push(Number(y.lastInsertRowid))}let _;if(i){let y=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,c,d,l);_=Number(v.lastInsertRowid)}return this.db.prepare(` + `).run(e,r,i.request,i.investigated,i.learned,i.completed,i.next_steps,i.notes,s||null,c,d,l);_=Number(y.lastInsertRowid)}return this.db.prepare(` UPDATE pending_messages SET status = 'processed', @@ -440,7 +440,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. WHERE up.id IN (${c}) ${l} ORDER BY up.created_at_epoch ${o} ${s} - `).all(...u)}getTimelineAroundTimestamp(e,r=10,n=10,i){return this.getTimelineAroundObservation(null,e,r,n,i)}getTimelineAroundObservation(e,r,n=10,i=10,a){let o=a?"AND project = ?":"",s=a?[a]:[],c,u;if(e!==null){let y=` + `).all(...u)}getTimelineAroundTimestamp(e,r=10,n=10,i){return this.getTimelineAroundObservation(null,e,r,n,i)}getTimelineAroundObservation(e,r,n=10,i=10,a){let o=a?"AND project = ?":"",s=a?[a]:[],c,u;if(e!==null){let g=` SELECT id, created_at_epoch FROM observations WHERE id <= ? ${o} @@ -452,7 +452,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. WHERE id >= ? ${o} ORDER BY id ASC LIMIT ? - `;try{let v=this.db.prepare(y).all(e,...s,n+1),g=this.db.prepare(m).all(e,...s,i+1);if(v.length===0&&g.length===0)return{observations:[],sessions:[],prompts:[]};c=v.length>0?v[v.length-1].created_at_epoch:r,u=g.length>0?g[g.length-1].created_at_epoch:r}catch(v){return T.error("DB","Error getting boundary observations",void 0,{error:v,project:a}),{observations:[],sessions:[],prompts:[]}}}else{let y=` + `;try{let y=this.db.prepare(g).all(e,...s,n+1),v=this.db.prepare(m).all(e,...s,i+1);if(y.length===0&&v.length===0)return{observations:[],sessions:[],prompts:[]};c=y.length>0?y[y.length-1].created_at_epoch:r,u=v.length>0?v[v.length-1].created_at_epoch:r}catch(y){return k.error("DB","Error getting boundary observations",void 0,{error:y,project:a}),{observations:[],sessions:[],prompts:[]}}}else{let g=` SELECT created_at_epoch FROM observations WHERE created_at_epoch <= ? ${o} @@ -464,7 +464,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. WHERE created_at_epoch >= ? ${o} ORDER BY created_at_epoch ASC LIMIT ? - `;try{let v=this.db.prepare(y).all(r,...s,n),g=this.db.prepare(m).all(r,...s,i+1);if(v.length===0&&g.length===0)return{observations:[],sessions:[],prompts:[]};c=v.length>0?v[v.length-1].created_at_epoch:r,u=g.length>0?g[g.length-1].created_at_epoch:r}catch(v){return T.error("DB","Error getting boundary timestamps",void 0,{error:v,project:a}),{observations:[],sessions:[],prompts:[]}}}let l=` + `;try{let y=this.db.prepare(g).all(r,...s,n),v=this.db.prepare(m).all(r,...s,i+1);if(y.length===0&&v.length===0)return{observations:[],sessions:[],prompts:[]};c=y.length>0?y[y.length-1].created_at_epoch:r,u=v.length>0?v[v.length-1].created_at_epoch:r}catch(y){return k.error("DB","Error getting boundary timestamps",void 0,{error:y,project:a}),{observations:[],sessions:[],prompts:[]}}}let l=` SELECT * FROM observations WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${o} @@ -480,7 +480,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. 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 - `,f=this.db.prepare(l).all(c,u,...s),h=this.db.prepare(d).all(c,u,...s),_=this.db.prepare(p).all(c,u,...s);return{observations:f,sessions:h.map(y=>({id:y.id,memory_session_id:y.memory_session_id,project:y.project,request:y.request,completed:y.completed,next_steps:y.next_steps,created_at:y.created_at,created_at_epoch:y.created_at_epoch})),prompts:_.map(y=>({id:y.id,content_session_id:y.content_session_id,prompt_number:y.prompt_number,prompt_text:y.prompt_text,project:y.project,created_at:y.created_at,created_at_epoch:y.created_at_epoch}))}}getPromptById(e){return this.db.prepare(` + `,f=this.db.prepare(l).all(c,u,...s),h=this.db.prepare(d).all(c,u,...s),_=this.db.prepare(p).all(c,u,...s);return{observations:f,sessions:h.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:_.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, @@ -549,7 +549,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. 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 Ws={};Rn(Ws,{PendingMessageStore:()=>ed});var ed,ho=Gt(()=>{"use strict";ed=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(` + `).run(e.content_session_id,e.prompt_number,e.prompt_text,e.created_at,e.created_at_epoch).lastInsertRowid}}}});var Xs={};Cn(Xs,{PendingMessageStore:()=>nd});var nd,mo=Ht(()=>{"use strict";Pe();nd=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, @@ -561,7 +561,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. WHERE session_db_id = ? AND status = 'pending' ORDER BY id ASC LIMIT 1 - `).get(n);return a&&this.db.prepare("DELETE FROM pending_messages WHERE id = ?").run(a.id),a})(e)}getAllPending(e){return this.db.prepare(` + `).get(n);return a&&(this.db.prepare("DELETE FROM pending_messages WHERE id = ?").run(a.id),k.info("QUEUE",`CLAIMED | sessionDbId=${n} | messageId=${a.id} | type=${a.message_type}`,{sessionId:n})),a})(e)}getAllPending(e){return this.db.prepare(` SELECT * FROM pending_messages WHERE session_db_id = ? AND status = 'pending' ORDER BY id ASC @@ -632,7 +632,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 v4={};Rn(v4,{ModeManager:()=>He});var td,_h,He,jr=Gt(()=>{"use strict";td=require("fs"),_h=require("path");Ae();sn();He=class t{static instance=null;activeMode=null;modesDir;constructor(){let e=Gr(),r=[(0,_h.join)(e,"modes"),(0,_h.join)(e,"..","plugin","modes")],n=r.find(i=>(0,td.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 a=r[i],o=e[i];this.isPlainObject(a)&&this.isPlainObject(o)?n[i]=this.deepMerge(o,a):n[i]=a}return n}loadModeFile(e){let r=(0,_h.join)(this.modesDir,`${e}.json`);if(!(0,td.existsSync)(r))throw new Error(`Mode file not found: ${r}`);let n=(0,td.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,T.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(T.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,a;try{a=this.loadMode(n)}catch{T.warn("SYSTEM",`Parent mode '${n}' not found for ${e}, falling back to 'code'`),a=this.loadMode("code")}let o;try{o=this.loadModeFile(i),T.debug("SYSTEM",`Loaded override file: ${i} for parent ${n}`)}catch{return T.warn("SYSTEM",`Override file '${i}' not found, using parent mode '${n}' only`),this.activeMode=a,a}if(!o)return T.warn("SYSTEM",`Invalid override file: ${i}, using parent mode '${n}' only`),this.activeMode=a,a;let s=this.deepMerge(a,o);return this.activeMode=s,T.debug("SYSTEM",`Loaded mode with inheritance: ${s.name} (${e} = ${n} + ${i})`,void 0,{parent:n,override:i,types:s.observation_types.map(c=>c.id),concepts:s.observation_concepts.map(c=>c.id)}),s}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 X$(t){if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(e){return T.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:t?.substring(0,50)},e),[]}}function In(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function Mr(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function Hi(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function hfe(t,e){return J$.default.isAbsolute(t)?J$.default.relative(e,t):t}function Yn(t,e){let r=X$(t);return r.length>0?hfe(r[0],e):"General"}function Sc(t){return t?Math.ceil(t.length/4):0}function cg(t,e){let r=new Map;for(let i of t){let a=e(i),o=Hi(a);r.has(o)||r.set(o,[]),r.get(o).push(i)}let n=Array.from(r.entries()).sort((i,a)=>{let o=new Date(i[0]).getTime(),s=new Date(a[0]).getTime();return o-s});return new Map(n)}var J$,Td=Gt(()=>{"use strict";J$=yt(require("path"),1);Ae()});function aU(t){if(!t||t.trim()==="")return T.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:t}),"unknown-project";let e=iU.default.basename(t);if(e===""){if(process.platform==="win32"){let n=t.match(/^([A-Z]):\\/i);if(n){let a=`drive-${n[1].toUpperCase()}`;return T.info("PROJECT_NAME","Drive root detected",{cwd:t,projectName:a}),a}}return T.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:t}),"unknown-project"}return e}var iU,oU=Gt(()=>{"use strict";iU=yt(require("path"),1);Ae()});function eE(){let t=sU.default.join((0,cU.homedir)(),".claude-mem","settings.json"),e=nt.loadFromFile(t),r=e.CLAUDE_MEM_MODE,n=r==="code"||r.startsWith("code--"),i,a;if(n)i=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(",").map(o=>o.trim()).filter(Boolean)),a=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(o=>o.trim()).filter(Boolean));else{let o=He.getInstance().getActiveMode();i=new Set(o.observation_types.map(s=>s.id)),a=new Set(o.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:i,observationConcepts:a,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 sU,cU,tE=Gt(()=>{"use strict";sU=yt(require("path"),1),cU=require("os");yn();jr()});var ne,uU,lU,jd=Gt(()=>{"use strict";ne={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"},uU=4,lU=1});function rE(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+JSON.stringify(t.facts||[]).length;return Math.ceil(e/uU)}function nE(t){let e=t.length,r=t.reduce((o,s)=>o+rE(s),0),n=t.reduce((o,s)=>o+(s.discovery_tokens||0),0),i=n-r,a=n>0?Math.round(i/n*100):0;return{totalObservations:e,totalReadTokens:r,totalDiscoveryTokens:n,savings:i,savingsPercent:a}}function _fe(t){return He.getInstance().getWorkEmoji(t)}function $c(t,e){let r=rE(t),n=t.discovery_tokens||0,i=_fe(t.type),a=n>0?`${i} ${n.toLocaleString()}`:"-";return{readTokens:r,discoveryTokens:n,discoveryDisplay:a,workEmoji:i}}function _g(t){return t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent}var wo=Gt(()=>{"use strict";jd();jr()});function iE(t,e,r){let n=Array.from(r.observationTypes),i=n.map(()=>"?").join(","),a=Array.from(r.observationConcepts),o=a.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 y4={};Cn(y4,{ModeManager:()=>Be});var id,xh,Be,jr=Ht(()=>{"use strict";id=require("fs"),xh=require("path");Pe();cn();Be=class t{static instance=null;activeMode=null;modesDir;constructor(){let e=Wr(),r=[(0,xh.join)(e,"modes"),(0,xh.join)(e,"..","plugin","modes")],n=r.find(i=>(0,id.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 a=r[i],o=e[i];this.isPlainObject(a)&&this.isPlainObject(o)?n[i]=this.deepMerge(o,a):n[i]=a}return n}loadModeFile(e){let r=(0,xh.join)(this.modesDir,`${e}.json`);if(!(0,id.existsSync)(r))throw new Error(`Mode file not found: ${r}`);let n=(0,id.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,k.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(k.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,a;try{a=this.loadMode(n)}catch{k.warn("SYSTEM",`Parent mode '${n}' not found for ${e}, falling back to 'code'`),a=this.loadMode("code")}let o;try{o=this.loadModeFile(i),k.debug("SYSTEM",`Loaded override file: ${i} for parent ${n}`)}catch{return k.warn("SYSTEM",`Override file '${i}' not found, using parent mode '${n}' only`),this.activeMode=a,a}if(!o)return k.warn("SYSTEM",`Invalid override file: ${i}, using parent mode '${n}' only`),this.activeMode=a,a;let s=this.deepMerge(a,o);return this.activeMode=s,k.debug("SYSTEM",`Loaded mode with inheritance: ${s.name} (${e} = ${n} + ${i})`,void 0,{parent:n,override:i,types:s.observation_types.map(c=>c.id),concepts:s.observation_concepts.map(c=>c.id)}),s}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 wh(t){if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(e){return k.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:t?.substring(0,50)},e),[]}}function kn(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function Ar(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function Di(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function x4(t,e){return Qw.default.isAbsolute(t)?Qw.default.relative(e,t):t}function Vn(t,e,r){let n=wh(t);if(n.length>0)return x4(n[0],e);if(r){let i=wh(r);if(i.length>0)return x4(i[0],e)}return"General"}function rc(t){return t?Math.ceil(t.length/4):0}function ho(t,e){let r=new Map;for(let i of t){let a=e(i),o=Di(a);r.has(o)||r.set(o,[]),r.get(o).push(i)}let n=Array.from(r.entries()).sort((i,a)=>{let o=new Date(i[0]).getTime(),s=new Date(a[0]).getTime();return o-s});return new Map(n)}var Qw,nc=Ht(()=>{"use strict";Qw=dt(require("path"),1);Pe()});var cU=Ht(()=>{"use strict"});function lU(t){if(!t||t.trim()==="")return k.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:t}),"unknown-project";let e=uU.default.basename(t);if(e===""){if(process.platform==="win32"){let n=t.match(/^([A-Z]):\\/i);if(n){let a=`drive-${n[1].toUpperCase()}`;return k.info("PROJECT_NAME","Drive root detected",{cwd:t,projectName:a}),a}}return k.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:t}),"unknown-project"}return e}var uU,dU=Ht(()=>{"use strict";uU=dt(require("path"),1);Pe();cU()});function tE(){let t=pU.default.join((0,fU.homedir)(),".claude-mem","settings.json"),e=Fe.loadFromFile(t),r=e.CLAUDE_MEM_MODE,n=r==="code"||r.startsWith("code--"),i,a;if(n)i=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(",").map(o=>o.trim()).filter(Boolean)),a=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(o=>o.trim()).filter(Boolean));else{let o=Be.getInstance().getActiveMode();i=new Set(o.observation_types.map(s=>s.id)),a=new Set(o.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:i,observationConcepts:a,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 pU,fU,rE=Ht(()=>{"use strict";pU=dt(require("path"),1),fU=require("os");Fr();jr()});var ne,mU,nE,Md=Ht(()=>{"use strict";ne={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"},mU=4,nE=1});function iE(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+JSON.stringify(t.facts||[]).length;return Math.ceil(e/mU)}function aE(t){let e=t.length,r=t.reduce((o,s)=>o+iE(s),0),n=t.reduce((o,s)=>o+(s.discovery_tokens||0),0),i=n-r,a=n>0?Math.round(i/n*100):0;return{totalObservations:e,totalReadTokens:r,totalDiscoveryTokens:n,savings:i,savingsPercent:a}}function Pfe(t){return Be.getInstance().getWorkEmoji(t)}function Ic(t,e){let r=iE(t),n=t.discovery_tokens||0,i=Pfe(t.type),a=n>0?`${i} ${n.toLocaleString()}`:"-";return{readTokens:r,discoveryTokens:n,discoveryDisplay:a,workEmoji:i}}function xg(t){return t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent}var $o=Ht(()=>{"use strict";Md();jr()});function oE(t,e,r){let n=Array.from(r.observationTypes),i=n.map(()=>"?").join(","),a=Array.from(r.observationConcepts),o=a.map(()=>"?").join(",");return t.db.prepare(` SELECT id, memory_session_id, type, title, subtitle, narrative, facts, concepts, files_read, files_modified, discovery_tokens, @@ -646,25 +646,45 @@ 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,...a,r.totalObservationCount)}function aE(t,e,r){return t.db.prepare(` + `).all(e,...n,...a,r.totalObservationCount)}function sE(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+lU)}function bfe(t){return t.replace(/\//g,"-")}function xfe(t){try{if(!(0,bg.existsSync)(t))return{userMessage:"",assistantMessage:""};let e=(0,bg.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 a=r[i];if(!a.includes('"type":"assistant"'))continue;let o=JSON.parse(a);if(o.type==="assistant"&&o.message?.content&&Array.isArray(o.message.content)){let s="";for(let c of o.message.content)c.type==="text"&&(s+=c.text);if(s=s.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),s){n=s;break}}}catch(a){T.debug("PARSER","Skipping malformed transcript line",{lineIndex:i},a);continue}return{userMessage:"",assistantMessage:n}}catch(e){return T.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:t},e),{userMessage:"",assistantMessage:""}}}function oE(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 a=i.memory_session_id,o=bfe(n),s=dU.default.join((0,pU.homedir)(),".claude","projects",o,`${a}.jsonl`);return xfe(s)}function fU(t,e){let r=e[0]?.id;return t.map((n,i)=>{let a=i===0?null:e[i+1];return{...n,displayEpoch:a?a.created_at_epoch:n.created_at_epoch,displayTime:a?a.created_at:n.created_at,shouldShowLink:n.id!==r}})}function sE(t,e){let r=[...t.map(n=>({type:"observation",data:n})),...e.map(n=>({type:"summary",data:n}))];return r.sort((n,i)=>{let a=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch,o=i.type==="observation"?i.data.created_at_epoch:i.data.displayEpoch;return a-o}),r}function mU(t,e){return new Set(t.slice(0,e).map(r=>r.id))}var dU,pU,bg,cE=Gt(()=>{"use strict";dU=yt(require("path"),1),pU=require("os"),bg=require("fs");Ae();jd()});function hU(){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 gU(t){return[`# [${t}] recent context, ${hU()}`,""]}function vU(){return[`**Legend:** session-request | ${He.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ")}`,""]}function yU(){return["**Column Key**:","- **Read**: Tokens to read this observation (cost to learn it now)","- **Work**: Tokens spent on work that produced this record ( research, building, deciding)",""]}function _U(){return["**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.","","When you need implementation details, rationale, or debugging context:","- Use MCP tools (search, get_observations) to fetch full observations on-demand","- Critical types ( bugfix, decision) often need detailed fetching","- Trust this index over re-reading code for past decisions and learnings",""]}function bU(t,e){let r=[];if(r.push("**Context Economics**:"),r.push(`- Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)`),r.push(`- Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n="- Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(n)}return r.push(""),r}function xU(t){return[`### ${t}`,""]}function SU(t){return[`**${t}**`,"| ID | Time | T | Title | Read | Work |","|----|------|---|-------|------|------|"]}function wU(t,e,r){let n=t.title||"Untitled",i=He.getInstance().getTypeIcon(t.type),{readTokens:a,discoveryDisplay:o}=$c(t,r),s=r.showReadTokens?`~${a}`:"",c=r.showWorkTokens?o:"";return`| #${t.id} | ${e||'"'} | ${i} | ${n} | ${s} | ${c} |`}function $U(t,e,r,n){let i=[],a=t.title||"Untitled",o=He.getInstance().getTypeIcon(t.type),{readTokens:s,discoveryDisplay:c}=$c(t,n);i.push(`**#${t.id}** ${e||'"'} ${o} **${a}**`),r&&(i.push(""),i.push(r),i.push(""));let u=[];return n.showReadTokens&&u.push(`Read: ~${s}`),n.showWorkTokens&&u.push(`Work: ${c}`),u.length>0&&i.push(u.join(", ")),i.push(""),i}function EU(t,e){let r=`${t.request||"Session started"} (${e})`;return[`**#S${t.id}** ${r}`,""]}function Ad(t,e){return e?[`**${t}**: ${e}`,""]:[]}function kU(t){return t.assistantMessage?["","---","","**Previously**","",`A: ${t.assistantMessage}`,""]:[]}function TU(t,e){return["",`Access ${Math.round(t/1e3)}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.`]}function IU(t){return`# [${t}] recent context, ${hU()} + `).all(e,r.sessionCount+nE)}function vU(t,e,r){let n=Array.from(r.observationTypes),i=n.map(()=>"?").join(","),a=Array.from(r.observationConcepts),o=a.map(()=>"?").join(","),s=e.map(()=>"?").join(",");return t.db.prepare(` + SELECT + id, memory_session_id, type, title, subtitle, narrative, + facts, concepts, files_read, files_modified, discovery_tokens, + created_at, created_at_epoch, project + FROM observations + WHERE project IN (${s}) + AND type IN (${i}) + AND EXISTS ( + SELECT 1 FROM json_each(concepts) + WHERE value IN (${o}) + ) + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(...e,...n,...a,r.totalObservationCount)}function yU(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+nE)}function Rfe(t){return t.replace(/\//g,"-")}function Ofe(t){try{if(!(0,Sg.existsSync)(t))return{userMessage:"",assistantMessage:""};let e=(0,Sg.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 a=r[i];if(!a.includes('"type":"assistant"'))continue;let o=JSON.parse(a);if(o.type==="assistant"&&o.message?.content&&Array.isArray(o.message.content)){let s="";for(let c of o.message.content)c.type==="text"&&(s+=c.text);if(s=s.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),s){n=s;break}}}catch(a){k.debug("PARSER","Skipping malformed transcript line",{lineIndex:i},a);continue}return{userMessage:"",assistantMessage:n}}catch(e){return k.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:t},e),{userMessage:"",assistantMessage:""}}}function cE(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 a=i.memory_session_id,o=Rfe(n),s=hU.default.join((0,gU.homedir)(),".claude","projects",o,`${a}.jsonl`);return Ofe(s)}function _U(t,e){let r=e[0]?.id;return t.map((n,i)=>{let a=i===0?null:e[i+1];return{...n,displayEpoch:a?a.created_at_epoch:n.created_at_epoch,displayTime:a?a.created_at:n.created_at,shouldShowLink:n.id!==r}})}function uE(t,e){let r=[...t.map(n=>({type:"observation",data:n})),...e.map(n=>({type:"summary",data:n}))];return r.sort((n,i)=>{let a=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch,o=i.type==="observation"?i.data.created_at_epoch:i.data.displayEpoch;return a-o}),r}function bU(t,e){return new Set(t.slice(0,e).map(r=>r.id))}var hU,gU,Sg,lE=Ht(()=>{"use strict";hU=dt(require("path"),1),gU=require("os"),Sg=require("fs");Pe();Md()});function xU(){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 SU(t){return[`# [${t}] recent context, ${xU()}`,""]}function wU(){return[`**Legend:** session-request | ${Be.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ")}`,""]}function $U(){return["**Column Key**:","- **Read**: Tokens to read this observation (cost to learn it now)","- **Work**: Tokens spent on work that produced this record ( research, building, deciding)",""]}function EU(){return["**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.","","When you need implementation details, rationale, or debugging context:","- Use the mem-search skill to fetch full observations on-demand","- Critical types ( bugfix, decision) often need detailed fetching","- Trust this index over re-reading code for past decisions and learnings",""]}function kU(t,e){let r=[];if(r.push("**Context Economics**:"),r.push(`- Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)`),r.push(`- Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n="- Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(n)}return r.push(""),r}function TU(t){return[`### ${t}`,""]}function IU(t){return[`**${t}**`,"| ID | Time | T | Title | Read | Work |","|----|------|---|-------|------|------|"]}function PU(t,e,r){let n=t.title||"Untitled",i=Be.getInstance().getTypeIcon(t.type),{readTokens:a,discoveryDisplay:o}=Ic(t,r),s=r.showReadTokens?`~${a}`:"",c=r.showWorkTokens?o:"";return`| #${t.id} | ${e||'"'} | ${i} | ${n} | ${s} | ${c} |`}function RU(t,e,r,n){let i=[],a=t.title||"Untitled",o=Be.getInstance().getTypeIcon(t.type),{readTokens:s,discoveryDisplay:c}=Ic(t,n);i.push(`**#${t.id}** ${e||'"'} ${o} **${a}**`),r&&(i.push(""),i.push(r),i.push(""));let u=[];return n.showReadTokens&&u.push(`Read: ~${s}`),n.showWorkTokens&&u.push(`Work: ${c}`),u.length>0&&i.push(u.join(", ")),i.push(""),i}function OU(t,e){let r=`${t.request||"Session started"} (${e})`;return[`**#S${t.id}** ${r}`,""]}function Dd(t,e){return e?[`**${t}**: ${e}`,""]:[]}function CU(t){return t.assistantMessage?["","---","","**Previously**","",`A: ${t.assistantMessage}`,""]:[]}function NU(t,e){return["",`Access ${Math.round(t/1e3)}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.`]}function jU(t){return`# [${t}] recent context, ${xU()} -No previous sessions found for this project yet.`}var Ec=Gt(()=>{"use strict";jr();wo()});function PU(){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 OU(t){return["",`${ne.bright}${ne.cyan}[${t}] recent context, ${PU()}${ne.reset}`,`${ne.gray}${"\u2500".repeat(60)}${ne.reset}`,""]}function RU(){let e=He.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ");return[`${ne.dim}Legend: session-request | ${e}${ne.reset}`,""]}function CU(){return[`${ne.bright}Column Key${ne.reset}`,`${ne.dim} Read: Tokens to read this observation (cost to learn it now)${ne.reset}`,`${ne.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${ne.reset}`,""]}function NU(){return[`${ne.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${ne.reset}`,"",`${ne.dim}When you need implementation details, rationale, or debugging context:${ne.reset}`,`${ne.dim} - Use MCP tools (search, get_observations) to fetch full observations on-demand${ne.reset}`,`${ne.dim} - Critical types ( bugfix, decision) often need detailed fetching${ne.reset}`,`${ne.dim} - Trust this index over re-reading code for past decisions and learnings${ne.reset}`,""]}function jU(t,e){let r=[];if(r.push(`${ne.bright}${ne.cyan}Context Economics${ne.reset}`),r.push(`${ne.dim} Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)${ne.reset}`),r.push(`${ne.dim} Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${ne.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(`${ne.green}${n}${ne.reset}`)}return r.push(""),r}function AU(t){return[`${ne.bright}${ne.cyan}${t}${ne.reset}`,""]}function MU(t){return[`${ne.dim}${t}${ne.reset}`]}function zU(t,e,r,n){let i=t.title||"Untitled",a=He.getInstance().getTypeIcon(t.type),{readTokens:o,discoveryTokens:s,workEmoji:c}=$c(t,n),u=r?`${ne.dim}${e}${ne.reset}`:" ".repeat(e.length),l=n.showReadTokens&&o>0?`${ne.dim}(~${o}t)${ne.reset}`:"",d=n.showWorkTokens&&s>0?`${ne.dim}(${c} ${s.toLocaleString()}t)${ne.reset}`:"";return` ${ne.dim}#${t.id}${ne.reset} ${u} ${a} ${i} ${l} ${d}`}function DU(t,e,r,n,i){let a=[],o=t.title||"Untitled",s=He.getInstance().getTypeIcon(t.type),{readTokens:c,discoveryTokens:u,workEmoji:l}=$c(t,i),d=r?`${ne.dim}${e}${ne.reset}`:" ".repeat(e.length),p=i.showReadTokens&&c>0?`${ne.dim}(~${c}t)${ne.reset}`:"",f=i.showWorkTokens&&u>0?`${ne.dim}(${l} ${u.toLocaleString()}t)${ne.reset}`:"";return a.push(` ${ne.dim}#${t.id}${ne.reset} ${d} ${s} ${ne.bright}${o}${ne.reset}`),n&&a.push(` ${ne.dim}${n}${ne.reset}`),(p||f)&&a.push(` ${p} ${f}`),a.push(""),a}function UU(t,e){let r=`${t.request||"Session started"} (${e})`;return[`${ne.yellow}#S${t.id}${ne.reset} ${r}`,""]}function Md(t,e,r){return e?[`${r}${t}:${ne.reset} ${e}`,""]:[]}function qU(t){return t.assistantMessage?["","---","",`${ne.bright}${ne.magenta}Previously${ne.reset}`,"",`${ne.dim}A: ${t.assistantMessage}${ne.reset}`,""]:[]}function LU(t,e){let r=Math.round(t/1e3);return["",`${ne.dim}Access ${r}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.${ne.reset}`]}function FU(t){return` -${ne.bright}${ne.cyan}[${t}] recent context, ${PU()}${ne.reset} +No previous sessions found for this project yet.`}var Pc=Ht(()=>{"use strict";jr();$o()});function AU(){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 MU(t){return["",`${ne.bright}${ne.cyan}[${t}] recent context, ${AU()}${ne.reset}`,`${ne.gray}${"\u2500".repeat(60)}${ne.reset}`,""]}function DU(){let e=Be.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ");return[`${ne.dim}Legend: session-request | ${e}${ne.reset}`,""]}function zU(){return[`${ne.bright}Column Key${ne.reset}`,`${ne.dim} Read: Tokens to read this observation (cost to learn it now)${ne.reset}`,`${ne.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${ne.reset}`,""]}function UU(){return[`${ne.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${ne.reset}`,"",`${ne.dim}When you need implementation details, rationale, or debugging context:${ne.reset}`,`${ne.dim} - Use the mem-search skill to fetch full observations on-demand${ne.reset}`,`${ne.dim} - Critical types ( bugfix, decision) often need detailed fetching${ne.reset}`,`${ne.dim} - Trust this index over re-reading code for past decisions and learnings${ne.reset}`,""]}function qU(t,e){let r=[];if(r.push(`${ne.bright}${ne.cyan}Context Economics${ne.reset}`),r.push(`${ne.dim} Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)${ne.reset}`),r.push(`${ne.dim} Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${ne.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(`${ne.green}${n}${ne.reset}`)}return r.push(""),r}function LU(t){return[`${ne.bright}${ne.cyan}${t}${ne.reset}`,""]}function FU(t){return[`${ne.dim}${t}${ne.reset}`]}function ZU(t,e,r,n){let i=t.title||"Untitled",a=Be.getInstance().getTypeIcon(t.type),{readTokens:o,discoveryTokens:s,workEmoji:c}=Ic(t,n),u=r?`${ne.dim}${e}${ne.reset}`:" ".repeat(e.length),l=n.showReadTokens&&o>0?`${ne.dim}(~${o}t)${ne.reset}`:"",d=n.showWorkTokens&&s>0?`${ne.dim}(${c} ${s.toLocaleString()}t)${ne.reset}`:"";return` ${ne.dim}#${t.id}${ne.reset} ${u} ${a} ${i} ${l} ${d}`}function HU(t,e,r,n,i){let a=[],o=t.title||"Untitled",s=Be.getInstance().getTypeIcon(t.type),{readTokens:c,discoveryTokens:u,workEmoji:l}=Ic(t,i),d=r?`${ne.dim}${e}${ne.reset}`:" ".repeat(e.length),p=i.showReadTokens&&c>0?`${ne.dim}(~${c}t)${ne.reset}`:"",f=i.showWorkTokens&&u>0?`${ne.dim}(${l} ${u.toLocaleString()}t)${ne.reset}`:"";return a.push(` ${ne.dim}#${t.id}${ne.reset} ${d} ${s} ${ne.bright}${o}${ne.reset}`),n&&a.push(` ${ne.dim}${n}${ne.reset}`),(p||f)&&a.push(` ${p} ${f}`),a.push(""),a}function BU(t,e){let r=`${t.request||"Session started"} (${e})`;return[`${ne.yellow}#S${t.id}${ne.reset} ${r}`,""]}function zd(t,e,r){return e?[`${r}${t}:${ne.reset} ${e}`,""]:[]}function VU(t){return t.assistantMessage?["","---","",`${ne.bright}${ne.magenta}Previously${ne.reset}`,"",`${ne.dim}A: ${t.assistantMessage}${ne.reset}`,""]:[]}function GU(t,e){let r=Math.round(t/1e3);return["",`${ne.dim}Access ${r}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.${ne.reset}`]}function WU(t){return` +${ne.bright}${ne.cyan}[${t}] recent context, ${AU()}${ne.reset} ${ne.gray}${"\u2500".repeat(60)}${ne.reset} ${ne.dim}No previous sessions found for this project yet.${ne.reset} -`}var kc=Gt(()=>{"use strict";jd();jr();wo()});function ZU(t,e,r,n){let i=[];return n?i.push(...OU(t)):i.push(...gU(t)),n?i.push(...RU()):i.push(...vU()),n?i.push(...CU()):i.push(...yU()),n?i.push(...NU()):i.push(..._U()),_g(r)&&(n?i.push(...jU(e,r)):i.push(...bU(e,r))),i}var HU=Gt(()=>{"use strict";wo();Ec();kc()});function Sfe(t){let e=new Map;for(let n of t){let i=n.type==="observation"?n.data.created_at:n.data.displayTime,a=Hi(i);e.has(a)||e.set(a,[]),e.get(a).push(n)}let r=Array.from(e.entries()).sort((n,i)=>{let a=new Date(n[0]).getTime(),o=new Date(i[0]).getTime();return a-o});return new Map(r)}function wfe(t,e){return e.fullObservationField==="narrative"?t.narrative:t.facts?X$(t.facts).join(` -`):null}function $fe(t,e,r,n,i,a){let o=[];a?o.push(...AU(t)):o.push(...xU(t));let s=null,c="",u=!1;for(let l of e)if(l.type==="summary"){u&&(o.push(""),u=!1,s=null,c="");let d=l.data,p=In(d.displayTime);a?o.push(...UU(d,p)):o.push(...EU(d,p))}else{let d=l.data,p=Yn(d.files_modified,i),f=Mr(d.created_at),h=f!==c,_=h?f:"";c=f;let y=r.has(d.id);if(p!==s&&(u&&o.push(""),a?o.push(...MU(p)):o.push(...SU(p)),s=p,u=!0),y){let m=wfe(d,n);a?o.push(...DU(d,f,h,m,n)):(u&&!a&&(o.push(""),u=!1),o.push(...$U(d,_,m,n)),s=null)}else a?o.push(zU(d,f,h,n)):o.push(wU(d,_,n))}return u&&o.push(""),o}function BU(t,e,r,n,i){let a=[],o=Sfe(t);for(let[s,c]of o)a.push(...$fe(s,c,e,r,n,i));return a}var VU=Gt(()=>{"use strict";Td();Ec();kc()});function GU(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 WU(t,e){let r=[];return e?(r.push(...Md("Investigated",t.investigated,ne.blue)),r.push(...Md("Learned",t.learned,ne.yellow)),r.push(...Md("Completed",t.completed,ne.green)),r.push(...Md("Next Steps",t.next_steps,ne.magenta))):(r.push(...Ad("Investigated",t.investigated)),r.push(...Ad("Learned",t.learned)),r.push(...Ad("Completed",t.completed)),r.push(...Ad("Next Steps",t.next_steps))),r}var KU=Gt(()=>{"use strict";jd();Ec();kc()});function JU(t,e){return e?qU(t):kU(t)}function XU(t,e,r){return!_g(e)||t.totalDiscoveryTokens<=0||t.savings<=0?[]:r?LU(t.totalDiscoveryTokens,t.totalReadTokens):TU(t.totalDiscoveryTokens,t.totalReadTokens)}var YU=Gt(()=>{"use strict";wo();Ec();kc()});function kfe(){try{return new _a}catch(t){if(t.code==="ERR_DLOPEN_FAILED"){try{(0,tq.unlinkSync)(Efe)}catch(e){T.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return T.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw t}}function Tfe(t,e){return e?FU(t):IU(t)}function Ife(t,e,r,n,i,a,o){let s=[],c=nE(e);s.push(...ZU(t,c,n,o));let u=r.slice(0,n.sessionCount),l=fU(u,r),d=sE(e,l),p=mU(e,n.fullObservationCount);s.push(...BU(d,p,n,i,o));let f=r[0],h=e[0];GU(n,f,h)&&s.push(...WU(f,o));let _=oE(e,n,a,i);return s.push(...JU(_,o)),s.push(...XU(c,n,o)),s.join(` -`).trimEnd()}async function uE(t,e=!1){let r=eE(),n=t?.cwd??process.cwd(),i=aU(n),a=kfe();if(!a)return"";try{let o=iE(a,i,r),s=aE(a,i,r);return o.length===0&&s.length===0?Tfe(i,e):Ife(i,o,s,r,n,t?.session_id,e)}finally{a.close()}}var QU,eq,tq,Efe,rq=Gt(()=>{"use strict";QU=yt(require("path"),1),eq=require("os"),tq=require("fs");ph();Ae();oU();tE();wo();cE();HU();VU();KU();YU();Ec();kc();Efe=QU.default.join((0,eq.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version")});var nq=Gt(()=>{"use strict";rq();tE();wo();cE()});var lE={};Rn(lE,{generateContext:()=>uE});var dE=Gt(()=>{"use strict";nq()});var Cfe={};Rn(Cfe,{WorkerService:()=>Ig,updateCursorContextForProject:()=>dh});module.exports=qd(Cfe);var cq=yt(require("path"),1);var Xe;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let a={};for(let o of i)a[o]=o;return a},t.getValidEnumValues=i=>{let a=t.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(let s of a)o[s]=i[s];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(a){return i[a]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let a=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},t.find=(i,a)=>{for(let o of i)if(a(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,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=n,t.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(Xe||(Xe={}));var vE;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(vE||(vE={}));var ue=Xe.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),_i=t=>{switch(typeof t){case"undefined":return ue.undefined;case"string":return ue.string;case"number":return Number.isNaN(t)?ue.nan:ue.number;case"boolean":return ue.boolean;case"function":return ue.function;case"bigint":return ue.bigint;case"symbol":return ue.symbol;case"object":return Array.isArray(t)?ue.array:t===null?ue.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ue.promise:typeof Map<"u"&&t instanceof Map?ue.map:typeof Set<"u"&&t instanceof Set?ue.set:typeof Date<"u"&&t instanceof Date?ue.date:ue.object;default:return ue.unknown}};var Q=Xe.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 Qr=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(a){return a.message},n={_errors:[]},i=a=>{for(let o of a.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 s=n,c=0;for(;cr.message){let r=Object.create(null),n=[];for(let i of this.issues)if(i.path.length>0){let a=i.path[0];r[a]=r[a]||[],r[a].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Qr.create=t=>new Qr(t);var mq=(t,e)=>{let r;switch(t.code){case Q.invalid_type:t.received===ue.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case Q.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,Xe.jsonStringifyReplacer)}`;break;case Q.unrecognized_keys:r=`Unrecognized key(s) in object: ${Xe.joinValues(t.keys,", ")}`;break;case Q.invalid_union:r="Invalid input";break;case Q.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Xe.joinValues(t.options)}`;break;case Q.invalid_enum_value:r=`Invalid enum value. Expected ${Xe.joinValues(t.options)}, received '${t.received}'`;break;case Q.invalid_arguments:r="Invalid function arguments";break;case Q.invalid_return_type:r="Invalid function return type";break;case Q.invalid_date:r="Invalid date";break;case Q.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}"`:Xe.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case Q.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 Q.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 Q.custom:r="Invalid input";break;case Q.invalid_intersection_types:r="Intersection results could not be merged";break;case Q.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case Q.not_finite:r="Number must be finite";break;default:r=e.defaultError,Xe.assertNever(t)}return{message:r}},Vi=mq;var hq=Vi;function Pc(){return hq}var Ld=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,a=[...r,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)s=u(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}};function ae(t,e){let r=Pc(),n=Ld({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Vi?void 0:Vi].filter(i=>!!i)});t.common.issues.push(n)}var hr=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 Te;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 a=await i.key,o=await i.value;n.push({key:a,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return Te;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}},Te=Object.freeze({status:"aborted"}),To=t=>({status:"dirty",value:t}),$r=t=>({status:"valid",value:t}),Og=t=>t.status==="aborted",Rg=t=>t.status==="dirty",Oa=t=>t.status==="valid",Oc=t=>typeof Promise<"u"&&t instanceof Promise;var he;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(he||(he={}));var un=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}},yE=(t,e)=>{if(Oa(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 Qr(t.common.issues);return this._error=r,this._error}}};function Me(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,s)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:c??n??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:c??r??s.defaultError}},description:i}}var Fe=class{get description(){return this._def.description}_getType(e){return _i(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:_i(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new hr,ctx:{common:e.parent.common,data:e.data,parsedType:_i(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Oc(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:_i(e)},i=this._parseSync({data:e,path:n.path,parent:n});return yE(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:_i(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Oa(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=>Oa(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:_i(e)},i=this._parse({data:e,path:n.path,parent:n}),a=await(Oc(i)?i:Promise.resolve(i));return yE(n,a)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,a)=>{let o=e(i),s=()=>a.addIssue({code:Q.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(s(),!1)):o?!0:(s(),!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 Nn({schema:this,typeName:we.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Cn.create(this,this._def)}nullable(){return Si.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Wi.create(this)}promise(){return Ra.create(this,this._def)}or(e){return Co.create([this,e],this._def)}and(e){return No.create(this,e,this._def)}transform(e){return new Nn({...Me(this._def),schema:this,typeName:we.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Do({...Me(this._def),innerType:this,defaultValue:r,typeName:we.ZodDefault})}brand(){return new Fd({typeName:we.ZodBranded,type:this,...Me(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Uo({...Me(this._def),innerType:this,catchValue:r,typeName:we.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Zd.create(this,e)}readonly(){return qo.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},gq=/^c[^\s-]{8,}$/i,vq=/^[0-9a-z]+$/,yq=/^[0-9A-HJKMNP-TV-Z]{26}$/i,_q=/^[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,bq=/^[a-z0-9_-]{21}$/i,xq=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Sq=/^[-+]?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)?)??$/,wq=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,$q="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Cg,Eq=/^(?:(?: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])$/,kq=/^(?:(?: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])$/,Tq=/^(([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]))$/,Iq=/^(([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])$/,Pq=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Oq=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,_E="((\\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])))",Rq=new RegExp(`^${_E}$`);function bE(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 Cq(t){return new RegExp(`^${bE(t)}$`)}function Nq(t){let e=`${_E}T${bE(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 jq(t,e){return!!((e==="v4"||!e)&&Eq.test(t)||(e==="v6"||!e)&&Tq.test(t))}function Aq(t,e){if(!xq.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 Mq(t,e){return!!((e==="v4"||!e)&&kq.test(t)||(e==="v6"||!e)&&Iq.test(t))}var Po=class t extends Fe{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ue.string){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_type,expected:ue.string,received:a.parsedType}),Te}let n=new hr,i;for(let a of this._def.checks)if(a.kind==="min")e.data.lengtha.value&&(i=this._getOrReturnCtx(e,i),ae(i,{code:Q.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){let o=e.data.length>a.value,s=e.data.lengthe.test(i),{validation:r,code:Q.invalid_string,...he.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...he.errToObj(e)})}url(e){return this._addCheck({kind:"url",...he.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...he.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...he.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...he.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...he.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...he.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...he.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...he.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...he.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...he.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...he.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...he.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,...he.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,...he.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...he.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...he.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...he.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...he.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...he.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...he.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...he.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...he.errToObj(r)})}nonempty(e){return this.min(1,he.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 Po({checks:[],typeName:we.ZodString,coerce:t?.coerce??!1,...Me(t)});function zq(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}var Rc=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)!==ue.number){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_type,expected:ue.number,received:a.parsedType}),Te}let n,i=new hr;for(let a of this._def.checks)a.kind==="int"?Xe.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?zq(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.not_finite,message:a.message}),i.dirty()):Xe.assertNever(a);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,he.toString(r))}gt(e,r){return this.setLimit("min",e,!1,he.toString(r))}lte(e,r){return this.setLimit("max",e,!0,he.toString(r))}lt(e,r){return this.setLimit("max",e,!1,he.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:he.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:he.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:he.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:he.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:he.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:he.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:he.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:he.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:he.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:he.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"&&Xe.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 Rc({checks:[],typeName:we.ZodNumber,coerce:t?.coerce||!1,...Me(t)});var Cc=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)!==ue.bigint)return this._getInvalidInput(e);let n,i=new hr;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):Xe.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return ae(r,{code:Q.invalid_type,expected:ue.bigint,received:r.parsedType}),Te}gte(e,r){return this.setLimit("min",e,!0,he.toString(r))}gt(e,r){return this.setLimit("min",e,!1,he.toString(r))}lte(e,r){return this.setLimit("max",e,!0,he.toString(r))}lt(e,r){return this.setLimit("max",e,!1,he.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:he.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:he.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:he.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:he.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:he.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:he.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 Cc({checks:[],typeName:we.ZodBigInt,coerce:t?.coerce??!1,...Me(t)});var Nc=class extends Fe{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ue.boolean){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.boolean,received:n.parsedType}),Te}return $r(e.data)}};Nc.create=t=>new Nc({typeName:we.ZodBoolean,coerce:t?.coerce||!1,...Me(t)});var jc=class t extends Fe{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ue.date){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_type,expected:ue.date,received:a.parsedType}),Te}if(Number.isNaN(e.data.getTime())){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_date}),Te}let n=new hr,i;for(let a of this._def.checks)a.kind==="min"?e.data.getTime()a.value&&(i=this._getOrReturnCtx(e,i),ae(i,{code:Q.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):Xe.assertNever(a);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:he.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:he.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 jc({checks:[],coerce:t?.coerce||!1,typeName:we.ZodDate,...Me(t)});var Ac=class extends Fe{_parse(e){if(this._getType(e)!==ue.symbol){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.symbol,received:n.parsedType}),Te}return $r(e.data)}};Ac.create=t=>new Ac({typeName:we.ZodSymbol,...Me(t)});var Oo=class extends Fe{_parse(e){if(this._getType(e)!==ue.undefined){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.undefined,received:n.parsedType}),Te}return $r(e.data)}};Oo.create=t=>new Oo({typeName:we.ZodUndefined,...Me(t)});var Ro=class extends Fe{_parse(e){if(this._getType(e)!==ue.null){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.null,received:n.parsedType}),Te}return $r(e.data)}};Ro.create=t=>new Ro({typeName:we.ZodNull,...Me(t)});var Mc=class extends Fe{constructor(){super(...arguments),this._any=!0}_parse(e){return $r(e.data)}};Mc.create=t=>new Mc({typeName:we.ZodAny,...Me(t)});var Gi=class extends Fe{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $r(e.data)}};Gi.create=t=>new Gi({typeName:we.ZodUnknown,...Me(t)});var Qn=class extends Fe{_parse(e){let r=this._getOrReturnCtx(e);return ae(r,{code:Q.invalid_type,expected:ue.never,received:r.parsedType}),Te}};Qn.create=t=>new Qn({typeName:we.ZodNever,...Me(t)});var zc=class extends Fe{_parse(e){if(this._getType(e)!==ue.undefined){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.void,received:n.parsedType}),Te}return $r(e.data)}};zc.create=t=>new zc({typeName:we.ZodVoid,...Me(t)});var Wi=class t extends Fe{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==ue.array)return ae(r,{code:Q.invalid_type,expected:ue.array,received:r.parsedType}),Te;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,s=r.data.lengthi.maxLength.value&&(ae(r,{code:Q.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,s)=>i.type._parseAsync(new un(r,o,r.path,s)))).then(o=>hr.mergeArray(n,o));let a=[...r.data].map((o,s)=>i.type._parseSync(new un(r,o,r.path,s)));return hr.mergeArray(n,a)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:he.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:he.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:he.toString(r)}})}nonempty(e){return this.min(1,e)}};Wi.create=(t,e)=>new Wi({type:t,minLength:null,maxLength:null,exactLength:null,typeName:we.ZodArray,...Me(e)});function Io(t){if(t instanceof en){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Cn.create(Io(n))}return new en({...t._def,shape:()=>e})}else return t instanceof Wi?new Wi({...t._def,type:Io(t.element)}):t instanceof Cn?Cn.create(Io(t.unwrap())):t instanceof Si?Si.create(Io(t.unwrap())):t instanceof xi?xi.create(t.items.map(e=>Io(e))):t}var en=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=Xe.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==ue.object){let u=this._getOrReturnCtx(e);return ae(u,{code:Q.invalid_type,expected:ue.object,received:u.parsedType}),Te}let{status:n,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof Qn&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||s.push(u);let c=[];for(let u of o){let l=a[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new un(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Qn){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of s)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")s.length>0&&(ae(i,{code:Q.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=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new un(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=>hr.mergeObjectSync(n,u)):hr.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return he.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:he.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:we.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of Xe.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 Xe.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Io(this)}partial(e){let r={};for(let n of Xe.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 Xe.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof Cn;)a=a._def.innerType;r[n]=a}return new t({...this._def,shape:()=>r})}keyof(){return xE(Xe.objectKeys(this.shape))}};en.create=(t,e)=>new en({shape:()=>t,unknownKeys:"strip",catchall:Qn.create(),typeName:we.ZodObject,...Me(e)});en.strictCreate=(t,e)=>new en({shape:()=>t,unknownKeys:"strict",catchall:Qn.create(),typeName:we.ZodObject,...Me(e)});en.lazycreate=(t,e)=>new en({shape:t,unknownKeys:"strip",catchall:Qn.create(),typeName:we.ZodObject,...Me(e)});var Co=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(a){for(let s of a)if(s.result.status==="valid")return s.result;for(let s of a)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let o=a.map(s=>new Qr(s.ctx.common.issues));return ae(r,{code:Q.invalid_union,unionErrors:o}),Te}if(r.common.async)return Promise.all(n.map(async a=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await a._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let a,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"&&!a&&(a={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(a)return r.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(c=>new Qr(c));return ae(r,{code:Q.invalid_union,unionErrors:s}),Te}}get options(){return this._def.options}};Co.create=(t,e)=>new Co({options:t,typeName:we.ZodUnion,...Me(e)});var bi=t=>t instanceof jo?bi(t.schema):t instanceof Nn?bi(t.innerType()):t instanceof Ao?[t.value]:t instanceof Mo?t.options:t instanceof zo?Xe.objectValues(t.enum):t instanceof Do?bi(t._def.innerType):t instanceof Oo?[void 0]:t instanceof Ro?[null]:t instanceof Cn?[void 0,...bi(t.unwrap())]:t instanceof Si?[null,...bi(t.unwrap())]:t instanceof Fd||t instanceof qo?bi(t.unwrap()):t instanceof Uo?bi(t._def.innerType):[],Ng=class t extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ue.object)return ae(r,{code:Q.invalid_type,expected:ue.object,received:r.parsedType}),Te;let n=this.discriminator,i=r.data[n],a=this.optionsMap.get(i);return a?r.common.async?a._parseAsync({data:r.data,path:r.path,parent:r}):a._parseSync({data:r.data,path:r.path,parent:r}):(ae(r,{code:Q.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Te)}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 a of r){let o=bi(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new t({typeName:we.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Me(n)})}};function jg(t,e){let r=_i(t),n=_i(e);if(t===e)return{valid:!0,data:t};if(r===ue.object&&n===ue.object){let i=Xe.objectKeys(e),a=Xe.objectKeys(t).filter(s=>i.indexOf(s)!==-1),o={...t,...e};for(let s of a){let c=jg(t[s],e[s]);if(!c.valid)return{valid:!1};o[s]=c.data}return{valid:!0,data:o}}else if(r===ue.array&&n===ue.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let a=0;a{if(Og(a)||Og(o))return Te;let s=jg(a.value,o.value);return s.valid?((Rg(a)||Rg(o))&&r.dirty(),{status:r.value,value:s.data}):(ae(n,{code:Q.invalid_intersection_types}),Te)};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(([a,o])=>i(a,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}))}};No.create=(t,e,r)=>new No({left:t,right:e,typeName:we.ZodIntersection,...Me(r)});var xi=class t extends Fe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ue.array)return ae(n,{code:Q.invalid_type,expected:ue.array,received:n.parsedType}),Te;if(n.data.lengththis._def.items.length&&(ae(n,{code:Q.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let a=[...n.data].map((o,s)=>{let c=this._def.items[s]||this._def.rest;return c?c._parse(new un(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>hr.mergeArray(r,o)):hr.mergeArray(r,a)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};xi.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new xi({items:t,typeName:we.ZodTuple,rest:null,...Me(e)})};var Ag=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!==ue.object)return ae(n,{code:Q.invalid_type,expected:ue.object,received:n.parsedType}),Te;let i=[],a=this._def.keyType,o=this._def.valueType;for(let s in n.data)i.push({key:a._parse(new un(n,s,n.path,s)),value:o._parse(new un(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?hr.mergeObjectAsync(r,i):hr.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:we.ZodRecord,...Me(n)}):new t({keyType:Po.create(),valueType:e,typeName:we.ZodRecord,...Me(r)})}},Dc=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!==ue.map)return ae(n,{code:Q.invalid_type,expected:ue.map,received:n.parsedType}),Te;let i=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([s,c],u)=>({key:i._parse(new un(n,s,n.path,[u,"key"])),value:a._parse(new un(n,c,n.path,[u,"value"]))}));if(n.common.async){let s=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 Te;(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 o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Te;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}}}};Dc.create=(t,e,r)=>new Dc({valueType:e,keyType:t,typeName:we.ZodMap,...Me(r)});var Uc=class t extends Fe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ue.set)return ae(n,{code:Q.invalid_type,expected:ue.set,received:n.parsedType}),Te;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(ae(n,{code:Q.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let a=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Te;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let s=[...n.data.values()].map((c,u)=>a._parse(new un(n,c,n.path,u)));return n.common.async?Promise.all(s).then(c=>o(c)):o(s)}min(e,r){return new t({...this._def,minSize:{value:e,message:he.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:he.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Uc.create=(t,e)=>new Uc({valueType:t,minSize:null,maxSize:null,typeName:we.ZodSet,...Me(e)});var Mg=class t extends Fe{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ue.function)return ae(r,{code:Q.invalid_type,expected:ue.function,received:r.parsedType}),Te;function n(s,c){return Ld({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Pc(),Vi].filter(u=>!!u),issueData:{code:Q.invalid_arguments,argumentsError:c}})}function i(s,c){return Ld({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Pc(),Vi].filter(u=>!!u),issueData:{code:Q.invalid_return_type,returnTypeError:c}})}let a={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Ra){let s=this;return $r(async function(...c){let u=new Qr([]),l=await s._def.args.parseAsync(c,a).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(o,this,l);return await s._def.returns._def.type.parseAsync(d,a).catch(f=>{throw u.addIssue(i(d,f)),u})})}else{let s=this;return $r(function(...c){let u=s._def.args.safeParse(c,a);if(!u.success)throw new Qr([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=s._def.returns.safeParse(l,a);if(!d.success)throw new Qr([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:xi.create(e).rest(Gi.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||xi.create([]).rest(Gi.create()),returns:r||Gi.create(),typeName:we.ZodFunction,...Me(n)})}},jo=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})}};jo.create=(t,e)=>new jo({getter:t,typeName:we.ZodLazy,...Me(e)});var Ao=class extends Fe{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return ae(r,{received:r.data,code:Q.invalid_literal,expected:this._def.value}),Te}return{status:"valid",value:e.data}}get value(){return this._def.value}};Ao.create=(t,e)=>new Ao({value:t,typeName:we.ZodLiteral,...Me(e)});function xE(t,e){return new Mo({values:t,typeName:we.ZodEnum,...Me(e)})}var Mo=class t extends Fe{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return ae(r,{expected:Xe.joinValues(n),received:r.parsedType,code:Q.invalid_type}),Te}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 ae(r,{received:r.data,code:Q.invalid_enum_value,options:n}),Te}return $r(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})}};Mo.create=xE;var zo=class extends Fe{_parse(e){let r=Xe.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ue.string&&n.parsedType!==ue.number){let i=Xe.objectValues(r);return ae(n,{expected:Xe.joinValues(i),received:n.parsedType,code:Q.invalid_type}),Te}if(this._cache||(this._cache=new Set(Xe.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=Xe.objectValues(r);return ae(n,{received:n.data,code:Q.invalid_enum_value,options:i}),Te}return $r(e.data)}get enum(){return this._def.values}};zo.create=(t,e)=>new zo({values:t,typeName:we.ZodNativeEnum,...Me(e)});var Ra=class extends Fe{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ue.promise&&r.common.async===!1)return ae(r,{code:Q.invalid_type,expected:ue.promise,received:r.parsedType}),Te;let n=r.parsedType===ue.promise?r.data:Promise.resolve(r.data);return $r(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Ra.create=(t,e)=>new Ra({type:t,typeName:we.ZodPromise,...Me(e)});var Nn=class extends Fe{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===we.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,a={addIssue:o=>{ae(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),i.type==="preprocess"){let o=i.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async s=>{if(r.value==="aborted")return Te;let c=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return c.status==="aborted"?Te:c.status==="dirty"?To(c.value):r.value==="dirty"?To(c.value):c});{if(r.value==="aborted")return Te;let s=this._def.schema._parseSync({data:o,path:n.path,parent:n});return s.status==="aborted"?Te:s.status==="dirty"?To(s.value):r.value==="dirty"?To(s.value):s}}if(i.type==="refinement"){let o=s=>{let c=i.refinement(s,a);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"?Te:(s.status==="dirty"&&r.dirty(),o(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"?Te:(s.status==="dirty"&&r.dirty(),o(s.value).then(()=>({status:r.value,value:s.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(!Oa(o))return Te;let s=i.transform(o.value,a);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(o=>Oa(o)?Promise.resolve(i.transform(o.value,a)).then(s=>({status:r.value,value:s})):Te);Xe.assertNever(i)}};Nn.create=(t,e,r)=>new Nn({schema:t,typeName:we.ZodEffects,effect:e,...Me(r)});Nn.createWithPreprocess=(t,e,r)=>new Nn({schema:e,effect:{type:"preprocess",transform:t},typeName:we.ZodEffects,...Me(r)});var Cn=class extends Fe{_parse(e){return this._getType(e)===ue.undefined?$r(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Cn.create=(t,e)=>new Cn({innerType:t,typeName:we.ZodOptional,...Me(e)});var Si=class extends Fe{_parse(e){return this._getType(e)===ue.null?$r(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Si.create=(t,e)=>new Si({innerType:t,typeName:we.ZodNullable,...Me(e)});var Do=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===ue.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Do.create=(t,e)=>new Do({innerType:t,typeName:we.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Me(e)});var Uo=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 Oc(i)?i.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new Qr(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Qr(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Uo.create=(t,e)=>new Uo({innerType:t,typeName:we.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Me(e)});var qc=class extends Fe{_parse(e){if(this._getType(e)!==ue.nan){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.nan,received:n.parsedType}),Te}return{status:"valid",value:e.data}}};qc.create=t=>new qc({typeName:we.ZodNaN,...Me(t)});var Fd=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}},Zd=class t extends Fe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Te:a.status==="dirty"?(r.dirty(),To(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Te: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:we.ZodPipeline})}},qo=class extends Fe{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Oa(i)&&(i.value=Object.freeze(i.value)),i);return Oc(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};qo.create=(t,e)=>new qo({innerType:t,typeName:we.ZodReadonly,...Me(e)});var Yfe={object:en.lazycreate},we;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(we||(we={}));var Qfe=Po.create,eme=Rc.create,tme=qc.create,rme=Cc.create,nme=Nc.create,ime=jc.create,ame=Ac.create,ome=Oo.create,sme=Ro.create,cme=Mc.create,ume=Gi.create,lme=Qn.create,dme=zc.create,pme=Wi.create,Dq=en.create,fme=en.strictCreate,mme=Co.create,hme=Ng.create,gme=No.create,vme=xi.create,yme=Ag.create,_me=Dc.create,bme=Uc.create,xme=Mg.create,Sme=jo.create,wme=Ao.create,$me=Mo.create,Eme=zo.create,kme=Ra.create,Tme=Nn.create,Ime=Cn.create,Pme=Si.create,Ome=Nn.createWithPreprocess,Rme=Zd.create;var SE=Object.freeze({status:"aborted"});function L(t,e,r){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:o,traits:new Set},enumerable:!1}),s._zod.traits.has(t))return;s._zod.traits.add(t),e(s,c);let u=o.prototype,l=Object.keys(u);for(let d=0;dr?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var ei=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Ca=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},Hd={};function tr(t){return t&&Object.assign(Hd,t),Hd}var ee={};Rn(ee,{BIGINT_FORMAT_RANGES:()=>Bg,Class:()=>Dg,NUMBER_FORMAT_RANGES:()=>Hg,aborted:()=>Yi,allowsEval:()=>Lg,assert:()=>Bq,assertEqual:()=>Lq,assertIs:()=>Zq,assertNever:()=>Hq,assertNotEqual:()=>Fq,assignProp:()=>Ji,base64ToUint8Array:()=>EE,base64urlToUint8Array:()=>cL,cached:()=>Fo,captureStackTrace:()=>Vd,cleanEnum:()=>sL,cleanRegex:()=>Zc,clone:()=>Er,cloneDef:()=>Gq,createTransparentProxy:()=>Qq,defineLazy:()=>qe,esc:()=>Bd,escapeRegex:()=>ln,extend:()=>rL,finalizeIssue:()=>zr,floatSafeRemainder:()=>Ug,getElementAtPath:()=>Wq,getEnumValues:()=>Fc,getLengthableOrigin:()=>Vc,getParsedType:()=>Yq,getSizableOrigin:()=>Bc,hexToUint8Array:()=>lL,isObject:()=>Na,isPlainObject:()=>Xi,issue:()=>Zo,joinValues:()=>$e,jsonStringifyReplacer:()=>Lo,merge:()=>iL,mergeDefs:()=>wi,normalizeParams:()=>oe,nullish:()=>Ki,numKeys:()=>Xq,objectClone:()=>Vq,omit:()=>tL,optionalKeys:()=>Zg,parsedType:()=>Ie,partial:()=>aL,pick:()=>eL,prefixIssues:()=>tn,primitiveTypes:()=>Fg,promiseAllObject:()=>Kq,propertyKeyTypes:()=>Hc,randomString:()=>Jq,required:()=>oL,safeExtend:()=>nL,shallowClone:()=>$E,slugify:()=>qg,stringifyPrimitive:()=>Ee,uint8ArrayToBase64:()=>kE,uint8ArrayToBase64url:()=>uL,uint8ArrayToHex:()=>dL,unwrapMessage:()=>Lc});function Lq(t){return t}function Fq(t){return t}function Zq(t){}function Hq(t){throw new Error("Unexpected value in exhaustive check")}function Bq(t){}function Fc(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=>Ee(r)).join(e)}function Lo(t,e){return typeof e=="bigint"?e.toString():e}function Fo(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ki(t){return t==null}function Zc(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Ug(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 a=r>i?r:i,o=Number.parseInt(t.toFixed(a).replace(".","")),s=Number.parseInt(e.toFixed(a).replace(".",""));return o%s/10**a}var wE=Symbol("evaluating");function qe(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==wE)return n===void 0&&(n=wE,n=r()),n},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function Vq(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Ji(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function wi(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function Gq(t){return wi(t._zod.def)}function Wq(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function Kq(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let a=0;a{};function Na(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Lg=Fo(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Xi(t){if(Na(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Na(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function $E(t){return Xi(t)?{...t}:Array.isArray(t)?[...t]:t}function Xq(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var Yq=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}`)}},Hc=new Set(["string","number","symbol"]),Fg=new Set(["string","number","bigint","boolean","symbol","undefined"]);function ln(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Er(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function oe(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 Qq(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,a){return e??(e=t()),Reflect.set(e,n,i,a)},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 Ee(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function Zg(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var Hg={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]},Bg={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function eL(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 a=wi(t._zod.def,{get shape(){let o={};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(o[s]=r.shape[s])}return Ji(this,"shape",o),o},checks:[]});return Er(t,a)}function tL(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 a=wi(t._zod.def,{get shape(){let o={...t._zod.def.shape};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete o[s]}return Ji(this,"shape",o),o},checks:[]});return Er(t,a)}function rL(t,e){if(!Xi(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let a=t._zod.def.shape;for(let o in e)if(Object.getOwnPropertyDescriptor(a,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let i=wi(t._zod.def,{get shape(){let a={...t._zod.def.shape,...e};return Ji(this,"shape",a),a}});return Er(t,i)}function nL(t,e){if(!Xi(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=wi(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Ji(this,"shape",n),n}});return Er(t,r)}function iL(t,e){let r=wi(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Ji(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:[]});return Er(t,r)}function aL(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=wi(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 Ji(this,"shape",c),c},checks:[]});return Er(e,o)}function oL(t,e,r){let n=wi(e._zod.def,{get shape(){let i=e._zod.def.shape,a={...i};if(r)for(let o in r){if(!(o in a))throw new Error(`Unrecognized key: "${o}"`);r[o]&&(a[o]=new t({type:"nonoptional",innerType:i[o]}))}else for(let o in i)a[o]=new t({type:"nonoptional",innerType:i[o]});return Ji(this,"shape",a),a}});return Er(e,n)}function Yi(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 Lc(t){return typeof t=="string"?t:t?.message}function zr(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=Lc(t.inst?._zod.def?.error?.(t))??Lc(e?.error?.(t))??Lc(r.customError?.(t))??Lc(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Bc(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Vc(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function Ie(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 Zo(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function sL(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function EE(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;ne.toString(16).padStart(2,"0")).join("")}var Dg=class{constructor(...e){}};var TE=(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,Lo,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Gd=L("$ZodError",TE),Gc=L("$ZodError",TE,{Parent:Error});function Wd(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 Kd(t,e=r=>r.message){let r={_errors:[]},n=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>n({issues:o}));else if(a.code==="invalid_key")n({issues:a.issues});else if(a.code==="invalid_element")n({issues:a.issues});else if(a.path.length===0)r._errors.push(e(a));else{let o=r,s=0;for(;s(e,r,n,i)=>{let a=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise)throw new ei;if(o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>zr(c,a,tr())));throw Vd(s,i?.callee),s}return o.value},Kc=Wc(Gc),Jc=t=>async(e,r,n,i)=>{let a=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>zr(c,a,tr())));throw Vd(s,i?.callee),s}return o.value},Xc=Jc(Gc),Yc=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new ei;return a.issues.length?{success:!1,error:new(t??Gd)(a.issues.map(o=>zr(o,i,tr())))}:{success:!0,data:a.value}},Ho=Yc(Gc),Qc=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new t(a.issues.map(o=>zr(o,i,tr())))}:{success:!0,data:a.value}},eu=Qc(Gc),IE=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Wc(t)(e,r,i)};var PE=t=>(e,r,n)=>Wc(t)(e,r,n);var OE=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Jc(t)(e,r,i)};var RE=t=>async(e,r,n)=>Jc(t)(e,r,n);var CE=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Yc(t)(e,r,i)};var NE=t=>(e,r,n)=>Yc(t)(e,r,n);var jE=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Qc(t)(e,r,i)};var AE=t=>async(e,r,n)=>Qc(t)(e,r,n);var dn={};Rn(dn,{base64:()=>sv,base64url:()=>Jd,bigint:()=>fv,boolean:()=>hv,browserEmail:()=>bL,cidrv4:()=>av,cidrv6:()=>ov,cuid:()=>Vg,cuid2:()=>Gg,date:()=>uv,datetime:()=>dv,domain:()=>wL,duration:()=>Yg,e164:()=>cv,email:()=>ev,emoji:()=>tv,extendedDuration:()=>fL,guid:()=>Qg,hex:()=>$L,hostname:()=>SL,html5Email:()=>vL,idnEmail:()=>_L,integer:()=>mv,ipv4:()=>rv,ipv6:()=>nv,ksuid:()=>Jg,lowercase:()=>yv,mac:()=>iv,md5_base64:()=>kL,md5_base64url:()=>TL,md5_hex:()=>EL,nanoid:()=>Xg,null:()=>gv,number:()=>Xd,rfc5322Email:()=>yL,sha1_base64:()=>PL,sha1_base64url:()=>OL,sha1_hex:()=>IL,sha256_base64:()=>CL,sha256_base64url:()=>NL,sha256_hex:()=>RL,sha384_base64:()=>AL,sha384_base64url:()=>ML,sha384_hex:()=>jL,sha512_base64:()=>DL,sha512_base64url:()=>UL,sha512_hex:()=>zL,string:()=>pv,time:()=>lv,ulid:()=>Wg,undefined:()=>vv,unicodeEmail:()=>ME,uppercase:()=>_v,uuid:()=>ja,uuid4:()=>mL,uuid6:()=>hL,uuid7:()=>gL,xid:()=>Kg});var Vg=/^[cC][^\s-]{8,}$/,Gg=/^[0-9a-z]+$/,Wg=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Kg=/^[0-9a-vA-V]{20}$/,Jg=/^[A-Za-z0-9]{27}$/,Xg=/^[a-zA-Z0-9_-]{21}$/,Yg=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,fL=/^[-+]?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)?)??$/,Qg=/^([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})$/,ja=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)$/,mL=ja(4),hL=ja(6),gL=ja(7),ev=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,vL=/^[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])?)*$/,yL=/^(([^<>()\[\]\\.,;:\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,}))$/,ME=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,_L=ME,bL=/^[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])?)*$/,xL="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function tv(){return new RegExp(xL,"u")}var rv=/^(?:(?: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])$/,nv=/^(([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}|:))$/,iv=t=>{let e=ln(t??":");return new RegExp(`^(?:[0-9A-F]{2}${e}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${e}){5}[0-9a-f]{2}$`)},av=/^((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])$/,ov=/^(([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])$/,sv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Jd=/^[A-Za-z0-9_-]*$/,SL=/^(?=.{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])?)*\.?$/,wL=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,cv=/^\+[1-9]\d{6,14}$/,zE="(?:(?:\\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])))",uv=new RegExp(`^${zE}$`);function DE(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 lv(t){return new RegExp(`^${DE(t)}$`)}function dv(t){let e=DE({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(`^${zE}T(?:${n})$`)}var pv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},fv=/^-?\d+n?$/,mv=/^-?\d+$/,Xd=/^-?\d+(?:\.\d+)?$/,hv=/^(?:true|false)$/i,gv=/^null$/i;var vv=/^undefined$/i;var yv=/^[^A-Z]*$/,_v=/^[^a-z]*$/,$L=/^[0-9a-fA-F]*$/;function tu(t,e){return new RegExp(`^[A-Za-z0-9+/]{${t}}${e}$`)}function ru(t){return new RegExp(`^[A-Za-z0-9_-]{${t}}$`)}var EL=/^[0-9a-fA-F]{32}$/,kL=tu(22,"=="),TL=ru(22),IL=/^[0-9a-fA-F]{40}$/,PL=tu(27,"="),OL=ru(27),RL=/^[0-9a-fA-F]{64}$/,CL=tu(43,"="),NL=ru(43),jL=/^[0-9a-fA-F]{96}$/,AL=tu(64,""),ML=ru(64),zL=/^[0-9a-fA-F]{128}$/,DL=tu(86,"=="),UL=ru(86);var wt=L("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),qE={number:"number",bigint:"bigint",object:"date"},bv=L("$ZodCheckLessThan",(t,e)=>{wt.init(t,e);let r=qE[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{wt.init(t,e);let r=qE[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>a&&(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})}}),LE=L("$ZodCheckMultipleOf",(t,e)=>{wt.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):Ug(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})}}),FE=L("$ZodCheckNumberFormat",(t,e)=>{wt.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,a]=Hg[e.format];t._zod.onattach.push(o=>{let s=o._zod.bag;s.format=e.format,s.minimum=i,s.maximum=a,r&&(s.pattern=mv)}),t._zod.check=o=>{let s=o.value;if(r){if(!Number.isInteger(s)){o.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:s,inst:t});return}if(!Number.isSafeInteger(s)){s>0?o.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}):o.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}}sa&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inclusive:!0,inst:t,continue:!e.abort})}}),ZE=L("$ZodCheckBigIntFormat",(t,e)=>{wt.init(t,e);let[r,n]=Bg[e.format];t._zod.onattach.push(i=>{let a=i._zod.bag;a.format=e.format,a.minimum=r,a.maximum=n}),t._zod.check=i=>{let a=i.value;an&&i.issues.push({origin:"bigint",input:a,code:"too_big",maximum:n,inclusive:!0,inst:t,continue:!e.abort})}}),HE=L("$ZodCheckMaxSize",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Ki(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:Bc(i),code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),BE=L("$ZodCheckMinSize",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Ki(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:Bc(i),code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),VE=L("$ZodCheckSizeEquals",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Ki(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,a=i.size;if(a===e.size)return;let o=a>e.size;n.issues.push({origin:Bc(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})}}),GE=L("$ZodCheckMaxLength",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Ki(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=Vc(i);n.issues.push({origin:o,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),WE=L("$ZodCheckMinLength",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Ki(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=Vc(i);n.issues.push({origin:o,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),KE=L("$ZodCheckLengthEquals",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Ki(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,a=i.length;if(a===e.length)return;let o=Vc(i),s=a>e.length;n.issues.push({origin:o,...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})}}),nu=L("$ZodCheckStringFormat",(t,e)=>{var r,n;wt.init(t,e),t._zod.onattach.push(i=>{let a=i._zod.bag;a.format=e.format,e.pattern&&(a.patterns??(a.patterns=new Set),a.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=()=>{})}),JE=L("$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})}}),XE=L("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=yv),nu.init(t,e)}),YE=L("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=_v),nu.init(t,e)}),QE=L("$ZodCheckIncludes",(t,e)=>{wt.init(t,e);let r=ln(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{let a=i._zod.bag;a.patterns??(a.patterns=new Set),a.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})}}),ek=L("$ZodCheckStartsWith",(t,e)=>{wt.init(t,e);let r=new RegExp(`^${ln(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})}}),tk=L("$ZodCheckEndsWith",(t,e)=>{wt.init(t,e);let r=new RegExp(`.*${ln(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 UE(t,e,r){t.issues.length&&e.issues.push(...tn(r,t.issues))}var rk=L("$ZodCheckProperty",(t,e)=>{wt.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=>UE(i,r,e.property));UE(n,r,e.property)}}),nk=L("$ZodCheckMimeType",(t,e)=>{wt.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})}}),ik=L("$ZodCheckOverwrite",(t,e)=>{wt.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Yd=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(` +`}var Rc=Ht(()=>{"use strict";Md();jr();$o()});function KU(t,e,r,n){let i=[];return n?i.push(...MU(t)):i.push(...SU(t)),n?i.push(...DU()):i.push(...wU()),n?i.push(...zU()):i.push(...$U()),n?i.push(...UU()):i.push(...EU()),xg(r)&&(n?i.push(...qU(e,r)):i.push(...kU(e,r))),i}var JU=Ht(()=>{"use strict";$o();Pc();Rc()});function Cfe(t){let e=new Map;for(let n of t){let i=n.type==="observation"?n.data.created_at:n.data.displayTime,a=Di(i);e.has(a)||e.set(a,[]),e.get(a).push(n)}let r=Array.from(e.entries()).sort((n,i)=>{let a=new Date(n[0]).getTime(),o=new Date(i[0]).getTime();return a-o});return new Map(r)}function Nfe(t,e){return e.fullObservationField==="narrative"?t.narrative:t.facts?wh(t.facts).join(` +`):null}function jfe(t,e,r,n,i,a){let o=[];a?o.push(...LU(t)):o.push(...TU(t));let s=null,c="",u=!1;for(let l of e)if(l.type==="summary"){u&&(o.push(""),u=!1,s=null,c="");let d=l.data,p=kn(d.displayTime);a?o.push(...BU(d,p)):o.push(...OU(d,p))}else{let d=l.data,p=Vn(d.files_modified,i,d.files_read),f=Ar(d.created_at),h=f!==c,_=h?f:"";c=f;let g=r.has(d.id);if(p!==s&&(u&&o.push(""),a?o.push(...FU(p)):o.push(...IU(p)),s=p,u=!0),g){let m=Nfe(d,n);a?o.push(...HU(d,f,h,m,n)):(u&&!a&&(o.push(""),u=!1),o.push(...RU(d,_,m,n)),s=null)}else a?o.push(ZU(d,f,h,n)):o.push(PU(d,_,n))}return u&&o.push(""),o}function XU(t,e,r,n,i){let a=[],o=Cfe(t);for(let[s,c]of o)a.push(...jfe(s,c,e,r,n,i));return a}var YU=Ht(()=>{"use strict";nc();Pc();Rc()});function QU(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 eq(t,e){let r=[];return e?(r.push(...zd("Investigated",t.investigated,ne.blue)),r.push(...zd("Learned",t.learned,ne.yellow)),r.push(...zd("Completed",t.completed,ne.green)),r.push(...zd("Next Steps",t.next_steps,ne.magenta))):(r.push(...Dd("Investigated",t.investigated)),r.push(...Dd("Learned",t.learned)),r.push(...Dd("Completed",t.completed)),r.push(...Dd("Next Steps",t.next_steps))),r}var tq=Ht(()=>{"use strict";Md();Pc();Rc()});function rq(t,e){return e?VU(t):CU(t)}function nq(t,e,r){return!xg(e)||t.totalDiscoveryTokens<=0||t.savings<=0?[]:r?GU(t.totalDiscoveryTokens,t.totalReadTokens):NU(t.totalDiscoveryTokens,t.totalReadTokens)}var iq=Ht(()=>{"use strict";$o();Pc();Rc()});function Mfe(){try{return new ya}catch(t){if(t.code==="ERR_DLOPEN_FAILED"){try{(0,sq.unlinkSync)(Afe)}catch(e){k.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return k.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw t}}function Dfe(t,e){return e?WU(t):jU(t)}function zfe(t,e,r,n,i,a,o){let s=[],c=aE(e);s.push(...KU(t,c,n,o));let u=r.slice(0,n.sessionCount),l=_U(u,r),d=uE(e,l),p=bU(e,n.fullObservationCount);s.push(...XU(d,p,n,i,o));let f=r[0],h=e[0];QU(n,f,h)&&s.push(...eq(f,o));let _=cE(e,n,a,i);return s.push(...rq(_,o)),s.push(...nq(c,n,o)),s.join(` +`).trimEnd()}async function dE(t,e=!1){let r=tE(),n=t?.cwd??process.cwd(),i=lU(n),a=t?.projects||[i],o=Mfe();if(!o)return"";try{let s=a.length>1?vU(o,a,r):oE(o,i,r),c=a.length>1?yU(o,a,r):sE(o,i,r);return s.length===0&&c.length===0?Dfe(i,e):zfe(i,s,c,r,n,t?.session_id,e)}finally{o.close()}}var aq,oq,sq,Afe,cq=Ht(()=>{"use strict";aq=dt(require("path"),1),oq=require("os"),sq=require("fs");mh();Pe();dU();rE();$o();lE();JU();YU();tq();iq();Pc();Rc();Afe=aq.default.join((0,oq.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version")});var uq=Ht(()=>{"use strict";cq();rE();$o();lE()});var pE={};Cn(pE,{generateContext:()=>dE});var fE=Ht(()=>{"use strict";uq()});var Ffe={};Cn(Ffe,{WorkerService:()=>Rg,updateCursorContextForProject:()=>fh});module.exports=Fd(Ffe);var mq=dt(require("path"),1);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 a={};for(let o of i)a[o]=o;return a},t.getValidEnumValues=i=>{let a=t.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(let s of a)o[s]=i[s];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(a){return i[a]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let a=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},t.find=(i,a)=>{for(let o of i)if(a(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,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=n,t.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(Ye||(Ye={}));var _E;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(_E||(_E={}));var ue=Ye.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),_i=t=>{switch(typeof t){case"undefined":return ue.undefined;case"string":return ue.string;case"number":return Number.isNaN(t)?ue.nan:ue.number;case"boolean":return ue.boolean;case"function":return ue.function;case"bigint":return ue.bigint;case"symbol":return ue.symbol;case"object":return Array.isArray(t)?ue.array:t===null?ue.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ue.promise:typeof Map<"u"&&t instanceof Map?ue.map:typeof Set<"u"&&t instanceof Set?ue.set:typeof Date<"u"&&t instanceof Date?ue.date:ue.object;default:return ue.unknown}};var Q=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 en=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(a){return a.message},n={_errors:[]},i=a=>{for(let o of a.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 s=n,c=0;for(;cr.message){let r=Object.create(null),n=[];for(let i of this.issues)if(i.path.length>0){let a=i.path[0];r[a]=r[a]||[],r[a].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};en.create=t=>new en(t);var bq=(t,e)=>{let r;switch(t.code){case Q.invalid_type:t.received===ue.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case Q.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,Ye.jsonStringifyReplacer)}`;break;case Q.unrecognized_keys:r=`Unrecognized key(s) in object: ${Ye.joinValues(t.keys,", ")}`;break;case Q.invalid_union:r="Invalid input";break;case Q.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Ye.joinValues(t.options)}`;break;case Q.invalid_enum_value:r=`Invalid enum value. Expected ${Ye.joinValues(t.options)}, received '${t.received}'`;break;case Q.invalid_arguments:r="Invalid function arguments";break;case Q.invalid_return_type:r="Invalid function return type";break;case Q.invalid_date:r="Invalid date";break;case Q.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 Q.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 Q.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 Q.custom:r="Invalid input";break;case Q.invalid_intersection_types:r="Intersection results could not be merged";break;case Q.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case Q.not_finite:r="Number must be finite";break;default:r=e.defaultError,Ye.assertNever(t)}return{message:r}},Bi=bq;var xq=Bi;function Nc(){return xq}var Zd=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,a=[...r,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)s=u(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}};function ae(t,e){let r=Nc(),n=Zd({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Bi?void 0:Bi].filter(i=>!!i)});t.common.issues.push(n)}var hr=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 Te;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 a=await i.key,o=await i.value;n.push({key:a,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return Te;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}},Te=Object.freeze({status:"aborted"}),Io=t=>({status:"dirty",value:t}),$r=t=>({status:"valid",value:t}),Cg=t=>t.status==="aborted",Ng=t=>t.status==="dirty",Pa=t=>t.status==="valid",jc=t=>typeof Promise<"u"&&t instanceof Promise;var he;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(he||(he={}));var ln=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}},bE=(t,e)=>{if(Pa(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 en(t.common.issues);return this._error=r,this._error}}};function Me(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,s)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:c??n??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:c??r??s.defaultError}},description:i}}var Ze=class{get description(){return this._def.description}_getType(e){return _i(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:_i(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new hr,ctx:{common:e.parent.common,data:e.data,parsedType:_i(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(jc(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:_i(e)},i=this._parseSync({data:e,path:n.path,parent:n});return bE(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:_i(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Pa(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=>Pa(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:_i(e)},i=this._parse({data:e,path:n.path,parent:n}),a=await(jc(i)?i:Promise.resolve(i));return bE(n,a)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,a)=>{let o=e(i),s=()=>a.addIssue({code:Q.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(s(),!1)):o?!0:(s(),!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 jn({schema:this,typeName:we.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Nn.create(this,this._def)}nullable(){return Si.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Gi.create(this)}promise(){return Ra.create(this,this._def)}or(e){return No.create([this,e],this._def)}and(e){return jo.create(this,e,this._def)}transform(e){return new jn({...Me(this._def),schema:this,typeName:we.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Uo({...Me(this._def),innerType:this,defaultValue:r,typeName:we.ZodDefault})}brand(){return new Hd({typeName:we.ZodBranded,type:this,...Me(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new qo({...Me(this._def),innerType:this,catchValue:r,typeName:we.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Bd.create(this,e)}readonly(){return Lo.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Sq=/^c[^\s-]{8,}$/i,wq=/^[0-9a-z]+$/,$q=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Eq=/^[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,kq=/^[a-z0-9_-]{21}$/i,Tq=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Iq=/^[-+]?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)?)??$/,Pq=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Rq="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",jg,Oq=/^(?:(?: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])$/,Cq=/^(?:(?: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])$/,Nq=/^(([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]))$/,jq=/^(([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])$/,Aq=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Mq=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,xE="((\\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])))",Dq=new RegExp(`^${xE}$`);function SE(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 zq(t){return new RegExp(`^${SE(t)}$`)}function Uq(t){let e=`${xE}T${SE(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 qq(t,e){return!!((e==="v4"||!e)&&Oq.test(t)||(e==="v6"||!e)&&Nq.test(t))}function Lq(t,e){if(!Tq.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 Fq(t,e){return!!((e==="v4"||!e)&&Cq.test(t)||(e==="v6"||!e)&&jq.test(t))}var Ro=class t extends Ze{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ue.string){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_type,expected:ue.string,received:a.parsedType}),Te}let n=new hr,i;for(let a of this._def.checks)if(a.kind==="min")e.data.lengtha.value&&(i=this._getOrReturnCtx(e,i),ae(i,{code:Q.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){let o=e.data.length>a.value,s=e.data.lengthe.test(i),{validation:r,code:Q.invalid_string,...he.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...he.errToObj(e)})}url(e){return this._addCheck({kind:"url",...he.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...he.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...he.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...he.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...he.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...he.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...he.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...he.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...he.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...he.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...he.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...he.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,...he.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,...he.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...he.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...he.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...he.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...he.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...he.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...he.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...he.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...he.errToObj(r)})}nonempty(e){return this.min(1,he.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 Ro({checks:[],typeName:we.ZodString,coerce:t?.coerce??!1,...Me(t)});function Zq(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}var Ac=class t extends Ze{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)!==ue.number){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_type,expected:ue.number,received:a.parsedType}),Te}let n,i=new hr;for(let a of this._def.checks)a.kind==="int"?Ye.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?Zq(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.not_finite,message:a.message}),i.dirty()):Ye.assertNever(a);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,he.toString(r))}gt(e,r){return this.setLimit("min",e,!1,he.toString(r))}lte(e,r){return this.setLimit("max",e,!0,he.toString(r))}lt(e,r){return this.setLimit("max",e,!1,he.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:he.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:he.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:he.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:he.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:he.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:he.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:he.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:he.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:he.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:he.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 Ac({checks:[],typeName:we.ZodNumber,coerce:t?.coerce||!1,...Me(t)});var Mc=class t extends Ze{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)!==ue.bigint)return this._getInvalidInput(e);let n,i=new hr;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):Ye.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return ae(r,{code:Q.invalid_type,expected:ue.bigint,received:r.parsedType}),Te}gte(e,r){return this.setLimit("min",e,!0,he.toString(r))}gt(e,r){return this.setLimit("min",e,!1,he.toString(r))}lte(e,r){return this.setLimit("max",e,!0,he.toString(r))}lt(e,r){return this.setLimit("max",e,!1,he.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:he.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:he.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:he.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:he.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:he.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:he.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 Mc({checks:[],typeName:we.ZodBigInt,coerce:t?.coerce??!1,...Me(t)});var Dc=class extends Ze{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ue.boolean){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.boolean,received:n.parsedType}),Te}return $r(e.data)}};Dc.create=t=>new Dc({typeName:we.ZodBoolean,coerce:t?.coerce||!1,...Me(t)});var zc=class t extends Ze{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ue.date){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_type,expected:ue.date,received:a.parsedType}),Te}if(Number.isNaN(e.data.getTime())){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_date}),Te}let n=new hr,i;for(let a of this._def.checks)a.kind==="min"?e.data.getTime()a.value&&(i=this._getOrReturnCtx(e,i),ae(i,{code:Q.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):Ye.assertNever(a);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:he.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:he.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 zc({checks:[],coerce:t?.coerce||!1,typeName:we.ZodDate,...Me(t)});var Uc=class extends Ze{_parse(e){if(this._getType(e)!==ue.symbol){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.symbol,received:n.parsedType}),Te}return $r(e.data)}};Uc.create=t=>new Uc({typeName:we.ZodSymbol,...Me(t)});var Oo=class extends Ze{_parse(e){if(this._getType(e)!==ue.undefined){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.undefined,received:n.parsedType}),Te}return $r(e.data)}};Oo.create=t=>new Oo({typeName:we.ZodUndefined,...Me(t)});var Co=class extends Ze{_parse(e){if(this._getType(e)!==ue.null){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.null,received:n.parsedType}),Te}return $r(e.data)}};Co.create=t=>new Co({typeName:we.ZodNull,...Me(t)});var qc=class extends Ze{constructor(){super(...arguments),this._any=!0}_parse(e){return $r(e.data)}};qc.create=t=>new qc({typeName:we.ZodAny,...Me(t)});var Vi=class extends Ze{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $r(e.data)}};Vi.create=t=>new Vi({typeName:we.ZodUnknown,...Me(t)});var ei=class extends Ze{_parse(e){let r=this._getOrReturnCtx(e);return ae(r,{code:Q.invalid_type,expected:ue.never,received:r.parsedType}),Te}};ei.create=t=>new ei({typeName:we.ZodNever,...Me(t)});var Lc=class extends Ze{_parse(e){if(this._getType(e)!==ue.undefined){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.void,received:n.parsedType}),Te}return $r(e.data)}};Lc.create=t=>new Lc({typeName:we.ZodVoid,...Me(t)});var Gi=class t extends Ze{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==ue.array)return ae(r,{code:Q.invalid_type,expected:ue.array,received:r.parsedType}),Te;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,s=r.data.lengthi.maxLength.value&&(ae(r,{code:Q.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,s)=>i.type._parseAsync(new ln(r,o,r.path,s)))).then(o=>hr.mergeArray(n,o));let a=[...r.data].map((o,s)=>i.type._parseSync(new ln(r,o,r.path,s)));return hr.mergeArray(n,a)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:he.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:he.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:he.toString(r)}})}nonempty(e){return this.min(1,e)}};Gi.create=(t,e)=>new Gi({type:t,minLength:null,maxLength:null,exactLength:null,typeName:we.ZodArray,...Me(e)});function Po(t){if(t instanceof tn){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Nn.create(Po(n))}return new tn({...t._def,shape:()=>e})}else return t instanceof Gi?new Gi({...t._def,type:Po(t.element)}):t instanceof Nn?Nn.create(Po(t.unwrap())):t instanceof Si?Si.create(Po(t.unwrap())):t instanceof xi?xi.create(t.items.map(e=>Po(e))):t}var tn=class t extends Ze{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)!==ue.object){let u=this._getOrReturnCtx(e);return ae(u,{code:Q.invalid_type,expected:ue.object,received:u.parsedType}),Te}let{status:n,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof ei&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||s.push(u);let c=[];for(let u of o){let l=a[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new ln(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof ei){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of s)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")s.length>0&&(ae(i,{code:Q.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=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new ln(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=>hr.mergeObjectSync(n,u)):hr.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return he.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:he.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:we.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of 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 Po(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 a=this.shape[n];for(;a instanceof Nn;)a=a._def.innerType;r[n]=a}return new t({...this._def,shape:()=>r})}keyof(){return wE(Ye.objectKeys(this.shape))}};tn.create=(t,e)=>new tn({shape:()=>t,unknownKeys:"strip",catchall:ei.create(),typeName:we.ZodObject,...Me(e)});tn.strictCreate=(t,e)=>new tn({shape:()=>t,unknownKeys:"strict",catchall:ei.create(),typeName:we.ZodObject,...Me(e)});tn.lazycreate=(t,e)=>new tn({shape:t,unknownKeys:"strip",catchall:ei.create(),typeName:we.ZodObject,...Me(e)});var No=class extends Ze{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(a){for(let s of a)if(s.result.status==="valid")return s.result;for(let s of a)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let o=a.map(s=>new en(s.ctx.common.issues));return ae(r,{code:Q.invalid_union,unionErrors:o}),Te}if(r.common.async)return Promise.all(n.map(async a=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await a._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let a,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"&&!a&&(a={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(a)return r.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(c=>new en(c));return ae(r,{code:Q.invalid_union,unionErrors:s}),Te}}get options(){return this._def.options}};No.create=(t,e)=>new No({options:t,typeName:we.ZodUnion,...Me(e)});var bi=t=>t instanceof Ao?bi(t.schema):t instanceof jn?bi(t.innerType()):t instanceof Mo?[t.value]:t instanceof Do?t.options:t instanceof zo?Ye.objectValues(t.enum):t instanceof Uo?bi(t._def.innerType):t instanceof Oo?[void 0]:t instanceof Co?[null]:t instanceof Nn?[void 0,...bi(t.unwrap())]:t instanceof Si?[null,...bi(t.unwrap())]:t instanceof Hd||t instanceof Lo?bi(t.unwrap()):t instanceof qo?bi(t._def.innerType):[],Ag=class t extends Ze{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ue.object)return ae(r,{code:Q.invalid_type,expected:ue.object,received:r.parsedType}),Te;let n=this.discriminator,i=r.data[n],a=this.optionsMap.get(i);return a?r.common.async?a._parseAsync({data:r.data,path:r.path,parent:r}):a._parseSync({data:r.data,path:r.path,parent:r}):(ae(r,{code:Q.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Te)}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 a of r){let o=bi(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new t({typeName:we.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Me(n)})}};function Mg(t,e){let r=_i(t),n=_i(e);if(t===e)return{valid:!0,data:t};if(r===ue.object&&n===ue.object){let i=Ye.objectKeys(e),a=Ye.objectKeys(t).filter(s=>i.indexOf(s)!==-1),o={...t,...e};for(let s of a){let c=Mg(t[s],e[s]);if(!c.valid)return{valid:!1};o[s]=c.data}return{valid:!0,data:o}}else if(r===ue.array&&n===ue.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let a=0;a{if(Cg(a)||Cg(o))return Te;let s=Mg(a.value,o.value);return s.valid?((Ng(a)||Ng(o))&&r.dirty(),{status:r.value,value:s.data}):(ae(n,{code:Q.invalid_intersection_types}),Te)};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(([a,o])=>i(a,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}))}};jo.create=(t,e,r)=>new jo({left:t,right:e,typeName:we.ZodIntersection,...Me(r)});var xi=class t extends Ze{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ue.array)return ae(n,{code:Q.invalid_type,expected:ue.array,received:n.parsedType}),Te;if(n.data.lengththis._def.items.length&&(ae(n,{code:Q.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let a=[...n.data].map((o,s)=>{let c=this._def.items[s]||this._def.rest;return c?c._parse(new ln(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>hr.mergeArray(r,o)):hr.mergeArray(r,a)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};xi.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new xi({items:t,typeName:we.ZodTuple,rest:null,...Me(e)})};var Dg=class t extends Ze{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!==ue.object)return ae(n,{code:Q.invalid_type,expected:ue.object,received:n.parsedType}),Te;let i=[],a=this._def.keyType,o=this._def.valueType;for(let s in n.data)i.push({key:a._parse(new ln(n,s,n.path,s)),value:o._parse(new ln(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?hr.mergeObjectAsync(r,i):hr.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Ze?new t({keyType:e,valueType:r,typeName:we.ZodRecord,...Me(n)}):new t({keyType:Ro.create(),valueType:e,typeName:we.ZodRecord,...Me(r)})}},Fc=class extends Ze{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!==ue.map)return ae(n,{code:Q.invalid_type,expected:ue.map,received:n.parsedType}),Te;let i=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([s,c],u)=>({key:i._parse(new ln(n,s,n.path,[u,"key"])),value:a._parse(new ln(n,c,n.path,[u,"value"]))}));if(n.common.async){let s=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 Te;(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 o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Te;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}}}};Fc.create=(t,e,r)=>new Fc({valueType:e,keyType:t,typeName:we.ZodMap,...Me(r)});var Zc=class t extends Ze{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ue.set)return ae(n,{code:Q.invalid_type,expected:ue.set,received:n.parsedType}),Te;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(ae(n,{code:Q.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let a=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Te;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let s=[...n.data.values()].map((c,u)=>a._parse(new ln(n,c,n.path,u)));return n.common.async?Promise.all(s).then(c=>o(c)):o(s)}min(e,r){return new t({...this._def,minSize:{value:e,message:he.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:he.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Zc.create=(t,e)=>new Zc({valueType:t,minSize:null,maxSize:null,typeName:we.ZodSet,...Me(e)});var zg=class t extends Ze{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ue.function)return ae(r,{code:Q.invalid_type,expected:ue.function,received:r.parsedType}),Te;function n(s,c){return Zd({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Nc(),Bi].filter(u=>!!u),issueData:{code:Q.invalid_arguments,argumentsError:c}})}function i(s,c){return Zd({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Nc(),Bi].filter(u=>!!u),issueData:{code:Q.invalid_return_type,returnTypeError:c}})}let a={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Ra){let s=this;return $r(async function(...c){let u=new en([]),l=await s._def.args.parseAsync(c,a).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(o,this,l);return await s._def.returns._def.type.parseAsync(d,a).catch(f=>{throw u.addIssue(i(d,f)),u})})}else{let s=this;return $r(function(...c){let u=s._def.args.safeParse(c,a);if(!u.success)throw new en([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=s._def.returns.safeParse(l,a);if(!d.success)throw new en([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:xi.create(e).rest(Vi.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||xi.create([]).rest(Vi.create()),returns:r||Vi.create(),typeName:we.ZodFunction,...Me(n)})}},Ao=class extends Ze{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})}};Ao.create=(t,e)=>new Ao({getter:t,typeName:we.ZodLazy,...Me(e)});var Mo=class extends Ze{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return ae(r,{received:r.data,code:Q.invalid_literal,expected:this._def.value}),Te}return{status:"valid",value:e.data}}get value(){return this._def.value}};Mo.create=(t,e)=>new Mo({value:t,typeName:we.ZodLiteral,...Me(e)});function wE(t,e){return new Do({values:t,typeName:we.ZodEnum,...Me(e)})}var Do=class t extends Ze{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return ae(r,{expected:Ye.joinValues(n),received:r.parsedType,code:Q.invalid_type}),Te}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 ae(r,{received:r.data,code:Q.invalid_enum_value,options:n}),Te}return $r(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})}};Do.create=wE;var zo=class extends Ze{_parse(e){let r=Ye.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ue.string&&n.parsedType!==ue.number){let i=Ye.objectValues(r);return ae(n,{expected:Ye.joinValues(i),received:n.parsedType,code:Q.invalid_type}),Te}if(this._cache||(this._cache=new Set(Ye.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=Ye.objectValues(r);return ae(n,{received:n.data,code:Q.invalid_enum_value,options:i}),Te}return $r(e.data)}get enum(){return this._def.values}};zo.create=(t,e)=>new zo({values:t,typeName:we.ZodNativeEnum,...Me(e)});var Ra=class extends Ze{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ue.promise&&r.common.async===!1)return ae(r,{code:Q.invalid_type,expected:ue.promise,received:r.parsedType}),Te;let n=r.parsedType===ue.promise?r.data:Promise.resolve(r.data);return $r(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Ra.create=(t,e)=>new Ra({type:t,typeName:we.ZodPromise,...Me(e)});var jn=class extends Ze{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===we.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,a={addIssue:o=>{ae(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),i.type==="preprocess"){let o=i.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async s=>{if(r.value==="aborted")return Te;let c=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return c.status==="aborted"?Te:c.status==="dirty"?Io(c.value):r.value==="dirty"?Io(c.value):c});{if(r.value==="aborted")return Te;let s=this._def.schema._parseSync({data:o,path:n.path,parent:n});return s.status==="aborted"?Te:s.status==="dirty"?Io(s.value):r.value==="dirty"?Io(s.value):s}}if(i.type==="refinement"){let o=s=>{let c=i.refinement(s,a);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"?Te:(s.status==="dirty"&&r.dirty(),o(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"?Te:(s.status==="dirty"&&r.dirty(),o(s.value).then(()=>({status:r.value,value:s.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(!Pa(o))return Te;let s=i.transform(o.value,a);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(o=>Pa(o)?Promise.resolve(i.transform(o.value,a)).then(s=>({status:r.value,value:s})):Te);Ye.assertNever(i)}};jn.create=(t,e,r)=>new jn({schema:t,typeName:we.ZodEffects,effect:e,...Me(r)});jn.createWithPreprocess=(t,e,r)=>new jn({schema:e,effect:{type:"preprocess",transform:t},typeName:we.ZodEffects,...Me(r)});var Nn=class extends Ze{_parse(e){return this._getType(e)===ue.undefined?$r(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Nn.create=(t,e)=>new Nn({innerType:t,typeName:we.ZodOptional,...Me(e)});var Si=class extends Ze{_parse(e){return this._getType(e)===ue.null?$r(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Si.create=(t,e)=>new Si({innerType:t,typeName:we.ZodNullable,...Me(e)});var Uo=class extends Ze{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===ue.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Uo.create=(t,e)=>new Uo({innerType:t,typeName:we.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Me(e)});var qo=class extends Ze{_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 jc(i)?i.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new en(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new en(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};qo.create=(t,e)=>new qo({innerType:t,typeName:we.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Me(e)});var Hc=class extends Ze{_parse(e){if(this._getType(e)!==ue.nan){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.nan,received:n.parsedType}),Te}return{status:"valid",value:e.data}}};Hc.create=t=>new Hc({typeName:we.ZodNaN,...Me(t)});var Hd=class extends Ze{_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}},Bd=class t extends Ze{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Te:a.status==="dirty"?(r.dirty(),Io(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Te: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:we.ZodPipeline})}},Lo=class extends Ze{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Pa(i)&&(i.value=Object.freeze(i.value)),i);return jc(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Lo.create=(t,e)=>new Lo({innerType:t,typeName:we.ZodReadonly,...Me(e)});var cme={object:tn.lazycreate},we;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(we||(we={}));var ume=Ro.create,lme=Ac.create,dme=Hc.create,pme=Mc.create,fme=Dc.create,mme=zc.create,hme=Uc.create,gme=Oo.create,vme=Co.create,yme=qc.create,_me=Vi.create,bme=ei.create,xme=Lc.create,Sme=Gi.create,Hq=tn.create,wme=tn.strictCreate,$me=No.create,Eme=Ag.create,kme=jo.create,Tme=xi.create,Ime=Dg.create,Pme=Fc.create,Rme=Zc.create,Ome=zg.create,Cme=Ao.create,Nme=Mo.create,jme=Do.create,Ame=zo.create,Mme=Ra.create,Dme=jn.create,zme=Nn.create,Ume=Si.create,qme=jn.createWithPreprocess,Lme=Bd.create;var $E=Object.freeze({status:"aborted"});function L(t,e,r){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:o,traits:new Set},enumerable:!1}),s._zod.traits.has(t))return;s._zod.traits.add(t),e(s,c);let u=o.prototype,l=Object.keys(u);for(let d=0;dr?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var ti=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Oa=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},Vd={};function tr(t){return t&&Object.assign(Vd,t),Vd}var ee={};Cn(ee,{BIGINT_FORMAT_RANGES:()=>Gg,Class:()=>qg,NUMBER_FORMAT_RANGES:()=>Vg,aborted:()=>Xi,allowsEval:()=>Zg,assert:()=>Xq,assertEqual:()=>Gq,assertIs:()=>Kq,assertNever:()=>Jq,assertNotEqual:()=>Wq,assignProp:()=>Ki,base64ToUint8Array:()=>TE,base64urlToUint8Array:()=>mL,cached:()=>Zo,captureStackTrace:()=>Wd,cleanEnum:()=>fL,cleanRegex:()=>Gc,clone:()=>Er,cloneDef:()=>Qq,createTransparentProxy:()=>aL,defineLazy:()=>qe,esc:()=>Gd,escapeRegex:()=>dn,extend:()=>cL,finalizeIssue:()=>Dr,floatSafeRemainder:()=>Lg,getElementAtPath:()=>eL,getEnumValues:()=>Vc,getLengthableOrigin:()=>Jc,getParsedType:()=>iL,getSizableOrigin:()=>Kc,hexToUint8Array:()=>gL,isObject:()=>Ca,isPlainObject:()=>Ji,issue:()=>Ho,joinValues:()=>$e,jsonStringifyReplacer:()=>Fo,merge:()=>lL,mergeDefs:()=>wi,normalizeParams:()=>oe,nullish:()=>Wi,numKeys:()=>nL,objectClone:()=>Yq,omit:()=>sL,optionalKeys:()=>Bg,parsedType:()=>Ie,partial:()=>dL,pick:()=>oL,prefixIssues:()=>rn,primitiveTypes:()=>Hg,promiseAllObject:()=>tL,propertyKeyTypes:()=>Wc,randomString:()=>rL,required:()=>pL,safeExtend:()=>uL,shallowClone:()=>kE,slugify:()=>Fg,stringifyPrimitive:()=>Ee,uint8ArrayToBase64:()=>IE,uint8ArrayToBase64url:()=>hL,uint8ArrayToHex:()=>vL,unwrapMessage:()=>Bc});function Gq(t){return t}function Wq(t){return t}function Kq(t){}function Jq(t){throw new Error("Unexpected value in exhaustive check")}function Xq(t){}function Vc(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=>Ee(r)).join(e)}function Fo(t,e){return typeof e=="bigint"?e.toString():e}function Zo(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Wi(t){return t==null}function Gc(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Lg(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 a=r>i?r:i,o=Number.parseInt(t.toFixed(a).replace(".","")),s=Number.parseInt(e.toFixed(a).replace(".",""));return o%s/10**a}var EE=Symbol("evaluating");function qe(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==EE)return n===void 0&&(n=EE,n=r()),n},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function Yq(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Ki(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function wi(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function Qq(t){return wi(t._zod.def)}function eL(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function tL(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let a=0;a{};function Ca(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Zg=Zo(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Ji(t){if(Ca(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Ca(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function kE(t){return Ji(t)?{...t}:Array.isArray(t)?[...t]:t}function nL(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var iL=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}`)}},Wc=new Set(["string","number","symbol"]),Hg=new Set(["string","number","bigint","boolean","symbol","undefined"]);function dn(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Er(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function oe(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 aL(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,a){return e??(e=t()),Reflect.set(e,n,i,a)},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 Ee(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function Bg(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var Vg={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]},Gg={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function oL(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 a=wi(t._zod.def,{get shape(){let o={};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(o[s]=r.shape[s])}return Ki(this,"shape",o),o},checks:[]});return Er(t,a)}function sL(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 a=wi(t._zod.def,{get shape(){let o={...t._zod.def.shape};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete o[s]}return Ki(this,"shape",o),o},checks:[]});return Er(t,a)}function cL(t,e){if(!Ji(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let a=t._zod.def.shape;for(let o in e)if(Object.getOwnPropertyDescriptor(a,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let i=wi(t._zod.def,{get shape(){let a={...t._zod.def.shape,...e};return Ki(this,"shape",a),a}});return Er(t,i)}function uL(t,e){if(!Ji(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=wi(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Ki(this,"shape",n),n}});return Er(t,r)}function lL(t,e){let r=wi(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Ki(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:[]});return Er(t,r)}function dL(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=wi(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 Ki(this,"shape",c),c},checks:[]});return Er(e,o)}function pL(t,e,r){let n=wi(e._zod.def,{get shape(){let i=e._zod.def.shape,a={...i};if(r)for(let o in r){if(!(o in a))throw new Error(`Unrecognized key: "${o}"`);r[o]&&(a[o]=new t({type:"nonoptional",innerType:i[o]}))}else for(let o in i)a[o]=new t({type:"nonoptional",innerType:i[o]});return Ki(this,"shape",a),a}});return Er(e,n)}function Xi(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 Bc(t){return typeof t=="string"?t:t?.message}function Dr(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=Bc(t.inst?._zod.def?.error?.(t))??Bc(e?.error?.(t))??Bc(r.customError?.(t))??Bc(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Kc(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Jc(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function Ie(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 Ho(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function fL(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function TE(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;ne.toString(16).padStart(2,"0")).join("")}var qg=class{constructor(...e){}};var PE=(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,Fo,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Kd=L("$ZodError",PE),Xc=L("$ZodError",PE,{Parent:Error});function Jd(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 Xd(t,e=r=>r.message){let r={_errors:[]},n=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>n({issues:o}));else if(a.code==="invalid_key")n({issues:a.issues});else if(a.code==="invalid_element")n({issues:a.issues});else if(a.path.length===0)r._errors.push(e(a));else{let o=r,s=0;for(;s(e,r,n,i)=>{let a=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise)throw new ti;if(o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Dr(c,a,tr())));throw Wd(s,i?.callee),s}return o.value},Qc=Yc(Xc),eu=t=>async(e,r,n,i)=>{let a=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Dr(c,a,tr())));throw Wd(s,i?.callee),s}return o.value},tu=eu(Xc),ru=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new ti;return a.issues.length?{success:!1,error:new(t??Kd)(a.issues.map(o=>Dr(o,i,tr())))}:{success:!0,data:a.value}},Bo=ru(Xc),nu=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new t(a.issues.map(o=>Dr(o,i,tr())))}:{success:!0,data:a.value}},iu=nu(Xc),RE=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Yc(t)(e,r,i)};var OE=t=>(e,r,n)=>Yc(t)(e,r,n);var CE=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return eu(t)(e,r,i)};var NE=t=>async(e,r,n)=>eu(t)(e,r,n);var jE=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return ru(t)(e,r,i)};var AE=t=>(e,r,n)=>ru(t)(e,r,n);var ME=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return nu(t)(e,r,i)};var DE=t=>async(e,r,n)=>nu(t)(e,r,n);var pn={};Cn(pn,{base64:()=>uv,base64url:()=>Yd,bigint:()=>hv,boolean:()=>vv,browserEmail:()=>kL,cidrv4:()=>sv,cidrv6:()=>cv,cuid:()=>Wg,cuid2:()=>Kg,date:()=>dv,datetime:()=>fv,domain:()=>PL,duration:()=>ev,e164:()=>lv,email:()=>rv,emoji:()=>nv,extendedDuration:()=>_L,guid:()=>tv,hex:()=>RL,hostname:()=>IL,html5Email:()=>wL,idnEmail:()=>EL,integer:()=>gv,ipv4:()=>iv,ipv6:()=>av,ksuid:()=>Yg,lowercase:()=>bv,mac:()=>ov,md5_base64:()=>CL,md5_base64url:()=>NL,md5_hex:()=>OL,nanoid:()=>Qg,null:()=>yv,number:()=>Qd,rfc5322Email:()=>$L,sha1_base64:()=>AL,sha1_base64url:()=>ML,sha1_hex:()=>jL,sha256_base64:()=>zL,sha256_base64url:()=>UL,sha256_hex:()=>DL,sha384_base64:()=>LL,sha384_base64url:()=>FL,sha384_hex:()=>qL,sha512_base64:()=>HL,sha512_base64url:()=>BL,sha512_hex:()=>ZL,string:()=>mv,time:()=>pv,ulid:()=>Jg,undefined:()=>_v,unicodeEmail:()=>zE,uppercase:()=>xv,uuid:()=>Na,uuid4:()=>bL,uuid6:()=>xL,uuid7:()=>SL,xid:()=>Xg});var Wg=/^[cC][^\s-]{8,}$/,Kg=/^[0-9a-z]+$/,Jg=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Xg=/^[0-9a-vA-V]{20}$/,Yg=/^[A-Za-z0-9]{27}$/,Qg=/^[a-zA-Z0-9_-]{21}$/,ev=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,_L=/^[-+]?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)?)??$/,tv=/^([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})$/,Na=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)$/,bL=Na(4),xL=Na(6),SL=Na(7),rv=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,wL=/^[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])?)*$/,$L=/^(([^<>()\[\]\\.,;:\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,}))$/,zE=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,EL=zE,kL=/^[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])?)*$/,TL="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function nv(){return new RegExp(TL,"u")}var iv=/^(?:(?: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])$/,av=/^(([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}|:))$/,ov=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}$`)},sv=/^((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])$/,cv=/^(([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])$/,uv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Yd=/^[A-Za-z0-9_-]*$/,IL=/^(?=.{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])?)*\.?$/,PL=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,lv=/^\+[1-9]\d{6,14}$/,UE="(?:(?:\\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])))",dv=new RegExp(`^${UE}$`);function qE(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 pv(t){return new RegExp(`^${qE(t)}$`)}function fv(t){let e=qE({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(`^${UE}T(?:${n})$`)}var mv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},hv=/^-?\d+n?$/,gv=/^-?\d+$/,Qd=/^-?\d+(?:\.\d+)?$/,vv=/^(?:true|false)$/i,yv=/^null$/i;var _v=/^undefined$/i;var bv=/^[^A-Z]*$/,xv=/^[^a-z]*$/,RL=/^[0-9a-fA-F]*$/;function au(t,e){return new RegExp(`^[A-Za-z0-9+/]{${t}}${e}$`)}function ou(t){return new RegExp(`^[A-Za-z0-9_-]{${t}}$`)}var OL=/^[0-9a-fA-F]{32}$/,CL=au(22,"=="),NL=ou(22),jL=/^[0-9a-fA-F]{40}$/,AL=au(27,"="),ML=ou(27),DL=/^[0-9a-fA-F]{64}$/,zL=au(43,"="),UL=ou(43),qL=/^[0-9a-fA-F]{96}$/,LL=au(64,""),FL=ou(64),ZL=/^[0-9a-fA-F]{128}$/,HL=au(86,"=="),BL=ou(86);var wt=L("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),FE={number:"number",bigint:"bigint",object:"date"},Sv=L("$ZodCheckLessThan",(t,e)=>{wt.init(t,e);let r=FE[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{wt.init(t,e);let r=FE[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>a&&(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})}}),ZE=L("$ZodCheckMultipleOf",(t,e)=>{wt.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):Lg(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})}}),HE=L("$ZodCheckNumberFormat",(t,e)=>{wt.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,a]=Vg[e.format];t._zod.onattach.push(o=>{let s=o._zod.bag;s.format=e.format,s.minimum=i,s.maximum=a,r&&(s.pattern=gv)}),t._zod.check=o=>{let s=o.value;if(r){if(!Number.isInteger(s)){o.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:s,inst:t});return}if(!Number.isSafeInteger(s)){s>0?o.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}):o.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}}sa&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inclusive:!0,inst:t,continue:!e.abort})}}),BE=L("$ZodCheckBigIntFormat",(t,e)=>{wt.init(t,e);let[r,n]=Gg[e.format];t._zod.onattach.push(i=>{let a=i._zod.bag;a.format=e.format,a.minimum=r,a.maximum=n}),t._zod.check=i=>{let a=i.value;an&&i.issues.push({origin:"bigint",input:a,code:"too_big",maximum:n,inclusive:!0,inst:t,continue:!e.abort})}}),VE=L("$ZodCheckMaxSize",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Wi(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:Kc(i),code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),GE=L("$ZodCheckMinSize",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Wi(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:Kc(i),code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),WE=L("$ZodCheckSizeEquals",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Wi(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,a=i.size;if(a===e.size)return;let o=a>e.size;n.issues.push({origin:Kc(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})}}),KE=L("$ZodCheckMaxLength",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Wi(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=Jc(i);n.issues.push({origin:o,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),JE=L("$ZodCheckMinLength",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Wi(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=Jc(i);n.issues.push({origin:o,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),XE=L("$ZodCheckLengthEquals",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Wi(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,a=i.length;if(a===e.length)return;let o=Jc(i),s=a>e.length;n.issues.push({origin:o,...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})}}),su=L("$ZodCheckStringFormat",(t,e)=>{var r,n;wt.init(t,e),t._zod.onattach.push(i=>{let a=i._zod.bag;a.format=e.format,e.pattern&&(a.patterns??(a.patterns=new Set),a.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=()=>{})}),YE=L("$ZodCheckRegex",(t,e)=>{su.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})}}),QE=L("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=bv),su.init(t,e)}),ek=L("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=xv),su.init(t,e)}),tk=L("$ZodCheckIncludes",(t,e)=>{wt.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 a=i._zod.bag;a.patterns??(a.patterns=new Set),a.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})}}),rk=L("$ZodCheckStartsWith",(t,e)=>{wt.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})}}),nk=L("$ZodCheckEndsWith",(t,e)=>{wt.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 LE(t,e,r){t.issues.length&&e.issues.push(...rn(r,t.issues))}var ik=L("$ZodCheckProperty",(t,e)=>{wt.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=>LE(i,r,e.property));LE(n,r,e.property)}}),ak=L("$ZodCheckMimeType",(t,e)=>{wt.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})}}),ok=L("$ZodCheckOverwrite",(t,e)=>{wt.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var ep=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)),a=n.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of a)this.content.push(o)}compile(){let e=Function,r=this?.args,i=[...(this?.content??[""]).map(a=>` ${a}`)];return new e(...r,i.join(` -`))}};var ok={major:4,minor:3,patch:4};var je=L("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=ok;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let a of i._zod.onattach)a(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,s,c)=>{let u=Yi(o),l;for(let d of s){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 ei;if(l||f instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await f,o.issues.length!==p&&(u||(u=Yi(o,p)))});else{if(o.issues.length===p)continue;u||(u=Yi(o,p))}}return l?l.then(()=>o):o},a=(o,s,c)=>{if(Yi(o))return o.aborted=!0,o;let u=i(s,n,c);if(u instanceof Promise){if(c.async===!1)throw new ei;return u.then(l=>t._zod.parse(l,c))}return t._zod.parse(u,c)};t._zod.run=(o,s)=>{if(s.skipChecks)return t._zod.parse(o,s);if(s.direction==="backward"){let u=t._zod.parse({value:o.value,issues:[]},{...s,skipChecks:!0});return u instanceof Promise?u.then(l=>a(l,o,s)):a(u,o,s)}let c=t._zod.parse(o,s);if(c instanceof Promise){if(s.async===!1)throw new ei;return c.then(u=>i(u,n,s))}return i(c,n,s)}}qe(t,"~standard",()=>({validate:i=>{try{let a=Ho(t,i);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return eu(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}))}),Aa=L("$ZodString",(t,e)=>{je.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??pv(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}}),_t=L("$ZodStringFormat",(t,e)=>{nu.init(t,e),Aa.init(t,e)}),wv=L("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Qg),_t.init(t,e)}),$v=L("$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=ja(n))}else e.pattern??(e.pattern=ja());_t.init(t,e)}),Ev=L("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=ev),_t.init(t,e)}),kv=L("$ZodURL",(t,e)=>{_t.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})}}}),Tv=L("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=tv()),_t.init(t,e)}),Iv=L("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Xg),_t.init(t,e)}),Pv=L("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=Vg),_t.init(t,e)}),Ov=L("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Gg),_t.init(t,e)}),Rv=L("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Wg),_t.init(t,e)}),Cv=L("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Kg),_t.init(t,e)}),Nv=L("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Jg),_t.init(t,e)}),jv=L("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=dv(e)),_t.init(t,e)}),Av=L("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=uv),_t.init(t,e)}),Mv=L("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=lv(e)),_t.init(t,e)}),zv=L("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Yg),_t.init(t,e)}),Dv=L("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=rv),_t.init(t,e),t._zod.bag.format="ipv4"}),Uv=L("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=nv),_t.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})}}}),qv=L("$ZodMAC",(t,e)=>{e.pattern??(e.pattern=iv(e.delimiter)),_t.init(t,e),t._zod.bag.format="mac"}),Lv=L("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=av),_t.init(t,e)}),Fv=L("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=ov),_t.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[i,a]=n;if(!a)throw new Error;let o=Number(a);if(`${o}`!==a)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 yk(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var Zv=L("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=sv),_t.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{yk(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function qL(t){if(!Jd.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return yk(r)}var Hv=L("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Jd),_t.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{qL(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),Bv=L("$ZodE164",(t,e)=>{e.pattern??(e.pattern=cv),_t.init(t,e)});function LL(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 Vv=L("$ZodJWT",(t,e)=>{_t.init(t,e),t._zod.check=r=>{LL(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),Gv=L("$ZodCustomStringFormat",(t,e)=>{_t.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})}}),ip=L("$ZodNumber",(t,e)=>{je.init(t,e),t._zod.pattern=t._zod.bag.pattern??Xd,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 a=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,...a?{received:a}:{}}),r}}),Wv=L("$ZodNumberFormat",(t,e)=>{FE.init(t,e),ip.init(t,e)}),iu=L("$ZodBoolean",(t,e)=>{je.init(t,e),t._zod.pattern=hv,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}}),ap=L("$ZodBigInt",(t,e)=>{je.init(t,e),t._zod.pattern=fv,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}}),Kv=L("$ZodBigIntFormat",(t,e)=>{ZE.init(t,e),ap.init(t,e)}),Jv=L("$ZodSymbol",(t,e)=>{je.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}}),Xv=L("$ZodUndefined",(t,e)=>{je.init(t,e),t._zod.pattern=vv,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}}),Yv=L("$ZodNull",(t,e)=>{je.init(t,e),t._zod.pattern=gv,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}}),Qv=L("$ZodAny",(t,e)=>{je.init(t,e),t._zod.parse=r=>r}),ey=L("$ZodUnknown",(t,e)=>{je.init(t,e),t._zod.parse=r=>r}),ty=L("$ZodNever",(t,e)=>{je.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),ry=L("$ZodVoid",(t,e)=>{je.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}}),ny=L("$ZodDate",(t,e)=>{je.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let i=r.value,a=i instanceof Date;return a&&!Number.isNaN(i.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:i,...a?{received:"Invalid Date"}:{},inst:t}),r}});function sk(t,e,r){t.issues.length&&e.issues.push(...tn(r,t.issues)),e.value[r]=t.value}var iy=L("$ZodArray",(t,e)=>{je.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 a=[];for(let o=0;osk(u,r,o))):sk(c,r,o)}return a.length?Promise.all(a).then(()=>r):r}});function np(t,e,r,n,i){if(t.issues.length){if(i&&!(r in n))return;e.issues.push(...tn(r,t.issues))}t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}function _k(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=Zg(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function bk(t,e,r,n,i,a){let o=[],s=i.keySet,c=i.catchall._zod,u=c.def.type,l=c.optout==="optional";for(let d in e){if(s.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=>np(f,r,d,e,l))):np(p,r,d,e,l)}return o.length&&r.issues.push({code:"unrecognized_keys",keys:o,input:e,inst:a}),t.length?Promise.all(t).then(()=>r):r}var xk=L("$ZodObject",(t,e)=>{if(je.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=Fo(()=>_k(e));qe(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 i=Na,a=e.catchall,o;t._zod.parse=(s,c)=>{o??(o=n.value);let u=s.value;if(!i(u))return s.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),s;s.value={};let l=[],d=o.shape;for(let p of o.keys){let f=d[p],h=f._zod.optout==="optional",_=f._zod.run({value:u[p],issues:[]},c);_ instanceof Promise?l.push(_.then(y=>np(y,s,p,u,h))):np(_,s,p,u,h)}return a?bk(l,u,s,c,n.value,t):l.length?Promise.all(l).then(()=>s):s}}),Sk=L("$ZodObjectJIT",(t,e)=>{xk.init(t,e);let r=t._zod.parse,n=Fo(()=>_k(e)),i=p=>{let f=new Yd(["shape","payload","ctx"]),h=n.value,_=g=>{let b=Bd(g);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};f.write("const input = payload.value;");let y=Object.create(null),m=0;for(let g of h.keys)y[g]=`key_${m++}`;f.write("const newResult = {};");for(let g of h.keys){let b=y[g],S=Bd(g),w=p[g]?._zod?.optout==="optional";f.write(`const ${b} = ${_(g)};`),w?f.write(` +`))}};var ck={major:4,minor:3,patch:4};var Ae=L("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=ck;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let a of i._zod.onattach)a(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,s,c)=>{let u=Xi(o),l;for(let d of s){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 ti;if(l||f instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await f,o.issues.length!==p&&(u||(u=Xi(o,p)))});else{if(o.issues.length===p)continue;u||(u=Xi(o,p))}}return l?l.then(()=>o):o},a=(o,s,c)=>{if(Xi(o))return o.aborted=!0,o;let u=i(s,n,c);if(u instanceof Promise){if(c.async===!1)throw new ti;return u.then(l=>t._zod.parse(l,c))}return t._zod.parse(u,c)};t._zod.run=(o,s)=>{if(s.skipChecks)return t._zod.parse(o,s);if(s.direction==="backward"){let u=t._zod.parse({value:o.value,issues:[]},{...s,skipChecks:!0});return u instanceof Promise?u.then(l=>a(l,o,s)):a(u,o,s)}let c=t._zod.parse(o,s);if(c instanceof Promise){if(s.async===!1)throw new ti;return c.then(u=>i(u,n,s))}return i(c,n,s)}}qe(t,"~standard",()=>({validate:i=>{try{let a=Bo(t,i);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return iu(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}))}),ja=L("$ZodString",(t,e)=>{Ae.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??mv(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}}),_t=L("$ZodStringFormat",(t,e)=>{su.init(t,e),ja.init(t,e)}),Ev=L("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=tv),_t.init(t,e)}),kv=L("$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=Na(n))}else e.pattern??(e.pattern=Na());_t.init(t,e)}),Tv=L("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=rv),_t.init(t,e)}),Iv=L("$ZodURL",(t,e)=>{_t.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})}}}),Pv=L("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=nv()),_t.init(t,e)}),Rv=L("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Qg),_t.init(t,e)}),Ov=L("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=Wg),_t.init(t,e)}),Cv=L("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Kg),_t.init(t,e)}),Nv=L("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Jg),_t.init(t,e)}),jv=L("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Xg),_t.init(t,e)}),Av=L("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Yg),_t.init(t,e)}),Mv=L("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=fv(e)),_t.init(t,e)}),Dv=L("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=dv),_t.init(t,e)}),zv=L("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=pv(e)),_t.init(t,e)}),Uv=L("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=ev),_t.init(t,e)}),qv=L("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=iv),_t.init(t,e),t._zod.bag.format="ipv4"}),Lv=L("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=av),_t.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})}}}),Fv=L("$ZodMAC",(t,e)=>{e.pattern??(e.pattern=ov(e.delimiter)),_t.init(t,e),t._zod.bag.format="mac"}),Zv=L("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=sv),_t.init(t,e)}),Hv=L("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=cv),_t.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[i,a]=n;if(!a)throw new Error;let o=Number(a);if(`${o}`!==a)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 bk(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var Bv=L("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=uv),_t.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{bk(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function VL(t){if(!Yd.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return bk(r)}var Vv=L("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Yd),_t.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{VL(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),Gv=L("$ZodE164",(t,e)=>{e.pattern??(e.pattern=lv),_t.init(t,e)});function GL(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 Wv=L("$ZodJWT",(t,e)=>{_t.init(t,e),t._zod.check=r=>{GL(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),Kv=L("$ZodCustomStringFormat",(t,e)=>{_t.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})}}),op=L("$ZodNumber",(t,e)=>{Ae.init(t,e),t._zod.pattern=t._zod.bag.pattern??Qd,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 a=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,...a?{received:a}:{}}),r}}),Jv=L("$ZodNumberFormat",(t,e)=>{HE.init(t,e),op.init(t,e)}),cu=L("$ZodBoolean",(t,e)=>{Ae.init(t,e),t._zod.pattern=vv,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}}),sp=L("$ZodBigInt",(t,e)=>{Ae.init(t,e),t._zod.pattern=hv,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}}),Xv=L("$ZodBigIntFormat",(t,e)=>{BE.init(t,e),sp.init(t,e)}),Yv=L("$ZodSymbol",(t,e)=>{Ae.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}}),Qv=L("$ZodUndefined",(t,e)=>{Ae.init(t,e),t._zod.pattern=_v,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}}),ey=L("$ZodNull",(t,e)=>{Ae.init(t,e),t._zod.pattern=yv,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}}),ty=L("$ZodAny",(t,e)=>{Ae.init(t,e),t._zod.parse=r=>r}),ry=L("$ZodUnknown",(t,e)=>{Ae.init(t,e),t._zod.parse=r=>r}),ny=L("$ZodNever",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),iy=L("$ZodVoid",(t,e)=>{Ae.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}}),ay=L("$ZodDate",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let i=r.value,a=i instanceof Date;return a&&!Number.isNaN(i.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:i,...a?{received:"Invalid Date"}:{},inst:t}),r}});function uk(t,e,r){t.issues.length&&e.issues.push(...rn(r,t.issues)),e.value[r]=t.value}var oy=L("$ZodArray",(t,e)=>{Ae.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 a=[];for(let o=0;ouk(u,r,o))):uk(c,r,o)}return a.length?Promise.all(a).then(()=>r):r}});function ap(t,e,r,n,i){if(t.issues.length){if(i&&!(r in n))return;e.issues.push(...rn(r,t.issues))}t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}function xk(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=Bg(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function Sk(t,e,r,n,i,a){let o=[],s=i.keySet,c=i.catchall._zod,u=c.def.type,l=c.optout==="optional";for(let d in e){if(s.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=>ap(f,r,d,e,l))):ap(p,r,d,e,l)}return o.length&&r.issues.push({code:"unrecognized_keys",keys:o,input:e,inst:a}),t.length?Promise.all(t).then(()=>r):r}var wk=L("$ZodObject",(t,e)=>{if(Ae.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=Zo(()=>xk(e));qe(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 i=Ca,a=e.catchall,o;t._zod.parse=(s,c)=>{o??(o=n.value);let u=s.value;if(!i(u))return s.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),s;s.value={};let l=[],d=o.shape;for(let p of o.keys){let f=d[p],h=f._zod.optout==="optional",_=f._zod.run({value:u[p],issues:[]},c);_ instanceof Promise?l.push(_.then(g=>ap(g,s,p,u,h))):ap(_,s,p,u,h)}return a?Sk(l,u,s,c,n.value,t):l.length?Promise.all(l).then(()=>s):s}}),$k=L("$ZodObjectJIT",(t,e)=>{wk.init(t,e);let r=t._zod.parse,n=Zo(()=>xk(e)),i=p=>{let f=new ep(["shape","payload","ctx"]),h=n.value,_=v=>{let b=Gd(v);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};f.write("const input = payload.value;");let g=Object.create(null),m=0;for(let v of h.keys)g[v]=`key_${m++}`;f.write("const newResult = {};");for(let v of h.keys){let b=g[v],S=Gd(v),w=p[v]?._zod?.optout==="optional";f.write(`const ${b} = ${_(v)};`),w?f.write(` if (${b}.issues.length) { if (${S} in input) { payload.issues = payload.issues.concat(${b}.issues.map(iss => ({ @@ -698,14 +718,14 @@ ${ne.dim}No previous sessions found for this project yet.${ne.reset} newResult[${S}] = ${b}.value; } - `)}f.write("payload.value = newResult;"),f.write("return payload;");let v=f.compile();return(g,b)=>v(p,g,b)},a,o=Na,s=!Hd.jitless,u=s&&Lg.value,l=e.catchall,d;t._zod.parse=(p,f)=>{d??(d=n.value);let h=p.value;return o(h)?s&&u&&f?.async===!1&&f.jitless!==!0?(a||(a=i(e.shape)),p=a(p,f),l?bk([],h,p,f,d,t):p):r(p,f):(p.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),p)}});function ck(t,e,r,n){for(let a of t)if(a.issues.length===0)return e.value=a.value,e;let i=t.filter(a=>!Yi(a));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(a=>a.issues.map(o=>zr(o,n,tr())))}),e)}var au=L("$ZodUnion",(t,e)=>{je.init(t,e),qe(t._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),qe(t._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),qe(t._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),qe(t._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){let i=e.options.map(a=>a._zod.pattern);return new RegExp(`^(${i.map(a=>Zc(a.source)).join("|")})$`)}});let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,a)=>{if(r)return n(i,a);let o=!1,s=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},a);if(u instanceof Promise)s.push(u),o=!0;else{if(u.issues.length===0)return u;s.push(u)}}return o?Promise.all(s).then(c=>ck(c,i,t,a)):ck(s,i,t,a)}});function uk(t,e,r,n){let i=t.filter(a=>a.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(a=>a.issues.map(o=>zr(o,n,tr())))}):e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:[],inclusive:!1}),e)}var ay=L("$ZodXor",(t,e)=>{au.init(t,e),e.inclusive=!1;let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,a)=>{if(r)return n(i,a);let o=!1,s=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},a);u instanceof Promise?(s.push(u),o=!0):s.push(u)}return o?Promise.all(s).then(c=>uk(c,i,t,a)):uk(s,i,t,a)}}),oy=L("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,au.init(t,e);let r=t._zod.parse;qe(t._zod,"propValues",()=>{let i={};for(let a of e.options){let o=a._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let[s,c]of Object.entries(o)){i[s]||(i[s]=new Set);for(let u of c)i[s].add(u)}}return i});let n=Fo(()=>{let i=e.options,a=new Map;for(let o of i){let s=o._zod.propValues?.[e.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of s){if(a.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);a.set(c,o)}}return a});t._zod.parse=(i,a)=>{let o=i.value;if(!Na(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let s=n.value.get(o?.[e.discriminator]);return s?s._zod.run(i,a):e.unionFallback?r(i,a):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:o,path:[e.discriminator],inst:t}),i)}}),sy=L("$ZodIntersection",(t,e)=>{je.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,a=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return a instanceof Promise||o instanceof Promise?Promise.all([a,o]).then(([c,u])=>lk(r,c,u)):lk(r,a,o)}});function Sv(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(Xi(t)&&Xi(e)){let r=Object.keys(e),n=Object.keys(t).filter(a=>r.indexOf(a)!==-1),i={...t,...e};for(let a of n){let o=Sv(t[a],e[a]);if(!o.valid)return{valid:!1,mergeErrorPath:[a,...o.mergeErrorPath]};i[a]=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;ns.l&&s.r).map(([s])=>s);if(a.length&&i&&t.issues.push({...i,keys:a}),Yi(t))return t;let o=Sv(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 op=L("$ZodTuple",(t,e)=>{je.init(t,e);let r=e.items;t._zod.parse=(n,i)=>{let a=n.value;if(!Array.isArray(a))return n.issues.push({input:a,inst:t,expected:"tuple",code:"invalid_type"}),n;n.value=[];let o=[],s=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),c=s===-1?0:r.length-s;if(!e.rest){let l=a.length>r.length,d=a.length=a.length&&u>=c)continue;let d=l._zod.run({value:a[u],issues:[]},i);d instanceof Promise?o.push(d.then(p=>Qd(p,n,u))):Qd(d,n,u)}if(e.rest){let l=a.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=>Qd(f,n,u))):Qd(p,n,u)}}return o.length?Promise.all(o).then(()=>n):n}});function Qd(t,e,r){t.issues.length&&e.issues.push(...tn(r,t.issues)),e.value[r]=t.value}var cy=L("$ZodRecord",(t,e)=>{je.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Xi(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let a=[],o=e.keyType._zod.values;if(o){r.value={};let s=new Set;for(let u of o)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:i[u],issues:[]},n);l instanceof Promise?a.push(l.then(d=>{d.issues.length&&r.issues.push(...tn(u,d.issues)),r.value[u]=d.value})):(l.issues.length&&r.issues.push(...tn(u,l.issues)),r.value[u]=l.value)}let c;for(let u in i)s.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 s of Reflect.ownKeys(i)){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"&&Xd.test(s)&&c.issues.length&&c.issues.some(d=>d.code==="invalid_type"&&d.expected==="number")){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]=i[s]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(d=>zr(d,n,tr())),input:s,path:[s],inst:t});continue}let l=e.valueType._zod.run({value:i[s],issues:[]},n);l instanceof Promise?a.push(l.then(d=>{d.issues.length&&r.issues.push(...tn(s,d.issues)),r.value[c.value]=d.value})):(l.issues.length&&r.issues.push(...tn(s,l.issues)),r.value[c.value]=l.value)}}return a.length?Promise.all(a).then(()=>r):r}}),uy=L("$ZodMap",(t,e)=>{je.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 a=[];r.value=new Map;for(let[o,s]of i){let c=e.keyType._zod.run({value:o,issues:[]},n),u=e.valueType._zod.run({value:s,issues:[]},n);c instanceof Promise||u instanceof Promise?a.push(Promise.all([c,u]).then(([l,d])=>{dk(l,d,r,o,i,t,n)})):dk(c,u,r,o,i,t,n)}return a.length?Promise.all(a).then(()=>r):r}});function dk(t,e,r,n,i,a,o){t.issues.length&&(Hc.has(typeof n)?r.issues.push(...tn(n,t.issues)):r.issues.push({code:"invalid_key",origin:"map",input:i,inst:a,issues:t.issues.map(s=>zr(s,o,tr()))})),e.issues.length&&(Hc.has(typeof n)?r.issues.push(...tn(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:i,inst:a,key:n,issues:e.issues.map(s=>zr(s,o,tr()))})),r.value.set(t.value,e.value)}var ly=L("$ZodSet",(t,e)=>{je.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 a=[];r.value=new Set;for(let o of i){let s=e.valueType._zod.run({value:o,issues:[]},n);s instanceof Promise?a.push(s.then(c=>pk(c,r))):pk(s,r)}return a.length?Promise.all(a).then(()=>r):r}});function pk(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var dy=L("$ZodEnum",(t,e)=>{je.init(t,e);let r=Fc(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(i=>Hc.has(typeof i)).map(i=>typeof i=="string"?ln(i):i.toString()).join("|")})$`),t._zod.parse=(i,a)=>{let o=i.value;return n.has(o)||i.issues.push({code:"invalid_value",values:r,input:o,inst:t}),i}}),py=L("$ZodLiteral",(t,e)=>{if(je.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"?ln(n):n?ln(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,i)=>{let a=n.value;return r.has(a)||n.issues.push({code:"invalid_value",values:e.values,input:a,inst:t}),n}}),fy=L("$ZodFile",(t,e)=>{je.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}}),my=L("$ZodTransform",(t,e)=>{je.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ca(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 ei;return r.value=i,r}});function fk(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var sp=L("$ZodOptional",(t,e)=>{je.init(t,e),t._zod.optin="optional",t._zod.optout="optional",qe(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),qe(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Zc(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(a=>fk(a,r.value)):fk(i,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),hy=L("$ZodExactOptional",(t,e)=>{sp.init(t,e),qe(t._zod,"values",()=>e.innerType._zod.values),qe(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),gy=L("$ZodNullable",(t,e)=>{je.init(t,e),qe(t._zod,"optin",()=>e.innerType._zod.optin),qe(t._zod,"optout",()=>e.innerType._zod.optout),qe(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Zc(r.source)}|null)$`):void 0}),qe(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)}),vy=L("$ZodDefault",(t,e)=>{je.init(t,e),t._zod.optin="optional",qe(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(a=>mk(a,e)):mk(i,e)}});function mk(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var yy=L("$ZodPrefault",(t,e)=>{je.init(t,e),t._zod.optin="optional",qe(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))}),_y=L("$ZodNonOptional",(t,e)=>{je.init(t,e),qe(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(a=>hk(a,t)):hk(i,t)}});function hk(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 by=L("$ZodSuccess",(t,e)=>{je.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ca("ZodSuccess");let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>(r.value=a.issues.length===0,r)):(r.value=i.issues.length===0,r)}}),xy=L("$ZodCatch",(t,e)=>{je.init(t,e),qe(t._zod,"optin",()=>e.innerType._zod.optin),qe(t._zod,"optout",()=>e.innerType._zod.optout),qe(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(a=>(r.value=a.value,a.issues.length&&(r.value=e.catchValue({...r,error:{issues:a.issues.map(o=>zr(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(a=>zr(a,n,tr()))},input:r.value}),r.issues=[]),r)}}),Sy=L("$ZodNaN",(t,e)=>{je.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)}),wy=L("$ZodPipe",(t,e)=>{je.init(t,e),qe(t._zod,"values",()=>e.in._zod.values),qe(t._zod,"optin",()=>e.in._zod.optin),qe(t._zod,"optout",()=>e.out._zod.optout),qe(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let a=e.out._zod.run(r,n);return a instanceof Promise?a.then(o=>ep(o,e.in,n)):ep(a,e.in,n)}let i=e.in._zod.run(r,n);return i instanceof Promise?i.then(a=>ep(a,e.out,n)):ep(i,e.out,n)}});function ep(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},r)}var ou=L("$ZodCodec",(t,e)=>{je.init(t,e),qe(t._zod,"values",()=>e.in._zod.values),qe(t._zod,"optin",()=>e.in._zod.optin),qe(t._zod,"optout",()=>e.out._zod.optout),qe(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let a=e.in._zod.run(r,n);return a instanceof Promise?a.then(o=>tp(o,e,n)):tp(a,e,n)}else{let a=e.out._zod.run(r,n);return a instanceof Promise?a.then(o=>tp(o,e,n)):tp(a,e,n)}}});function tp(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(a=>rp(t,a,e.out,r)):rp(t,i,e.out,r)}else{let i=e.reverseTransform(t.value,t);return i instanceof Promise?i.then(a=>rp(t,a,e.in,r)):rp(t,i,e.in,r)}}function rp(t,e,r,n){return t.issues.length?(t.aborted=!0,t):r._zod.run({value:e,issues:t.issues},n)}var $y=L("$ZodReadonly",(t,e)=>{je.init(t,e),qe(t._zod,"propValues",()=>e.innerType._zod.propValues),qe(t._zod,"values",()=>e.innerType._zod.values),qe(t._zod,"optin",()=>e.innerType?._zod?.optin),qe(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(gk):gk(i)}});function gk(t){return t.value=Object.freeze(t.value),t}var Ey=L("$ZodTemplateLiteral",(t,e)=>{je.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 a=i.startsWith("^")?1:0,o=i.endsWith("$")?i.length-1:i.length;r.push(i.slice(a,o))}else if(n===null||Fg.has(typeof n))r.push(ln(`${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)}),ky=L("$ZodFunction",(t,e)=>(je.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?Kc(t._def.input,n):n,a=Reflect.apply(r,this,i);return t._def.output?Kc(t._def.output,a):a}},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 Xc(t._def.input,n):n,a=await Reflect.apply(r,this,i);return t._def.output?await Xc(t._def.output,a):a}},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 op({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)),Ty=L("$ZodPromise",(t,e)=>{je.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(i=>e.innerType._zod.run({value:i,issues:[]},n))}),Iy=L("$ZodLazy",(t,e)=>{je.init(t,e),qe(t._zod,"innerType",()=>e.getter()),qe(t._zod,"pattern",()=>t._zod.innerType?._zod?.pattern),qe(t._zod,"propValues",()=>t._zod.innerType?._zod?.propValues),qe(t._zod,"optin",()=>t._zod.innerType?._zod?.optin??void 0),qe(t._zod,"optout",()=>t._zod.innerType?._zod?.optout??void 0),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),Py=L("$ZodCustom",(t,e)=>{wt.init(t,e),je.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(a=>vk(a,r,n,t));vk(i,r,n,t)}});function vk(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(Zo(i))}}var ZL=()=>{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 a=n[i.expected]??i.expected,o=Ie(i.input),s=n[o]??o;return`Invalid input: expected ${a}, received ${s}`}case"invalid_value":return i.values.length===1?`Invalid input: expected ${Ee(i.values[0])}`:`Invalid option: expected one of ${$e(i.values,"|")}`;case"too_big":{let a=i.inclusive?"<=":"<",o=e(i.origin);return o?`Too big: expected ${i.origin??"value"} to have ${a}${i.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${i.origin??"value"} to be ${a}${i.maximum.toString()}`}case"too_small":{let a=i.inclusive?">=":">",o=e(i.origin);return o?`Too small: expected ${i.origin} to have ${a}${i.minimum.toString()} ${o.unit}`:`Too small: expected ${i.origin} to be ${a}${i.minimum.toString()}`}case"invalid_format":{let a=i;return a.format==="starts_with"?`Invalid string: must start with "${a.prefix}"`:a.format==="ends_with"?`Invalid string: must end with "${a.suffix}"`:a.format==="includes"?`Invalid string: must include "${a.includes}"`:a.format==="regex"?`Invalid string: must match pattern ${a.pattern}`:`Invalid ${r[a.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 Oy(){return{localeError:ZL()}}var wk;var Cy=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 Ny(){return new Cy}(wk=globalThis).__zod_globalRegistry??(wk.__zod_globalRegistry=Ny());var kr=globalThis.__zod_globalRegistry;function jy(t,e){return new t({type:"string",...oe(e)})}function cp(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...oe(e)})}function su(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...oe(e)})}function up(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...oe(e)})}function lp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...oe(e)})}function dp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...oe(e)})}function pp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...oe(e)})}function cu(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...oe(e)})}function fp(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...oe(e)})}function mp(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...oe(e)})}function hp(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...oe(e)})}function gp(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...oe(e)})}function vp(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...oe(e)})}function yp(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...oe(e)})}function _p(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...oe(e)})}function bp(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...oe(e)})}function xp(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...oe(e)})}function Ay(t,e){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...oe(e)})}function Sp(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...oe(e)})}function wp(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...oe(e)})}function $p(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...oe(e)})}function Ep(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...oe(e)})}function kp(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...oe(e)})}function Tp(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...oe(e)})}function My(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...oe(e)})}function zy(t,e){return new t({type:"string",format:"date",check:"string_format",...oe(e)})}function Dy(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...oe(e)})}function Uy(t,e){return new t({type:"string",format:"duration",check:"string_format",...oe(e)})}function qy(t,e){return new t({type:"number",checks:[],...oe(e)})}function Ly(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...oe(e)})}function Fy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...oe(e)})}function Zy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...oe(e)})}function Hy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...oe(e)})}function By(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...oe(e)})}function Vy(t,e){return new t({type:"boolean",...oe(e)})}function Gy(t,e){return new t({type:"bigint",...oe(e)})}function Wy(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...oe(e)})}function Ky(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...oe(e)})}function Jy(t,e){return new t({type:"symbol",...oe(e)})}function Xy(t,e){return new t({type:"undefined",...oe(e)})}function Yy(t,e){return new t({type:"null",...oe(e)})}function Qy(t){return new t({type:"any"})}function e_(t){return new t({type:"unknown"})}function t_(t,e){return new t({type:"never",...oe(e)})}function r_(t,e){return new t({type:"void",...oe(e)})}function n_(t,e){return new t({type:"date",...oe(e)})}function i_(t,e){return new t({type:"nan",...oe(e)})}function $i(t,e){return new bv({check:"less_than",...oe(e),value:t,inclusive:!1})}function rn(t,e){return new bv({check:"less_than",...oe(e),value:t,inclusive:!0})}function Ei(t,e){return new xv({check:"greater_than",...oe(e),value:t,inclusive:!1})}function Tr(t,e){return new xv({check:"greater_than",...oe(e),value:t,inclusive:!0})}function a_(t){return Ei(0,t)}function o_(t){return $i(0,t)}function s_(t){return rn(0,t)}function c_(t){return Tr(0,t)}function Ma(t,e){return new LE({check:"multiple_of",...oe(e),value:t})}function za(t,e){return new HE({check:"max_size",...oe(e),maximum:t})}function ki(t,e){return new BE({check:"min_size",...oe(e),minimum:t})}function Bo(t,e){return new VE({check:"size_equals",...oe(e),size:t})}function Vo(t,e){return new GE({check:"max_length",...oe(e),maximum:t})}function Qi(t,e){return new WE({check:"min_length",...oe(e),minimum:t})}function Go(t,e){return new KE({check:"length_equals",...oe(e),length:t})}function uu(t,e){return new JE({check:"string_format",format:"regex",...oe(e),pattern:t})}function lu(t){return new XE({check:"string_format",format:"lowercase",...oe(t)})}function du(t){return new YE({check:"string_format",format:"uppercase",...oe(t)})}function pu(t,e){return new QE({check:"string_format",format:"includes",...oe(e),includes:t})}function fu(t,e){return new ek({check:"string_format",format:"starts_with",...oe(e),prefix:t})}function mu(t,e){return new tk({check:"string_format",format:"ends_with",...oe(e),suffix:t})}function u_(t,e,r){return new rk({check:"property",property:t,schema:e,...oe(r)})}function hu(t,e){return new nk({check:"mime_type",mime:t,...oe(e)})}function ti(t){return new ik({check:"overwrite",tx:t})}function gu(t){return ti(e=>e.normalize(t))}function vu(){return ti(t=>t.trim())}function yu(){return ti(t=>t.toLowerCase())}function _u(){return ti(t=>t.toUpperCase())}function Ip(){return ti(t=>qg(t))}function $k(t,e,r){return new t({type:"array",element:e,...oe(r)})}function l_(t,e){return new t({type:"file",...oe(e)})}function d_(t,e,r){let n=oe(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function p_(t,e,r){return new t({type:"custom",check:"custom",fn:e,...oe(r)})}function f_(t){let e=GL(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Zo(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(Zo(i))}},t(r.value,r)));return e}function GL(t,e){let r=new wt({check:"custom",...oe(e)});return r._zod.check=t,r}function m_(t){let e=new wt({check:"describe"});return e._zod.onattach=[r=>{let n=kr.get(r)??{};kr.add(r,{...n,description:t})}],e._zod.check=()=>{},e}function h_(t){let e=new wt({check:"meta"});return e._zod.onattach=[r=>{let n=kr.get(r)??{};kr.add(r,{...n,...t})}],e._zod.check=()=>{},e}function g_(t,e){let r=oe(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 a=new Set(n),o=new Set(i),s=t.Codec??ou,c=t.Boolean??iu,u=t.String??Aa,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,h)=>{let _=f;return r.case!=="sensitive"&&(_=_.toLowerCase()),a.has(_)?!0:o.has(_)?!1:(h.issues.push({code:"invalid_value",expected:"stringbool",values:[...a,...o],input:h.value,inst:p,continue:!1}),{})}),reverseTransform:((f,h)=>f===!0?n[0]||"true":i[0]||"false"),error:r.error});return p}function Wo(t,e,r,n={}){let i=oe(n),a={...oe(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:s=>r.test(s),...i};return r instanceof RegExp&&(a.pattern=r),new t(a)}function Pp(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??kr,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 It(t,e,r={path:[],schemaPath:[]}){var n;let i=t._zod.def,a=e.seen.get(t);if(a)return a.count++,r.schemaPath.includes(t)&&(a.cycle=r.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,o);let s=t._zod.toJSONSchema?.();if(s)o.schema=s;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),It(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"&&Ir(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 Op(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 s=t.metadataRegistry.get(o[0])?.id;if(s){let c=n.get(s);if(c&&c!==o[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,o[0])}}let i=o=>{let s=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let d=t.external.registry.get(o[0])?.id,p=t.external.uri??(h=>h);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")}#/${s}/${f}`}}if(o[1]===r)return{ref:"#"};let u=`#/${s}/`,l=o[1].schema.id??`__schema${t.counter++}`;return{defId:l,ref:u+l}},a=o=>{if(o[1].schema.$ref)return;let s=o[1],{ref:c,defId:u}=i(o);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 o of t.seen.entries()){let s=o[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/ + `)}f.write("payload.value = newResult;"),f.write("return payload;");let y=f.compile();return(v,b)=>y(p,v,b)},a,o=Ca,s=!Vd.jitless,u=s&&Zg.value,l=e.catchall,d;t._zod.parse=(p,f)=>{d??(d=n.value);let h=p.value;return o(h)?s&&u&&f?.async===!1&&f.jitless!==!0?(a||(a=i(e.shape)),p=a(p,f),l?Sk([],h,p,f,d,t):p):r(p,f):(p.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),p)}});function lk(t,e,r,n){for(let a of t)if(a.issues.length===0)return e.value=a.value,e;let i=t.filter(a=>!Xi(a));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(a=>a.issues.map(o=>Dr(o,n,tr())))}),e)}var uu=L("$ZodUnion",(t,e)=>{Ae.init(t,e),qe(t._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),qe(t._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),qe(t._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),qe(t._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){let i=e.options.map(a=>a._zod.pattern);return new RegExp(`^(${i.map(a=>Gc(a.source)).join("|")})$`)}});let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,a)=>{if(r)return n(i,a);let o=!1,s=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},a);if(u instanceof Promise)s.push(u),o=!0;else{if(u.issues.length===0)return u;s.push(u)}}return o?Promise.all(s).then(c=>lk(c,i,t,a)):lk(s,i,t,a)}});function dk(t,e,r,n){let i=t.filter(a=>a.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(a=>a.issues.map(o=>Dr(o,n,tr())))}):e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:[],inclusive:!1}),e)}var sy=L("$ZodXor",(t,e)=>{uu.init(t,e),e.inclusive=!1;let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,a)=>{if(r)return n(i,a);let o=!1,s=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},a);u instanceof Promise?(s.push(u),o=!0):s.push(u)}return o?Promise.all(s).then(c=>dk(c,i,t,a)):dk(s,i,t,a)}}),cy=L("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,uu.init(t,e);let r=t._zod.parse;qe(t._zod,"propValues",()=>{let i={};for(let a of e.options){let o=a._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let[s,c]of Object.entries(o)){i[s]||(i[s]=new Set);for(let u of c)i[s].add(u)}}return i});let n=Zo(()=>{let i=e.options,a=new Map;for(let o of i){let s=o._zod.propValues?.[e.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of s){if(a.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);a.set(c,o)}}return a});t._zod.parse=(i,a)=>{let o=i.value;if(!Ca(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let s=n.value.get(o?.[e.discriminator]);return s?s._zod.run(i,a):e.unionFallback?r(i,a):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:o,path:[e.discriminator],inst:t}),i)}}),uy=L("$ZodIntersection",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,a=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return a instanceof Promise||o instanceof Promise?Promise.all([a,o]).then(([c,u])=>pk(r,c,u)):pk(r,a,o)}});function $v(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(Ji(t)&&Ji(e)){let r=Object.keys(e),n=Object.keys(t).filter(a=>r.indexOf(a)!==-1),i={...t,...e};for(let a of n){let o=$v(t[a],e[a]);if(!o.valid)return{valid:!1,mergeErrorPath:[a,...o.mergeErrorPath]};i[a]=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;ns.l&&s.r).map(([s])=>s);if(a.length&&i&&t.issues.push({...i,keys:a}),Xi(t))return t;let o=$v(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 cp=L("$ZodTuple",(t,e)=>{Ae.init(t,e);let r=e.items;t._zod.parse=(n,i)=>{let a=n.value;if(!Array.isArray(a))return n.issues.push({input:a,inst:t,expected:"tuple",code:"invalid_type"}),n;n.value=[];let o=[],s=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),c=s===-1?0:r.length-s;if(!e.rest){let l=a.length>r.length,d=a.length=a.length&&u>=c)continue;let d=l._zod.run({value:a[u],issues:[]},i);d instanceof Promise?o.push(d.then(p=>tp(p,n,u))):tp(d,n,u)}if(e.rest){let l=a.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=>tp(f,n,u))):tp(p,n,u)}}return o.length?Promise.all(o).then(()=>n):n}});function tp(t,e,r){t.issues.length&&e.issues.push(...rn(r,t.issues)),e.value[r]=t.value}var ly=L("$ZodRecord",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Ji(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let a=[],o=e.keyType._zod.values;if(o){r.value={};let s=new Set;for(let u of o)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:i[u],issues:[]},n);l instanceof Promise?a.push(l.then(d=>{d.issues.length&&r.issues.push(...rn(u,d.issues)),r.value[u]=d.value})):(l.issues.length&&r.issues.push(...rn(u,l.issues)),r.value[u]=l.value)}let c;for(let u in i)s.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 s of Reflect.ownKeys(i)){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"&&Qd.test(s)&&c.issues.length&&c.issues.some(d=>d.code==="invalid_type"&&d.expected==="number")){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]=i[s]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(d=>Dr(d,n,tr())),input:s,path:[s],inst:t});continue}let l=e.valueType._zod.run({value:i[s],issues:[]},n);l instanceof Promise?a.push(l.then(d=>{d.issues.length&&r.issues.push(...rn(s,d.issues)),r.value[c.value]=d.value})):(l.issues.length&&r.issues.push(...rn(s,l.issues)),r.value[c.value]=l.value)}}return a.length?Promise.all(a).then(()=>r):r}}),dy=L("$ZodMap",(t,e)=>{Ae.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 a=[];r.value=new Map;for(let[o,s]of i){let c=e.keyType._zod.run({value:o,issues:[]},n),u=e.valueType._zod.run({value:s,issues:[]},n);c instanceof Promise||u instanceof Promise?a.push(Promise.all([c,u]).then(([l,d])=>{fk(l,d,r,o,i,t,n)})):fk(c,u,r,o,i,t,n)}return a.length?Promise.all(a).then(()=>r):r}});function fk(t,e,r,n,i,a,o){t.issues.length&&(Wc.has(typeof n)?r.issues.push(...rn(n,t.issues)):r.issues.push({code:"invalid_key",origin:"map",input:i,inst:a,issues:t.issues.map(s=>Dr(s,o,tr()))})),e.issues.length&&(Wc.has(typeof n)?r.issues.push(...rn(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:i,inst:a,key:n,issues:e.issues.map(s=>Dr(s,o,tr()))})),r.value.set(t.value,e.value)}var py=L("$ZodSet",(t,e)=>{Ae.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 a=[];r.value=new Set;for(let o of i){let s=e.valueType._zod.run({value:o,issues:[]},n);s instanceof Promise?a.push(s.then(c=>mk(c,r))):mk(s,r)}return a.length?Promise.all(a).then(()=>r):r}});function mk(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var fy=L("$ZodEnum",(t,e)=>{Ae.init(t,e);let r=Vc(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(i=>Wc.has(typeof i)).map(i=>typeof i=="string"?dn(i):i.toString()).join("|")})$`),t._zod.parse=(i,a)=>{let o=i.value;return n.has(o)||i.issues.push({code:"invalid_value",values:r,input:o,inst:t}),i}}),my=L("$ZodLiteral",(t,e)=>{if(Ae.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 a=n.value;return r.has(a)||n.issues.push({code:"invalid_value",values:e.values,input:a,inst:t}),n}}),hy=L("$ZodFile",(t,e)=>{Ae.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}}),gy=L("$ZodTransform",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Oa(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 ti;return r.value=i,r}});function hk(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var up=L("$ZodOptional",(t,e)=>{Ae.init(t,e),t._zod.optin="optional",t._zod.optout="optional",qe(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),qe(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Gc(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(a=>hk(a,r.value)):hk(i,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),vy=L("$ZodExactOptional",(t,e)=>{up.init(t,e),qe(t._zod,"values",()=>e.innerType._zod.values),qe(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),yy=L("$ZodNullable",(t,e)=>{Ae.init(t,e),qe(t._zod,"optin",()=>e.innerType._zod.optin),qe(t._zod,"optout",()=>e.innerType._zod.optout),qe(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Gc(r.source)}|null)$`):void 0}),qe(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)}),_y=L("$ZodDefault",(t,e)=>{Ae.init(t,e),t._zod.optin="optional",qe(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(a=>gk(a,e)):gk(i,e)}});function gk(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var by=L("$ZodPrefault",(t,e)=>{Ae.init(t,e),t._zod.optin="optional",qe(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))}),xy=L("$ZodNonOptional",(t,e)=>{Ae.init(t,e),qe(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(a=>vk(a,t)):vk(i,t)}});function vk(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 Sy=L("$ZodSuccess",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Oa("ZodSuccess");let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>(r.value=a.issues.length===0,r)):(r.value=i.issues.length===0,r)}}),wy=L("$ZodCatch",(t,e)=>{Ae.init(t,e),qe(t._zod,"optin",()=>e.innerType._zod.optin),qe(t._zod,"optout",()=>e.innerType._zod.optout),qe(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(a=>(r.value=a.value,a.issues.length&&(r.value=e.catchValue({...r,error:{issues:a.issues.map(o=>Dr(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(a=>Dr(a,n,tr()))},input:r.value}),r.issues=[]),r)}}),$y=L("$ZodNaN",(t,e)=>{Ae.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)}),Ey=L("$ZodPipe",(t,e)=>{Ae.init(t,e),qe(t._zod,"values",()=>e.in._zod.values),qe(t._zod,"optin",()=>e.in._zod.optin),qe(t._zod,"optout",()=>e.out._zod.optout),qe(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let a=e.out._zod.run(r,n);return a instanceof Promise?a.then(o=>rp(o,e.in,n)):rp(a,e.in,n)}let i=e.in._zod.run(r,n);return i instanceof Promise?i.then(a=>rp(a,e.out,n)):rp(i,e.out,n)}});function rp(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},r)}var lu=L("$ZodCodec",(t,e)=>{Ae.init(t,e),qe(t._zod,"values",()=>e.in._zod.values),qe(t._zod,"optin",()=>e.in._zod.optin),qe(t._zod,"optout",()=>e.out._zod.optout),qe(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let a=e.in._zod.run(r,n);return a instanceof Promise?a.then(o=>np(o,e,n)):np(a,e,n)}else{let a=e.out._zod.run(r,n);return a instanceof Promise?a.then(o=>np(o,e,n)):np(a,e,n)}}});function np(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(a=>ip(t,a,e.out,r)):ip(t,i,e.out,r)}else{let i=e.reverseTransform(t.value,t);return i instanceof Promise?i.then(a=>ip(t,a,e.in,r)):ip(t,i,e.in,r)}}function ip(t,e,r,n){return t.issues.length?(t.aborted=!0,t):r._zod.run({value:e,issues:t.issues},n)}var ky=L("$ZodReadonly",(t,e)=>{Ae.init(t,e),qe(t._zod,"propValues",()=>e.innerType._zod.propValues),qe(t._zod,"values",()=>e.innerType._zod.values),qe(t._zod,"optin",()=>e.innerType?._zod?.optin),qe(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(yk):yk(i)}});function yk(t){return t.value=Object.freeze(t.value),t}var Ty=L("$ZodTemplateLiteral",(t,e)=>{Ae.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 a=i.startsWith("^")?1:0,o=i.endsWith("$")?i.length-1:i.length;r.push(i.slice(a,o))}else if(n===null||Hg.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)}),Iy=L("$ZodFunction",(t,e)=>(Ae.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?Qc(t._def.input,n):n,a=Reflect.apply(r,this,i);return t._def.output?Qc(t._def.output,a):a}},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 tu(t._def.input,n):n,a=await Reflect.apply(r,this,i);return t._def.output?await tu(t._def.output,a):a}},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 cp({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)),Py=L("$ZodPromise",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(i=>e.innerType._zod.run({value:i,issues:[]},n))}),Ry=L("$ZodLazy",(t,e)=>{Ae.init(t,e),qe(t._zod,"innerType",()=>e.getter()),qe(t._zod,"pattern",()=>t._zod.innerType?._zod?.pattern),qe(t._zod,"propValues",()=>t._zod.innerType?._zod?.propValues),qe(t._zod,"optin",()=>t._zod.innerType?._zod?.optin??void 0),qe(t._zod,"optout",()=>t._zod.innerType?._zod?.optout??void 0),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),Oy=L("$ZodCustom",(t,e)=>{wt.init(t,e),Ae.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(a=>_k(a,r,n,t));_k(i,r,n,t)}});function _k(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(Ho(i))}}var KL=()=>{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 a=n[i.expected]??i.expected,o=Ie(i.input),s=n[o]??o;return`Invalid input: expected ${a}, received ${s}`}case"invalid_value":return i.values.length===1?`Invalid input: expected ${Ee(i.values[0])}`:`Invalid option: expected one of ${$e(i.values,"|")}`;case"too_big":{let a=i.inclusive?"<=":"<",o=e(i.origin);return o?`Too big: expected ${i.origin??"value"} to have ${a}${i.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${i.origin??"value"} to be ${a}${i.maximum.toString()}`}case"too_small":{let a=i.inclusive?">=":">",o=e(i.origin);return o?`Too small: expected ${i.origin} to have ${a}${i.minimum.toString()} ${o.unit}`:`Too small: expected ${i.origin} to be ${a}${i.minimum.toString()}`}case"invalid_format":{let a=i;return a.format==="starts_with"?`Invalid string: must start with "${a.prefix}"`:a.format==="ends_with"?`Invalid string: must end with "${a.suffix}"`:a.format==="includes"?`Invalid string: must include "${a.includes}"`:a.format==="regex"?`Invalid string: must match pattern ${a.pattern}`:`Invalid ${r[a.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 Cy(){return{localeError:KL()}}var Ek;var jy=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 Ay(){return new jy}(Ek=globalThis).__zod_globalRegistry??(Ek.__zod_globalRegistry=Ay());var kr=globalThis.__zod_globalRegistry;function My(t,e){return new t({type:"string",...oe(e)})}function lp(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...oe(e)})}function du(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...oe(e)})}function dp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...oe(e)})}function pp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...oe(e)})}function fp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...oe(e)})}function mp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...oe(e)})}function pu(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...oe(e)})}function hp(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...oe(e)})}function gp(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...oe(e)})}function vp(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...oe(e)})}function yp(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...oe(e)})}function _p(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...oe(e)})}function bp(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...oe(e)})}function xp(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...oe(e)})}function Sp(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...oe(e)})}function wp(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...oe(e)})}function Dy(t,e){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...oe(e)})}function $p(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...oe(e)})}function Ep(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...oe(e)})}function kp(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...oe(e)})}function Tp(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...oe(e)})}function Ip(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...oe(e)})}function Pp(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...oe(e)})}function zy(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...oe(e)})}function Uy(t,e){return new t({type:"string",format:"date",check:"string_format",...oe(e)})}function qy(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...oe(e)})}function Ly(t,e){return new t({type:"string",format:"duration",check:"string_format",...oe(e)})}function Fy(t,e){return new t({type:"number",checks:[],...oe(e)})}function Zy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...oe(e)})}function Hy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...oe(e)})}function By(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...oe(e)})}function Vy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...oe(e)})}function Gy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...oe(e)})}function Wy(t,e){return new t({type:"boolean",...oe(e)})}function Ky(t,e){return new t({type:"bigint",...oe(e)})}function Jy(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...oe(e)})}function Xy(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...oe(e)})}function Yy(t,e){return new t({type:"symbol",...oe(e)})}function Qy(t,e){return new t({type:"undefined",...oe(e)})}function e_(t,e){return new t({type:"null",...oe(e)})}function t_(t){return new t({type:"any"})}function r_(t){return new t({type:"unknown"})}function n_(t,e){return new t({type:"never",...oe(e)})}function i_(t,e){return new t({type:"void",...oe(e)})}function a_(t,e){return new t({type:"date",...oe(e)})}function o_(t,e){return new t({type:"nan",...oe(e)})}function $i(t,e){return new Sv({check:"less_than",...oe(e),value:t,inclusive:!1})}function nn(t,e){return new Sv({check:"less_than",...oe(e),value:t,inclusive:!0})}function Ei(t,e){return new wv({check:"greater_than",...oe(e),value:t,inclusive:!1})}function Tr(t,e){return new wv({check:"greater_than",...oe(e),value:t,inclusive:!0})}function s_(t){return Ei(0,t)}function c_(t){return $i(0,t)}function u_(t){return nn(0,t)}function l_(t){return Tr(0,t)}function Aa(t,e){return new ZE({check:"multiple_of",...oe(e),value:t})}function Ma(t,e){return new VE({check:"max_size",...oe(e),maximum:t})}function ki(t,e){return new GE({check:"min_size",...oe(e),minimum:t})}function Vo(t,e){return new WE({check:"size_equals",...oe(e),size:t})}function Go(t,e){return new KE({check:"max_length",...oe(e),maximum:t})}function Yi(t,e){return new JE({check:"min_length",...oe(e),minimum:t})}function Wo(t,e){return new XE({check:"length_equals",...oe(e),length:t})}function fu(t,e){return new YE({check:"string_format",format:"regex",...oe(e),pattern:t})}function mu(t){return new QE({check:"string_format",format:"lowercase",...oe(t)})}function hu(t){return new ek({check:"string_format",format:"uppercase",...oe(t)})}function gu(t,e){return new tk({check:"string_format",format:"includes",...oe(e),includes:t})}function vu(t,e){return new rk({check:"string_format",format:"starts_with",...oe(e),prefix:t})}function yu(t,e){return new nk({check:"string_format",format:"ends_with",...oe(e),suffix:t})}function d_(t,e,r){return new ik({check:"property",property:t,schema:e,...oe(r)})}function _u(t,e){return new ak({check:"mime_type",mime:t,...oe(e)})}function ri(t){return new ok({check:"overwrite",tx:t})}function bu(t){return ri(e=>e.normalize(t))}function xu(){return ri(t=>t.trim())}function Su(){return ri(t=>t.toLowerCase())}function wu(){return ri(t=>t.toUpperCase())}function Rp(){return ri(t=>Fg(t))}function kk(t,e,r){return new t({type:"array",element:e,...oe(r)})}function p_(t,e){return new t({type:"file",...oe(e)})}function f_(t,e,r){let n=oe(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function m_(t,e,r){return new t({type:"custom",check:"custom",fn:e,...oe(r)})}function h_(t){let e=QL(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Ho(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(Ho(i))}},t(r.value,r)));return e}function QL(t,e){let r=new wt({check:"custom",...oe(e)});return r._zod.check=t,r}function g_(t){let e=new wt({check:"describe"});return e._zod.onattach=[r=>{let n=kr.get(r)??{};kr.add(r,{...n,description:t})}],e._zod.check=()=>{},e}function v_(t){let e=new wt({check:"meta"});return e._zod.onattach=[r=>{let n=kr.get(r)??{};kr.add(r,{...n,...t})}],e._zod.check=()=>{},e}function y_(t,e){let r=oe(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 a=new Set(n),o=new Set(i),s=t.Codec??lu,c=t.Boolean??cu,u=t.String??ja,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,h)=>{let _=f;return r.case!=="sensitive"&&(_=_.toLowerCase()),a.has(_)?!0:o.has(_)?!1:(h.issues.push({code:"invalid_value",expected:"stringbool",values:[...a,...o],input:h.value,inst:p,continue:!1}),{})}),reverseTransform:((f,h)=>f===!0?n[0]||"true":i[0]||"false"),error:r.error});return p}function Ko(t,e,r,n={}){let i=oe(n),a={...oe(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:s=>r.test(s),...i};return r instanceof RegExp&&(a.pattern=r),new t(a)}function Op(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??kr,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 It(t,e,r={path:[],schemaPath:[]}){var n;let i=t._zod.def,a=e.seen.get(t);if(a)return a.count++,r.schemaPath.includes(t)&&(a.cycle=r.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,o);let s=t._zod.toJSONSchema?.();if(s)o.schema=s;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),It(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"&&Ir(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 Cp(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 s=t.metadataRegistry.get(o[0])?.id;if(s){let c=n.get(s);if(c&&c!==o[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,o[0])}}let i=o=>{let s=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let d=t.external.registry.get(o[0])?.id,p=t.external.uri??(h=>h);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")}#/${s}/${f}`}}if(o[1]===r)return{ref:"#"};let u=`#/${s}/`,l=o[1].schema.id??`__schema${t.counter++}`;return{defId:l,ref:u+l}},a=o=>{if(o[1].schema.$ref)return;let s=o[1],{ref:c,defId:u}=i(o);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 o of t.seen.entries()){let s=o[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 o of t.seen.entries()){let s=o[1];if(e===o[0]){a(o);continue}if(t.external){let u=t.external.registry.get(o[0])?.id;if(e!==o[0]&&u){a(o);continue}}if(t.metadataRegistry.get(o[0])?.id){a(o);continue}if(s.cycle){a(o);continue}if(s.count>1&&t.reused==="ref"){a(o);continue}}}function Rp(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 s=t.seen.get(o);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),o._zod.parent===l)for(let _ in c)_==="$ref"||_==="allOf"||_ in u||delete c[_];if(f.$ref)for(let _ in c)_==="$ref"||_==="allOf"||_ in p.def&&JSON.stringify(c[_])===JSON.stringify(p.def[_])&&delete c[_]}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:s.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 a=t.external?.defs??{};for(let o of t.seen.entries()){let s=o[1];s.def&&s.defId&&(a[s.defId]=s.def)}t.external||Object.keys(a).length>0&&(t.target==="draft-2020-12"?i.$defs=a:i.definitions=a);try{let o=JSON.parse(JSON.stringify(i));return Object.defineProperty(o,"~standard",{value:{...e["~standard"],jsonSchema:{input:bu(e,"input",t.processors),output:bu(e,"output",t.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function Ir(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Ir(n.element,r);if(n.type==="set")return Ir(n.valueType,r);if(n.type==="lazy")return Ir(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 Ir(n.innerType,r);if(n.type==="intersection")return Ir(n.left,r)||Ir(n.right,r);if(n.type==="record"||n.type==="map")return Ir(n.keyType,r)||Ir(n.valueType,r);if(n.type==="pipe")return Ir(n.in,r)||Ir(n.out,r);if(n.type==="object"){for(let i in n.shape)if(Ir(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(let i of n.options)if(Ir(i,r))return!0;return!1}if(n.type==="tuple"){for(let i of n.items)if(Ir(i,r))return!0;return!!(n.rest&&Ir(n.rest,r))}return!1}var Ek=(t,e={})=>r=>{let n=Pp({...r,processors:e});return It(t,n),Op(n,t),Rp(n,t)},bu=(t,e,r={})=>n=>{let{libraryOptions:i,target:a}=n??{},o=Pp({...i??{},target:a,io:e,processors:r});return It(t,o),Op(o,t),Rp(o,t)};var WL={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},kk=(t,e,r,n)=>{let i=r;i.type="string";let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof a=="number"&&(i.minLength=a),typeof o=="number"&&(i.maxLength=o),s&&(i.format=WL[s]??s,i.format===""&&delete i.format,s==="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}))])}},Tk=(t,e,r,n)=>{let i=r,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=t._zod.bag;typeof s=="string"&&s.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 a=="number"&&(i.minimum=a,typeof l=="number"&&e.target!=="draft-04"&&(l>=a?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)},Ik=(t,e,r,n)=>{r.type="boolean"},Pk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},Ok=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},Rk=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},Ck=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Nk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},jk=(t,e,r,n)=>{r.not={}},Ak=(t,e,r,n)=>{},Mk=(t,e,r,n)=>{},zk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},Dk=(t,e,r,n)=>{let i=t._zod.def,a=Fc(i.entries);a.every(o=>typeof o=="number")&&(r.type="number"),a.every(o=>typeof o=="string")&&(r.type="string"),r.enum=a},Uk=(t,e,r,n)=>{let i=t._zod.def,a=[];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");a.push(Number(o))}else a.push(o);if(a.length!==0)if(a.length===1){let o=a[0];r.type=o===null?"null":typeof o,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[o]:r.const=o}else a.every(o=>typeof o=="number")&&(r.type="number"),a.every(o=>typeof o=="string")&&(r.type="string"),a.every(o=>typeof o=="boolean")&&(r.type="boolean"),a.every(o=>o===null)&&(r.type="null"),r.enum=a},qk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Lk=(t,e,r,n)=>{let i=r,a=t._zod.pattern;if(!a)throw new Error("Pattern not found in template literal");i.type="string",i.pattern=a.source},Fk=(t,e,r,n)=>{let i=r,a={type:"string",format:"binary",contentEncoding:"binary"},{minimum:o,maximum:s,mime:c}=t._zod.bag;o!==void 0&&(a.minLength=o),s!==void 0&&(a.maxLength=s),c?c.length===1?(a.contentMediaType=c[0],Object.assign(i,a)):(Object.assign(i,a),i.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(i,a)},Zk=(t,e,r,n)=>{r.type="boolean"},Hk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Bk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Vk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Gk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Wk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Kk=(t,e,r,n)=>{let i=r,a=t._zod.def,{minimum:o,maximum:s}=t._zod.bag;typeof o=="number"&&(i.minItems=o),typeof s=="number"&&(i.maxItems=s),i.type="array",i.items=It(a.element,e,{...n,path:[...n.path,"items"]})},Jk=(t,e,r,n)=>{let i=r,a=t._zod.def;i.type="object",i.properties={};let o=a.shape;for(let u in o)i.properties[u]=It(o[u],e,{...n,path:[...n.path,"properties",u]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(u=>{let l=a.shape[u]._zod;return e.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type==="never"?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=It(a.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},v_=(t,e,r,n)=>{let i=t._zod.def,a=i.inclusive===!1,o=i.options.map((s,c)=>It(s,e,{...n,path:[...n.path,a?"oneOf":"anyOf",c]}));a?r.oneOf=o:r.anyOf=o},Xk=(t,e,r,n)=>{let i=t._zod.def,a=It(i.left,e,{...n,path:[...n.path,"allOf",0]}),o=It(i.right,e,{...n,path:[...n.path,"allOf",1]}),s=u=>"allOf"in u&&Object.keys(u).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];r.allOf=c},Yk=(t,e,r,n)=>{let i=r,a=t._zod.def;i.type="array";let o=e.target==="draft-2020-12"?"prefixItems":"items",s=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",c=a.items.map((p,f)=>It(p,e,{...n,path:[...n.path,o,f]})),u=a.rest?It(a.rest,e,{...n,path:[...n.path,s,...e.target==="openapi-3.0"?[a.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)},Qk=(t,e,r,n)=>{let i=r,a=t._zod.def;i.type="object";let o=a.keyType,c=o._zod.bag?.patterns;if(a.mode==="loose"&&c&&c.size>0){let l=It(a.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=It(a.keyType,e,{...n,path:[...n.path,"propertyNames"]})),i.additionalProperties=It(a.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)}},eT=(t,e,r,n)=>{let i=t._zod.def,a=It(i.innerType,e,n),o=e.seen.get(t);e.target==="openapi-3.0"?(o.ref=i.innerType,r.nullable=!0):r.anyOf=[a,{type:"null"}]},tT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType},rT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType,r.default=JSON.parse(JSON.stringify(i.defaultValue))},nT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},iT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.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},aT=(t,e,r,n)=>{let i=t._zod.def,a=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;It(a,e,n);let o=e.seen.get(t);o.ref=a},oT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType,r.readOnly=!0},sT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType},y_=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType},cT=(t,e,r,n)=>{let i=t._zod.innerType;It(i,e,n);let a=e.seen.get(t);a.ref=i};function Ko(t){return!!t._zod}function An(t,e){return Ko(t)?Ho(t,e):t.safeParse(e)}function Cp(t){if(!t)return;let e;if(Ko(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function pT(t){if(Ko(t)){let a=t._zod?.def;if(a){if(a.value!==void 0)return a.value;if(Array.isArray(a.values)&&a.values.length>0)return a.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 xu={};Rn(xu,{ZodAny:()=>OT,ZodArray:()=>jT,ZodBase64:()=>F_,ZodBase64URL:()=>Z_,ZodBigInt:()=>Lp,ZodBigIntFormat:()=>V_,ZodBoolean:()=>qp,ZodCIDRv4:()=>q_,ZodCIDRv6:()=>L_,ZodCUID:()=>N_,ZodCUID2:()=>j_,ZodCatch:()=>e1,ZodCodec:()=>Q_,ZodCustom:()=>Vp,ZodCustomStringFormat:()=>wu,ZodDate:()=>W_,ZodDefault:()=>WT,ZodDiscriminatedUnion:()=>MT,ZodE164:()=>H_,ZodEmail:()=>O_,ZodEmoji:()=>R_,ZodEnum:()=>Su,ZodExactOptional:()=>BT,ZodFile:()=>ZT,ZodFunction:()=>u1,ZodGUID:()=>jp,ZodIPv4:()=>D_,ZodIPv6:()=>U_,ZodIntersection:()=>zT,ZodJWT:()=>B_,ZodKSUID:()=>z_,ZodLazy:()=>o1,ZodLiteral:()=>FT,ZodMAC:()=>kT,ZodMap:()=>qT,ZodNaN:()=>r1,ZodNanoID:()=>C_,ZodNever:()=>CT,ZodNonOptional:()=>X_,ZodNull:()=>PT,ZodNullable:()=>GT,ZodNumber:()=>Up,ZodNumberFormat:()=>Jo,ZodObject:()=>Fp,ZodOptional:()=>J_,ZodPipe:()=>Y_,ZodPrefault:()=>JT,ZodPromise:()=>c1,ZodReadonly:()=>n1,ZodRecord:()=>Bp,ZodSet:()=>LT,ZodString:()=>zp,ZodStringFormat:()=>$t,ZodSuccess:()=>QT,ZodSymbol:()=>TT,ZodTemplateLiteral:()=>a1,ZodTransform:()=>HT,ZodTuple:()=>DT,ZodType:()=>De,ZodULID:()=>A_,ZodURL:()=>Dp,ZodUUID:()=>Ti,ZodUndefined:()=>IT,ZodUnion:()=>Zp,ZodUnknown:()=>RT,ZodVoid:()=>NT,ZodXID:()=>M_,ZodXor:()=>AT,_ZodString:()=>P_,_default:()=>KT,_function:()=>p8,any:()=>W9,array:()=>Ge,base64:()=>R9,base64url:()=>C9,bigint:()=>Z9,boolean:()=>Qt,catch:()=>t1,check:()=>f8,cidrv4:()=>P9,cidrv6:()=>O9,codec:()=>u8,cuid:()=>x9,cuid2:()=>S9,custom:()=>eb,date:()=>J9,describe:()=>m8,discriminatedUnion:()=>Hp,e164:()=>N9,email:()=>d9,emoji:()=>_9,enum:()=>vr,exactOptional:()=>VT,file:()=>a8,float32:()=>U9,float64:()=>q9,function:()=>p8,guid:()=>p9,hash:()=>D9,hex:()=>z9,hostname:()=>M9,httpUrl:()=>y9,instanceof:()=>g8,int:()=>I_,int32:()=>L9,int64:()=>H9,intersection:()=>Eu,ipv4:()=>k9,ipv6:()=>I9,json:()=>y8,jwt:()=>j9,keyof:()=>X9,ksuid:()=>E9,lazy:()=>s1,literal:()=>ve,looseObject:()=>gr,looseRecord:()=>t8,mac:()=>T9,map:()=>r8,meta:()=>h8,nan:()=>c8,nanoid:()=>b9,nativeEnum:()=>i8,never:()=>G_,nonoptional:()=>YT,null:()=>$u,nullable:()=>Ap,nullish:()=>o8,number:()=>dt,object:()=>le,optional:()=>Nt,partialRecord:()=>e8,pipe:()=>Mp,prefault:()=>XT,preprocess:()=>Gp,promise:()=>d8,readonly:()=>i1,record:()=>Pt,refine:()=>l1,set:()=>n8,strictObject:()=>Y9,string:()=>H,stringFormat:()=>A9,stringbool:()=>v8,success:()=>s8,superRefine:()=>d1,symbol:()=>V9,templateLiteral:()=>l8,transform:()=>K_,tuple:()=>UT,uint32:()=>F9,uint64:()=>B9,ulid:()=>w9,undefined:()=>G9,union:()=>bt,unknown:()=>Et,url:()=>v9,uuid:()=>f9,uuidv4:()=>m9,uuidv6:()=>h9,uuidv7:()=>g9,void:()=>K9,xid:()=>$9,xor:()=>Q9});var Np={};Rn(Np,{endsWith:()=>mu,gt:()=>Ei,gte:()=>Tr,includes:()=>pu,length:()=>Go,lowercase:()=>lu,lt:()=>$i,lte:()=>rn,maxLength:()=>Vo,maxSize:()=>za,mime:()=>hu,minLength:()=>Qi,minSize:()=>ki,multipleOf:()=>Ma,negative:()=>o_,nonnegative:()=>c_,nonpositive:()=>s_,normalize:()=>gu,overwrite:()=>ti,positive:()=>a_,property:()=>u_,regex:()=>uu,size:()=>Bo,slugify:()=>Ip,startsWith:()=>fu,toLowerCase:()=>yu,toUpperCase:()=>_u,trim:()=>vu,uppercase:()=>du});var Da={};Rn(Da,{ZodISODate:()=>S_,ZodISODateTime:()=>b_,ZodISODuration:()=>k_,ZodISOTime:()=>$_,date:()=>w_,datetime:()=>x_,duration:()=>T_,time:()=>E_});var b_=L("ZodISODateTime",(t,e)=>{jv.init(t,e),$t.init(t,e)});function x_(t){return My(b_,t)}var S_=L("ZodISODate",(t,e)=>{Av.init(t,e),$t.init(t,e)});function w_(t){return zy(S_,t)}var $_=L("ZodISOTime",(t,e)=>{Mv.init(t,e),$t.init(t,e)});function E_(t){return Dy($_,t)}var k_=L("ZodISODuration",(t,e)=>{zv.init(t,e),$t.init(t,e)});function T_(t){return Uy(k_,t)}var fT=(t,e)=>{Gd.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Kd(t,r)},flatten:{value:r=>Wd(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,Lo,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,Lo,2)}},isEmpty:{get(){return t.issues.length===0}}})},Mye=L("ZodError",fT),nn=L("ZodError",fT,{Parent:Error});var mT=Wc(nn),hT=Jc(nn),gT=Yc(nn),vT=Qc(nn),yT=IE(nn),_T=PE(nn),bT=OE(nn),xT=RE(nn),ST=CE(nn),wT=NE(nn),$T=jE(nn),ET=AE(nn);var De=L("ZodType",(t,e)=>(je.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:bu(t,"input"),output:bu(t,"output")}}),t.toJSONSchema=Ek(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone(ee.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)=>Er(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>mT(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>gT(t,r,n),t.parseAsync=async(r,n)=>hT(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>vT(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>yT(t,r,n),t.decode=(r,n)=>_T(t,r,n),t.encodeAsync=async(r,n)=>bT(t,r,n),t.decodeAsync=async(r,n)=>xT(t,r,n),t.safeEncode=(r,n)=>ST(t,r,n),t.safeDecode=(r,n)=>wT(t,r,n),t.safeEncodeAsync=async(r,n)=>$T(t,r,n),t.safeDecodeAsync=async(r,n)=>ET(t,r,n),t.refine=(r,n)=>t.check(l1(r,n)),t.superRefine=r=>t.check(d1(r)),t.overwrite=r=>t.check(ti(r)),t.optional=()=>Nt(t),t.exactOptional=()=>VT(t),t.nullable=()=>Ap(t),t.nullish=()=>Nt(Ap(t)),t.nonoptional=r=>YT(t,r),t.array=()=>Ge(t),t.or=r=>bt([t,r]),t.and=r=>Eu(t,r),t.transform=r=>Mp(t,K_(r)),t.default=r=>KT(t,r),t.prefault=r=>XT(t,r),t.catch=r=>t1(t,r),t.pipe=r=>Mp(t,r),t.readonly=()=>i1(t),t.describe=r=>{let n=t.clone();return kr.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return kr.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return kr.get(t);let n=t.clone();return kr.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=r=>r(t),t)),P_=L("_ZodString",(t,e)=>{Aa.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,a)=>kk(t,n,i,a);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(pu(...n)),t.startsWith=(...n)=>t.check(fu(...n)),t.endsWith=(...n)=>t.check(mu(...n)),t.min=(...n)=>t.check(Qi(...n)),t.max=(...n)=>t.check(Vo(...n)),t.length=(...n)=>t.check(Go(...n)),t.nonempty=(...n)=>t.check(Qi(1,...n)),t.lowercase=n=>t.check(lu(n)),t.uppercase=n=>t.check(du(n)),t.trim=()=>t.check(vu()),t.normalize=(...n)=>t.check(gu(...n)),t.toLowerCase=()=>t.check(yu()),t.toUpperCase=()=>t.check(_u()),t.slugify=()=>t.check(Ip())}),zp=L("ZodString",(t,e)=>{Aa.init(t,e),P_.init(t,e),t.email=r=>t.check(cp(O_,r)),t.url=r=>t.check(cu(Dp,r)),t.jwt=r=>t.check(Tp(B_,r)),t.emoji=r=>t.check(fp(R_,r)),t.guid=r=>t.check(su(jp,r)),t.uuid=r=>t.check(up(Ti,r)),t.uuidv4=r=>t.check(lp(Ti,r)),t.uuidv6=r=>t.check(dp(Ti,r)),t.uuidv7=r=>t.check(pp(Ti,r)),t.nanoid=r=>t.check(mp(C_,r)),t.guid=r=>t.check(su(jp,r)),t.cuid=r=>t.check(hp(N_,r)),t.cuid2=r=>t.check(gp(j_,r)),t.ulid=r=>t.check(vp(A_,r)),t.base64=r=>t.check($p(F_,r)),t.base64url=r=>t.check(Ep(Z_,r)),t.xid=r=>t.check(yp(M_,r)),t.ksuid=r=>t.check(_p(z_,r)),t.ipv4=r=>t.check(bp(D_,r)),t.ipv6=r=>t.check(xp(U_,r)),t.cidrv4=r=>t.check(Sp(q_,r)),t.cidrv6=r=>t.check(wp(L_,r)),t.e164=r=>t.check(kp(H_,r)),t.datetime=r=>t.check(x_(r)),t.date=r=>t.check(w_(r)),t.time=r=>t.check(E_(r)),t.duration=r=>t.check(T_(r))});function H(t){return jy(zp,t)}var $t=L("ZodStringFormat",(t,e)=>{_t.init(t,e),P_.init(t,e)}),O_=L("ZodEmail",(t,e)=>{Ev.init(t,e),$t.init(t,e)});function d9(t){return cp(O_,t)}var jp=L("ZodGUID",(t,e)=>{wv.init(t,e),$t.init(t,e)});function p9(t){return su(jp,t)}var Ti=L("ZodUUID",(t,e)=>{$v.init(t,e),$t.init(t,e)});function f9(t){return up(Ti,t)}function m9(t){return lp(Ti,t)}function h9(t){return dp(Ti,t)}function g9(t){return pp(Ti,t)}var Dp=L("ZodURL",(t,e)=>{kv.init(t,e),$t.init(t,e)});function v9(t){return cu(Dp,t)}function y9(t){return cu(Dp,{protocol:/^https?$/,hostname:dn.domain,...ee.normalizeParams(t)})}var R_=L("ZodEmoji",(t,e)=>{Tv.init(t,e),$t.init(t,e)});function _9(t){return fp(R_,t)}var C_=L("ZodNanoID",(t,e)=>{Iv.init(t,e),$t.init(t,e)});function b9(t){return mp(C_,t)}var N_=L("ZodCUID",(t,e)=>{Pv.init(t,e),$t.init(t,e)});function x9(t){return hp(N_,t)}var j_=L("ZodCUID2",(t,e)=>{Ov.init(t,e),$t.init(t,e)});function S9(t){return gp(j_,t)}var A_=L("ZodULID",(t,e)=>{Rv.init(t,e),$t.init(t,e)});function w9(t){return vp(A_,t)}var M_=L("ZodXID",(t,e)=>{Cv.init(t,e),$t.init(t,e)});function $9(t){return yp(M_,t)}var z_=L("ZodKSUID",(t,e)=>{Nv.init(t,e),$t.init(t,e)});function E9(t){return _p(z_,t)}var D_=L("ZodIPv4",(t,e)=>{Dv.init(t,e),$t.init(t,e)});function k9(t){return bp(D_,t)}var kT=L("ZodMAC",(t,e)=>{qv.init(t,e),$t.init(t,e)});function T9(t){return Ay(kT,t)}var U_=L("ZodIPv6",(t,e)=>{Uv.init(t,e),$t.init(t,e)});function I9(t){return xp(U_,t)}var q_=L("ZodCIDRv4",(t,e)=>{Lv.init(t,e),$t.init(t,e)});function P9(t){return Sp(q_,t)}var L_=L("ZodCIDRv6",(t,e)=>{Fv.init(t,e),$t.init(t,e)});function O9(t){return wp(L_,t)}var F_=L("ZodBase64",(t,e)=>{Zv.init(t,e),$t.init(t,e)});function R9(t){return $p(F_,t)}var Z_=L("ZodBase64URL",(t,e)=>{Hv.init(t,e),$t.init(t,e)});function C9(t){return Ep(Z_,t)}var H_=L("ZodE164",(t,e)=>{Bv.init(t,e),$t.init(t,e)});function N9(t){return kp(H_,t)}var B_=L("ZodJWT",(t,e)=>{Vv.init(t,e),$t.init(t,e)});function j9(t){return Tp(B_,t)}var wu=L("ZodCustomStringFormat",(t,e)=>{Gv.init(t,e),$t.init(t,e)});function A9(t,e,r={}){return Wo(wu,t,e,r)}function M9(t){return Wo(wu,"hostname",dn.hostname,t)}function z9(t){return Wo(wu,"hex",dn.hex,t)}function D9(t,e){let r=e?.enc??"hex",n=`${t}_${r}`,i=dn[n];if(!i)throw new Error(`Unrecognized hash format: ${n}`);return Wo(wu,n,i,e)}var Up=L("ZodNumber",(t,e)=>{ip.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Tk(t,n,i,a),t.gt=(n,i)=>t.check(Ei(n,i)),t.gte=(n,i)=>t.check(Tr(n,i)),t.min=(n,i)=>t.check(Tr(n,i)),t.lt=(n,i)=>t.check($i(n,i)),t.lte=(n,i)=>t.check(rn(n,i)),t.max=(n,i)=>t.check(rn(n,i)),t.int=n=>t.check(I_(n)),t.safe=n=>t.check(I_(n)),t.positive=n=>t.check(Ei(0,n)),t.nonnegative=n=>t.check(Tr(0,n)),t.negative=n=>t.check($i(0,n)),t.nonpositive=n=>t.check(rn(0,n)),t.multipleOf=(n,i)=>t.check(Ma(n,i)),t.step=(n,i)=>t.check(Ma(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 dt(t){return qy(Up,t)}var Jo=L("ZodNumberFormat",(t,e)=>{Wv.init(t,e),Up.init(t,e)});function I_(t){return Ly(Jo,t)}function U9(t){return Fy(Jo,t)}function q9(t){return Zy(Jo,t)}function L9(t){return Hy(Jo,t)}function F9(t){return By(Jo,t)}var qp=L("ZodBoolean",(t,e)=>{iu.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Ik(t,r,n,i)});function Qt(t){return Vy(qp,t)}var Lp=L("ZodBigInt",(t,e)=>{ap.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Pk(t,n,i,a),t.gte=(n,i)=>t.check(Tr(n,i)),t.min=(n,i)=>t.check(Tr(n,i)),t.gt=(n,i)=>t.check(Ei(n,i)),t.gte=(n,i)=>t.check(Tr(n,i)),t.min=(n,i)=>t.check(Tr(n,i)),t.lt=(n,i)=>t.check($i(n,i)),t.lte=(n,i)=>t.check(rn(n,i)),t.max=(n,i)=>t.check(rn(n,i)),t.positive=n=>t.check(Ei(BigInt(0),n)),t.negative=n=>t.check($i(BigInt(0),n)),t.nonpositive=n=>t.check(rn(BigInt(0),n)),t.nonnegative=n=>t.check(Tr(BigInt(0),n)),t.multipleOf=(n,i)=>t.check(Ma(n,i));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function Z9(t){return Gy(Lp,t)}var V_=L("ZodBigIntFormat",(t,e)=>{Kv.init(t,e),Lp.init(t,e)});function H9(t){return Wy(V_,t)}function B9(t){return Ky(V_,t)}var TT=L("ZodSymbol",(t,e)=>{Jv.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Ok(t,r,n,i)});function V9(t){return Jy(TT,t)}var IT=L("ZodUndefined",(t,e)=>{Xv.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Ck(t,r,n,i)});function G9(t){return Xy(IT,t)}var PT=L("ZodNull",(t,e)=>{Yv.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Rk(t,r,n,i)});function $u(t){return Yy(PT,t)}var OT=L("ZodAny",(t,e)=>{Qv.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Ak(t,r,n,i)});function W9(){return Qy(OT)}var RT=L("ZodUnknown",(t,e)=>{ey.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Mk(t,r,n,i)});function Et(){return e_(RT)}var CT=L("ZodNever",(t,e)=>{ty.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>jk(t,r,n,i)});function G_(t){return t_(CT,t)}var NT=L("ZodVoid",(t,e)=>{ry.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Nk(t,r,n,i)});function K9(t){return r_(NT,t)}var W_=L("ZodDate",(t,e)=>{ny.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,a)=>zk(t,n,i,a),t.min=(n,i)=>t.check(Tr(n,i)),t.max=(n,i)=>t.check(rn(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 J9(t){return n_(W_,t)}var jT=L("ZodArray",(t,e)=>{iy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Kk(t,r,n,i),t.element=e.element,t.min=(r,n)=>t.check(Qi(r,n)),t.nonempty=r=>t.check(Qi(1,r)),t.max=(r,n)=>t.check(Vo(r,n)),t.length=(r,n)=>t.check(Go(r,n)),t.unwrap=()=>t.element});function Ge(t,e){return $k(jT,t,e)}function X9(t){let e=t._zod.def.shape;return vr(Object.keys(e))}var Fp=L("ZodObject",(t,e)=>{Sk.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Jk(t,r,n,i),ee.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>vr(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Et()}),t.loose=()=>t.clone({...t._zod.def,catchall:Et()}),t.strict=()=>t.clone({...t._zod.def,catchall:G_()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>ee.extend(t,r),t.safeExtend=r=>ee.safeExtend(t,r),t.merge=r=>ee.merge(t,r),t.pick=r=>ee.pick(t,r),t.omit=r=>ee.omit(t,r),t.partial=(...r)=>ee.partial(J_,t,r[0]),t.required=(...r)=>ee.required(X_,t,r[0])});function le(t,e){let r={type:"object",shape:t??{},...ee.normalizeParams(e)};return new Fp(r)}function Y9(t,e){return new Fp({type:"object",shape:t,catchall:G_(),...ee.normalizeParams(e)})}function gr(t,e){return new Fp({type:"object",shape:t,catchall:Et(),...ee.normalizeParams(e)})}var Zp=L("ZodUnion",(t,e)=>{au.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>v_(t,r,n,i),t.options=e.options});function bt(t,e){return new Zp({type:"union",options:t,...ee.normalizeParams(e)})}var AT=L("ZodXor",(t,e)=>{Zp.init(t,e),ay.init(t,e),t._zod.processJSONSchema=(r,n,i)=>v_(t,r,n,i),t.options=e.options});function Q9(t,e){return new AT({type:"union",options:t,inclusive:!1,...ee.normalizeParams(e)})}var MT=L("ZodDiscriminatedUnion",(t,e)=>{Zp.init(t,e),oy.init(t,e)});function Hp(t,e,r){return new MT({type:"union",options:e,discriminator:t,...ee.normalizeParams(r)})}var zT=L("ZodIntersection",(t,e)=>{sy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Xk(t,r,n,i)});function Eu(t,e){return new zT({type:"intersection",left:t,right:e})}var DT=L("ZodTuple",(t,e)=>{op.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Yk(t,r,n,i),t.rest=r=>t.clone({...t._zod.def,rest:r})});function UT(t,e,r){let n=e instanceof je,i=n?r:e,a=n?e:null;return new DT({type:"tuple",items:t,rest:a,...ee.normalizeParams(i)})}var Bp=L("ZodRecord",(t,e)=>{cy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Qk(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType});function Pt(t,e,r){return new Bp({type:"record",keyType:t,valueType:e,...ee.normalizeParams(r)})}function e8(t,e,r){let n=Er(t);return n._zod.values=void 0,new Bp({type:"record",keyType:n,valueType:e,...ee.normalizeParams(r)})}function t8(t,e,r){return new Bp({type:"record",keyType:t,valueType:e,mode:"loose",...ee.normalizeParams(r)})}var qT=L("ZodMap",(t,e)=>{uy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Gk(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...r)=>t.check(ki(...r)),t.nonempty=r=>t.check(ki(1,r)),t.max=(...r)=>t.check(za(...r)),t.size=(...r)=>t.check(Bo(...r))});function r8(t,e,r){return new qT({type:"map",keyType:t,valueType:e,...ee.normalizeParams(r)})}var LT=L("ZodSet",(t,e)=>{ly.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Wk(t,r,n,i),t.min=(...r)=>t.check(ki(...r)),t.nonempty=r=>t.check(ki(1,r)),t.max=(...r)=>t.check(za(...r)),t.size=(...r)=>t.check(Bo(...r))});function n8(t,e){return new LT({type:"set",valueType:t,...ee.normalizeParams(e)})}var Su=L("ZodEnum",(t,e)=>{dy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Dk(t,n,i,a),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let a={};for(let o of n)if(r.has(o))a[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Su({...e,checks:[],...ee.normalizeParams(i),entries:a})},t.exclude=(n,i)=>{let a={...e.entries};for(let o of n)if(r.has(o))delete a[o];else throw new Error(`Key ${o} not found in enum`);return new Su({...e,checks:[],...ee.normalizeParams(i),entries:a})}});function vr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Su({type:"enum",entries:r,...ee.normalizeParams(e)})}function i8(t,e){return new Su({type:"enum",entries:t,...ee.normalizeParams(e)})}var FT=L("ZodLiteral",(t,e)=>{py.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Uk(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 ve(t,e){return new FT({type:"literal",values:Array.isArray(t)?t:[t],...ee.normalizeParams(e)})}var ZT=L("ZodFile",(t,e)=>{fy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Fk(t,r,n,i),t.min=(r,n)=>t.check(ki(r,n)),t.max=(r,n)=>t.check(za(r,n)),t.mime=(r,n)=>t.check(hu(Array.isArray(r)?r:[r],n))});function a8(t){return l_(ZT,t)}var HT=L("ZodTransform",(t,e)=>{my.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Vk(t,r,n,i),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ca(t.constructor.name);r.addIssue=a=>{if(typeof a=="string")r.issues.push(ee.issue(a,r.value,e));else{let o=a;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),r.issues.push(ee.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(a=>(r.value=a,r)):(r.value=i,r)}});function K_(t){return new HT({type:"transform",transform:t})}var J_=L("ZodOptional",(t,e)=>{sp.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>y_(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Nt(t){return new J_({type:"optional",innerType:t})}var BT=L("ZodExactOptional",(t,e)=>{hy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>y_(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function VT(t){return new BT({type:"optional",innerType:t})}var GT=L("ZodNullable",(t,e)=>{gy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>eT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Ap(t){return new GT({type:"nullable",innerType:t})}function o8(t){return Nt(Ap(t))}var WT=L("ZodDefault",(t,e)=>{vy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>rT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function KT(t,e){return new WT({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():ee.shallowClone(e)}})}var JT=L("ZodPrefault",(t,e)=>{yy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>nT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function XT(t,e){return new JT({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():ee.shallowClone(e)}})}var X_=L("ZodNonOptional",(t,e)=>{_y.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>tT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function YT(t,e){return new X_({type:"nonoptional",innerType:t,...ee.normalizeParams(e)})}var QT=L("ZodSuccess",(t,e)=>{by.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Zk(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function s8(t){return new QT({type:"success",innerType:t})}var e1=L("ZodCatch",(t,e)=>{xy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>iT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function t1(t,e){return new e1({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var r1=L("ZodNaN",(t,e)=>{Sy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>qk(t,r,n,i)});function c8(t){return i_(r1,t)}var Y_=L("ZodPipe",(t,e)=>{wy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>aT(t,r,n,i),t.in=e.in,t.out=e.out});function Mp(t,e){return new Y_({type:"pipe",in:t,out:e})}var Q_=L("ZodCodec",(t,e)=>{Y_.init(t,e),ou.init(t,e)});function u8(t,e,r){return new Q_({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var n1=L("ZodReadonly",(t,e)=>{$y.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>oT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function i1(t){return new n1({type:"readonly",innerType:t})}var a1=L("ZodTemplateLiteral",(t,e)=>{Ey.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Lk(t,r,n,i)});function l8(t,e){return new a1({type:"template_literal",parts:t,...ee.normalizeParams(e)})}var o1=L("ZodLazy",(t,e)=>{Iy.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>cT(t,r,n,i),t.unwrap=()=>t._zod.def.getter()});function s1(t){return new o1({type:"lazy",getter:t})}var c1=L("ZodPromise",(t,e)=>{Ty.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>sT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function d8(t){return new c1({type:"promise",innerType:t})}var u1=L("ZodFunction",(t,e)=>{ky.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Bk(t,r,n,i)});function p8(t){return new u1({type:"function",input:Array.isArray(t?.input)?UT(t?.input):t?.input??Ge(Et()),output:t?.output??Et()})}var Vp=L("ZodCustom",(t,e)=>{Py.init(t,e),De.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Hk(t,r,n,i)});function f8(t){let e=new wt({check:"custom"});return e._zod.check=t,e}function eb(t,e){return d_(Vp,t??(()=>!0),e)}function l1(t,e={}){return p_(Vp,t,e)}function d1(t){return f_(t)}var m8=m_,h8=h_;function g8(t,e={}){let r=new Vp({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...ee.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 v8=(...t)=>g_({Codec:Q_,Boolean:qp,String:zp},...t);function y8(t){let e=s1(()=>bt([H(t),dt(),Qt(),$u(),Ge(e),Pt(H(),e)]));return e}function Gp(t,e){return Mp(K_(t),e)}var p1;p1||(p1={});var Hye={...xu,...Np,iso:Da};tr(Oy());var rb="2025-11-25";var f1=[rb,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],ea="io.modelcontextprotocol/related-task",Kp="2.0",sr=eb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),m1=bt([H(),dt().int()]),h1=H(),u_e=gr({ttl:bt([dt(),$u()]).optional(),pollInterval:dt().optional()}),S8=le({ttl:dt().optional()}),w8=le({taskId:H()}),nb=gr({progressToken:m1.optional(),[ea]:w8.optional()}),an=le({_meta:nb.optional()}),ku=an.extend({task:S8.optional()}),g1=t=>ku.safeParse(t).success,cr=le({method:H(),params:an.loose().optional()}),pn=le({_meta:nb.optional()}),fn=le({method:H(),params:pn.loose().optional()}),ur=gr({_meta:nb.optional()}),Jp=bt([H(),dt().int()]),v1=le({jsonrpc:ve(Kp),id:Jp,...cr.shape}).strict(),ib=t=>v1.safeParse(t).success,y1=le({jsonrpc:ve(Kp),...fn.shape}).strict(),_1=t=>y1.safeParse(t).success,ab=le({jsonrpc:ve(Kp),id:Jp,result:ur}).strict(),Tu=t=>ab.safeParse(t).success;var Re;(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"})(Re||(Re={}));var ob=le({jsonrpc:ve(Kp),id:Jp.optional(),error:le({code:dt().int(),message:H(),data:Et().optional()})}).strict();var b1=t=>ob.safeParse(t).success;var x1=bt([v1,y1,ab,ob]),l_e=bt([ab,ob]),Ua=ur.strict(),$8=pn.extend({requestId:Jp.optional(),reason:H().optional()}),Xp=fn.extend({method:ve("notifications/cancelled"),params:$8}),E8=le({src:H(),mimeType:H().optional(),sizes:Ge(H()).optional(),theme:vr(["light","dark"]).optional()}),Iu=le({icons:Ge(E8).optional()}),Xo=le({name:H(),title:H().optional()}),S1=Xo.extend({...Xo.shape,...Iu.shape,version:H(),websiteUrl:H().optional(),description:H().optional()}),k8=Eu(le({applyDefaults:Qt().optional()}),Pt(H(),Et())),T8=Gp(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Eu(le({form:k8.optional(),url:sr.optional()}),Pt(H(),Et()).optional())),I8=gr({list:sr.optional(),cancel:sr.optional(),requests:gr({sampling:gr({createMessage:sr.optional()}).optional(),elicitation:gr({create:sr.optional()}).optional()}).optional()}),P8=gr({list:sr.optional(),cancel:sr.optional(),requests:gr({tools:gr({call:sr.optional()}).optional()}).optional()}),O8=le({experimental:Pt(H(),sr).optional(),sampling:le({context:sr.optional(),tools:sr.optional()}).optional(),elicitation:T8.optional(),roots:le({listChanged:Qt().optional()}).optional(),tasks:I8.optional()}),R8=an.extend({protocolVersion:H(),capabilities:O8,clientInfo:S1}),C8=cr.extend({method:ve("initialize"),params:R8});var N8=le({experimental:Pt(H(),sr).optional(),logging:sr.optional(),completions:sr.optional(),prompts:le({listChanged:Qt().optional()}).optional(),resources:le({subscribe:Qt().optional(),listChanged:Qt().optional()}).optional(),tools:le({listChanged:Qt().optional()}).optional(),tasks:P8.optional()}),sb=ur.extend({protocolVersion:H(),capabilities:N8,serverInfo:S1,instructions:H().optional()}),j8=fn.extend({method:ve("notifications/initialized"),params:pn.optional()});var Yp=cr.extend({method:ve("ping"),params:an.optional()}),A8=le({progress:dt(),total:Nt(dt()),message:Nt(H())}),M8=le({...pn.shape,...A8.shape,progressToken:m1}),Qp=fn.extend({method:ve("notifications/progress"),params:M8}),z8=an.extend({cursor:h1.optional()}),Pu=cr.extend({params:z8.optional()}),Ou=ur.extend({nextCursor:h1.optional()}),D8=vr(["working","input_required","completed","failed","cancelled"]),Ru=le({taskId:H(),status:D8,ttl:bt([dt(),$u()]),createdAt:H(),lastUpdatedAt:H(),pollInterval:Nt(dt()),statusMessage:Nt(H())}),qa=ur.extend({task:Ru}),U8=pn.merge(Ru),Cu=fn.extend({method:ve("notifications/tasks/status"),params:U8}),ef=cr.extend({method:ve("tasks/get"),params:an.extend({taskId:H()})}),tf=ur.merge(Ru),rf=cr.extend({method:ve("tasks/result"),params:an.extend({taskId:H()})}),d_e=ur.loose(),nf=Pu.extend({method:ve("tasks/list")}),af=Ou.extend({tasks:Ge(Ru)}),of=cr.extend({method:ve("tasks/cancel"),params:an.extend({taskId:H()})}),w1=ur.merge(Ru),$1=le({uri:H(),mimeType:Nt(H()),_meta:Pt(H(),Et()).optional()}),E1=$1.extend({text:H()}),cb=H().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),k1=$1.extend({blob:cb}),Nu=vr(["user","assistant"]),Yo=le({audience:Ge(Nu).optional(),priority:dt().min(0).max(1).optional(),lastModified:Da.datetime({offset:!0}).optional()}),T1=le({...Xo.shape,...Iu.shape,uri:H(),description:Nt(H()),mimeType:Nt(H()),annotations:Yo.optional(),_meta:Nt(gr({}))}),q8=le({...Xo.shape,...Iu.shape,uriTemplate:H(),description:Nt(H()),mimeType:Nt(H()),annotations:Yo.optional(),_meta:Nt(gr({}))}),L8=Pu.extend({method:ve("resources/list")}),ub=Ou.extend({resources:Ge(T1)}),F8=Pu.extend({method:ve("resources/templates/list")}),lb=Ou.extend({resourceTemplates:Ge(q8)}),db=an.extend({uri:H()}),Z8=db,H8=cr.extend({method:ve("resources/read"),params:Z8}),pb=ur.extend({contents:Ge(bt([E1,k1]))}),fb=fn.extend({method:ve("notifications/resources/list_changed"),params:pn.optional()}),B8=db,V8=cr.extend({method:ve("resources/subscribe"),params:B8}),G8=db,W8=cr.extend({method:ve("resources/unsubscribe"),params:G8}),K8=pn.extend({uri:H()}),J8=fn.extend({method:ve("notifications/resources/updated"),params:K8}),X8=le({name:H(),description:Nt(H()),required:Nt(Qt())}),Y8=le({...Xo.shape,...Iu.shape,description:Nt(H()),arguments:Nt(Ge(X8)),_meta:Nt(gr({}))}),Q8=Pu.extend({method:ve("prompts/list")}),mb=Ou.extend({prompts:Ge(Y8)}),eF=an.extend({name:H(),arguments:Pt(H(),H()).optional()}),tF=cr.extend({method:ve("prompts/get"),params:eF}),hb=le({type:ve("text"),text:H(),annotations:Yo.optional(),_meta:Pt(H(),Et()).optional()}),gb=le({type:ve("image"),data:cb,mimeType:H(),annotations:Yo.optional(),_meta:Pt(H(),Et()).optional()}),vb=le({type:ve("audio"),data:cb,mimeType:H(),annotations:Yo.optional(),_meta:Pt(H(),Et()).optional()}),rF=le({type:ve("tool_use"),name:H(),id:H(),input:Pt(H(),Et()),_meta:Pt(H(),Et()).optional()}),nF=le({type:ve("resource"),resource:bt([E1,k1]),annotations:Yo.optional(),_meta:Pt(H(),Et()).optional()}),iF=T1.extend({type:ve("resource_link")}),yb=bt([hb,gb,vb,iF,nF]),aF=le({role:Nu,content:yb}),_b=ur.extend({description:H().optional(),messages:Ge(aF)}),bb=fn.extend({method:ve("notifications/prompts/list_changed"),params:pn.optional()}),oF=le({title:H().optional(),readOnlyHint:Qt().optional(),destructiveHint:Qt().optional(),idempotentHint:Qt().optional(),openWorldHint:Qt().optional()}),sF=le({taskSupport:vr(["required","optional","forbidden"]).optional()}),I1=le({...Xo.shape,...Iu.shape,description:H().optional(),inputSchema:le({type:ve("object"),properties:Pt(H(),sr).optional(),required:Ge(H()).optional()}).catchall(Et()),outputSchema:le({type:ve("object"),properties:Pt(H(),sr).optional(),required:Ge(H()).optional()}).catchall(Et()).optional(),annotations:oF.optional(),execution:sF.optional(),_meta:Pt(H(),Et()).optional()}),cF=Pu.extend({method:ve("tools/list")}),xb=Ou.extend({tools:Ge(I1)}),Qo=ur.extend({content:Ge(yb).default([]),structuredContent:Pt(H(),Et()).optional(),isError:Qt().optional()}),p_e=Qo.or(ur.extend({toolResult:Et()})),uF=ku.extend({name:H(),arguments:Pt(H(),Et()).optional()}),lF=cr.extend({method:ve("tools/call"),params:uF}),Sb=fn.extend({method:ve("notifications/tools/list_changed"),params:pn.optional()}),P1=le({autoRefresh:Qt().default(!0),debounceMs:dt().int().nonnegative().default(300)}),O1=vr(["debug","info","notice","warning","error","critical","alert","emergency"]),dF=an.extend({level:O1}),pF=cr.extend({method:ve("logging/setLevel"),params:dF}),fF=pn.extend({level:O1,logger:H().optional(),data:Et()}),mF=fn.extend({method:ve("notifications/message"),params:fF}),hF=le({name:H().optional()}),gF=le({hints:Ge(hF).optional(),costPriority:dt().min(0).max(1).optional(),speedPriority:dt().min(0).max(1).optional(),intelligencePriority:dt().min(0).max(1).optional()}),vF=le({mode:vr(["auto","required","none"]).optional()}),yF=le({type:ve("tool_result"),toolUseId:H().describe("The unique identifier for the corresponding tool call."),content:Ge(yb).default([]),structuredContent:le({}).loose().optional(),isError:Qt().optional(),_meta:Pt(H(),Et()).optional()}),_F=Hp("type",[hb,gb,vb]),Wp=Hp("type",[hb,gb,vb,rF,yF]),bF=le({role:Nu,content:bt([Wp,Ge(Wp)]),_meta:Pt(H(),Et()).optional()}),xF=ku.extend({messages:Ge(bF),modelPreferences:gF.optional(),systemPrompt:H().optional(),includeContext:vr(["none","thisServer","allServers"]).optional(),temperature:dt().optional(),maxTokens:dt().int(),stopSequences:Ge(H()).optional(),metadata:sr.optional(),tools:Ge(I1).optional(),toolChoice:vF.optional()}),wb=cr.extend({method:ve("sampling/createMessage"),params:xF}),$b=ur.extend({model:H(),stopReason:Nt(vr(["endTurn","stopSequence","maxTokens"]).or(H())),role:Nu,content:_F}),SF=ur.extend({model:H(),stopReason:Nt(vr(["endTurn","stopSequence","maxTokens","toolUse"]).or(H())),role:Nu,content:bt([Wp,Ge(Wp)])}),wF=le({type:ve("boolean"),title:H().optional(),description:H().optional(),default:Qt().optional()}),$F=le({type:ve("string"),title:H().optional(),description:H().optional(),minLength:dt().optional(),maxLength:dt().optional(),format:vr(["email","uri","date","date-time"]).optional(),default:H().optional()}),EF=le({type:vr(["number","integer"]),title:H().optional(),description:H().optional(),minimum:dt().optional(),maximum:dt().optional(),default:dt().optional()}),kF=le({type:ve("string"),title:H().optional(),description:H().optional(),enum:Ge(H()),default:H().optional()}),TF=le({type:ve("string"),title:H().optional(),description:H().optional(),oneOf:Ge(le({const:H(),title:H()})),default:H().optional()}),IF=le({type:ve("string"),title:H().optional(),description:H().optional(),enum:Ge(H()),enumNames:Ge(H()).optional(),default:H().optional()}),PF=bt([kF,TF]),OF=le({type:ve("array"),title:H().optional(),description:H().optional(),minItems:dt().optional(),maxItems:dt().optional(),items:le({type:ve("string"),enum:Ge(H())}),default:Ge(H()).optional()}),RF=le({type:ve("array"),title:H().optional(),description:H().optional(),minItems:dt().optional(),maxItems:dt().optional(),items:le({anyOf:Ge(le({const:H(),title:H()}))}),default:Ge(H()).optional()}),CF=bt([OF,RF]),NF=bt([IF,PF,CF]),jF=bt([NF,wF,$F,EF]),AF=ku.extend({mode:ve("form").optional(),message:H(),requestedSchema:le({type:ve("object"),properties:Pt(H(),jF),required:Ge(H()).optional()})}),MF=ku.extend({mode:ve("url"),message:H(),elicitationId:H(),url:H().url()}),zF=bt([AF,MF]),Eb=cr.extend({method:ve("elicitation/create"),params:zF}),DF=pn.extend({elicitationId:H()}),UF=fn.extend({method:ve("notifications/elicitation/complete"),params:DF}),kb=ur.extend({action:vr(["accept","decline","cancel"]),content:Gp(t=>t===null?void 0:t,Pt(H(),bt([H(),dt(),Qt(),Ge(H())])).optional())}),qF=le({type:ve("ref/resource"),uri:H()});var LF=le({type:ve("ref/prompt"),name:H()}),FF=an.extend({ref:bt([LF,qF]),argument:le({name:H(),value:H()}),context:le({arguments:Pt(H(),H()).optional()}).optional()}),ZF=cr.extend({method:ve("completion/complete"),params:FF});var Tb=ur.extend({completion:gr({values:Ge(H()).max(100),total:Nt(dt().int()),hasMore:Nt(Qt())})}),HF=le({uri:H().startsWith("file://"),name:H().optional(),_meta:Pt(H(),Et()).optional()}),BF=cr.extend({method:ve("roots/list"),params:an.optional()}),VF=ur.extend({roots:Ge(HF)}),GF=fn.extend({method:ve("notifications/roots/list_changed"),params:pn.optional()}),f_e=bt([Yp,C8,ZF,pF,tF,Q8,L8,F8,H8,V8,W8,lF,cF,ef,rf,nf,of]),m_e=bt([Xp,Qp,j8,GF,Cu]),h_e=bt([Ua,$b,SF,kb,VF,tf,af,qa]),g_e=bt([Yp,wb,Eb,BF,ef,rf,nf,of]),v_e=bt([Xp,Qp,mF,J8,fb,Sb,bb,Cu,UF]),y_e=bt([Ua,sb,Tb,_b,mb,ub,lb,pb,Qo,xb,tf,af,qa]),Se=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===Re.UrlElicitationRequired&&n){let i=n;if(i.elicitations)return new tb(i.elicitations,r)}return new t(e,r,n)}},tb=class extends Se{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(Re.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function ta(t){return t==="completed"||t==="failed"||t==="cancelled"}var Y_e=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Ib(t){let r=Cp(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=pT(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Pb(t,e){let r=An(t,e);if(!r.success)throw r.error;return r.data}var QF=6e4,sf=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(Xp,r=>{this._oncancel(r)}),this.setNotificationHandler(Qp,r=>{this._onprogress(r)}),this.setRequestHandler(Yp,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(ef,async(r,n)=>{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new Se(Re.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(rf,async(r,n)=>{let i=async()=>{let a=r.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(a,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 Se(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 o=await this._taskStore.getTask(a,n.sessionId);if(!o)throw new Se(Re.InvalidParams,`Task not found: ${a}`);if(!ta(o.status))return await this._waitForTaskUpdate(a,n.signal),await i();if(ta(o.status)){let s=await this._taskStore.getTaskResult(a,n.sessionId);return this._clearTaskQueue(a),{...s,_meta:{...s._meta,[ea]:{taskId:a}}}}return await i()};return await i()}),this.setRequestHandler(nf,async(r,n)=>{try{let{tasks:i,nextCursor:a}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:i,nextCursor:a,_meta:{}}}catch(i){throw new Se(Re.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(of,async(r,n)=>{try{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new Se(Re.InvalidParams,`Task not found: ${r.params.taskId}`);if(ta(i.status))throw new Se(Re.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 a=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!a)throw new Se(Re.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...a}}catch(i){throw i instanceof Se?i:new Se(Re.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,a=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:a,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),Se.fromError(Re.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=a=>{n?.(a),this._onerror(a)};let i=this._transport?.onmessage;this._transport.onmessage=(a,o)=>{i?.(a,o),Tu(a)||b1(a)?this._onresponse(a):ib(a)?this._onrequest(a,o):_1(a)?this._onnotification(a):this._onerror(new Error(`Unknown message type: ${JSON.stringify(a)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=Se.fromError(Re.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,a=e.params?._meta?.[ea]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:Re.MethodNotFound,message:"Method not found"}};a&&this._taskMessageQueue?this._enqueueTaskMessage(a,{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 s=g1(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};a&&(d.relatedTask={taskId:a}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{let f={...p,relatedRequestId:e.id};a&&!f.relatedTask&&(f.relatedTask={taskId:a});let h=f.relatedTask?.taskId??a;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(l,d,f)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:a,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(o.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:e.id};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{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:Re.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{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),a=this._progressHandlers.get(i);if(!a){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),s=this._timeoutInfo.get(i);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}a(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Tu(e))n(e);else{let o=new Se(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 a=!1;if(Tu(e)&&e.result&&typeof e.result=="object"){let o=e.result;if(o.task&&typeof o.task=="object"){let s=o.task;typeof s.taskId=="string"&&(a=!0,this._taskProgressTokens.set(s.taskId,r))}}if(a||this._progressHandlers.delete(r),Tu(e))i(e);else{let o=Se.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 Se?o:new Se(Re.InternalError,String(o))}}return}let a;try{let o=await this.request(e,qa,n);if(o.task)a=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new Se(Re.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:a},n);if(yield{type:"taskStatus",task:s},ta(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:a},r,n)}:s.status==="failed"?yield{type:"error",error:new Se(Re.InternalError,`Task ${a} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new Se(Re.InternalError,`Task ${a} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:a},r,n)};return}let c=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof Se?o:new Se(Re.InternalError,String(o))}}}request(e,r,n){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,task:s,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=v=>{l(v)};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(v){d(v);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||{},[ea]:c}});let h=v=>{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(v)}},{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(b=>this._onerror(new Error(`Failed to send cancellation: ${b}`)));let g=v instanceof Se?v:new Se(Re.RequestTimeout,String(v));l(g)};this._responseHandlers.set(p,v=>{if(!n?.signal?.aborted){if(v instanceof Error)return l(v);try{let g=An(r,v.result);g.success?u(g.data):l(g.error)}catch(g){l(g)}}}),n?.signal?.addEventListener("abort",()=>{h(n?.signal?.reason)});let _=n?.timeout??QF,y=()=>h(Se.fromError(Re.RequestTimeout,"Request timed out",{timeout:_}));this._setupTimeout(p,_,n?.maxTotalTimeout,y,n?.resetTimeoutOnProgress??!1);let m=c?.taskId;if(m){let v=g=>{let b=this._responseHandlers.get(p);b?b(g):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,v),this._enqueueTaskMessage(m,{type:"request",message:f,timestamp:Date.now()}).catch(g=>{this._cleanupTimeout(p),l(g)})}else this._transport.send(f,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(v=>{this._cleanupTimeout(p),l(v)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},tf,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},af,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},w1,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||{},[ea]: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||{},[ea]:r.relatedTask}}}),this._transport?.send(s,r).catch(c=>this._onerror(c))});return}let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[ea]:r.relatedTask}}}),await this._transport.send(o,r)}setRequestHandler(e,r){let n=Ib(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,a)=>{let o=Pb(e,i);return Promise.resolve(r(o,a))})}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=Ib(e);this._notificationHandlers.set(n,i=>{let a=Pb(e,i);return Promise.resolve(r(a))})}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"&&ib(i.message)){let a=i.message.id,o=this._requestResolvers.get(a);o?(o(new Se(Re.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(a)):this._onerror(new Error(`Resolver missing for request ${a} 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,a)=>{if(r.aborted){a(new Se(Re.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,n);r.addEventListener("abort",()=>{clearTimeout(o),a(new Se(Re.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 a=await n.getTask(i,r);if(!a)throw new Se(Re.InvalidParams,"Failed to retrieve task: Task not found");return a},storeTaskResult:async(i,a,o)=>{await n.storeTaskResult(i,a,o,r);let s=await n.getTask(i,r);if(s){let c=Cu.parse({method:"notifications/tasks/status",params:s});await this.notification(c),ta(s.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>n.getTaskResult(i,r),updateTaskStatus:async(i,a,o)=>{let s=await n.getTask(i,r);if(!s)throw new Se(Re.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(ta(s.status))throw new Se(Re.InvalidParams,`Cannot update task "${i}" from terminal status "${s.status}" to "${a}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(i,a,o,r);let c=await n.getTask(i,r);if(c){let u=Cu.parse({method:"notifications/tasks/status",params:c});await this.notification(u),ta(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>n.listTasks(i,r)}}};function R1(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function C1(t,e){let r={...t};for(let n in e){let i=n,a=e[i];if(a===void 0)continue;let o=r[i];R1(o)&&R1(a)?r[i]={...o,...a}:r[i]=a}return r}var yO=yt(m0(),1),_O=yt(vO(),1);function ZV(){let t=new yO.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,_O.default)(t),t}var Hf=class{constructor(e){this._ajv=e??ZV()}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 Bf=class{constructor(e){this._client=e}async*callToolStream(e,r=Qo,n){let i=this._client,a={...n,task:n?.task??(i.isToolTask(e.name)?{}:void 0)},o=i.requestStream({method:"tools/call",params:e},r,a),s=i.getToolOutputValidator(e.name);for await(let c of o){if(c.type==="result"&&s){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new Se(Re.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let l=s(u.structuredContent);if(!l.valid){yield{type:"error",error:new Se(Re.InvalidParams,`Structured content does not match the tool's output schema: ${l.errorMessage}`)};return}}catch(l){if(l instanceof Se){yield{type:"error",error:l};return}yield{type:"error",error:new Se(Re.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 bO(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 xO(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 Vf(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 a=n[i];r[i]===void 0&&Object.prototype.hasOwnProperty.call(a,"default")&&(r[i]=a.default),r[i]!==void 0&&Vf(a,r[i])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Vf(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Vf(r,e)}}function HV(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 gs=class extends sf{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 Hf,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Sb,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",bb,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",fb,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Bf(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=C1(this._capabilities,e)}setRequestHandler(e,r){let i=Cp(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let a;if(Ko(i)){let s=i;a=s._zod?.def?.value??s.value}else{let s=i;a=s._def?.value??s.value}if(typeof a!="string")throw new Error("Schema method literal must be a string");let o=a;if(o==="elicitation/create"){let s=async(c,u)=>{let l=An(Eb,c);if(!l.success){let v=l.error instanceof Error?l.error.message:String(l.error);throw new Se(Re.InvalidParams,`Invalid elicitation request: ${v}`)}let{params:d}=l.data;d.mode=d.mode??"form";let{supportsFormMode:p,supportsUrlMode:f}=HV(this._capabilities.elicitation);if(d.mode==="form"&&!p)throw new Se(Re.InvalidParams,"Client does not support form-mode elicitation requests");if(d.mode==="url"&&!f)throw new Se(Re.InvalidParams,"Client does not support URL-mode elicitation requests");let h=await Promise.resolve(r(c,u));if(d.task){let v=An(qa,h);if(!v.success){let g=v.error instanceof Error?v.error.message:String(v.error);throw new Se(Re.InvalidParams,`Invalid task creation result: ${g}`)}return v.data}let _=An(kb,h);if(!_.success){let v=_.error instanceof Error?_.error.message:String(_.error);throw new Se(Re.InvalidParams,`Invalid elicitation result: ${v}`)}let y=_.data,m=d.mode==="form"?d.requestedSchema:void 0;if(d.mode==="form"&&y.action==="accept"&&y.content&&m&&this._capabilities.elicitation?.form?.applyDefaults)try{Vf(m,y.content)}catch{}return y};return super.setRequestHandler(e,s)}if(o==="sampling/createMessage"){let s=async(c,u)=>{let l=An(wb,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new Se(Re.InvalidParams,`Invalid sampling request: ${h}`)}let{params:d}=l.data,p=await Promise.resolve(r(c,u));if(d.task){let h=An(qa,p);if(!h.success){let _=h.error instanceof Error?h.error.message:String(h.error);throw new Se(Re.InvalidParams,`Invalid task creation result: ${_}`)}return h.data}let f=An($b,p);if(!f.success){let h=f.error instanceof Error?f.error.message:String(f.error);throw new Se(Re.InvalidParams,`Invalid sampling result: ${h}`)}return f.data};return super.setRequestHandler(e,s)}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:rb,capabilities:this._capabilities,clientInfo:this._clientInfo}},sb,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!f1.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){bO(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&xO(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},Ua,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},Tb,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},Ua,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},_b,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},mb,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},ub,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},lb,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},pb,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},Ua,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},Ua,r)}async callTool(e,r=Qo,n){if(this.isToolTaskRequired(e.name))throw new Se(Re.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),a=this.getToolOutputValidator(e.name);if(a){if(!i.structuredContent&&!i.isError)throw new Se(Re.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(i.structuredContent)try{let o=a(i.structuredContent);if(!o.valid)throw new Se(Re.InvalidParams,`Structured content does not match the tool's output schema: ${o.errorMessage}`)}catch(o){throw o instanceof Se?o:new Se(Re.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},xb,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,i){let a=P1.safeParse(n);if(!a.success)throw new Error(`Invalid ${e} listChanged options: ${a.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:o,debounceMs:s}=a.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(s){let d=this._listChangedDebounceTimers.get(e);d&&clearTimeout(d);let p=setTimeout(u,s);this._listChangedDebounceTimers.set(e,p)}else u()};this.setNotificationHandler(r,l)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var dR=yt(uR(),1),ll=yt(require("node:process"),1),pR=require("node:stream");var Wf=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),v7(r)}clear(){this._buffer=void 0}};function v7(t){return x1.parse(JSON.parse(t))}function lR(t){return JSON.stringify(t)+` -`}var y7=ll.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function _7(){let t={};for(let e of y7){let r=ll.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var _s=class{constructor(e){this._readBuffer=new Wf,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new pR.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,dR.default)(this._serverParams.command,this._serverParams.args??[],{env:{..._7(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:ll.default.platform==="win32"&&b7(),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=lR(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};function b7(){return"type"in ll.default}var Jf=yt(require("path"),1),xR=require("os");Ae();var N0={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function hR(t){return process.platform==="win32"?Math.round(t*N0.WINDOWS_MULTIPLIER):t}yn();var Qwe=Jf.default.join((0,xR.homedir)(),".claude","plugins","marketplaces","thedotmack"),e$e=hR(N0.HEALTH_CHECK),pl=null,fl=null;function Ln(){if(pl!==null)return pl;let t=Jf.default.join(nt.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=nt.loadFromFile(t);return pl=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),pl}function SR(){if(fl!==null)return fl;let t=Jf.default.join(nt.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return fl=nt.loadFromFile(t).CLAUDE_MEM_WORKER_HOST,fl}function wR(){pl=null,fl=null}Ae();var j0=yt(require("path"),1),$R=require("os"),Fn=require("fs"),bs=require("child_process"),ER=require("util");Ae();var Xf=(0,ER.promisify)(bs.exec),kR=j0.default.join((0,$R.homedir)(),".claude-mem"),Xa=j0.default.join(kR,"worker.pid");function A0(t){(0,Fn.mkdirSync)(kR,{recursive:!0}),(0,Fn.writeFileSync)(Xa,JSON.stringify(t,null,2))}function TR(){if(!(0,Fn.existsSync)(Xa))return null;try{return JSON.parse((0,Fn.readFileSync)(Xa,"utf-8"))}catch(t){return T.warn("SYSTEM","Failed to parse PID file",{path:Xa},t),null}}function Ai(){if((0,Fn.existsSync)(Xa))try{(0,Fn.unlinkSync)(Xa)}catch(t){T.warn("SYSTEM","Failed to remove PID file",{path:Xa},t)}}function Ya(t){return process.platform==="win32"?Math.round(t*2):t}async function IR(t){if(process.platform!=="win32")return[];if(!Number.isInteger(t)||t<=0)return T.warn("SYSTEM","Invalid parent PID for child process enumeration",{parentPid:t}),[];try{let e=`wmic process where "parentprocessid=${t}" get processid /format:list`,{stdout:r}=await Xf(e,{timeout:6e4});return r.trim().split(` -`).map(n=>{let i=n.match(/ProcessId=(\d+)/i);return i?parseInt(i[1],10):NaN}).filter(n=>!isNaN(n)&&Number.isInteger(n)&&n>0)}catch(e){return T.warn("SYSTEM","Failed to enumerate child processes",{parentPid:t},e),[]}}async function PR(t){if(!Number.isInteger(t)||t<=0){T.warn("SYSTEM","Invalid PID for force kill",{pid:t});return}try{process.platform==="win32"?await Xf(`taskkill /PID ${t} /T /F`,{timeout:6e4}):process.kill(t,"SIGKILL"),T.info("SYSTEM","Killed process",{pid:t})}catch(e){T.debug("SYSTEM","Process already exited during force kill",{pid:t},e)}}async function OR(t,e){let r=Date.now();for(;Date.now()-r{try{return process.kill(i,0),!0}catch{return!1}});if(n.length===0){T.info("SYSTEM","All child processes exited");return}T.debug("SYSTEM","Waiting for processes to exit",{stillAlive:n}),await new Promise(i=>setTimeout(i,100))}T.warn("SYSTEM","Timeout waiting for child processes to exit")}async function RR(){let t=process.platform==="win32",e=[];try{if(t){let r=`wmic process where "name like '%python%' and commandline like '%chroma-mcp%'" get processid /format:list`,{stdout:n}=await Xf(r,{timeout:6e4});if(!n.trim()){T.debug("SYSTEM","No orphaned chroma-mcp processes found (Windows)");return}let i=n.trim().split(` -`);for(let a of i){let o=a.match(/ProcessId=(\d+)/i);if(o){let s=parseInt(o[1],10);!isNaN(s)&&Number.isInteger(s)&&s>0&&e.push(s)}}}else{let{stdout:r}=await Xf('ps aux | grep "chroma-mcp" | grep -v grep || true');if(!r.trim()){T.debug("SYSTEM","No orphaned chroma-mcp processes found (Unix)");return}let n=r.trim().split(` -`);for(let i of n){let a=i.trim().split(/\s+/);if(a.length>1){let o=parseInt(a[1],10);!isNaN(o)&&Number.isInteger(o)&&o>0&&e.push(o)}}}}catch(r){T.warn("SYSTEM","Failed to enumerate orphaned processes",{},r);return}if(e.length!==0){if(T.info("SYSTEM","Cleaning up orphaned chroma-mcp processes",{platform:t?"Windows":"Unix",count:e.length,pids:e}),t)for(let r of e){if(!Number.isInteger(r)||r<=0){T.warn("SYSTEM","Skipping invalid PID",{pid:r});continue}try{(0,bs.execSync)(`taskkill /PID ${r} /T /F`,{timeout:6e4,stdio:"ignore"})}catch(n){T.debug("SYSTEM","Failed to kill process, may have already exited",{pid:r},n)}}else for(let r of e)try{process.kill(r,"SIGKILL")}catch(n){T.debug("SYSTEM","Process already exited",{pid:r},n)}T.info("SYSTEM","Orphaned processes cleaned up",{count:e.length})}}function M0(t,e,r={}){let n=(0,bs.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(e),...r}});if(n.pid!==void 0)return n.unref(),n.pid}function CR(t,e){return async r=>{if(e.value){T.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}e.value=!0,T.info("SYSTEM",`Received ${r}, shutting down...`);try{await t(),process.exit(0)}catch(n){T.error("SYSTEM","Error during shutdown",{},n),process.exit(1)}}}var z0=yt(require("path"),1),NR=require("os"),jR=require("fs");Ae();async function Yf(t){try{return(await fetch(`http://127.0.0.1:${t}/api/health`)).ok}catch{return!1}}async function ml(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Qf(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function em(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(T.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(T.debug("SYSTEM","Worker already stopped",{port:t},e),!1):(T.warn("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}function x7(){let t=z0.default.join((0,NR.homedir)(),".claude","plugins","marketplaces","thedotmack"),e=z0.default.join(t,"package.json");return JSON.parse((0,jR.readFileSync)(e,"utf-8")).version}async function S7(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/version`);return e.ok?(await e.json()).version:null}catch{return T.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function AR(t){let e=x7(),r=await S7(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}Ae();async function MR(t){T.info("SYSTEM","Shutdown initiated"),Ai();let e=await IR(process.pid);if(T.info("SYSTEM","Found child processes",{count:e.length,pids:e}),t.server&&(await w7(t.server),T.info("SYSTEM","HTTP server closed")),await t.sessionManager.shutdownAll(),t.mcpClient&&(await t.mcpClient.close(),T.info("SYSTEM","MCP client closed")),t.dbManager&&await t.dbManager.close(),e.length>0){T.info("SYSTEM","Force killing remaining children");for(let r of e)await PR(r);await OR(e,5e3)}T.info("SYSTEM","Worker shutdown complete")}async function w7(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)),T.info("SYSTEM","Waited for Windows port cleanup"))}var t4=yt(ch(),1),Bw=yt(require("fs"),1),Vw=yt(require("path"),1);Ae();var Fw=yt(ch(),1),JD=yt(qD(),1),XD=yt(require("path"),1);sn();Ae();function Zw(t){let e=[];e.push(Fw.default.json({limit:"50mb"})),e.push((0,JD.default)()),e.push((i,a,o)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(h=>i.path.endsWith(h)),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);T.info("HTTP",`\u2192 ${i.method} ${i.path}`,{requestId:d},p);let f=a.send.bind(a);a.send=function(h){let _=Date.now()-l;return T.info("HTTP",`\u2190 ${a.statusCode} ${i.path}`,{requestId:d,duration:`${_}ms`}),f(h)},o()});let r=Gr(),n=XD.default.join(r,"plugin","ui");return e.push(Fw.default.static(n)),e}function uh(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")){T.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 Hw(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=${T.formatTool(n,i)}`}return e.includes("/summarize")?"requesting summary":""}Ae();var Gs=class extends Error{constructor(r,n=500,i,a){super(r);this.statusCode=n;this.code=i;this.details=a;this.name="AppError"}};function YD(t,e,r,n){let i={error:t,message:e};return r&&(i.code=r),n&&(i.details=n),i}var QD=(t,e,r,n)=>{let i=t instanceof Gs?t.statusCode:500;T.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:i,error:t.message,code:t instanceof Gs?t.code:void 0},t);let a=YD(t.name||"Error",t.message,t instanceof Gs?t.code:void 0,t instanceof Gs?t.details:void 0);r.status(i).json(a)};function e4(t,e){e.status(404).json(YD("NotFound",`Cannot ${t.method} ${t.path}`))}var zre="8.5.10",lh=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,t4.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,()=>{T.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,T.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(e4),this.app.use(QD)}setupMiddleware(){Zw(Hw).forEach(r=>this.app.use(r))}setupCoreRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,n)=>{n.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_MEM_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),mcpReady:this.options.getMcpReady()})}),this.app.get("/api/readiness",(r,n)=>{this.options.getInitializationComplete()?n.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):n.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,n)=>{n.status(200).json({version:zre})}),this.app.get("/api/instructions",async(r,n)=>{let i=r.query.topic||"all",a=r.query.operation;try{let o;if(a){let s=Vw.default.join(__dirname,"../skills/mem-search/operations",`${a}.md`);o=await Bw.promises.readFile(s,"utf-8")}else{let s=Vw.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await Bw.promises.readFile(s,"utf-8");o=this.extractInstructionSection(c,i)}n.json({content:[{type:"text",text:o}]})}catch{n.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",uh,async(r,n)=>{n.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(T.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.options.onRestart()},100)}),this.app.post("/api/admin/shutdown",uh,async(r,n)=>{n.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(T.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.options.onShutdown()},100)})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let i=e.indexOf(r),a=e.indexOf(n);return i===-1?e:a===-1?e.substring(i):e.substring(i,a).trim()}};var ct=yt(require("path"),1),Ql=require("os"),Mt=require("fs"),i4=require("child_process"),a4=require("util");Ae();var $n=require("fs"),Yl=require("path");Ae();function r4(t){try{return(0,$n.existsSync)(t)?JSON.parse((0,$n.readFileSync)(t,"utf-8")):{}}catch(e){return T.warn("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function n4(t,e){let r=(0,Yl.join)(t,"..");(0,$n.mkdirSync)(r,{recursive:!0}),(0,$n.writeFileSync)(t,JSON.stringify(e,null,2))}function Gw(t,e){let r=(0,Yl.join)(t,".cursor","rules"),n=(0,Yl.join)(r,"claude-mem-context.mdc"),i=`${n}.tmp`;(0,$n.mkdirSync)(r,{recursive:!0});let a=`--- +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let o of t.seen.entries()){let s=o[1];if(e===o[0]){a(o);continue}if(t.external){let u=t.external.registry.get(o[0])?.id;if(e!==o[0]&&u){a(o);continue}}if(t.metadataRegistry.get(o[0])?.id){a(o);continue}if(s.cycle){a(o);continue}if(s.count>1&&t.reused==="ref"){a(o);continue}}}function Np(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 s=t.seen.get(o);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),o._zod.parent===l)for(let _ in c)_==="$ref"||_==="allOf"||_ in u||delete c[_];if(f.$ref)for(let _ in c)_==="$ref"||_==="allOf"||_ in p.def&&JSON.stringify(c[_])===JSON.stringify(p.def[_])&&delete c[_]}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:s.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 a=t.external?.defs??{};for(let o of t.seen.entries()){let s=o[1];s.def&&s.defId&&(a[s.defId]=s.def)}t.external||Object.keys(a).length>0&&(t.target==="draft-2020-12"?i.$defs=a:i.definitions=a);try{let o=JSON.parse(JSON.stringify(i));return Object.defineProperty(o,"~standard",{value:{...e["~standard"],jsonSchema:{input:$u(e,"input",t.processors),output:$u(e,"output",t.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function Ir(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Ir(n.element,r);if(n.type==="set")return Ir(n.valueType,r);if(n.type==="lazy")return Ir(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 Ir(n.innerType,r);if(n.type==="intersection")return Ir(n.left,r)||Ir(n.right,r);if(n.type==="record"||n.type==="map")return Ir(n.keyType,r)||Ir(n.valueType,r);if(n.type==="pipe")return Ir(n.in,r)||Ir(n.out,r);if(n.type==="object"){for(let i in n.shape)if(Ir(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(let i of n.options)if(Ir(i,r))return!0;return!1}if(n.type==="tuple"){for(let i of n.items)if(Ir(i,r))return!0;return!!(n.rest&&Ir(n.rest,r))}return!1}var Tk=(t,e={})=>r=>{let n=Op({...r,processors:e});return It(t,n),Cp(n,t),Np(n,t)},$u=(t,e,r={})=>n=>{let{libraryOptions:i,target:a}=n??{},o=Op({...i??{},target:a,io:e,processors:r});return It(t,o),Cp(o,t),Np(o,t)};var e9={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Ik=(t,e,r,n)=>{let i=r;i.type="string";let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof a=="number"&&(i.minLength=a),typeof o=="number"&&(i.maxLength=o),s&&(i.format=e9[s]??s,i.format===""&&delete i.format,s==="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}))])}},Pk=(t,e,r,n)=>{let i=r,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=t._zod.bag;typeof s=="string"&&s.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 a=="number"&&(i.minimum=a,typeof l=="number"&&e.target!=="draft-04"&&(l>=a?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)},Rk=(t,e,r,n)=>{r.type="boolean"},Ok=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},Ck=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},Nk=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},jk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Ak=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Mk=(t,e,r,n)=>{r.not={}},Dk=(t,e,r,n)=>{},zk=(t,e,r,n)=>{},Uk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},qk=(t,e,r,n)=>{let i=t._zod.def,a=Vc(i.entries);a.every(o=>typeof o=="number")&&(r.type="number"),a.every(o=>typeof o=="string")&&(r.type="string"),r.enum=a},Lk=(t,e,r,n)=>{let i=t._zod.def,a=[];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");a.push(Number(o))}else a.push(o);if(a.length!==0)if(a.length===1){let o=a[0];r.type=o===null?"null":typeof o,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[o]:r.const=o}else a.every(o=>typeof o=="number")&&(r.type="number"),a.every(o=>typeof o=="string")&&(r.type="string"),a.every(o=>typeof o=="boolean")&&(r.type="boolean"),a.every(o=>o===null)&&(r.type="null"),r.enum=a},Fk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Zk=(t,e,r,n)=>{let i=r,a=t._zod.pattern;if(!a)throw new Error("Pattern not found in template literal");i.type="string",i.pattern=a.source},Hk=(t,e,r,n)=>{let i=r,a={type:"string",format:"binary",contentEncoding:"binary"},{minimum:o,maximum:s,mime:c}=t._zod.bag;o!==void 0&&(a.minLength=o),s!==void 0&&(a.maxLength=s),c?c.length===1?(a.contentMediaType=c[0],Object.assign(i,a)):(Object.assign(i,a),i.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(i,a)},Bk=(t,e,r,n)=>{r.type="boolean"},Vk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Gk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Wk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Kk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Jk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Xk=(t,e,r,n)=>{let i=r,a=t._zod.def,{minimum:o,maximum:s}=t._zod.bag;typeof o=="number"&&(i.minItems=o),typeof s=="number"&&(i.maxItems=s),i.type="array",i.items=It(a.element,e,{...n,path:[...n.path,"items"]})},Yk=(t,e,r,n)=>{let i=r,a=t._zod.def;i.type="object",i.properties={};let o=a.shape;for(let u in o)i.properties[u]=It(o[u],e,{...n,path:[...n.path,"properties",u]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(u=>{let l=a.shape[u]._zod;return e.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type==="never"?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=It(a.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},__=(t,e,r,n)=>{let i=t._zod.def,a=i.inclusive===!1,o=i.options.map((s,c)=>It(s,e,{...n,path:[...n.path,a?"oneOf":"anyOf",c]}));a?r.oneOf=o:r.anyOf=o},Qk=(t,e,r,n)=>{let i=t._zod.def,a=It(i.left,e,{...n,path:[...n.path,"allOf",0]}),o=It(i.right,e,{...n,path:[...n.path,"allOf",1]}),s=u=>"allOf"in u&&Object.keys(u).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];r.allOf=c},eT=(t,e,r,n)=>{let i=r,a=t._zod.def;i.type="array";let o=e.target==="draft-2020-12"?"prefixItems":"items",s=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",c=a.items.map((p,f)=>It(p,e,{...n,path:[...n.path,o,f]})),u=a.rest?It(a.rest,e,{...n,path:[...n.path,s,...e.target==="openapi-3.0"?[a.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)},tT=(t,e,r,n)=>{let i=r,a=t._zod.def;i.type="object";let o=a.keyType,c=o._zod.bag?.patterns;if(a.mode==="loose"&&c&&c.size>0){let l=It(a.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=It(a.keyType,e,{...n,path:[...n.path,"propertyNames"]})),i.additionalProperties=It(a.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)}},rT=(t,e,r,n)=>{let i=t._zod.def,a=It(i.innerType,e,n),o=e.seen.get(t);e.target==="openapi-3.0"?(o.ref=i.innerType,r.nullable=!0):r.anyOf=[a,{type:"null"}]},nT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType},iT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType,r.default=JSON.parse(JSON.stringify(i.defaultValue))},aT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},oT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.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},sT=(t,e,r,n)=>{let i=t._zod.def,a=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;It(a,e,n);let o=e.seen.get(t);o.ref=a},cT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType,r.readOnly=!0},uT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType},b_=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType},lT=(t,e,r,n)=>{let i=t._zod.innerType;It(i,e,n);let a=e.seen.get(t);a.ref=i};function Jo(t){return!!t._zod}function Mn(t,e){return Jo(t)?Bo(t,e):t.safeParse(e)}function jp(t){if(!t)return;let e;if(Jo(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function mT(t){if(Jo(t)){let a=t._zod?.def;if(a){if(a.value!==void 0)return a.value;if(Array.isArray(a.values)&&a.values.length>0)return a.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 Eu={};Cn(Eu,{ZodAny:()=>CT,ZodArray:()=>MT,ZodBase64:()=>H_,ZodBase64URL:()=>B_,ZodBigInt:()=>Zp,ZodBigIntFormat:()=>W_,ZodBoolean:()=>Fp,ZodCIDRv4:()=>F_,ZodCIDRv6:()=>Z_,ZodCUID:()=>A_,ZodCUID2:()=>M_,ZodCatch:()=>r1,ZodCodec:()=>tb,ZodCustom:()=>Wp,ZodCustomStringFormat:()=>Tu,ZodDate:()=>J_,ZodDefault:()=>JT,ZodDiscriminatedUnion:()=>zT,ZodE164:()=>V_,ZodEmail:()=>C_,ZodEmoji:()=>N_,ZodEnum:()=>ku,ZodExactOptional:()=>GT,ZodFile:()=>BT,ZodFunction:()=>d1,ZodGUID:()=>Mp,ZodIPv4:()=>q_,ZodIPv6:()=>L_,ZodIntersection:()=>UT,ZodJWT:()=>G_,ZodKSUID:()=>U_,ZodLazy:()=>c1,ZodLiteral:()=>HT,ZodMAC:()=>IT,ZodMap:()=>FT,ZodNaN:()=>i1,ZodNanoID:()=>j_,ZodNever:()=>jT,ZodNonOptional:()=>Q_,ZodNull:()=>OT,ZodNullable:()=>KT,ZodNumber:()=>Lp,ZodNumberFormat:()=>Xo,ZodObject:()=>Hp,ZodOptional:()=>Y_,ZodPipe:()=>eb,ZodPrefault:()=>YT,ZodPromise:()=>l1,ZodReadonly:()=>a1,ZodRecord:()=>Gp,ZodSet:()=>ZT,ZodString:()=>Up,ZodStringFormat:()=>$t,ZodSuccess:()=>t1,ZodSymbol:()=>PT,ZodTemplateLiteral:()=>s1,ZodTransform:()=>VT,ZodTuple:()=>qT,ZodType:()=>ze,ZodULID:()=>D_,ZodURL:()=>qp,ZodUUID:()=>Ti,ZodUndefined:()=>RT,ZodUnion:()=>Bp,ZodUnknown:()=>NT,ZodVoid:()=>AT,ZodXID:()=>z_,ZodXor:()=>DT,_ZodString:()=>O_,_default:()=>XT,_function:()=>y8,any:()=>e8,array:()=>We,base64:()=>D9,base64url:()=>z9,bigint:()=>K9,boolean:()=>Qt,catch:()=>n1,check:()=>_8,cidrv4:()=>A9,cidrv6:()=>M9,codec:()=>h8,cuid:()=>T9,cuid2:()=>I9,custom:()=>rb,date:()=>r8,describe:()=>b8,discriminatedUnion:()=>Vp,e164:()=>U9,email:()=>v9,emoji:()=>E9,enum:()=>vr,exactOptional:()=>WT,file:()=>d8,float32:()=>B9,float64:()=>V9,function:()=>y8,guid:()=>y9,hash:()=>H9,hex:()=>Z9,hostname:()=>F9,httpUrl:()=>$9,instanceof:()=>S8,int:()=>R_,int32:()=>G9,int64:()=>J9,intersection:()=>Pu,ipv4:()=>C9,ipv6:()=>j9,json:()=>$8,jwt:()=>q9,keyof:()=>n8,ksuid:()=>O9,lazy:()=>u1,literal:()=>ve,looseObject:()=>gr,looseRecord:()=>s8,mac:()=>N9,map:()=>c8,meta:()=>x8,nan:()=>m8,nanoid:()=>k9,nativeEnum:()=>l8,never:()=>K_,nonoptional:()=>e1,null:()=>Iu,nullable:()=>Dp,nullish:()=>p8,number:()=>pt,object:()=>le,optional:()=>Nt,partialRecord:()=>o8,pipe:()=>zp,prefault:()=>QT,preprocess:()=>Kp,promise:()=>v8,readonly:()=>o1,record:()=>Pt,refine:()=>p1,set:()=>u8,strictObject:()=>i8,string:()=>H,stringFormat:()=>L9,stringbool:()=>w8,success:()=>f8,superRefine:()=>f1,symbol:()=>Y9,templateLiteral:()=>g8,transform:()=>X_,tuple:()=>LT,uint32:()=>W9,uint64:()=>X9,ulid:()=>P9,undefined:()=>Q9,union:()=>bt,unknown:()=>Et,url:()=>w9,uuid:()=>_9,uuidv4:()=>b9,uuidv6:()=>x9,uuidv7:()=>S9,void:()=>t8,xid:()=>R9,xor:()=>a8});var Ap={};Cn(Ap,{endsWith:()=>yu,gt:()=>Ei,gte:()=>Tr,includes:()=>gu,length:()=>Wo,lowercase:()=>mu,lt:()=>$i,lte:()=>nn,maxLength:()=>Go,maxSize:()=>Ma,mime:()=>_u,minLength:()=>Yi,minSize:()=>ki,multipleOf:()=>Aa,negative:()=>c_,nonnegative:()=>l_,nonpositive:()=>u_,normalize:()=>bu,overwrite:()=>ri,positive:()=>s_,property:()=>d_,regex:()=>fu,size:()=>Vo,slugify:()=>Rp,startsWith:()=>vu,toLowerCase:()=>Su,toUpperCase:()=>wu,trim:()=>xu,uppercase:()=>hu});var Da={};Cn(Da,{ZodISODate:()=>$_,ZodISODateTime:()=>S_,ZodISODuration:()=>I_,ZodISOTime:()=>k_,date:()=>E_,datetime:()=>w_,duration:()=>P_,time:()=>T_});var S_=L("ZodISODateTime",(t,e)=>{Mv.init(t,e),$t.init(t,e)});function w_(t){return zy(S_,t)}var $_=L("ZodISODate",(t,e)=>{Dv.init(t,e),$t.init(t,e)});function E_(t){return Uy($_,t)}var k_=L("ZodISOTime",(t,e)=>{zv.init(t,e),$t.init(t,e)});function T_(t){return qy(k_,t)}var I_=L("ZodISODuration",(t,e)=>{Uv.init(t,e),$t.init(t,e)});function P_(t){return Ly(I_,t)}var hT=(t,e)=>{Kd.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Xd(t,r)},flatten:{value:r=>Jd(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,Fo,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,Fo,2)}},isEmpty:{get(){return t.issues.length===0}}})},Vye=L("ZodError",hT),an=L("ZodError",hT,{Parent:Error});var gT=Yc(an),vT=eu(an),yT=ru(an),_T=nu(an),bT=RE(an),xT=OE(an),ST=CE(an),wT=NE(an),$T=jE(an),ET=AE(an),kT=ME(an),TT=DE(an);var ze=L("ZodType",(t,e)=>(Ae.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:$u(t,"input"),output:$u(t,"output")}}),t.toJSONSchema=Tk(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone(ee.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)=>Er(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>gT(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>yT(t,r,n),t.parseAsync=async(r,n)=>vT(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>_T(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>bT(t,r,n),t.decode=(r,n)=>xT(t,r,n),t.encodeAsync=async(r,n)=>ST(t,r,n),t.decodeAsync=async(r,n)=>wT(t,r,n),t.safeEncode=(r,n)=>$T(t,r,n),t.safeDecode=(r,n)=>ET(t,r,n),t.safeEncodeAsync=async(r,n)=>kT(t,r,n),t.safeDecodeAsync=async(r,n)=>TT(t,r,n),t.refine=(r,n)=>t.check(p1(r,n)),t.superRefine=r=>t.check(f1(r)),t.overwrite=r=>t.check(ri(r)),t.optional=()=>Nt(t),t.exactOptional=()=>WT(t),t.nullable=()=>Dp(t),t.nullish=()=>Nt(Dp(t)),t.nonoptional=r=>e1(t,r),t.array=()=>We(t),t.or=r=>bt([t,r]),t.and=r=>Pu(t,r),t.transform=r=>zp(t,X_(r)),t.default=r=>XT(t,r),t.prefault=r=>QT(t,r),t.catch=r=>n1(t,r),t.pipe=r=>zp(t,r),t.readonly=()=>o1(t),t.describe=r=>{let n=t.clone();return kr.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return kr.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return kr.get(t);let n=t.clone();return kr.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=r=>r(t),t)),O_=L("_ZodString",(t,e)=>{ja.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Ik(t,n,i,a);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(fu(...n)),t.includes=(...n)=>t.check(gu(...n)),t.startsWith=(...n)=>t.check(vu(...n)),t.endsWith=(...n)=>t.check(yu(...n)),t.min=(...n)=>t.check(Yi(...n)),t.max=(...n)=>t.check(Go(...n)),t.length=(...n)=>t.check(Wo(...n)),t.nonempty=(...n)=>t.check(Yi(1,...n)),t.lowercase=n=>t.check(mu(n)),t.uppercase=n=>t.check(hu(n)),t.trim=()=>t.check(xu()),t.normalize=(...n)=>t.check(bu(...n)),t.toLowerCase=()=>t.check(Su()),t.toUpperCase=()=>t.check(wu()),t.slugify=()=>t.check(Rp())}),Up=L("ZodString",(t,e)=>{ja.init(t,e),O_.init(t,e),t.email=r=>t.check(lp(C_,r)),t.url=r=>t.check(pu(qp,r)),t.jwt=r=>t.check(Pp(G_,r)),t.emoji=r=>t.check(hp(N_,r)),t.guid=r=>t.check(du(Mp,r)),t.uuid=r=>t.check(dp(Ti,r)),t.uuidv4=r=>t.check(pp(Ti,r)),t.uuidv6=r=>t.check(fp(Ti,r)),t.uuidv7=r=>t.check(mp(Ti,r)),t.nanoid=r=>t.check(gp(j_,r)),t.guid=r=>t.check(du(Mp,r)),t.cuid=r=>t.check(vp(A_,r)),t.cuid2=r=>t.check(yp(M_,r)),t.ulid=r=>t.check(_p(D_,r)),t.base64=r=>t.check(kp(H_,r)),t.base64url=r=>t.check(Tp(B_,r)),t.xid=r=>t.check(bp(z_,r)),t.ksuid=r=>t.check(xp(U_,r)),t.ipv4=r=>t.check(Sp(q_,r)),t.ipv6=r=>t.check(wp(L_,r)),t.cidrv4=r=>t.check($p(F_,r)),t.cidrv6=r=>t.check(Ep(Z_,r)),t.e164=r=>t.check(Ip(V_,r)),t.datetime=r=>t.check(w_(r)),t.date=r=>t.check(E_(r)),t.time=r=>t.check(T_(r)),t.duration=r=>t.check(P_(r))});function H(t){return My(Up,t)}var $t=L("ZodStringFormat",(t,e)=>{_t.init(t,e),O_.init(t,e)}),C_=L("ZodEmail",(t,e)=>{Tv.init(t,e),$t.init(t,e)});function v9(t){return lp(C_,t)}var Mp=L("ZodGUID",(t,e)=>{Ev.init(t,e),$t.init(t,e)});function y9(t){return du(Mp,t)}var Ti=L("ZodUUID",(t,e)=>{kv.init(t,e),$t.init(t,e)});function _9(t){return dp(Ti,t)}function b9(t){return pp(Ti,t)}function x9(t){return fp(Ti,t)}function S9(t){return mp(Ti,t)}var qp=L("ZodURL",(t,e)=>{Iv.init(t,e),$t.init(t,e)});function w9(t){return pu(qp,t)}function $9(t){return pu(qp,{protocol:/^https?$/,hostname:pn.domain,...ee.normalizeParams(t)})}var N_=L("ZodEmoji",(t,e)=>{Pv.init(t,e),$t.init(t,e)});function E9(t){return hp(N_,t)}var j_=L("ZodNanoID",(t,e)=>{Rv.init(t,e),$t.init(t,e)});function k9(t){return gp(j_,t)}var A_=L("ZodCUID",(t,e)=>{Ov.init(t,e),$t.init(t,e)});function T9(t){return vp(A_,t)}var M_=L("ZodCUID2",(t,e)=>{Cv.init(t,e),$t.init(t,e)});function I9(t){return yp(M_,t)}var D_=L("ZodULID",(t,e)=>{Nv.init(t,e),$t.init(t,e)});function P9(t){return _p(D_,t)}var z_=L("ZodXID",(t,e)=>{jv.init(t,e),$t.init(t,e)});function R9(t){return bp(z_,t)}var U_=L("ZodKSUID",(t,e)=>{Av.init(t,e),$t.init(t,e)});function O9(t){return xp(U_,t)}var q_=L("ZodIPv4",(t,e)=>{qv.init(t,e),$t.init(t,e)});function C9(t){return Sp(q_,t)}var IT=L("ZodMAC",(t,e)=>{Fv.init(t,e),$t.init(t,e)});function N9(t){return Dy(IT,t)}var L_=L("ZodIPv6",(t,e)=>{Lv.init(t,e),$t.init(t,e)});function j9(t){return wp(L_,t)}var F_=L("ZodCIDRv4",(t,e)=>{Zv.init(t,e),$t.init(t,e)});function A9(t){return $p(F_,t)}var Z_=L("ZodCIDRv6",(t,e)=>{Hv.init(t,e),$t.init(t,e)});function M9(t){return Ep(Z_,t)}var H_=L("ZodBase64",(t,e)=>{Bv.init(t,e),$t.init(t,e)});function D9(t){return kp(H_,t)}var B_=L("ZodBase64URL",(t,e)=>{Vv.init(t,e),$t.init(t,e)});function z9(t){return Tp(B_,t)}var V_=L("ZodE164",(t,e)=>{Gv.init(t,e),$t.init(t,e)});function U9(t){return Ip(V_,t)}var G_=L("ZodJWT",(t,e)=>{Wv.init(t,e),$t.init(t,e)});function q9(t){return Pp(G_,t)}var Tu=L("ZodCustomStringFormat",(t,e)=>{Kv.init(t,e),$t.init(t,e)});function L9(t,e,r={}){return Ko(Tu,t,e,r)}function F9(t){return Ko(Tu,"hostname",pn.hostname,t)}function Z9(t){return Ko(Tu,"hex",pn.hex,t)}function H9(t,e){let r=e?.enc??"hex",n=`${t}_${r}`,i=pn[n];if(!i)throw new Error(`Unrecognized hash format: ${n}`);return Ko(Tu,n,i,e)}var Lp=L("ZodNumber",(t,e)=>{op.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Pk(t,n,i,a),t.gt=(n,i)=>t.check(Ei(n,i)),t.gte=(n,i)=>t.check(Tr(n,i)),t.min=(n,i)=>t.check(Tr(n,i)),t.lt=(n,i)=>t.check($i(n,i)),t.lte=(n,i)=>t.check(nn(n,i)),t.max=(n,i)=>t.check(nn(n,i)),t.int=n=>t.check(R_(n)),t.safe=n=>t.check(R_(n)),t.positive=n=>t.check(Ei(0,n)),t.nonnegative=n=>t.check(Tr(0,n)),t.negative=n=>t.check($i(0,n)),t.nonpositive=n=>t.check(nn(0,n)),t.multipleOf=(n,i)=>t.check(Aa(n,i)),t.step=(n,i)=>t.check(Aa(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 pt(t){return Fy(Lp,t)}var Xo=L("ZodNumberFormat",(t,e)=>{Jv.init(t,e),Lp.init(t,e)});function R_(t){return Zy(Xo,t)}function B9(t){return Hy(Xo,t)}function V9(t){return By(Xo,t)}function G9(t){return Vy(Xo,t)}function W9(t){return Gy(Xo,t)}var Fp=L("ZodBoolean",(t,e)=>{cu.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Rk(t,r,n,i)});function Qt(t){return Wy(Fp,t)}var Zp=L("ZodBigInt",(t,e)=>{sp.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Ok(t,n,i,a),t.gte=(n,i)=>t.check(Tr(n,i)),t.min=(n,i)=>t.check(Tr(n,i)),t.gt=(n,i)=>t.check(Ei(n,i)),t.gte=(n,i)=>t.check(Tr(n,i)),t.min=(n,i)=>t.check(Tr(n,i)),t.lt=(n,i)=>t.check($i(n,i)),t.lte=(n,i)=>t.check(nn(n,i)),t.max=(n,i)=>t.check(nn(n,i)),t.positive=n=>t.check(Ei(BigInt(0),n)),t.negative=n=>t.check($i(BigInt(0),n)),t.nonpositive=n=>t.check(nn(BigInt(0),n)),t.nonnegative=n=>t.check(Tr(BigInt(0),n)),t.multipleOf=(n,i)=>t.check(Aa(n,i));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function K9(t){return Ky(Zp,t)}var W_=L("ZodBigIntFormat",(t,e)=>{Xv.init(t,e),Zp.init(t,e)});function J9(t){return Jy(W_,t)}function X9(t){return Xy(W_,t)}var PT=L("ZodSymbol",(t,e)=>{Yv.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Ck(t,r,n,i)});function Y9(t){return Yy(PT,t)}var RT=L("ZodUndefined",(t,e)=>{Qv.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>jk(t,r,n,i)});function Q9(t){return Qy(RT,t)}var OT=L("ZodNull",(t,e)=>{ey.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Nk(t,r,n,i)});function Iu(t){return e_(OT,t)}var CT=L("ZodAny",(t,e)=>{ty.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Dk(t,r,n,i)});function e8(){return t_(CT)}var NT=L("ZodUnknown",(t,e)=>{ry.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>zk(t,r,n,i)});function Et(){return r_(NT)}var jT=L("ZodNever",(t,e)=>{ny.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Mk(t,r,n,i)});function K_(t){return n_(jT,t)}var AT=L("ZodVoid",(t,e)=>{iy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Ak(t,r,n,i)});function t8(t){return i_(AT,t)}var J_=L("ZodDate",(t,e)=>{ay.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Uk(t,n,i,a),t.min=(n,i)=>t.check(Tr(n,i)),t.max=(n,i)=>t.check(nn(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 r8(t){return a_(J_,t)}var MT=L("ZodArray",(t,e)=>{oy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Xk(t,r,n,i),t.element=e.element,t.min=(r,n)=>t.check(Yi(r,n)),t.nonempty=r=>t.check(Yi(1,r)),t.max=(r,n)=>t.check(Go(r,n)),t.length=(r,n)=>t.check(Wo(r,n)),t.unwrap=()=>t.element});function We(t,e){return kk(MT,t,e)}function n8(t){let e=t._zod.def.shape;return vr(Object.keys(e))}var Hp=L("ZodObject",(t,e)=>{$k.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Yk(t,r,n,i),ee.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>vr(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Et()}),t.loose=()=>t.clone({...t._zod.def,catchall:Et()}),t.strict=()=>t.clone({...t._zod.def,catchall:K_()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>ee.extend(t,r),t.safeExtend=r=>ee.safeExtend(t,r),t.merge=r=>ee.merge(t,r),t.pick=r=>ee.pick(t,r),t.omit=r=>ee.omit(t,r),t.partial=(...r)=>ee.partial(Y_,t,r[0]),t.required=(...r)=>ee.required(Q_,t,r[0])});function le(t,e){let r={type:"object",shape:t??{},...ee.normalizeParams(e)};return new Hp(r)}function i8(t,e){return new Hp({type:"object",shape:t,catchall:K_(),...ee.normalizeParams(e)})}function gr(t,e){return new Hp({type:"object",shape:t,catchall:Et(),...ee.normalizeParams(e)})}var Bp=L("ZodUnion",(t,e)=>{uu.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>__(t,r,n,i),t.options=e.options});function bt(t,e){return new Bp({type:"union",options:t,...ee.normalizeParams(e)})}var DT=L("ZodXor",(t,e)=>{Bp.init(t,e),sy.init(t,e),t._zod.processJSONSchema=(r,n,i)=>__(t,r,n,i),t.options=e.options});function a8(t,e){return new DT({type:"union",options:t,inclusive:!1,...ee.normalizeParams(e)})}var zT=L("ZodDiscriminatedUnion",(t,e)=>{Bp.init(t,e),cy.init(t,e)});function Vp(t,e,r){return new zT({type:"union",options:e,discriminator:t,...ee.normalizeParams(r)})}var UT=L("ZodIntersection",(t,e)=>{uy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Qk(t,r,n,i)});function Pu(t,e){return new UT({type:"intersection",left:t,right:e})}var qT=L("ZodTuple",(t,e)=>{cp.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>eT(t,r,n,i),t.rest=r=>t.clone({...t._zod.def,rest:r})});function LT(t,e,r){let n=e instanceof Ae,i=n?r:e,a=n?e:null;return new qT({type:"tuple",items:t,rest:a,...ee.normalizeParams(i)})}var Gp=L("ZodRecord",(t,e)=>{ly.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>tT(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType});function Pt(t,e,r){return new Gp({type:"record",keyType:t,valueType:e,...ee.normalizeParams(r)})}function o8(t,e,r){let n=Er(t);return n._zod.values=void 0,new Gp({type:"record",keyType:n,valueType:e,...ee.normalizeParams(r)})}function s8(t,e,r){return new Gp({type:"record",keyType:t,valueType:e,mode:"loose",...ee.normalizeParams(r)})}var FT=L("ZodMap",(t,e)=>{dy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Kk(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...r)=>t.check(ki(...r)),t.nonempty=r=>t.check(ki(1,r)),t.max=(...r)=>t.check(Ma(...r)),t.size=(...r)=>t.check(Vo(...r))});function c8(t,e,r){return new FT({type:"map",keyType:t,valueType:e,...ee.normalizeParams(r)})}var ZT=L("ZodSet",(t,e)=>{py.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Jk(t,r,n,i),t.min=(...r)=>t.check(ki(...r)),t.nonempty=r=>t.check(ki(1,r)),t.max=(...r)=>t.check(Ma(...r)),t.size=(...r)=>t.check(Vo(...r))});function u8(t,e){return new ZT({type:"set",valueType:t,...ee.normalizeParams(e)})}var ku=L("ZodEnum",(t,e)=>{fy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>qk(t,n,i,a),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let a={};for(let o of n)if(r.has(o))a[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new ku({...e,checks:[],...ee.normalizeParams(i),entries:a})},t.exclude=(n,i)=>{let a={...e.entries};for(let o of n)if(r.has(o))delete a[o];else throw new Error(`Key ${o} not found in enum`);return new ku({...e,checks:[],...ee.normalizeParams(i),entries:a})}});function vr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new ku({type:"enum",entries:r,...ee.normalizeParams(e)})}function l8(t,e){return new ku({type:"enum",entries:t,...ee.normalizeParams(e)})}var HT=L("ZodLiteral",(t,e)=>{my.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Lk(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 ve(t,e){return new HT({type:"literal",values:Array.isArray(t)?t:[t],...ee.normalizeParams(e)})}var BT=L("ZodFile",(t,e)=>{hy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Hk(t,r,n,i),t.min=(r,n)=>t.check(ki(r,n)),t.max=(r,n)=>t.check(Ma(r,n)),t.mime=(r,n)=>t.check(_u(Array.isArray(r)?r:[r],n))});function d8(t){return p_(BT,t)}var VT=L("ZodTransform",(t,e)=>{gy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Wk(t,r,n,i),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Oa(t.constructor.name);r.addIssue=a=>{if(typeof a=="string")r.issues.push(ee.issue(a,r.value,e));else{let o=a;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),r.issues.push(ee.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(a=>(r.value=a,r)):(r.value=i,r)}});function X_(t){return new VT({type:"transform",transform:t})}var Y_=L("ZodOptional",(t,e)=>{up.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>b_(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Nt(t){return new Y_({type:"optional",innerType:t})}var GT=L("ZodExactOptional",(t,e)=>{vy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>b_(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function WT(t){return new GT({type:"optional",innerType:t})}var KT=L("ZodNullable",(t,e)=>{yy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>rT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Dp(t){return new KT({type:"nullable",innerType:t})}function p8(t){return Nt(Dp(t))}var JT=L("ZodDefault",(t,e)=>{_y.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>iT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function XT(t,e){return new JT({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():ee.shallowClone(e)}})}var YT=L("ZodPrefault",(t,e)=>{by.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>aT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function QT(t,e){return new YT({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():ee.shallowClone(e)}})}var Q_=L("ZodNonOptional",(t,e)=>{xy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>nT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function e1(t,e){return new Q_({type:"nonoptional",innerType:t,...ee.normalizeParams(e)})}var t1=L("ZodSuccess",(t,e)=>{Sy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Bk(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function f8(t){return new t1({type:"success",innerType:t})}var r1=L("ZodCatch",(t,e)=>{wy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>oT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function n1(t,e){return new r1({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var i1=L("ZodNaN",(t,e)=>{$y.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Fk(t,r,n,i)});function m8(t){return o_(i1,t)}var eb=L("ZodPipe",(t,e)=>{Ey.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>sT(t,r,n,i),t.in=e.in,t.out=e.out});function zp(t,e){return new eb({type:"pipe",in:t,out:e})}var tb=L("ZodCodec",(t,e)=>{eb.init(t,e),lu.init(t,e)});function h8(t,e,r){return new tb({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var a1=L("ZodReadonly",(t,e)=>{ky.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>cT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function o1(t){return new a1({type:"readonly",innerType:t})}var s1=L("ZodTemplateLiteral",(t,e)=>{Ty.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Zk(t,r,n,i)});function g8(t,e){return new s1({type:"template_literal",parts:t,...ee.normalizeParams(e)})}var c1=L("ZodLazy",(t,e)=>{Ry.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>lT(t,r,n,i),t.unwrap=()=>t._zod.def.getter()});function u1(t){return new c1({type:"lazy",getter:t})}var l1=L("ZodPromise",(t,e)=>{Py.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>uT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function v8(t){return new l1({type:"promise",innerType:t})}var d1=L("ZodFunction",(t,e)=>{Iy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Gk(t,r,n,i)});function y8(t){return new d1({type:"function",input:Array.isArray(t?.input)?LT(t?.input):t?.input??We(Et()),output:t?.output??Et()})}var Wp=L("ZodCustom",(t,e)=>{Oy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Vk(t,r,n,i)});function _8(t){let e=new wt({check:"custom"});return e._zod.check=t,e}function rb(t,e){return f_(Wp,t??(()=>!0),e)}function p1(t,e={}){return m_(Wp,t,e)}function f1(t){return h_(t)}var b8=g_,x8=v_;function S8(t,e={}){let r=new Wp({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...ee.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 w8=(...t)=>y_({Codec:tb,Boolean:Fp,String:Up},...t);function $8(t){let e=u1(()=>bt([H(t),pt(),Qt(),Iu(),We(e),Pt(H(),e)]));return e}function Kp(t,e){return zp(X_(t),e)}var m1;m1||(m1={});var e_e={...Eu,...Ap,iso:Da};tr(Cy());var ib="2025-11-25";var h1=[ib,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Qi="io.modelcontextprotocol/related-task",Xp="2.0",sr=rb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),g1=bt([H(),pt().int()]),v1=H(),__e=gr({ttl:bt([pt(),Iu()]).optional(),pollInterval:pt().optional()}),I8=le({ttl:pt().optional()}),P8=le({taskId:H()}),ab=gr({progressToken:g1.optional(),[Qi]:P8.optional()}),on=le({_meta:ab.optional()}),Ru=on.extend({task:I8.optional()}),y1=t=>Ru.safeParse(t).success,cr=le({method:H(),params:on.loose().optional()}),fn=le({_meta:ab.optional()}),mn=le({method:H(),params:fn.loose().optional()}),ur=gr({_meta:ab.optional()}),Yp=bt([H(),pt().int()]),_1=le({jsonrpc:ve(Xp),id:Yp,...cr.shape}).strict(),ob=t=>_1.safeParse(t).success,b1=le({jsonrpc:ve(Xp),...mn.shape}).strict(),x1=t=>b1.safeParse(t).success,sb=le({jsonrpc:ve(Xp),id:Yp,result:ur}).strict(),Ou=t=>sb.safeParse(t).success;var Ce;(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"})(Ce||(Ce={}));var cb=le({jsonrpc:ve(Xp),id:Yp.optional(),error:le({code:pt().int(),message:H(),data:Et().optional()})}).strict();var S1=t=>cb.safeParse(t).success;var w1=bt([_1,b1,sb,cb]),b_e=bt([sb,cb]),za=ur.strict(),R8=fn.extend({requestId:Yp.optional(),reason:H().optional()}),Qp=mn.extend({method:ve("notifications/cancelled"),params:R8}),O8=le({src:H(),mimeType:H().optional(),sizes:We(H()).optional(),theme:vr(["light","dark"]).optional()}),Cu=le({icons:We(O8).optional()}),Yo=le({name:H(),title:H().optional()}),$1=Yo.extend({...Yo.shape,...Cu.shape,version:H(),websiteUrl:H().optional(),description:H().optional()}),C8=Pu(le({applyDefaults:Qt().optional()}),Pt(H(),Et())),N8=Kp(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Pu(le({form:C8.optional(),url:sr.optional()}),Pt(H(),Et()).optional())),j8=gr({list:sr.optional(),cancel:sr.optional(),requests:gr({sampling:gr({createMessage:sr.optional()}).optional(),elicitation:gr({create:sr.optional()}).optional()}).optional()}),A8=gr({list:sr.optional(),cancel:sr.optional(),requests:gr({tools:gr({call:sr.optional()}).optional()}).optional()}),M8=le({experimental:Pt(H(),sr).optional(),sampling:le({context:sr.optional(),tools:sr.optional()}).optional(),elicitation:N8.optional(),roots:le({listChanged:Qt().optional()}).optional(),tasks:j8.optional()}),D8=on.extend({protocolVersion:H(),capabilities:M8,clientInfo:$1}),z8=cr.extend({method:ve("initialize"),params:D8});var U8=le({experimental:Pt(H(),sr).optional(),logging:sr.optional(),completions:sr.optional(),prompts:le({listChanged:Qt().optional()}).optional(),resources:le({subscribe:Qt().optional(),listChanged:Qt().optional()}).optional(),tools:le({listChanged:Qt().optional()}).optional(),tasks:A8.optional()}),ub=ur.extend({protocolVersion:H(),capabilities:U8,serverInfo:$1,instructions:H().optional()}),q8=mn.extend({method:ve("notifications/initialized"),params:fn.optional()});var ef=cr.extend({method:ve("ping"),params:on.optional()}),L8=le({progress:pt(),total:Nt(pt()),message:Nt(H())}),F8=le({...fn.shape,...L8.shape,progressToken:g1}),tf=mn.extend({method:ve("notifications/progress"),params:F8}),Z8=on.extend({cursor:v1.optional()}),Nu=cr.extend({params:Z8.optional()}),ju=ur.extend({nextCursor:v1.optional()}),H8=vr(["working","input_required","completed","failed","cancelled"]),Au=le({taskId:H(),status:H8,ttl:bt([pt(),Iu()]),createdAt:H(),lastUpdatedAt:H(),pollInterval:Nt(pt()),statusMessage:Nt(H())}),Ua=ur.extend({task:Au}),B8=fn.merge(Au),Mu=mn.extend({method:ve("notifications/tasks/status"),params:B8}),rf=cr.extend({method:ve("tasks/get"),params:on.extend({taskId:H()})}),nf=ur.merge(Au),af=cr.extend({method:ve("tasks/result"),params:on.extend({taskId:H()})}),x_e=ur.loose(),of=Nu.extend({method:ve("tasks/list")}),sf=ju.extend({tasks:We(Au)}),cf=cr.extend({method:ve("tasks/cancel"),params:on.extend({taskId:H()})}),E1=ur.merge(Au),k1=le({uri:H(),mimeType:Nt(H()),_meta:Pt(H(),Et()).optional()}),T1=k1.extend({text:H()}),lb=H().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),I1=k1.extend({blob:lb}),Du=vr(["user","assistant"]),Qo=le({audience:We(Du).optional(),priority:pt().min(0).max(1).optional(),lastModified:Da.datetime({offset:!0}).optional()}),P1=le({...Yo.shape,...Cu.shape,uri:H(),description:Nt(H()),mimeType:Nt(H()),annotations:Qo.optional(),_meta:Nt(gr({}))}),V8=le({...Yo.shape,...Cu.shape,uriTemplate:H(),description:Nt(H()),mimeType:Nt(H()),annotations:Qo.optional(),_meta:Nt(gr({}))}),G8=Nu.extend({method:ve("resources/list")}),db=ju.extend({resources:We(P1)}),W8=Nu.extend({method:ve("resources/templates/list")}),pb=ju.extend({resourceTemplates:We(V8)}),fb=on.extend({uri:H()}),K8=fb,J8=cr.extend({method:ve("resources/read"),params:K8}),mb=ur.extend({contents:We(bt([T1,I1]))}),hb=mn.extend({method:ve("notifications/resources/list_changed"),params:fn.optional()}),X8=fb,Y8=cr.extend({method:ve("resources/subscribe"),params:X8}),Q8=fb,eF=cr.extend({method:ve("resources/unsubscribe"),params:Q8}),tF=fn.extend({uri:H()}),rF=mn.extend({method:ve("notifications/resources/updated"),params:tF}),nF=le({name:H(),description:Nt(H()),required:Nt(Qt())}),iF=le({...Yo.shape,...Cu.shape,description:Nt(H()),arguments:Nt(We(nF)),_meta:Nt(gr({}))}),aF=Nu.extend({method:ve("prompts/list")}),gb=ju.extend({prompts:We(iF)}),oF=on.extend({name:H(),arguments:Pt(H(),H()).optional()}),sF=cr.extend({method:ve("prompts/get"),params:oF}),vb=le({type:ve("text"),text:H(),annotations:Qo.optional(),_meta:Pt(H(),Et()).optional()}),yb=le({type:ve("image"),data:lb,mimeType:H(),annotations:Qo.optional(),_meta:Pt(H(),Et()).optional()}),_b=le({type:ve("audio"),data:lb,mimeType:H(),annotations:Qo.optional(),_meta:Pt(H(),Et()).optional()}),cF=le({type:ve("tool_use"),name:H(),id:H(),input:Pt(H(),Et()),_meta:Pt(H(),Et()).optional()}),uF=le({type:ve("resource"),resource:bt([T1,I1]),annotations:Qo.optional(),_meta:Pt(H(),Et()).optional()}),lF=P1.extend({type:ve("resource_link")}),bb=bt([vb,yb,_b,lF,uF]),dF=le({role:Du,content:bb}),xb=ur.extend({description:H().optional(),messages:We(dF)}),Sb=mn.extend({method:ve("notifications/prompts/list_changed"),params:fn.optional()}),pF=le({title:H().optional(),readOnlyHint:Qt().optional(),destructiveHint:Qt().optional(),idempotentHint:Qt().optional(),openWorldHint:Qt().optional()}),fF=le({taskSupport:vr(["required","optional","forbidden"]).optional()}),R1=le({...Yo.shape,...Cu.shape,description:H().optional(),inputSchema:le({type:ve("object"),properties:Pt(H(),sr).optional(),required:We(H()).optional()}).catchall(Et()),outputSchema:le({type:ve("object"),properties:Pt(H(),sr).optional(),required:We(H()).optional()}).catchall(Et()).optional(),annotations:pF.optional(),execution:fF.optional(),_meta:Pt(H(),Et()).optional()}),mF=Nu.extend({method:ve("tools/list")}),wb=ju.extend({tools:We(R1)}),es=ur.extend({content:We(bb).default([]),structuredContent:Pt(H(),Et()).optional(),isError:Qt().optional()}),S_e=es.or(ur.extend({toolResult:Et()})),hF=Ru.extend({name:H(),arguments:Pt(H(),Et()).optional()}),gF=cr.extend({method:ve("tools/call"),params:hF}),$b=mn.extend({method:ve("notifications/tools/list_changed"),params:fn.optional()}),O1=le({autoRefresh:Qt().default(!0),debounceMs:pt().int().nonnegative().default(300)}),C1=vr(["debug","info","notice","warning","error","critical","alert","emergency"]),vF=on.extend({level:C1}),yF=cr.extend({method:ve("logging/setLevel"),params:vF}),_F=fn.extend({level:C1,logger:H().optional(),data:Et()}),bF=mn.extend({method:ve("notifications/message"),params:_F}),xF=le({name:H().optional()}),SF=le({hints:We(xF).optional(),costPriority:pt().min(0).max(1).optional(),speedPriority:pt().min(0).max(1).optional(),intelligencePriority:pt().min(0).max(1).optional()}),wF=le({mode:vr(["auto","required","none"]).optional()}),$F=le({type:ve("tool_result"),toolUseId:H().describe("The unique identifier for the corresponding tool call."),content:We(bb).default([]),structuredContent:le({}).loose().optional(),isError:Qt().optional(),_meta:Pt(H(),Et()).optional()}),EF=Vp("type",[vb,yb,_b]),Jp=Vp("type",[vb,yb,_b,cF,$F]),kF=le({role:Du,content:bt([Jp,We(Jp)]),_meta:Pt(H(),Et()).optional()}),TF=Ru.extend({messages:We(kF),modelPreferences:SF.optional(),systemPrompt:H().optional(),includeContext:vr(["none","thisServer","allServers"]).optional(),temperature:pt().optional(),maxTokens:pt().int(),stopSequences:We(H()).optional(),metadata:sr.optional(),tools:We(R1).optional(),toolChoice:wF.optional()}),Eb=cr.extend({method:ve("sampling/createMessage"),params:TF}),kb=ur.extend({model:H(),stopReason:Nt(vr(["endTurn","stopSequence","maxTokens"]).or(H())),role:Du,content:EF}),IF=ur.extend({model:H(),stopReason:Nt(vr(["endTurn","stopSequence","maxTokens","toolUse"]).or(H())),role:Du,content:bt([Jp,We(Jp)])}),PF=le({type:ve("boolean"),title:H().optional(),description:H().optional(),default:Qt().optional()}),RF=le({type:ve("string"),title:H().optional(),description:H().optional(),minLength:pt().optional(),maxLength:pt().optional(),format:vr(["email","uri","date","date-time"]).optional(),default:H().optional()}),OF=le({type:vr(["number","integer"]),title:H().optional(),description:H().optional(),minimum:pt().optional(),maximum:pt().optional(),default:pt().optional()}),CF=le({type:ve("string"),title:H().optional(),description:H().optional(),enum:We(H()),default:H().optional()}),NF=le({type:ve("string"),title:H().optional(),description:H().optional(),oneOf:We(le({const:H(),title:H()})),default:H().optional()}),jF=le({type:ve("string"),title:H().optional(),description:H().optional(),enum:We(H()),enumNames:We(H()).optional(),default:H().optional()}),AF=bt([CF,NF]),MF=le({type:ve("array"),title:H().optional(),description:H().optional(),minItems:pt().optional(),maxItems:pt().optional(),items:le({type:ve("string"),enum:We(H())}),default:We(H()).optional()}),DF=le({type:ve("array"),title:H().optional(),description:H().optional(),minItems:pt().optional(),maxItems:pt().optional(),items:le({anyOf:We(le({const:H(),title:H()}))}),default:We(H()).optional()}),zF=bt([MF,DF]),UF=bt([jF,AF,zF]),qF=bt([UF,PF,RF,OF]),LF=Ru.extend({mode:ve("form").optional(),message:H(),requestedSchema:le({type:ve("object"),properties:Pt(H(),qF),required:We(H()).optional()})}),FF=Ru.extend({mode:ve("url"),message:H(),elicitationId:H(),url:H().url()}),ZF=bt([LF,FF]),Tb=cr.extend({method:ve("elicitation/create"),params:ZF}),HF=fn.extend({elicitationId:H()}),BF=mn.extend({method:ve("notifications/elicitation/complete"),params:HF}),Ib=ur.extend({action:vr(["accept","decline","cancel"]),content:Kp(t=>t===null?void 0:t,Pt(H(),bt([H(),pt(),Qt(),We(H())])).optional())}),VF=le({type:ve("ref/resource"),uri:H()});var GF=le({type:ve("ref/prompt"),name:H()}),WF=on.extend({ref:bt([GF,VF]),argument:le({name:H(),value:H()}),context:le({arguments:Pt(H(),H()).optional()}).optional()}),KF=cr.extend({method:ve("completion/complete"),params:WF});var Pb=ur.extend({completion:gr({values:We(H()).max(100),total:Nt(pt().int()),hasMore:Nt(Qt())})}),JF=le({uri:H().startsWith("file://"),name:H().optional(),_meta:Pt(H(),Et()).optional()}),XF=cr.extend({method:ve("roots/list"),params:on.optional()}),YF=ur.extend({roots:We(JF)}),QF=mn.extend({method:ve("notifications/roots/list_changed"),params:fn.optional()}),w_e=bt([ef,z8,KF,yF,sF,aF,G8,W8,J8,Y8,eF,gF,mF,rf,af,of,cf]),$_e=bt([Qp,tf,q8,QF,Mu]),E_e=bt([za,kb,IF,Ib,YF,nf,sf,Ua]),k_e=bt([ef,Eb,Tb,XF,rf,af,of,cf]),T_e=bt([Qp,tf,bF,rF,hb,$b,Sb,Mu,BF]),I_e=bt([za,ub,Pb,xb,gb,db,pb,mb,es,wb,nf,sf,Ua]),Se=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===Ce.UrlElicitationRequired&&n){let i=n;if(i.elicitations)return new nb(i.elicitations,r)}return new t(e,r,n)}},nb=class extends Se{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(Ce.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function ea(t){return t==="completed"||t==="failed"||t==="cancelled"}var cbe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Rb(t){let r=jp(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=mT(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Ob(t,e){let r=Mn(t,e);if(!r.success)throw r.error;return r.data}var a5=6e4,uf=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(Qp,r=>{this._oncancel(r)}),this.setNotificationHandler(tf,r=>{this._onprogress(r)}),this.setRequestHandler(ef,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(rf,async(r,n)=>{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new Se(Ce.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(af,async(r,n)=>{let i=async()=>{let a=r.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(a,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 Se(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 o=await this._taskStore.getTask(a,n.sessionId);if(!o)throw new Se(Ce.InvalidParams,`Task not found: ${a}`);if(!ea(o.status))return await this._waitForTaskUpdate(a,n.signal),await i();if(ea(o.status)){let s=await this._taskStore.getTaskResult(a,n.sessionId);return this._clearTaskQueue(a),{...s,_meta:{...s._meta,[Qi]:{taskId:a}}}}return await i()};return await i()}),this.setRequestHandler(of,async(r,n)=>{try{let{tasks:i,nextCursor:a}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:i,nextCursor:a,_meta:{}}}catch(i){throw new Se(Ce.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(cf,async(r,n)=>{try{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new Se(Ce.InvalidParams,`Task not found: ${r.params.taskId}`);if(ea(i.status))throw new Se(Ce.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 a=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!a)throw new Se(Ce.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...a}}catch(i){throw i instanceof Se?i:new Se(Ce.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,a=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:a,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),Se.fromError(Ce.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=a=>{n?.(a),this._onerror(a)};let i=this._transport?.onmessage;this._transport.onmessage=(a,o)=>{i?.(a,o),Ou(a)||S1(a)?this._onresponse(a):ob(a)?this._onrequest(a,o):x1(a)?this._onnotification(a):this._onerror(new Error(`Unknown message type: ${JSON.stringify(a)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=Se.fromError(Ce.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,a=e.params?._meta?.[Qi]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:Ce.MethodNotFound,message:"Method not found"}};a&&this._taskMessageQueue?this._enqueueTaskMessage(a,{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 s=y1(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};a&&(d.relatedTask={taskId:a}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{let f={...p,relatedRequestId:e.id};a&&!f.relatedTask&&(f.relatedTask={taskId:a});let h=f.relatedTask?.taskId??a;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(l,d,f)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:a,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(o.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:e.id};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{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:Ce.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{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),a=this._progressHandlers.get(i);if(!a){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),s=this._timeoutInfo.get(i);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}a(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Ou(e))n(e);else{let o=new Se(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 a=!1;if(Ou(e)&&e.result&&typeof e.result=="object"){let o=e.result;if(o.task&&typeof o.task=="object"){let s=o.task;typeof s.taskId=="string"&&(a=!0,this._taskProgressTokens.set(s.taskId,r))}}if(a||this._progressHandlers.delete(r),Ou(e))i(e);else{let o=Se.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 Se?o:new Se(Ce.InternalError,String(o))}}return}let a;try{let o=await this.request(e,Ua,n);if(o.task)a=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new Se(Ce.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:a},n);if(yield{type:"taskStatus",task:s},ea(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:a},r,n)}:s.status==="failed"?yield{type:"error",error:new Se(Ce.InternalError,`Task ${a} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new Se(Ce.InternalError,`Task ${a} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:a},r,n)};return}let c=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof Se?o:new Se(Ce.InternalError,String(o))}}}request(e,r,n){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,task:s,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=y=>{l(y)};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(y){d(y);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||{},[Qi]:c}});let h=y=>{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(y)}},{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(b=>this._onerror(new Error(`Failed to send cancellation: ${b}`)));let v=y instanceof Se?y:new Se(Ce.RequestTimeout,String(y));l(v)};this._responseHandlers.set(p,y=>{if(!n?.signal?.aborted){if(y instanceof Error)return l(y);try{let v=Mn(r,y.result);v.success?u(v.data):l(v.error)}catch(v){l(v)}}}),n?.signal?.addEventListener("abort",()=>{h(n?.signal?.reason)});let _=n?.timeout??a5,g=()=>h(Se.fromError(Ce.RequestTimeout,"Request timed out",{timeout:_}));this._setupTimeout(p,_,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let m=c?.taskId;if(m){let y=v=>{let b=this._responseHandlers.get(p);b?b(v):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,y),this._enqueueTaskMessage(m,{type:"request",message:f,timestamp:Date.now()}).catch(v=>{this._cleanupTimeout(p),l(v)})}else this._transport.send(f,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(y=>{this._cleanupTimeout(p),l(y)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},nf,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},sf,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},E1,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||{},[Qi]: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||{},[Qi]:r.relatedTask}}}),this._transport?.send(s,r).catch(c=>this._onerror(c))});return}let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[Qi]:r.relatedTask}}}),await this._transport.send(o,r)}setRequestHandler(e,r){let n=Rb(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,a)=>{let o=Ob(e,i);return Promise.resolve(r(o,a))})}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=Rb(e);this._notificationHandlers.set(n,i=>{let a=Ob(e,i);return Promise.resolve(r(a))})}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"&&ob(i.message)){let a=i.message.id,o=this._requestResolvers.get(a);o?(o(new Se(Ce.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(a)):this._onerror(new Error(`Resolver missing for request ${a} 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,a)=>{if(r.aborted){a(new Se(Ce.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,n);r.addEventListener("abort",()=>{clearTimeout(o),a(new Se(Ce.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 a=await n.getTask(i,r);if(!a)throw new Se(Ce.InvalidParams,"Failed to retrieve task: Task not found");return a},storeTaskResult:async(i,a,o)=>{await n.storeTaskResult(i,a,o,r);let s=await n.getTask(i,r);if(s){let c=Mu.parse({method:"notifications/tasks/status",params:s});await this.notification(c),ea(s.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>n.getTaskResult(i,r),updateTaskStatus:async(i,a,o)=>{let s=await n.getTask(i,r);if(!s)throw new Se(Ce.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(ea(s.status))throw new Se(Ce.InvalidParams,`Cannot update task "${i}" from terminal status "${s.status}" to "${a}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(i,a,o,r);let c=await n.getTask(i,r);if(c){let u=Mu.parse({method:"notifications/tasks/status",params:c});await this.notification(u),ea(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>n.listTasks(i,r)}}};function N1(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function j1(t,e){let r={...t};for(let n in e){let i=n,a=e[i];if(a===void 0)continue;let o=r[i];N1(o)&&N1(a)?r[i]={...o,...a}:r[i]=a}return r}var bR=dt(g0(),1),xR=dt(_R(),1);function KV(){let t=new bR.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,xR.default)(t),t}var Vf=class{constructor(e){this._ajv=e??KV()}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 Gf=class{constructor(e){this._client=e}async*callToolStream(e,r=es,n){let i=this._client,a={...n,task:n?.task??(i.isToolTask(e.name)?{}:void 0)},o=i.requestStream({method:"tools/call",params:e},r,a),s=i.getToolOutputValidator(e.name);for await(let c of o){if(c.type==="result"&&s){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new Se(Ce.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let l=s(u.structuredContent);if(!l.valid){yield{type:"error",error:new Se(Ce.InvalidParams,`Structured content does not match the tool's output schema: ${l.errorMessage}`)};return}}catch(l){if(l instanceof Se){yield{type:"error",error:l};return}yield{type:"error",error:new Se(Ce.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 SR(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 wR(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 Wf(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 a=n[i];r[i]===void 0&&Object.prototype.hasOwnProperty.call(a,"default")&&(r[i]=a.default),r[i]!==void 0&&Wf(a,r[i])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Wf(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Wf(r,e)}}function JV(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 vs=class extends uf{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 Vf,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",$b,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",Sb,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",hb,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Gf(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=j1(this._capabilities,e)}setRequestHandler(e,r){let i=jp(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let a;if(Jo(i)){let s=i;a=s._zod?.def?.value??s.value}else{let s=i;a=s._def?.value??s.value}if(typeof a!="string")throw new Error("Schema method literal must be a string");let o=a;if(o==="elicitation/create"){let s=async(c,u)=>{let l=Mn(Tb,c);if(!l.success){let y=l.error instanceof Error?l.error.message:String(l.error);throw new Se(Ce.InvalidParams,`Invalid elicitation request: ${y}`)}let{params:d}=l.data;d.mode=d.mode??"form";let{supportsFormMode:p,supportsUrlMode:f}=JV(this._capabilities.elicitation);if(d.mode==="form"&&!p)throw new Se(Ce.InvalidParams,"Client does not support form-mode elicitation requests");if(d.mode==="url"&&!f)throw new Se(Ce.InvalidParams,"Client does not support URL-mode elicitation requests");let h=await Promise.resolve(r(c,u));if(d.task){let y=Mn(Ua,h);if(!y.success){let v=y.error instanceof Error?y.error.message:String(y.error);throw new Se(Ce.InvalidParams,`Invalid task creation result: ${v}`)}return y.data}let _=Mn(Ib,h);if(!_.success){let y=_.error instanceof Error?_.error.message:String(_.error);throw new Se(Ce.InvalidParams,`Invalid elicitation result: ${y}`)}let g=_.data,m=d.mode==="form"?d.requestedSchema:void 0;if(d.mode==="form"&&g.action==="accept"&&g.content&&m&&this._capabilities.elicitation?.form?.applyDefaults)try{Wf(m,g.content)}catch{}return g};return super.setRequestHandler(e,s)}if(o==="sampling/createMessage"){let s=async(c,u)=>{let l=Mn(Eb,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new Se(Ce.InvalidParams,`Invalid sampling request: ${h}`)}let{params:d}=l.data,p=await Promise.resolve(r(c,u));if(d.task){let h=Mn(Ua,p);if(!h.success){let _=h.error instanceof Error?h.error.message:String(h.error);throw new Se(Ce.InvalidParams,`Invalid task creation result: ${_}`)}return h.data}let f=Mn(kb,p);if(!f.success){let h=f.error instanceof Error?f.error.message:String(f.error);throw new Se(Ce.InvalidParams,`Invalid sampling result: ${h}`)}return f.data};return super.setRequestHandler(e,s)}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:ib,capabilities:this._capabilities,clientInfo:this._clientInfo}},ub,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!h1.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){SR(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&wR(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},za,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},Pb,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},za,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},xb,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},gb,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},db,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},pb,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},mb,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},za,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},za,r)}async callTool(e,r=es,n){if(this.isToolTaskRequired(e.name))throw new Se(Ce.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),a=this.getToolOutputValidator(e.name);if(a){if(!i.structuredContent&&!i.isError)throw new Se(Ce.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(i.structuredContent)try{let o=a(i.structuredContent);if(!o.valid)throw new Se(Ce.InvalidParams,`Structured content does not match the tool's output schema: ${o.errorMessage}`)}catch(o){throw o instanceof Se?o:new Se(Ce.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},wb,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,i){let a=O1.safeParse(n);if(!a.success)throw new Error(`Invalid ${e} listChanged options: ${a.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:o,debounceMs:s}=a.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(s){let d=this._listChangedDebounceTimers.get(e);d&&clearTimeout(d);let p=setTimeout(u,s);this._listChangedDebounceTimers.set(e,p)}else u()};this.setNotificationHandler(r,l)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var fO=dt(dO(),1),ml=dt(require("node:process"),1),mO=require("node:stream");var Jf=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),w7(r)}clear(){this._buffer=void 0}};function w7(t){return w1.parse(JSON.parse(t))}function pO(t){return JSON.stringify(t)+` +`}var $7=ml.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function E7(){let t={};for(let e of $7){let r=ml.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var bs=class{constructor(e){this._readBuffer=new Jf,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new mO.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,fO.default)(this._serverParams.command,this._serverParams.args??[],{env:{...E7(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:ml.default.platform==="win32"&&k7(),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=pO(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};function k7(){return"type"in ml.default}var Yf=dt(require("path"),1),SO=require("os");Pe();var A0={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function xO(t){return process.platform==="win32"?Math.round(t*A0.WINDOWS_MULTIPLIER):t}Fr();var d$e=Yf.default.join((0,SO.homedir)(),".claude","plugins","marketplaces","thedotmack"),p$e=xO(A0.HEALTH_CHECK),hl=null,gl=null;function _n(){if(hl!==null)return hl;let t=Yf.default.join(Fe.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=Fe.loadFromFile(t);return hl=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),hl}function wO(){if(gl!==null)return gl;let t=Yf.default.join(Fe.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return gl=Fe.loadFromFile(t).CLAUDE_MEM_WORKER_HOST,gl}function $O(){hl=null,gl=null}Pe();var M0=dt(require("path"),1),EO=require("os"),Fn=require("fs"),ws=require("child_process"),kO=require("util");Pe();var Qf=(0,kO.promisify)(ws.exec),TO=M0.default.join((0,EO.homedir)(),".claude-mem"),Ja=M0.default.join(TO,"worker.pid");function D0(t){(0,Fn.mkdirSync)(TO,{recursive:!0}),(0,Fn.writeFileSync)(Ja,JSON.stringify(t,null,2))}function IO(){if(!(0,Fn.existsSync)(Ja))return null;try{return JSON.parse((0,Fn.readFileSync)(Ja,"utf-8"))}catch(t){return k.warn("SYSTEM","Failed to parse PID file",{path:Ja},t),null}}function ji(){if((0,Fn.existsSync)(Ja))try{(0,Fn.unlinkSync)(Ja)}catch(t){k.warn("SYSTEM","Failed to remove PID file",{path:Ja},t)}}function Xa(t){return process.platform==="win32"?Math.round(t*2):t}async function PO(t){if(process.platform!=="win32")return[];if(!Number.isInteger(t)||t<=0)return k.warn("SYSTEM","Invalid parent PID for child process enumeration",{parentPid:t}),[];try{let e=`wmic process where "parentprocessid=${t}" get processid /format:list`,{stdout:r}=await Qf(e,{timeout:6e4});return r.trim().split(` +`).map(n=>{let i=n.match(/ProcessId=(\d+)/i);return i?parseInt(i[1],10):NaN}).filter(n=>!isNaN(n)&&Number.isInteger(n)&&n>0)}catch(e){return k.warn("SYSTEM","Failed to enumerate child processes",{parentPid:t},e),[]}}async function RO(t){if(!Number.isInteger(t)||t<=0){k.warn("SYSTEM","Invalid PID for force kill",{pid:t});return}try{process.platform==="win32"?await Qf(`taskkill /PID ${t} /T /F`,{timeout:6e4}):process.kill(t,"SIGKILL"),k.info("SYSTEM","Killed process",{pid:t})}catch(e){k.debug("SYSTEM","Process already exited during force kill",{pid:t},e)}}async function OO(t,e){let r=Date.now();for(;Date.now()-r{try{return process.kill(i,0),!0}catch{return!1}});if(n.length===0){k.info("SYSTEM","All child processes exited");return}k.debug("SYSTEM","Waiting for processes to exit",{stillAlive:n}),await new Promise(i=>setTimeout(i,100))}k.warn("SYSTEM","Timeout waiting for child processes to exit")}async function CO(){let t=process.platform==="win32",e=[];try{if(t){let r=`wmic process where "name like '%python%' and commandline like '%chroma-mcp%'" get processid /format:list`,{stdout:n}=await Qf(r,{timeout:6e4});if(!n.trim()){k.debug("SYSTEM","No orphaned chroma-mcp processes found (Windows)");return}let i=n.trim().split(` +`);for(let a of i){let o=a.match(/ProcessId=(\d+)/i);if(o){let s=parseInt(o[1],10);!isNaN(s)&&Number.isInteger(s)&&s>0&&e.push(s)}}}else{let{stdout:r}=await Qf('ps aux | grep "chroma-mcp" | grep -v grep || true');if(!r.trim()){k.debug("SYSTEM","No orphaned chroma-mcp processes found (Unix)");return}let n=r.trim().split(` +`);for(let i of n){let a=i.trim().split(/\s+/);if(a.length>1){let o=parseInt(a[1],10);!isNaN(o)&&Number.isInteger(o)&&o>0&&e.push(o)}}}}catch(r){k.warn("SYSTEM","Failed to enumerate orphaned processes",{},r);return}if(e.length!==0){if(k.info("SYSTEM","Cleaning up orphaned chroma-mcp processes",{platform:t?"Windows":"Unix",count:e.length,pids:e}),t)for(let r of e){if(!Number.isInteger(r)||r<=0){k.warn("SYSTEM","Skipping invalid PID",{pid:r});continue}try{(0,ws.execSync)(`taskkill /PID ${r} /T /F`,{timeout:6e4,stdio:"ignore"})}catch(n){k.debug("SYSTEM","Failed to kill process, may have already exited",{pid:r},n)}}else for(let r of e)try{process.kill(r,"SIGKILL")}catch(n){k.debug("SYSTEM","Process already exited",{pid:r},n)}k.info("SYSTEM","Orphaned processes cleaned up",{count:e.length})}}function z0(t,e,r={}){let n=(0,ws.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(e),...r}});if(n.pid!==void 0)return n.unref(),n.pid}function NO(t,e){return async r=>{if(e.value){k.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}e.value=!0,k.info("SYSTEM",`Received ${r}, shutting down...`);try{await t(),process.exit(0)}catch(n){k.error("SYSTEM","Error during shutdown",{},n),process.exit(1)}}}var U0=dt(require("path"),1),jO=require("os"),AO=require("fs");Pe();async function em(t){try{return(await fetch(`http://127.0.0.1:${t}/api/health`)).ok}catch{return!1}}async function vl(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function tm(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function rm(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(k.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(k.debug("SYSTEM","Worker already stopped",{port:t},e),!1):(k.warn("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}function T7(){let t=U0.default.join((0,jO.homedir)(),".claude","plugins","marketplaces","thedotmack"),e=U0.default.join(t,"package.json");return JSON.parse((0,AO.readFileSync)(e,"utf-8")).version}async function I7(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/version`);return e.ok?(await e.json()).version:null}catch{return k.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function MO(t){let e=T7(),r=await I7(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}Pe();async function DO(t){k.info("SYSTEM","Shutdown initiated"),ji();let e=await PO(process.pid);if(k.info("SYSTEM","Found child processes",{count:e.length,pids:e}),t.server&&(await P7(t.server),k.info("SYSTEM","HTTP server closed")),await t.sessionManager.shutdownAll(),t.mcpClient&&(await t.mcpClient.close(),k.info("SYSTEM","MCP client closed")),t.dbManager&&await t.dbManager.close(),e.length>0){k.info("SYSTEM","Force killing remaining children");for(let r of e)await RO(r);await OO(e,5e3)}k.info("SYSTEM","Worker shutdown complete")}async function P7(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)),k.info("SYSTEM","Waited for Windows port cleanup"))}var r4=dt(lh(),1),Gw=dt(require("fs"),1),Ww=dt(require("path"),1);Pe();var Hw=dt(lh(),1),Xz=dt(Lz(),1),Yz=dt(require("path"),1);cn();Pe();function Bw(t){let e=[];e.push(Hw.default.json({limit:"50mb"})),e.push((0,Xz.default)()),e.push((i,a,o)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(h=>i.path.endsWith(h)),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);k.info("HTTP",`\u2192 ${i.method} ${i.path}`,{requestId:d},p);let f=a.send.bind(a);a.send=function(h){let _=Date.now()-l;return k.info("HTTP",`\u2190 ${a.statusCode} ${i.path}`,{requestId:d,duration:`${_}ms`}),f(h)},o()});let r=Wr(),n=Yz.default.join(r,"plugin","ui");return e.push(Hw.default.static(n)),e}function dh(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")){k.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 Vw(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=${k.formatTool(n,i)}`}return e.includes("/summarize")?"requesting summary":""}Pe();var Js=class extends Error{constructor(r,n=500,i,a){super(r);this.statusCode=n;this.code=i;this.details=a;this.name="AppError"}};function Qz(t,e,r,n){let i={error:t,message:e};return r&&(i.code=r),n&&(i.details=n),i}var e4=(t,e,r,n)=>{let i=t instanceof Js?t.statusCode:500;k.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:i,error:t.message,code:t instanceof Js?t.code:void 0},t);let a=Qz(t.name||"Error",t.message,t instanceof Js?t.code:void 0,t instanceof Js?t.details:void 0);r.status(i).json(a)};function t4(t,e){e.status(404).json(Qz("NotFound",`Cannot ${t.method} ${t.path}`))}var Zre="8.5.9",ph=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,r4.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,()=>{k.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,k.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(t4),this.app.use(e4)}setupMiddleware(){Bw(Vw).forEach(r=>this.app.use(r))}setupCoreRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,n)=>{n.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_MEM_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),mcpReady:this.options.getMcpReady()})}),this.app.get("/api/readiness",(r,n)=>{this.options.getInitializationComplete()?n.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):n.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,n)=>{n.status(200).json({version:Zre})}),this.app.get("/api/instructions",async(r,n)=>{let i=r.query.topic||"all",a=r.query.operation;try{let o;if(a){let s=Ww.default.join(__dirname,"../skills/mem-search/operations",`${a}.md`);o=await Gw.promises.readFile(s,"utf-8")}else{let s=Ww.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await Gw.promises.readFile(s,"utf-8");o=this.extractInstructionSection(c,i)}n.json({content:[{type:"text",text:o}]})}catch{n.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",dh,async(r,n)=>{n.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(k.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.options.onRestart()},100)}),this.app.post("/api/admin/shutdown",dh,async(r,n)=>{n.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(k.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.options.onShutdown()},100)})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let i=e.indexOf(r),a=e.indexOf(n);return i===-1?e:a===-1?e.substring(i):e.substring(i,a).trim()}};var ct=dt(require("path"),1),rd=require("os"),Mt=require("fs"),a4=require("child_process"),o4=require("util");Pe();var En=require("fs"),td=require("path");Pe();function n4(t){try{return(0,En.existsSync)(t)?JSON.parse((0,En.readFileSync)(t,"utf-8")):{}}catch(e){return k.warn("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function i4(t,e){let r=(0,td.join)(t,"..");(0,En.mkdirSync)(r,{recursive:!0}),(0,En.writeFileSync)(t,JSON.stringify(e,null,2))}function Kw(t,e){let r=(0,td.join)(t,".cursor","rules"),n=(0,td.join)(r,"claude-mem-context.mdc"),i=`${n}.tmp`;(0,En.mkdirSync)(r,{recursive:!0});let a=`--- alwaysApply: true description: "Claude-mem context from past sessions (auto-updated)" --- @@ -718,9 +738,9 @@ ${e} --- *Updated after last session. Use claude-mem's MCP search tools for more detailed queries.* -`;(0,$n.writeFileSync)(i,a),(0,$n.renameSync)(i,n)}var uTe=(0,a4.promisify)(i4.exec),Dre=ct.default.join((0,Ql.homedir)(),".claude-mem"),o4=ct.default.join(Dre,"cursor-projects.json");function Ww(){return process.platform==="win32"?"windows":"unix"}function Ure(){return Ww()==="windows"?".ps1":".sh"}function Kw(){return r4(o4)}function s4(t){n4(o4,t)}function qre(t,e){let r=Kw();r[t]={workspacePath:e,installedAt:new Date().toISOString()},s4(r),T.info("CURSOR","Registered project for auto-context updates",{projectName:t,workspacePath:e})}function Lre(t){let e=Kw();e[t]&&(delete e[t],s4(e),T.info("CURSOR","Unregistered project",{projectName:t}))}async function dh(t,e){let n=Kw()[t];if(n)try{let i=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=${encodeURIComponent(t)}`);if(!i.ok)return;let a=await i.text();if(!a||!a.trim())return;Gw(n.workspacePath,a),T.debug("CURSOR","Updated context file",{projectName:t,workspacePath:n.workspacePath})}catch(i){T.warn("CURSOR","Failed to update context file",{projectName:t},i)}}function c4(){let t=[ct.default.join((0,Ql.homedir)(),".claude","plugins","marketplaces","thedotmack","cursor-hooks"),ct.default.join(ct.default.dirname(__filename),"..","..","cursor-hooks"),ct.default.join(process.cwd(),"cursor-hooks")];for(let e of t)if((0,Mt.existsSync)(ct.default.join(e,"common.sh"))||(0,Mt.existsSync)(ct.default.join(e,"common.ps1")))return e;return null}function u4(t){switch(t){case"project":return ct.default.join(process.cwd(),".cursor");case"user":return ct.default.join((0,Ql.homedir)(),".cursor");case"enterprise":return process.platform==="darwin"?"/Library/Application Support/Cursor":process.platform==="linux"?"/etc/cursor":process.platform==="win32"?ct.default.join(process.env.ProgramData||"C:\\ProgramData","Cursor"):null;default:return null}}async function l4(t,e){let r=Ww(),n=Ure();console.log(` +`;(0,En.writeFileSync)(i,a),(0,En.renameSync)(i,n)}var xTe=(0,o4.promisify)(a4.exec),Hre=ct.default.join((0,rd.homedir)(),".claude-mem"),s4=ct.default.join(Hre,"cursor-projects.json");function Jw(){return process.platform==="win32"?"windows":"unix"}function Bre(){return Jw()==="windows"?".ps1":".sh"}function Xw(){return n4(s4)}function c4(t){i4(s4,t)}function Vre(t,e){let r=Xw();r[t]={workspacePath:e,installedAt:new Date().toISOString()},c4(r),k.info("CURSOR","Registered project for auto-context updates",{projectName:t,workspacePath:e})}function Gre(t){let e=Xw();e[t]&&(delete e[t],c4(e),k.info("CURSOR","Unregistered project",{projectName:t}))}async function fh(t,e){let n=Xw()[t];if(n)try{let i=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=${encodeURIComponent(t)}`);if(!i.ok)return;let a=await i.text();if(!a||!a.trim())return;Kw(n.workspacePath,a),k.debug("CURSOR","Updated context file",{projectName:t,workspacePath:n.workspacePath})}catch(i){k.warn("CURSOR","Failed to update context file",{projectName:t},i)}}function u4(){let t=[ct.default.join((0,rd.homedir)(),".claude","plugins","marketplaces","thedotmack","cursor-hooks"),ct.default.join(ct.default.dirname(__filename),"..","..","cursor-hooks"),ct.default.join(process.cwd(),"cursor-hooks")];for(let e of t)if((0,Mt.existsSync)(ct.default.join(e,"common.sh"))||(0,Mt.existsSync)(ct.default.join(e,"common.ps1")))return e;return null}function l4(t){switch(t){case"project":return ct.default.join(process.cwd(),".cursor");case"user":return ct.default.join((0,rd.homedir)(),".cursor");case"enterprise":return process.platform==="darwin"?"/Library/Application Support/Cursor":process.platform==="linux"?"/etc/cursor":process.platform==="win32"?ct.default.join(process.env.ProgramData||"C:\\ProgramData","Cursor"):null;default:return null}}async function d4(t,e){let r=Jw(),n=Bre();console.log(` Installing Claude-Mem Cursor hooks (${e} level, ${r})... -`);let i=u4(e);if(!i)return console.error(`Invalid target: ${e}. Use: project, user, or enterprise`),1;let a=ct.default.join(i,"hooks"),o=process.cwd();try{(0,Mt.mkdirSync)(a,{recursive:!0});let s=r==="windows"?"common.ps1":"common.sh",c=[`session-init${n}`,`context-inject${n}`,`save-observation${n}`,`save-file-edit${n}`,`session-summary${n}`],u=[s,...c];for(let h of u){let _=ct.default.join(t,h),y=ct.default.join(a,h);if((0,Mt.existsSync)(_)){let m=(0,Mt.readFileSync)(_,"utf-8"),v=r==="windows"?void 0:493;(0,Mt.writeFileSync)(y,m,v?{mode:v}:void 0),console.log(` Copied ${h}`)}else console.warn(` ${h} not found in source`)}let l=ct.default.join(i,"hooks.json"),d=e==="project"?"./.cursor/hooks/":`${a}/`,p=h=>{let _=`${d}${h}${n}`;return r==="windows"?`powershell.exe -ExecutionPolicy Bypass -File "${_}"`:_},f={version:1,hooks:{beforeSubmitPrompt:[{command:p("session-init")},{command:p("context-inject")}],afterMCPExecution:[{command:p("save-observation")}],afterShellExecution:[{command:p("save-observation")}],afterFileEdit:[{command:p("save-file-edit")}],stop:[{command:p("session-summary")}]}};return(0,Mt.writeFileSync)(l,JSON.stringify(f,null,2)),console.log(` Created hooks.json (${r} mode)`),e==="project"&&await Fre(i,o),console.log(` +`);let i=l4(e);if(!i)return console.error(`Invalid target: ${e}. Use: project, user, or enterprise`),1;let a=ct.default.join(i,"hooks"),o=process.cwd();try{(0,Mt.mkdirSync)(a,{recursive:!0});let s=r==="windows"?"common.ps1":"common.sh",c=[`session-init${n}`,`context-inject${n}`,`save-observation${n}`,`save-file-edit${n}`,`session-summary${n}`],u=[s,...c];for(let h of u){let _=ct.default.join(t,h),g=ct.default.join(a,h);if((0,Mt.existsSync)(_)){let m=(0,Mt.readFileSync)(_,"utf-8"),y=r==="windows"?void 0:493;(0,Mt.writeFileSync)(g,m,y?{mode:y}:void 0),console.log(` Copied ${h}`)}else console.warn(` ${h} not found in source`)}let l=ct.default.join(i,"hooks.json"),d=e==="project"?"./.cursor/hooks/":`${a}/`,p=h=>{let _=`${d}${h}${n}`;return r==="windows"?`powershell.exe -ExecutionPolicy Bypass -File "${_}"`:_},f={version:1,hooks:{beforeSubmitPrompt:[{command:p("session-init")},{command:p("context-inject")}],afterMCPExecution:[{command:p("save-observation")}],afterShellExecution:[{command:p("save-observation")}],afterFileEdit:[{command:p("save-file-edit")}],stop:[{command:p("session-summary")}]}};return(0,Mt.writeFileSync)(l,JSON.stringify(f,null,2)),console.log(` Created hooks.json (${r} mode)`),e==="project"&&await Wre(i,o),console.log(` Installation complete! Hooks installed to: ${i}/hooks.json @@ -735,7 +755,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(s){return console.error(` -Installation failed: ${s.message}`),e==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}async function Fre(t,e){let r=ct.default.join(t,"rules");(0,Mt.mkdirSync)(r,{recursive:!0});let n=Ln(),i=ct.default.basename(e),a=!1;console.log(" Generating initial context...");try{if((await fetch(`http://127.0.0.1:${n}/api/readiness`)).ok){let s=await fetch(`http://127.0.0.1:${n}/api/context/inject?project=${encodeURIComponent(i)}`);if(s.ok){let c=await s.text();c&&c.trim()&&(Gw(e,c),a=!0,console.log(" Generated initial context from existing memory"))}}}catch(o){T.debug("CURSOR","Worker not running during install",{},o)}if(!a){let o=ct.default.join(r,"claude-mem-context.mdc");(0,Mt.writeFileSync)(o,`--- +Installation failed: ${s.message}`),e==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}async function Wre(t,e){let r=ct.default.join(t,"rules");(0,Mt.mkdirSync)(r,{recursive:!0});let n=_n(),i=ct.default.basename(e),a=!1;console.log(" Generating initial context...");try{if((await fetch(`http://127.0.0.1:${n}/api/readiness`)).ok){let s=await fetch(`http://127.0.0.1:${n}/api/context/inject?project=${encodeURIComponent(i)}`);if(s.ok){let c=await s.text();c&&c.trim()&&(Kw(e,c),a=!0,console.log(" Generated initial context from existing memory"))}}}catch(o){k.debug("CURSOR","Worker not running during install",{},o)}if(!a){let o=ct.default.join(r,"claude-mem-context.mdc");(0,Mt.writeFileSync)(o,`--- alwaysApply: true description: "Claude-mem context from past sessions (auto-updated)" --- @@ -745,15 +765,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)")}qre(i,e),console.log(" Registered for auto-context updates")}function Zre(t){console.log(` +`),console.log(" Created placeholder context file (will populate after first session)")}Vre(i,e),console.log(" Registered for auto-context updates")}function Kre(t){console.log(` Uninstalling Claude-Mem Cursor hooks (${t} level)... -`);let e=u4(t);if(!e)return console.error(`Invalid target: ${t}`),1;try{let r=ct.default.join(e,"hooks"),n=ct.default.join(e,"hooks.json"),i=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],a=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],o=[...i,...a];for(let s of o){let c=ct.default.join(r,s);(0,Mt.existsSync)(c)&&((0,Mt.unlinkSync)(c),console.log(` Removed ${s}`))}if((0,Mt.existsSync)(n)&&((0,Mt.unlinkSync)(n),console.log(" Removed hooks.json")),t==="project"){let s=ct.default.join(e,"rules","claude-mem-context.mdc");(0,Mt.existsSync)(s)&&((0,Mt.unlinkSync)(s),console.log(" Removed context file"));let c=ct.default.basename(process.cwd());Lre(c),console.log(" Unregistered from auto-context updates")}return console.log(` +`);let e=l4(t);if(!e)return console.error(`Invalid target: ${t}`),1;try{let r=ct.default.join(e,"hooks"),n=ct.default.join(e,"hooks.json"),i=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],a=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],o=[...i,...a];for(let s of o){let c=ct.default.join(r,s);(0,Mt.existsSync)(c)&&((0,Mt.unlinkSync)(c),console.log(` Removed ${s}`))}if((0,Mt.existsSync)(n)&&((0,Mt.unlinkSync)(n),console.log(" Removed hooks.json")),t==="project"){let s=ct.default.join(e,"rules","claude-mem-context.mdc");(0,Mt.existsSync)(s)&&((0,Mt.unlinkSync)(s),console.log(" Removed context file"));let c=ct.default.basename(process.cwd());Gre(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 Hre(){console.log(` +Uninstallation failed: ${r.message}`),1}}function Jre(){console.log(` Claude-Mem Cursor Hooks Status -`);let t=[{name:"Project",dir:ct.default.join(process.cwd(),".cursor")},{name:"User",dir:ct.default.join((0,Ql.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=ct.default.join(r.dir,"hooks.json"),i=ct.default.join(r.dir,"hooks");if((0,Mt.existsSync)(n)){e=!0,console.log(`${r.name}: Installed`),console.log(` Config: ${n}`);let a=["session-init.sh","context-inject.sh","save-observation.sh"],o=["session-init.ps1","context-inject.ps1","save-observation.ps1"],s=a.some(p=>(0,Mt.existsSync)(ct.default.join(i,p))),c=o.some(p=>(0,Mt.existsSync)(ct.default.join(i,p)));console.log(s&&c?" Platform: Both (bash + PowerShell)":s?" Platform: Unix (bash)":c?" Platform: Windows (PowerShell)":" No hook scripts found");let u=Ww(),d=(u==="windows"?o:a).filter(p=>!(0,Mt.existsSync)(ct.default.join(i,p)));if(d.length>0?console.log(` Missing ${u} scripts: ${d.join(", ")}`):console.log(` Scripts: All present for ${u}`),r.name==="Project"){let p=ct.default.join(r.dir,"rules","claude-mem-context.mdc");(0,Mt.existsSync)(p)?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 d4(t,e){switch(t){case"install":{let r=e[0]||"project",n=c4();return n?l4(n,r):(console.error("Could not find cursor-hooks directory"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/cursor-hooks/"),1)}case"uninstall":{let r=e[0]||"project";return Zre(r)}case"status":return Hre();case"setup":return console.log("Use the main entry point for setup"),0;default:return console.log(` +`);let t=[{name:"Project",dir:ct.default.join(process.cwd(),".cursor")},{name:"User",dir:ct.default.join((0,rd.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=ct.default.join(r.dir,"hooks.json"),i=ct.default.join(r.dir,"hooks");if((0,Mt.existsSync)(n)){e=!0,console.log(`${r.name}: Installed`),console.log(` Config: ${n}`);let a=["session-init.sh","context-inject.sh","save-observation.sh"],o=["session-init.ps1","context-inject.ps1","save-observation.ps1"],s=a.some(p=>(0,Mt.existsSync)(ct.default.join(i,p))),c=o.some(p=>(0,Mt.existsSync)(ct.default.join(i,p)));console.log(s&&c?" Platform: Both (bash + PowerShell)":s?" Platform: Unix (bash)":c?" Platform: Windows (PowerShell)":" No hook scripts found");let u=Jw(),d=(u==="windows"?o:a).filter(p=>!(0,Mt.existsSync)(ct.default.join(i,p)));if(d.length>0?console.log(` Missing ${u} scripts: ${d.join(", ")}`):console.log(` Scripts: All present for ${u}`),r.name==="Project"){let p=ct.default.join(r.dir,"rules","claude-mem-context.mdc");(0,Mt.existsSync)(p)?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 p4(t,e){switch(t){case"install":{let r=e[0]||"project",n=u4();return n?d4(n,r):(console.error("Could not find cursor-hooks directory"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/cursor-hooks/"),1)}case"uninstall":{let r=e[0]||"project";return Kre(r)}case"status":return Jre();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] @@ -777,7 +797,7 @@ Examples: claude-mem cursor status # Check if hooks are installed For more info: https://docs.claude-mem.ai/cursor - `),0}}ph();var f4=require("bun:sqlite");sn();Ae();var fh=class{db;constructor(e){e||(Vr(Nr),e=Xl),this.db=new f4.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(n=>n.name==="observations_fts"||n.name==="session_summaries_fts")||(T.info("DB","Creating FTS5 tables"),this.db.run(` + `),0}}mh();var m4=require("bun:sqlite");cn();Pe();var hh=class{db;constructor(e){e||(Gr(Nr),e=ed),this.db=new m4.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(n=>n.name==="observations_fts"||n.name==="session_summaries_fts")||(k.info("DB","Creating FTS5 tables"),this.db.run(` CREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5( title, subtitle, @@ -841,7 +861,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; - `),T.info("DB","FTS5 tables created successfully"))}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 a=e.type.map(()=>"?").join(",");i.push(`${n}.type IN (${a})`),r.push(...e.type)}else i.push(`${n}.type = ?`),r.push(e.type);if(e.dateRange){let{start:a,end:o}=e.dateRange;if(a){let s=typeof a=="number"?a:new Date(a).getTime();i.push(`${n}.created_at_epoch >= ?`),r.push(s)}if(o){let s=typeof o=="number"?o:new Date(o).getTime();i.push(`${n}.created_at_epoch <= ?`),r.push(s)}}if(e.concepts){let a=Array.isArray(e.concepts)?e.concepts:[e.concepts],o=a.map(()=>`EXISTS (SELECT 1 FROM json_each(${n}.concepts) WHERE value = ?)`);o.length>0&&(i.push(`(${o.join(" OR ")})`),r.push(...a))}if(e.files){let a=Array.isArray(e.files)?e.files:[e.files],o=a.map(()=>`( + `),k.info("DB","FTS5 tables created successfully"))}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 a=e.type.map(()=>"?").join(",");i.push(`${n}.type IN (${a})`),r.push(...e.type)}else i.push(`${n}.type = ?`),r.push(e.type);if(e.dateRange){let{start:a,end:o}=e.dateRange;if(a){let s=typeof a=="number"?a:new Date(a).getTime();i.push(`${n}.created_at_epoch >= ?`),r.push(s)}if(o){let s=typeof o=="number"?o:new Date(o).getTime();i.push(`${n}.created_at_epoch <= ?`),r.push(s)}}if(e.concepts){let a=Array.isArray(e.concepts)?e.concepts:[e.concepts],o=a.map(()=>`EXISTS (SELECT 1 FROM json_each(${n}.concepts) WHERE value = ?)`);o.length>0&&(i.push(`(${o.join(" OR ")})`),r.push(...a))}if(e.files){let a=Array.isArray(e.files)?e.files:[e.files],o=a.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 ")})`),a.forEach(s=>{r.push(`%${s}%`,`%${s}%`)}))}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:a=0,orderBy:o="relevance",...s}=r;if(!e){let c=this.buildFilterClause(s,n,"o");if(!c)throw new Error("Either query or filters required for search");let u=this.buildOrderClause(o,!1),l=` @@ -850,34 +870,34 @@ For more info: https://docs.claude-mem.ai/cursor WHERE ${c} ${u} LIMIT ? OFFSET ? - `;return n.push(i,a),this.db.prepare(l).all(...n)}return T.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}searchSessions(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="relevance",...s}=r;if(!e){let c={...s};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,a),this.db.prepare(l).all(...n)}return k.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}searchSessions(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="relevance",...s}=r;if(!e){let c={...s};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,a),this.db.prepare(d).all(...n)}return T.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}findByConcept(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="date_desc",...s}=r,c={...s,concepts:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` + `;return n.push(i,a),this.db.prepare(d).all(...n)}return k.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}findByConcept(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="date_desc",...s}=r,c={...s,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,a),this.db.prepare(d).all(...n)}findByFile(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="date_desc",...s}=r,c={...s,files:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` + `;return n.push(i,a),this.db.prepare(d).all(...n)}isDirectChild(e,r){return e.startsWith(r+"/")?!e.slice(r.length+1).includes("/"):!1}hasDirectChildFile(e,r){let n=i=>{if(!i)return!1;try{let a=JSON.parse(i);if(Array.isArray(a))return a.some(o=>this.isDirectChild(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 a=JSON.parse(i);if(Array.isArray(a))return a.some(o=>this.isDirectChild(o,r))}catch{}return!1};return n(e.files_read)||n(e.files_edited)}findByFile(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="date_desc",isFolder:s=!1,...c}=r,u=s?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 ${u} - ${l} + WHERE ${d} + ${p} LIMIT ? OFFSET ? - `;n.push(i,a);let p=this.db.prepare(d).all(...n),f=[],h={...s};delete h.type;let _=[];if(h.project&&(_.push("s.project = ?"),f.push(h.project)),h.dateRange){let{start:v,end:g}=h.dateRange;if(v){let b=typeof v=="number"?v:new Date(v).getTime();_.push("s.created_at_epoch >= ?"),f.push(b)}if(g){let b=typeof g=="number"?g:new Date(g).getTime();_.push("s.created_at_epoch <= ?"),f.push(b)}}_.push(`( + `;n.push(u,a);let h=this.db.prepare(f).all(...n);s&&(h=h.filter(b=>this.hasDirectChildFile(b,e)).slice(0,i));let _=[],g={...c};delete g.type;let m=[];if(g.project&&(m.push("s.project = ?"),_.push(g.project)),g.dateRange){let{start:b,end:S}=g.dateRange;if(b){let x=typeof b=="number"?b:new Date(b).getTime();m.push("s.created_at_epoch >= ?"),_.push(x)}if(S){let x=typeof S=="number"?S:new Date(S).getTime();m.push("s.created_at_epoch <= ?"),_.push(x)}}m.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 ?) - )`),f.push(`%${e}%`,`%${e}%`);let y=` + )`),_.push(`%${e}%`,`%${e}%`);let y=` SELECT s.*, s.discovery_tokens FROM session_summaries s - WHERE ${_.join(" AND ")} + WHERE ${m.join(" AND ")} ORDER BY s.created_at_epoch DESC LIMIT ? OFFSET ? - `;f.push(i,a);let m=this.db.prepare(y).all(...f);return{observations:p,sessions:m}}findByType(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="date_desc",...s}=r,c={...s,type:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` + `;_.push(u,a);let v=this.db.prepare(y).all(..._);return s&&(v=v.filter(b=>this.hasDirectChildFileSession(b,e)).slice(0,i)),{observations:h,sessions:v}}findByType(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="date_desc",...s}=r,c={...s,type:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${u} @@ -890,7 +910,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,a),this.db.prepare(d).all(...n)}return T.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}getUserPromptsBySession(e){return this.db.prepare(` + `;return n.push(i,a),this.db.prepare(d).all(...n)}return k.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}getUserPromptsBySession(e){return this.db.prepare(` SELECT id, content_session_id, @@ -901,19 +921,19 @@ 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()}};ph();Ae();yn();sn();var m4=yt(require("path"),1),h4=yt(require("os"),1),mh=class{client=null;transport=null;connected=!1;project;collectionName;VECTOR_DB_DIR;BATCH_SIZE=100;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=m4.default.join(h4.default.homedir(),".claude-mem","vector-db")}async ensureConnection(){if(!(this.connected&&this.client)){T.info("CHROMA_SYNC","Connecting to Chroma MCP server...",{project:this.project});try{let r=nt.loadFromFile(wn).CLAUDE_MEM_PYTHON_VERSION,n=process.platform==="win32",i={command:"uvx",args:["--python",r,"chroma-mcp","--client-type","persistent","--data-dir",this.VECTOR_DB_DIR],stderr:"ignore"};n&&(i.windowsHide=!0,T.debug("CHROMA_SYNC","Windows detected, attempting to hide console window",{project:this.project})),this.transport=new _s(i),this.client=new gs({name:"claude-mem-chroma-sync",version:"1.0.0"},{capabilities:{}}),await this.client.connect(this.transport),this.connected=!0,T.info("CHROMA_SYNC","Connected to Chroma MCP server",{project:this.project})}catch(e){throw T.error("CHROMA_SYNC","Failed to connect to Chroma MCP server",{project:this.project},e),new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}}async ensureCollection(){if(await this.ensureConnection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);try{await this.client.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),T.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch(e){T.warn("CHROMA_SYNC","Collection check failed, attempting to create",{collection:this.collectionName},e),T.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{await this.client.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),T.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(r){throw T.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},r),new Error(`Collection creation failed: ${r instanceof Error?r.message:String(r)}`)}}}formatObservationDocs(e){let r=[],n=e.facts?JSON.parse(e.facts):[],i=e.concepts?JSON.parse(e.concepts):[],a=e.files_read?JSON.parse(e.files_read):[],o=e.files_modified?JSON.parse(e.files_modified):[],s={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&&(s.subtitle=e.subtitle),i.length>0&&(s.concepts=i.join(",")),a.length>0&&(s.files_read=a.join(",")),o.length>0&&(s.files_modified=o.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...s,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...s,field_type:"text"}}),n.forEach((c,u)=>{r.push({id:`obs_${e.id}_fact_${u}`,document:c,metadata:{...s,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){if(await this.ensureCollection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);try{await this.client.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(r=>r.document),ids:e.map(r=>r.id),metadatas:e.map(r=>r.metadata)}}),T.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(r){throw T.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},r),new Error(`Document add failed: ${r instanceof Error?r.message:String(r)}`)}}}async syncObservation(e,r,n,i,a,o,s=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:a,discovery_tokens:s,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatObservationDocs(c);T.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:u.length,project:n}),await this.addDocuments(u)}async syncSummary(e,r,n,i,a,o,s=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:a,discovery_tokens:s,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatSummaryDocs(c);T.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,a,o){let s={id:e,content_session_id:"",prompt_number:a,prompt_text:i,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o,memory_session_id:r,project:n},c=this.formatUserPromptDoc(s);T.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:n}),await this.addDocuments([c])}async getExistingChromaIds(){if(await this.ensureConnection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);let e=new Set,r=new Set,n=new Set,i=0,a=1e3;for(T.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let s=(await this.client.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:a,offset:i,where:{project:this.project},include:["metadatas"]}})).content[0];if(s.type!=="text")throw new Error("Unexpected response type from chroma_get_documents");let u=JSON.parse(s.text).metadatas||[];if(u.length===0)break;for(let l of u)l.sqlite_id&&(l.doc_type==="observation"?e.add(l.sqlite_id):l.doc_type==="session_summary"?r.add(l.sqlite_id):l.doc_type==="user_prompt"&&n.add(l.sqlite_id));i+=a,T.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:i,batchSize:u.length})}catch(o){throw T.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},o),o}return T.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:e.size,summaries:r.size,prompts:n.size}),{observations:e,summaries:r,prompts:n}}async ensureBackfilled(){T.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),r=new _a;try{let n=Array.from(e.observations),i=n.length>0?`AND id NOT IN (${n.join(",")})`:"",a=r.db.prepare(` + `).all(e)}close(){this.db.close()}};mh();Pe();Fr();cn();var h4=dt(require("path"),1),g4=dt(require("os"),1),gh=class{client=null;transport=null;connected=!1;project;collectionName;VECTOR_DB_DIR;BATCH_SIZE=100;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=h4.default.join(g4.default.homedir(),".claude-mem","vector-db")}async ensureConnection(){if(!(this.connected&&this.client)){k.info("CHROMA_SYNC","Connecting to Chroma MCP server...",{project:this.project});try{let r=Fe.loadFromFile($n).CLAUDE_MEM_PYTHON_VERSION,n=process.platform==="win32",i={command:"uvx",args:["--python",r,"chroma-mcp","--client-type","persistent","--data-dir",this.VECTOR_DB_DIR],stderr:"ignore"};n&&(i.windowsHide=!0,k.debug("CHROMA_SYNC","Windows detected, attempting to hide console window",{project:this.project})),this.transport=new bs(i),this.client=new vs({name:"claude-mem-chroma-sync",version:"1.0.0"},{capabilities:{}}),await this.client.connect(this.transport),this.connected=!0,k.info("CHROMA_SYNC","Connected to Chroma MCP server",{project:this.project})}catch(e){throw k.error("CHROMA_SYNC","Failed to connect to Chroma MCP server",{project:this.project},e),new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}}async ensureCollection(){if(await this.ensureConnection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);try{await this.client.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),k.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch(e){let r=e instanceof Error?e.message:String(e);if(r.includes("Not connected")||r.includes("Connection closed")||r.includes("MCP error -32000"))throw this.connected=!1,this.client=null,k.error("CHROMA_SYNC","Connection lost during collection check",{collection:this.collectionName},e),new Error(`Chroma connection lost: ${r}`);k.warn("CHROMA_SYNC","Collection check failed, attempting to create",{collection:this.collectionName},e),k.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{await this.client.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),k.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(i){throw k.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},i),new Error(`Collection creation failed: ${i instanceof Error?i.message:String(i)}`)}}}formatObservationDocs(e){let r=[],n=e.facts?JSON.parse(e.facts):[],i=e.concepts?JSON.parse(e.concepts):[],a=e.files_read?JSON.parse(e.files_read):[],o=e.files_modified?JSON.parse(e.files_modified):[],s={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&&(s.subtitle=e.subtitle),i.length>0&&(s.concepts=i.join(",")),a.length>0&&(s.files_read=a.join(",")),o.length>0&&(s.files_modified=o.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...s,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...s,field_type:"text"}}),n.forEach((c,u)=>{r.push({id:`obs_${e.id}_fact_${u}`,document:c,metadata:{...s,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){if(await this.ensureCollection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);try{await this.client.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(r=>r.document),ids:e.map(r=>r.id),metadatas:e.map(r=>r.metadata)}}),k.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(r){throw k.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},r),new Error(`Document add failed: ${r instanceof Error?r.message:String(r)}`)}}}async syncObservation(e,r,n,i,a,o,s=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:a,discovery_tokens:s,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatObservationDocs(c);k.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:u.length,project:n}),await this.addDocuments(u)}async syncSummary(e,r,n,i,a,o,s=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:a,discovery_tokens:s,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatSummaryDocs(c);k.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,a,o){let s={id:e,content_session_id:"",prompt_number:a,prompt_text:i,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o,memory_session_id:r,project:n},c=this.formatUserPromptDoc(s);k.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:n}),await this.addDocuments([c])}async getExistingChromaIds(){if(await this.ensureConnection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);let e=new Set,r=new Set,n=new Set,i=0,a=1e3;for(k.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let s=(await this.client.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:a,offset:i,where:{project:this.project},include:["metadatas"]}})).content[0];if(s.type!=="text")throw new Error("Unexpected response type from chroma_get_documents");let u=JSON.parse(s.text).metadatas||[];if(u.length===0)break;for(let l of u)l.sqlite_id&&(l.doc_type==="observation"?e.add(l.sqlite_id):l.doc_type==="session_summary"?r.add(l.sqlite_id):l.doc_type==="user_prompt"&&n.add(l.sqlite_id));i+=a,k.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:i,batchSize:u.length})}catch(o){throw k.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},o),o}return k.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:e.size,summaries:r.size,prompts:n.size}),{observations:e,summaries:r,prompts:n}}async ensureBackfilled(){k.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),r=new ya;try{let n=Array.from(e.observations),i=n.length>0?`AND id NOT IN (${n.join(",")})`:"",a=r.db.prepare(` SELECT * FROM observations WHERE project = ? ${i} ORDER BY id ASC `).all(this.project),o=r.db.prepare(` SELECT COUNT(*) as count FROM observations WHERE project = ? - `).get(this.project);T.info("CHROMA_SYNC","Backfilling observations",{project:this.project,missing:a.length,existing:e.observations.size,total:o.count});let s=[];for(let v of a)s.push(...this.formatObservationDocs(v));for(let v=0;v0?`AND id NOT IN (${c.join(",")})`:"",l=r.db.prepare(` + `).get(this.project);k.info("CHROMA_SYNC","Backfilling observations",{project:this.project,missing:a.length,existing:e.observations.size,total:o.count});let s=[];for(let y of a)s.push(...this.formatObservationDocs(y));for(let y=0;y0?`AND id NOT IN (${c.join(",")})`:"",l=r.db.prepare(` SELECT * FROM session_summaries WHERE project = ? ${u} ORDER BY id ASC `).all(this.project),d=r.db.prepare(` SELECT COUNT(*) as count FROM session_summaries WHERE project = ? - `).get(this.project);T.info("CHROMA_SYNC","Backfilling summaries",{project:this.project,missing:l.length,existing:e.summaries.size,total:d.count});let p=[];for(let v of l)p.push(...this.formatSummaryDocs(v));for(let v=0;v0?`AND up.id NOT IN (${f.join(",")})`:"",_=r.db.prepare(` + `).get(this.project);k.info("CHROMA_SYNC","Backfilling summaries",{project:this.project,missing:l.length,existing:e.summaries.size,total:d.count});let p=[];for(let y of l)p.push(...this.formatSummaryDocs(y));for(let y=0;y0?`AND up.id NOT IN (${f.join(",")})`:"",_=r.db.prepare(` SELECT up.*, s.project, @@ -922,16 +942,16 @@ For more info: https://docs.claude-mem.ai/cursor JOIN sdk_sessions s ON up.content_session_id = s.content_session_id WHERE s.project = ? ${h} ORDER BY up.id ASC - `).all(this.project),y=r.db.prepare(` + `).all(this.project),g=r.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(this.project);T.info("CHROMA_SYNC","Backfilling user prompts",{project:this.project,missing:_.length,existing:e.prompts.size,total:y.count});let m=[];for(let v of _)m.push(this.formatUserPromptDoc(v));for(let v=0;vsetTimeout(i,1e3))}}toPendingMessageWithId(e){return{...this.store.toPendingMessage(e),_persistentId:e.id,_originalTimestamp:e.created_at_epoch}}waitForMessage(e){return new Promise(r=>{let n=()=>{a(),r()},i=()=>{a(),r()},a=()=>{this.events.off("message",n),e.removeEventListener("abort",i)};this.events.once("message",n),e.addEventListener("abort",i,{once:!0})})}};var vh=class{dbManager;sessions=new Map;sessionQueues=new Map;onSessionDeletedCallback;pendingStore=null;constructor(e){this.dbManager=e}getPendingStore(){if(!this.pendingStore){let e=this.dbManager.getSessionStore();this.pendingStore=new ed(e.db,3)}return this.pendingStore}setOnSessionDeleted(e){this.onSessionDeletedCallback=e}initializeSession(e,r,n){T.info("SESSION","initializeSession called",{sessionDbId:e,promptNumber:n,has_currentUserPrompt:!!r});let i=this.sessions.get(e);if(i){T.info("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&&(T.debug("SESSION","Updating project from database",{sessionDbId:e,oldProject:i.project,newProject:c.project}),i.project=c.project),r?(T.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):T.debug("SESSION","No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:n,usingCachedPrompt:i.userPrompt.substring(0,80)}),i}let a=this.dbManager.getSessionById(e);T.info("SESSION","Fetched session from database",{sessionDbId:e,content_session_id:a.content_session_id,memory_session_id:a.memory_session_id});let o=r||a.user_prompt;r?T.debug("SESSION","Initializing session with fresh userPrompt",{sessionDbId:e,promptNumber:n,userPrompt:r.substring(0,80)}):T.debug("SESSION","No currentUserPrompt provided for new session, using database",{sessionDbId:e,promptNumber:n,dbPrompt:a.user_prompt.substring(0,80)}),i={sessionDbId:e,contentSessionId:a.content_session_id,memorySessionId:a.memory_session_id||null,project:a.project,userPrompt:o,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(a.content_session_id),startTime:Date.now(),cumulativeInputTokens:0,cumulativeOutputTokens:0,earliestPendingTimestamp:null,conversationHistory:[],currentProvider:null},T.info("SESSION","Creating new session object",{sessionDbId:e,contentSessionId:a.content_session_id,memorySessionId:a.memory_session_id||"(none - fresh session)",lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(a.content_session_id)}),this.sessions.set(e,i);let s=new g4.EventEmitter;return this.sessionQueues.set(e,s),T.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 s=this.getPendingStore().enqueue(e,n.contentSessionId,i);T.debug("SESSION","Observation persisted to DB",{sessionId:e,messageId:s,tool:r.tool_name})}catch(s){throw T.error("SESSION","Failed to persist observation to DB",{sessionId:e,tool:r.tool_name},s),s}this.sessionQueues.get(e)?.emit("message");let o=T.formatTool(r.tool_name,r.tool_input);T.info("SESSION","Observation queued",{sessionId:e,tool:o,hasGenerator:!!n.generatorPromise})}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);T.debug("SESSION","Summarize persisted to DB",{sessionId:e,messageId:o})}catch(o){throw T.error("SESSION","Failed to persist summarize to DB",{sessionId:e},o),o}this.sessionQueues.get(e)?.emit("message"),T.info("SESSION","Summarize queued",{sessionId:e,hasGenerator:!!n.generatorPromise})}async deleteSession(e){let r=this.sessions.get(e);if(!r)return;let n=Date.now()-r.startTime;r.abortController.abort(),r.generatorPromise&&await r.generatorPromise.catch(i=>{T.debug("SYSTEM","Generator already failed, cleaning up",{sessionId:r.sessionDbId})}),this.sessions.delete(e),this.sessionQueues.delete(e),T.info("SESSION","Session deleted",{sessionId:e,duration:`${(n/1e3).toFixed(1)}s`,project:r.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback()}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(r=>this.deleteSession(r)))}hasPendingMessages(){return this.getPendingStore().hasAnyPendingWork()}getActiveSessionCount(){return this.sessions.size}getTotalQueueDepth(){let e=0;for(let r of this.sessions.values())e+=this.getPendingStore().getPendingCount(r.sessionDbId);return e}getTotalActiveWork(){return this.getTotalQueueDepth()}isAnySessionProcessing(){return this.getPendingStore().hasAnyPendingWork()}async*getMessageIterator(e){let r=this.sessions.get(e);r||(r=this.initializeSession(e));let n=this.sessionQueues.get(e);if(!n)throw new Error(`No emitter for session ${e}`);let i=new gh(this.getPendingStore(),n);for await(let a of i.createIterator(e,r.abortController.signal))r.earliestPendingTimestamp===null?r.earliestPendingTimestamp=a._originalTimestamp:r.earliestPendingTimestamp=Math.min(r.earliestPendingTimestamp,a._originalTimestamp),yield a}getPendingMessageStore(){return this.getPendingStore()}};Ae();var yh=class{sseClients=new Set;addClient(e){this.sseClients.add(e),T.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),T.debug("WORKER","Client disconnected",{total:this.sseClients.size})}broadcast(e){if(this.sseClients.size===0){T.debug("WORKER","SSE broadcast skipped (no clients)",{eventType:e.type});return}let r={...e,timestamp:Date.now()},n=`data: ${JSON.stringify(r)} + `).get(this.project);k.info("CHROMA_SYNC","Backfilling user prompts",{project:this.project,missing:_.length,existing:e.prompts.size,total:g.count});let m=[];for(let y of _)m.push(this.formatUserPromptDoc(y));for(let y=0;ysetTimeout(i,1e3))}}toPendingMessageWithId(e){return{...this.store.toPendingMessage(e),_persistentId:e.id,_originalTimestamp:e.created_at_epoch}}waitForMessage(e){return new Promise(r=>{let n=()=>{a(),r()},i=()=>{a(),r()},a=()=>{this.events.off("message",n),e.removeEventListener("abort",i)};this.events.once("message",n),e.addEventListener("abort",i,{once:!0})})}};var _h=class{dbManager;sessions=new Map;sessionQueues=new Map;onSessionDeletedCallback;pendingStore=null;constructor(e){this.dbManager=e}getPendingStore(){if(!this.pendingStore){let e=this.dbManager.getSessionStore();this.pendingStore=new nd(e.db,3)}return this.pendingStore}setOnSessionDeleted(e){this.onSessionDeletedCallback=e}initializeSession(e,r,n){k.debug("SESSION","initializeSession called",{sessionDbId:e,promptNumber:n,has_currentUserPrompt:!!r});let i=this.sessions.get(e);if(i){k.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&&(k.debug("SESSION","Updating project from database",{sessionDbId:e,oldProject:i.project,newProject:c.project}),i.project=c.project),r?(k.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):k.debug("SESSION","No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:n,usingCachedPrompt:i.userPrompt.substring(0,80)}),i}let a=this.dbManager.getSessionById(e);k.debug("SESSION","Fetched session from database",{sessionDbId:e,content_session_id:a.content_session_id,memory_session_id:a.memory_session_id});let o=r||a.user_prompt;r?k.debug("SESSION","Initializing session with fresh userPrompt",{sessionDbId:e,promptNumber:n,userPrompt:r.substring(0,80)}):k.debug("SESSION","No currentUserPrompt provided for new session, using database",{sessionDbId:e,promptNumber:n,dbPrompt:a.user_prompt.substring(0,80)}),i={sessionDbId:e,contentSessionId:a.content_session_id,memorySessionId:a.memory_session_id||null,project:a.project,userPrompt:o,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(a.content_session_id),startTime:Date.now(),cumulativeInputTokens:0,cumulativeOutputTokens:0,earliestPendingTimestamp:null,conversationHistory:[],currentProvider:null},k.debug("SESSION","Creating new session object",{sessionDbId:e,contentSessionId:a.content_session_id,memorySessionId:a.memory_session_id||"(none - fresh session)",lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(a.content_session_id)}),this.sessions.set(e,i);let s=new v4.EventEmitter;return this.sessionQueues.set(e,s),k.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),s=this.getPendingStore().getPendingCount(e),c=k.formatTool(r.tool_name,r.tool_input);k.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${o} | type=observation | tool=${c} | depth=${s}`,{sessionId:e})}catch(o){throw k.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),s=this.getPendingStore().getPendingCount(e);k.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${o} | type=summarize | depth=${s}`,{sessionId:e})}catch(o){throw k.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;r.abortController.abort(),r.generatorPromise&&await r.generatorPromise.catch(i=>{k.debug("SYSTEM","Generator already failed, cleaning up",{sessionId:r.sessionDbId})}),this.sessions.delete(e),this.sessionQueues.delete(e),k.info("SESSION","Session deleted",{sessionId:e,duration:`${(n/1e3).toFixed(1)}s`,project:r.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback()}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(r=>this.deleteSession(r)))}hasPendingMessages(){return this.getPendingStore().hasAnyPendingWork()}getActiveSessionCount(){return this.sessions.size}getTotalQueueDepth(){let e=0;for(let r of this.sessions.values())e+=this.getPendingStore().getPendingCount(r.sessionDbId);return e}getTotalActiveWork(){return this.getTotalQueueDepth()}isAnySessionProcessing(){return this.getPendingStore().hasAnyPendingWork()}async*getMessageIterator(e){let r=this.sessions.get(e);r||(r=this.initializeSession(e));let n=this.sessionQueues.get(e);if(!n)throw new Error(`No emitter for session ${e}`);let i=new yh(this.getPendingStore(),n);for await(let a of i.createIterator(e,r.abortController.signal))r.earliestPendingTimestamp===null?r.earliestPendingTimestamp=a._originalTimestamp:r.earliestPendingTimestamp=Math.min(r.earliestPendingTimestamp,a._originalTimestamp),yield a}getPendingMessageStore(){return this.getPendingStore()}};Pe();var bh=class{sseClients=new Set;addClient(e){this.sseClients.add(e),k.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),k.debug("WORKER","Client disconnected",{total:this.sseClients.size})}broadcast(e){if(this.sseClients.size===0){k.debug("WORKER","SSE broadcast skipped (no clients)",{eventType:e.type});return}let r={...e,timestamp:Date.now()},n=`data: ${JSON.stringify(r)} -`;T.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)} +`;k.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 W6=require("child_process"),K6=require("os"),J6=yt(require("path"),1);Ae();Ae();function Ks(t,e,r,n){return`${n.prompts.system_identity} +`;e.write(n)}};var Y6=require("child_process"),Q6=require("os"),eU=dt(require("path"),1);Pe();Pe();function Ys(t,e,r,n){return`${n.prompts.system_identity} ${r} @@ -986,13 +1006,13 @@ ${n.prompts.format_examples} ${n.prompts.footer} -${n.prompts.header_memory_start}`}function Js(t){let e,r;try{e=typeof t.tool_input=="string"?JSON.parse(t.tool_input):t.tool_input}catch(n){T.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){T.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 Qs(t){let e,r;try{e=typeof t.tool_input=="string"?JSON.parse(t.tool_input):t.tool_input}catch(n){k.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){k.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 Xs(t,e){let r=t.last_assistant_message||T.happyPathError("SDK","Missing last_assistant_message in session for summary prompt",{sessionId:t.id},void 0,"");return`${e.prompts.header_summary_checkpoint} +`}function ec(t,e){let r=t.last_assistant_message||k.happyPathError("SDK","Missing last_assistant_message in session for summary prompt",{sessionId:t.id},void 0,"");return`${e.prompts.header_summary_checkpoint} ${e.prompts.summary_instruction} ${e.prompts.summary_context_label} @@ -1008,7 +1028,7 @@ ${e.prompts.summary_format_instruction} ${e.prompts.xml_summary_notes_placeholder} -${e.prompts.summary_footer}`}function Ys(t,e,r,n){return`${n.prompts.continuation_greeting} +${e.prompts.summary_footer}`}function tc(t,e,r,n){return`${n.prompts.continuation_greeting} ${t} @@ -1067,60 +1087,71 @@ ${n.prompts.format_examples} ${n.prompts.footer} -${n.prompts.header_memory_continued}`}yn();sn();jr();var Jw=["429","500","502","503","ECONNREFUSED","ETIMEDOUT","fetch failed"];Ae();Ae();jr();function y4(t,e){let r=[],n=/([\s\S]*?)<\/observation>/g,i;for(;(i=n.exec(t))!==null;){let a=i[1],o=gi(a,"type"),s=gi(a,"title"),c=gi(a,"subtitle"),u=gi(a,"narrative"),l=bh(a,"facts","fact"),d=bh(a,"concepts","concept"),p=bh(a,"files_read","file"),f=bh(a,"files_modified","file"),_=He.getInstance().getActiveMode().observation_types.map(g=>g.id),y=_[0],m=y;o?_.includes(o.trim())?m=o.trim():T.warn("PARSER",`Invalid observation type: ${o}, using "${y}"`,{correlationId:e}):T.warn("PARSER",`Observation missing type field, using "${y}"`,{correlationId:e});let v=d.filter(g=>g!==m);v.length!==d.length&&T.warn("PARSER","Removed observation type from concepts array",{correlationId:e,type:m,originalConcepts:d,cleanedConcepts:v}),r.push({type:m,title:s,subtitle:c,facts:l,narrative:u,concepts:v,files_read:p,files_modified:f})}return r}function _4(t,e){let n=//.exec(t);if(n)return T.info("PARSER","Summary skipped",{sessionId:e,reason:n[1]}),null;let a=/([\s\S]*?)<\/summary>/.exec(t);if(!a)return null;let o=a[1],s=gi(o,"request"),c=gi(o,"investigated"),u=gi(o,"learned"),l=gi(o,"completed"),d=gi(o,"next_steps"),p=gi(o,"notes");return{request:s,investigated:c,learned:u,completed:l,next_steps:d,notes:p}}function gi(t,e){let n=new RegExp(`<${e}>([^<]*)`).exec(t);if(!n)return null;let i=n[1].trim();return i===""?null:i}function bh(t,e,r){let n=[],a=new RegExp(`<${e}>(.*?)`,"s").exec(t);if(!a)return n;let o=a[1],s=new RegExp(`<${r}>([^<]+)`,"g"),c;for(;(c=s.exec(o))!==null;)n.push(c[1].trim());return n}function Xw(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:e})}function Yw(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:e})}function Qw(t,e){t.earliestPendingTimestamp=null,e&&typeof e.broadcastProcessingStatus=="function"&&e.broadcastProcessingStatus()}async function Vn(t,e,r,n,i,a,o,s){t&&e.conversationHistory.push({role:"assistant",content:t});let c=y4(t,e.contentSessionId),u=_4(t,e.sessionDbId),l=Bre(u),d=r.getSessionStore();if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");let p=d.storeObservations(e.memorySessionId,e.project,c,l,e.lastPromptNumber,a,o??void 0);T.info("SDK",`${s} observations and summary saved atomically`,{sessionId:e.sessionDbId,observationCount:p.observationIds.length,hasSummary:!!p.summaryId,atomicTransaction:!0}),await Vre(c,p,e,r,i,a,s),await Gre(u,l,p,e,r,i,a,s),Qw(e,i)}function Bre(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 Vre(t,e,r,n,i,a,o){for(let s=0;s{let d=Date.now()-l;T.debug("CHROMA","Observation synced",{obsId:c,duration:`${d}ms`,type:u.type,title:u.title||"(untitled)"})}).catch(d=>{T.warn("CHROMA",`${o} chroma sync failed, continuing without vector search`,{obsId:c,type:u.type,title:u.title||"(untitled)"},d)}),Xw(i,{id:c,memory_session_id:r.memorySessionId,session_id:r.contentSessionId,type:u.type,title:u.title,subtitle:u.subtitle,text:null,narrative:u.narrative||null,facts:JSON.stringify(u.facts||[]),concepts:JSON.stringify(u.concepts||[]),files_read:JSON.stringify(u.files_read||[]),files_modified:JSON.stringify(u.files_modified||[]),project:r.project,prompt_number:r.lastPromptNumber,created_at_epoch:e.createdAtEpoch})}}async function Gre(t,e,r,n,i,a,o,s){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;T.debug("CHROMA","Summary synced",{summaryId:r.summaryId,duration:`${u}ms`,request:e.request||"(no request)"})}).catch(u=>{T.warn("CHROMA",`${s} chroma sync failed, continuing without vector search`,{summaryId:r.summaryId,request:e.request||"(no request)"},u)}),Yw(a,{id:r.summaryId,session_id:n.contentSessionId,request:t.request,investigated:t.investigated,learned:t.learned,completed:t.completed,next_steps:t.next_steps,notes:t.notes,project:n.project,prompt_number:n.lastPromptNumber,created_at_epoch:r.createdAtEpoch}),dh(n.project,Ln()).catch(u=>{T.warn("CURSOR","Context update failed (non-critical)",{project:n.project},u)})}function rd(t){let e=Wre(t);return Jw.some(r=>e.includes(r))}function Wre(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 nd(t){return t==null?!1:t instanceof Error&&t.name==="AbortError"?!0:typeof t=="object"&&"name"in t?t.name==="AbortError":!1}var a$=require("path"),d2=require("url"),p2=require("events"),m2=require("child_process"),h2=require("readline"),xe=yt(require("fs"),1),g2=require("fs/promises"),x2=require("path"),S2=require("os"),yo=require("path"),$2=require("process"),E2=require("fs"),k2=require("crypto"),O2=require("crypto"),_c=require("fs"),o$=require("path"),R2=require("crypto");var sfe={},Kre=Object.create,Jre=Object.getPrototypeOf,i$=Object.defineProperty,Xre=Object.getOwnPropertyNames,Yre=Object.prototype.hasOwnProperty,Y4=(t,e,r)=>{r=t!=null?Kre(Jre(t)):{};let n=e||!t||!t.__esModule?i$(r,"default",{value:t,enumerable:!0}):r;for(let i of Xre(t))Yre.call(n,i)||i$(n,i,{get:()=>t[i],enumerable:!0});return n},V=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Q4=(t,e)=>{for(var r in e)i$(t,r,{get:e[r],enumerable:!0,configurable:!0,set:n=>e[r]=()=>n})};var kh=V(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(v){if(super(),!t.IDENTIFIER.test(v))throw new Error("CodeGen: name must be a valid identifier");this.str=v}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(v){super(),this._items=typeof v=="string"?[v]:v}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let v=this._items[0];return v===""||v==='""'}get str(){var v;return(v=this._str)!==null&&v!==void 0?v:this._str=this._items.reduce((g,b)=>`${g}${b}`,"")}get names(){var v;return(v=this._names)!==null&&v!==void 0?v:this._names=this._items.reduce((g,b)=>(b instanceof r&&(g[b.str]=(g[b.str]||0)+1),g),{})}}t._Code=n,t.nil=new n("");function i(m,...v){let g=[m[0]],b=0;for(;b{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=kh();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 a 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=a;var o=(0,e._)`\n`;class s 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 a(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,h=(d=l.key)!==null&&d!==void 0?d:l.ref,_=this._values[f];if(_){let v=_.get(h);if(v)return v}else _=this._values[f]=new Map;_.set(h,p);let y=this._scope[f]||(this._scope[f]=[]),m=y.length;return y[m]=l.ref,p.setValue(l,{property:f,itemIndex:m}),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 h in u){let _=u[h];if(!_)continue;let y=d[h]=d[h]||new Map;_.forEach(m=>{if(y.has(m))return;y.set(m,n.Started);let v=l(m);if(v){let g=this.opts.es5?t.varKinds.var:t.varKinds.const;f=(0,e._)`${f}${g} ${m} = ${v};${this.opts._n}`}else if(v=p?.(m))f=(0,e._)`${f}${v}${this.opts._n}`;else throw new r(m);y.set(m,n.Completed)})}return f}}t.ValueScope=s}),Je=V(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=kh(),r=b4(),n=kh();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=b4();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 a{optimizeNodes(){return this}optimizeNames($,k){return this}}class o extends a{constructor($,k,N){super(),this.varKind=$,this.name=k,this.rhs=N}render({es5:$,_n:k}){let N=$?r.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${N} ${this.name}${W};`+k}optimizeNames($,k){if($[this.name.str])return this.rhs&&(this.rhs=U(this.rhs,$,k)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class s extends a{constructor($,k,N){super(),this.lhs=$,this.rhs=k,this.sideEffects=N}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,k){if(!(this.lhs instanceof e.Name&&!$[this.lhs.str]&&!this.sideEffects))return this.rhs=U(this.rhs,$,k),this}get names(){let $=this.lhs instanceof e.Name?{}:{...this.lhs.names};return B($,this.rhs)}}class c extends s{constructor($,k,N,W){super($,N,W),this.op=k}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class u extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class l extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class d extends a{constructor($){super(),this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class p extends a{constructor($){super(),this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,k){return this.code=U(this.code,$,k),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class f extends a{constructor($=[]){super(),this.nodes=$}render($){return this.nodes.reduce((k,N)=>k+N.render($),"")}optimizeNodes(){let{nodes:$}=this,k=$.length;for(;k--;){let N=$[k].optimizeNodes();Array.isArray(N)?$.splice(k,1,...N):N?$[k]=N:$.splice(k,1)}return $.length>0?this:void 0}optimizeNames($,k){let{nodes:N}=this,W=N.length;for(;W--;){let K=N[W];K.optimizeNames($,k)||(Y($,K.names),N.splice(W,1))}return N.length>0?this:void 0}get names(){return this.nodes.reduce(($,k)=>q($,k.names),{})}}class h extends f{render($){return"{"+$._n+super.render($)+"}"+$._n}}class _ extends f{}class y extends h{}y.kind="else";class m extends h{constructor($,k){super(k),this.condition=$}render($){let k=`if(${this.condition})`+super.render($);return this.else&&(k+="else "+this.else.render($)),k}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let k=this.else;if(k){let N=k.optimizeNodes();k=this.else=Array.isArray(N)?new y(N):N}if(k)return $===!1?k instanceof m?k:k.nodes:this.nodes.length?this:new m(me($),k instanceof m?[k]:k.nodes);if(!($===!1||!this.nodes.length))return this}optimizeNames($,k){var N;if(this.else=(N=this.else)===null||N===void 0?void 0:N.optimizeNames($,k),!!(super.optimizeNames($,k)||this.else))return this.condition=U(this.condition,$,k),this}get names(){let $=super.names;return B($,this.condition),this.else&&q($,this.else.names),$}}m.kind="if";class v extends h{}v.kind="for";class g extends v{constructor($){super(),this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,k){if(super.optimizeNames($,k))return this.iteration=U(this.iteration,$,k),this}get names(){return q(super.names,this.iteration.names)}}class b extends v{constructor($,k,N,W){super(),this.varKind=$,this.name=k,this.from=N,this.to=W}render($){let k=$.es5?r.varKinds.var:this.varKind,{name:N,from:W,to:K}=this;return`for(${k} ${N}=${W}; ${N}<${K}; ${N}++)`+super.render($)}get names(){let $=B(super.names,this.from);return B($,this.to)}}class S extends v{constructor($,k,N,W){super(),this.loop=$,this.varKind=k,this.name=N,this.iterable=W}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,k){if(super.optimizeNames($,k))return this.iterable=U(this.iterable,$,k),this}get names(){return q(super.names,this.iterable.names)}}class x extends h{constructor($,k,N){super(),this.name=$,this.args=k,this.async=N}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}x.kind="func";class w extends f{render($){return"return "+super.render($)}}w.kind="return";class E extends h{render($){let k="try"+super.render($);return this.catch&&(k+=this.catch.render($)),this.finally&&(k+=this.finally.render($)),k}optimizeNodes(){var $,k;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(k=this.finally)===null||k===void 0||k.optimizeNodes(),this}optimizeNames($,k){var N,W;return super.optimizeNames($,k),(N=this.catch)===null||N===void 0||N.optimizeNames($,k),(W=this.finally)===null||W===void 0||W.optimizeNames($,k),this}get names(){let $=super.names;return this.catch&&q($,this.catch.names),this.finally&&q($,this.finally.names),$}}class O extends h{constructor($){super(),this.error=$}render($){return`catch(${this.error})`+super.render($)}}O.kind="catch";class A extends h{render($){return"finally"+super.render($)}}A.kind="finally";class M{constructor($,k={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...k,_n:k.lines?` -`:""},this._extScope=$,this._scope=new r.Scope({parent:$}),this._nodes=[new _]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,k){let N=this._extScope.value($,k);return(this._values[N.prefix]||(this._values[N.prefix]=new Set)).add(N),N}getScopeValue($,k){return this._extScope.getValue($,k)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,k,N,W){let K=this._scope.toName(k);return N!==void 0&&W&&(this._constants[K.str]=N),this._leafNode(new o($,K,N)),K}const($,k,N){return this._def(r.varKinds.const,$,k,N)}let($,k,N){return this._def(r.varKinds.let,$,k,N)}var($,k,N){return this._def(r.varKinds.var,$,k,N)}assign($,k,N){return this._leafNode(new s($,k,N))}add($,k){return this._leafNode(new c($,t.operators.ADD,k))}code($){return typeof $=="function"?$():$!==e.nil&&this._leafNode(new p($)),this}object(...$){let k=["{"];for(let[N,W]of $)k.length>1&&k.push(","),k.push(N),(N!==W||this.opts.es5)&&(k.push(":"),(0,e.addCodeArg)(k,W));return k.push("}"),new e._Code(k)}if($,k,N){if(this._blockNode(new m($)),k&&N)this.code(k).else().code(N).endIf();else if(k)this.code(k).endIf();else if(N)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new m($))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(m,y)}_for($,k){return this._blockNode($),k&&this.code(k).endFor(),this}for($,k){return this._for(new g($),k)}forRange($,k,N,W,K=this.opts.es5?r.varKinds.var:r.varKinds.let){let pe=this._scope.toName($);return this._for(new b(K,pe,k,N),()=>W(pe))}forOf($,k,N,W=r.varKinds.const){let K=this._scope.toName($);if(this.opts.es5){let pe=k instanceof e.Name?k:this.var("_arr",k);return this.forRange("_i",0,(0,e._)`${pe}.length`,ce=>{this.var(K,(0,e._)`${pe}[${ce}]`),N(K)})}return this._for(new S("of",W,K,k),()=>N(K))}forIn($,k,N,W=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf($,(0,e._)`Object.keys(${k})`,N);let K=this._scope.toName($);return this._for(new S("in",W,K,k),()=>N(K))}endFor(){return this._endBlockNode(v)}label($){return this._leafNode(new u($))}break($){return this._leafNode(new l($))}return($){let k=new w;if(this._blockNode(k),this.code($),k.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(w)}try($,k,N){if(!k&&!N)throw new Error('CodeGen: "try" without "catch" and "finally"');let W=new E;if(this._blockNode(W),this.code($),k){let K=this.name("e");this._currNode=W.catch=new O(K),k(K)}return N&&(this._currNode=W.finally=new A,this.code(N)),this._endBlockNode(O,A)}throw($){return this._leafNode(new d($))}block($,k){return this._blockStarts.push(this._nodes.length),$&&this.code($).endBlock(k),this}endBlock($){let k=this._blockStarts.pop();if(k===void 0)throw new Error("CodeGen: not in self-balancing block");let N=this._nodes.length-k;if(N<0||$!==void 0&&N!==$)throw new Error(`CodeGen: wrong number of nodes: ${N} vs ${$} expected`);return this._nodes.length=k,this}func($,k=e.nil,N,W){return this._blockNode(new x($,k,N)),W&&this.code(W).endFunc(),this}endFunc(){return this._endBlockNode(x)}optimize($=1){for(;$-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,k){let N=this._currNode;if(N instanceof $||k&&N instanceof k)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${k?`${$.kind}/${k.kind}`:$.kind}"`)}_elseNode($){let k=this._currNode;if(!(k instanceof m))throw new Error('CodeGen: "else" without "if"');return this._currNode=k.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let k=this._nodes;k[k.length-1]=$}}t.CodeGen=M;function q(C,$){for(let k in $)C[k]=(C[k]||0)+($[k]||0);return C}function B(C,$){return $ instanceof e._CodeOrName?q(C,$.names):C}function U(C,$,k){if(C instanceof e.Name)return N(C);if(!W(C))return C;return new e._Code(C._items.reduce((K,pe)=>(pe instanceof e.Name&&(pe=N(pe)),pe instanceof e._Code?K.push(...pe._items):K.push(pe),K),[]));function N(K){let pe=k[K.str];return pe===void 0||$[K.str]!==1?K:(delete $[K.str],pe)}function W(K){return K instanceof e._Code&&K._items.some(pe=>pe instanceof e.Name&&$[pe.str]===1&&k[pe.str]!==void 0)}}function Y(C,$){for(let k in $)C[k]=(C[k]||0)-($[k]||0)}function me(C){return typeof C=="boolean"||typeof C=="number"||C===null?!C:(0,e._)`!${z(C)}`}t.not=me;var Ye=I(t.operators.AND);function ft(...C){return C.reduce(Ye)}t.and=ft;var fe=I(t.operators.OR);function F(...C){return C.reduce(fe)}t.or=F;function I(C){return($,k)=>$===e.nil?k:k===e.nil?$:(0,e._)`${z($)} ${C} ${z(k)}`}function z(C){return C instanceof e.Name?C:(0,e._)`(${C})`}}),ut=V(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=Je(),r=kh();function n(x){let w={};for(let E of x)w[E]=!0;return w}t.toHash=n;function i(x,w){return typeof w=="boolean"?w:Object.keys(w).length===0?!0:(a(x,w),!o(w,x.self.RULES.all))}t.alwaysValidSchema=i;function a(x,w=x.schema){let{opts:E,self:O}=x;if(!E.strictSchema||typeof w=="boolean")return;let A=O.RULES.keywords;for(let M in w)A[M]||S(x,`unknown keyword: "${M}"`)}t.checkUnknownRules=a;function o(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(w[E])return!0;return!1}t.schemaHasRules=o;function s(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(E!=="$ref"&&w.all[E])return!0;return!1}t.schemaHasRulesButRef=s;function c({topSchemaRef:x,schemaPath:w},E,O,A){if(!A){if(typeof E=="number"||typeof E=="boolean")return E;if(typeof E=="string")return(0,e._)`${E}`}return(0,e._)`${x}${w}${(0,e.getProperty)(O)}`}t.schemaRefOrVal=c;function u(x){return p(decodeURIComponent(x))}t.unescapeFragment=u;function l(x){return encodeURIComponent(d(x))}t.escapeFragment=l;function d(x){return typeof x=="number"?`${x}`:x.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(x){return x.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function f(x,w){if(Array.isArray(x))for(let E of x)w(E);else w(x)}t.eachItem=f;function h({mergeNames:x,mergeToName:w,mergeValues:E,resultToName:O}){return(A,M,q,B)=>{let U=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?x(A,M,q):w(A,M,q),q):M instanceof e.Name?(w(A,q,M),M):E(M,q);return B===e.Name&&!(U instanceof e.Name)?O(A,U):U}}t.mergeEvaluated={props:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>{x.if((0,e._)`${w} === true`,()=>x.assign(E,!0),()=>x.assign(E,(0,e._)`${E} || {}`).code((0,e._)`Object.assign(${E}, ${w})`))}),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>{w===!0?x.assign(E,!0):(x.assign(E,(0,e._)`${E} || {}`),y(x,E,w))}),mergeValues:(x,w)=>x===!0?!0:{...x,...w},resultToName:_}),items:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>x.assign(E,(0,e._)`${w} === true ? true : ${E} > ${w} ? ${E} : ${w}`)),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>x.assign(E,w===!0?!0:(0,e._)`${E} > ${w} ? ${E} : ${w}`)),mergeValues:(x,w)=>x===!0?!0:Math.max(x,w),resultToName:(x,w)=>x.var("items",w)})};function _(x,w){if(w===!0)return x.var("props",!0);let E=x.var("props",(0,e._)`{}`);return w!==void 0&&y(x,E,w),E}t.evaluatedPropsToName=_;function y(x,w,E){Object.keys(E).forEach(O=>x.assign((0,e._)`${w}${(0,e.getProperty)(O)}`,!0))}t.setEvaluated=y;var m={};function v(x,w){return x.scopeValue("func",{ref:w,code:m[w.code]||(m[w.code]=new r._Code(w.code))})}t.useFunc=v;var g;(function(x){x[x.Num=0]="Num",x[x.Str=1]="Str"})(g||(t.Type=g={}));function b(x,w,E){if(x instanceof e.Name){let O=w===g.Num;return E?O?(0,e._)`"[" + ${x} + "]"`:(0,e._)`"['" + ${x} + "']"`:O?(0,e._)`"/" + ${x}`:(0,e._)`"/" + ${x}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return E?(0,e.getProperty)(x).toString():"/"+d(x)}t.getErrorPath=b;function S(x,w,E=x.opts.strictSchema){if(E){if(w=`strict mode: ${w}`,E===!0)throw new Error(w);x.self.logger.warn(w)}}t.checkStrictMode=S}),Ea=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),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}),Mh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=Je(),r=ut(),n=Ea();t.keywordError={message:({keyword:y})=>(0,e.str)`must pass "${y}" keyword validation`},t.keyword$DataError={message:({keyword:y,schemaType:m})=>m?(0,e.str)`"${y}" keyword must be ${m} ($data)`:(0,e.str)`"${y}" keyword is invalid ($data)`};function i(y,m=t.keywordError,v,g){let{it:b}=y,{gen:S,compositeRule:x,allErrors:w}=b,E=d(y,m,v);g??(x||w)?c(S,E):u(b,(0,e._)`[${E}]`)}t.reportError=i;function a(y,m=t.keywordError,v){let{it:g}=y,{gen:b,compositeRule:S,allErrors:x}=g,w=d(y,m,v);c(b,w),S||x||u(g,n.default.vErrors)}t.reportExtraError=a;function o(y,m){y.assign(n.default.errors,m),y.if((0,e._)`${n.default.vErrors} !== null`,()=>y.if(m,()=>y.assign((0,e._)`${n.default.vErrors}.length`,m),()=>y.assign(n.default.vErrors,null)))}t.resetErrorsCount=o;function s({gen:y,keyword:m,schemaValue:v,data:g,errsCount:b,it:S}){if(b===void 0)throw new Error("ajv implementation error");let x=y.name("err");y.forRange("i",b,n.default.errors,w=>{y.const(x,(0,e._)`${n.default.vErrors}[${w}]`),y.if((0,e._)`${x}.instancePath === undefined`,()=>y.assign((0,e._)`${x}.instancePath`,(0,e.strConcat)(n.default.instancePath,S.errorPath))),y.assign((0,e._)`${x}.schemaPath`,(0,e.str)`${S.errSchemaPath}/${m}`),S.opts.verbose&&(y.assign((0,e._)`${x}.schema`,v),y.assign((0,e._)`${x}.data`,g))})}t.extendErrors=s;function c(y,m){let v=y.const("err",m);y.if((0,e._)`${n.default.vErrors} === null`,()=>y.assign(n.default.vErrors,(0,e._)`[${v}]`),(0,e._)`${n.default.vErrors}.push(${v})`),y.code((0,e._)`${n.default.errors}++`)}function u(y,m){let{gen:v,validateName:g,schemaEnv:b}=y;b.$async?v.throw((0,e._)`new ${y.ValidationError}(${m})`):(v.assign((0,e._)`${g}.errors`,m),v.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(y,m,v){let{createErrors:g}=y.it;return g===!1?(0,e._)`{}`:p(y,m,v)}function p(y,m,v={}){let{gen:g,it:b}=y,S=[f(b,v),h(y,v)];return _(y,m,S),g.object(...S)}function f({errorPath:y},{instancePath:m}){let v=m?(0,e.str)`${y}${(0,r.getErrorPath)(m,r.Type.Str)}`:y;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,v)]}function h({keyword:y,it:{errSchemaPath:m}},{schemaPath:v,parentSchema:g}){let b=g?m:(0,e.str)`${m}/${y}`;return v&&(b=(0,e.str)`${b}${(0,r.getErrorPath)(v,r.Type.Str)}`),[l.schemaPath,b]}function _(y,{params:m,message:v},g){let{keyword:b,data:S,schemaValue:x,it:w}=y,{opts:E,propertyName:O,topSchemaRef:A,schemaPath:M}=w;g.push([l.keyword,b],[l.params,typeof m=="function"?m(y):m||(0,e._)`{}`]),E.messages&&g.push([l.message,typeof v=="function"?v(y):v]),E.verbose&&g.push([l.schema,x],[l.parentSchema,(0,e._)`${A}${M}`],[n.default.data,S]),O&&g.push([l.propertyName,O])}}),Qre=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=Mh(),r=Je(),n=Ea(),i={message:"boolean schema is false"};function a(c){let{gen:u,schema:l,validateName:d}=c;l===!1?s(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=a;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),s(c)):l.var(u,!0)}t.boolOrEmptySchema=o;function s(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)}}),e2=V(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(a){return typeof a=="string"&&r.has(a)}t.isJSONType=n;function i(){let a={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...a,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},a.number,a.string,a.array,a.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=i}),t2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:i,self:a},o){let s=a.RULES.types[o];return s&&s!==!0&&r(i,s)}t.schemaHasRulesForType=e;function r(i,a){return a.rules.some(o=>n(i,o))}t.shouldUseGroup=r;function n(i,a){var o;return i[a.keyword]!==void 0||((o=a.definition.implements)===null||o===void 0?void 0:o.some(s=>i[s]!==void 0))}t.shouldUseRule=n}),Th=V(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=e2(),r=t2(),n=Mh(),i=Je(),a=ut(),o;(function(g){g[g.Correct=0]="Correct",g[g.Wrong=1]="Wrong"})(o||(t.DataType=o={}));function s(g){let b=c(g.type);if(b.includes("null")){if(g.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!b.length&&g.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');g.nullable===!0&&b.push("null")}return b}t.getSchemaTypes=s;function c(g){let b=Array.isArray(g)?g:g?[g]:[];if(b.every(e.isJSONType))return b;throw new Error("type must be JSONType or JSONType[]: "+b.join(","))}t.getJSONTypes=c;function u(g,b){let{gen:S,data:x,opts:w}=g,E=d(b,w.coerceTypes),O=b.length>0&&!(E.length===0&&b.length===1&&(0,r.schemaHasRulesForType)(g,b[0]));if(O){let A=_(b,x,w.strictNumbers,o.Wrong);S.if(A,()=>{E.length?p(g,b,E):m(g)})}return O}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(g,b){return b?g.filter(S=>l.has(S)||b==="array"&&S==="array"):[]}function p(g,b,S){let{gen:x,data:w,opts:E}=g,O=x.let("dataType",(0,i._)`typeof ${w}`),A=x.let("coerced",(0,i._)`undefined`);E.coerceTypes==="array"&&x.if((0,i._)`${O} == 'object' && Array.isArray(${w}) && ${w}.length == 1`,()=>x.assign(w,(0,i._)`${w}[0]`).assign(O,(0,i._)`typeof ${w}`).if(_(b,w,E.strictNumbers),()=>x.assign(A,w))),x.if((0,i._)`${A} !== undefined`);for(let q of S)(l.has(q)||q==="array"&&E.coerceTypes==="array")&&M(q);x.else(),m(g),x.endIf(),x.if((0,i._)`${A} !== undefined`,()=>{x.assign(w,A),f(g,A)});function M(q){switch(q){case"string":x.elseIf((0,i._)`${O} == "number" || ${O} == "boolean"`).assign(A,(0,i._)`"" + ${w}`).elseIf((0,i._)`${w} === null`).assign(A,(0,i._)`""`);return;case"number":x.elseIf((0,i._)`${O} == "boolean" || ${w} === null - || (${O} == "string" && ${w} && ${w} == +${w})`).assign(A,(0,i._)`+${w}`);return;case"integer":x.elseIf((0,i._)`${O} === "boolean" || ${w} === null - || (${O} === "string" && ${w} && ${w} == +${w} && !(${w} % 1))`).assign(A,(0,i._)`+${w}`);return;case"boolean":x.elseIf((0,i._)`${w} === "false" || ${w} === 0 || ${w} === null`).assign(A,!1).elseIf((0,i._)`${w} === "true" || ${w} === 1`).assign(A,!0);return;case"null":x.elseIf((0,i._)`${w} === "" || ${w} === 0 || ${w} === false`),x.assign(A,null);return;case"array":x.elseIf((0,i._)`${O} === "string" || ${O} === "number" - || ${O} === "boolean" || ${w} === null`).assign(A,(0,i._)`[${w}]`)}}}function f({gen:g,parentData:b,parentDataProperty:S},x){g.if((0,i._)`${b} !== undefined`,()=>g.assign((0,i._)`${b}[${S}]`,x))}function h(g,b,S,x=o.Correct){let w=x===o.Correct?i.operators.EQ:i.operators.NEQ,E;switch(g){case"null":return(0,i._)`${b} ${w} null`;case"array":E=(0,i._)`Array.isArray(${b})`;break;case"object":E=(0,i._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":E=O((0,i._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":E=O();break;default:return(0,i._)`typeof ${b} ${w} ${g}`}return x===o.Correct?E:(0,i.not)(E);function O(A=i.nil){return(0,i.and)((0,i._)`typeof ${b} == "number"`,A,S?(0,i._)`isFinite(${b})`:i.nil)}}t.checkDataType=h;function _(g,b,S,x){if(g.length===1)return h(g[0],b,S,x);let w,E=(0,a.toHash)(g);if(E.array&&E.object){let O=(0,i._)`typeof ${b} != "object"`;w=E.null?O:(0,i._)`!${b} || ${O}`,delete E.null,delete E.array,delete E.object}else w=i.nil;E.number&&delete E.integer;for(let O in E)w=(0,i.and)(w,h(O,b,S,x));return w}t.checkDataTypes=_;var y={message:({schema:g})=>`must be ${g}`,params:({schema:g,schemaValue:b})=>typeof g=="string"?(0,i._)`{type: ${g}}`:(0,i._)`{type: ${b}}`};function m(g){let b=v(g);(0,n.reportError)(b,y)}t.reportTypeError=m;function v(g){let{gen:b,data:S,schema:x}=g,w=(0,a.schemaRefOrVal)(g,x,"type");return{gen:b,keyword:"type",data:S,schema:x.type,schemaCode:w,schemaValue:w,parentSchema:x,params:{},it:g}}}),ene=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=Je(),r=ut();function n(a,o){let{properties:s,items:c}=a.schema;if(o==="object"&&s)for(let u in s)i(a,u,s[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(a,l,u.default))}t.assignDefaults=n;function i(a,o,s){let{gen:c,compositeRule:u,data:l,opts:d}=a;if(s===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(o)}`;if(u){(0,r.checkStrictMode)(a,`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)(s)}`)}}),Jn=V(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=Je(),r=ut(),n=Ea(),i=ut();function a(g,b){let{gen:S,data:x,it:w}=g;S.if(d(S,x,b,w.opts.ownProperties),()=>{g.setParams({missingProperty:(0,e._)`${b}`},!0),g.error()})}t.checkReportMissingProp=a;function o({gen:g,data:b,it:{opts:S}},x,w){return(0,e.or)(...x.map(E=>(0,e.and)(d(g,b,E,S.ownProperties),(0,e._)`${w} = ${E}`)))}t.checkMissingProp=o;function s(g,b){g.setParams({missingProperty:b},!0),g.error()}t.reportMissingProp=s;function c(g){return g.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(g,b,S){return(0,e._)`${c(g)}.call(${b}, ${S})`}t.isOwnProperty=u;function l(g,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} !== undefined`;return x?(0,e._)`${w} && ${u(g,b,S)}`:w}t.propertyInData=l;function d(g,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} === undefined`;return x?(0,e.or)(w,(0,e.not)(u(g,b,S))):w}t.noPropertyInData=d;function p(g){return g?Object.keys(g).filter(b=>b!=="__proto__"):[]}t.allSchemaProperties=p;function f(g,b){return p(b).filter(S=>!(0,r.alwaysValidSchema)(g,b[S]))}t.schemaProperties=f;function h({schemaCode:g,data:b,it:{gen:S,topSchemaRef:x,schemaPath:w,errorPath:E},it:O},A,M,q){let B=q?(0,e._)`${g}, ${b}, ${x}${w}`:b,U=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,E)],[n.default.parentData,O.parentData],[n.default.parentDataProperty,O.parentDataProperty],[n.default.rootData,n.default.rootData]];O.opts.dynamicRef&&U.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let Y=(0,e._)`${B}, ${S.object(...U)}`;return M!==e.nil?(0,e._)`${A}.call(${M}, ${Y})`:(0,e._)`${A}(${Y})`}t.callValidateCode=h;var _=(0,e._)`new RegExp`;function y({gen:g,it:{opts:b}},S){let x=b.unicodeRegExp?"u":"",{regExp:w}=b.code,E=w(S,x);return g.scopeValue("pattern",{key:E.toString(),ref:E,code:(0,e._)`${w.code==="new RegExp"?_:(0,i.useFunc)(g,w)}(${S}, ${x})`})}t.usePattern=y;function m(g){let{gen:b,data:S,keyword:x,it:w}=g,E=b.name("valid");if(w.allErrors){let A=b.let("valid",!0);return O(()=>b.assign(A,!1)),A}return b.var(E,!0),O(()=>b.break()),E;function O(A){let M=b.const("len",(0,e._)`${S}.length`);b.forRange("i",0,M,q=>{g.subschema({keyword:x,dataProp:q,dataPropType:r.Type.Num},E),b.if((0,e.not)(E),A)})}}t.validateArray=m;function v(g){let{gen:b,schema:S,keyword:x,it:w}=g;if(!Array.isArray(S))throw new Error("ajv implementation error");if(S.some(M=>(0,r.alwaysValidSchema)(w,M))&&!w.opts.unevaluated)return;let O=b.let("valid",!1),A=b.name("_valid");b.block(()=>S.forEach((M,q)=>{let B=g.subschema({keyword:x,schemaProp:q,compositeRule:!0},A);b.assign(O,(0,e._)`${O} || ${A}`),g.mergeValidEvaluated(B,A)||b.if((0,e.not)(O))})),g.result(O,()=>g.reset(),()=>g.error(!0))}t.validateUnion=v}),tne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=Je(),r=Ea(),n=Jn(),i=Mh();function a(f,h){let{gen:_,keyword:y,schema:m,parentSchema:v,it:g}=f,b=h.macro.call(g.self,m,v,g),S=l(_,y,b);g.opts.validateSchema!==!1&&g.self.validateSchema(b,!0);let x=_.name("valid");f.subschema({schema:b,schemaPath:e.nil,errSchemaPath:`${g.errSchemaPath}/${y}`,topSchemaRef:S,compositeRule:!0},x),f.pass(x,()=>f.error(!0))}t.macroKeywordCode=a;function o(f,h){var _;let{gen:y,keyword:m,schema:v,parentSchema:g,$data:b,it:S}=f;u(S,h);let x=!b&&h.compile?h.compile.call(S.self,v,g,S):h.validate,w=l(y,m,x),E=y.let("valid");f.block$data(E,O),f.ok((_=h.valid)!==null&&_!==void 0?_:E);function O(){if(h.errors===!1)q(),h.modifying&&s(f),B(()=>f.error());else{let U=h.async?A():M();h.modifying&&s(f),B(()=>c(f,U))}}function A(){let U=y.let("ruleErrs",null);return y.try(()=>q((0,e._)`await `),Y=>y.assign(E,!1).if((0,e._)`${Y} instanceof ${S.ValidationError}`,()=>y.assign(U,(0,e._)`${Y}.errors`),()=>y.throw(Y))),U}function M(){let U=(0,e._)`${w}.errors`;return y.assign(U,null),q(e.nil),U}function q(U=h.async?(0,e._)`await `:e.nil){let Y=S.opts.passContext?r.default.this:r.default.self,me=!("compile"in h&&!b||h.schema===!1);y.assign(E,(0,e._)`${U}${(0,n.callValidateCode)(f,w,Y,me)}`,h.modifying)}function B(U){var Y;y.if((0,e.not)((Y=h.valid)!==null&&Y!==void 0?Y:E),U)}}t.funcKeywordCode=o;function s(f){let{gen:h,data:_,it:y}=f;h.if(y.parentData,()=>h.assign(_,(0,e._)`${y.parentData}[${y.parentDataProperty}]`))}function c(f,h){let{gen:_}=f;_.if((0,e._)`Array.isArray(${h})`,()=>{_.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${h} : ${r.default.vErrors}.concat(${h})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,i.extendErrors)(f)},()=>f.error())}function u({schemaEnv:f},h){if(h.async&&!f.$async)throw new Error("async keyword in sync schema")}function l(f,h,_){if(_===void 0)throw new Error(`keyword "${h}" failed to compile`);return f.scopeValue("keyword",typeof _=="function"?{ref:_}:{ref:_,code:(0,e.stringify)(_)})}function d(f,h,_=!1){return!h.length||h.some(y=>y==="array"?Array.isArray(f):y==="object"?f&&typeof f=="object"&&!Array.isArray(f):typeof f==y||_&&typeof f>"u")}t.validSchemaType=d;function p({schema:f,opts:h,self:_,errSchemaPath:y},m,v){if(Array.isArray(m.keyword)?!m.keyword.includes(v):m.keyword!==v)throw new Error("ajv implementation error");let g=m.dependencies;if(g?.some(b=>!Object.prototype.hasOwnProperty.call(f,b)))throw new Error(`parent schema must have dependencies of ${v}: ${g.join(",")}`);if(m.validateSchema&&!m.validateSchema(f[v])){let S=`keyword "${v}" value is invalid at path "${y}": `+_.errorsText(m.validateSchema.errors);if(h.validateSchema==="log")_.logger.error(S);else throw new Error(S)}}t.validateKeywordUsage=p}),rne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=Je(),r=ut();function n(o,{keyword:s,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(s!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(s!==void 0){let f=o.schema[s];return c===void 0?{schema:f,schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}`,errSchemaPath:`${o.errSchemaPath}/${s}`}:{schema:f[c],schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}${(0,e.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${s}/${(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,s,{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}=s;if(c!==void 0){let{errorPath:_,dataPathArr:y,opts:m}=s,v=f.let("data",(0,e._)`${s.data}${(0,e.getProperty)(c)}`,!0);h(v),o.errorPath=(0,e.str)`${_}${(0,r.getErrorPath)(c,u,m.jsPropertySyntax)}`,o.parentDataProperty=(0,e._)`${c}`,o.dataPathArr=[...y,o.parentDataProperty]}if(l!==void 0){let _=l instanceof e.Name?l:f.let("data",l,!0);h(_),p!==void 0&&(o.propertyName=p)}d&&(o.dataTypes=d);function h(_){o.data=_,o.dataLevel=s.dataLevel+1,o.dataTypes=[],s.definedProperties=new Set,o.parentData=s.data,o.dataNames=[...s.dataNames,_]}}t.extendSubschemaData=i;function a(o,{jtdDiscriminator:s,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=s,o.jtdMetadata=c}t.extendSubschemaMode=a}),zh=V((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 a,o,s;if(Array.isArray(n)){if(a=n.length,a!=i.length)return!1;for(o=a;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(s=Object.keys(n),a=s.length,a!==Object.keys(i).length)return!1;for(o=a;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,s[o]))return!1;for(o=a;o--!==0;){var c=s[o];if(!r(n[c],i[c]))return!1}return!0}return n!==n&&i!==i}}),nne=V((t,e)=>{var r=e.exports=function(a,o,s){typeof o=="function"&&(s=o,o={}),s=o.cb||s;var c=typeof s=="function"?s:s.pre||function(){},u=s.post||function(){};n(o,c,u,a,"",a)};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(a,o,s,c,u,l,d,p,f,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,p,f,h);for(var _ in c){var y=c[_];if(Array.isArray(y)){if(_ in r.arrayKeywords)for(var m=0;m{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=ut(),r=zh(),n=nne(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function a(y,m=!0){return typeof y=="boolean"?!0:m===!0?!s(y):m?c(y)<=m:!1}t.inlineRef=a;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function s(y){for(let m in y){if(o.has(m))return!0;let v=y[m];if(Array.isArray(v)&&v.some(s)||typeof v=="object"&&s(v))return!0}return!1}function c(y){let m=0;for(let v in y){if(v==="$ref")return 1/0;if(m++,!i.has(v)&&(typeof y[v]=="object"&&(0,e.eachItem)(y[v],g=>m+=c(g)),m===1/0))return 1/0}return m}function u(y,m="",v){v!==!1&&(m=p(m));let g=y.parse(m);return l(y,g)}t.getFullPath=u;function l(y,m){return y.serialize(m).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(y){return y?y.replace(d,""):""}t.normalizeId=p;function f(y,m,v){return v=p(v),y.resolve(m,v)}t.resolveUrl=f;var h=/^[a-z_][-a-z0-9._]*$/i;function _(y,m){if(typeof y=="boolean")return{};let{schemaId:v,uriResolver:g}=this.opts,b=p(y[v]||m),S={"":b},x=u(g,b,!1),w={},E=new Set;return n(y,{allKeys:!0},(M,q,B,U)=>{if(U===void 0)return;let Y=x+q,me=S[U];typeof M[v]=="string"&&(me=Ye.call(this,M[v])),ft.call(this,M.$anchor),ft.call(this,M.$dynamicAnchor),S[q]=me;function Ye(fe){let F=this.opts.uriResolver.resolve;if(fe=p(me?F(me,fe):fe),E.has(fe))throw A(fe);E.add(fe);let I=this.refs[fe];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?O(M,I.schema,fe):fe!==p(Y)&&(fe[0]==="#"?(O(M,w[fe],fe),w[fe]=M):this.refs[fe]=Y),fe}function ft(fe){if(typeof fe=="string"){if(!h.test(fe))throw new Error(`invalid anchor "${fe}"`);Ye.call(this,`#${fe}`)}}}),w;function O(M,q,B){if(q!==void 0&&!r(M,q))throw A(B)}function A(M){return new Error(`reference "${M}" resolves to more than one schema`)}}t.getSchemaRefs=_}),Uh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=Qre(),r=Th(),n=t2(),i=Th(),a=ene(),o=tne(),s=rne(),c=Je(),u=Ea(),l=Dh(),d=ut(),p=Mh();function f(P){if(x(P)&&(E(P),S(P))){m(P);return}h(P,()=>(0,e.topBoolOrEmptySchema)(P))}t.validateFunctionCode=f;function h({gen:P,validateName:R,schema:D,schemaEnv:Z,opts:J},ie){J.code.es5?P.func(R,(0,c._)`${u.default.data}, ${u.default.valCxt}`,Z.$async,()=>{P.code((0,c._)`"use strict"; ${g(D,J)}`),y(P,J),P.code(ie)}):P.func(R,(0,c._)`${u.default.data}, ${_(J)}`,Z.$async,()=>P.code(g(D,J)).code(ie))}function _(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 y(P,R){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}`),R.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),R.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function m(P){let{schema:R,opts:D,gen:Z}=P;h(P,()=>{D.$comment&&R.$comment&&U(P),M(P),Z.let(u.default.vErrors,null),Z.let(u.default.errors,0),D.unevaluated&&v(P),O(P),Y(P)})}function v(P){let{gen:R,validateName:D}=P;P.evaluated=R.const("evaluated",(0,c._)`${D}.evaluated`),R.if((0,c._)`${P.evaluated}.dynamicProps`,()=>R.assign((0,c._)`${P.evaluated}.props`,(0,c._)`undefined`)),R.if((0,c._)`${P.evaluated}.dynamicItems`,()=>R.assign((0,c._)`${P.evaluated}.items`,(0,c._)`undefined`))}function g(P,R){let D=typeof P=="object"&&P[R.schemaId];return D&&(R.code.source||R.code.process)?(0,c._)`/*# sourceURL=${D} */`:c.nil}function b(P,R){if(x(P)&&(E(P),S(P))){w(P,R);return}(0,e.boolOrEmptySchema)(P,R)}function S({schema:P,self:R}){if(typeof P=="boolean")return!P;for(let D in P)if(R.RULES.all[D])return!0;return!1}function x(P){return typeof P.schema!="boolean"}function w(P,R){let{schema:D,gen:Z,opts:J}=P;J.$comment&&D.$comment&&U(P),q(P),B(P);let ie=Z.const("_errs",u.default.errors);O(P,ie),Z.var(R,(0,c._)`${ie} === ${u.default.errors}`)}function E(P){(0,d.checkUnknownRules)(P),A(P)}function O(P,R){if(P.opts.jtd)return Ye(P,[],!1,R);let D=(0,r.getSchemaTypes)(P.schema),Z=(0,r.coerceAndCheckDataType)(P,D);Ye(P,D,!Z,R)}function A(P){let{schema:R,errSchemaPath:D,opts:Z,self:J}=P;R.$ref&&Z.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(R,J.RULES)&&J.logger.warn(`$ref: keywords ignored in schema at path "${D}"`)}function M(P){let{schema:R,opts:D}=P;R.default!==void 0&&D.useDefaults&&D.strictSchema&&(0,d.checkStrictMode)(P,"default is ignored in the schema root")}function q(P){let R=P.schema[P.opts.schemaId];R&&(P.baseId=(0,l.resolveUrl)(P.opts.uriResolver,P.baseId,R))}function B(P){if(P.schema.$async&&!P.schemaEnv.$async)throw new Error("async schema in sync schema")}function U({gen:P,schemaEnv:R,schema:D,errSchemaPath:Z,opts:J}){let ie=D.$comment;if(J.$comment===!0)P.code((0,c._)`${u.default.self}.logger.log(${ie})`);else if(typeof J.$comment=="function"){let Qe=(0,c.str)`${Z}/$comment`,Zt=P.scopeValue("root",{ref:R.root});P.code((0,c._)`${u.default.self}.opts.$comment(${ie}, ${Qe}, ${Zt}.schema)`)}}function Y(P){let{gen:R,schemaEnv:D,validateName:Z,ValidationError:J,opts:ie}=P;D.$async?R.if((0,c._)`${u.default.errors} === 0`,()=>R.return(u.default.data),()=>R.throw((0,c._)`new ${J}(${u.default.vErrors})`)):(R.assign((0,c._)`${Z}.errors`,u.default.vErrors),ie.unevaluated&&me(P),R.return((0,c._)`${u.default.errors} === 0`))}function me({gen:P,evaluated:R,props:D,items:Z}){D instanceof c.Name&&P.assign((0,c._)`${R}.props`,D),Z instanceof c.Name&&P.assign((0,c._)`${R}.items`,Z)}function Ye(P,R,D,Z){let{gen:J,schema:ie,data:Qe,allErrors:Zt,opts:gt,self:vt}=P,{RULES:et}=vt;if(ie.$ref&&(gt.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(ie,et))){J.block(()=>K(P,"$ref",et.all.$ref.definition));return}gt.jtd||fe(P,R),J.block(()=>{for(let Ct of et.rules)Yr(Ct);Yr(et.post)});function Yr(Ct){(0,n.shouldUseGroup)(ie,Ct)&&(Ct.type?(J.if((0,i.checkDataType)(Ct.type,Qe,gt.strictNumbers)),ft(P,Ct),R.length===1&&R[0]===Ct.type&&D&&(J.else(),(0,i.reportTypeError)(P)),J.endIf()):ft(P,Ct),Zt||J.if((0,c._)`${u.default.errors} === ${Z||0}`))}}function ft(P,R){let{gen:D,schema:Z,opts:{useDefaults:J}}=P;J&&(0,a.assignDefaults)(P,R.type),D.block(()=>{for(let ie of R.rules)(0,n.shouldUseRule)(Z,ie)&&K(P,ie.keyword,ie.definition,R.type)})}function fe(P,R){P.schemaEnv.meta||!P.opts.strictTypes||(F(P,R),P.opts.allowUnionTypes||I(P,R),z(P,P.dataTypes))}function F(P,R){if(R.length){if(!P.dataTypes.length){P.dataTypes=R;return}R.forEach(D=>{$(P.dataTypes,D)||N(P,`type "${D}" not allowed by context "${P.dataTypes.join(",")}"`)}),k(P,R)}}function I(P,R){R.length>1&&!(R.length===2&&R.includes("null"))&&N(P,"use allowUnionTypes to allow union type keyword")}function z(P,R){let D=P.self.RULES.all;for(let Z in D){let J=D[Z];if(typeof J=="object"&&(0,n.shouldUseRule)(P.schema,J)){let{type:ie}=J.definition;ie.length&&!ie.some(Qe=>C(R,Qe))&&N(P,`missing type "${ie.join(",")}" for keyword "${Z}"`)}}}function C(P,R){return P.includes(R)||R==="number"&&P.includes("integer")}function $(P,R){return P.includes(R)||R==="integer"&&P.includes("number")}function k(P,R){let D=[];for(let Z of P.dataTypes)$(R,Z)?D.push(Z):R.includes("integer")&&Z==="number"&&D.push("integer");P.dataTypes=D}function N(P,R){let D=P.schemaEnv.baseId+P.errSchemaPath;R+=` at "${D}" (strictTypes)`,(0,d.checkStrictMode)(P,R,P.opts.strictTypes)}class W{constructor(R,D,Z){if((0,o.validateKeywordUsage)(R,D,Z),this.gen=R.gen,this.allErrors=R.allErrors,this.keyword=Z,this.data=R.data,this.schema=R.schema[Z],this.$data=D.$data&&R.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(R,this.schema,Z,this.$data),this.schemaType=D.schemaType,this.parentSchema=R.schema,this.params={},this.it=R,this.def=D,this.$data)this.schemaCode=R.gen.const("vSchema",Ne(this.$data,R));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,D.schemaType,D.allowUndefined))throw new Error(`${Z} value must be ${JSON.stringify(D.schemaType)}`);("code"in D?D.trackErrors:D.errors!==!1)&&(this.errsCount=R.gen.const("_errs",u.default.errors))}result(R,D,Z){this.failResult((0,c.not)(R),D,Z)}failResult(R,D,Z){this.gen.if(R),Z?Z():this.error(),D?(this.gen.else(),D(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(R,D){this.failResult((0,c.not)(R),void 0,D)}fail(R){if(R===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(R),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(R){if(!this.$data)return this.fail(R);let{schemaCode:D}=this;this.fail((0,c._)`${D} !== undefined && (${(0,c.or)(this.invalid$data(),R)})`)}error(R,D,Z){if(D){this.setParams(D),this._error(R,Z),this.setParams({});return}this._error(R,Z)}_error(R,D){(R?p.reportExtraError:p.reportError)(this,this.def.error,D)}$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(R){this.allErrors||this.gen.if(R)}setParams(R,D){D?Object.assign(this.params,R):this.params=R}block$data(R,D,Z=c.nil){this.gen.block(()=>{this.check$data(R,Z),D()})}check$data(R=c.nil,D=c.nil){if(!this.$data)return;let{gen:Z,schemaCode:J,schemaType:ie,def:Qe}=this;Z.if((0,c.or)((0,c._)`${J} === undefined`,D)),R!==c.nil&&Z.assign(R,!0),(ie.length||Qe.validateSchema)&&(Z.elseIf(this.invalid$data()),this.$dataError(),R!==c.nil&&Z.assign(R,!1)),Z.else()}invalid$data(){let{gen:R,schemaCode:D,schemaType:Z,def:J,it:ie}=this;return(0,c.or)(Qe(),Zt());function Qe(){if(Z.length){if(!(D instanceof c.Name))throw new Error("ajv implementation error");let gt=Array.isArray(Z)?Z:[Z];return(0,c._)`${(0,i.checkDataTypes)(gt,D,ie.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Zt(){if(J.validateSchema){let gt=R.scopeValue("validate$data",{ref:J.validateSchema});return(0,c._)`!${gt}(${D})`}return c.nil}}subschema(R,D){let Z=(0,s.getSubschema)(this.it,R);(0,s.extendSubschemaData)(Z,this.it,R),(0,s.extendSubschemaMode)(Z,R);let J={...this.it,...Z,items:void 0,props:void 0};return b(J,D),J}mergeEvaluated(R,D){let{it:Z,gen:J}=this;Z.opts.unevaluated&&(Z.props!==!0&&R.props!==void 0&&(Z.props=d.mergeEvaluated.props(J,R.props,Z.props,D)),Z.items!==!0&&R.items!==void 0&&(Z.items=d.mergeEvaluated.items(J,R.items,Z.items,D)))}mergeValidEvaluated(R,D){let{it:Z,gen:J}=this;if(Z.opts.unevaluated&&(Z.props!==!0||Z.items!==!0))return J.if(D,()=>this.mergeEvaluated(R,c.Name)),!0}}t.KeywordCxt=W;function K(P,R,D,Z){let J=new W(P,D,R);"code"in D?D.code(J,Z):J.$data&&D.validate?(0,o.funcKeywordCode)(J,D):"macro"in D?(0,o.macroKeywordCode)(J,D):(D.compile||D.validate)&&(0,o.funcKeywordCode)(J,D)}var pe=/^\/(?:[^~]|~0|~1)*$/,ce=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ne(P,{dataLevel:R,dataNames:D,dataPathArr:Z}){let J,ie;if(P==="")return u.default.rootData;if(P[0]==="/"){if(!pe.test(P))throw new Error(`Invalid JSON-pointer: ${P}`);J=P,ie=u.default.rootData}else{let vt=ce.exec(P);if(!vt)throw new Error(`Invalid JSON-pointer: ${P}`);let et=+vt[1];if(J=vt[2],J==="#"){if(et>=R)throw new Error(gt("property/index",et));return Z[R-et]}if(et>R)throw new Error(gt("data",et));if(ie=D[R-et],!J)return ie}let Qe=ie,Zt=J.split("/");for(let vt of Zt)vt&&(ie=(0,c._)`${ie}${(0,c.getProperty)((0,d.unescapeJsonPointer)(vt))}`,Qe=(0,c._)`${Qe} && ${ie}`);return Qe;function gt(vt,et){return`Cannot access ${vt} ${et} levels up, current level is ${R}`}}t.getData=Ne}),E$=V(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}),qh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Dh();class r extends Error{constructor(i,a,o,s){super(s||`can't resolve reference ${o} from id ${a}`),this.missingRef=(0,e.resolveUrl)(i,a,o),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(i,this.missingRef))}}t.default=r}),k$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=Je(),r=E$(),n=Ea(),i=Dh(),a=ut(),o=Uh();class s{constructor(v){var g;this.refs={},this.dynamicAnchors={};let b;typeof v.schema=="object"&&(b=v.schema),this.schema=v.schema,this.schemaId=v.schemaId,this.root=v.root||this,this.baseId=(g=v.baseId)!==null&&g!==void 0?g:(0,i.normalizeId)(b?.[v.schemaId||"$id"]),this.schemaPath=v.schemaPath,this.localRefs=v.localRefs,this.meta=v.meta,this.$async=b?.$async,this.refs={}}}t.SchemaEnv=s;function c(m){let v=d.call(this,m);if(v)return v;let g=(0,i.getFullPath)(this.opts.uriResolver,m.root.baseId),{es5:b,lines:S}=this.opts.code,{ownProperties:x}=this.opts,w=new e.CodeGen(this.scope,{es5:b,lines:S,ownProperties:x}),E;m.$async&&(E=w.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let O=w.scopeName("validate");m.validateName=O;let A={gen:w,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:w.scopeValue("schema",this.opts.code.source===!0?{ref:m.schema,code:(0,e.stringify)(m.schema)}:{ref:m.schema}),validateName:O,ValidationError:E,schema:m.schema,schemaEnv:m,rootId:g,baseId:m.baseId||g,schemaPath:e.nil,errSchemaPath:m.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},M;try{this._compilations.add(m),(0,o.validateFunctionCode)(A),w.optimize(this.opts.code.optimize);let q=w.toString();M=`${w.scopeRefs(n.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,m));let U=new Function(`${n.default.self}`,`${n.default.scope}`,M)(this,this.scope.get());if(this.scope.value(O,{ref:U}),U.errors=null,U.schema=m.schema,U.schemaEnv=m,m.$async&&(U.$async=!0),this.opts.code.source===!0&&(U.source={validateName:O,validateCode:q,scopeValues:w._values}),this.opts.unevaluated){let{props:Y,items:me}=A;U.evaluated={props:Y instanceof e.Name?void 0:Y,items:me instanceof e.Name?void 0:me,dynamicProps:Y instanceof e.Name,dynamicItems:me instanceof e.Name},U.source&&(U.source.evaluated=(0,e.stringify)(U.evaluated))}return m.validate=U,m}catch(q){throw delete m.validate,delete m.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(m)}}t.compileSchema=c;function u(m,v,g){var b;g=(0,i.resolveUrl)(this.opts.uriResolver,v,g);let S=m.refs[g];if(S)return S;let x=f.call(this,m,g);if(x===void 0){let w=(b=m.localRefs)===null||b===void 0?void 0:b[g],{schemaId:E}=this.opts;w&&(x=new s({schema:w,schemaId:E,root:m,baseId:v}))}if(x!==void 0)return m.refs[g]=l.call(this,x)}t.resolveRef=u;function l(m){return(0,i.inlineRef)(m.schema,this.opts.inlineRefs)?m.schema:m.validate?m:c.call(this,m)}function d(m){for(let v of this._compilations)if(p(v,m))return v}t.getCompilingSchema=d;function p(m,v){return m.schema===v.schema&&m.root===v.root&&m.baseId===v.baseId}function f(m,v){let g;for(;typeof(g=this.refs[v])=="string";)v=g;return g||this.schemas[v]||h.call(this,m,v)}function h(m,v){let g=this.opts.uriResolver.parse(v),b=(0,i._getFullPath)(this.opts.uriResolver,g),S=(0,i.getFullPath)(this.opts.uriResolver,m.baseId,void 0);if(Object.keys(m.schema).length>0&&b===S)return y.call(this,g,m);let x=(0,i.normalizeId)(b),w=this.refs[x]||this.schemas[x];if(typeof w=="string"){let E=h.call(this,m,w);return typeof E?.schema!="object"?void 0:y.call(this,g,E)}if(typeof w?.schema=="object"){if(w.validate||c.call(this,w),x===(0,i.normalizeId)(v)){let{schema:E}=w,{schemaId:O}=this.opts,A=E[O];return A&&(S=(0,i.resolveUrl)(this.opts.uriResolver,S,A)),new s({schema:E,schemaId:O,root:m,baseId:S})}return y.call(this,g,w)}}t.resolveSchema=h;var _=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function y(m,{baseId:v,schema:g,root:b}){var S;if(((S=m.fragment)===null||S===void 0?void 0:S[0])!=="/")return;for(let E of m.fragment.slice(1).split("/")){if(typeof g=="boolean")return;let O=g[(0,a.unescapeFragment)(E)];if(O===void 0)return;g=O;let A=typeof g=="object"&&g[this.opts.schemaId];!_.has(E)&&A&&(v=(0,i.resolveUrl)(this.opts.uriResolver,v,A))}let x;if(typeof g!="boolean"&&g.$ref&&!(0,a.schemaHasRulesButRef)(g,this.RULES)){let E=(0,i.resolveUrl)(this.opts.uriResolver,v,g.$ref);x=h.call(this,b,E)}let{schemaId:w}=this.opts;if(x=x||new s({schema:g,schemaId:w,root:b,baseId:v}),x.schema!==x.root.schema)return x}}),ine=V((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}}),ane=V((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}}),one=V((t,e)=>{var{HEX:r}=ane(),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(m){if(u(m,".")<3)return{host:m,isIPV4:!1};let v=m.match(n)||[],[g]=v;return g?{host:c(g,"."),isIPV4:!0}:{host:m,isIPV4:!1}}function a(m,v=!1){let g="",b=!0;for(let S of m){if(r[S]===void 0)return;S!=="0"&&b===!0&&(b=!1),b||(g+=S)}return v&&g.length===0&&(g="0"),g}function o(m){let v=0,g={error:!1,address:"",zone:""},b=[],S=[],x=!1,w=!1,E=!1;function O(){if(S.length){if(x===!1){let A=a(S);if(A!==void 0)b.push(A);else return g.error=!0,!1}S.length=0}return!0}for(let A=0;A7){g.error=!0;break}A-1>=0&&m[A-1]===":"&&(w=!0);continue}else if(M==="%"){if(!O())break;x=!0}else{S.push(M);continue}}return S.length&&(x?g.zone=S.join(""):E?b.push(S.join("")):b.push(a(S))),g.address=b.join(""),g}function s(m){if(u(m,":")<2)return{host:m,isIPV6:!1};let v=o(m);if(v.error)return{host:m,isIPV6:!1};{let g=v.address,b=v.address;return v.zone&&(g+="%"+v.zone,b+="%25"+v.zone),{host:g,escapedHost:b,isIPV6:!0}}}function c(m,v){let g="",b=!0,S=m.length;for(let x=0;x{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(b){return typeof b.secure=="boolean"?b.secure:String(b.scheme).toLowerCase()==="wss"}function a(b){return b.host||(b.error=b.error||"HTTP URIs must have a host."),b}function o(b){let S=String(b.scheme).toLowerCase()==="https";return(b.port===(S?443:80)||b.port==="")&&(b.port=void 0),b.path||(b.path="/"),b}function s(b){return b.secure=i(b),b.resourceName=(b.path||"/")+(b.query?"?"+b.query:""),b.path=void 0,b.query=void 0,b}function c(b){if((b.port===(i(b)?443:80)||b.port==="")&&(b.port=void 0),typeof b.secure=="boolean"&&(b.scheme=b.secure?"wss":"ws",b.secure=void 0),b.resourceName){let[S,x]=b.resourceName.split("?");b.path=S&&S!=="/"?S:void 0,b.query=x,b.resourceName=void 0}return b.fragment=void 0,b}function u(b,S){if(!b.path)return b.error="URN can not be parsed",b;let x=b.path.match(n);if(x){let w=S.scheme||b.scheme||"urn";b.nid=x[1].toLowerCase(),b.nss=x[2];let E=`${w}:${S.nid||b.nid}`,O=g[E];b.path=void 0,O&&(b=O.parse(b,S))}else b.error=b.error||"URN can not be parsed.";return b}function l(b,S){let x=S.scheme||b.scheme||"urn",w=b.nid.toLowerCase(),E=`${x}:${S.nid||w}`,O=g[E];O&&(b=O.serialize(b,S));let A=b,M=b.nss;return A.path=`${w||S.nid}:${M}`,S.skipEscape=!0,A}function d(b,S){let x=b;return x.uuid=x.nss,x.nss=void 0,!S.tolerant&&(!x.uuid||!r.test(x.uuid))&&(x.error=x.error||"UUID is not valid."),x}function p(b){let S=b;return S.nss=(b.uuid||"").toLowerCase(),S}var f={scheme:"http",domainHost:!0,parse:a,serialize:o},h={scheme:"https",domainHost:f.domainHost,parse:a,serialize:o},_={scheme:"ws",domainHost:!0,parse:s,serialize:c},y={scheme:"wss",domainHost:_.domainHost,parse:_.parse,serialize:_.serialize},m={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},v={scheme:"urn:uuid",parse:d,serialize:p,skipNormalize:!0},g={http:f,https:h,ws:_,wss:y,urn:m,"urn:uuid":v};e.exports=g}),r2=V((t,e)=>{var{normalizeIPv6:r,normalizeIPv4:n,removeDotSegments:i,recomposeAuthority:a,normalizeComponentEncoding:o}=one(),s=sne();function c(v,g){return typeof v=="string"?v=p(y(v,g),g):typeof v=="object"&&(v=y(p(v,g),g)),v}function u(v,g,b){let S=Object.assign({scheme:"null"},b),x=l(y(v,S),y(g,S),S,!0);return p(x,{...S,skipEscape:!0})}function l(v,g,b,S){let x={};return S||(v=y(p(v,b),b),g=y(p(g,b),b)),b=b||{},!b.tolerant&&g.scheme?(x.scheme=g.scheme,x.userinfo=g.userinfo,x.host=g.host,x.port=g.port,x.path=i(g.path||""),x.query=g.query):(g.userinfo!==void 0||g.host!==void 0||g.port!==void 0?(x.userinfo=g.userinfo,x.host=g.host,x.port=g.port,x.path=i(g.path||""),x.query=g.query):(g.path?(g.path.charAt(0)==="/"?x.path=i(g.path):((v.userinfo!==void 0||v.host!==void 0||v.port!==void 0)&&!v.path?x.path="/"+g.path:v.path?x.path=v.path.slice(0,v.path.lastIndexOf("/")+1)+g.path:x.path=g.path,x.path=i(x.path)),x.query=g.query):(x.path=v.path,g.query!==void 0?x.query=g.query:x.query=v.query),x.userinfo=v.userinfo,x.host=v.host,x.port=v.port),x.scheme=v.scheme),x.fragment=g.fragment,x}function d(v,g,b){return typeof v=="string"?(v=unescape(v),v=p(o(y(v,b),!0),{...b,skipEscape:!0})):typeof v=="object"&&(v=p(o(v,!0),{...b,skipEscape:!0})),typeof g=="string"?(g=unescape(g),g=p(o(y(g,b),!0),{...b,skipEscape:!0})):typeof g=="object"&&(g=p(o(g,!0),{...b,skipEscape:!0})),v.toLowerCase()===g.toLowerCase()}function p(v,g){let b={host:v.host,scheme:v.scheme,userinfo:v.userinfo,port:v.port,path:v.path,query:v.query,nid:v.nid,nss:v.nss,uuid:v.uuid,fragment:v.fragment,reference:v.reference,resourceName:v.resourceName,secure:v.secure,error:""},S=Object.assign({},g),x=[],w=s[(S.scheme||b.scheme||"").toLowerCase()];w&&w.serialize&&w.serialize(b,S),b.path!==void 0&&(S.skipEscape?b.path=unescape(b.path):(b.path=escape(b.path),b.scheme!==void 0&&(b.path=b.path.split("%3A").join(":")))),S.reference!=="suffix"&&b.scheme&&x.push(b.scheme,":");let E=a(b);if(E!==void 0&&(S.reference!=="suffix"&&x.push("//"),x.push(E),b.path&&b.path.charAt(0)!=="/"&&x.push("/")),b.path!==void 0){let O=b.path;!S.absolutePath&&(!w||!w.absolutePath)&&(O=i(O)),E===void 0&&(O=O.replace(/^\/\//u,"/%2F")),x.push(O)}return b.query!==void 0&&x.push("?",b.query),b.fragment!==void 0&&x.push("#",b.fragment),x.join("")}var f=Array.from({length:127},(v,g)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(g)));function h(v){let g=0;for(let b=0,S=v.length;b126||f[g])return!0;return!1}var _=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function y(v,g){let b=Object.assign({},g),S={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},x=v.indexOf("%")!==-1,w=!1;b.reference==="suffix"&&(v=(b.scheme?b.scheme+":":"")+"//"+v);let E=v.match(_);if(E){if(S.scheme=E[1],S.userinfo=E[3],S.host=E[4],S.port=parseInt(E[5],10),S.path=E[6]||"",S.query=E[7],S.fragment=E[8],isNaN(S.port)&&(S.port=E[5]),S.host){let A=n(S.host);if(A.isIPV4===!1){let M=r(A.host);S.host=M.host.toLowerCase(),w=M.isIPV6}else S.host=A.host,w=!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",b.reference&&b.reference!=="suffix"&&b.reference!==S.reference&&(S.error=S.error||"URI is not a "+b.reference+" reference.");let O=s[(b.scheme||S.scheme||"").toLowerCase()];if(!b.unicodeSupport&&(!O||!O.unicodeSupport)&&S.host&&(b.domainHost||O&&O.domainHost)&&w===!1&&h(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}(!O||O&&!O.skipNormalize)&&(x&&S.scheme!==void 0&&(S.scheme=unescape(S.scheme)),x&&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)))),O&&O.parse&&O.parse(S,b)}else S.error=S.error||"URI can not be parsed.";return S}var m={SCHEMES:s,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:p,parse:y};e.exports=m,e.exports.default=m,e.exports.fastUri=m}),cne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=r2();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),une=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=Uh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=Je();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=E$(),i=qh(),a=e2(),o=k$(),s=Je(),c=Dh(),u=Th(),l=ut(),d=ine(),p=cne(),f=(F,I)=>new RegExp(F,I);f.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],_=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),y={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."},m={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},v=200;function g(F){var I,z,C,$,k,N,W,K,pe,ce,Ne,P,R,D,Z,J,ie,Qe,Zt,gt,vt,et,Yr,Ct,Ia;let On=F.strict,Pa=(I=F.code)===null||I===void 0?void 0:I.optimize,Tc=Pa===!0||Pa===void 0?1:Pa||0,Ic=(C=(z=F.code)===null||z===void 0?void 0:z.regExp)!==null&&C!==void 0?C:f,Pg=($=F.uriResolver)!==null&&$!==void 0?$:p.default;return{strictSchema:(N=(k=F.strictSchema)!==null&&k!==void 0?k:On)!==null&&N!==void 0?N:!0,strictNumbers:(K=(W=F.strictNumbers)!==null&&W!==void 0?W:On)!==null&&K!==void 0?K:!0,strictTypes:(ce=(pe=F.strictTypes)!==null&&pe!==void 0?pe:On)!==null&&ce!==void 0?ce:"log",strictTuples:(P=(Ne=F.strictTuples)!==null&&Ne!==void 0?Ne:On)!==null&&P!==void 0?P:"log",strictRequired:(D=(R=F.strictRequired)!==null&&R!==void 0?R:On)!==null&&D!==void 0?D:!1,code:F.code?{...F.code,optimize:Tc,regExp:Ic}:{optimize:Tc,regExp:Ic},loopRequired:(Z=F.loopRequired)!==null&&Z!==void 0?Z:v,loopEnum:(J=F.loopEnum)!==null&&J!==void 0?J:v,meta:(ie=F.meta)!==null&&ie!==void 0?ie:!0,messages:(Qe=F.messages)!==null&&Qe!==void 0?Qe:!0,inlineRefs:(Zt=F.inlineRefs)!==null&&Zt!==void 0?Zt:!0,schemaId:(gt=F.schemaId)!==null&>!==void 0?gt:"$id",addUsedSchema:(vt=F.addUsedSchema)!==null&&vt!==void 0?vt:!0,validateSchema:(et=F.validateSchema)!==null&&et!==void 0?et:!0,validateFormats:(Yr=F.validateFormats)!==null&&Yr!==void 0?Yr:!0,unicodeRegExp:(Ct=F.unicodeRegExp)!==null&&Ct!==void 0?Ct:!0,int32range:(Ia=F.int32range)!==null&&Ia!==void 0?Ia:!0,uriResolver:Pg}}class b{constructor(I={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,I=this.opts={...I,...g(I)};let{es5:z,lines:C}=this.opts.code;this.scope=new s.ValueScope({scope:{},prefixes:_,es5:z,lines:C}),this.logger=q(I.logger);let $=I.validateFormats;I.validateFormats=!1,this.RULES=(0,a.getRules)(),S.call(this,y,I,"NOT SUPPORTED"),S.call(this,m,I,"DEPRECATED","warn"),this._metaOpts=A.call(this),I.formats&&E.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),I.keywords&&O.call(this,I.keywords),typeof I.meta=="object"&&this.addMetaSchema(I.meta),w.call(this),I.validateFormats=$}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:I,meta:z,schemaId:C}=this.opts,$=d;C==="id"&&($={...d},$.id=$.$id,delete $.$id),z&&I&&this.addMetaSchema($,$[C],!1)}defaultMeta(){let{meta:I,schemaId:z}=this.opts;return this.opts.defaultMeta=typeof I=="object"?I[z]||I:void 0}validate(I,z){let C;if(typeof I=="string"){if(C=this.getSchema(I),!C)throw new Error(`no schema with key or ref "${I}"`)}else C=this.compile(I);let $=C(z);return"$async"in C||(this.errors=C.errors),$}compile(I,z){let C=this._addSchema(I,z);return C.validate||this._compileSchemaEnv(C)}compileAsync(I,z){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:C}=this.opts;return $.call(this,I,z);async function $(ce,Ne){await k.call(this,ce.$schema);let P=this._addSchema(ce,Ne);return P.validate||N.call(this,P)}async function k(ce){ce&&!this.getSchema(ce)&&await $.call(this,{$ref:ce},!0)}async function N(ce){try{return this._compileSchemaEnv(ce)}catch(Ne){if(!(Ne instanceof i.default))throw Ne;return W.call(this,Ne),await K.call(this,Ne.missingSchema),N.call(this,ce)}}function W({missingSchema:ce,missingRef:Ne}){if(this.refs[ce])throw new Error(`AnySchema ${ce} is loaded but ${Ne} cannot be resolved`)}async function K(ce){let Ne=await pe.call(this,ce);this.refs[ce]||await k.call(this,Ne.$schema),this.refs[ce]||this.addSchema(Ne,ce,z)}async function pe(ce){let Ne=this._loading[ce];if(Ne)return Ne;try{return await(this._loading[ce]=C(ce))}finally{delete this._loading[ce]}}}addSchema(I,z,C,$=this.opts.validateSchema){if(Array.isArray(I)){for(let N of I)this.addSchema(N,void 0,C,$);return this}let k;if(typeof I=="object"){let{schemaId:N}=this.opts;if(k=I[N],k!==void 0&&typeof k!="string")throw new Error(`schema ${N} must be string`)}return z=(0,c.normalizeId)(z||k),this._checkUnique(z),this.schemas[z]=this._addSchema(I,C,z,$,!0),this}addMetaSchema(I,z,C=this.opts.validateSchema){return this.addSchema(I,z,!0,C),this}validateSchema(I,z){if(typeof I=="boolean")return!0;let C;if(C=I.$schema,C!==void 0&&typeof C!="string")throw new Error("$schema must be a string");if(C=C||this.opts.defaultMeta||this.defaultMeta(),!C)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let $=this.validate(C,I);if(!$&&z){let k="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(k);else throw new Error(k)}return $}getSchema(I){let z;for(;typeof(z=x.call(this,I))=="string";)I=z;if(z===void 0){let{schemaId:C}=this.opts,$=new o.SchemaEnv({schema:{},schemaId:C});if(z=o.resolveSchema.call(this,$,I),!z)return;this.refs[I]=z}return z.validate||this._compileSchemaEnv(z)}removeSchema(I){if(I instanceof RegExp)return this._removeAllSchemas(this.schemas,I),this._removeAllSchemas(this.refs,I),this;switch(typeof I){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let z=x.call(this,I);return typeof z=="object"&&this._cache.delete(z.schema),delete this.schemas[I],delete this.refs[I],this}case"object":{let z=I;this._cache.delete(z);let C=I[this.opts.schemaId];return C&&(C=(0,c.normalizeId)(C),delete this.schemas[C],delete this.refs[C]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(I){for(let z of I)this.addKeyword(z);return this}addKeyword(I,z){let C;if(typeof I=="string")C=I,typeof z=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),z.keyword=C);else if(typeof I=="object"&&z===void 0){if(z=I,C=z.keyword,Array.isArray(C)&&!C.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(U.call(this,C,z),!z)return(0,l.eachItem)(C,k=>Y.call(this,k)),this;Ye.call(this,z);let $={...z,type:(0,u.getJSONTypes)(z.type),schemaType:(0,u.getJSONTypes)(z.schemaType)};return(0,l.eachItem)(C,$.type.length===0?k=>Y.call(this,k,$):k=>$.type.forEach(N=>Y.call(this,k,$,N))),this}getKeyword(I){let z=this.RULES.all[I];return typeof z=="object"?z.definition:!!z}removeKeyword(I){let{RULES:z}=this;delete z.keywords[I],delete z.all[I];for(let C of z.rules){let $=C.rules.findIndex(k=>k.keyword===I);$>=0&&C.rules.splice($,1)}return this}addFormat(I,z){return typeof z=="string"&&(z=new RegExp(z)),this.formats[I]=z,this}errorsText(I=this.errors,{separator:z=", ",dataVar:C="data"}={}){return!I||I.length===0?"No errors":I.map($=>`${C}${$.instancePath} ${$.message}`).reduce(($,k)=>$+z+k)}$dataMetaSchema(I,z){let C=this.RULES.all;I=JSON.parse(JSON.stringify(I));for(let $ of z){let k=$.split("/").slice(1),N=I;for(let W of k)N=N[W];for(let W in C){let K=C[W];if(typeof K!="object")continue;let{$data:pe}=K.definition,ce=N[W];pe&&ce&&(N[W]=fe(ce))}}return I}_removeAllSchemas(I,z){for(let C in I){let $=I[C];(!z||z.test(C))&&(typeof $=="string"?delete I[C]:$&&!$.meta&&(this._cache.delete($.schema),delete I[C]))}}_addSchema(I,z,C,$=this.opts.validateSchema,k=this.opts.addUsedSchema){let N,{schemaId:W}=this.opts;if(typeof I=="object")N=I[W];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof I!="boolean")throw new Error("schema must be object or boolean")}let K=this._cache.get(I);if(K!==void 0)return K;C=(0,c.normalizeId)(N||C);let pe=c.getSchemaRefs.call(this,I,C);return K=new o.SchemaEnv({schema:I,schemaId:W,meta:z,baseId:C,localRefs:pe}),this._cache.set(K.schema,K),k&&!C.startsWith("#")&&(C&&this._checkUnique(C),this.refs[C]=K),$&&this.validateSchema(I,!0),K}_checkUnique(I){if(this.schemas[I]||this.refs[I])throw new Error(`schema with key or id "${I}" already exists`)}_compileSchemaEnv(I){if(I.meta?this._compileMetaSchema(I):o.compileSchema.call(this,I),!I.validate)throw new Error("ajv implementation error");return I.validate}_compileMetaSchema(I){let z=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,I)}finally{this.opts=z}}}b.ValidationError=n.default,b.MissingRefError=i.default,t.default=b;function S(F,I,z,C="error"){for(let $ in F){let k=$;k in I&&this.logger[C](`${z}: option ${$}. ${F[k]}`)}}function x(F){return F=(0,c.normalizeId)(F),this.schemas[F]||this.refs[F]}function w(){let F=this.opts.schemas;if(F)if(Array.isArray(F))this.addSchema(F);else for(let I in F)this.addSchema(F[I],I)}function E(){for(let F in this.opts.formats){let I=this.opts.formats[F];I&&this.addFormat(F,I)}}function O(F){if(Array.isArray(F)){this.addVocabulary(F);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let I in F){let z=F[I];z.keyword||(z.keyword=I),this.addKeyword(z)}}function A(){let F={...this.opts};for(let I of h)delete F[I];return F}var M={log(){},warn(){},error(){}};function q(F){if(F===!1)return M;if(F===void 0)return console;if(F.log&&F.warn&&F.error)return F;throw new Error("logger must implement log, warn and error methods")}var B=/^[a-z_$][a-z0-9_$:-]*$/i;function U(F,I){let{RULES:z}=this;if((0,l.eachItem)(F,C=>{if(z.keywords[C])throw new Error(`Keyword ${C} is already defined`);if(!B.test(C))throw new Error(`Keyword ${C} has invalid name`)}),!!I&&I.$data&&!("code"in I||"validate"in I))throw new Error('$data keyword must have "code" or "validate" function')}function Y(F,I,z){var C;let $=I?.post;if(z&&$)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:k}=this,N=$?k.post:k.rules.find(({type:K})=>K===z);if(N||(N={type:z,rules:[]},k.rules.push(N)),k.keywords[F]=!0,!I)return;let W={keyword:F,definition:{...I,type:(0,u.getJSONTypes)(I.type),schemaType:(0,u.getJSONTypes)(I.schemaType)}};I.before?me.call(this,N,W,I.before):N.rules.push(W),k.all[F]=W,(C=I.implements)===null||C===void 0||C.forEach(K=>this.addKeyword(K))}function me(F,I,z){let C=F.rules.findIndex($=>$.keyword===z);C>=0?F.rules.splice(C,0,I):(F.rules.push(I),this.logger.warn(`rule ${z} is not defined`))}function Ye(F){let{metaSchema:I}=F;I!==void 0&&(F.$data&&this.opts.$data&&(I=fe(I)),F.validateSchema=this.compile(I,!0))}var ft={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function fe(F){return{anyOf:[F,ft]}}}),lne=V(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}),dne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=qh(),r=Jn(),n=Je(),i=Ea(),a=k$(),o=ut(),s={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:f}=l,{baseId:h,schemaEnv:_,validateName:y,opts:m,self:v}=f,{root:g}=_;if((p==="#"||p==="#/")&&h===g.baseId)return S();let b=a.resolveRef.call(v,g,h,p);if(b===void 0)throw new e.default(f.opts.uriResolver,h,p);if(b instanceof a.SchemaEnv)return x(b);return w(b);function S(){if(_===g)return u(l,y,_,_.$async);let E=d.scopeValue("root",{ref:g});return u(l,(0,n._)`${E}.validate`,g,g.$async)}function x(E){let O=c(l,E);u(l,O,E,E.$async)}function w(E){let O=d.scopeValue("schema",m.code.source===!0?{ref:E,code:(0,n.stringify)(E)}:{ref:E}),A=d.name("valid"),M=l.subschema({schema:E,dataTypes:[],schemaPath:n.nil,topSchemaRef:O,errSchemaPath:p},A);l.mergeEvaluated(M),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:h,it:_}=l,{allErrors:y,schemaEnv:m,opts:v}=_,g=v.passContext?i.default.this:n.nil;f?b():S();function b(){if(!m.$async)throw new Error("async schema referenced by sync schema");let E=h.let("valid");h.try(()=>{h.code((0,n._)`await ${(0,r.callValidateCode)(l,d,g)}`),w(d),y||h.assign(E,!0)},O=>{h.if((0,n._)`!(${O} instanceof ${_.ValidationError})`,()=>h.throw(O)),x(O),y||h.assign(E,!1)}),l.ok(E)}function S(){l.result((0,r.callValidateCode)(l,d,g),()=>w(d),()=>x(d))}function x(E){let O=(0,n._)`${E}.errors`;h.assign(i.default.vErrors,(0,n._)`${i.default.vErrors} === null ? ${O} : ${i.default.vErrors}.concat(${O})`),h.assign(i.default.errors,(0,n._)`${i.default.vErrors}.length`)}function w(E){var O;if(!_.opts.unevaluated)return;let A=(O=p?.validate)===null||O===void 0?void 0:O.evaluated;if(_.props!==!0)if(A&&!A.dynamicProps)A.props!==void 0&&(_.props=o.mergeEvaluated.props(h,A.props,_.props));else{let M=h.var("props",(0,n._)`${E}.evaluated.props`);_.props=o.mergeEvaluated.props(h,M,_.props,n.Name)}if(_.items!==!0)if(A&&!A.dynamicItems)A.items!==void 0&&(_.items=o.mergeEvaluated.items(h,A.items,_.items));else{let M=h.var("items",(0,n._)`${E}.evaluated.items`);_.items=o.mergeEvaluated.items(h,M,_.items,n.Name)}}}t.callRef=u,t.default=s}),pne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lne(),r=dne(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),fne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),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:s})=>(0,e.str)`must be ${n[o].okStr} ${s}`,params:({keyword:o,schemaCode:s})=>(0,e._)`{comparison: ${n[o].okStr}, limit: ${s}}`},a={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u}=o;o.fail$data((0,e._)`${c} ${n[s].fail} ${u} || isNaN(${c})`)}};t.default=a}),mne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),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:a,data:o,schemaCode:s,it:c}=i,u=c.opts.multipleOfPrecision,l=a.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;i.fail$data((0,e._)`(${s} === 0 || (${l} = ${o}/${s}, ${d}))`)}};t.default=n}),hne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,i=0,a=0,o;for(;a=55296&&o<=56319&&a{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r=ut(),n=hne(),i={message({keyword:o,schemaCode:s}){let c=o==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${s} characters`},params:({schemaCode:o})=>(0,e._)`{limit: ${o}}`},a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u,it:l}=o,d=s==="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=a}),vne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r=Je(),n={message:({schemaCode:a})=>(0,r.str)`must match pattern "${a}"`,params:({schemaCode:a})=>(0,r._)`{pattern: ${a}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n,code(a){let{data:o,$data:s,schema:c,schemaCode:u,it:l}=a,d=l.opts.unicodeRegExp?"u":"",p=s?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(a,c);a.fail$data((0,r._)`!${p}.test(${o})`)}};t.default=i}),yne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r={message({keyword:i,schemaCode:a}){let o=i==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} properties`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxProperties"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`Object.keys(${o}).length ${c} ${s}`)}};t.default=n}),_ne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r=Je(),n=ut(),i={message:({params:{missingProperty:o}})=>(0,r.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,r._)`{missingProperty: ${o}}`},a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,schema:c,schemaCode:u,data:l,$data:d,it:p}=o,{opts:f}=p;if(!d&&c.length===0)return;let h=c.length>=f.loopRequired;if(p.allErrors?_():y(),f.strictRequired){let g=o.parentSchema.properties,{definedProperties:b}=o.it;for(let S of c)if(g?.[S]===void 0&&!b.has(S)){let x=p.schemaEnv.baseId+p.errSchemaPath,w=`required property "${S}" is not defined at "${x}" (strictRequired)`;(0,n.checkStrictMode)(p,w,p.opts.strictRequired)}}function _(){if(h||d)o.block$data(r.nil,m);else for(let g of c)(0,e.checkReportMissingProp)(o,g)}function y(){let g=s.let("missing");if(h||d){let b=s.let("valid",!0);o.block$data(b,()=>v(g,b)),o.ok(b)}else s.if((0,e.checkMissingProp)(o,c,g)),(0,e.reportMissingProp)(o,g),s.else()}function m(){s.forOf("prop",u,g=>{o.setParams({missingProperty:g}),s.if((0,e.noPropertyInData)(s,l,g,f.ownProperties),()=>o.error())})}function v(g,b){o.setParams({missingProperty:g}),s.forOf(g,u,()=>{s.assign(b,(0,e.propertyInData)(s,l,g,f.ownProperties)),s.if((0,r.not)(b),()=>{o.error(),s.break()})},r.nil)}}};t.default=a}),bne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r={message({keyword:i,schemaCode:a}){let o=i==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} items`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxItems"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`${o}.length ${c} ${s}`)}};t.default=n}),T$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=zh();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),xne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Th(),r=Je(),n=ut(),i=T$(),a={message:({params:{i:s,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${s} are identical)`,params:({params:{i:s,j:c}})=>(0,r._)`{i: ${s}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:a,code(s){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:f,it:h}=s;if(!l&&!d)return;let _=c.let("valid"),y=p.items?(0,e.getSchemaTypes)(p.items):[];s.block$data(_,m,(0,r._)`${f} === false`),s.ok(_);function m(){let S=c.let("i",(0,r._)`${u}.length`),x=c.let("j");s.setParams({i:S,j:x}),c.assign(_,!0),c.if((0,r._)`${S} > 1`,()=>(v()?g:b)(S,x))}function v(){return y.length>0&&!y.some(S=>S==="object"||S==="array")}function g(S,x){let w=c.name("item"),E=(0,e.checkDataTypes)(y,w,h.opts.strictNumbers,e.DataType.Wrong),O=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${S}--;`,()=>{c.let(w,(0,r._)`${u}[${S}]`),c.if(E,(0,r._)`continue`),y.length>1&&c.if((0,r._)`typeof ${w} == "string"`,(0,r._)`${w} += "_"`),c.if((0,r._)`typeof ${O}[${w}] == "number"`,()=>{c.assign(x,(0,r._)`${O}[${w}]`),s.error(),c.assign(_,!1).break()}).code((0,r._)`${O}[${w}] = ${S}`)})}function b(S,x){let w=(0,n.useFunc)(c,i.default),E=c.name("outer");c.label(E).for((0,r._)`;${S}--;`,()=>c.for((0,r._)`${x} = ${S}; ${x}--;`,()=>c.if((0,r._)`${w}(${u}[${S}], ${u}[${x}])`,()=>{s.error(),c.assign(_,!1).break(E)})))}}};t.default=o}),Sne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r=ut(),n=T$(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,e._)`{allowedValue: ${o}}`},a={keyword:"const",$data:!0,error:i,code(o){let{gen:s,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,e._)`!${(0,r.useFunc)(s,n.default)}(${c}, ${l})`):o.fail((0,e._)`${d} !== ${c}`)}};t.default=a}),wne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r=ut(),n=T$(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,e._)`{allowedValues: ${o}}`},a={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,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,h,_=()=>h??(h=(0,r.useFunc)(s,n.default)),y;if(f||u)y=s.let("valid"),o.block$data(y,m);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let g=s.const("vSchema",d);y=(0,e.or)(...l.map((b,S)=>v(g,S)))}o.pass(y);function m(){s.assign(y,!1),s.forOf("v",d,g=>s.if((0,e._)`${_()}(${c}, ${g})`,()=>s.assign(y,!0).break()))}function v(g,b){let S=l[b];return typeof S=="object"&&S!==null?(0,e._)`${_()}(${c}, ${g}[${b}])`:(0,e._)`${c} === ${S}`}}};t.default=a}),$ne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=fne(),r=mne(),n=gne(),i=vne(),a=yne(),o=_ne(),s=bne(),c=xne(),u=Sne(),l=wne(),d=[e.default,r.default,n.default,i.default,a.default,o.default,s.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),n2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=Je(),r=ut(),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:s,it:c}=o,{items:u}=s;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}a(o,u)}};function a(o,s){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:s.length}),o.pass((0,e._)`${f} <= ${s.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let _=c.var("valid",(0,e._)`${f} <= ${s.length}`);c.if((0,e.not)(_),()=>h(_)),o.ok(_)}function h(_){c.forRange("i",s.length,f,y=>{o.subschema({keyword:d,dataProp:y,dataPropType:r.Type.Num},_),p.allErrors||c.if((0,e.not)(_),()=>c.break())})}}t.validateAdditionalItems=a,t.default=i}),i2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=Je(),r=ut(),n=Jn(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:s,it:c}=o;if(Array.isArray(s))return a(o,"additionalItems",s);c.items=!0,!(0,r.alwaysValidSchema)(c,s)&&o.ok((0,n.validateArray)(o))}};function a(o,s,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:p,it:f}=o;y(l),f.opts.unevaluated&&c.length&&f.items!==!0&&(f.items=r.mergeEvaluated.items(u,c.length,f.items));let h=u.name("valid"),_=u.const("len",(0,e._)`${d}.length`);c.forEach((m,v)=>{(0,r.alwaysValidSchema)(f,m)||(u.if((0,e._)`${_} > ${v}`,()=>o.subschema({keyword:p,schemaProp:v,dataProp:v},h)),o.ok(h))});function y(m){let{opts:v,errSchemaPath:g}=f,b=c.length,S=b===m.minItems&&(b===m.maxItems||m[s]===!1);if(v.strictTuples&&!S){let x=`"${p}" is ${b}-tuple, but minItems or maxItems/${s} are not specified or different at path "${g}"`;(0,r.checkStrictMode)(f,x,v.strictTuples)}}}t.validateTuple=a,t.default=i}),Ene=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=i2(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),kne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r=ut(),n=Jn(),i=n2(),a={message:({params:{len:s}})=>(0,e.str)`must NOT have more than ${s} items`,params:({params:{len:s}})=>(0,e._)`{limit: ${s}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:a,code(s){let{schema:c,parentSchema:u,it:l}=s,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(s,d):s.ok((0,n.validateArray)(s)))}};t.default=o}),Tne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r=ut(),n={message:({params:{min:a,max:o}})=>o===void 0?(0,e.str)`must contain at least ${a} valid item(s)`:(0,e.str)`must contain at least ${a} and no more than ${o} valid item(s)`,params:({params:{min:a,max:o}})=>o===void 0?(0,e._)`{minContains: ${a}}`:(0,e._)`{minContains: ${a}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,data:u,it:l}=a,d,p,{minContains:f,maxContains:h}=c;l.opts.next?(d=f===void 0?1:f,p=h):d=1;let _=o.const("len",(0,e._)`${u}.length`);if(a.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'),a.fail();return}if((0,r.alwaysValidSchema)(l,s)){let b=(0,e._)`${_} >= ${d}`;p!==void 0&&(b=(0,e._)`${b} && ${_} <= ${p}`),a.pass(b);return}l.items=!0;let y=o.name("valid");p===void 0&&d===1?v(y,()=>o.if(y,()=>o.break())):d===0?(o.let(y,!0),p!==void 0&&o.if((0,e._)`${u}.length > 0`,m)):(o.let(y,!1),m()),a.result(y,()=>a.reset());function m(){let b=o.name("_valid"),S=o.let("count",0);v(b,()=>o.if(b,()=>g(S)))}function v(b,S){o.forRange("i",0,_,x=>{a.subschema({keyword:"contains",dataProp:x,dataPropType:r.Type.Num,compositeRule:!0},b),S()})}function g(b){o.code((0,e._)`${b}++`),p===void 0?o.if((0,e._)`${b} >= ${d}`,()=>o.assign(y,!0).break()):(o.if((0,e._)`${b} > ${p}`,()=>o.assign(y,!1).break()),d===1?o.assign(y,!0):o.if((0,e._)`${b} >= ${d}`,()=>o.assign(y,!0)))}}};t.default=i}),Ine=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=Je(),r=ut(),n=Jn();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.prompts.header_memory_continued}`}Fr();cn();jr();var Yw=["429","500","502","503","ECONNREFUSED","ETIMEDOUT","fetch failed"];Pe();Pe();jr();function _4(t,e){let r=[],n=/([\s\S]*?)<\/observation>/g,i;for(;(i=n.exec(t))!==null;){let a=i[1],o=gi(a,"type"),s=gi(a,"title"),c=gi(a,"subtitle"),u=gi(a,"narrative"),l=Sh(a,"facts","fact"),d=Sh(a,"concepts","concept"),p=Sh(a,"files_read","file"),f=Sh(a,"files_modified","file"),_=Be.getInstance().getActiveMode().observation_types.map(v=>v.id),g=_[0],m=g;o?_.includes(o.trim())?m=o.trim():k.warn("PARSER",`Invalid observation type: ${o}, using "${g}"`,{correlationId:e}):k.warn("PARSER",`Observation missing type field, using "${g}"`,{correlationId:e});let y=d.filter(v=>v!==m);y.length!==d.length&&k.warn("PARSER","Removed observation type from concepts array",{correlationId:e,type:m,originalConcepts:d,cleanedConcepts:y}),r.push({type:m,title:s,subtitle:c,facts:l,narrative:u,concepts:y,files_read:p,files_modified:f})}return r}function b4(t,e){let n=//.exec(t);if(n)return k.info("PARSER","Summary skipped",{sessionId:e,reason:n[1]}),null;let a=/([\s\S]*?)<\/summary>/.exec(t);if(!a)return null;let o=a[1],s=gi(o,"request"),c=gi(o,"investigated"),u=gi(o,"learned"),l=gi(o,"completed"),d=gi(o,"next_steps"),p=gi(o,"notes");return{request:s,investigated:c,learned:u,completed:l,next_steps:d,notes:p}}function gi(t,e){let n=new RegExp(`<${e}>([^<]*)`).exec(t);if(!n)return null;let i=n[1].trim();return i===""?null:i}function Sh(t,e,r){let n=[],a=new RegExp(`<${e}>(.*?)`,"s").exec(t);if(!a)return n;let o=a[1],s=new RegExp(`<${r}>([^<]+)`,"g"),c;for(;(c=s.exec(o))!==null;)n.push(c[1].trim());return n}var Gn=require("fs"),go=dt(require("path"),1),S4=dt(require("os"),1);Pe();nc();Fr();var Xre=go.default.join(S4.default.homedir(),".claude-mem","settings.json");function Yre(t,e){let r="",n="";if(!t)return`${r} +${e} +${n}`;let i=t.indexOf(r),a=t.indexOf(n);return i!==-1&&a!==-1?t.substring(0,i)+`${r} +${e} +${n}`+t.substring(a+n.length):t+` + +${r} +${e} +${n}`}function Qre(t,e){let r=go.default.join(t,"CLAUDE.md"),n=`${r}.tmp`;(0,Gn.mkdirSync)(t,{recursive:!0});let i="";(0,Gn.existsSync)(r)&&(i=(0,Gn.readFileSync)(r,"utf-8"));let a=Yre(i,e);(0,Gn.writeFileSync)(n,a),(0,Gn.renameSync)(n,r)}function ene(t){let e=[];e.push("# Recent Activity"),e.push(""),e.push(""),e.push("");let r=t.split(` +`),n=[],i="",a=null;for(let s of r){let c=s.match(/^###\s+(.+)$/);if(c){let l=c[1].trim(),d=new Date(l);isNaN(d.getTime())||(a=d);continue}let u=s.match(/^\|\s*(#[S]?\d+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|/);if(u){let[,l,d,p,f,h]=u,_;d.trim()==="\u2033"||d.trim()==='"'?_=i:(_=d.trim(),i=_);let g=a?new Date(a):new Date,m=_.match(/(\d+):(\d+)\s*(AM|PM)/i),y=g.getTime();if(m){let v=parseInt(m[1],10),b=parseInt(m[2],10),S=m[3].toUpperCase()==="PM";S&&v!==12&&(v+=12),!S&&v===12&&(v=0),g.setHours(v,b,0,0),y=g.getTime()}n.push({id:l.trim(),time:_,typeEmoji:p.trim(),title:f.trim(),tokens:h.trim(),epoch:y})}}if(n.length===0)return e.push("*No recent activity*"),e.join(` +`);let o=ho(n,s=>new Date(s.epoch).toISOString());for(let[s,c]of o){e.push(`### ${s}`),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()}function tne(t){let e=go.default.join(t,".git");return(0,Gn.existsSync)(e)}async function w4(t,e,r,n){let i=Fe.loadFromFile(Xre),a=parseInt(i.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10)||50,o=new Set;for(let s of t){if(!s||s==="")continue;let c=s;n&&!go.default.isAbsolute(s)&&(c=go.default.join(n,s));let u=go.default.dirname(c);if(u&&u!=="."&&u!=="/"){if(tne(u)){k.debug("FOLDER_INDEX","Skipping project root CLAUDE.md",{folderPath:u});continue}o.add(u)}}if(o.size!==0){k.debug("FOLDER_INDEX","Updating CLAUDE.md files",{project:e,folderCount:o.size});for(let s of o)try{let c=await fetch(`http://127.0.0.1:${r}/api/search/by-file?filePath=${encodeURIComponent(s)}&limit=${a}&project=${encodeURIComponent(e)}&isFolder=true`);if(!c.ok){k.warn("FOLDER_INDEX","Failed to fetch timeline",{folderPath:s,status:c.status});continue}let u=await c.json();if(!u.content?.[0]?.text){k.debug("FOLDER_INDEX","No content for folder",{folderPath:s});continue}let l=ene(u.content[0].text);Qre(s,l),k.debug("FOLDER_INDEX","Updated CLAUDE.md",{folderPath:s})}catch(c){k.warn("FOLDER_INDEX","Failed to update CLAUDE.md",{folderPath:s},c)}}}function e$(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:e})}function t$(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:e})}function r$(t,e){t.earliestPendingTimestamp=null,e&&typeof e.broadcastProcessingStatus=="function"&&e.broadcastProcessingStatus()}async function Wn(t,e,r,n,i,a,o,s,c){t&&e.conversationHistory.push({role:"assistant",content:t});let u=_4(t,e.contentSessionId),l=b4(t,e.sessionDbId),d=rne(l),p=r.getSessionStore();if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");k.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,a,o??void 0);k.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}),await nne(u,f,e,r,i,a,s,c),await ine(l,d,f,e,r,i,a,s),r$(e,i)}function rne(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 nne(t,e,r,n,i,a,o,s){for(let u=0;u{let f=Date.now()-p;k.debug("CHROMA","Observation synced",{obsId:l,duration:`${f}ms`,type:d.type,title:d.title||"(untitled)"})}).catch(f=>{k.warn("CHROMA",`${o} chroma sync failed, continuing without vector search`,{obsId:l,type:d.type,title:d.title||"(untitled)"},f)}),e$(i,{id:l,memory_session_id:r.memorySessionId,session_id:r.contentSessionId,type:d.type,title:d.title,subtitle:d.subtitle,text:null,narrative:d.narrative||null,facts:JSON.stringify(d.facts||[]),concepts:JSON.stringify(d.concepts||[]),files_read:JSON.stringify(d.files_read||[]),files_modified:JSON.stringify(d.files_modified||[]),project:r.project,prompt_number:r.lastPromptNumber,created_at_epoch:e.createdAtEpoch})}let c=[];for(let u of t)c.push(...u.files_modified||[]),c.push(...u.files_read||[]);c.length>0&&w4(c,r.project,_n(),s).catch(u=>{k.warn("FOLDER_INDEX","CLAUDE.md update failed (non-critical)",{project:r.project},u)})}async function ine(t,e,r,n,i,a,o,s){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;k.debug("CHROMA","Summary synced",{summaryId:r.summaryId,duration:`${u}ms`,request:e.request||"(no request)"})}).catch(u=>{k.warn("CHROMA",`${s} chroma sync failed, continuing without vector search`,{summaryId:r.summaryId,request:e.request||"(no request)"},u)}),t$(a,{id:r.summaryId,session_id:n.contentSessionId,request:t.request,investigated:t.investigated,learned:t.learned,completed:t.completed,next_steps:t.next_steps,notes:t.notes,project:n.project,prompt_number:n.lastPromptNumber,created_at_epoch:r.createdAtEpoch}),fh(n.project,_n()).catch(u=>{k.warn("CURSOR","Context update failed (non-critical)",{project:n.project},u)})}function ad(t){let e=ane(t);return Yw.some(r=>e.includes(r))}function ane(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 od(t){return t==null?!1:t instanceof Error&&t.name==="AbortError"?!0:typeof t=="object"&&"name"in t?t.name==="AbortError":!1}var c$=require("path"),h2=require("url"),g2=require("events"),y2=require("child_process"),_2=require("readline"),xe=dt(require("fs"),1),b2=require("fs/promises"),E2=require("path"),k2=require("os"),_o=require("path"),I2=require("process"),P2=require("fs"),R2=require("crypto"),j2=require("crypto"),$c=require("fs"),u$=require("path"),A2=require("crypto");var yfe={},one=Object.create,sne=Object.getPrototypeOf,s$=Object.defineProperty,cne=Object.getOwnPropertyNames,une=Object.prototype.hasOwnProperty,r2=(t,e,r)=>{r=t!=null?one(sne(t)):{};let n=e||!t||!t.__esModule?s$(r,"default",{value:t,enumerable:!0}):r;for(let i of cne(t))une.call(n,i)||s$(n,i,{get:()=>t[i],enumerable:!0});return n},V=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),n2=(t,e)=>{for(var r in e)s$(t,r,{get:e[r],enumerable:!0,configurable:!0,set:n=>e[r]=()=>n})};var Ph=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(y){if(super(),!t.IDENTIFIER.test(y))throw new Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((v,b)=>`${v}${b}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((v,b)=>(b instanceof r&&(v[b.str]=(v[b.str]||0)+1),v),{})}}t._Code=n,t.nil=new n("");function i(m,...y){let v=[m[0]],b=0;for(;b{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=Ph();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 a 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=a;var o=(0,e._)`\n`;class s 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 a(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,h=(d=l.key)!==null&&d!==void 0?d:l.ref,_=this._values[f];if(_){let y=_.get(h);if(y)return y}else _=this._values[f]=new Map;_.set(h,p);let g=this._scope[f]||(this._scope[f]=[]),m=g.length;return g[m]=l.ref,p.setValue(l,{property:f,itemIndex:m}),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 h in u){let _=u[h];if(!_)continue;let g=d[h]=d[h]||new Map;_.forEach(m=>{if(g.has(m))return;g.set(m,n.Started);let y=l(m);if(y){let v=this.opts.es5?t.varKinds.var:t.varKinds.const;f=(0,e._)`${f}${v} ${m} = ${y};${this.opts._n}`}else if(y=p?.(m))f=(0,e._)`${f}${y}${this.opts._n}`;else throw new r(m);g.set(m,n.Completed)})}return f}}t.ValueScope=s}),Xe=V(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=Ph(),r=$4(),n=Ph();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=$4();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 a{optimizeNodes(){return this}optimizeNames($,T){return this}}class o extends a{constructor($,T,N){super(),this.varKind=$,this.name=T,this.rhs=N}render({es5:$,_n:T}){let N=$?r.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${N} ${this.name}${W};`+T}optimizeNames($,T){if($[this.name.str])return this.rhs&&(this.rhs=U(this.rhs,$,T)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class s extends a{constructor($,T,N){super(),this.lhs=$,this.rhs=T,this.sideEffects=N}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,T){if(!(this.lhs instanceof e.Name&&!$[this.lhs.str]&&!this.sideEffects))return this.rhs=U(this.rhs,$,T),this}get names(){let $=this.lhs instanceof e.Name?{}:{...this.lhs.names};return B($,this.rhs)}}class c extends s{constructor($,T,N,W){super($,N,W),this.op=T}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class u extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class l extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class d extends a{constructor($){super(),this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class p extends a{constructor($){super(),this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,T){return this.code=U(this.code,$,T),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class f extends a{constructor($=[]){super(),this.nodes=$}render($){return this.nodes.reduce((T,N)=>T+N.render($),"")}optimizeNodes(){let{nodes:$}=this,T=$.length;for(;T--;){let N=$[T].optimizeNodes();Array.isArray(N)?$.splice(T,1,...N):N?$[T]=N:$.splice(T,1)}return $.length>0?this:void 0}optimizeNames($,T){let{nodes:N}=this,W=N.length;for(;W--;){let K=N[W];K.optimizeNames($,T)||(Y($,K.names),N.splice(W,1))}return N.length>0?this:void 0}get names(){return this.nodes.reduce(($,T)=>q($,T.names),{})}}class h extends f{render($){return"{"+$._n+super.render($)+"}"+$._n}}class _ extends f{}class g extends h{}g.kind="else";class m extends h{constructor($,T){super(T),this.condition=$}render($){let T=`if(${this.condition})`+super.render($);return this.else&&(T+="else "+this.else.render($)),T}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let T=this.else;if(T){let N=T.optimizeNodes();T=this.else=Array.isArray(N)?new g(N):N}if(T)return $===!1?T instanceof m?T:T.nodes:this.nodes.length?this:new m(me($),T instanceof m?[T]:T.nodes);if(!($===!1||!this.nodes.length))return this}optimizeNames($,T){var N;if(this.else=(N=this.else)===null||N===void 0?void 0:N.optimizeNames($,T),!!(super.optimizeNames($,T)||this.else))return this.condition=U(this.condition,$,T),this}get names(){let $=super.names;return B($,this.condition),this.else&&q($,this.else.names),$}}m.kind="if";class y extends h{}y.kind="for";class v extends y{constructor($){super(),this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,T){if(super.optimizeNames($,T))return this.iteration=U(this.iteration,$,T),this}get names(){return q(super.names,this.iteration.names)}}class b extends y{constructor($,T,N,W){super(),this.varKind=$,this.name=T,this.from=N,this.to=W}render($){let T=$.es5?r.varKinds.var:this.varKind,{name:N,from:W,to:K}=this;return`for(${T} ${N}=${W}; ${N}<${K}; ${N}++)`+super.render($)}get names(){let $=B(super.names,this.from);return B($,this.to)}}class S extends y{constructor($,T,N,W){super(),this.loop=$,this.varKind=T,this.name=N,this.iterable=W}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,T){if(super.optimizeNames($,T))return this.iterable=U(this.iterable,$,T),this}get names(){return q(super.names,this.iterable.names)}}class x extends h{constructor($,T,N){super(),this.name=$,this.args=T,this.async=N}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}x.kind="func";class w extends f{render($){return"return "+super.render($)}}w.kind="return";class E extends h{render($){let T="try"+super.render($);return this.catch&&(T+=this.catch.render($)),this.finally&&(T+=this.finally.render($)),T}optimizeNodes(){var $,T;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(T=this.finally)===null||T===void 0||T.optimizeNodes(),this}optimizeNames($,T){var N,W;return super.optimizeNames($,T),(N=this.catch)===null||N===void 0||N.optimizeNames($,T),(W=this.finally)===null||W===void 0||W.optimizeNames($,T),this}get names(){let $=super.names;return this.catch&&q($,this.catch.names),this.finally&&q($,this.finally.names),$}}class R extends h{constructor($){super(),this.error=$}render($){return`catch(${this.error})`+super.render($)}}R.kind="catch";class A extends h{render($){return"finally"+super.render($)}}A.kind="finally";class M{constructor($,T={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...T,_n:T.lines?` +`:""},this._extScope=$,this._scope=new r.Scope({parent:$}),this._nodes=[new _]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,T){let N=this._extScope.value($,T);return(this._values[N.prefix]||(this._values[N.prefix]=new Set)).add(N),N}getScopeValue($,T){return this._extScope.getValue($,T)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,T,N,W){let K=this._scope.toName(T);return N!==void 0&&W&&(this._constants[K.str]=N),this._leafNode(new o($,K,N)),K}const($,T,N){return this._def(r.varKinds.const,$,T,N)}let($,T,N){return this._def(r.varKinds.let,$,T,N)}var($,T,N){return this._def(r.varKinds.var,$,T,N)}assign($,T,N){return this._leafNode(new s($,T,N))}add($,T){return this._leafNode(new c($,t.operators.ADD,T))}code($){return typeof $=="function"?$():$!==e.nil&&this._leafNode(new p($)),this}object(...$){let T=["{"];for(let[N,W]of $)T.length>1&&T.push(","),T.push(N),(N!==W||this.opts.es5)&&(T.push(":"),(0,e.addCodeArg)(T,W));return T.push("}"),new e._Code(T)}if($,T,N){if(this._blockNode(new m($)),T&&N)this.code(T).else().code(N).endIf();else if(T)this.code(T).endIf();else if(N)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new m($))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(m,g)}_for($,T){return this._blockNode($),T&&this.code(T).endFor(),this}for($,T){return this._for(new v($),T)}forRange($,T,N,W,K=this.opts.es5?r.varKinds.var:r.varKinds.let){let pe=this._scope.toName($);return this._for(new b(K,pe,T,N),()=>W(pe))}forOf($,T,N,W=r.varKinds.const){let K=this._scope.toName($);if(this.opts.es5){let pe=T instanceof e.Name?T:this.var("_arr",T);return this.forRange("_i",0,(0,e._)`${pe}.length`,ce=>{this.var(K,(0,e._)`${pe}[${ce}]`),N(K)})}return this._for(new S("of",W,K,T),()=>N(K))}forIn($,T,N,W=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf($,(0,e._)`Object.keys(${T})`,N);let K=this._scope.toName($);return this._for(new S("in",W,K,T),()=>N(K))}endFor(){return this._endBlockNode(y)}label($){return this._leafNode(new u($))}break($){return this._leafNode(new l($))}return($){let T=new w;if(this._blockNode(T),this.code($),T.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(w)}try($,T,N){if(!T&&!N)throw new Error('CodeGen: "try" without "catch" and "finally"');let W=new E;if(this._blockNode(W),this.code($),T){let K=this.name("e");this._currNode=W.catch=new R(K),T(K)}return N&&(this._currNode=W.finally=new A,this.code(N)),this._endBlockNode(R,A)}throw($){return this._leafNode(new d($))}block($,T){return this._blockStarts.push(this._nodes.length),$&&this.code($).endBlock(T),this}endBlock($){let T=this._blockStarts.pop();if(T===void 0)throw new Error("CodeGen: not in self-balancing block");let N=this._nodes.length-T;if(N<0||$!==void 0&&N!==$)throw new Error(`CodeGen: wrong number of nodes: ${N} vs ${$} expected`);return this._nodes.length=T,this}func($,T=e.nil,N,W){return this._blockNode(new x($,T,N)),W&&this.code(W).endFunc(),this}endFunc(){return this._endBlockNode(x)}optimize($=1){for(;$-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,T){let N=this._currNode;if(N instanceof $||T&&N instanceof T)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${T?`${$.kind}/${T.kind}`:$.kind}"`)}_elseNode($){let T=this._currNode;if(!(T instanceof m))throw new Error('CodeGen: "else" without "if"');return this._currNode=T.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let T=this._nodes;T[T.length-1]=$}}t.CodeGen=M;function q(C,$){for(let T in $)C[T]=(C[T]||0)+($[T]||0);return C}function B(C,$){return $ instanceof e._CodeOrName?q(C,$.names):C}function U(C,$,T){if(C instanceof e.Name)return N(C);if(!W(C))return C;return new e._Code(C._items.reduce((K,pe)=>(pe instanceof e.Name&&(pe=N(pe)),pe instanceof e._Code?K.push(...pe._items):K.push(pe),K),[]));function N(K){let pe=T[K.str];return pe===void 0||$[K.str]!==1?K:(delete $[K.str],pe)}function W(K){return K instanceof e._Code&&K._items.some(pe=>pe instanceof e.Name&&$[pe.str]===1&&T[pe.str]!==void 0)}}function Y(C,$){for(let T in $)C[T]=(C[T]||0)-($[T]||0)}function me(C){return typeof C=="boolean"||typeof C=="number"||C===null?!C:(0,e._)`!${D(C)}`}t.not=me;var Qe=I(t.operators.AND);function mt(...C){return C.reduce(Qe)}t.and=mt;var fe=I(t.operators.OR);function F(...C){return C.reduce(fe)}t.or=F;function I(C){return($,T)=>$===e.nil?T:T===e.nil?$:(0,e._)`${D($)} ${C} ${D(T)}`}function D(C){return C instanceof e.Name?C:(0,e._)`(${C})`}}),ut=V(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=Xe(),r=Ph();function n(x){let w={};for(let E of x)w[E]=!0;return w}t.toHash=n;function i(x,w){return typeof w=="boolean"?w:Object.keys(w).length===0?!0:(a(x,w),!o(w,x.self.RULES.all))}t.alwaysValidSchema=i;function a(x,w=x.schema){let{opts:E,self:R}=x;if(!E.strictSchema||typeof w=="boolean")return;let A=R.RULES.keywords;for(let M in w)A[M]||S(x,`unknown keyword: "${M}"`)}t.checkUnknownRules=a;function o(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(w[E])return!0;return!1}t.schemaHasRules=o;function s(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(E!=="$ref"&&w.all[E])return!0;return!1}t.schemaHasRulesButRef=s;function c({topSchemaRef:x,schemaPath:w},E,R,A){if(!A){if(typeof E=="number"||typeof E=="boolean")return E;if(typeof E=="string")return(0,e._)`${E}`}return(0,e._)`${x}${w}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function u(x){return p(decodeURIComponent(x))}t.unescapeFragment=u;function l(x){return encodeURIComponent(d(x))}t.escapeFragment=l;function d(x){return typeof x=="number"?`${x}`:x.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(x){return x.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function f(x,w){if(Array.isArray(x))for(let E of x)w(E);else w(x)}t.eachItem=f;function h({mergeNames:x,mergeToName:w,mergeValues:E,resultToName:R}){return(A,M,q,B)=>{let U=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?x(A,M,q):w(A,M,q),q):M instanceof e.Name?(w(A,q,M),M):E(M,q);return B===e.Name&&!(U instanceof e.Name)?R(A,U):U}}t.mergeEvaluated={props:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>{x.if((0,e._)`${w} === true`,()=>x.assign(E,!0),()=>x.assign(E,(0,e._)`${E} || {}`).code((0,e._)`Object.assign(${E}, ${w})`))}),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>{w===!0?x.assign(E,!0):(x.assign(E,(0,e._)`${E} || {}`),g(x,E,w))}),mergeValues:(x,w)=>x===!0?!0:{...x,...w},resultToName:_}),items:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>x.assign(E,(0,e._)`${w} === true ? true : ${E} > ${w} ? ${E} : ${w}`)),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>x.assign(E,w===!0?!0:(0,e._)`${E} > ${w} ? ${E} : ${w}`)),mergeValues:(x,w)=>x===!0?!0:Math.max(x,w),resultToName:(x,w)=>x.var("items",w)})};function _(x,w){if(w===!0)return x.var("props",!0);let E=x.var("props",(0,e._)`{}`);return w!==void 0&&g(x,E,w),E}t.evaluatedPropsToName=_;function g(x,w,E){Object.keys(E).forEach(R=>x.assign((0,e._)`${w}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=g;var m={};function y(x,w){return x.scopeValue("func",{ref:w,code:m[w.code]||(m[w.code]=new r._Code(w.code))})}t.useFunc=y;var v;(function(x){x[x.Num=0]="Num",x[x.Str=1]="Str"})(v||(t.Type=v={}));function b(x,w,E){if(x instanceof e.Name){let R=w===v.Num;return E?R?(0,e._)`"[" + ${x} + "]"`:(0,e._)`"['" + ${x} + "']"`:R?(0,e._)`"/" + ${x}`:(0,e._)`"/" + ${x}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return E?(0,e.getProperty)(x).toString():"/"+d(x)}t.getErrorPath=b;function S(x,w,E=x.opts.strictSchema){if(E){if(w=`strict mode: ${w}`,E===!0)throw new Error(w);x.self.logger.warn(w)}}t.checkStrictMode=S}),$a=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),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}),Uh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=Xe(),r=ut(),n=$a();t.keywordError={message:({keyword:g})=>(0,e.str)`must pass "${g}" keyword validation`},t.keyword$DataError={message:({keyword:g,schemaType:m})=>m?(0,e.str)`"${g}" keyword must be ${m} ($data)`:(0,e.str)`"${g}" keyword is invalid ($data)`};function i(g,m=t.keywordError,y,v){let{it:b}=g,{gen:S,compositeRule:x,allErrors:w}=b,E=d(g,m,y);v??(x||w)?c(S,E):u(b,(0,e._)`[${E}]`)}t.reportError=i;function a(g,m=t.keywordError,y){let{it:v}=g,{gen:b,compositeRule:S,allErrors:x}=v,w=d(g,m,y);c(b,w),S||x||u(v,n.default.vErrors)}t.reportExtraError=a;function o(g,m){g.assign(n.default.errors,m),g.if((0,e._)`${n.default.vErrors} !== null`,()=>g.if(m,()=>g.assign((0,e._)`${n.default.vErrors}.length`,m),()=>g.assign(n.default.vErrors,null)))}t.resetErrorsCount=o;function s({gen:g,keyword:m,schemaValue:y,data:v,errsCount:b,it:S}){if(b===void 0)throw new Error("ajv implementation error");let x=g.name("err");g.forRange("i",b,n.default.errors,w=>{g.const(x,(0,e._)`${n.default.vErrors}[${w}]`),g.if((0,e._)`${x}.instancePath === undefined`,()=>g.assign((0,e._)`${x}.instancePath`,(0,e.strConcat)(n.default.instancePath,S.errorPath))),g.assign((0,e._)`${x}.schemaPath`,(0,e.str)`${S.errSchemaPath}/${m}`),S.opts.verbose&&(g.assign((0,e._)`${x}.schema`,y),g.assign((0,e._)`${x}.data`,v))})}t.extendErrors=s;function c(g,m){let y=g.const("err",m);g.if((0,e._)`${n.default.vErrors} === null`,()=>g.assign(n.default.vErrors,(0,e._)`[${y}]`),(0,e._)`${n.default.vErrors}.push(${y})`),g.code((0,e._)`${n.default.errors}++`)}function u(g,m){let{gen:y,validateName:v,schemaEnv:b}=g;b.$async?y.throw((0,e._)`new ${g.ValidationError}(${m})`):(y.assign((0,e._)`${v}.errors`,m),y.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,m,y){let{createErrors:v}=g.it;return v===!1?(0,e._)`{}`:p(g,m,y)}function p(g,m,y={}){let{gen:v,it:b}=g,S=[f(b,y),h(g,y)];return _(g,m,S),v.object(...S)}function f({errorPath:g},{instancePath:m}){let y=m?(0,e.str)`${g}${(0,r.getErrorPath)(m,r.Type.Str)}`:g;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,y)]}function h({keyword:g,it:{errSchemaPath:m}},{schemaPath:y,parentSchema:v}){let b=v?m:(0,e.str)`${m}/${g}`;return y&&(b=(0,e.str)`${b}${(0,r.getErrorPath)(y,r.Type.Str)}`),[l.schemaPath,b]}function _(g,{params:m,message:y},v){let{keyword:b,data:S,schemaValue:x,it:w}=g,{opts:E,propertyName:R,topSchemaRef:A,schemaPath:M}=w;v.push([l.keyword,b],[l.params,typeof m=="function"?m(g):m||(0,e._)`{}`]),E.messages&&v.push([l.message,typeof y=="function"?y(g):y]),E.verbose&&v.push([l.schema,x],[l.parentSchema,(0,e._)`${A}${M}`],[n.default.data,S]),R&&v.push([l.propertyName,R])}}),lne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=Uh(),r=Xe(),n=$a(),i={message:"boolean schema is false"};function a(c){let{gen:u,schema:l,validateName:d}=c;l===!1?s(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=a;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),s(c)):l.var(u,!0)}t.boolOrEmptySchema=o;function s(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)}}),i2=V(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(a){return typeof a=="string"&&r.has(a)}t.isJSONType=n;function i(){let a={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...a,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},a.number,a.string,a.array,a.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=i}),a2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:i,self:a},o){let s=a.RULES.types[o];return s&&s!==!0&&r(i,s)}t.schemaHasRulesForType=e;function r(i,a){return a.rules.some(o=>n(i,o))}t.shouldUseGroup=r;function n(i,a){var o;return i[a.keyword]!==void 0||((o=a.definition.implements)===null||o===void 0?void 0:o.some(s=>i[s]!==void 0))}t.shouldUseRule=n}),Rh=V(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=i2(),r=a2(),n=Uh(),i=Xe(),a=ut(),o;(function(v){v[v.Correct=0]="Correct",v[v.Wrong=1]="Wrong"})(o||(t.DataType=o={}));function s(v){let b=c(v.type);if(b.includes("null")){if(v.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!b.length&&v.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');v.nullable===!0&&b.push("null")}return b}t.getSchemaTypes=s;function c(v){let b=Array.isArray(v)?v:v?[v]:[];if(b.every(e.isJSONType))return b;throw new Error("type must be JSONType or JSONType[]: "+b.join(","))}t.getJSONTypes=c;function u(v,b){let{gen:S,data:x,opts:w}=v,E=d(b,w.coerceTypes),R=b.length>0&&!(E.length===0&&b.length===1&&(0,r.schemaHasRulesForType)(v,b[0]));if(R){let A=_(b,x,w.strictNumbers,o.Wrong);S.if(A,()=>{E.length?p(v,b,E):m(v)})}return R}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(v,b){return b?v.filter(S=>l.has(S)||b==="array"&&S==="array"):[]}function p(v,b,S){let{gen:x,data:w,opts:E}=v,R=x.let("dataType",(0,i._)`typeof ${w}`),A=x.let("coerced",(0,i._)`undefined`);E.coerceTypes==="array"&&x.if((0,i._)`${R} == 'object' && Array.isArray(${w}) && ${w}.length == 1`,()=>x.assign(w,(0,i._)`${w}[0]`).assign(R,(0,i._)`typeof ${w}`).if(_(b,w,E.strictNumbers),()=>x.assign(A,w))),x.if((0,i._)`${A} !== undefined`);for(let q of S)(l.has(q)||q==="array"&&E.coerceTypes==="array")&&M(q);x.else(),m(v),x.endIf(),x.if((0,i._)`${A} !== undefined`,()=>{x.assign(w,A),f(v,A)});function M(q){switch(q){case"string":x.elseIf((0,i._)`${R} == "number" || ${R} == "boolean"`).assign(A,(0,i._)`"" + ${w}`).elseIf((0,i._)`${w} === null`).assign(A,(0,i._)`""`);return;case"number":x.elseIf((0,i._)`${R} == "boolean" || ${w} === null + || (${R} == "string" && ${w} && ${w} == +${w})`).assign(A,(0,i._)`+${w}`);return;case"integer":x.elseIf((0,i._)`${R} === "boolean" || ${w} === null + || (${R} === "string" && ${w} && ${w} == +${w} && !(${w} % 1))`).assign(A,(0,i._)`+${w}`);return;case"boolean":x.elseIf((0,i._)`${w} === "false" || ${w} === 0 || ${w} === null`).assign(A,!1).elseIf((0,i._)`${w} === "true" || ${w} === 1`).assign(A,!0);return;case"null":x.elseIf((0,i._)`${w} === "" || ${w} === 0 || ${w} === false`),x.assign(A,null);return;case"array":x.elseIf((0,i._)`${R} === "string" || ${R} === "number" + || ${R} === "boolean" || ${w} === null`).assign(A,(0,i._)`[${w}]`)}}}function f({gen:v,parentData:b,parentDataProperty:S},x){v.if((0,i._)`${b} !== undefined`,()=>v.assign((0,i._)`${b}[${S}]`,x))}function h(v,b,S,x=o.Correct){let w=x===o.Correct?i.operators.EQ:i.operators.NEQ,E;switch(v){case"null":return(0,i._)`${b} ${w} null`;case"array":E=(0,i._)`Array.isArray(${b})`;break;case"object":E=(0,i._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":E=R((0,i._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":E=R();break;default:return(0,i._)`typeof ${b} ${w} ${v}`}return x===o.Correct?E:(0,i.not)(E);function R(A=i.nil){return(0,i.and)((0,i._)`typeof ${b} == "number"`,A,S?(0,i._)`isFinite(${b})`:i.nil)}}t.checkDataType=h;function _(v,b,S,x){if(v.length===1)return h(v[0],b,S,x);let w,E=(0,a.toHash)(v);if(E.array&&E.object){let R=(0,i._)`typeof ${b} != "object"`;w=E.null?R:(0,i._)`!${b} || ${R}`,delete E.null,delete E.array,delete E.object}else w=i.nil;E.number&&delete E.integer;for(let R in E)w=(0,i.and)(w,h(R,b,S,x));return w}t.checkDataTypes=_;var g={message:({schema:v})=>`must be ${v}`,params:({schema:v,schemaValue:b})=>typeof v=="string"?(0,i._)`{type: ${v}}`:(0,i._)`{type: ${b}}`};function m(v){let b=y(v);(0,n.reportError)(b,g)}t.reportTypeError=m;function y(v){let{gen:b,data:S,schema:x}=v,w=(0,a.schemaRefOrVal)(v,x,"type");return{gen:b,keyword:"type",data:S,schema:x.type,schemaCode:w,schemaValue:w,parentSchema:x,params:{},it:v}}}),dne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=Xe(),r=ut();function n(a,o){let{properties:s,items:c}=a.schema;if(o==="object"&&s)for(let u in s)i(a,u,s[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(a,l,u.default))}t.assignDefaults=n;function i(a,o,s){let{gen:c,compositeRule:u,data:l,opts:d}=a;if(s===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(o)}`;if(u){(0,r.checkStrictMode)(a,`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)(s)}`)}}),Yn=V(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=Xe(),r=ut(),n=$a(),i=ut();function a(v,b){let{gen:S,data:x,it:w}=v;S.if(d(S,x,b,w.opts.ownProperties),()=>{v.setParams({missingProperty:(0,e._)`${b}`},!0),v.error()})}t.checkReportMissingProp=a;function o({gen:v,data:b,it:{opts:S}},x,w){return(0,e.or)(...x.map(E=>(0,e.and)(d(v,b,E,S.ownProperties),(0,e._)`${w} = ${E}`)))}t.checkMissingProp=o;function s(v,b){v.setParams({missingProperty:b},!0),v.error()}t.reportMissingProp=s;function c(v){return v.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(v,b,S){return(0,e._)`${c(v)}.call(${b}, ${S})`}t.isOwnProperty=u;function l(v,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} !== undefined`;return x?(0,e._)`${w} && ${u(v,b,S)}`:w}t.propertyInData=l;function d(v,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} === undefined`;return x?(0,e.or)(w,(0,e.not)(u(v,b,S))):w}t.noPropertyInData=d;function p(v){return v?Object.keys(v).filter(b=>b!=="__proto__"):[]}t.allSchemaProperties=p;function f(v,b){return p(b).filter(S=>!(0,r.alwaysValidSchema)(v,b[S]))}t.schemaProperties=f;function h({schemaCode:v,data:b,it:{gen:S,topSchemaRef:x,schemaPath:w,errorPath:E},it:R},A,M,q){let B=q?(0,e._)`${v}, ${b}, ${x}${w}`:b,U=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,E)],[n.default.parentData,R.parentData],[n.default.parentDataProperty,R.parentDataProperty],[n.default.rootData,n.default.rootData]];R.opts.dynamicRef&&U.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let Y=(0,e._)`${B}, ${S.object(...U)}`;return M!==e.nil?(0,e._)`${A}.call(${M}, ${Y})`:(0,e._)`${A}(${Y})`}t.callValidateCode=h;var _=(0,e._)`new RegExp`;function g({gen:v,it:{opts:b}},S){let x=b.unicodeRegExp?"u":"",{regExp:w}=b.code,E=w(S,x);return v.scopeValue("pattern",{key:E.toString(),ref:E,code:(0,e._)`${w.code==="new RegExp"?_:(0,i.useFunc)(v,w)}(${S}, ${x})`})}t.usePattern=g;function m(v){let{gen:b,data:S,keyword:x,it:w}=v,E=b.name("valid");if(w.allErrors){let A=b.let("valid",!0);return R(()=>b.assign(A,!1)),A}return b.var(E,!0),R(()=>b.break()),E;function R(A){let M=b.const("len",(0,e._)`${S}.length`);b.forRange("i",0,M,q=>{v.subschema({keyword:x,dataProp:q,dataPropType:r.Type.Num},E),b.if((0,e.not)(E),A)})}}t.validateArray=m;function y(v){let{gen:b,schema:S,keyword:x,it:w}=v;if(!Array.isArray(S))throw new Error("ajv implementation error");if(S.some(M=>(0,r.alwaysValidSchema)(w,M))&&!w.opts.unevaluated)return;let R=b.let("valid",!1),A=b.name("_valid");b.block(()=>S.forEach((M,q)=>{let B=v.subschema({keyword:x,schemaProp:q,compositeRule:!0},A);b.assign(R,(0,e._)`${R} || ${A}`),v.mergeValidEvaluated(B,A)||b.if((0,e.not)(R))})),v.result(R,()=>v.reset(),()=>v.error(!0))}t.validateUnion=y}),pne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=Xe(),r=$a(),n=Yn(),i=Uh();function a(f,h){let{gen:_,keyword:g,schema:m,parentSchema:y,it:v}=f,b=h.macro.call(v.self,m,y,v),S=l(_,g,b);v.opts.validateSchema!==!1&&v.self.validateSchema(b,!0);let x=_.name("valid");f.subschema({schema:b,schemaPath:e.nil,errSchemaPath:`${v.errSchemaPath}/${g}`,topSchemaRef:S,compositeRule:!0},x),f.pass(x,()=>f.error(!0))}t.macroKeywordCode=a;function o(f,h){var _;let{gen:g,keyword:m,schema:y,parentSchema:v,$data:b,it:S}=f;u(S,h);let x=!b&&h.compile?h.compile.call(S.self,y,v,S):h.validate,w=l(g,m,x),E=g.let("valid");f.block$data(E,R),f.ok((_=h.valid)!==null&&_!==void 0?_:E);function R(){if(h.errors===!1)q(),h.modifying&&s(f),B(()=>f.error());else{let U=h.async?A():M();h.modifying&&s(f),B(()=>c(f,U))}}function A(){let U=g.let("ruleErrs",null);return g.try(()=>q((0,e._)`await `),Y=>g.assign(E,!1).if((0,e._)`${Y} instanceof ${S.ValidationError}`,()=>g.assign(U,(0,e._)`${Y}.errors`),()=>g.throw(Y))),U}function M(){let U=(0,e._)`${w}.errors`;return g.assign(U,null),q(e.nil),U}function q(U=h.async?(0,e._)`await `:e.nil){let Y=S.opts.passContext?r.default.this:r.default.self,me=!("compile"in h&&!b||h.schema===!1);g.assign(E,(0,e._)`${U}${(0,n.callValidateCode)(f,w,Y,me)}`,h.modifying)}function B(U){var Y;g.if((0,e.not)((Y=h.valid)!==null&&Y!==void 0?Y:E),U)}}t.funcKeywordCode=o;function s(f){let{gen:h,data:_,it:g}=f;h.if(g.parentData,()=>h.assign(_,(0,e._)`${g.parentData}[${g.parentDataProperty}]`))}function c(f,h){let{gen:_}=f;_.if((0,e._)`Array.isArray(${h})`,()=>{_.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${h} : ${r.default.vErrors}.concat(${h})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,i.extendErrors)(f)},()=>f.error())}function u({schemaEnv:f},h){if(h.async&&!f.$async)throw new Error("async keyword in sync schema")}function l(f,h,_){if(_===void 0)throw new Error(`keyword "${h}" failed to compile`);return f.scopeValue("keyword",typeof _=="function"?{ref:_}:{ref:_,code:(0,e.stringify)(_)})}function d(f,h,_=!1){return!h.length||h.some(g=>g==="array"?Array.isArray(f):g==="object"?f&&typeof f=="object"&&!Array.isArray(f):typeof f==g||_&&typeof f>"u")}t.validSchemaType=d;function p({schema:f,opts:h,self:_,errSchemaPath:g},m,y){if(Array.isArray(m.keyword)?!m.keyword.includes(y):m.keyword!==y)throw new Error("ajv implementation error");let v=m.dependencies;if(v?.some(b=>!Object.prototype.hasOwnProperty.call(f,b)))throw new Error(`parent schema must have dependencies of ${y}: ${v.join(",")}`);if(m.validateSchema&&!m.validateSchema(f[y])){let S=`keyword "${y}" value is invalid at path "${g}": `+_.errorsText(m.validateSchema.errors);if(h.validateSchema==="log")_.logger.error(S);else throw new Error(S)}}t.validateKeywordUsage=p}),fne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=Xe(),r=ut();function n(o,{keyword:s,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(s!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(s!==void 0){let f=o.schema[s];return c===void 0?{schema:f,schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}`,errSchemaPath:`${o.errSchemaPath}/${s}`}:{schema:f[c],schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}${(0,e.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${s}/${(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,s,{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}=s;if(c!==void 0){let{errorPath:_,dataPathArr:g,opts:m}=s,y=f.let("data",(0,e._)`${s.data}${(0,e.getProperty)(c)}`,!0);h(y),o.errorPath=(0,e.str)`${_}${(0,r.getErrorPath)(c,u,m.jsPropertySyntax)}`,o.parentDataProperty=(0,e._)`${c}`,o.dataPathArr=[...g,o.parentDataProperty]}if(l!==void 0){let _=l instanceof e.Name?l:f.let("data",l,!0);h(_),p!==void 0&&(o.propertyName=p)}d&&(o.dataTypes=d);function h(_){o.data=_,o.dataLevel=s.dataLevel+1,o.dataTypes=[],s.definedProperties=new Set,o.parentData=s.data,o.dataNames=[...s.dataNames,_]}}t.extendSubschemaData=i;function a(o,{jtdDiscriminator:s,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=s,o.jtdMetadata=c}t.extendSubschemaMode=a}),qh=V((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 a,o,s;if(Array.isArray(n)){if(a=n.length,a!=i.length)return!1;for(o=a;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(s=Object.keys(n),a=s.length,a!==Object.keys(i).length)return!1;for(o=a;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,s[o]))return!1;for(o=a;o--!==0;){var c=s[o];if(!r(n[c],i[c]))return!1}return!0}return n!==n&&i!==i}}),mne=V((t,e)=>{var r=e.exports=function(a,o,s){typeof o=="function"&&(s=o,o={}),s=o.cb||s;var c=typeof s=="function"?s:s.pre||function(){},u=s.post||function(){};n(o,c,u,a,"",a)};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(a,o,s,c,u,l,d,p,f,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,p,f,h);for(var _ in c){var g=c[_];if(Array.isArray(g)){if(_ in r.arrayKeywords)for(var m=0;m{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=ut(),r=qh(),n=mne(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function a(g,m=!0){return typeof g=="boolean"?!0:m===!0?!s(g):m?c(g)<=m:!1}t.inlineRef=a;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function s(g){for(let m in g){if(o.has(m))return!0;let y=g[m];if(Array.isArray(y)&&y.some(s)||typeof y=="object"&&s(y))return!0}return!1}function c(g){let m=0;for(let y in g){if(y==="$ref")return 1/0;if(m++,!i.has(y)&&(typeof g[y]=="object"&&(0,e.eachItem)(g[y],v=>m+=c(v)),m===1/0))return 1/0}return m}function u(g,m="",y){y!==!1&&(m=p(m));let v=g.parse(m);return l(g,v)}t.getFullPath=u;function l(g,m){return g.serialize(m).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(g){return g?g.replace(d,""):""}t.normalizeId=p;function f(g,m,y){return y=p(y),g.resolve(m,y)}t.resolveUrl=f;var h=/^[a-z_][-a-z0-9._]*$/i;function _(g,m){if(typeof g=="boolean")return{};let{schemaId:y,uriResolver:v}=this.opts,b=p(g[y]||m),S={"":b},x=u(v,b,!1),w={},E=new Set;return n(g,{allKeys:!0},(M,q,B,U)=>{if(U===void 0)return;let Y=x+q,me=S[U];typeof M[y]=="string"&&(me=Qe.call(this,M[y])),mt.call(this,M.$anchor),mt.call(this,M.$dynamicAnchor),S[q]=me;function Qe(fe){let F=this.opts.uriResolver.resolve;if(fe=p(me?F(me,fe):fe),E.has(fe))throw A(fe);E.add(fe);let I=this.refs[fe];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?R(M,I.schema,fe):fe!==p(Y)&&(fe[0]==="#"?(R(M,w[fe],fe),w[fe]=M):this.refs[fe]=Y),fe}function mt(fe){if(typeof fe=="string"){if(!h.test(fe))throw new Error(`invalid anchor "${fe}"`);Qe.call(this,`#${fe}`)}}}),w;function R(M,q,B){if(q!==void 0&&!r(M,q))throw A(B)}function A(M){return new Error(`reference "${M}" resolves to more than one schema`)}}t.getSchemaRefs=_}),Fh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=lne(),r=Rh(),n=a2(),i=Rh(),a=dne(),o=pne(),s=fne(),c=Xe(),u=$a(),l=Lh(),d=ut(),p=Uh();function f(P){if(x(P)&&(E(P),S(P))){m(P);return}h(P,()=>(0,e.topBoolOrEmptySchema)(P))}t.validateFunctionCode=f;function h({gen:P,validateName:O,schema:z,schemaEnv:Z,opts:J},ie){J.code.es5?P.func(O,(0,c._)`${u.default.data}, ${u.default.valCxt}`,Z.$async,()=>{P.code((0,c._)`"use strict"; ${v(z,J)}`),g(P,J),P.code(ie)}):P.func(O,(0,c._)`${u.default.data}, ${_(J)}`,Z.$async,()=>P.code(v(z,J)).code(ie))}function _(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,O){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}`),O.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),O.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function m(P){let{schema:O,opts:z,gen:Z}=P;h(P,()=>{z.$comment&&O.$comment&&U(P),M(P),Z.let(u.default.vErrors,null),Z.let(u.default.errors,0),z.unevaluated&&y(P),R(P),Y(P)})}function y(P){let{gen:O,validateName:z}=P;P.evaluated=O.const("evaluated",(0,c._)`${z}.evaluated`),O.if((0,c._)`${P.evaluated}.dynamicProps`,()=>O.assign((0,c._)`${P.evaluated}.props`,(0,c._)`undefined`)),O.if((0,c._)`${P.evaluated}.dynamicItems`,()=>O.assign((0,c._)`${P.evaluated}.items`,(0,c._)`undefined`))}function v(P,O){let z=typeof P=="object"&&P[O.schemaId];return z&&(O.code.source||O.code.process)?(0,c._)`/*# sourceURL=${z} */`:c.nil}function b(P,O){if(x(P)&&(E(P),S(P))){w(P,O);return}(0,e.boolOrEmptySchema)(P,O)}function S({schema:P,self:O}){if(typeof P=="boolean")return!P;for(let z in P)if(O.RULES.all[z])return!0;return!1}function x(P){return typeof P.schema!="boolean"}function w(P,O){let{schema:z,gen:Z,opts:J}=P;J.$comment&&z.$comment&&U(P),q(P),B(P);let ie=Z.const("_errs",u.default.errors);R(P,ie),Z.var(O,(0,c._)`${ie} === ${u.default.errors}`)}function E(P){(0,d.checkUnknownRules)(P),A(P)}function R(P,O){if(P.opts.jtd)return Qe(P,[],!1,O);let z=(0,r.getSchemaTypes)(P.schema),Z=(0,r.coerceAndCheckDataType)(P,z);Qe(P,z,!Z,O)}function A(P){let{schema:O,errSchemaPath:z,opts:Z,self:J}=P;O.$ref&&Z.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(O,J.RULES)&&J.logger.warn(`$ref: keywords ignored in schema at path "${z}"`)}function M(P){let{schema:O,opts:z}=P;O.default!==void 0&&z.useDefaults&&z.strictSchema&&(0,d.checkStrictMode)(P,"default is ignored in the schema root")}function q(P){let O=P.schema[P.opts.schemaId];O&&(P.baseId=(0,l.resolveUrl)(P.opts.uriResolver,P.baseId,O))}function B(P){if(P.schema.$async&&!P.schemaEnv.$async)throw new Error("async schema in sync schema")}function U({gen:P,schemaEnv:O,schema:z,errSchemaPath:Z,opts:J}){let ie=z.$comment;if(J.$comment===!0)P.code((0,c._)`${u.default.self}.logger.log(${ie})`);else if(typeof J.$comment=="function"){let et=(0,c.str)`${Z}/$comment`,Zt=P.scopeValue("root",{ref:O.root});P.code((0,c._)`${u.default.self}.opts.$comment(${ie}, ${et}, ${Zt}.schema)`)}}function Y(P){let{gen:O,schemaEnv:z,validateName:Z,ValidationError:J,opts:ie}=P;z.$async?O.if((0,c._)`${u.default.errors} === 0`,()=>O.return(u.default.data),()=>O.throw((0,c._)`new ${J}(${u.default.vErrors})`)):(O.assign((0,c._)`${Z}.errors`,u.default.vErrors),ie.unevaluated&&me(P),O.return((0,c._)`${u.default.errors} === 0`))}function me({gen:P,evaluated:O,props:z,items:Z}){z instanceof c.Name&&P.assign((0,c._)`${O}.props`,z),Z instanceof c.Name&&P.assign((0,c._)`${O}.items`,Z)}function Qe(P,O,z,Z){let{gen:J,schema:ie,data:et,allErrors:Zt,opts:vt,self:yt}=P,{RULES:tt}=yt;if(ie.$ref&&(vt.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(ie,tt))){J.block(()=>K(P,"$ref",tt.all.$ref.definition));return}vt.jtd||fe(P,O),J.block(()=>{for(let Ct of tt.rules)Qr(Ct);Qr(tt.post)});function Qr(Ct){(0,n.shouldUseGroup)(ie,Ct)&&(Ct.type?(J.if((0,i.checkDataType)(Ct.type,et,vt.strictNumbers)),mt(P,Ct),O.length===1&&O[0]===Ct.type&&z&&(J.else(),(0,i.reportTypeError)(P)),J.endIf()):mt(P,Ct),Zt||J.if((0,c._)`${u.default.errors} === ${Z||0}`))}}function mt(P,O){let{gen:z,schema:Z,opts:{useDefaults:J}}=P;J&&(0,a.assignDefaults)(P,O.type),z.block(()=>{for(let ie of O.rules)(0,n.shouldUseRule)(Z,ie)&&K(P,ie.keyword,ie.definition,O.type)})}function fe(P,O){P.schemaEnv.meta||!P.opts.strictTypes||(F(P,O),P.opts.allowUnionTypes||I(P,O),D(P,P.dataTypes))}function F(P,O){if(O.length){if(!P.dataTypes.length){P.dataTypes=O;return}O.forEach(z=>{$(P.dataTypes,z)||N(P,`type "${z}" not allowed by context "${P.dataTypes.join(",")}"`)}),T(P,O)}}function I(P,O){O.length>1&&!(O.length===2&&O.includes("null"))&&N(P,"use allowUnionTypes to allow union type keyword")}function D(P,O){let z=P.self.RULES.all;for(let Z in z){let J=z[Z];if(typeof J=="object"&&(0,n.shouldUseRule)(P.schema,J)){let{type:ie}=J.definition;ie.length&&!ie.some(et=>C(O,et))&&N(P,`missing type "${ie.join(",")}" for keyword "${Z}"`)}}}function C(P,O){return P.includes(O)||O==="number"&&P.includes("integer")}function $(P,O){return P.includes(O)||O==="integer"&&P.includes("number")}function T(P,O){let z=[];for(let Z of P.dataTypes)$(O,Z)?z.push(Z):O.includes("integer")&&Z==="number"&&z.push("integer");P.dataTypes=z}function N(P,O){let z=P.schemaEnv.baseId+P.errSchemaPath;O+=` at "${z}" (strictTypes)`,(0,d.checkStrictMode)(P,O,P.opts.strictTypes)}class W{constructor(O,z,Z){if((0,o.validateKeywordUsage)(O,z,Z),this.gen=O.gen,this.allErrors=O.allErrors,this.keyword=Z,this.data=O.data,this.schema=O.schema[Z],this.$data=z.$data&&O.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(O,this.schema,Z,this.$data),this.schemaType=z.schemaType,this.parentSchema=O.schema,this.params={},this.it=O,this.def=z,this.$data)this.schemaCode=O.gen.const("vSchema",je(this.$data,O));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,z.schemaType,z.allowUndefined))throw new Error(`${Z} value must be ${JSON.stringify(z.schemaType)}`);("code"in z?z.trackErrors:z.errors!==!1)&&(this.errsCount=O.gen.const("_errs",u.default.errors))}result(O,z,Z){this.failResult((0,c.not)(O),z,Z)}failResult(O,z,Z){this.gen.if(O),Z?Z():this.error(),z?(this.gen.else(),z(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(O,z){this.failResult((0,c.not)(O),void 0,z)}fail(O){if(O===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(O),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(O){if(!this.$data)return this.fail(O);let{schemaCode:z}=this;this.fail((0,c._)`${z} !== undefined && (${(0,c.or)(this.invalid$data(),O)})`)}error(O,z,Z){if(z){this.setParams(z),this._error(O,Z),this.setParams({});return}this._error(O,Z)}_error(O,z){(O?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(O){this.allErrors||this.gen.if(O)}setParams(O,z){z?Object.assign(this.params,O):this.params=O}block$data(O,z,Z=c.nil){this.gen.block(()=>{this.check$data(O,Z),z()})}check$data(O=c.nil,z=c.nil){if(!this.$data)return;let{gen:Z,schemaCode:J,schemaType:ie,def:et}=this;Z.if((0,c.or)((0,c._)`${J} === undefined`,z)),O!==c.nil&&Z.assign(O,!0),(ie.length||et.validateSchema)&&(Z.elseIf(this.invalid$data()),this.$dataError(),O!==c.nil&&Z.assign(O,!1)),Z.else()}invalid$data(){let{gen:O,schemaCode:z,schemaType:Z,def:J,it:ie}=this;return(0,c.or)(et(),Zt());function et(){if(Z.length){if(!(z instanceof c.Name))throw new Error("ajv implementation error");let vt=Array.isArray(Z)?Z:[Z];return(0,c._)`${(0,i.checkDataTypes)(vt,z,ie.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Zt(){if(J.validateSchema){let vt=O.scopeValue("validate$data",{ref:J.validateSchema});return(0,c._)`!${vt}(${z})`}return c.nil}}subschema(O,z){let Z=(0,s.getSubschema)(this.it,O);(0,s.extendSubschemaData)(Z,this.it,O),(0,s.extendSubschemaMode)(Z,O);let J={...this.it,...Z,items:void 0,props:void 0};return b(J,z),J}mergeEvaluated(O,z){let{it:Z,gen:J}=this;Z.opts.unevaluated&&(Z.props!==!0&&O.props!==void 0&&(Z.props=d.mergeEvaluated.props(J,O.props,Z.props,z)),Z.items!==!0&&O.items!==void 0&&(Z.items=d.mergeEvaluated.items(J,O.items,Z.items,z)))}mergeValidEvaluated(O,z){let{it:Z,gen:J}=this;if(Z.opts.unevaluated&&(Z.props!==!0||Z.items!==!0))return J.if(z,()=>this.mergeEvaluated(O,c.Name)),!0}}t.KeywordCxt=W;function K(P,O,z,Z){let J=new W(P,z,O);"code"in z?z.code(J,Z):J.$data&&z.validate?(0,o.funcKeywordCode)(J,z):"macro"in z?(0,o.macroKeywordCode)(J,z):(z.compile||z.validate)&&(0,o.funcKeywordCode)(J,z)}var pe=/^\/(?:[^~]|~0|~1)*$/,ce=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function je(P,{dataLevel:O,dataNames:z,dataPathArr:Z}){let J,ie;if(P==="")return u.default.rootData;if(P[0]==="/"){if(!pe.test(P))throw new Error(`Invalid JSON-pointer: ${P}`);J=P,ie=u.default.rootData}else{let yt=ce.exec(P);if(!yt)throw new Error(`Invalid JSON-pointer: ${P}`);let tt=+yt[1];if(J=yt[2],J==="#"){if(tt>=O)throw new Error(vt("property/index",tt));return Z[O-tt]}if(tt>O)throw new Error(vt("data",tt));if(ie=z[O-tt],!J)return ie}let et=ie,Zt=J.split("/");for(let yt of Zt)yt&&(ie=(0,c._)`${ie}${(0,c.getProperty)((0,d.unescapeJsonPointer)(yt))}`,et=(0,c._)`${et} && ${ie}`);return et;function vt(yt,tt){return`Cannot access ${yt} ${tt} levels up, current level is ${O}`}}t.getData=je}),I$=V(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}),Zh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Lh();class r extends Error{constructor(i,a,o,s){super(s||`can't resolve reference ${o} from id ${a}`),this.missingRef=(0,e.resolveUrl)(i,a,o),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(i,this.missingRef))}}t.default=r}),P$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=Xe(),r=I$(),n=$a(),i=Lh(),a=ut(),o=Fh();class s{constructor(y){var v;this.refs={},this.dynamicAnchors={};let b;typeof y.schema=="object"&&(b=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(v=y.baseId)!==null&&v!==void 0?v:(0,i.normalizeId)(b?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=b?.$async,this.refs={}}}t.SchemaEnv=s;function c(m){let y=d.call(this,m);if(y)return y;let v=(0,i.getFullPath)(this.opts.uriResolver,m.root.baseId),{es5:b,lines:S}=this.opts.code,{ownProperties:x}=this.opts,w=new e.CodeGen(this.scope,{es5:b,lines:S,ownProperties:x}),E;m.$async&&(E=w.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let R=w.scopeName("validate");m.validateName=R;let A={gen:w,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:w.scopeValue("schema",this.opts.code.source===!0?{ref:m.schema,code:(0,e.stringify)(m.schema)}:{ref:m.schema}),validateName:R,ValidationError:E,schema:m.schema,schemaEnv:m,rootId:v,baseId:m.baseId||v,schemaPath:e.nil,errSchemaPath:m.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},M;try{this._compilations.add(m),(0,o.validateFunctionCode)(A),w.optimize(this.opts.code.optimize);let q=w.toString();M=`${w.scopeRefs(n.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,m));let U=new Function(`${n.default.self}`,`${n.default.scope}`,M)(this,this.scope.get());if(this.scope.value(R,{ref:U}),U.errors=null,U.schema=m.schema,U.schemaEnv=m,m.$async&&(U.$async=!0),this.opts.code.source===!0&&(U.source={validateName:R,validateCode:q,scopeValues:w._values}),this.opts.unevaluated){let{props:Y,items:me}=A;U.evaluated={props:Y instanceof e.Name?void 0:Y,items:me instanceof e.Name?void 0:me,dynamicProps:Y instanceof e.Name,dynamicItems:me instanceof e.Name},U.source&&(U.source.evaluated=(0,e.stringify)(U.evaluated))}return m.validate=U,m}catch(q){throw delete m.validate,delete m.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(m)}}t.compileSchema=c;function u(m,y,v){var b;v=(0,i.resolveUrl)(this.opts.uriResolver,y,v);let S=m.refs[v];if(S)return S;let x=f.call(this,m,v);if(x===void 0){let w=(b=m.localRefs)===null||b===void 0?void 0:b[v],{schemaId:E}=this.opts;w&&(x=new s({schema:w,schemaId:E,root:m,baseId:y}))}if(x!==void 0)return m.refs[v]=l.call(this,x)}t.resolveRef=u;function l(m){return(0,i.inlineRef)(m.schema,this.opts.inlineRefs)?m.schema:m.validate?m:c.call(this,m)}function d(m){for(let y of this._compilations)if(p(y,m))return y}t.getCompilingSchema=d;function p(m,y){return m.schema===y.schema&&m.root===y.root&&m.baseId===y.baseId}function f(m,y){let v;for(;typeof(v=this.refs[y])=="string";)y=v;return v||this.schemas[y]||h.call(this,m,y)}function h(m,y){let v=this.opts.uriResolver.parse(y),b=(0,i._getFullPath)(this.opts.uriResolver,v),S=(0,i.getFullPath)(this.opts.uriResolver,m.baseId,void 0);if(Object.keys(m.schema).length>0&&b===S)return g.call(this,v,m);let x=(0,i.normalizeId)(b),w=this.refs[x]||this.schemas[x];if(typeof w=="string"){let E=h.call(this,m,w);return typeof E?.schema!="object"?void 0:g.call(this,v,E)}if(typeof w?.schema=="object"){if(w.validate||c.call(this,w),x===(0,i.normalizeId)(y)){let{schema:E}=w,{schemaId:R}=this.opts,A=E[R];return A&&(S=(0,i.resolveUrl)(this.opts.uriResolver,S,A)),new s({schema:E,schemaId:R,root:m,baseId:S})}return g.call(this,v,w)}}t.resolveSchema=h;var _=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function g(m,{baseId:y,schema:v,root:b}){var S;if(((S=m.fragment)===null||S===void 0?void 0:S[0])!=="/")return;for(let E of m.fragment.slice(1).split("/")){if(typeof v=="boolean")return;let R=v[(0,a.unescapeFragment)(E)];if(R===void 0)return;v=R;let A=typeof v=="object"&&v[this.opts.schemaId];!_.has(E)&&A&&(y=(0,i.resolveUrl)(this.opts.uriResolver,y,A))}let x;if(typeof v!="boolean"&&v.$ref&&!(0,a.schemaHasRulesButRef)(v,this.RULES)){let E=(0,i.resolveUrl)(this.opts.uriResolver,y,v.$ref);x=h.call(this,b,E)}let{schemaId:w}=this.opts;if(x=x||new s({schema:v,schemaId:w,root:b,baseId:y}),x.schema!==x.root.schema)return x}}),hne=V((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}}),gne=V((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}}),vne=V((t,e)=>{var{HEX:r}=gne(),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(m){if(u(m,".")<3)return{host:m,isIPV4:!1};let y=m.match(n)||[],[v]=y;return v?{host:c(v,"."),isIPV4:!0}:{host:m,isIPV4:!1}}function a(m,y=!1){let v="",b=!0;for(let S of m){if(r[S]===void 0)return;S!=="0"&&b===!0&&(b=!1),b||(v+=S)}return y&&v.length===0&&(v="0"),v}function o(m){let y=0,v={error:!1,address:"",zone:""},b=[],S=[],x=!1,w=!1,E=!1;function R(){if(S.length){if(x===!1){let A=a(S);if(A!==void 0)b.push(A);else return v.error=!0,!1}S.length=0}return!0}for(let A=0;A7){v.error=!0;break}A-1>=0&&m[A-1]===":"&&(w=!0);continue}else if(M==="%"){if(!R())break;x=!0}else{S.push(M);continue}}return S.length&&(x?v.zone=S.join(""):E?b.push(S.join("")):b.push(a(S))),v.address=b.join(""),v}function s(m){if(u(m,":")<2)return{host:m,isIPV6:!1};let y=o(m);if(y.error)return{host:m,isIPV6:!1};{let v=y.address,b=y.address;return y.zone&&(v+="%"+y.zone,b+="%25"+y.zone),{host:v,escapedHost:b,isIPV6:!0}}}function c(m,y){let v="",b=!0,S=m.length;for(let x=0;x{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(b){return typeof b.secure=="boolean"?b.secure:String(b.scheme).toLowerCase()==="wss"}function a(b){return b.host||(b.error=b.error||"HTTP URIs must have a host."),b}function o(b){let S=String(b.scheme).toLowerCase()==="https";return(b.port===(S?443:80)||b.port==="")&&(b.port=void 0),b.path||(b.path="/"),b}function s(b){return b.secure=i(b),b.resourceName=(b.path||"/")+(b.query?"?"+b.query:""),b.path=void 0,b.query=void 0,b}function c(b){if((b.port===(i(b)?443:80)||b.port==="")&&(b.port=void 0),typeof b.secure=="boolean"&&(b.scheme=b.secure?"wss":"ws",b.secure=void 0),b.resourceName){let[S,x]=b.resourceName.split("?");b.path=S&&S!=="/"?S:void 0,b.query=x,b.resourceName=void 0}return b.fragment=void 0,b}function u(b,S){if(!b.path)return b.error="URN can not be parsed",b;let x=b.path.match(n);if(x){let w=S.scheme||b.scheme||"urn";b.nid=x[1].toLowerCase(),b.nss=x[2];let E=`${w}:${S.nid||b.nid}`,R=v[E];b.path=void 0,R&&(b=R.parse(b,S))}else b.error=b.error||"URN can not be parsed.";return b}function l(b,S){let x=S.scheme||b.scheme||"urn",w=b.nid.toLowerCase(),E=`${x}:${S.nid||w}`,R=v[E];R&&(b=R.serialize(b,S));let A=b,M=b.nss;return A.path=`${w||S.nid}:${M}`,S.skipEscape=!0,A}function d(b,S){let x=b;return x.uuid=x.nss,x.nss=void 0,!S.tolerant&&(!x.uuid||!r.test(x.uuid))&&(x.error=x.error||"UUID is not valid."),x}function p(b){let S=b;return S.nss=(b.uuid||"").toLowerCase(),S}var f={scheme:"http",domainHost:!0,parse:a,serialize:o},h={scheme:"https",domainHost:f.domainHost,parse:a,serialize:o},_={scheme:"ws",domainHost:!0,parse:s,serialize:c},g={scheme:"wss",domainHost:_.domainHost,parse:_.parse,serialize:_.serialize},m={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},y={scheme:"urn:uuid",parse:d,serialize:p,skipNormalize:!0},v={http:f,https:h,ws:_,wss:g,urn:m,"urn:uuid":y};e.exports=v}),o2=V((t,e)=>{var{normalizeIPv6:r,normalizeIPv4:n,removeDotSegments:i,recomposeAuthority:a,normalizeComponentEncoding:o}=vne(),s=yne();function c(y,v){return typeof y=="string"?y=p(g(y,v),v):typeof y=="object"&&(y=g(p(y,v),v)),y}function u(y,v,b){let S=Object.assign({scheme:"null"},b),x=l(g(y,S),g(v,S),S,!0);return p(x,{...S,skipEscape:!0})}function l(y,v,b,S){let x={};return S||(y=g(p(y,b),b),v=g(p(v,b),b)),b=b||{},!b.tolerant&&v.scheme?(x.scheme=v.scheme,x.userinfo=v.userinfo,x.host=v.host,x.port=v.port,x.path=i(v.path||""),x.query=v.query):(v.userinfo!==void 0||v.host!==void 0||v.port!==void 0?(x.userinfo=v.userinfo,x.host=v.host,x.port=v.port,x.path=i(v.path||""),x.query=v.query):(v.path?(v.path.charAt(0)==="/"?x.path=i(v.path):((y.userinfo!==void 0||y.host!==void 0||y.port!==void 0)&&!y.path?x.path="/"+v.path:y.path?x.path=y.path.slice(0,y.path.lastIndexOf("/")+1)+v.path:x.path=v.path,x.path=i(x.path)),x.query=v.query):(x.path=y.path,v.query!==void 0?x.query=v.query:x.query=y.query),x.userinfo=y.userinfo,x.host=y.host,x.port=y.port),x.scheme=y.scheme),x.fragment=v.fragment,x}function d(y,v,b){return typeof y=="string"?(y=unescape(y),y=p(o(g(y,b),!0),{...b,skipEscape:!0})):typeof y=="object"&&(y=p(o(y,!0),{...b,skipEscape:!0})),typeof v=="string"?(v=unescape(v),v=p(o(g(v,b),!0),{...b,skipEscape:!0})):typeof v=="object"&&(v=p(o(v,!0),{...b,skipEscape:!0})),y.toLowerCase()===v.toLowerCase()}function p(y,v){let b={host:y.host,scheme:y.scheme,userinfo:y.userinfo,port:y.port,path:y.path,query:y.query,nid:y.nid,nss:y.nss,uuid:y.uuid,fragment:y.fragment,reference:y.reference,resourceName:y.resourceName,secure:y.secure,error:""},S=Object.assign({},v),x=[],w=s[(S.scheme||b.scheme||"").toLowerCase()];w&&w.serialize&&w.serialize(b,S),b.path!==void 0&&(S.skipEscape?b.path=unescape(b.path):(b.path=escape(b.path),b.scheme!==void 0&&(b.path=b.path.split("%3A").join(":")))),S.reference!=="suffix"&&b.scheme&&x.push(b.scheme,":");let E=a(b);if(E!==void 0&&(S.reference!=="suffix"&&x.push("//"),x.push(E),b.path&&b.path.charAt(0)!=="/"&&x.push("/")),b.path!==void 0){let R=b.path;!S.absolutePath&&(!w||!w.absolutePath)&&(R=i(R)),E===void 0&&(R=R.replace(/^\/\//u,"/%2F")),x.push(R)}return b.query!==void 0&&x.push("?",b.query),b.fragment!==void 0&&x.push("#",b.fragment),x.join("")}var f=Array.from({length:127},(y,v)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(v)));function h(y){let v=0;for(let b=0,S=y.length;b126||f[v])return!0;return!1}var _=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(y,v){let b=Object.assign({},v),S={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},x=y.indexOf("%")!==-1,w=!1;b.reference==="suffix"&&(y=(b.scheme?b.scheme+":":"")+"//"+y);let E=y.match(_);if(E){if(S.scheme=E[1],S.userinfo=E[3],S.host=E[4],S.port=parseInt(E[5],10),S.path=E[6]||"",S.query=E[7],S.fragment=E[8],isNaN(S.port)&&(S.port=E[5]),S.host){let A=n(S.host);if(A.isIPV4===!1){let M=r(A.host);S.host=M.host.toLowerCase(),w=M.isIPV6}else S.host=A.host,w=!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",b.reference&&b.reference!=="suffix"&&b.reference!==S.reference&&(S.error=S.error||"URI is not a "+b.reference+" reference.");let R=s[(b.scheme||S.scheme||"").toLowerCase()];if(!b.unicodeSupport&&(!R||!R.unicodeSupport)&&S.host&&(b.domainHost||R&&R.domainHost)&&w===!1&&h(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)&&(x&&S.scheme!==void 0&&(S.scheme=unescape(S.scheme)),x&&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,b)}else S.error=S.error||"URI can not be parsed.";return S}var m={SCHEMES:s,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:p,parse:g};e.exports=m,e.exports.default=m,e.exports.fastUri=m}),_ne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=o2();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),bne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=Fh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=Xe();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=I$(),i=Zh(),a=i2(),o=P$(),s=Xe(),c=Lh(),u=Rh(),l=ut(),d=hne(),p=_ne(),f=(F,I)=>new RegExp(F,I);f.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],_=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."},m={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},y=200;function v(F){var I,D,C,$,T,N,W,K,pe,ce,je,P,O,z,Z,J,ie,et,Zt,vt,yt,tt,Qr,Ct,Ta;let On=F.strict,Ia=(I=F.code)===null||I===void 0?void 0:I.optimize,Oc=Ia===!0||Ia===void 0?1:Ia||0,Cc=(C=(D=F.code)===null||D===void 0?void 0:D.regExp)!==null&&C!==void 0?C:f,Og=($=F.uriResolver)!==null&&$!==void 0?$:p.default;return{strictSchema:(N=(T=F.strictSchema)!==null&&T!==void 0?T:On)!==null&&N!==void 0?N:!0,strictNumbers:(K=(W=F.strictNumbers)!==null&&W!==void 0?W:On)!==null&&K!==void 0?K:!0,strictTypes:(ce=(pe=F.strictTypes)!==null&&pe!==void 0?pe:On)!==null&&ce!==void 0?ce:"log",strictTuples:(P=(je=F.strictTuples)!==null&&je!==void 0?je:On)!==null&&P!==void 0?P:"log",strictRequired:(z=(O=F.strictRequired)!==null&&O!==void 0?O:On)!==null&&z!==void 0?z:!1,code:F.code?{...F.code,optimize:Oc,regExp:Cc}:{optimize:Oc,regExp:Cc},loopRequired:(Z=F.loopRequired)!==null&&Z!==void 0?Z:y,loopEnum:(J=F.loopEnum)!==null&&J!==void 0?J:y,meta:(ie=F.meta)!==null&&ie!==void 0?ie:!0,messages:(et=F.messages)!==null&&et!==void 0?et:!0,inlineRefs:(Zt=F.inlineRefs)!==null&&Zt!==void 0?Zt:!0,schemaId:(vt=F.schemaId)!==null&&vt!==void 0?vt:"$id",addUsedSchema:(yt=F.addUsedSchema)!==null&&yt!==void 0?yt:!0,validateSchema:(tt=F.validateSchema)!==null&&tt!==void 0?tt:!0,validateFormats:(Qr=F.validateFormats)!==null&&Qr!==void 0?Qr:!0,unicodeRegExp:(Ct=F.unicodeRegExp)!==null&&Ct!==void 0?Ct:!0,int32range:(Ta=F.int32range)!==null&&Ta!==void 0?Ta:!0,uriResolver:Og}}class b{constructor(I={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,I=this.opts={...I,...v(I)};let{es5:D,lines:C}=this.opts.code;this.scope=new s.ValueScope({scope:{},prefixes:_,es5:D,lines:C}),this.logger=q(I.logger);let $=I.validateFormats;I.validateFormats=!1,this.RULES=(0,a.getRules)(),S.call(this,g,I,"NOT SUPPORTED"),S.call(this,m,I,"DEPRECATED","warn"),this._metaOpts=A.call(this),I.formats&&E.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),I.keywords&&R.call(this,I.keywords),typeof I.meta=="object"&&this.addMetaSchema(I.meta),w.call(this),I.validateFormats=$}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:I,meta:D,schemaId:C}=this.opts,$=d;C==="id"&&($={...d},$.id=$.$id,delete $.$id),D&&I&&this.addMetaSchema($,$[C],!1)}defaultMeta(){let{meta:I,schemaId:D}=this.opts;return this.opts.defaultMeta=typeof I=="object"?I[D]||I:void 0}validate(I,D){let C;if(typeof I=="string"){if(C=this.getSchema(I),!C)throw new Error(`no schema with key or ref "${I}"`)}else C=this.compile(I);let $=C(D);return"$async"in C||(this.errors=C.errors),$}compile(I,D){let C=this._addSchema(I,D);return C.validate||this._compileSchemaEnv(C)}compileAsync(I,D){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:C}=this.opts;return $.call(this,I,D);async function $(ce,je){await T.call(this,ce.$schema);let P=this._addSchema(ce,je);return P.validate||N.call(this,P)}async function T(ce){ce&&!this.getSchema(ce)&&await $.call(this,{$ref:ce},!0)}async function N(ce){try{return this._compileSchemaEnv(ce)}catch(je){if(!(je instanceof i.default))throw je;return W.call(this,je),await K.call(this,je.missingSchema),N.call(this,ce)}}function W({missingSchema:ce,missingRef:je}){if(this.refs[ce])throw new Error(`AnySchema ${ce} is loaded but ${je} cannot be resolved`)}async function K(ce){let je=await pe.call(this,ce);this.refs[ce]||await T.call(this,je.$schema),this.refs[ce]||this.addSchema(je,ce,D)}async function pe(ce){let je=this._loading[ce];if(je)return je;try{return await(this._loading[ce]=C(ce))}finally{delete this._loading[ce]}}}addSchema(I,D,C,$=this.opts.validateSchema){if(Array.isArray(I)){for(let N of I)this.addSchema(N,void 0,C,$);return this}let T;if(typeof I=="object"){let{schemaId:N}=this.opts;if(T=I[N],T!==void 0&&typeof T!="string")throw new Error(`schema ${N} must be string`)}return D=(0,c.normalizeId)(D||T),this._checkUnique(D),this.schemas[D]=this._addSchema(I,C,D,$,!0),this}addMetaSchema(I,D,C=this.opts.validateSchema){return this.addSchema(I,D,!0,C),this}validateSchema(I,D){if(typeof I=="boolean")return!0;let C;if(C=I.$schema,C!==void 0&&typeof C!="string")throw new Error("$schema must be a string");if(C=C||this.opts.defaultMeta||this.defaultMeta(),!C)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let $=this.validate(C,I);if(!$&&D){let T="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(T);else throw new Error(T)}return $}getSchema(I){let D;for(;typeof(D=x.call(this,I))=="string";)I=D;if(D===void 0){let{schemaId:C}=this.opts,$=new o.SchemaEnv({schema:{},schemaId:C});if(D=o.resolveSchema.call(this,$,I),!D)return;this.refs[I]=D}return D.validate||this._compileSchemaEnv(D)}removeSchema(I){if(I instanceof RegExp)return this._removeAllSchemas(this.schemas,I),this._removeAllSchemas(this.refs,I),this;switch(typeof I){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let D=x.call(this,I);return typeof D=="object"&&this._cache.delete(D.schema),delete this.schemas[I],delete this.refs[I],this}case"object":{let D=I;this._cache.delete(D);let C=I[this.opts.schemaId];return C&&(C=(0,c.normalizeId)(C),delete this.schemas[C],delete this.refs[C]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(I){for(let D of I)this.addKeyword(D);return this}addKeyword(I,D){let C;if(typeof I=="string")C=I,typeof D=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),D.keyword=C);else if(typeof I=="object"&&D===void 0){if(D=I,C=D.keyword,Array.isArray(C)&&!C.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(U.call(this,C,D),!D)return(0,l.eachItem)(C,T=>Y.call(this,T)),this;Qe.call(this,D);let $={...D,type:(0,u.getJSONTypes)(D.type),schemaType:(0,u.getJSONTypes)(D.schemaType)};return(0,l.eachItem)(C,$.type.length===0?T=>Y.call(this,T,$):T=>$.type.forEach(N=>Y.call(this,T,$,N))),this}getKeyword(I){let D=this.RULES.all[I];return typeof D=="object"?D.definition:!!D}removeKeyword(I){let{RULES:D}=this;delete D.keywords[I],delete D.all[I];for(let C of D.rules){let $=C.rules.findIndex(T=>T.keyword===I);$>=0&&C.rules.splice($,1)}return this}addFormat(I,D){return typeof D=="string"&&(D=new RegExp(D)),this.formats[I]=D,this}errorsText(I=this.errors,{separator:D=", ",dataVar:C="data"}={}){return!I||I.length===0?"No errors":I.map($=>`${C}${$.instancePath} ${$.message}`).reduce(($,T)=>$+D+T)}$dataMetaSchema(I,D){let C=this.RULES.all;I=JSON.parse(JSON.stringify(I));for(let $ of D){let T=$.split("/").slice(1),N=I;for(let W of T)N=N[W];for(let W in C){let K=C[W];if(typeof K!="object")continue;let{$data:pe}=K.definition,ce=N[W];pe&&ce&&(N[W]=fe(ce))}}return I}_removeAllSchemas(I,D){for(let C in I){let $=I[C];(!D||D.test(C))&&(typeof $=="string"?delete I[C]:$&&!$.meta&&(this._cache.delete($.schema),delete I[C]))}}_addSchema(I,D,C,$=this.opts.validateSchema,T=this.opts.addUsedSchema){let N,{schemaId:W}=this.opts;if(typeof I=="object")N=I[W];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof I!="boolean")throw new Error("schema must be object or boolean")}let K=this._cache.get(I);if(K!==void 0)return K;C=(0,c.normalizeId)(N||C);let pe=c.getSchemaRefs.call(this,I,C);return K=new o.SchemaEnv({schema:I,schemaId:W,meta:D,baseId:C,localRefs:pe}),this._cache.set(K.schema,K),T&&!C.startsWith("#")&&(C&&this._checkUnique(C),this.refs[C]=K),$&&this.validateSchema(I,!0),K}_checkUnique(I){if(this.schemas[I]||this.refs[I])throw new Error(`schema with key or id "${I}" already exists`)}_compileSchemaEnv(I){if(I.meta?this._compileMetaSchema(I):o.compileSchema.call(this,I),!I.validate)throw new Error("ajv implementation error");return I.validate}_compileMetaSchema(I){let D=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,I)}finally{this.opts=D}}}b.ValidationError=n.default,b.MissingRefError=i.default,t.default=b;function S(F,I,D,C="error"){for(let $ in F){let T=$;T in I&&this.logger[C](`${D}: option ${$}. ${F[T]}`)}}function x(F){return F=(0,c.normalizeId)(F),this.schemas[F]||this.refs[F]}function w(){let F=this.opts.schemas;if(F)if(Array.isArray(F))this.addSchema(F);else for(let I in F)this.addSchema(F[I],I)}function E(){for(let F in this.opts.formats){let I=this.opts.formats[F];I&&this.addFormat(F,I)}}function R(F){if(Array.isArray(F)){this.addVocabulary(F);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let I in F){let D=F[I];D.keyword||(D.keyword=I),this.addKeyword(D)}}function A(){let F={...this.opts};for(let I of h)delete F[I];return F}var M={log(){},warn(){},error(){}};function q(F){if(F===!1)return M;if(F===void 0)return console;if(F.log&&F.warn&&F.error)return F;throw new Error("logger must implement log, warn and error methods")}var B=/^[a-z_$][a-z0-9_$:-]*$/i;function U(F,I){let{RULES:D}=this;if((0,l.eachItem)(F,C=>{if(D.keywords[C])throw new Error(`Keyword ${C} is already defined`);if(!B.test(C))throw new Error(`Keyword ${C} has invalid name`)}),!!I&&I.$data&&!("code"in I||"validate"in I))throw new Error('$data keyword must have "code" or "validate" function')}function Y(F,I,D){var C;let $=I?.post;if(D&&$)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:T}=this,N=$?T.post:T.rules.find(({type:K})=>K===D);if(N||(N={type:D,rules:[]},T.rules.push(N)),T.keywords[F]=!0,!I)return;let W={keyword:F,definition:{...I,type:(0,u.getJSONTypes)(I.type),schemaType:(0,u.getJSONTypes)(I.schemaType)}};I.before?me.call(this,N,W,I.before):N.rules.push(W),T.all[F]=W,(C=I.implements)===null||C===void 0||C.forEach(K=>this.addKeyword(K))}function me(F,I,D){let C=F.rules.findIndex($=>$.keyword===D);C>=0?F.rules.splice(C,0,I):(F.rules.push(I),this.logger.warn(`rule ${D} is not defined`))}function Qe(F){let{metaSchema:I}=F;I!==void 0&&(F.$data&&this.opts.$data&&(I=fe(I)),F.validateSchema=this.compile(I,!0))}var mt={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function fe(F){return{anyOf:[F,mt]}}}),xne=V(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}),Sne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=Zh(),r=Yn(),n=Xe(),i=$a(),a=P$(),o=ut(),s={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:f}=l,{baseId:h,schemaEnv:_,validateName:g,opts:m,self:y}=f,{root:v}=_;if((p==="#"||p==="#/")&&h===v.baseId)return S();let b=a.resolveRef.call(y,v,h,p);if(b===void 0)throw new e.default(f.opts.uriResolver,h,p);if(b instanceof a.SchemaEnv)return x(b);return w(b);function S(){if(_===v)return u(l,g,_,_.$async);let E=d.scopeValue("root",{ref:v});return u(l,(0,n._)`${E}.validate`,v,v.$async)}function x(E){let R=c(l,E);u(l,R,E,E.$async)}function w(E){let R=d.scopeValue("schema",m.code.source===!0?{ref:E,code:(0,n.stringify)(E)}:{ref:E}),A=d.name("valid"),M=l.subschema({schema:E,dataTypes:[],schemaPath:n.nil,topSchemaRef:R,errSchemaPath:p},A);l.mergeEvaluated(M),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:h,it:_}=l,{allErrors:g,schemaEnv:m,opts:y}=_,v=y.passContext?i.default.this:n.nil;f?b():S();function b(){if(!m.$async)throw new Error("async schema referenced by sync schema");let E=h.let("valid");h.try(()=>{h.code((0,n._)`await ${(0,r.callValidateCode)(l,d,v)}`),w(d),g||h.assign(E,!0)},R=>{h.if((0,n._)`!(${R} instanceof ${_.ValidationError})`,()=>h.throw(R)),x(R),g||h.assign(E,!1)}),l.ok(E)}function S(){l.result((0,r.callValidateCode)(l,d,v),()=>w(d),()=>x(d))}function x(E){let R=(0,n._)`${E}.errors`;h.assign(i.default.vErrors,(0,n._)`${i.default.vErrors} === null ? ${R} : ${i.default.vErrors}.concat(${R})`),h.assign(i.default.errors,(0,n._)`${i.default.vErrors}.length`)}function w(E){var R;if(!_.opts.unevaluated)return;let A=(R=p?.validate)===null||R===void 0?void 0:R.evaluated;if(_.props!==!0)if(A&&!A.dynamicProps)A.props!==void 0&&(_.props=o.mergeEvaluated.props(h,A.props,_.props));else{let M=h.var("props",(0,n._)`${E}.evaluated.props`);_.props=o.mergeEvaluated.props(h,M,_.props,n.Name)}if(_.items!==!0)if(A&&!A.dynamicItems)A.items!==void 0&&(_.items=o.mergeEvaluated.items(h,A.items,_.items));else{let M=h.var("items",(0,n._)`${E}.evaluated.items`);_.items=o.mergeEvaluated.items(h,M,_.items,n.Name)}}}t.callRef=u,t.default=s}),wne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xne(),r=Sne(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),$ne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),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:s})=>(0,e.str)`must be ${n[o].okStr} ${s}`,params:({keyword:o,schemaCode:s})=>(0,e._)`{comparison: ${n[o].okStr}, limit: ${s}}`},a={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u}=o;o.fail$data((0,e._)`${c} ${n[s].fail} ${u} || isNaN(${c})`)}};t.default=a}),Ene=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),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:a,data:o,schemaCode:s,it:c}=i,u=c.opts.multipleOfPrecision,l=a.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;i.fail$data((0,e._)`(${s} === 0 || (${l} = ${o}/${s}, ${d}))`)}};t.default=n}),kne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,i=0,a=0,o;for(;a=55296&&o<=56319&&a{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n=kne(),i={message({keyword:o,schemaCode:s}){let c=o==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${s} characters`},params:({schemaCode:o})=>(0,e._)`{limit: ${o}}`},a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u,it:l}=o,d=s==="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=a}),Ine=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Yn(),r=Xe(),n={message:({schemaCode:a})=>(0,r.str)`must match pattern "${a}"`,params:({schemaCode:a})=>(0,r._)`{pattern: ${a}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n,code(a){let{data:o,$data:s,schema:c,schemaCode:u,it:l}=a,d=l.opts.unicodeRegExp?"u":"",p=s?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(a,c);a.fail$data((0,r._)`!${p}.test(${o})`)}};t.default=i}),Pne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r={message({keyword:i,schemaCode:a}){let o=i==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} properties`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxProperties"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`Object.keys(${o}).length ${c} ${s}`)}};t.default=n}),Rne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Yn(),r=Xe(),n=ut(),i={message:({params:{missingProperty:o}})=>(0,r.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,r._)`{missingProperty: ${o}}`},a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,schema:c,schemaCode:u,data:l,$data:d,it:p}=o,{opts:f}=p;if(!d&&c.length===0)return;let h=c.length>=f.loopRequired;if(p.allErrors?_():g(),f.strictRequired){let v=o.parentSchema.properties,{definedProperties:b}=o.it;for(let S of c)if(v?.[S]===void 0&&!b.has(S)){let x=p.schemaEnv.baseId+p.errSchemaPath,w=`required property "${S}" is not defined at "${x}" (strictRequired)`;(0,n.checkStrictMode)(p,w,p.opts.strictRequired)}}function _(){if(h||d)o.block$data(r.nil,m);else for(let v of c)(0,e.checkReportMissingProp)(o,v)}function g(){let v=s.let("missing");if(h||d){let b=s.let("valid",!0);o.block$data(b,()=>y(v,b)),o.ok(b)}else s.if((0,e.checkMissingProp)(o,c,v)),(0,e.reportMissingProp)(o,v),s.else()}function m(){s.forOf("prop",u,v=>{o.setParams({missingProperty:v}),s.if((0,e.noPropertyInData)(s,l,v,f.ownProperties),()=>o.error())})}function y(v,b){o.setParams({missingProperty:v}),s.forOf(v,u,()=>{s.assign(b,(0,e.propertyInData)(s,l,v,f.ownProperties)),s.if((0,r.not)(b),()=>{o.error(),s.break()})},r.nil)}}};t.default=a}),One=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r={message({keyword:i,schemaCode:a}){let o=i==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} items`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxItems"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`${o}.length ${c} ${s}`)}};t.default=n}),R$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=qh();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),Cne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Rh(),r=Xe(),n=ut(),i=R$(),a={message:({params:{i:s,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${s} are identical)`,params:({params:{i:s,j:c}})=>(0,r._)`{i: ${s}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:a,code(s){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:f,it:h}=s;if(!l&&!d)return;let _=c.let("valid"),g=p.items?(0,e.getSchemaTypes)(p.items):[];s.block$data(_,m,(0,r._)`${f} === false`),s.ok(_);function m(){let S=c.let("i",(0,r._)`${u}.length`),x=c.let("j");s.setParams({i:S,j:x}),c.assign(_,!0),c.if((0,r._)`${S} > 1`,()=>(y()?v:b)(S,x))}function y(){return g.length>0&&!g.some(S=>S==="object"||S==="array")}function v(S,x){let w=c.name("item"),E=(0,e.checkDataTypes)(g,w,h.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${S}--;`,()=>{c.let(w,(0,r._)`${u}[${S}]`),c.if(E,(0,r._)`continue`),g.length>1&&c.if((0,r._)`typeof ${w} == "string"`,(0,r._)`${w} += "_"`),c.if((0,r._)`typeof ${R}[${w}] == "number"`,()=>{c.assign(x,(0,r._)`${R}[${w}]`),s.error(),c.assign(_,!1).break()}).code((0,r._)`${R}[${w}] = ${S}`)})}function b(S,x){let w=(0,n.useFunc)(c,i.default),E=c.name("outer");c.label(E).for((0,r._)`;${S}--;`,()=>c.for((0,r._)`${x} = ${S}; ${x}--;`,()=>c.if((0,r._)`${w}(${u}[${S}], ${u}[${x}])`,()=>{s.error(),c.assign(_,!1).break(E)})))}}};t.default=o}),Nne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n=R$(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,e._)`{allowedValue: ${o}}`},a={keyword:"const",$data:!0,error:i,code(o){let{gen:s,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,e._)`!${(0,r.useFunc)(s,n.default)}(${c}, ${l})`):o.fail((0,e._)`${d} !== ${c}`)}};t.default=a}),jne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n=R$(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,e._)`{allowedValues: ${o}}`},a={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,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,h,_=()=>h??(h=(0,r.useFunc)(s,n.default)),g;if(f||u)g=s.let("valid"),o.block$data(g,m);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let v=s.const("vSchema",d);g=(0,e.or)(...l.map((b,S)=>y(v,S)))}o.pass(g);function m(){s.assign(g,!1),s.forOf("v",d,v=>s.if((0,e._)`${_()}(${c}, ${v})`,()=>s.assign(g,!0).break()))}function y(v,b){let S=l[b];return typeof S=="object"&&S!==null?(0,e._)`${_()}(${c}, ${v}[${b}])`:(0,e._)`${c} === ${S}`}}};t.default=a}),Ane=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=$ne(),r=Ene(),n=Tne(),i=Ine(),a=Pne(),o=Rne(),s=One(),c=Cne(),u=Nne(),l=jne(),d=[e.default,r.default,n.default,i.default,a.default,o.default,s.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),s2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=Xe(),r=ut(),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:s,it:c}=o,{items:u}=s;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}a(o,u)}};function a(o,s){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:s.length}),o.pass((0,e._)`${f} <= ${s.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let _=c.var("valid",(0,e._)`${f} <= ${s.length}`);c.if((0,e.not)(_),()=>h(_)),o.ok(_)}function h(_){c.forRange("i",s.length,f,g=>{o.subschema({keyword:d,dataProp:g,dataPropType:r.Type.Num},_),p.allErrors||c.if((0,e.not)(_),()=>c.break())})}}t.validateAdditionalItems=a,t.default=i}),c2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=Xe(),r=ut(),n=Yn(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:s,it:c}=o;if(Array.isArray(s))return a(o,"additionalItems",s);c.items=!0,!(0,r.alwaysValidSchema)(c,s)&&o.ok((0,n.validateArray)(o))}};function a(o,s,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 h=u.name("valid"),_=u.const("len",(0,e._)`${d}.length`);c.forEach((m,y)=>{(0,r.alwaysValidSchema)(f,m)||(u.if((0,e._)`${_} > ${y}`,()=>o.subschema({keyword:p,schemaProp:y,dataProp:y},h)),o.ok(h))});function g(m){let{opts:y,errSchemaPath:v}=f,b=c.length,S=b===m.minItems&&(b===m.maxItems||m[s]===!1);if(y.strictTuples&&!S){let x=`"${p}" is ${b}-tuple, but minItems or maxItems/${s} are not specified or different at path "${v}"`;(0,r.checkStrictMode)(f,x,y.strictTuples)}}}t.validateTuple=a,t.default=i}),Mne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=c2(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),Dne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n=Yn(),i=s2(),a={message:({params:{len:s}})=>(0,e.str)`must NOT have more than ${s} items`,params:({params:{len:s}})=>(0,e._)`{limit: ${s}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:a,code(s){let{schema:c,parentSchema:u,it:l}=s,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(s,d):s.ok((0,n.validateArray)(s)))}};t.default=o}),zne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n={message:({params:{min:a,max:o}})=>o===void 0?(0,e.str)`must contain at least ${a} valid item(s)`:(0,e.str)`must contain at least ${a} and no more than ${o} valid item(s)`,params:({params:{min:a,max:o}})=>o===void 0?(0,e._)`{minContains: ${a}}`:(0,e._)`{minContains: ${a}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,data:u,it:l}=a,d,p,{minContains:f,maxContains:h}=c;l.opts.next?(d=f===void 0?1:f,p=h):d=1;let _=o.const("len",(0,e._)`${u}.length`);if(a.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'),a.fail();return}if((0,r.alwaysValidSchema)(l,s)){let b=(0,e._)`${_} >= ${d}`;p!==void 0&&(b=(0,e._)`${b} && ${_} <= ${p}`),a.pass(b);return}l.items=!0;let g=o.name("valid");p===void 0&&d===1?y(g,()=>o.if(g,()=>o.break())):d===0?(o.let(g,!0),p!==void 0&&o.if((0,e._)`${u}.length > 0`,m)):(o.let(g,!1),m()),a.result(g,()=>a.reset());function m(){let b=o.name("_valid"),S=o.let("count",0);y(b,()=>o.if(b,()=>v(S)))}function y(b,S){o.forRange("i",0,_,x=>{a.subschema({keyword:"contains",dataProp:x,dataPropType:r.Type.Num,compositeRule:!0},b),S()})}function v(b){o.code((0,e._)`${b}++`),p===void 0?o.if((0,e._)`${b} >= ${d}`,()=>o.assign(g,!0).break()):(o.if((0,e._)`${b} > ${p}`,()=>o.assign(g,!1).break()),d===1?o.assign(g,!0):o.if((0,e._)`${b} >= ${d}`,()=>o.assign(g,!0)))}}};t.default=i}),Une=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=Xe(),r=ut(),n=Yn();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]=a(c);o(c,u),s(c,l)}};function a({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 h in u){let _=u[h];if(_.length===0)continue;let y=(0,n.propertyInData)(l,d,h,p.opts.ownProperties);c.setParams({property:h,depsCount:_.length,deps:_.join(", ")}),p.allErrors?l.if(y,()=>{for(let m of _)(0,n.checkReportMissingProp)(c,m)}):(l.if((0,e._)`${y} && (${(0,n.checkMissingProp)(c,_,f)})`),(0,n.reportMissingProp)(c,f),l.else())}}t.validatePropertyDeps=o;function s(c,u=c.schema){let{gen:l,data:d,keyword:p,it:f}=c,h=l.name("valid");for(let _ in u)(0,r.alwaysValidSchema)(f,u[_])||(l.if((0,n.propertyInData)(l,d,_,f.opts.ownProperties),()=>{let y=c.subschema({keyword:p,schemaProp:_},h);c.mergeValidEvaluated(y,h)},()=>l.var(h,!0)),c.ok(h))}t.validateSchemaDeps=s,t.default=i}),Pne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r=ut(),n={message:"property name must be valid",params:({params:a})=>(0,e._)`{propertyName: ${a.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(a){let{gen:o,schema:s,data:c,it:u}=a;if((0,r.alwaysValidSchema)(u,s))return;let l=o.name("valid");o.forIn("key",c,d=>{a.setParams({propertyName:d}),a.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,e.not)(l),()=>{a.error(!0),u.allErrors||o.break()})}),a.ok(l)}};t.default=i}),a2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r=Je(),n=Ea(),i=ut(),a={message:"must NOT have additional properties",params:({params:s})=>(0,r._)`{additionalProperty: ${s.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:a,code(s){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:f}=s;if(!p)throw new Error("ajv implementation error");let{allErrors:h,opts:_}=f;if(f.props=!0,_.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(f,u))return;let y=(0,e.allSchemaProperties)(l.properties),m=(0,e.allSchemaProperties)(l.patternProperties);v(),s.ok((0,r._)`${p} === ${n.default.errors}`);function v(){c.forIn("key",d,w=>{!y.length&&!m.length?S(w):c.if(g(w),()=>S(w))})}function g(w){let E;if(y.length>8){let O=(0,i.schemaRefOrVal)(f,l.properties,"properties");E=(0,e.isOwnProperty)(c,O,w)}else y.length?E=(0,r.or)(...y.map(O=>(0,r._)`${w} === ${O}`)):E=r.nil;return m.length&&(E=(0,r.or)(E,...m.map(O=>(0,r._)`${(0,e.usePattern)(s,O)}.test(${w})`))),(0,r.not)(E)}function b(w){c.code((0,r._)`delete ${d}[${w}]`)}function S(w){if(_.removeAdditional==="all"||_.removeAdditional&&u===!1){b(w);return}if(u===!1){s.setParams({additionalProperty:w}),s.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(f,u)){let E=c.name("valid");_.removeAdditional==="failing"?(x(w,E,!1),c.if((0,r.not)(E),()=>{s.reset(),b(w)})):(x(w,E),h||c.if((0,r.not)(E),()=>c.break()))}}function x(w,E,O){let A={keyword:"additionalProperties",dataProp:w,dataPropType:i.Type.Str};O===!1&&Object.assign(A,{compositeRule:!0,createErrors:!1,allErrors:!1}),s.subschema(A,E)}}};t.default=o}),One=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Uh(),r=Jn(),n=ut(),i=a2(),a={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:s,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 m of p)d.definedProperties.add(m);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=n.mergeEvaluated.props(s,(0,n.toHash)(p),d.props));let f=p.filter(m=>!(0,n.alwaysValidSchema)(d,c[m]));if(f.length===0)return;let h=s.name("valid");for(let m of f)_(m)?y(m):(s.if((0,r.propertyInData)(s,l,m,d.opts.ownProperties)),y(m),d.allErrors||s.else().var(h,!0),s.endIf()),o.it.definedProperties.add(m),o.ok(h);function _(m){return d.opts.useDefaults&&!d.compositeRule&&c[m].default!==void 0}function y(m){o.subschema({keyword:"properties",schemaProp:m,dataProp:m},h)}}};t.default=a}),Rne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r=Je(),n=ut(),i=ut(),a={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:s,schema:c,data:u,parentSchema:l,it:d}=o,{opts:p}=d,f=(0,e.allSchemaProperties)(c),h=f.filter(S=>(0,n.alwaysValidSchema)(d,c[S]));if(f.length===0||h.length===f.length&&(!d.opts.unevaluated||d.props===!0))return;let _=p.strictSchema&&!p.allowMatchingProperties&&l.properties,y=s.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,i.evaluatedPropsToName)(s,d.props));let{props:m}=d;v();function v(){for(let S of f)_&&g(S),d.allErrors?b(S):(s.var(y,!0),b(S),s.if(y))}function g(S){for(let x in _)new RegExp(S).test(x)&&(0,n.checkStrictMode)(d,`property ${x} matches pattern ${S} (use allowMatchingProperties)`)}function b(S){s.forIn("key",u,x=>{s.if((0,r._)`${(0,e.usePattern)(o,S)}.test(${x})`,()=>{let w=h.includes(S);w||o.subschema({keyword:"patternProperties",schemaProp:S,dataProp:x,dataPropType:i.Type.Str},y),d.opts.unevaluated&&m!==!0?s.assign((0,r._)`${m}[${x}]`,!0):!w&&!d.allErrors&&s.if((0,r.not)(y),()=>s.break())})})}}};t.default=a}),Cne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ut(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:i,schema:a,it:o}=n;if((0,e.alwaysValidSchema)(o,a)){n.fail();return}let s=i.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),n.failResult(s,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),Nne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),jne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r=ut(),n={message:"must match exactly one schema in oneOf",params:({params:a})=>(0,e._)`{passingSchemas: ${a.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,it:u}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=s,d=o.let("valid",!1),p=o.let("passing",null),f=o.name("_valid");a.setParams({passing:p}),o.block(h),a.result(d,()=>a.reset(),()=>a.error(!0));function h(){l.forEach((_,y)=>{let m;(0,r.alwaysValidSchema)(u,_)?o.var(f,!0):m=a.subschema({keyword:"oneOf",schemaProp:y,compositeRule:!0},f),y>0&&o.if((0,e._)`${f} && ${d}`).assign(d,!1).assign(p,(0,e._)`[${p}, ${y}]`).else(),o.if(f,()=>{o.assign(d,!0),o.assign(p,y),m&&a.mergeEvaluated(m,e.Name)})})}}};t.default=i}),Ane=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ut(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:i,schema:a,it:o}=n;if(!Array.isArray(a))throw new Error("ajv implementation error");let s=i.name("valid");a.forEach((c,u)=>{if((0,e.alwaysValidSchema)(o,c))return;let l=n.subschema({keyword:"allOf",schemaProp:u},s);n.ok(s),n.mergeEvaluated(l)})}};t.default=r}),Mne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r=ut(),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:s,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=a(u,"then"),d=a(u,"else");if(!l&&!d)return;let p=s.let("valid",!0),f=s.name("_valid");if(h(),o.reset(),l&&d){let y=s.let("ifClause");o.setParams({ifClause:y}),s.if(f,_("then",y),_("else",y))}else l?s.if(f,_("then")):s.if((0,e.not)(f),_("else"));o.pass(p,()=>o.error(!0));function h(){let y=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},f);o.mergeEvaluated(y)}function _(y,m){return()=>{let v=o.subschema({keyword:y},f);s.assign(p,f),o.mergeValidEvaluated(v,p),m?s.assign(m,(0,e._)`${y}`):o.setParams({ifClause:y})}}}};function a(o,s){let c=o.schema[s];return c!==void 0&&!(0,r.alwaysValidSchema)(o,c)}t.default=i}),zne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ut(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:i,it:a}){i.if===void 0&&(0,e.checkStrictMode)(a,`"${n}" without "if" is ignored`)}};t.default=r}),Dne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=n2(),r=Ene(),n=i2(),i=kne(),a=Tne(),o=Ine(),s=Pne(),c=a2(),u=One(),l=Rne(),d=Cne(),p=Nne(),f=jne(),h=Ane(),_=Mne(),y=zne();function m(v=!1){let g=[d.default,p.default,f.default,h.default,_.default,y.default,s.default,c.default,o.default,u.default,l.default];return v?g.push(r.default,i.default):g.push(e.default,n.default),g.push(a.default),g}t.default=m}),Une=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),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,a){let{gen:o,data:s,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:p,errSchemaPath:f,schemaEnv:h,self:_}=d;if(!p.validateFormats)return;c?y():m();function y(){let v=o.scopeValue("formats",{ref:_.formats,code:p.code.formats}),g=o.const("fDef",(0,e._)`${v}[${l}]`),b=o.let("fType"),S=o.let("format");o.if((0,e._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>o.assign(b,(0,e._)`${g}.type || "string"`).assign(S,(0,e._)`${g}.validate`),()=>o.assign(b,(0,e._)`"string"`).assign(S,g)),i.fail$data((0,e.or)(x(),w()));function x(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${S}`}function w(){let E=h.$async?(0,e._)`(${g}.async ? await ${S}(${s}) : ${S}(${s}))`:(0,e._)`${S}(${s})`,O=(0,e._)`(typeof ${S} == "function" ? ${E} : ${S}.test(${s}))`;return(0,e._)`${S} && ${S} !== true && ${b} === ${a} && !${O}`}}function m(){let v=_.formats[u];if(!v){x();return}if(v===!0)return;let[g,b,S]=w(v);g===a&&i.pass(E());function x(){if(p.strictSchema===!1){_.logger.warn(O());return}throw new Error(O());function O(){return`unknown format "${u}" ignored in schema at path "${f}"`}}function w(O){let A=O instanceof RegExp?(0,e.regexpCode)(O):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,M=o.scopeValue("formats",{key:u,ref:O,code:A});return typeof O=="object"&&!(O instanceof RegExp)?[O.type||"string",O.validate,(0,e._)`${M}.validate`]:["string",O,M]}function E(){if(typeof v=="object"&&!(v instanceof RegExp)&&v.async){if(!h.$async)throw new Error("async format in sync schema");return(0,e._)`await ${S}(${s})`}return typeof b=="function"?(0,e._)`${S}(${s})`:(0,e._)`${S}.test(${s})`}}}};t.default=n}),qne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Une(),r=[e.default];t.default=r}),Lne=V(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"]}),Fne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=pne(),r=$ne(),n=Dne(),i=qne(),a=Lne(),o=[e.default,r.default,(0,n.default)(),i.default,a.metadataVocabulary,a.contentVocabulary];t.default=o}),Zne=V(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={}))}),Hne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Je(),r=Zne(),n=k$(),i=qh(),a=ut(),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}}`},s={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:f}=c,{oneOf:h}=p;if(!f.opts.discriminator)throw new Error("discriminator: requires discriminator option");let _=d.propertyName;if(typeof _!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let y=u.let("valid",!1),m=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(_)}`);u.if((0,e._)`typeof ${m} == "string"`,()=>v(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:m,tagName:_})),c.ok(y);function v(){let S=b();u.if(!1);for(let x in S)u.elseIf((0,e._)`${m} === ${x}`),u.assign(y,g(S[x]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:m,tagName:_}),u.endIf()}function g(S){let x=u.name("valid"),w=c.subschema({keyword:"oneOf",schemaProp:S},x);return c.mergeEvaluated(w,e.Name),x}function b(){var S;let x={},w=O(p),E=!0;for(let q=0;q{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}}),Vne=V((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=une(),n=Fne(),i=Hne(),a=Bne(),o=["/properties"],s="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(a,o):a;this.addMetaSchema(h,s,!1),this.refs["http://json-schema.org/schema"]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Uh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=Je();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=E$();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=qh();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),Gne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(M,q){return{validate:M,compare:q}}t.fullFormats={date:e(a,o),time:e(c(!0),u),"date-time":e(p(!0),f),"iso-time":e(c(),l),"iso-date-time":e(p(),h),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:m,"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:g,int32:{type:"number",validate:x},int64:{type:"number",validate:w},float:{type:"number",validate:E},double:{type:"number",validate:E},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,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,h),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(M){return M%4===0&&(M%100!==0||M%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 a(M){let q=n.exec(M);if(!q)return!1;let B=+q[1],U=+q[2],Y=+q[3];return U>=1&&U<=12&&Y>=1&&Y<=(U===2&&r(B)?29:i[U])}function o(M,q){if(M&&q)return M>q?1:M23||I>59||M&&!ft)return!1;if(Y<=23&&me<=59&&Ye<60)return!0;let z=me-I*fe,C=Y-F*fe-(z<0?1:0);return(C===23||C===-1)&&(z===59||z===-1)&&Ye<61}}function u(M,q){if(!(M&&q))return;let B=new Date("2020-01-01T"+M).valueOf(),U=new Date("2020-01-01T"+q).valueOf();if(B&&U)return B-U}function l(M,q){if(!(M&&q))return;let B=s.exec(M),U=s.exec(q);if(B&&U)return M=B[1]+B[2]+B[3],q=U[1]+U[2]+U[3],M>q?1:M=b}function w(M){return Number.isInteger(M)}function E(){return!0}var O=/[^\\]\\Z/;function A(M){if(O.test(M))return!1;try{return new RegExp(M),!0}catch{return!1}}}),Ih=V(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(v){if(super(),!t.IDENTIFIER.test(v))throw new Error("CodeGen: name must be a valid identifier");this.str=v}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(v){super(),this._items=typeof v=="string"?[v]:v}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let v=this._items[0];return v===""||v==='""'}get str(){var v;return(v=this._str)!==null&&v!==void 0?v:this._str=this._items.reduce((g,b)=>`${g}${b}`,"")}get names(){var v;return(v=this._names)!==null&&v!==void 0?v:this._names=this._items.reduce((g,b)=>(b instanceof r&&(g[b.str]=(g[b.str]||0)+1),g),{})}}t._Code=n,t.nil=new n("");function i(m,...v){let g=[m[0]],b=0;for(;b{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=Ih();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 a 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=a;var o=(0,e._)`\n`;class s 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 a(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,h=(d=l.key)!==null&&d!==void 0?d:l.ref,_=this._values[f];if(_){let v=_.get(h);if(v)return v}else _=this._values[f]=new Map;_.set(h,p);let y=this._scope[f]||(this._scope[f]=[]),m=y.length;return y[m]=l.ref,p.setValue(l,{property:f,itemIndex:m}),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 h in u){let _=u[h];if(!_)continue;let y=d[h]=d[h]||new Map;_.forEach(m=>{if(y.has(m))return;y.set(m,n.Started);let v=l(m);if(v){let g=this.opts.es5?t.varKinds.var:t.varKinds.const;f=(0,e._)`${f}${g} ${m} = ${v};${this.opts._n}`}else if(v=p?.(m))f=(0,e._)`${f}${v}${this.opts._n}`;else throw new r(m);y.set(m,n.Completed)})}return f}}t.ValueScope=s}),Be=V(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=Ih(),r=x4(),n=Ih();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=x4();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 a{optimizeNodes(){return this}optimizeNames($,k){return this}}class o extends a{constructor($,k,N){super(),this.varKind=$,this.name=k,this.rhs=N}render({es5:$,_n:k}){let N=$?r.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${N} ${this.name}${W};`+k}optimizeNames($,k){if($[this.name.str])return this.rhs&&(this.rhs=U(this.rhs,$,k)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class s extends a{constructor($,k,N){super(),this.lhs=$,this.rhs=k,this.sideEffects=N}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,k){if(!(this.lhs instanceof e.Name&&!$[this.lhs.str]&&!this.sideEffects))return this.rhs=U(this.rhs,$,k),this}get names(){let $=this.lhs instanceof e.Name?{}:{...this.lhs.names};return B($,this.rhs)}}class c extends s{constructor($,k,N,W){super($,N,W),this.op=k}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class u extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class l extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class d extends a{constructor($){super(),this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class p extends a{constructor($){super(),this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,k){return this.code=U(this.code,$,k),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class f extends a{constructor($=[]){super(),this.nodes=$}render($){return this.nodes.reduce((k,N)=>k+N.render($),"")}optimizeNodes(){let{nodes:$}=this,k=$.length;for(;k--;){let N=$[k].optimizeNodes();Array.isArray(N)?$.splice(k,1,...N):N?$[k]=N:$.splice(k,1)}return $.length>0?this:void 0}optimizeNames($,k){let{nodes:N}=this,W=N.length;for(;W--;){let K=N[W];K.optimizeNames($,k)||(Y($,K.names),N.splice(W,1))}return N.length>0?this:void 0}get names(){return this.nodes.reduce(($,k)=>q($,k.names),{})}}class h extends f{render($){return"{"+$._n+super.render($)+"}"+$._n}}class _ extends f{}class y extends h{}y.kind="else";class m extends h{constructor($,k){super(k),this.condition=$}render($){let k=`if(${this.condition})`+super.render($);return this.else&&(k+="else "+this.else.render($)),k}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let k=this.else;if(k){let N=k.optimizeNodes();k=this.else=Array.isArray(N)?new y(N):N}if(k)return $===!1?k instanceof m?k:k.nodes:this.nodes.length?this:new m(me($),k instanceof m?[k]:k.nodes);if(!($===!1||!this.nodes.length))return this}optimizeNames($,k){var N;if(this.else=(N=this.else)===null||N===void 0?void 0:N.optimizeNames($,k),!!(super.optimizeNames($,k)||this.else))return this.condition=U(this.condition,$,k),this}get names(){let $=super.names;return B($,this.condition),this.else&&q($,this.else.names),$}}m.kind="if";class v extends h{}v.kind="for";class g extends v{constructor($){super(),this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,k){if(super.optimizeNames($,k))return this.iteration=U(this.iteration,$,k),this}get names(){return q(super.names,this.iteration.names)}}class b extends v{constructor($,k,N,W){super(),this.varKind=$,this.name=k,this.from=N,this.to=W}render($){let k=$.es5?r.varKinds.var:this.varKind,{name:N,from:W,to:K}=this;return`for(${k} ${N}=${W}; ${N}<${K}; ${N}++)`+super.render($)}get names(){let $=B(super.names,this.from);return B($,this.to)}}class S extends v{constructor($,k,N,W){super(),this.loop=$,this.varKind=k,this.name=N,this.iterable=W}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,k){if(super.optimizeNames($,k))return this.iterable=U(this.iterable,$,k),this}get names(){return q(super.names,this.iterable.names)}}class x extends h{constructor($,k,N){super(),this.name=$,this.args=k,this.async=N}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}x.kind="func";class w extends f{render($){return"return "+super.render($)}}w.kind="return";class E extends h{render($){let k="try"+super.render($);return this.catch&&(k+=this.catch.render($)),this.finally&&(k+=this.finally.render($)),k}optimizeNodes(){var $,k;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(k=this.finally)===null||k===void 0||k.optimizeNodes(),this}optimizeNames($,k){var N,W;return super.optimizeNames($,k),(N=this.catch)===null||N===void 0||N.optimizeNames($,k),(W=this.finally)===null||W===void 0||W.optimizeNames($,k),this}get names(){let $=super.names;return this.catch&&q($,this.catch.names),this.finally&&q($,this.finally.names),$}}class O extends h{constructor($){super(),this.error=$}render($){return`catch(${this.error})`+super.render($)}}O.kind="catch";class A extends h{render($){return"finally"+super.render($)}}A.kind="finally";class M{constructor($,k={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...k,_n:k.lines?` -`:""},this._extScope=$,this._scope=new r.Scope({parent:$}),this._nodes=[new _]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,k){let N=this._extScope.value($,k);return(this._values[N.prefix]||(this._values[N.prefix]=new Set)).add(N),N}getScopeValue($,k){return this._extScope.getValue($,k)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,k,N,W){let K=this._scope.toName(k);return N!==void 0&&W&&(this._constants[K.str]=N),this._leafNode(new o($,K,N)),K}const($,k,N){return this._def(r.varKinds.const,$,k,N)}let($,k,N){return this._def(r.varKinds.let,$,k,N)}var($,k,N){return this._def(r.varKinds.var,$,k,N)}assign($,k,N){return this._leafNode(new s($,k,N))}add($,k){return this._leafNode(new c($,t.operators.ADD,k))}code($){return typeof $=="function"?$():$!==e.nil&&this._leafNode(new p($)),this}object(...$){let k=["{"];for(let[N,W]of $)k.length>1&&k.push(","),k.push(N),(N!==W||this.opts.es5)&&(k.push(":"),(0,e.addCodeArg)(k,W));return k.push("}"),new e._Code(k)}if($,k,N){if(this._blockNode(new m($)),k&&N)this.code(k).else().code(N).endIf();else if(k)this.code(k).endIf();else if(N)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new m($))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(m,y)}_for($,k){return this._blockNode($),k&&this.code(k).endFor(),this}for($,k){return this._for(new g($),k)}forRange($,k,N,W,K=this.opts.es5?r.varKinds.var:r.varKinds.let){let pe=this._scope.toName($);return this._for(new b(K,pe,k,N),()=>W(pe))}forOf($,k,N,W=r.varKinds.const){let K=this._scope.toName($);if(this.opts.es5){let pe=k instanceof e.Name?k:this.var("_arr",k);return this.forRange("_i",0,(0,e._)`${pe}.length`,ce=>{this.var(K,(0,e._)`${pe}[${ce}]`),N(K)})}return this._for(new S("of",W,K,k),()=>N(K))}forIn($,k,N,W=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf($,(0,e._)`Object.keys(${k})`,N);let K=this._scope.toName($);return this._for(new S("in",W,K,k),()=>N(K))}endFor(){return this._endBlockNode(v)}label($){return this._leafNode(new u($))}break($){return this._leafNode(new l($))}return($){let k=new w;if(this._blockNode(k),this.code($),k.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(w)}try($,k,N){if(!k&&!N)throw new Error('CodeGen: "try" without "catch" and "finally"');let W=new E;if(this._blockNode(W),this.code($),k){let K=this.name("e");this._currNode=W.catch=new O(K),k(K)}return N&&(this._currNode=W.finally=new A,this.code(N)),this._endBlockNode(O,A)}throw($){return this._leafNode(new d($))}block($,k){return this._blockStarts.push(this._nodes.length),$&&this.code($).endBlock(k),this}endBlock($){let k=this._blockStarts.pop();if(k===void 0)throw new Error("CodeGen: not in self-balancing block");let N=this._nodes.length-k;if(N<0||$!==void 0&&N!==$)throw new Error(`CodeGen: wrong number of nodes: ${N} vs ${$} expected`);return this._nodes.length=k,this}func($,k=e.nil,N,W){return this._blockNode(new x($,k,N)),W&&this.code(W).endFunc(),this}endFunc(){return this._endBlockNode(x)}optimize($=1){for(;$-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,k){let N=this._currNode;if(N instanceof $||k&&N instanceof k)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${k?`${$.kind}/${k.kind}`:$.kind}"`)}_elseNode($){let k=this._currNode;if(!(k instanceof m))throw new Error('CodeGen: "else" without "if"');return this._currNode=k.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let k=this._nodes;k[k.length-1]=$}}t.CodeGen=M;function q(C,$){for(let k in $)C[k]=(C[k]||0)+($[k]||0);return C}function B(C,$){return $ instanceof e._CodeOrName?q(C,$.names):C}function U(C,$,k){if(C instanceof e.Name)return N(C);if(!W(C))return C;return new e._Code(C._items.reduce((K,pe)=>(pe instanceof e.Name&&(pe=N(pe)),pe instanceof e._Code?K.push(...pe._items):K.push(pe),K),[]));function N(K){let pe=k[K.str];return pe===void 0||$[K.str]!==1?K:(delete $[K.str],pe)}function W(K){return K instanceof e._Code&&K._items.some(pe=>pe instanceof e.Name&&$[pe.str]===1&&k[pe.str]!==void 0)}}function Y(C,$){for(let k in $)C[k]=(C[k]||0)-($[k]||0)}function me(C){return typeof C=="boolean"||typeof C=="number"||C===null?!C:(0,e._)`!${z(C)}`}t.not=me;var Ye=I(t.operators.AND);function ft(...C){return C.reduce(Ye)}t.and=ft;var fe=I(t.operators.OR);function F(...C){return C.reduce(fe)}t.or=F;function I(C){return($,k)=>$===e.nil?k:k===e.nil?$:(0,e._)`${z($)} ${C} ${z(k)}`}function z(C){return C instanceof e.Name?C:(0,e._)`(${C})`}}),lt=V(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=Be(),r=Ih();function n(x){let w={};for(let E of x)w[E]=!0;return w}t.toHash=n;function i(x,w){return typeof w=="boolean"?w:Object.keys(w).length===0?!0:(a(x,w),!o(w,x.self.RULES.all))}t.alwaysValidSchema=i;function a(x,w=x.schema){let{opts:E,self:O}=x;if(!E.strictSchema||typeof w=="boolean")return;let A=O.RULES.keywords;for(let M in w)A[M]||S(x,`unknown keyword: "${M}"`)}t.checkUnknownRules=a;function o(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(w[E])return!0;return!1}t.schemaHasRules=o;function s(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(E!=="$ref"&&w.all[E])return!0;return!1}t.schemaHasRulesButRef=s;function c({topSchemaRef:x,schemaPath:w},E,O,A){if(!A){if(typeof E=="number"||typeof E=="boolean")return E;if(typeof E=="string")return(0,e._)`${E}`}return(0,e._)`${x}${w}${(0,e.getProperty)(O)}`}t.schemaRefOrVal=c;function u(x){return p(decodeURIComponent(x))}t.unescapeFragment=u;function l(x){return encodeURIComponent(d(x))}t.escapeFragment=l;function d(x){return typeof x=="number"?`${x}`:x.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(x){return x.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function f(x,w){if(Array.isArray(x))for(let E of x)w(E);else w(x)}t.eachItem=f;function h({mergeNames:x,mergeToName:w,mergeValues:E,resultToName:O}){return(A,M,q,B)=>{let U=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?x(A,M,q):w(A,M,q),q):M instanceof e.Name?(w(A,q,M),M):E(M,q);return B===e.Name&&!(U instanceof e.Name)?O(A,U):U}}t.mergeEvaluated={props:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>{x.if((0,e._)`${w} === true`,()=>x.assign(E,!0),()=>x.assign(E,(0,e._)`${E} || {}`).code((0,e._)`Object.assign(${E}, ${w})`))}),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>{w===!0?x.assign(E,!0):(x.assign(E,(0,e._)`${E} || {}`),y(x,E,w))}),mergeValues:(x,w)=>x===!0?!0:{...x,...w},resultToName:_}),items:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>x.assign(E,(0,e._)`${w} === true ? true : ${E} > ${w} ? ${E} : ${w}`)),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>x.assign(E,w===!0?!0:(0,e._)`${E} > ${w} ? ${E} : ${w}`)),mergeValues:(x,w)=>x===!0?!0:Math.max(x,w),resultToName:(x,w)=>x.var("items",w)})};function _(x,w){if(w===!0)return x.var("props",!0);let E=x.var("props",(0,e._)`{}`);return w!==void 0&&y(x,E,w),E}t.evaluatedPropsToName=_;function y(x,w,E){Object.keys(E).forEach(O=>x.assign((0,e._)`${w}${(0,e.getProperty)(O)}`,!0))}t.setEvaluated=y;var m={};function v(x,w){return x.scopeValue("func",{ref:w,code:m[w.code]||(m[w.code]=new r._Code(w.code))})}t.useFunc=v;var g;(function(x){x[x.Num=0]="Num",x[x.Str=1]="Str"})(g||(t.Type=g={}));function b(x,w,E){if(x instanceof e.Name){let O=w===g.Num;return E?O?(0,e._)`"[" + ${x} + "]"`:(0,e._)`"['" + ${x} + "']"`:O?(0,e._)`"/" + ${x}`:(0,e._)`"/" + ${x}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return E?(0,e.getProperty)(x).toString():"/"+d(x)}t.getErrorPath=b;function S(x,w,E=x.opts.strictSchema){if(E){if(w=`strict mode: ${w}`,E===!0)throw new Error(w);x.self.logger.warn(w)}}t.checkStrictMode=S}),ka=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),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}),Lh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=Be(),r=lt(),n=ka();t.keywordError={message:({keyword:y})=>(0,e.str)`must pass "${y}" keyword validation`},t.keyword$DataError={message:({keyword:y,schemaType:m})=>m?(0,e.str)`"${y}" keyword must be ${m} ($data)`:(0,e.str)`"${y}" keyword is invalid ($data)`};function i(y,m=t.keywordError,v,g){let{it:b}=y,{gen:S,compositeRule:x,allErrors:w}=b,E=d(y,m,v);g??(x||w)?c(S,E):u(b,(0,e._)`[${E}]`)}t.reportError=i;function a(y,m=t.keywordError,v){let{it:g}=y,{gen:b,compositeRule:S,allErrors:x}=g,w=d(y,m,v);c(b,w),S||x||u(g,n.default.vErrors)}t.reportExtraError=a;function o(y,m){y.assign(n.default.errors,m),y.if((0,e._)`${n.default.vErrors} !== null`,()=>y.if(m,()=>y.assign((0,e._)`${n.default.vErrors}.length`,m),()=>y.assign(n.default.vErrors,null)))}t.resetErrorsCount=o;function s({gen:y,keyword:m,schemaValue:v,data:g,errsCount:b,it:S}){if(b===void 0)throw new Error("ajv implementation error");let x=y.name("err");y.forRange("i",b,n.default.errors,w=>{y.const(x,(0,e._)`${n.default.vErrors}[${w}]`),y.if((0,e._)`${x}.instancePath === undefined`,()=>y.assign((0,e._)`${x}.instancePath`,(0,e.strConcat)(n.default.instancePath,S.errorPath))),y.assign((0,e._)`${x}.schemaPath`,(0,e.str)`${S.errSchemaPath}/${m}`),S.opts.verbose&&(y.assign((0,e._)`${x}.schema`,v),y.assign((0,e._)`${x}.data`,g))})}t.extendErrors=s;function c(y,m){let v=y.const("err",m);y.if((0,e._)`${n.default.vErrors} === null`,()=>y.assign(n.default.vErrors,(0,e._)`[${v}]`),(0,e._)`${n.default.vErrors}.push(${v})`),y.code((0,e._)`${n.default.errors}++`)}function u(y,m){let{gen:v,validateName:g,schemaEnv:b}=y;b.$async?v.throw((0,e._)`new ${y.ValidationError}(${m})`):(v.assign((0,e._)`${g}.errors`,m),v.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(y,m,v){let{createErrors:g}=y.it;return g===!1?(0,e._)`{}`:p(y,m,v)}function p(y,m,v={}){let{gen:g,it:b}=y,S=[f(b,v),h(y,v)];return _(y,m,S),g.object(...S)}function f({errorPath:y},{instancePath:m}){let v=m?(0,e.str)`${y}${(0,r.getErrorPath)(m,r.Type.Str)}`:y;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,v)]}function h({keyword:y,it:{errSchemaPath:m}},{schemaPath:v,parentSchema:g}){let b=g?m:(0,e.str)`${m}/${y}`;return v&&(b=(0,e.str)`${b}${(0,r.getErrorPath)(v,r.Type.Str)}`),[l.schemaPath,b]}function _(y,{params:m,message:v},g){let{keyword:b,data:S,schemaValue:x,it:w}=y,{opts:E,propertyName:O,topSchemaRef:A,schemaPath:M}=w;g.push([l.keyword,b],[l.params,typeof m=="function"?m(y):m||(0,e._)`{}`]),E.messages&&g.push([l.message,typeof v=="function"?v(y):v]),E.verbose&&g.push([l.schema,x],[l.parentSchema,(0,e._)`${A}${M}`],[n.default.data,S]),O&&g.push([l.propertyName,O])}}),Wne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=Lh(),r=Be(),n=ka(),i={message:"boolean schema is false"};function a(c){let{gen:u,schema:l,validateName:d}=c;l===!1?s(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=a;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),s(c)):l.var(u,!0)}t.boolOrEmptySchema=o;function s(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)}}),o2=V(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(a){return typeof a=="string"&&r.has(a)}t.isJSONType=n;function i(){let a={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...a,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},a.number,a.string,a.array,a.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=i}),s2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:i,self:a},o){let s=a.RULES.types[o];return s&&s!==!0&&r(i,s)}t.schemaHasRulesForType=e;function r(i,a){return a.rules.some(o=>n(i,o))}t.shouldUseGroup=r;function n(i,a){var o;return i[a.keyword]!==void 0||((o=a.definition.implements)===null||o===void 0?void 0:o.some(s=>i[s]!==void 0))}t.shouldUseRule=n}),Ph=V(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=o2(),r=s2(),n=Lh(),i=Be(),a=lt(),o;(function(g){g[g.Correct=0]="Correct",g[g.Wrong=1]="Wrong"})(o||(t.DataType=o={}));function s(g){let b=c(g.type);if(b.includes("null")){if(g.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!b.length&&g.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');g.nullable===!0&&b.push("null")}return b}t.getSchemaTypes=s;function c(g){let b=Array.isArray(g)?g:g?[g]:[];if(b.every(e.isJSONType))return b;throw new Error("type must be JSONType or JSONType[]: "+b.join(","))}t.getJSONTypes=c;function u(g,b){let{gen:S,data:x,opts:w}=g,E=d(b,w.coerceTypes),O=b.length>0&&!(E.length===0&&b.length===1&&(0,r.schemaHasRulesForType)(g,b[0]));if(O){let A=_(b,x,w.strictNumbers,o.Wrong);S.if(A,()=>{E.length?p(g,b,E):m(g)})}return O}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(g,b){return b?g.filter(S=>l.has(S)||b==="array"&&S==="array"):[]}function p(g,b,S){let{gen:x,data:w,opts:E}=g,O=x.let("dataType",(0,i._)`typeof ${w}`),A=x.let("coerced",(0,i._)`undefined`);E.coerceTypes==="array"&&x.if((0,i._)`${O} == 'object' && Array.isArray(${w}) && ${w}.length == 1`,()=>x.assign(w,(0,i._)`${w}[0]`).assign(O,(0,i._)`typeof ${w}`).if(_(b,w,E.strictNumbers),()=>x.assign(A,w))),x.if((0,i._)`${A} !== undefined`);for(let q of S)(l.has(q)||q==="array"&&E.coerceTypes==="array")&&M(q);x.else(),m(g),x.endIf(),x.if((0,i._)`${A} !== undefined`,()=>{x.assign(w,A),f(g,A)});function M(q){switch(q){case"string":x.elseIf((0,i._)`${O} == "number" || ${O} == "boolean"`).assign(A,(0,i._)`"" + ${w}`).elseIf((0,i._)`${w} === null`).assign(A,(0,i._)`""`);return;case"number":x.elseIf((0,i._)`${O} == "boolean" || ${w} === null - || (${O} == "string" && ${w} && ${w} == +${w})`).assign(A,(0,i._)`+${w}`);return;case"integer":x.elseIf((0,i._)`${O} === "boolean" || ${w} === null - || (${O} === "string" && ${w} && ${w} == +${w} && !(${w} % 1))`).assign(A,(0,i._)`+${w}`);return;case"boolean":x.elseIf((0,i._)`${w} === "false" || ${w} === 0 || ${w} === null`).assign(A,!1).elseIf((0,i._)`${w} === "true" || ${w} === 1`).assign(A,!0);return;case"null":x.elseIf((0,i._)`${w} === "" || ${w} === 0 || ${w} === false`),x.assign(A,null);return;case"array":x.elseIf((0,i._)`${O} === "string" || ${O} === "number" - || ${O} === "boolean" || ${w} === null`).assign(A,(0,i._)`[${w}]`)}}}function f({gen:g,parentData:b,parentDataProperty:S},x){g.if((0,i._)`${b} !== undefined`,()=>g.assign((0,i._)`${b}[${S}]`,x))}function h(g,b,S,x=o.Correct){let w=x===o.Correct?i.operators.EQ:i.operators.NEQ,E;switch(g){case"null":return(0,i._)`${b} ${w} null`;case"array":E=(0,i._)`Array.isArray(${b})`;break;case"object":E=(0,i._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":E=O((0,i._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":E=O();break;default:return(0,i._)`typeof ${b} ${w} ${g}`}return x===o.Correct?E:(0,i.not)(E);function O(A=i.nil){return(0,i.and)((0,i._)`typeof ${b} == "number"`,A,S?(0,i._)`isFinite(${b})`:i.nil)}}t.checkDataType=h;function _(g,b,S,x){if(g.length===1)return h(g[0],b,S,x);let w,E=(0,a.toHash)(g);if(E.array&&E.object){let O=(0,i._)`typeof ${b} != "object"`;w=E.null?O:(0,i._)`!${b} || ${O}`,delete E.null,delete E.array,delete E.object}else w=i.nil;E.number&&delete E.integer;for(let O in E)w=(0,i.and)(w,h(O,b,S,x));return w}t.checkDataTypes=_;var y={message:({schema:g})=>`must be ${g}`,params:({schema:g,schemaValue:b})=>typeof g=="string"?(0,i._)`{type: ${g}}`:(0,i._)`{type: ${b}}`};function m(g){let b=v(g);(0,n.reportError)(b,y)}t.reportTypeError=m;function v(g){let{gen:b,data:S,schema:x}=g,w=(0,a.schemaRefOrVal)(g,x,"type");return{gen:b,keyword:"type",data:S,schema:x.type,schemaCode:w,schemaValue:w,parentSchema:x,params:{},it:g}}}),Kne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=Be(),r=lt();function n(a,o){let{properties:s,items:c}=a.schema;if(o==="object"&&s)for(let u in s)i(a,u,s[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(a,l,u.default))}t.assignDefaults=n;function i(a,o,s){let{gen:c,compositeRule:u,data:l,opts:d}=a;if(s===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(o)}`;if(u){(0,r.checkStrictMode)(a,`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)(s)}`)}}),Xn=V(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=Be(),r=lt(),n=ka(),i=lt();function a(g,b){let{gen:S,data:x,it:w}=g;S.if(d(S,x,b,w.opts.ownProperties),()=>{g.setParams({missingProperty:(0,e._)`${b}`},!0),g.error()})}t.checkReportMissingProp=a;function o({gen:g,data:b,it:{opts:S}},x,w){return(0,e.or)(...x.map(E=>(0,e.and)(d(g,b,E,S.ownProperties),(0,e._)`${w} = ${E}`)))}t.checkMissingProp=o;function s(g,b){g.setParams({missingProperty:b},!0),g.error()}t.reportMissingProp=s;function c(g){return g.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(g,b,S){return(0,e._)`${c(g)}.call(${b}, ${S})`}t.isOwnProperty=u;function l(g,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} !== undefined`;return x?(0,e._)`${w} && ${u(g,b,S)}`:w}t.propertyInData=l;function d(g,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} === undefined`;return x?(0,e.or)(w,(0,e.not)(u(g,b,S))):w}t.noPropertyInData=d;function p(g){return g?Object.keys(g).filter(b=>b!=="__proto__"):[]}t.allSchemaProperties=p;function f(g,b){return p(b).filter(S=>!(0,r.alwaysValidSchema)(g,b[S]))}t.schemaProperties=f;function h({schemaCode:g,data:b,it:{gen:S,topSchemaRef:x,schemaPath:w,errorPath:E},it:O},A,M,q){let B=q?(0,e._)`${g}, ${b}, ${x}${w}`:b,U=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,E)],[n.default.parentData,O.parentData],[n.default.parentDataProperty,O.parentDataProperty],[n.default.rootData,n.default.rootData]];O.opts.dynamicRef&&U.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let Y=(0,e._)`${B}, ${S.object(...U)}`;return M!==e.nil?(0,e._)`${A}.call(${M}, ${Y})`:(0,e._)`${A}(${Y})`}t.callValidateCode=h;var _=(0,e._)`new RegExp`;function y({gen:g,it:{opts:b}},S){let x=b.unicodeRegExp?"u":"",{regExp:w}=b.code,E=w(S,x);return g.scopeValue("pattern",{key:E.toString(),ref:E,code:(0,e._)`${w.code==="new RegExp"?_:(0,i.useFunc)(g,w)}(${S}, ${x})`})}t.usePattern=y;function m(g){let{gen:b,data:S,keyword:x,it:w}=g,E=b.name("valid");if(w.allErrors){let A=b.let("valid",!0);return O(()=>b.assign(A,!1)),A}return b.var(E,!0),O(()=>b.break()),E;function O(A){let M=b.const("len",(0,e._)`${S}.length`);b.forRange("i",0,M,q=>{g.subschema({keyword:x,dataProp:q,dataPropType:r.Type.Num},E),b.if((0,e.not)(E),A)})}}t.validateArray=m;function v(g){let{gen:b,schema:S,keyword:x,it:w}=g;if(!Array.isArray(S))throw new Error("ajv implementation error");if(S.some(M=>(0,r.alwaysValidSchema)(w,M))&&!w.opts.unevaluated)return;let O=b.let("valid",!1),A=b.name("_valid");b.block(()=>S.forEach((M,q)=>{let B=g.subschema({keyword:x,schemaProp:q,compositeRule:!0},A);b.assign(O,(0,e._)`${O} || ${A}`),g.mergeValidEvaluated(B,A)||b.if((0,e.not)(O))})),g.result(O,()=>g.reset(),()=>g.error(!0))}t.validateUnion=v}),Jne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=Be(),r=ka(),n=Xn(),i=Lh();function a(f,h){let{gen:_,keyword:y,schema:m,parentSchema:v,it:g}=f,b=h.macro.call(g.self,m,v,g),S=l(_,y,b);g.opts.validateSchema!==!1&&g.self.validateSchema(b,!0);let x=_.name("valid");f.subschema({schema:b,schemaPath:e.nil,errSchemaPath:`${g.errSchemaPath}/${y}`,topSchemaRef:S,compositeRule:!0},x),f.pass(x,()=>f.error(!0))}t.macroKeywordCode=a;function o(f,h){var _;let{gen:y,keyword:m,schema:v,parentSchema:g,$data:b,it:S}=f;u(S,h);let x=!b&&h.compile?h.compile.call(S.self,v,g,S):h.validate,w=l(y,m,x),E=y.let("valid");f.block$data(E,O),f.ok((_=h.valid)!==null&&_!==void 0?_:E);function O(){if(h.errors===!1)q(),h.modifying&&s(f),B(()=>f.error());else{let U=h.async?A():M();h.modifying&&s(f),B(()=>c(f,U))}}function A(){let U=y.let("ruleErrs",null);return y.try(()=>q((0,e._)`await `),Y=>y.assign(E,!1).if((0,e._)`${Y} instanceof ${S.ValidationError}`,()=>y.assign(U,(0,e._)`${Y}.errors`),()=>y.throw(Y))),U}function M(){let U=(0,e._)`${w}.errors`;return y.assign(U,null),q(e.nil),U}function q(U=h.async?(0,e._)`await `:e.nil){let Y=S.opts.passContext?r.default.this:r.default.self,me=!("compile"in h&&!b||h.schema===!1);y.assign(E,(0,e._)`${U}${(0,n.callValidateCode)(f,w,Y,me)}`,h.modifying)}function B(U){var Y;y.if((0,e.not)((Y=h.valid)!==null&&Y!==void 0?Y:E),U)}}t.funcKeywordCode=o;function s(f){let{gen:h,data:_,it:y}=f;h.if(y.parentData,()=>h.assign(_,(0,e._)`${y.parentData}[${y.parentDataProperty}]`))}function c(f,h){let{gen:_}=f;_.if((0,e._)`Array.isArray(${h})`,()=>{_.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${h} : ${r.default.vErrors}.concat(${h})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,i.extendErrors)(f)},()=>f.error())}function u({schemaEnv:f},h){if(h.async&&!f.$async)throw new Error("async keyword in sync schema")}function l(f,h,_){if(_===void 0)throw new Error(`keyword "${h}" failed to compile`);return f.scopeValue("keyword",typeof _=="function"?{ref:_}:{ref:_,code:(0,e.stringify)(_)})}function d(f,h,_=!1){return!h.length||h.some(y=>y==="array"?Array.isArray(f):y==="object"?f&&typeof f=="object"&&!Array.isArray(f):typeof f==y||_&&typeof f>"u")}t.validSchemaType=d;function p({schema:f,opts:h,self:_,errSchemaPath:y},m,v){if(Array.isArray(m.keyword)?!m.keyword.includes(v):m.keyword!==v)throw new Error("ajv implementation error");let g=m.dependencies;if(g?.some(b=>!Object.prototype.hasOwnProperty.call(f,b)))throw new Error(`parent schema must have dependencies of ${v}: ${g.join(",")}`);if(m.validateSchema&&!m.validateSchema(f[v])){let S=`keyword "${v}" value is invalid at path "${y}": `+_.errorsText(m.validateSchema.errors);if(h.validateSchema==="log")_.logger.error(S);else throw new Error(S)}}t.validateKeywordUsage=p}),Xne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=Be(),r=lt();function n(o,{keyword:s,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(s!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(s!==void 0){let f=o.schema[s];return c===void 0?{schema:f,schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}`,errSchemaPath:`${o.errSchemaPath}/${s}`}:{schema:f[c],schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}${(0,e.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${s}/${(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,s,{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}=s;if(c!==void 0){let{errorPath:_,dataPathArr:y,opts:m}=s,v=f.let("data",(0,e._)`${s.data}${(0,e.getProperty)(c)}`,!0);h(v),o.errorPath=(0,e.str)`${_}${(0,r.getErrorPath)(c,u,m.jsPropertySyntax)}`,o.parentDataProperty=(0,e._)`${c}`,o.dataPathArr=[...y,o.parentDataProperty]}if(l!==void 0){let _=l instanceof e.Name?l:f.let("data",l,!0);h(_),p!==void 0&&(o.propertyName=p)}d&&(o.dataTypes=d);function h(_){o.data=_,o.dataLevel=s.dataLevel+1,o.dataTypes=[],s.definedProperties=new Set,o.parentData=s.data,o.dataNames=[...s.dataNames,_]}}t.extendSubschemaData=i;function a(o,{jtdDiscriminator:s,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=s,o.jtdMetadata=c}t.extendSubschemaMode=a}),Yne=V((t,e)=>{var r=e.exports=function(a,o,s){typeof o=="function"&&(s=o,o={}),s=o.cb||s;var c=typeof s=="function"?s:s.pre||function(){},u=s.post||function(){};n(o,c,u,a,"",a)};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(a,o,s,c,u,l,d,p,f,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,p,f,h);for(var _ in c){var y=c[_];if(Array.isArray(y)){if(_ in r.arrayKeywords)for(var m=0;m{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=lt(),r=zh(),n=Yne(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function a(y,m=!0){return typeof y=="boolean"?!0:m===!0?!s(y):m?c(y)<=m:!1}t.inlineRef=a;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function s(y){for(let m in y){if(o.has(m))return!0;let v=y[m];if(Array.isArray(v)&&v.some(s)||typeof v=="object"&&s(v))return!0}return!1}function c(y){let m=0;for(let v in y){if(v==="$ref")return 1/0;if(m++,!i.has(v)&&(typeof y[v]=="object"&&(0,e.eachItem)(y[v],g=>m+=c(g)),m===1/0))return 1/0}return m}function u(y,m="",v){v!==!1&&(m=p(m));let g=y.parse(m);return l(y,g)}t.getFullPath=u;function l(y,m){return y.serialize(m).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(y){return y?y.replace(d,""):""}t.normalizeId=p;function f(y,m,v){return v=p(v),y.resolve(m,v)}t.resolveUrl=f;var h=/^[a-z_][-a-z0-9._]*$/i;function _(y,m){if(typeof y=="boolean")return{};let{schemaId:v,uriResolver:g}=this.opts,b=p(y[v]||m),S={"":b},x=u(g,b,!1),w={},E=new Set;return n(y,{allKeys:!0},(M,q,B,U)=>{if(U===void 0)return;let Y=x+q,me=S[U];typeof M[v]=="string"&&(me=Ye.call(this,M[v])),ft.call(this,M.$anchor),ft.call(this,M.$dynamicAnchor),S[q]=me;function Ye(fe){let F=this.opts.uriResolver.resolve;if(fe=p(me?F(me,fe):fe),E.has(fe))throw A(fe);E.add(fe);let I=this.refs[fe];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?O(M,I.schema,fe):fe!==p(Y)&&(fe[0]==="#"?(O(M,w[fe],fe),w[fe]=M):this.refs[fe]=Y),fe}function ft(fe){if(typeof fe=="string"){if(!h.test(fe))throw new Error(`invalid anchor "${fe}"`);Ye.call(this,`#${fe}`)}}}),w;function O(M,q,B){if(q!==void 0&&!r(M,q))throw A(B)}function A(M){return new Error(`reference "${M}" resolves to more than one schema`)}}t.getSchemaRefs=_}),Zh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=Wne(),r=Ph(),n=s2(),i=Ph(),a=Kne(),o=Jne(),s=Xne(),c=Be(),u=ka(),l=Fh(),d=lt(),p=Lh();function f(P){if(x(P)&&(E(P),S(P))){m(P);return}h(P,()=>(0,e.topBoolOrEmptySchema)(P))}t.validateFunctionCode=f;function h({gen:P,validateName:R,schema:D,schemaEnv:Z,opts:J},ie){J.code.es5?P.func(R,(0,c._)`${u.default.data}, ${u.default.valCxt}`,Z.$async,()=>{P.code((0,c._)`"use strict"; ${g(D,J)}`),y(P,J),P.code(ie)}):P.func(R,(0,c._)`${u.default.data}, ${_(J)}`,Z.$async,()=>P.code(g(D,J)).code(ie))}function _(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 y(P,R){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}`),R.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),R.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function m(P){let{schema:R,opts:D,gen:Z}=P;h(P,()=>{D.$comment&&R.$comment&&U(P),M(P),Z.let(u.default.vErrors,null),Z.let(u.default.errors,0),D.unevaluated&&v(P),O(P),Y(P)})}function v(P){let{gen:R,validateName:D}=P;P.evaluated=R.const("evaluated",(0,c._)`${D}.evaluated`),R.if((0,c._)`${P.evaluated}.dynamicProps`,()=>R.assign((0,c._)`${P.evaluated}.props`,(0,c._)`undefined`)),R.if((0,c._)`${P.evaluated}.dynamicItems`,()=>R.assign((0,c._)`${P.evaluated}.items`,(0,c._)`undefined`))}function g(P,R){let D=typeof P=="object"&&P[R.schemaId];return D&&(R.code.source||R.code.process)?(0,c._)`/*# sourceURL=${D} */`:c.nil}function b(P,R){if(x(P)&&(E(P),S(P))){w(P,R);return}(0,e.boolOrEmptySchema)(P,R)}function S({schema:P,self:R}){if(typeof P=="boolean")return!P;for(let D in P)if(R.RULES.all[D])return!0;return!1}function x(P){return typeof P.schema!="boolean"}function w(P,R){let{schema:D,gen:Z,opts:J}=P;J.$comment&&D.$comment&&U(P),q(P),B(P);let ie=Z.const("_errs",u.default.errors);O(P,ie),Z.var(R,(0,c._)`${ie} === ${u.default.errors}`)}function E(P){(0,d.checkUnknownRules)(P),A(P)}function O(P,R){if(P.opts.jtd)return Ye(P,[],!1,R);let D=(0,r.getSchemaTypes)(P.schema),Z=(0,r.coerceAndCheckDataType)(P,D);Ye(P,D,!Z,R)}function A(P){let{schema:R,errSchemaPath:D,opts:Z,self:J}=P;R.$ref&&Z.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(R,J.RULES)&&J.logger.warn(`$ref: keywords ignored in schema at path "${D}"`)}function M(P){let{schema:R,opts:D}=P;R.default!==void 0&&D.useDefaults&&D.strictSchema&&(0,d.checkStrictMode)(P,"default is ignored in the schema root")}function q(P){let R=P.schema[P.opts.schemaId];R&&(P.baseId=(0,l.resolveUrl)(P.opts.uriResolver,P.baseId,R))}function B(P){if(P.schema.$async&&!P.schemaEnv.$async)throw new Error("async schema in sync schema")}function U({gen:P,schemaEnv:R,schema:D,errSchemaPath:Z,opts:J}){let ie=D.$comment;if(J.$comment===!0)P.code((0,c._)`${u.default.self}.logger.log(${ie})`);else if(typeof J.$comment=="function"){let Qe=(0,c.str)`${Z}/$comment`,Zt=P.scopeValue("root",{ref:R.root});P.code((0,c._)`${u.default.self}.opts.$comment(${ie}, ${Qe}, ${Zt}.schema)`)}}function Y(P){let{gen:R,schemaEnv:D,validateName:Z,ValidationError:J,opts:ie}=P;D.$async?R.if((0,c._)`${u.default.errors} === 0`,()=>R.return(u.default.data),()=>R.throw((0,c._)`new ${J}(${u.default.vErrors})`)):(R.assign((0,c._)`${Z}.errors`,u.default.vErrors),ie.unevaluated&&me(P),R.return((0,c._)`${u.default.errors} === 0`))}function me({gen:P,evaluated:R,props:D,items:Z}){D instanceof c.Name&&P.assign((0,c._)`${R}.props`,D),Z instanceof c.Name&&P.assign((0,c._)`${R}.items`,Z)}function Ye(P,R,D,Z){let{gen:J,schema:ie,data:Qe,allErrors:Zt,opts:gt,self:vt}=P,{RULES:et}=vt;if(ie.$ref&&(gt.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(ie,et))){J.block(()=>K(P,"$ref",et.all.$ref.definition));return}gt.jtd||fe(P,R),J.block(()=>{for(let Ct of et.rules)Yr(Ct);Yr(et.post)});function Yr(Ct){(0,n.shouldUseGroup)(ie,Ct)&&(Ct.type?(J.if((0,i.checkDataType)(Ct.type,Qe,gt.strictNumbers)),ft(P,Ct),R.length===1&&R[0]===Ct.type&&D&&(J.else(),(0,i.reportTypeError)(P)),J.endIf()):ft(P,Ct),Zt||J.if((0,c._)`${u.default.errors} === ${Z||0}`))}}function ft(P,R){let{gen:D,schema:Z,opts:{useDefaults:J}}=P;J&&(0,a.assignDefaults)(P,R.type),D.block(()=>{for(let ie of R.rules)(0,n.shouldUseRule)(Z,ie)&&K(P,ie.keyword,ie.definition,R.type)})}function fe(P,R){P.schemaEnv.meta||!P.opts.strictTypes||(F(P,R),P.opts.allowUnionTypes||I(P,R),z(P,P.dataTypes))}function F(P,R){if(R.length){if(!P.dataTypes.length){P.dataTypes=R;return}R.forEach(D=>{$(P.dataTypes,D)||N(P,`type "${D}" not allowed by context "${P.dataTypes.join(",")}"`)}),k(P,R)}}function I(P,R){R.length>1&&!(R.length===2&&R.includes("null"))&&N(P,"use allowUnionTypes to allow union type keyword")}function z(P,R){let D=P.self.RULES.all;for(let Z in D){let J=D[Z];if(typeof J=="object"&&(0,n.shouldUseRule)(P.schema,J)){let{type:ie}=J.definition;ie.length&&!ie.some(Qe=>C(R,Qe))&&N(P,`missing type "${ie.join(",")}" for keyword "${Z}"`)}}}function C(P,R){return P.includes(R)||R==="number"&&P.includes("integer")}function $(P,R){return P.includes(R)||R==="integer"&&P.includes("number")}function k(P,R){let D=[];for(let Z of P.dataTypes)$(R,Z)?D.push(Z):R.includes("integer")&&Z==="number"&&D.push("integer");P.dataTypes=D}function N(P,R){let D=P.schemaEnv.baseId+P.errSchemaPath;R+=` at "${D}" (strictTypes)`,(0,d.checkStrictMode)(P,R,P.opts.strictTypes)}class W{constructor(R,D,Z){if((0,o.validateKeywordUsage)(R,D,Z),this.gen=R.gen,this.allErrors=R.allErrors,this.keyword=Z,this.data=R.data,this.schema=R.schema[Z],this.$data=D.$data&&R.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(R,this.schema,Z,this.$data),this.schemaType=D.schemaType,this.parentSchema=R.schema,this.params={},this.it=R,this.def=D,this.$data)this.schemaCode=R.gen.const("vSchema",Ne(this.$data,R));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,D.schemaType,D.allowUndefined))throw new Error(`${Z} value must be ${JSON.stringify(D.schemaType)}`);("code"in D?D.trackErrors:D.errors!==!1)&&(this.errsCount=R.gen.const("_errs",u.default.errors))}result(R,D,Z){this.failResult((0,c.not)(R),D,Z)}failResult(R,D,Z){this.gen.if(R),Z?Z():this.error(),D?(this.gen.else(),D(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(R,D){this.failResult((0,c.not)(R),void 0,D)}fail(R){if(R===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(R),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(R){if(!this.$data)return this.fail(R);let{schemaCode:D}=this;this.fail((0,c._)`${D} !== undefined && (${(0,c.or)(this.invalid$data(),R)})`)}error(R,D,Z){if(D){this.setParams(D),this._error(R,Z),this.setParams({});return}this._error(R,Z)}_error(R,D){(R?p.reportExtraError:p.reportError)(this,this.def.error,D)}$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(R){this.allErrors||this.gen.if(R)}setParams(R,D){D?Object.assign(this.params,R):this.params=R}block$data(R,D,Z=c.nil){this.gen.block(()=>{this.check$data(R,Z),D()})}check$data(R=c.nil,D=c.nil){if(!this.$data)return;let{gen:Z,schemaCode:J,schemaType:ie,def:Qe}=this;Z.if((0,c.or)((0,c._)`${J} === undefined`,D)),R!==c.nil&&Z.assign(R,!0),(ie.length||Qe.validateSchema)&&(Z.elseIf(this.invalid$data()),this.$dataError(),R!==c.nil&&Z.assign(R,!1)),Z.else()}invalid$data(){let{gen:R,schemaCode:D,schemaType:Z,def:J,it:ie}=this;return(0,c.or)(Qe(),Zt());function Qe(){if(Z.length){if(!(D instanceof c.Name))throw new Error("ajv implementation error");let gt=Array.isArray(Z)?Z:[Z];return(0,c._)`${(0,i.checkDataTypes)(gt,D,ie.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Zt(){if(J.validateSchema){let gt=R.scopeValue("validate$data",{ref:J.validateSchema});return(0,c._)`!${gt}(${D})`}return c.nil}}subschema(R,D){let Z=(0,s.getSubschema)(this.it,R);(0,s.extendSubschemaData)(Z,this.it,R),(0,s.extendSubschemaMode)(Z,R);let J={...this.it,...Z,items:void 0,props:void 0};return b(J,D),J}mergeEvaluated(R,D){let{it:Z,gen:J}=this;Z.opts.unevaluated&&(Z.props!==!0&&R.props!==void 0&&(Z.props=d.mergeEvaluated.props(J,R.props,Z.props,D)),Z.items!==!0&&R.items!==void 0&&(Z.items=d.mergeEvaluated.items(J,R.items,Z.items,D)))}mergeValidEvaluated(R,D){let{it:Z,gen:J}=this;if(Z.opts.unevaluated&&(Z.props!==!0||Z.items!==!0))return J.if(D,()=>this.mergeEvaluated(R,c.Name)),!0}}t.KeywordCxt=W;function K(P,R,D,Z){let J=new W(P,D,R);"code"in D?D.code(J,Z):J.$data&&D.validate?(0,o.funcKeywordCode)(J,D):"macro"in D?(0,o.macroKeywordCode)(J,D):(D.compile||D.validate)&&(0,o.funcKeywordCode)(J,D)}var pe=/^\/(?:[^~]|~0|~1)*$/,ce=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ne(P,{dataLevel:R,dataNames:D,dataPathArr:Z}){let J,ie;if(P==="")return u.default.rootData;if(P[0]==="/"){if(!pe.test(P))throw new Error(`Invalid JSON-pointer: ${P}`);J=P,ie=u.default.rootData}else{let vt=ce.exec(P);if(!vt)throw new Error(`Invalid JSON-pointer: ${P}`);let et=+vt[1];if(J=vt[2],J==="#"){if(et>=R)throw new Error(gt("property/index",et));return Z[R-et]}if(et>R)throw new Error(gt("data",et));if(ie=D[R-et],!J)return ie}let Qe=ie,Zt=J.split("/");for(let vt of Zt)vt&&(ie=(0,c._)`${ie}${(0,c.getProperty)((0,d.unescapeJsonPointer)(vt))}`,Qe=(0,c._)`${Qe} && ${ie}`);return Qe;function gt(vt,et){return`Cannot access ${vt} ${et} levels up, current level is ${R}`}}t.getData=Ne}),I$=V(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}),Hh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Fh();class r extends Error{constructor(i,a,o,s){super(s||`can't resolve reference ${o} from id ${a}`),this.missingRef=(0,e.resolveUrl)(i,a,o),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(i,this.missingRef))}}t.default=r}),P$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=Be(),r=I$(),n=ka(),i=Fh(),a=lt(),o=Zh();class s{constructor(v){var g;this.refs={},this.dynamicAnchors={};let b;typeof v.schema=="object"&&(b=v.schema),this.schema=v.schema,this.schemaId=v.schemaId,this.root=v.root||this,this.baseId=(g=v.baseId)!==null&&g!==void 0?g:(0,i.normalizeId)(b?.[v.schemaId||"$id"]),this.schemaPath=v.schemaPath,this.localRefs=v.localRefs,this.meta=v.meta,this.$async=b?.$async,this.refs={}}}t.SchemaEnv=s;function c(m){let v=d.call(this,m);if(v)return v;let g=(0,i.getFullPath)(this.opts.uriResolver,m.root.baseId),{es5:b,lines:S}=this.opts.code,{ownProperties:x}=this.opts,w=new e.CodeGen(this.scope,{es5:b,lines:S,ownProperties:x}),E;m.$async&&(E=w.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let O=w.scopeName("validate");m.validateName=O;let A={gen:w,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:w.scopeValue("schema",this.opts.code.source===!0?{ref:m.schema,code:(0,e.stringify)(m.schema)}:{ref:m.schema}),validateName:O,ValidationError:E,schema:m.schema,schemaEnv:m,rootId:g,baseId:m.baseId||g,schemaPath:e.nil,errSchemaPath:m.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},M;try{this._compilations.add(m),(0,o.validateFunctionCode)(A),w.optimize(this.opts.code.optimize);let q=w.toString();M=`${w.scopeRefs(n.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,m));let U=new Function(`${n.default.self}`,`${n.default.scope}`,M)(this,this.scope.get());if(this.scope.value(O,{ref:U}),U.errors=null,U.schema=m.schema,U.schemaEnv=m,m.$async&&(U.$async=!0),this.opts.code.source===!0&&(U.source={validateName:O,validateCode:q,scopeValues:w._values}),this.opts.unevaluated){let{props:Y,items:me}=A;U.evaluated={props:Y instanceof e.Name?void 0:Y,items:me instanceof e.Name?void 0:me,dynamicProps:Y instanceof e.Name,dynamicItems:me instanceof e.Name},U.source&&(U.source.evaluated=(0,e.stringify)(U.evaluated))}return m.validate=U,m}catch(q){throw delete m.validate,delete m.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(m)}}t.compileSchema=c;function u(m,v,g){var b;g=(0,i.resolveUrl)(this.opts.uriResolver,v,g);let S=m.refs[g];if(S)return S;let x=f.call(this,m,g);if(x===void 0){let w=(b=m.localRefs)===null||b===void 0?void 0:b[g],{schemaId:E}=this.opts;w&&(x=new s({schema:w,schemaId:E,root:m,baseId:v}))}if(x!==void 0)return m.refs[g]=l.call(this,x)}t.resolveRef=u;function l(m){return(0,i.inlineRef)(m.schema,this.opts.inlineRefs)?m.schema:m.validate?m:c.call(this,m)}function d(m){for(let v of this._compilations)if(p(v,m))return v}t.getCompilingSchema=d;function p(m,v){return m.schema===v.schema&&m.root===v.root&&m.baseId===v.baseId}function f(m,v){let g;for(;typeof(g=this.refs[v])=="string";)v=g;return g||this.schemas[v]||h.call(this,m,v)}function h(m,v){let g=this.opts.uriResolver.parse(v),b=(0,i._getFullPath)(this.opts.uriResolver,g),S=(0,i.getFullPath)(this.opts.uriResolver,m.baseId,void 0);if(Object.keys(m.schema).length>0&&b===S)return y.call(this,g,m);let x=(0,i.normalizeId)(b),w=this.refs[x]||this.schemas[x];if(typeof w=="string"){let E=h.call(this,m,w);return typeof E?.schema!="object"?void 0:y.call(this,g,E)}if(typeof w?.schema=="object"){if(w.validate||c.call(this,w),x===(0,i.normalizeId)(v)){let{schema:E}=w,{schemaId:O}=this.opts,A=E[O];return A&&(S=(0,i.resolveUrl)(this.opts.uriResolver,S,A)),new s({schema:E,schemaId:O,root:m,baseId:S})}return y.call(this,g,w)}}t.resolveSchema=h;var _=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function y(m,{baseId:v,schema:g,root:b}){var S;if(((S=m.fragment)===null||S===void 0?void 0:S[0])!=="/")return;for(let E of m.fragment.slice(1).split("/")){if(typeof g=="boolean")return;let O=g[(0,a.unescapeFragment)(E)];if(O===void 0)return;g=O;let A=typeof g=="object"&&g[this.opts.schemaId];!_.has(E)&&A&&(v=(0,i.resolveUrl)(this.opts.uriResolver,v,A))}let x;if(typeof g!="boolean"&&g.$ref&&!(0,a.schemaHasRulesButRef)(g,this.RULES)){let E=(0,i.resolveUrl)(this.opts.uriResolver,v,g.$ref);x=h.call(this,b,E)}let{schemaId:w}=this.opts;if(x=x||new s({schema:g,schemaId:w,root:b,baseId:v}),x.schema!==x.root.schema)return x}}),Qne=V((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}}),eie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=r2();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),tie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=Zh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=Be();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=I$(),i=Hh(),a=o2(),o=P$(),s=Be(),c=Fh(),u=Ph(),l=lt(),d=Qne(),p=eie(),f=(F,I)=>new RegExp(F,I);f.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],_=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),y={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."},m={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},v=200;function g(F){var I,z,C,$,k,N,W,K,pe,ce,Ne,P,R,D,Z,J,ie,Qe,Zt,gt,vt,et,Yr,Ct,Ia;let On=F.strict,Pa=(I=F.code)===null||I===void 0?void 0:I.optimize,Tc=Pa===!0||Pa===void 0?1:Pa||0,Ic=(C=(z=F.code)===null||z===void 0?void 0:z.regExp)!==null&&C!==void 0?C:f,Pg=($=F.uriResolver)!==null&&$!==void 0?$:p.default;return{strictSchema:(N=(k=F.strictSchema)!==null&&k!==void 0?k:On)!==null&&N!==void 0?N:!0,strictNumbers:(K=(W=F.strictNumbers)!==null&&W!==void 0?W:On)!==null&&K!==void 0?K:!0,strictTypes:(ce=(pe=F.strictTypes)!==null&&pe!==void 0?pe:On)!==null&&ce!==void 0?ce:"log",strictTuples:(P=(Ne=F.strictTuples)!==null&&Ne!==void 0?Ne:On)!==null&&P!==void 0?P:"log",strictRequired:(D=(R=F.strictRequired)!==null&&R!==void 0?R:On)!==null&&D!==void 0?D:!1,code:F.code?{...F.code,optimize:Tc,regExp:Ic}:{optimize:Tc,regExp:Ic},loopRequired:(Z=F.loopRequired)!==null&&Z!==void 0?Z:v,loopEnum:(J=F.loopEnum)!==null&&J!==void 0?J:v,meta:(ie=F.meta)!==null&&ie!==void 0?ie:!0,messages:(Qe=F.messages)!==null&&Qe!==void 0?Qe:!0,inlineRefs:(Zt=F.inlineRefs)!==null&&Zt!==void 0?Zt:!0,schemaId:(gt=F.schemaId)!==null&>!==void 0?gt:"$id",addUsedSchema:(vt=F.addUsedSchema)!==null&&vt!==void 0?vt:!0,validateSchema:(et=F.validateSchema)!==null&&et!==void 0?et:!0,validateFormats:(Yr=F.validateFormats)!==null&&Yr!==void 0?Yr:!0,unicodeRegExp:(Ct=F.unicodeRegExp)!==null&&Ct!==void 0?Ct:!0,int32range:(Ia=F.int32range)!==null&&Ia!==void 0?Ia:!0,uriResolver:Pg}}class b{constructor(I={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,I=this.opts={...I,...g(I)};let{es5:z,lines:C}=this.opts.code;this.scope=new s.ValueScope({scope:{},prefixes:_,es5:z,lines:C}),this.logger=q(I.logger);let $=I.validateFormats;I.validateFormats=!1,this.RULES=(0,a.getRules)(),S.call(this,y,I,"NOT SUPPORTED"),S.call(this,m,I,"DEPRECATED","warn"),this._metaOpts=A.call(this),I.formats&&E.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),I.keywords&&O.call(this,I.keywords),typeof I.meta=="object"&&this.addMetaSchema(I.meta),w.call(this),I.validateFormats=$}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:I,meta:z,schemaId:C}=this.opts,$=d;C==="id"&&($={...d},$.id=$.$id,delete $.$id),z&&I&&this.addMetaSchema($,$[C],!1)}defaultMeta(){let{meta:I,schemaId:z}=this.opts;return this.opts.defaultMeta=typeof I=="object"?I[z]||I:void 0}validate(I,z){let C;if(typeof I=="string"){if(C=this.getSchema(I),!C)throw new Error(`no schema with key or ref "${I}"`)}else C=this.compile(I);let $=C(z);return"$async"in C||(this.errors=C.errors),$}compile(I,z){let C=this._addSchema(I,z);return C.validate||this._compileSchemaEnv(C)}compileAsync(I,z){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:C}=this.opts;return $.call(this,I,z);async function $(ce,Ne){await k.call(this,ce.$schema);let P=this._addSchema(ce,Ne);return P.validate||N.call(this,P)}async function k(ce){ce&&!this.getSchema(ce)&&await $.call(this,{$ref:ce},!0)}async function N(ce){try{return this._compileSchemaEnv(ce)}catch(Ne){if(!(Ne instanceof i.default))throw Ne;return W.call(this,Ne),await K.call(this,Ne.missingSchema),N.call(this,ce)}}function W({missingSchema:ce,missingRef:Ne}){if(this.refs[ce])throw new Error(`AnySchema ${ce} is loaded but ${Ne} cannot be resolved`)}async function K(ce){let Ne=await pe.call(this,ce);this.refs[ce]||await k.call(this,Ne.$schema),this.refs[ce]||this.addSchema(Ne,ce,z)}async function pe(ce){let Ne=this._loading[ce];if(Ne)return Ne;try{return await(this._loading[ce]=C(ce))}finally{delete this._loading[ce]}}}addSchema(I,z,C,$=this.opts.validateSchema){if(Array.isArray(I)){for(let N of I)this.addSchema(N,void 0,C,$);return this}let k;if(typeof I=="object"){let{schemaId:N}=this.opts;if(k=I[N],k!==void 0&&typeof k!="string")throw new Error(`schema ${N} must be string`)}return z=(0,c.normalizeId)(z||k),this._checkUnique(z),this.schemas[z]=this._addSchema(I,C,z,$,!0),this}addMetaSchema(I,z,C=this.opts.validateSchema){return this.addSchema(I,z,!0,C),this}validateSchema(I,z){if(typeof I=="boolean")return!0;let C;if(C=I.$schema,C!==void 0&&typeof C!="string")throw new Error("$schema must be a string");if(C=C||this.opts.defaultMeta||this.defaultMeta(),!C)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let $=this.validate(C,I);if(!$&&z){let k="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(k);else throw new Error(k)}return $}getSchema(I){let z;for(;typeof(z=x.call(this,I))=="string";)I=z;if(z===void 0){let{schemaId:C}=this.opts,$=new o.SchemaEnv({schema:{},schemaId:C});if(z=o.resolveSchema.call(this,$,I),!z)return;this.refs[I]=z}return z.validate||this._compileSchemaEnv(z)}removeSchema(I){if(I instanceof RegExp)return this._removeAllSchemas(this.schemas,I),this._removeAllSchemas(this.refs,I),this;switch(typeof I){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let z=x.call(this,I);return typeof z=="object"&&this._cache.delete(z.schema),delete this.schemas[I],delete this.refs[I],this}case"object":{let z=I;this._cache.delete(z);let C=I[this.opts.schemaId];return C&&(C=(0,c.normalizeId)(C),delete this.schemas[C],delete this.refs[C]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(I){for(let z of I)this.addKeyword(z);return this}addKeyword(I,z){let C;if(typeof I=="string")C=I,typeof z=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),z.keyword=C);else if(typeof I=="object"&&z===void 0){if(z=I,C=z.keyword,Array.isArray(C)&&!C.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(U.call(this,C,z),!z)return(0,l.eachItem)(C,k=>Y.call(this,k)),this;Ye.call(this,z);let $={...z,type:(0,u.getJSONTypes)(z.type),schemaType:(0,u.getJSONTypes)(z.schemaType)};return(0,l.eachItem)(C,$.type.length===0?k=>Y.call(this,k,$):k=>$.type.forEach(N=>Y.call(this,k,$,N))),this}getKeyword(I){let z=this.RULES.all[I];return typeof z=="object"?z.definition:!!z}removeKeyword(I){let{RULES:z}=this;delete z.keywords[I],delete z.all[I];for(let C of z.rules){let $=C.rules.findIndex(k=>k.keyword===I);$>=0&&C.rules.splice($,1)}return this}addFormat(I,z){return typeof z=="string"&&(z=new RegExp(z)),this.formats[I]=z,this}errorsText(I=this.errors,{separator:z=", ",dataVar:C="data"}={}){return!I||I.length===0?"No errors":I.map($=>`${C}${$.instancePath} ${$.message}`).reduce(($,k)=>$+z+k)}$dataMetaSchema(I,z){let C=this.RULES.all;I=JSON.parse(JSON.stringify(I));for(let $ of z){let k=$.split("/").slice(1),N=I;for(let W of k)N=N[W];for(let W in C){let K=C[W];if(typeof K!="object")continue;let{$data:pe}=K.definition,ce=N[W];pe&&ce&&(N[W]=fe(ce))}}return I}_removeAllSchemas(I,z){for(let C in I){let $=I[C];(!z||z.test(C))&&(typeof $=="string"?delete I[C]:$&&!$.meta&&(this._cache.delete($.schema),delete I[C]))}}_addSchema(I,z,C,$=this.opts.validateSchema,k=this.opts.addUsedSchema){let N,{schemaId:W}=this.opts;if(typeof I=="object")N=I[W];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof I!="boolean")throw new Error("schema must be object or boolean")}let K=this._cache.get(I);if(K!==void 0)return K;C=(0,c.normalizeId)(N||C);let pe=c.getSchemaRefs.call(this,I,C);return K=new o.SchemaEnv({schema:I,schemaId:W,meta:z,baseId:C,localRefs:pe}),this._cache.set(K.schema,K),k&&!C.startsWith("#")&&(C&&this._checkUnique(C),this.refs[C]=K),$&&this.validateSchema(I,!0),K}_checkUnique(I){if(this.schemas[I]||this.refs[I])throw new Error(`schema with key or id "${I}" already exists`)}_compileSchemaEnv(I){if(I.meta?this._compileMetaSchema(I):o.compileSchema.call(this,I),!I.validate)throw new Error("ajv implementation error");return I.validate}_compileMetaSchema(I){let z=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,I)}finally{this.opts=z}}}b.ValidationError=n.default,b.MissingRefError=i.default,t.default=b;function S(F,I,z,C="error"){for(let $ in F){let k=$;k in I&&this.logger[C](`${z}: option ${$}. ${F[k]}`)}}function x(F){return F=(0,c.normalizeId)(F),this.schemas[F]||this.refs[F]}function w(){let F=this.opts.schemas;if(F)if(Array.isArray(F))this.addSchema(F);else for(let I in F)this.addSchema(F[I],I)}function E(){for(let F in this.opts.formats){let I=this.opts.formats[F];I&&this.addFormat(F,I)}}function O(F){if(Array.isArray(F)){this.addVocabulary(F);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let I in F){let z=F[I];z.keyword||(z.keyword=I),this.addKeyword(z)}}function A(){let F={...this.opts};for(let I of h)delete F[I];return F}var M={log(){},warn(){},error(){}};function q(F){if(F===!1)return M;if(F===void 0)return console;if(F.log&&F.warn&&F.error)return F;throw new Error("logger must implement log, warn and error methods")}var B=/^[a-z_$][a-z0-9_$:-]*$/i;function U(F,I){let{RULES:z}=this;if((0,l.eachItem)(F,C=>{if(z.keywords[C])throw new Error(`Keyword ${C} is already defined`);if(!B.test(C))throw new Error(`Keyword ${C} has invalid name`)}),!!I&&I.$data&&!("code"in I||"validate"in I))throw new Error('$data keyword must have "code" or "validate" function')}function Y(F,I,z){var C;let $=I?.post;if(z&&$)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:k}=this,N=$?k.post:k.rules.find(({type:K})=>K===z);if(N||(N={type:z,rules:[]},k.rules.push(N)),k.keywords[F]=!0,!I)return;let W={keyword:F,definition:{...I,type:(0,u.getJSONTypes)(I.type),schemaType:(0,u.getJSONTypes)(I.schemaType)}};I.before?me.call(this,N,W,I.before):N.rules.push(W),k.all[F]=W,(C=I.implements)===null||C===void 0||C.forEach(K=>this.addKeyword(K))}function me(F,I,z){let C=F.rules.findIndex($=>$.keyword===z);C>=0?F.rules.splice(C,0,I):(F.rules.push(I),this.logger.warn(`rule ${z} is not defined`))}function Ye(F){let{metaSchema:I}=F;I!==void 0&&(F.$data&&this.opts.$data&&(I=fe(I)),F.validateSchema=this.compile(I,!0))}var ft={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function fe(F){return{anyOf:[F,ft]}}}),rie=V(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}),nie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=Hh(),r=Xn(),n=Be(),i=ka(),a=P$(),o=lt(),s={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:f}=l,{baseId:h,schemaEnv:_,validateName:y,opts:m,self:v}=f,{root:g}=_;if((p==="#"||p==="#/")&&h===g.baseId)return S();let b=a.resolveRef.call(v,g,h,p);if(b===void 0)throw new e.default(f.opts.uriResolver,h,p);if(b instanceof a.SchemaEnv)return x(b);return w(b);function S(){if(_===g)return u(l,y,_,_.$async);let E=d.scopeValue("root",{ref:g});return u(l,(0,n._)`${E}.validate`,g,g.$async)}function x(E){let O=c(l,E);u(l,O,E,E.$async)}function w(E){let O=d.scopeValue("schema",m.code.source===!0?{ref:E,code:(0,n.stringify)(E)}:{ref:E}),A=d.name("valid"),M=l.subschema({schema:E,dataTypes:[],schemaPath:n.nil,topSchemaRef:O,errSchemaPath:p},A);l.mergeEvaluated(M),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:h,it:_}=l,{allErrors:y,schemaEnv:m,opts:v}=_,g=v.passContext?i.default.this:n.nil;f?b():S();function b(){if(!m.$async)throw new Error("async schema referenced by sync schema");let E=h.let("valid");h.try(()=>{h.code((0,n._)`await ${(0,r.callValidateCode)(l,d,g)}`),w(d),y||h.assign(E,!0)},O=>{h.if((0,n._)`!(${O} instanceof ${_.ValidationError})`,()=>h.throw(O)),x(O),y||h.assign(E,!1)}),l.ok(E)}function S(){l.result((0,r.callValidateCode)(l,d,g),()=>w(d),()=>x(d))}function x(E){let O=(0,n._)`${E}.errors`;h.assign(i.default.vErrors,(0,n._)`${i.default.vErrors} === null ? ${O} : ${i.default.vErrors}.concat(${O})`),h.assign(i.default.errors,(0,n._)`${i.default.vErrors}.length`)}function w(E){var O;if(!_.opts.unevaluated)return;let A=(O=p?.validate)===null||O===void 0?void 0:O.evaluated;if(_.props!==!0)if(A&&!A.dynamicProps)A.props!==void 0&&(_.props=o.mergeEvaluated.props(h,A.props,_.props));else{let M=h.var("props",(0,n._)`${E}.evaluated.props`);_.props=o.mergeEvaluated.props(h,M,_.props,n.Name)}if(_.items!==!0)if(A&&!A.dynamicItems)A.items!==void 0&&(_.items=o.mergeEvaluated.items(h,A.items,_.items));else{let M=h.var("items",(0,n._)`${E}.evaluated.items`);_.items=o.mergeEvaluated.items(h,M,_.items,n.Name)}}}t.callRef=u,t.default=s}),iie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rie(),r=nie(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),aie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),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:s})=>(0,e.str)`must be ${n[o].okStr} ${s}`,params:({keyword:o,schemaCode:s})=>(0,e._)`{comparison: ${n[o].okStr}, limit: ${s}}`},a={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u}=o;o.fail$data((0,e._)`${c} ${n[s].fail} ${u} || isNaN(${c})`)}};t.default=a}),oie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),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:a,data:o,schemaCode:s,it:c}=i,u=c.opts.multipleOfPrecision,l=a.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;i.fail$data((0,e._)`(${s} === 0 || (${l} = ${o}/${s}, ${d}))`)}};t.default=n}),sie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,i=0,a=0,o;for(;a=55296&&o<=56319&&a{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n=sie(),i={message({keyword:o,schemaCode:s}){let c=o==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${s} characters`},params:({schemaCode:o})=>(0,e._)`{limit: ${o}}`},a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u,it:l}=o,d=s==="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=a}),uie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r=Be(),n={message:({schemaCode:a})=>(0,r.str)`must match pattern "${a}"`,params:({schemaCode:a})=>(0,r._)`{pattern: ${a}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n,code(a){let{data:o,$data:s,schema:c,schemaCode:u,it:l}=a,d=l.opts.unicodeRegExp?"u":"",p=s?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(a,c);a.fail$data((0,r._)`!${p}.test(${o})`)}};t.default=i}),lie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r={message({keyword:i,schemaCode:a}){let o=i==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} properties`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxProperties"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`Object.keys(${o}).length ${c} ${s}`)}};t.default=n}),die=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r=Be(),n=lt(),i={message:({params:{missingProperty:o}})=>(0,r.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,r._)`{missingProperty: ${o}}`},a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,schema:c,schemaCode:u,data:l,$data:d,it:p}=o,{opts:f}=p;if(!d&&c.length===0)return;let h=c.length>=f.loopRequired;if(p.allErrors?_():y(),f.strictRequired){let g=o.parentSchema.properties,{definedProperties:b}=o.it;for(let S of c)if(g?.[S]===void 0&&!b.has(S)){let x=p.schemaEnv.baseId+p.errSchemaPath,w=`required property "${S}" is not defined at "${x}" (strictRequired)`;(0,n.checkStrictMode)(p,w,p.opts.strictRequired)}}function _(){if(h||d)o.block$data(r.nil,m);else for(let g of c)(0,e.checkReportMissingProp)(o,g)}function y(){let g=s.let("missing");if(h||d){let b=s.let("valid",!0);o.block$data(b,()=>v(g,b)),o.ok(b)}else s.if((0,e.checkMissingProp)(o,c,g)),(0,e.reportMissingProp)(o,g),s.else()}function m(){s.forOf("prop",u,g=>{o.setParams({missingProperty:g}),s.if((0,e.noPropertyInData)(s,l,g,f.ownProperties),()=>o.error())})}function v(g,b){o.setParams({missingProperty:g}),s.forOf(g,u,()=>{s.assign(b,(0,e.propertyInData)(s,l,g,f.ownProperties)),s.if((0,r.not)(b),()=>{o.error(),s.break()})},r.nil)}}};t.default=a}),pie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r={message({keyword:i,schemaCode:a}){let o=i==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} items`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxItems"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`${o}.length ${c} ${s}`)}};t.default=n}),O$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=zh();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),fie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ph(),r=Be(),n=lt(),i=O$(),a={message:({params:{i:s,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${s} are identical)`,params:({params:{i:s,j:c}})=>(0,r._)`{i: ${s}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:a,code(s){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:f,it:h}=s;if(!l&&!d)return;let _=c.let("valid"),y=p.items?(0,e.getSchemaTypes)(p.items):[];s.block$data(_,m,(0,r._)`${f} === false`),s.ok(_);function m(){let S=c.let("i",(0,r._)`${u}.length`),x=c.let("j");s.setParams({i:S,j:x}),c.assign(_,!0),c.if((0,r._)`${S} > 1`,()=>(v()?g:b)(S,x))}function v(){return y.length>0&&!y.some(S=>S==="object"||S==="array")}function g(S,x){let w=c.name("item"),E=(0,e.checkDataTypes)(y,w,h.opts.strictNumbers,e.DataType.Wrong),O=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${S}--;`,()=>{c.let(w,(0,r._)`${u}[${S}]`),c.if(E,(0,r._)`continue`),y.length>1&&c.if((0,r._)`typeof ${w} == "string"`,(0,r._)`${w} += "_"`),c.if((0,r._)`typeof ${O}[${w}] == "number"`,()=>{c.assign(x,(0,r._)`${O}[${w}]`),s.error(),c.assign(_,!1).break()}).code((0,r._)`${O}[${w}] = ${S}`)})}function b(S,x){let w=(0,n.useFunc)(c,i.default),E=c.name("outer");c.label(E).for((0,r._)`;${S}--;`,()=>c.for((0,r._)`${x} = ${S}; ${x}--;`,()=>c.if((0,r._)`${w}(${u}[${S}], ${u}[${x}])`,()=>{s.error(),c.assign(_,!1).break(E)})))}}};t.default=o}),mie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n=O$(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,e._)`{allowedValue: ${o}}`},a={keyword:"const",$data:!0,error:i,code(o){let{gen:s,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,e._)`!${(0,r.useFunc)(s,n.default)}(${c}, ${l})`):o.fail((0,e._)`${d} !== ${c}`)}};t.default=a}),hie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n=O$(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,e._)`{allowedValues: ${o}}`},a={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,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,h,_=()=>h??(h=(0,r.useFunc)(s,n.default)),y;if(f||u)y=s.let("valid"),o.block$data(y,m);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let g=s.const("vSchema",d);y=(0,e.or)(...l.map((b,S)=>v(g,S)))}o.pass(y);function m(){s.assign(y,!1),s.forOf("v",d,g=>s.if((0,e._)`${_()}(${c}, ${g})`,()=>s.assign(y,!0).break()))}function v(g,b){let S=l[b];return typeof S=="object"&&S!==null?(0,e._)`${_()}(${c}, ${g}[${b}])`:(0,e._)`${c} === ${S}`}}};t.default=a}),gie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=aie(),r=oie(),n=cie(),i=uie(),a=lie(),o=die(),s=pie(),c=fie(),u=mie(),l=hie(),d=[e.default,r.default,n.default,i.default,a.default,o.default,s.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),c2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=Be(),r=lt(),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:s,it:c}=o,{items:u}=s;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}a(o,u)}};function a(o,s){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:s.length}),o.pass((0,e._)`${f} <= ${s.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let _=c.var("valid",(0,e._)`${f} <= ${s.length}`);c.if((0,e.not)(_),()=>h(_)),o.ok(_)}function h(_){c.forRange("i",s.length,f,y=>{o.subschema({keyword:d,dataProp:y,dataPropType:r.Type.Num},_),p.allErrors||c.if((0,e.not)(_),()=>c.break())})}}t.validateAdditionalItems=a,t.default=i}),u2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=Be(),r=lt(),n=Xn(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:s,it:c}=o;if(Array.isArray(s))return a(o,"additionalItems",s);c.items=!0,!(0,r.alwaysValidSchema)(c,s)&&o.ok((0,n.validateArray)(o))}};function a(o,s,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:p,it:f}=o;y(l),f.opts.unevaluated&&c.length&&f.items!==!0&&(f.items=r.mergeEvaluated.items(u,c.length,f.items));let h=u.name("valid"),_=u.const("len",(0,e._)`${d}.length`);c.forEach((m,v)=>{(0,r.alwaysValidSchema)(f,m)||(u.if((0,e._)`${_} > ${v}`,()=>o.subschema({keyword:p,schemaProp:v,dataProp:v},h)),o.ok(h))});function y(m){let{opts:v,errSchemaPath:g}=f,b=c.length,S=b===m.minItems&&(b===m.maxItems||m[s]===!1);if(v.strictTuples&&!S){let x=`"${p}" is ${b}-tuple, but minItems or maxItems/${s} are not specified or different at path "${g}"`;(0,r.checkStrictMode)(f,x,v.strictTuples)}}}t.validateTuple=a,t.default=i}),vie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=u2(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),yie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n=Xn(),i=c2(),a={message:({params:{len:s}})=>(0,e.str)`must NOT have more than ${s} items`,params:({params:{len:s}})=>(0,e._)`{limit: ${s}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:a,code(s){let{schema:c,parentSchema:u,it:l}=s,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(s,d):s.ok((0,n.validateArray)(s)))}};t.default=o}),_ie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n={message:({params:{min:a,max:o}})=>o===void 0?(0,e.str)`must contain at least ${a} valid item(s)`:(0,e.str)`must contain at least ${a} and no more than ${o} valid item(s)`,params:({params:{min:a,max:o}})=>o===void 0?(0,e._)`{minContains: ${a}}`:(0,e._)`{minContains: ${a}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,data:u,it:l}=a,d,p,{minContains:f,maxContains:h}=c;l.opts.next?(d=f===void 0?1:f,p=h):d=1;let _=o.const("len",(0,e._)`${u}.length`);if(a.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'),a.fail();return}if((0,r.alwaysValidSchema)(l,s)){let b=(0,e._)`${_} >= ${d}`;p!==void 0&&(b=(0,e._)`${b} && ${_} <= ${p}`),a.pass(b);return}l.items=!0;let y=o.name("valid");p===void 0&&d===1?v(y,()=>o.if(y,()=>o.break())):d===0?(o.let(y,!0),p!==void 0&&o.if((0,e._)`${u}.length > 0`,m)):(o.let(y,!1),m()),a.result(y,()=>a.reset());function m(){let b=o.name("_valid"),S=o.let("count",0);v(b,()=>o.if(b,()=>g(S)))}function v(b,S){o.forRange("i",0,_,x=>{a.subschema({keyword:"contains",dataProp:x,dataPropType:r.Type.Num,compositeRule:!0},b),S()})}function g(b){o.code((0,e._)`${b}++`),p===void 0?o.if((0,e._)`${b} >= ${d}`,()=>o.assign(y,!0).break()):(o.if((0,e._)`${b} > ${p}`,()=>o.assign(y,!1).break()),d===1?o.assign(y,!0):o.if((0,e._)`${b} >= ${d}`,()=>o.assign(y,!0)))}}};t.default=i}),bie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=Be(),r=lt(),n=Xn();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}, + deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[u,l]=a(c);o(c,u),s(c,l)}};function a({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 h in u){let _=u[h];if(_.length===0)continue;let g=(0,n.propertyInData)(l,d,h,p.opts.ownProperties);c.setParams({property:h,depsCount:_.length,deps:_.join(", ")}),p.allErrors?l.if(g,()=>{for(let m of _)(0,n.checkReportMissingProp)(c,m)}):(l.if((0,e._)`${g} && (${(0,n.checkMissingProp)(c,_,f)})`),(0,n.reportMissingProp)(c,f),l.else())}}t.validatePropertyDeps=o;function s(c,u=c.schema){let{gen:l,data:d,keyword:p,it:f}=c,h=l.name("valid");for(let _ in u)(0,r.alwaysValidSchema)(f,u[_])||(l.if((0,n.propertyInData)(l,d,_,f.opts.ownProperties),()=>{let g=c.subschema({keyword:p,schemaProp:_},h);c.mergeValidEvaluated(g,h)},()=>l.var(h,!0)),c.ok(h))}t.validateSchemaDeps=s,t.default=i}),qne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n={message:"property name must be valid",params:({params:a})=>(0,e._)`{propertyName: ${a.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(a){let{gen:o,schema:s,data:c,it:u}=a;if((0,r.alwaysValidSchema)(u,s))return;let l=o.name("valid");o.forIn("key",c,d=>{a.setParams({propertyName:d}),a.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,e.not)(l),()=>{a.error(!0),u.allErrors||o.break()})}),a.ok(l)}};t.default=i}),u2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Yn(),r=Xe(),n=$a(),i=ut(),a={message:"must NOT have additional properties",params:({params:s})=>(0,r._)`{additionalProperty: ${s.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:a,code(s){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:f}=s;if(!p)throw new Error("ajv implementation error");let{allErrors:h,opts:_}=f;if(f.props=!0,_.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(f,u))return;let g=(0,e.allSchemaProperties)(l.properties),m=(0,e.allSchemaProperties)(l.patternProperties);y(),s.ok((0,r._)`${p} === ${n.default.errors}`);function y(){c.forIn("key",d,w=>{!g.length&&!m.length?S(w):c.if(v(w),()=>S(w))})}function v(w){let E;if(g.length>8){let R=(0,i.schemaRefOrVal)(f,l.properties,"properties");E=(0,e.isOwnProperty)(c,R,w)}else g.length?E=(0,r.or)(...g.map(R=>(0,r._)`${w} === ${R}`)):E=r.nil;return m.length&&(E=(0,r.or)(E,...m.map(R=>(0,r._)`${(0,e.usePattern)(s,R)}.test(${w})`))),(0,r.not)(E)}function b(w){c.code((0,r._)`delete ${d}[${w}]`)}function S(w){if(_.removeAdditional==="all"||_.removeAdditional&&u===!1){b(w);return}if(u===!1){s.setParams({additionalProperty:w}),s.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(f,u)){let E=c.name("valid");_.removeAdditional==="failing"?(x(w,E,!1),c.if((0,r.not)(E),()=>{s.reset(),b(w)})):(x(w,E),h||c.if((0,r.not)(E),()=>c.break()))}}function x(w,E,R){let A={keyword:"additionalProperties",dataProp:w,dataPropType:i.Type.Str};R===!1&&Object.assign(A,{compositeRule:!0,createErrors:!1,allErrors:!1}),s.subschema(A,E)}}};t.default=o}),Lne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Fh(),r=Yn(),n=ut(),i=u2(),a={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:s,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 m of p)d.definedProperties.add(m);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=n.mergeEvaluated.props(s,(0,n.toHash)(p),d.props));let f=p.filter(m=>!(0,n.alwaysValidSchema)(d,c[m]));if(f.length===0)return;let h=s.name("valid");for(let m of f)_(m)?g(m):(s.if((0,r.propertyInData)(s,l,m,d.opts.ownProperties)),g(m),d.allErrors||s.else().var(h,!0),s.endIf()),o.it.definedProperties.add(m),o.ok(h);function _(m){return d.opts.useDefaults&&!d.compositeRule&&c[m].default!==void 0}function g(m){o.subschema({keyword:"properties",schemaProp:m,dataProp:m},h)}}};t.default=a}),Fne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Yn(),r=Xe(),n=ut(),i=ut(),a={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:s,schema:c,data:u,parentSchema:l,it:d}=o,{opts:p}=d,f=(0,e.allSchemaProperties)(c),h=f.filter(S=>(0,n.alwaysValidSchema)(d,c[S]));if(f.length===0||h.length===f.length&&(!d.opts.unevaluated||d.props===!0))return;let _=p.strictSchema&&!p.allowMatchingProperties&&l.properties,g=s.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,i.evaluatedPropsToName)(s,d.props));let{props:m}=d;y();function y(){for(let S of f)_&&v(S),d.allErrors?b(S):(s.var(g,!0),b(S),s.if(g))}function v(S){for(let x in _)new RegExp(S).test(x)&&(0,n.checkStrictMode)(d,`property ${x} matches pattern ${S} (use allowMatchingProperties)`)}function b(S){s.forIn("key",u,x=>{s.if((0,r._)`${(0,e.usePattern)(o,S)}.test(${x})`,()=>{let w=h.includes(S);w||o.subschema({keyword:"patternProperties",schemaProp:S,dataProp:x,dataPropType:i.Type.Str},g),d.opts.unevaluated&&m!==!0?s.assign((0,r._)`${m}[${x}]`,!0):!w&&!d.allErrors&&s.if((0,r.not)(g),()=>s.break())})})}}};t.default=a}),Zne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ut(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:i,schema:a,it:o}=n;if((0,e.alwaysValidSchema)(o,a)){n.fail();return}let s=i.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),n.failResult(s,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),Hne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Yn(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),Bne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n={message:"must match exactly one schema in oneOf",params:({params:a})=>(0,e._)`{passingSchemas: ${a.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,it:u}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=s,d=o.let("valid",!1),p=o.let("passing",null),f=o.name("_valid");a.setParams({passing:p}),o.block(h),a.result(d,()=>a.reset(),()=>a.error(!0));function h(){l.forEach((_,g)=>{let m;(0,r.alwaysValidSchema)(u,_)?o.var(f,!0):m=a.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),m&&a.mergeEvaluated(m,e.Name)})})}}};t.default=i}),Vne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ut(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:i,schema:a,it:o}=n;if(!Array.isArray(a))throw new Error("ajv implementation error");let s=i.name("valid");a.forEach((c,u)=>{if((0,e.alwaysValidSchema)(o,c))return;let l=n.subschema({keyword:"allOf",schemaProp:u},s);n.ok(s),n.mergeEvaluated(l)})}};t.default=r}),Gne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),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:s,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=a(u,"then"),d=a(u,"else");if(!l&&!d)return;let p=s.let("valid",!0),f=s.name("_valid");if(h(),o.reset(),l&&d){let g=s.let("ifClause");o.setParams({ifClause:g}),s.if(f,_("then",g),_("else",g))}else l?s.if(f,_("then")):s.if((0,e.not)(f),_("else"));o.pass(p,()=>o.error(!0));function h(){let g=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},f);o.mergeEvaluated(g)}function _(g,m){return()=>{let y=o.subschema({keyword:g},f);s.assign(p,f),o.mergeValidEvaluated(y,p),m?s.assign(m,(0,e._)`${g}`):o.setParams({ifClause:g})}}}};function a(o,s){let c=o.schema[s];return c!==void 0&&!(0,r.alwaysValidSchema)(o,c)}t.default=i}),Wne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ut(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:i,it:a}){i.if===void 0&&(0,e.checkStrictMode)(a,`"${n}" without "if" is ignored`)}};t.default=r}),Kne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=s2(),r=Mne(),n=c2(),i=Dne(),a=zne(),o=Une(),s=qne(),c=u2(),u=Lne(),l=Fne(),d=Zne(),p=Hne(),f=Bne(),h=Vne(),_=Gne(),g=Wne();function m(y=!1){let v=[d.default,p.default,f.default,h.default,_.default,g.default,s.default,c.default,o.default,u.default,l.default];return y?v.push(r.default,i.default):v.push(e.default,n.default),v.push(a.default),v}t.default=m}),Jne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),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,a){let{gen:o,data:s,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:p,errSchemaPath:f,schemaEnv:h,self:_}=d;if(!p.validateFormats)return;c?g():m();function g(){let y=o.scopeValue("formats",{ref:_.formats,code:p.code.formats}),v=o.const("fDef",(0,e._)`${y}[${l}]`),b=o.let("fType"),S=o.let("format");o.if((0,e._)`typeof ${v} == "object" && !(${v} instanceof RegExp)`,()=>o.assign(b,(0,e._)`${v}.type || "string"`).assign(S,(0,e._)`${v}.validate`),()=>o.assign(b,(0,e._)`"string"`).assign(S,v)),i.fail$data((0,e.or)(x(),w()));function x(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${S}`}function w(){let E=h.$async?(0,e._)`(${v}.async ? await ${S}(${s}) : ${S}(${s}))`:(0,e._)`${S}(${s})`,R=(0,e._)`(typeof ${S} == "function" ? ${E} : ${S}.test(${s}))`;return(0,e._)`${S} && ${S} !== true && ${b} === ${a} && !${R}`}}function m(){let y=_.formats[u];if(!y){x();return}if(y===!0)return;let[v,b,S]=w(y);v===a&&i.pass(E());function x(){if(p.strictSchema===!1){_.logger.warn(R());return}throw new Error(R());function R(){return`unknown format "${u}" ignored in schema at path "${f}"`}}function w(R){let A=R instanceof RegExp?(0,e.regexpCode)(R):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,M=o.scopeValue("formats",{key:u,ref:R,code:A});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,(0,e._)`${M}.validate`]:["string",R,M]}function E(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!h.$async)throw new Error("async format in sync schema");return(0,e._)`await ${S}(${s})`}return typeof b=="function"?(0,e._)`${S}(${s})`:(0,e._)`${S}.test(${s})`}}}};t.default=n}),Xne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jne(),r=[e.default];t.default=r}),Yne=V(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"]}),Qne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=wne(),r=Ane(),n=Kne(),i=Xne(),a=Yne(),o=[e.default,r.default,(0,n.default)(),i.default,a.metadataVocabulary,a.contentVocabulary];t.default=o}),eie=V(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={}))}),tie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=eie(),n=P$(),i=Zh(),a=ut(),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}}`},s={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:f}=c,{oneOf:h}=p;if(!f.opts.discriminator)throw new Error("discriminator: requires discriminator option");let _=d.propertyName;if(typeof _!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let g=u.let("valid",!1),m=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(_)}`);u.if((0,e._)`typeof ${m} == "string"`,()=>y(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:m,tagName:_})),c.ok(g);function y(){let S=b();u.if(!1);for(let x in S)u.elseIf((0,e._)`${m} === ${x}`),u.assign(g,v(S[x]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:m,tagName:_}),u.endIf()}function v(S){let x=u.name("valid"),w=c.subschema({keyword:"oneOf",schemaProp:S},x);return c.mergeEvaluated(w,e.Name),x}function b(){var S;let x={},w=R(p),E=!0;for(let q=0;q{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}}),nie=V((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=bne(),n=Qne(),i=tie(),a=rie(),o=["/properties"],s="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(a,o):a;this.addMetaSchema(h,s,!1),this.refs["http://json-schema.org/schema"]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Fh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=Xe();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=I$();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=Zh();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),iie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(M,q){return{validate:M,compare:q}}t.fullFormats={date:e(a,o),time:e(c(!0),u),"date-time":e(p(!0),f),"iso-time":e(c(),l),"iso-date-time":e(p(),h),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:m,"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:v,int32:{type:"number",validate:x},int64:{type:"number",validate:w},float:{type:"number",validate:E},double:{type:"number",validate:E},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,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,h),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(M){return M%4===0&&(M%100!==0||M%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 a(M){let q=n.exec(M);if(!q)return!1;let B=+q[1],U=+q[2],Y=+q[3];return U>=1&&U<=12&&Y>=1&&Y<=(U===2&&r(B)?29:i[U])}function o(M,q){if(M&&q)return M>q?1:M23||I>59||M&&!mt)return!1;if(Y<=23&&me<=59&&Qe<60)return!0;let D=me-I*fe,C=Y-F*fe-(D<0?1:0);return(C===23||C===-1)&&(D===59||D===-1)&&Qe<61}}function u(M,q){if(!(M&&q))return;let B=new Date("2020-01-01T"+M).valueOf(),U=new Date("2020-01-01T"+q).valueOf();if(B&&U)return B-U}function l(M,q){if(!(M&&q))return;let B=s.exec(M),U=s.exec(q);if(B&&U)return M=B[1]+B[2]+B[3],q=U[1]+U[2]+U[3],M>q?1:M=b}function w(M){return Number.isInteger(M)}function E(){return!0}var R=/[^\\]\\Z/;function A(M){if(R.test(M))return!1;try{return new RegExp(M),!0}catch{return!1}}}),Oh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(y){if(super(),!t.IDENTIFIER.test(y))throw new Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((v,b)=>`${v}${b}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((v,b)=>(b instanceof r&&(v[b.str]=(v[b.str]||0)+1),v),{})}}t._Code=n,t.nil=new n("");function i(m,...y){let v=[m[0]],b=0;for(;b{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=Oh();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 a 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=a;var o=(0,e._)`\n`;class s 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 a(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,h=(d=l.key)!==null&&d!==void 0?d:l.ref,_=this._values[f];if(_){let y=_.get(h);if(y)return y}else _=this._values[f]=new Map;_.set(h,p);let g=this._scope[f]||(this._scope[f]=[]),m=g.length;return g[m]=l.ref,p.setValue(l,{property:f,itemIndex:m}),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 h in u){let _=u[h];if(!_)continue;let g=d[h]=d[h]||new Map;_.forEach(m=>{if(g.has(m))return;g.set(m,n.Started);let y=l(m);if(y){let v=this.opts.es5?t.varKinds.var:t.varKinds.const;f=(0,e._)`${f}${v} ${m} = ${y};${this.opts._n}`}else if(y=p?.(m))f=(0,e._)`${f}${y}${this.opts._n}`;else throw new r(m);g.set(m,n.Completed)})}return f}}t.ValueScope=s}),Ve=V(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=Oh(),r=E4(),n=Oh();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=E4();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 a{optimizeNodes(){return this}optimizeNames($,T){return this}}class o extends a{constructor($,T,N){super(),this.varKind=$,this.name=T,this.rhs=N}render({es5:$,_n:T}){let N=$?r.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${N} ${this.name}${W};`+T}optimizeNames($,T){if($[this.name.str])return this.rhs&&(this.rhs=U(this.rhs,$,T)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class s extends a{constructor($,T,N){super(),this.lhs=$,this.rhs=T,this.sideEffects=N}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,T){if(!(this.lhs instanceof e.Name&&!$[this.lhs.str]&&!this.sideEffects))return this.rhs=U(this.rhs,$,T),this}get names(){let $=this.lhs instanceof e.Name?{}:{...this.lhs.names};return B($,this.rhs)}}class c extends s{constructor($,T,N,W){super($,N,W),this.op=T}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class u extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class l extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class d extends a{constructor($){super(),this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class p extends a{constructor($){super(),this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,T){return this.code=U(this.code,$,T),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class f extends a{constructor($=[]){super(),this.nodes=$}render($){return this.nodes.reduce((T,N)=>T+N.render($),"")}optimizeNodes(){let{nodes:$}=this,T=$.length;for(;T--;){let N=$[T].optimizeNodes();Array.isArray(N)?$.splice(T,1,...N):N?$[T]=N:$.splice(T,1)}return $.length>0?this:void 0}optimizeNames($,T){let{nodes:N}=this,W=N.length;for(;W--;){let K=N[W];K.optimizeNames($,T)||(Y($,K.names),N.splice(W,1))}return N.length>0?this:void 0}get names(){return this.nodes.reduce(($,T)=>q($,T.names),{})}}class h extends f{render($){return"{"+$._n+super.render($)+"}"+$._n}}class _ extends f{}class g extends h{}g.kind="else";class m extends h{constructor($,T){super(T),this.condition=$}render($){let T=`if(${this.condition})`+super.render($);return this.else&&(T+="else "+this.else.render($)),T}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let T=this.else;if(T){let N=T.optimizeNodes();T=this.else=Array.isArray(N)?new g(N):N}if(T)return $===!1?T instanceof m?T:T.nodes:this.nodes.length?this:new m(me($),T instanceof m?[T]:T.nodes);if(!($===!1||!this.nodes.length))return this}optimizeNames($,T){var N;if(this.else=(N=this.else)===null||N===void 0?void 0:N.optimizeNames($,T),!!(super.optimizeNames($,T)||this.else))return this.condition=U(this.condition,$,T),this}get names(){let $=super.names;return B($,this.condition),this.else&&q($,this.else.names),$}}m.kind="if";class y extends h{}y.kind="for";class v extends y{constructor($){super(),this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,T){if(super.optimizeNames($,T))return this.iteration=U(this.iteration,$,T),this}get names(){return q(super.names,this.iteration.names)}}class b extends y{constructor($,T,N,W){super(),this.varKind=$,this.name=T,this.from=N,this.to=W}render($){let T=$.es5?r.varKinds.var:this.varKind,{name:N,from:W,to:K}=this;return`for(${T} ${N}=${W}; ${N}<${K}; ${N}++)`+super.render($)}get names(){let $=B(super.names,this.from);return B($,this.to)}}class S extends y{constructor($,T,N,W){super(),this.loop=$,this.varKind=T,this.name=N,this.iterable=W}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,T){if(super.optimizeNames($,T))return this.iterable=U(this.iterable,$,T),this}get names(){return q(super.names,this.iterable.names)}}class x extends h{constructor($,T,N){super(),this.name=$,this.args=T,this.async=N}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}x.kind="func";class w extends f{render($){return"return "+super.render($)}}w.kind="return";class E extends h{render($){let T="try"+super.render($);return this.catch&&(T+=this.catch.render($)),this.finally&&(T+=this.finally.render($)),T}optimizeNodes(){var $,T;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(T=this.finally)===null||T===void 0||T.optimizeNodes(),this}optimizeNames($,T){var N,W;return super.optimizeNames($,T),(N=this.catch)===null||N===void 0||N.optimizeNames($,T),(W=this.finally)===null||W===void 0||W.optimizeNames($,T),this}get names(){let $=super.names;return this.catch&&q($,this.catch.names),this.finally&&q($,this.finally.names),$}}class R extends h{constructor($){super(),this.error=$}render($){return`catch(${this.error})`+super.render($)}}R.kind="catch";class A extends h{render($){return"finally"+super.render($)}}A.kind="finally";class M{constructor($,T={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...T,_n:T.lines?` +`:""},this._extScope=$,this._scope=new r.Scope({parent:$}),this._nodes=[new _]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,T){let N=this._extScope.value($,T);return(this._values[N.prefix]||(this._values[N.prefix]=new Set)).add(N),N}getScopeValue($,T){return this._extScope.getValue($,T)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,T,N,W){let K=this._scope.toName(T);return N!==void 0&&W&&(this._constants[K.str]=N),this._leafNode(new o($,K,N)),K}const($,T,N){return this._def(r.varKinds.const,$,T,N)}let($,T,N){return this._def(r.varKinds.let,$,T,N)}var($,T,N){return this._def(r.varKinds.var,$,T,N)}assign($,T,N){return this._leafNode(new s($,T,N))}add($,T){return this._leafNode(new c($,t.operators.ADD,T))}code($){return typeof $=="function"?$():$!==e.nil&&this._leafNode(new p($)),this}object(...$){let T=["{"];for(let[N,W]of $)T.length>1&&T.push(","),T.push(N),(N!==W||this.opts.es5)&&(T.push(":"),(0,e.addCodeArg)(T,W));return T.push("}"),new e._Code(T)}if($,T,N){if(this._blockNode(new m($)),T&&N)this.code(T).else().code(N).endIf();else if(T)this.code(T).endIf();else if(N)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new m($))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(m,g)}_for($,T){return this._blockNode($),T&&this.code(T).endFor(),this}for($,T){return this._for(new v($),T)}forRange($,T,N,W,K=this.opts.es5?r.varKinds.var:r.varKinds.let){let pe=this._scope.toName($);return this._for(new b(K,pe,T,N),()=>W(pe))}forOf($,T,N,W=r.varKinds.const){let K=this._scope.toName($);if(this.opts.es5){let pe=T instanceof e.Name?T:this.var("_arr",T);return this.forRange("_i",0,(0,e._)`${pe}.length`,ce=>{this.var(K,(0,e._)`${pe}[${ce}]`),N(K)})}return this._for(new S("of",W,K,T),()=>N(K))}forIn($,T,N,W=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf($,(0,e._)`Object.keys(${T})`,N);let K=this._scope.toName($);return this._for(new S("in",W,K,T),()=>N(K))}endFor(){return this._endBlockNode(y)}label($){return this._leafNode(new u($))}break($){return this._leafNode(new l($))}return($){let T=new w;if(this._blockNode(T),this.code($),T.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(w)}try($,T,N){if(!T&&!N)throw new Error('CodeGen: "try" without "catch" and "finally"');let W=new E;if(this._blockNode(W),this.code($),T){let K=this.name("e");this._currNode=W.catch=new R(K),T(K)}return N&&(this._currNode=W.finally=new A,this.code(N)),this._endBlockNode(R,A)}throw($){return this._leafNode(new d($))}block($,T){return this._blockStarts.push(this._nodes.length),$&&this.code($).endBlock(T),this}endBlock($){let T=this._blockStarts.pop();if(T===void 0)throw new Error("CodeGen: not in self-balancing block");let N=this._nodes.length-T;if(N<0||$!==void 0&&N!==$)throw new Error(`CodeGen: wrong number of nodes: ${N} vs ${$} expected`);return this._nodes.length=T,this}func($,T=e.nil,N,W){return this._blockNode(new x($,T,N)),W&&this.code(W).endFunc(),this}endFunc(){return this._endBlockNode(x)}optimize($=1){for(;$-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,T){let N=this._currNode;if(N instanceof $||T&&N instanceof T)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${T?`${$.kind}/${T.kind}`:$.kind}"`)}_elseNode($){let T=this._currNode;if(!(T instanceof m))throw new Error('CodeGen: "else" without "if"');return this._currNode=T.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let T=this._nodes;T[T.length-1]=$}}t.CodeGen=M;function q(C,$){for(let T in $)C[T]=(C[T]||0)+($[T]||0);return C}function B(C,$){return $ instanceof e._CodeOrName?q(C,$.names):C}function U(C,$,T){if(C instanceof e.Name)return N(C);if(!W(C))return C;return new e._Code(C._items.reduce((K,pe)=>(pe instanceof e.Name&&(pe=N(pe)),pe instanceof e._Code?K.push(...pe._items):K.push(pe),K),[]));function N(K){let pe=T[K.str];return pe===void 0||$[K.str]!==1?K:(delete $[K.str],pe)}function W(K){return K instanceof e._Code&&K._items.some(pe=>pe instanceof e.Name&&$[pe.str]===1&&T[pe.str]!==void 0)}}function Y(C,$){for(let T in $)C[T]=(C[T]||0)-($[T]||0)}function me(C){return typeof C=="boolean"||typeof C=="number"||C===null?!C:(0,e._)`!${D(C)}`}t.not=me;var Qe=I(t.operators.AND);function mt(...C){return C.reduce(Qe)}t.and=mt;var fe=I(t.operators.OR);function F(...C){return C.reduce(fe)}t.or=F;function I(C){return($,T)=>$===e.nil?T:T===e.nil?$:(0,e._)`${D($)} ${C} ${D(T)}`}function D(C){return C instanceof e.Name?C:(0,e._)`(${C})`}}),lt=V(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=Ve(),r=Oh();function n(x){let w={};for(let E of x)w[E]=!0;return w}t.toHash=n;function i(x,w){return typeof w=="boolean"?w:Object.keys(w).length===0?!0:(a(x,w),!o(w,x.self.RULES.all))}t.alwaysValidSchema=i;function a(x,w=x.schema){let{opts:E,self:R}=x;if(!E.strictSchema||typeof w=="boolean")return;let A=R.RULES.keywords;for(let M in w)A[M]||S(x,`unknown keyword: "${M}"`)}t.checkUnknownRules=a;function o(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(w[E])return!0;return!1}t.schemaHasRules=o;function s(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(E!=="$ref"&&w.all[E])return!0;return!1}t.schemaHasRulesButRef=s;function c({topSchemaRef:x,schemaPath:w},E,R,A){if(!A){if(typeof E=="number"||typeof E=="boolean")return E;if(typeof E=="string")return(0,e._)`${E}`}return(0,e._)`${x}${w}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function u(x){return p(decodeURIComponent(x))}t.unescapeFragment=u;function l(x){return encodeURIComponent(d(x))}t.escapeFragment=l;function d(x){return typeof x=="number"?`${x}`:x.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(x){return x.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function f(x,w){if(Array.isArray(x))for(let E of x)w(E);else w(x)}t.eachItem=f;function h({mergeNames:x,mergeToName:w,mergeValues:E,resultToName:R}){return(A,M,q,B)=>{let U=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?x(A,M,q):w(A,M,q),q):M instanceof e.Name?(w(A,q,M),M):E(M,q);return B===e.Name&&!(U instanceof e.Name)?R(A,U):U}}t.mergeEvaluated={props:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>{x.if((0,e._)`${w} === true`,()=>x.assign(E,!0),()=>x.assign(E,(0,e._)`${E} || {}`).code((0,e._)`Object.assign(${E}, ${w})`))}),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>{w===!0?x.assign(E,!0):(x.assign(E,(0,e._)`${E} || {}`),g(x,E,w))}),mergeValues:(x,w)=>x===!0?!0:{...x,...w},resultToName:_}),items:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>x.assign(E,(0,e._)`${w} === true ? true : ${E} > ${w} ? ${E} : ${w}`)),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>x.assign(E,w===!0?!0:(0,e._)`${E} > ${w} ? ${E} : ${w}`)),mergeValues:(x,w)=>x===!0?!0:Math.max(x,w),resultToName:(x,w)=>x.var("items",w)})};function _(x,w){if(w===!0)return x.var("props",!0);let E=x.var("props",(0,e._)`{}`);return w!==void 0&&g(x,E,w),E}t.evaluatedPropsToName=_;function g(x,w,E){Object.keys(E).forEach(R=>x.assign((0,e._)`${w}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=g;var m={};function y(x,w){return x.scopeValue("func",{ref:w,code:m[w.code]||(m[w.code]=new r._Code(w.code))})}t.useFunc=y;var v;(function(x){x[x.Num=0]="Num",x[x.Str=1]="Str"})(v||(t.Type=v={}));function b(x,w,E){if(x instanceof e.Name){let R=w===v.Num;return E?R?(0,e._)`"[" + ${x} + "]"`:(0,e._)`"['" + ${x} + "']"`:R?(0,e._)`"/" + ${x}`:(0,e._)`"/" + ${x}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return E?(0,e.getProperty)(x).toString():"/"+d(x)}t.getErrorPath=b;function S(x,w,E=x.opts.strictSchema){if(E){if(w=`strict mode: ${w}`,E===!0)throw new Error(w);x.self.logger.warn(w)}}t.checkStrictMode=S}),Ea=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),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}),Hh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=Ve(),r=lt(),n=Ea();t.keywordError={message:({keyword:g})=>(0,e.str)`must pass "${g}" keyword validation`},t.keyword$DataError={message:({keyword:g,schemaType:m})=>m?(0,e.str)`"${g}" keyword must be ${m} ($data)`:(0,e.str)`"${g}" keyword is invalid ($data)`};function i(g,m=t.keywordError,y,v){let{it:b}=g,{gen:S,compositeRule:x,allErrors:w}=b,E=d(g,m,y);v??(x||w)?c(S,E):u(b,(0,e._)`[${E}]`)}t.reportError=i;function a(g,m=t.keywordError,y){let{it:v}=g,{gen:b,compositeRule:S,allErrors:x}=v,w=d(g,m,y);c(b,w),S||x||u(v,n.default.vErrors)}t.reportExtraError=a;function o(g,m){g.assign(n.default.errors,m),g.if((0,e._)`${n.default.vErrors} !== null`,()=>g.if(m,()=>g.assign((0,e._)`${n.default.vErrors}.length`,m),()=>g.assign(n.default.vErrors,null)))}t.resetErrorsCount=o;function s({gen:g,keyword:m,schemaValue:y,data:v,errsCount:b,it:S}){if(b===void 0)throw new Error("ajv implementation error");let x=g.name("err");g.forRange("i",b,n.default.errors,w=>{g.const(x,(0,e._)`${n.default.vErrors}[${w}]`),g.if((0,e._)`${x}.instancePath === undefined`,()=>g.assign((0,e._)`${x}.instancePath`,(0,e.strConcat)(n.default.instancePath,S.errorPath))),g.assign((0,e._)`${x}.schemaPath`,(0,e.str)`${S.errSchemaPath}/${m}`),S.opts.verbose&&(g.assign((0,e._)`${x}.schema`,y),g.assign((0,e._)`${x}.data`,v))})}t.extendErrors=s;function c(g,m){let y=g.const("err",m);g.if((0,e._)`${n.default.vErrors} === null`,()=>g.assign(n.default.vErrors,(0,e._)`[${y}]`),(0,e._)`${n.default.vErrors}.push(${y})`),g.code((0,e._)`${n.default.errors}++`)}function u(g,m){let{gen:y,validateName:v,schemaEnv:b}=g;b.$async?y.throw((0,e._)`new ${g.ValidationError}(${m})`):(y.assign((0,e._)`${v}.errors`,m),y.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,m,y){let{createErrors:v}=g.it;return v===!1?(0,e._)`{}`:p(g,m,y)}function p(g,m,y={}){let{gen:v,it:b}=g,S=[f(b,y),h(g,y)];return _(g,m,S),v.object(...S)}function f({errorPath:g},{instancePath:m}){let y=m?(0,e.str)`${g}${(0,r.getErrorPath)(m,r.Type.Str)}`:g;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,y)]}function h({keyword:g,it:{errSchemaPath:m}},{schemaPath:y,parentSchema:v}){let b=v?m:(0,e.str)`${m}/${g}`;return y&&(b=(0,e.str)`${b}${(0,r.getErrorPath)(y,r.Type.Str)}`),[l.schemaPath,b]}function _(g,{params:m,message:y},v){let{keyword:b,data:S,schemaValue:x,it:w}=g,{opts:E,propertyName:R,topSchemaRef:A,schemaPath:M}=w;v.push([l.keyword,b],[l.params,typeof m=="function"?m(g):m||(0,e._)`{}`]),E.messages&&v.push([l.message,typeof y=="function"?y(g):y]),E.verbose&&v.push([l.schema,x],[l.parentSchema,(0,e._)`${A}${M}`],[n.default.data,S]),R&&v.push([l.propertyName,R])}}),aie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=Hh(),r=Ve(),n=Ea(),i={message:"boolean schema is false"};function a(c){let{gen:u,schema:l,validateName:d}=c;l===!1?s(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=a;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),s(c)):l.var(u,!0)}t.boolOrEmptySchema=o;function s(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)}}),l2=V(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(a){return typeof a=="string"&&r.has(a)}t.isJSONType=n;function i(){let a={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...a,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},a.number,a.string,a.array,a.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=i}),d2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:i,self:a},o){let s=a.RULES.types[o];return s&&s!==!0&&r(i,s)}t.schemaHasRulesForType=e;function r(i,a){return a.rules.some(o=>n(i,o))}t.shouldUseGroup=r;function n(i,a){var o;return i[a.keyword]!==void 0||((o=a.definition.implements)===null||o===void 0?void 0:o.some(s=>i[s]!==void 0))}t.shouldUseRule=n}),Ch=V(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=l2(),r=d2(),n=Hh(),i=Ve(),a=lt(),o;(function(v){v[v.Correct=0]="Correct",v[v.Wrong=1]="Wrong"})(o||(t.DataType=o={}));function s(v){let b=c(v.type);if(b.includes("null")){if(v.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!b.length&&v.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');v.nullable===!0&&b.push("null")}return b}t.getSchemaTypes=s;function c(v){let b=Array.isArray(v)?v:v?[v]:[];if(b.every(e.isJSONType))return b;throw new Error("type must be JSONType or JSONType[]: "+b.join(","))}t.getJSONTypes=c;function u(v,b){let{gen:S,data:x,opts:w}=v,E=d(b,w.coerceTypes),R=b.length>0&&!(E.length===0&&b.length===1&&(0,r.schemaHasRulesForType)(v,b[0]));if(R){let A=_(b,x,w.strictNumbers,o.Wrong);S.if(A,()=>{E.length?p(v,b,E):m(v)})}return R}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(v,b){return b?v.filter(S=>l.has(S)||b==="array"&&S==="array"):[]}function p(v,b,S){let{gen:x,data:w,opts:E}=v,R=x.let("dataType",(0,i._)`typeof ${w}`),A=x.let("coerced",(0,i._)`undefined`);E.coerceTypes==="array"&&x.if((0,i._)`${R} == 'object' && Array.isArray(${w}) && ${w}.length == 1`,()=>x.assign(w,(0,i._)`${w}[0]`).assign(R,(0,i._)`typeof ${w}`).if(_(b,w,E.strictNumbers),()=>x.assign(A,w))),x.if((0,i._)`${A} !== undefined`);for(let q of S)(l.has(q)||q==="array"&&E.coerceTypes==="array")&&M(q);x.else(),m(v),x.endIf(),x.if((0,i._)`${A} !== undefined`,()=>{x.assign(w,A),f(v,A)});function M(q){switch(q){case"string":x.elseIf((0,i._)`${R} == "number" || ${R} == "boolean"`).assign(A,(0,i._)`"" + ${w}`).elseIf((0,i._)`${w} === null`).assign(A,(0,i._)`""`);return;case"number":x.elseIf((0,i._)`${R} == "boolean" || ${w} === null + || (${R} == "string" && ${w} && ${w} == +${w})`).assign(A,(0,i._)`+${w}`);return;case"integer":x.elseIf((0,i._)`${R} === "boolean" || ${w} === null + || (${R} === "string" && ${w} && ${w} == +${w} && !(${w} % 1))`).assign(A,(0,i._)`+${w}`);return;case"boolean":x.elseIf((0,i._)`${w} === "false" || ${w} === 0 || ${w} === null`).assign(A,!1).elseIf((0,i._)`${w} === "true" || ${w} === 1`).assign(A,!0);return;case"null":x.elseIf((0,i._)`${w} === "" || ${w} === 0 || ${w} === false`),x.assign(A,null);return;case"array":x.elseIf((0,i._)`${R} === "string" || ${R} === "number" + || ${R} === "boolean" || ${w} === null`).assign(A,(0,i._)`[${w}]`)}}}function f({gen:v,parentData:b,parentDataProperty:S},x){v.if((0,i._)`${b} !== undefined`,()=>v.assign((0,i._)`${b}[${S}]`,x))}function h(v,b,S,x=o.Correct){let w=x===o.Correct?i.operators.EQ:i.operators.NEQ,E;switch(v){case"null":return(0,i._)`${b} ${w} null`;case"array":E=(0,i._)`Array.isArray(${b})`;break;case"object":E=(0,i._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":E=R((0,i._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":E=R();break;default:return(0,i._)`typeof ${b} ${w} ${v}`}return x===o.Correct?E:(0,i.not)(E);function R(A=i.nil){return(0,i.and)((0,i._)`typeof ${b} == "number"`,A,S?(0,i._)`isFinite(${b})`:i.nil)}}t.checkDataType=h;function _(v,b,S,x){if(v.length===1)return h(v[0],b,S,x);let w,E=(0,a.toHash)(v);if(E.array&&E.object){let R=(0,i._)`typeof ${b} != "object"`;w=E.null?R:(0,i._)`!${b} || ${R}`,delete E.null,delete E.array,delete E.object}else w=i.nil;E.number&&delete E.integer;for(let R in E)w=(0,i.and)(w,h(R,b,S,x));return w}t.checkDataTypes=_;var g={message:({schema:v})=>`must be ${v}`,params:({schema:v,schemaValue:b})=>typeof v=="string"?(0,i._)`{type: ${v}}`:(0,i._)`{type: ${b}}`};function m(v){let b=y(v);(0,n.reportError)(b,g)}t.reportTypeError=m;function y(v){let{gen:b,data:S,schema:x}=v,w=(0,a.schemaRefOrVal)(v,x,"type");return{gen:b,keyword:"type",data:S,schema:x.type,schemaCode:w,schemaValue:w,parentSchema:x,params:{},it:v}}}),oie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=Ve(),r=lt();function n(a,o){let{properties:s,items:c}=a.schema;if(o==="object"&&s)for(let u in s)i(a,u,s[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(a,l,u.default))}t.assignDefaults=n;function i(a,o,s){let{gen:c,compositeRule:u,data:l,opts:d}=a;if(s===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(o)}`;if(u){(0,r.checkStrictMode)(a,`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)(s)}`)}}),Qn=V(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=Ve(),r=lt(),n=Ea(),i=lt();function a(v,b){let{gen:S,data:x,it:w}=v;S.if(d(S,x,b,w.opts.ownProperties),()=>{v.setParams({missingProperty:(0,e._)`${b}`},!0),v.error()})}t.checkReportMissingProp=a;function o({gen:v,data:b,it:{opts:S}},x,w){return(0,e.or)(...x.map(E=>(0,e.and)(d(v,b,E,S.ownProperties),(0,e._)`${w} = ${E}`)))}t.checkMissingProp=o;function s(v,b){v.setParams({missingProperty:b},!0),v.error()}t.reportMissingProp=s;function c(v){return v.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(v,b,S){return(0,e._)`${c(v)}.call(${b}, ${S})`}t.isOwnProperty=u;function l(v,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} !== undefined`;return x?(0,e._)`${w} && ${u(v,b,S)}`:w}t.propertyInData=l;function d(v,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} === undefined`;return x?(0,e.or)(w,(0,e.not)(u(v,b,S))):w}t.noPropertyInData=d;function p(v){return v?Object.keys(v).filter(b=>b!=="__proto__"):[]}t.allSchemaProperties=p;function f(v,b){return p(b).filter(S=>!(0,r.alwaysValidSchema)(v,b[S]))}t.schemaProperties=f;function h({schemaCode:v,data:b,it:{gen:S,topSchemaRef:x,schemaPath:w,errorPath:E},it:R},A,M,q){let B=q?(0,e._)`${v}, ${b}, ${x}${w}`:b,U=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,E)],[n.default.parentData,R.parentData],[n.default.parentDataProperty,R.parentDataProperty],[n.default.rootData,n.default.rootData]];R.opts.dynamicRef&&U.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let Y=(0,e._)`${B}, ${S.object(...U)}`;return M!==e.nil?(0,e._)`${A}.call(${M}, ${Y})`:(0,e._)`${A}(${Y})`}t.callValidateCode=h;var _=(0,e._)`new RegExp`;function g({gen:v,it:{opts:b}},S){let x=b.unicodeRegExp?"u":"",{regExp:w}=b.code,E=w(S,x);return v.scopeValue("pattern",{key:E.toString(),ref:E,code:(0,e._)`${w.code==="new RegExp"?_:(0,i.useFunc)(v,w)}(${S}, ${x})`})}t.usePattern=g;function m(v){let{gen:b,data:S,keyword:x,it:w}=v,E=b.name("valid");if(w.allErrors){let A=b.let("valid",!0);return R(()=>b.assign(A,!1)),A}return b.var(E,!0),R(()=>b.break()),E;function R(A){let M=b.const("len",(0,e._)`${S}.length`);b.forRange("i",0,M,q=>{v.subschema({keyword:x,dataProp:q,dataPropType:r.Type.Num},E),b.if((0,e.not)(E),A)})}}t.validateArray=m;function y(v){let{gen:b,schema:S,keyword:x,it:w}=v;if(!Array.isArray(S))throw new Error("ajv implementation error");if(S.some(M=>(0,r.alwaysValidSchema)(w,M))&&!w.opts.unevaluated)return;let R=b.let("valid",!1),A=b.name("_valid");b.block(()=>S.forEach((M,q)=>{let B=v.subschema({keyword:x,schemaProp:q,compositeRule:!0},A);b.assign(R,(0,e._)`${R} || ${A}`),v.mergeValidEvaluated(B,A)||b.if((0,e.not)(R))})),v.result(R,()=>v.reset(),()=>v.error(!0))}t.validateUnion=y}),sie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=Ve(),r=Ea(),n=Qn(),i=Hh();function a(f,h){let{gen:_,keyword:g,schema:m,parentSchema:y,it:v}=f,b=h.macro.call(v.self,m,y,v),S=l(_,g,b);v.opts.validateSchema!==!1&&v.self.validateSchema(b,!0);let x=_.name("valid");f.subschema({schema:b,schemaPath:e.nil,errSchemaPath:`${v.errSchemaPath}/${g}`,topSchemaRef:S,compositeRule:!0},x),f.pass(x,()=>f.error(!0))}t.macroKeywordCode=a;function o(f,h){var _;let{gen:g,keyword:m,schema:y,parentSchema:v,$data:b,it:S}=f;u(S,h);let x=!b&&h.compile?h.compile.call(S.self,y,v,S):h.validate,w=l(g,m,x),E=g.let("valid");f.block$data(E,R),f.ok((_=h.valid)!==null&&_!==void 0?_:E);function R(){if(h.errors===!1)q(),h.modifying&&s(f),B(()=>f.error());else{let U=h.async?A():M();h.modifying&&s(f),B(()=>c(f,U))}}function A(){let U=g.let("ruleErrs",null);return g.try(()=>q((0,e._)`await `),Y=>g.assign(E,!1).if((0,e._)`${Y} instanceof ${S.ValidationError}`,()=>g.assign(U,(0,e._)`${Y}.errors`),()=>g.throw(Y))),U}function M(){let U=(0,e._)`${w}.errors`;return g.assign(U,null),q(e.nil),U}function q(U=h.async?(0,e._)`await `:e.nil){let Y=S.opts.passContext?r.default.this:r.default.self,me=!("compile"in h&&!b||h.schema===!1);g.assign(E,(0,e._)`${U}${(0,n.callValidateCode)(f,w,Y,me)}`,h.modifying)}function B(U){var Y;g.if((0,e.not)((Y=h.valid)!==null&&Y!==void 0?Y:E),U)}}t.funcKeywordCode=o;function s(f){let{gen:h,data:_,it:g}=f;h.if(g.parentData,()=>h.assign(_,(0,e._)`${g.parentData}[${g.parentDataProperty}]`))}function c(f,h){let{gen:_}=f;_.if((0,e._)`Array.isArray(${h})`,()=>{_.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${h} : ${r.default.vErrors}.concat(${h})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,i.extendErrors)(f)},()=>f.error())}function u({schemaEnv:f},h){if(h.async&&!f.$async)throw new Error("async keyword in sync schema")}function l(f,h,_){if(_===void 0)throw new Error(`keyword "${h}" failed to compile`);return f.scopeValue("keyword",typeof _=="function"?{ref:_}:{ref:_,code:(0,e.stringify)(_)})}function d(f,h,_=!1){return!h.length||h.some(g=>g==="array"?Array.isArray(f):g==="object"?f&&typeof f=="object"&&!Array.isArray(f):typeof f==g||_&&typeof f>"u")}t.validSchemaType=d;function p({schema:f,opts:h,self:_,errSchemaPath:g},m,y){if(Array.isArray(m.keyword)?!m.keyword.includes(y):m.keyword!==y)throw new Error("ajv implementation error");let v=m.dependencies;if(v?.some(b=>!Object.prototype.hasOwnProperty.call(f,b)))throw new Error(`parent schema must have dependencies of ${y}: ${v.join(",")}`);if(m.validateSchema&&!m.validateSchema(f[y])){let S=`keyword "${y}" value is invalid at path "${g}": `+_.errorsText(m.validateSchema.errors);if(h.validateSchema==="log")_.logger.error(S);else throw new Error(S)}}t.validateKeywordUsage=p}),cie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=Ve(),r=lt();function n(o,{keyword:s,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(s!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(s!==void 0){let f=o.schema[s];return c===void 0?{schema:f,schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}`,errSchemaPath:`${o.errSchemaPath}/${s}`}:{schema:f[c],schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}${(0,e.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${s}/${(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,s,{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}=s;if(c!==void 0){let{errorPath:_,dataPathArr:g,opts:m}=s,y=f.let("data",(0,e._)`${s.data}${(0,e.getProperty)(c)}`,!0);h(y),o.errorPath=(0,e.str)`${_}${(0,r.getErrorPath)(c,u,m.jsPropertySyntax)}`,o.parentDataProperty=(0,e._)`${c}`,o.dataPathArr=[...g,o.parentDataProperty]}if(l!==void 0){let _=l instanceof e.Name?l:f.let("data",l,!0);h(_),p!==void 0&&(o.propertyName=p)}d&&(o.dataTypes=d);function h(_){o.data=_,o.dataLevel=s.dataLevel+1,o.dataTypes=[],s.definedProperties=new Set,o.parentData=s.data,o.dataNames=[...s.dataNames,_]}}t.extendSubschemaData=i;function a(o,{jtdDiscriminator:s,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=s,o.jtdMetadata=c}t.extendSubschemaMode=a}),uie=V((t,e)=>{var r=e.exports=function(a,o,s){typeof o=="function"&&(s=o,o={}),s=o.cb||s;var c=typeof s=="function"?s:s.pre||function(){},u=s.post||function(){};n(o,c,u,a,"",a)};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(a,o,s,c,u,l,d,p,f,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,p,f,h);for(var _ in c){var g=c[_];if(Array.isArray(g)){if(_ in r.arrayKeywords)for(var m=0;m{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=lt(),r=qh(),n=uie(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function a(g,m=!0){return typeof g=="boolean"?!0:m===!0?!s(g):m?c(g)<=m:!1}t.inlineRef=a;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function s(g){for(let m in g){if(o.has(m))return!0;let y=g[m];if(Array.isArray(y)&&y.some(s)||typeof y=="object"&&s(y))return!0}return!1}function c(g){let m=0;for(let y in g){if(y==="$ref")return 1/0;if(m++,!i.has(y)&&(typeof g[y]=="object"&&(0,e.eachItem)(g[y],v=>m+=c(v)),m===1/0))return 1/0}return m}function u(g,m="",y){y!==!1&&(m=p(m));let v=g.parse(m);return l(g,v)}t.getFullPath=u;function l(g,m){return g.serialize(m).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(g){return g?g.replace(d,""):""}t.normalizeId=p;function f(g,m,y){return y=p(y),g.resolve(m,y)}t.resolveUrl=f;var h=/^[a-z_][-a-z0-9._]*$/i;function _(g,m){if(typeof g=="boolean")return{};let{schemaId:y,uriResolver:v}=this.opts,b=p(g[y]||m),S={"":b},x=u(v,b,!1),w={},E=new Set;return n(g,{allKeys:!0},(M,q,B,U)=>{if(U===void 0)return;let Y=x+q,me=S[U];typeof M[y]=="string"&&(me=Qe.call(this,M[y])),mt.call(this,M.$anchor),mt.call(this,M.$dynamicAnchor),S[q]=me;function Qe(fe){let F=this.opts.uriResolver.resolve;if(fe=p(me?F(me,fe):fe),E.has(fe))throw A(fe);E.add(fe);let I=this.refs[fe];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?R(M,I.schema,fe):fe!==p(Y)&&(fe[0]==="#"?(R(M,w[fe],fe),w[fe]=M):this.refs[fe]=Y),fe}function mt(fe){if(typeof fe=="string"){if(!h.test(fe))throw new Error(`invalid anchor "${fe}"`);Qe.call(this,`#${fe}`)}}}),w;function R(M,q,B){if(q!==void 0&&!r(M,q))throw A(B)}function A(M){return new Error(`reference "${M}" resolves to more than one schema`)}}t.getSchemaRefs=_}),Vh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=aie(),r=Ch(),n=d2(),i=Ch(),a=oie(),o=sie(),s=cie(),c=Ve(),u=Ea(),l=Bh(),d=lt(),p=Hh();function f(P){if(x(P)&&(E(P),S(P))){m(P);return}h(P,()=>(0,e.topBoolOrEmptySchema)(P))}t.validateFunctionCode=f;function h({gen:P,validateName:O,schema:z,schemaEnv:Z,opts:J},ie){J.code.es5?P.func(O,(0,c._)`${u.default.data}, ${u.default.valCxt}`,Z.$async,()=>{P.code((0,c._)`"use strict"; ${v(z,J)}`),g(P,J),P.code(ie)}):P.func(O,(0,c._)`${u.default.data}, ${_(J)}`,Z.$async,()=>P.code(v(z,J)).code(ie))}function _(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,O){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}`),O.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),O.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function m(P){let{schema:O,opts:z,gen:Z}=P;h(P,()=>{z.$comment&&O.$comment&&U(P),M(P),Z.let(u.default.vErrors,null),Z.let(u.default.errors,0),z.unevaluated&&y(P),R(P),Y(P)})}function y(P){let{gen:O,validateName:z}=P;P.evaluated=O.const("evaluated",(0,c._)`${z}.evaluated`),O.if((0,c._)`${P.evaluated}.dynamicProps`,()=>O.assign((0,c._)`${P.evaluated}.props`,(0,c._)`undefined`)),O.if((0,c._)`${P.evaluated}.dynamicItems`,()=>O.assign((0,c._)`${P.evaluated}.items`,(0,c._)`undefined`))}function v(P,O){let z=typeof P=="object"&&P[O.schemaId];return z&&(O.code.source||O.code.process)?(0,c._)`/*# sourceURL=${z} */`:c.nil}function b(P,O){if(x(P)&&(E(P),S(P))){w(P,O);return}(0,e.boolOrEmptySchema)(P,O)}function S({schema:P,self:O}){if(typeof P=="boolean")return!P;for(let z in P)if(O.RULES.all[z])return!0;return!1}function x(P){return typeof P.schema!="boolean"}function w(P,O){let{schema:z,gen:Z,opts:J}=P;J.$comment&&z.$comment&&U(P),q(P),B(P);let ie=Z.const("_errs",u.default.errors);R(P,ie),Z.var(O,(0,c._)`${ie} === ${u.default.errors}`)}function E(P){(0,d.checkUnknownRules)(P),A(P)}function R(P,O){if(P.opts.jtd)return Qe(P,[],!1,O);let z=(0,r.getSchemaTypes)(P.schema),Z=(0,r.coerceAndCheckDataType)(P,z);Qe(P,z,!Z,O)}function A(P){let{schema:O,errSchemaPath:z,opts:Z,self:J}=P;O.$ref&&Z.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(O,J.RULES)&&J.logger.warn(`$ref: keywords ignored in schema at path "${z}"`)}function M(P){let{schema:O,opts:z}=P;O.default!==void 0&&z.useDefaults&&z.strictSchema&&(0,d.checkStrictMode)(P,"default is ignored in the schema root")}function q(P){let O=P.schema[P.opts.schemaId];O&&(P.baseId=(0,l.resolveUrl)(P.opts.uriResolver,P.baseId,O))}function B(P){if(P.schema.$async&&!P.schemaEnv.$async)throw new Error("async schema in sync schema")}function U({gen:P,schemaEnv:O,schema:z,errSchemaPath:Z,opts:J}){let ie=z.$comment;if(J.$comment===!0)P.code((0,c._)`${u.default.self}.logger.log(${ie})`);else if(typeof J.$comment=="function"){let et=(0,c.str)`${Z}/$comment`,Zt=P.scopeValue("root",{ref:O.root});P.code((0,c._)`${u.default.self}.opts.$comment(${ie}, ${et}, ${Zt}.schema)`)}}function Y(P){let{gen:O,schemaEnv:z,validateName:Z,ValidationError:J,opts:ie}=P;z.$async?O.if((0,c._)`${u.default.errors} === 0`,()=>O.return(u.default.data),()=>O.throw((0,c._)`new ${J}(${u.default.vErrors})`)):(O.assign((0,c._)`${Z}.errors`,u.default.vErrors),ie.unevaluated&&me(P),O.return((0,c._)`${u.default.errors} === 0`))}function me({gen:P,evaluated:O,props:z,items:Z}){z instanceof c.Name&&P.assign((0,c._)`${O}.props`,z),Z instanceof c.Name&&P.assign((0,c._)`${O}.items`,Z)}function Qe(P,O,z,Z){let{gen:J,schema:ie,data:et,allErrors:Zt,opts:vt,self:yt}=P,{RULES:tt}=yt;if(ie.$ref&&(vt.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(ie,tt))){J.block(()=>K(P,"$ref",tt.all.$ref.definition));return}vt.jtd||fe(P,O),J.block(()=>{for(let Ct of tt.rules)Qr(Ct);Qr(tt.post)});function Qr(Ct){(0,n.shouldUseGroup)(ie,Ct)&&(Ct.type?(J.if((0,i.checkDataType)(Ct.type,et,vt.strictNumbers)),mt(P,Ct),O.length===1&&O[0]===Ct.type&&z&&(J.else(),(0,i.reportTypeError)(P)),J.endIf()):mt(P,Ct),Zt||J.if((0,c._)`${u.default.errors} === ${Z||0}`))}}function mt(P,O){let{gen:z,schema:Z,opts:{useDefaults:J}}=P;J&&(0,a.assignDefaults)(P,O.type),z.block(()=>{for(let ie of O.rules)(0,n.shouldUseRule)(Z,ie)&&K(P,ie.keyword,ie.definition,O.type)})}function fe(P,O){P.schemaEnv.meta||!P.opts.strictTypes||(F(P,O),P.opts.allowUnionTypes||I(P,O),D(P,P.dataTypes))}function F(P,O){if(O.length){if(!P.dataTypes.length){P.dataTypes=O;return}O.forEach(z=>{$(P.dataTypes,z)||N(P,`type "${z}" not allowed by context "${P.dataTypes.join(",")}"`)}),T(P,O)}}function I(P,O){O.length>1&&!(O.length===2&&O.includes("null"))&&N(P,"use allowUnionTypes to allow union type keyword")}function D(P,O){let z=P.self.RULES.all;for(let Z in z){let J=z[Z];if(typeof J=="object"&&(0,n.shouldUseRule)(P.schema,J)){let{type:ie}=J.definition;ie.length&&!ie.some(et=>C(O,et))&&N(P,`missing type "${ie.join(",")}" for keyword "${Z}"`)}}}function C(P,O){return P.includes(O)||O==="number"&&P.includes("integer")}function $(P,O){return P.includes(O)||O==="integer"&&P.includes("number")}function T(P,O){let z=[];for(let Z of P.dataTypes)$(O,Z)?z.push(Z):O.includes("integer")&&Z==="number"&&z.push("integer");P.dataTypes=z}function N(P,O){let z=P.schemaEnv.baseId+P.errSchemaPath;O+=` at "${z}" (strictTypes)`,(0,d.checkStrictMode)(P,O,P.opts.strictTypes)}class W{constructor(O,z,Z){if((0,o.validateKeywordUsage)(O,z,Z),this.gen=O.gen,this.allErrors=O.allErrors,this.keyword=Z,this.data=O.data,this.schema=O.schema[Z],this.$data=z.$data&&O.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(O,this.schema,Z,this.$data),this.schemaType=z.schemaType,this.parentSchema=O.schema,this.params={},this.it=O,this.def=z,this.$data)this.schemaCode=O.gen.const("vSchema",je(this.$data,O));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,z.schemaType,z.allowUndefined))throw new Error(`${Z} value must be ${JSON.stringify(z.schemaType)}`);("code"in z?z.trackErrors:z.errors!==!1)&&(this.errsCount=O.gen.const("_errs",u.default.errors))}result(O,z,Z){this.failResult((0,c.not)(O),z,Z)}failResult(O,z,Z){this.gen.if(O),Z?Z():this.error(),z?(this.gen.else(),z(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(O,z){this.failResult((0,c.not)(O),void 0,z)}fail(O){if(O===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(O),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(O){if(!this.$data)return this.fail(O);let{schemaCode:z}=this;this.fail((0,c._)`${z} !== undefined && (${(0,c.or)(this.invalid$data(),O)})`)}error(O,z,Z){if(z){this.setParams(z),this._error(O,Z),this.setParams({});return}this._error(O,Z)}_error(O,z){(O?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(O){this.allErrors||this.gen.if(O)}setParams(O,z){z?Object.assign(this.params,O):this.params=O}block$data(O,z,Z=c.nil){this.gen.block(()=>{this.check$data(O,Z),z()})}check$data(O=c.nil,z=c.nil){if(!this.$data)return;let{gen:Z,schemaCode:J,schemaType:ie,def:et}=this;Z.if((0,c.or)((0,c._)`${J} === undefined`,z)),O!==c.nil&&Z.assign(O,!0),(ie.length||et.validateSchema)&&(Z.elseIf(this.invalid$data()),this.$dataError(),O!==c.nil&&Z.assign(O,!1)),Z.else()}invalid$data(){let{gen:O,schemaCode:z,schemaType:Z,def:J,it:ie}=this;return(0,c.or)(et(),Zt());function et(){if(Z.length){if(!(z instanceof c.Name))throw new Error("ajv implementation error");let vt=Array.isArray(Z)?Z:[Z];return(0,c._)`${(0,i.checkDataTypes)(vt,z,ie.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Zt(){if(J.validateSchema){let vt=O.scopeValue("validate$data",{ref:J.validateSchema});return(0,c._)`!${vt}(${z})`}return c.nil}}subschema(O,z){let Z=(0,s.getSubschema)(this.it,O);(0,s.extendSubschemaData)(Z,this.it,O),(0,s.extendSubschemaMode)(Z,O);let J={...this.it,...Z,items:void 0,props:void 0};return b(J,z),J}mergeEvaluated(O,z){let{it:Z,gen:J}=this;Z.opts.unevaluated&&(Z.props!==!0&&O.props!==void 0&&(Z.props=d.mergeEvaluated.props(J,O.props,Z.props,z)),Z.items!==!0&&O.items!==void 0&&(Z.items=d.mergeEvaluated.items(J,O.items,Z.items,z)))}mergeValidEvaluated(O,z){let{it:Z,gen:J}=this;if(Z.opts.unevaluated&&(Z.props!==!0||Z.items!==!0))return J.if(z,()=>this.mergeEvaluated(O,c.Name)),!0}}t.KeywordCxt=W;function K(P,O,z,Z){let J=new W(P,z,O);"code"in z?z.code(J,Z):J.$data&&z.validate?(0,o.funcKeywordCode)(J,z):"macro"in z?(0,o.macroKeywordCode)(J,z):(z.compile||z.validate)&&(0,o.funcKeywordCode)(J,z)}var pe=/^\/(?:[^~]|~0|~1)*$/,ce=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function je(P,{dataLevel:O,dataNames:z,dataPathArr:Z}){let J,ie;if(P==="")return u.default.rootData;if(P[0]==="/"){if(!pe.test(P))throw new Error(`Invalid JSON-pointer: ${P}`);J=P,ie=u.default.rootData}else{let yt=ce.exec(P);if(!yt)throw new Error(`Invalid JSON-pointer: ${P}`);let tt=+yt[1];if(J=yt[2],J==="#"){if(tt>=O)throw new Error(vt("property/index",tt));return Z[O-tt]}if(tt>O)throw new Error(vt("data",tt));if(ie=z[O-tt],!J)return ie}let et=ie,Zt=J.split("/");for(let yt of Zt)yt&&(ie=(0,c._)`${ie}${(0,c.getProperty)((0,d.unescapeJsonPointer)(yt))}`,et=(0,c._)`${et} && ${ie}`);return et;function vt(yt,tt){return`Cannot access ${yt} ${tt} levels up, current level is ${O}`}}t.getData=je}),O$=V(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}),Gh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Bh();class r extends Error{constructor(i,a,o,s){super(s||`can't resolve reference ${o} from id ${a}`),this.missingRef=(0,e.resolveUrl)(i,a,o),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(i,this.missingRef))}}t.default=r}),C$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=Ve(),r=O$(),n=Ea(),i=Bh(),a=lt(),o=Vh();class s{constructor(y){var v;this.refs={},this.dynamicAnchors={};let b;typeof y.schema=="object"&&(b=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(v=y.baseId)!==null&&v!==void 0?v:(0,i.normalizeId)(b?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=b?.$async,this.refs={}}}t.SchemaEnv=s;function c(m){let y=d.call(this,m);if(y)return y;let v=(0,i.getFullPath)(this.opts.uriResolver,m.root.baseId),{es5:b,lines:S}=this.opts.code,{ownProperties:x}=this.opts,w=new e.CodeGen(this.scope,{es5:b,lines:S,ownProperties:x}),E;m.$async&&(E=w.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let R=w.scopeName("validate");m.validateName=R;let A={gen:w,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:w.scopeValue("schema",this.opts.code.source===!0?{ref:m.schema,code:(0,e.stringify)(m.schema)}:{ref:m.schema}),validateName:R,ValidationError:E,schema:m.schema,schemaEnv:m,rootId:v,baseId:m.baseId||v,schemaPath:e.nil,errSchemaPath:m.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},M;try{this._compilations.add(m),(0,o.validateFunctionCode)(A),w.optimize(this.opts.code.optimize);let q=w.toString();M=`${w.scopeRefs(n.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,m));let U=new Function(`${n.default.self}`,`${n.default.scope}`,M)(this,this.scope.get());if(this.scope.value(R,{ref:U}),U.errors=null,U.schema=m.schema,U.schemaEnv=m,m.$async&&(U.$async=!0),this.opts.code.source===!0&&(U.source={validateName:R,validateCode:q,scopeValues:w._values}),this.opts.unevaluated){let{props:Y,items:me}=A;U.evaluated={props:Y instanceof e.Name?void 0:Y,items:me instanceof e.Name?void 0:me,dynamicProps:Y instanceof e.Name,dynamicItems:me instanceof e.Name},U.source&&(U.source.evaluated=(0,e.stringify)(U.evaluated))}return m.validate=U,m}catch(q){throw delete m.validate,delete m.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(m)}}t.compileSchema=c;function u(m,y,v){var b;v=(0,i.resolveUrl)(this.opts.uriResolver,y,v);let S=m.refs[v];if(S)return S;let x=f.call(this,m,v);if(x===void 0){let w=(b=m.localRefs)===null||b===void 0?void 0:b[v],{schemaId:E}=this.opts;w&&(x=new s({schema:w,schemaId:E,root:m,baseId:y}))}if(x!==void 0)return m.refs[v]=l.call(this,x)}t.resolveRef=u;function l(m){return(0,i.inlineRef)(m.schema,this.opts.inlineRefs)?m.schema:m.validate?m:c.call(this,m)}function d(m){for(let y of this._compilations)if(p(y,m))return y}t.getCompilingSchema=d;function p(m,y){return m.schema===y.schema&&m.root===y.root&&m.baseId===y.baseId}function f(m,y){let v;for(;typeof(v=this.refs[y])=="string";)y=v;return v||this.schemas[y]||h.call(this,m,y)}function h(m,y){let v=this.opts.uriResolver.parse(y),b=(0,i._getFullPath)(this.opts.uriResolver,v),S=(0,i.getFullPath)(this.opts.uriResolver,m.baseId,void 0);if(Object.keys(m.schema).length>0&&b===S)return g.call(this,v,m);let x=(0,i.normalizeId)(b),w=this.refs[x]||this.schemas[x];if(typeof w=="string"){let E=h.call(this,m,w);return typeof E?.schema!="object"?void 0:g.call(this,v,E)}if(typeof w?.schema=="object"){if(w.validate||c.call(this,w),x===(0,i.normalizeId)(y)){let{schema:E}=w,{schemaId:R}=this.opts,A=E[R];return A&&(S=(0,i.resolveUrl)(this.opts.uriResolver,S,A)),new s({schema:E,schemaId:R,root:m,baseId:S})}return g.call(this,v,w)}}t.resolveSchema=h;var _=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function g(m,{baseId:y,schema:v,root:b}){var S;if(((S=m.fragment)===null||S===void 0?void 0:S[0])!=="/")return;for(let E of m.fragment.slice(1).split("/")){if(typeof v=="boolean")return;let R=v[(0,a.unescapeFragment)(E)];if(R===void 0)return;v=R;let A=typeof v=="object"&&v[this.opts.schemaId];!_.has(E)&&A&&(y=(0,i.resolveUrl)(this.opts.uriResolver,y,A))}let x;if(typeof v!="boolean"&&v.$ref&&!(0,a.schemaHasRulesButRef)(v,this.RULES)){let E=(0,i.resolveUrl)(this.opts.uriResolver,y,v.$ref);x=h.call(this,b,E)}let{schemaId:w}=this.opts;if(x=x||new s({schema:v,schemaId:w,root:b,baseId:y}),x.schema!==x.root.schema)return x}}),lie=V((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}}),die=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=o2();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),pie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=Vh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=Ve();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=O$(),i=Gh(),a=l2(),o=C$(),s=Ve(),c=Bh(),u=Ch(),l=lt(),d=lie(),p=die(),f=(F,I)=>new RegExp(F,I);f.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],_=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."},m={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},y=200;function v(F){var I,D,C,$,T,N,W,K,pe,ce,je,P,O,z,Z,J,ie,et,Zt,vt,yt,tt,Qr,Ct,Ta;let On=F.strict,Ia=(I=F.code)===null||I===void 0?void 0:I.optimize,Oc=Ia===!0||Ia===void 0?1:Ia||0,Cc=(C=(D=F.code)===null||D===void 0?void 0:D.regExp)!==null&&C!==void 0?C:f,Og=($=F.uriResolver)!==null&&$!==void 0?$:p.default;return{strictSchema:(N=(T=F.strictSchema)!==null&&T!==void 0?T:On)!==null&&N!==void 0?N:!0,strictNumbers:(K=(W=F.strictNumbers)!==null&&W!==void 0?W:On)!==null&&K!==void 0?K:!0,strictTypes:(ce=(pe=F.strictTypes)!==null&&pe!==void 0?pe:On)!==null&&ce!==void 0?ce:"log",strictTuples:(P=(je=F.strictTuples)!==null&&je!==void 0?je:On)!==null&&P!==void 0?P:"log",strictRequired:(z=(O=F.strictRequired)!==null&&O!==void 0?O:On)!==null&&z!==void 0?z:!1,code:F.code?{...F.code,optimize:Oc,regExp:Cc}:{optimize:Oc,regExp:Cc},loopRequired:(Z=F.loopRequired)!==null&&Z!==void 0?Z:y,loopEnum:(J=F.loopEnum)!==null&&J!==void 0?J:y,meta:(ie=F.meta)!==null&&ie!==void 0?ie:!0,messages:(et=F.messages)!==null&&et!==void 0?et:!0,inlineRefs:(Zt=F.inlineRefs)!==null&&Zt!==void 0?Zt:!0,schemaId:(vt=F.schemaId)!==null&&vt!==void 0?vt:"$id",addUsedSchema:(yt=F.addUsedSchema)!==null&&yt!==void 0?yt:!0,validateSchema:(tt=F.validateSchema)!==null&&tt!==void 0?tt:!0,validateFormats:(Qr=F.validateFormats)!==null&&Qr!==void 0?Qr:!0,unicodeRegExp:(Ct=F.unicodeRegExp)!==null&&Ct!==void 0?Ct:!0,int32range:(Ta=F.int32range)!==null&&Ta!==void 0?Ta:!0,uriResolver:Og}}class b{constructor(I={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,I=this.opts={...I,...v(I)};let{es5:D,lines:C}=this.opts.code;this.scope=new s.ValueScope({scope:{},prefixes:_,es5:D,lines:C}),this.logger=q(I.logger);let $=I.validateFormats;I.validateFormats=!1,this.RULES=(0,a.getRules)(),S.call(this,g,I,"NOT SUPPORTED"),S.call(this,m,I,"DEPRECATED","warn"),this._metaOpts=A.call(this),I.formats&&E.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),I.keywords&&R.call(this,I.keywords),typeof I.meta=="object"&&this.addMetaSchema(I.meta),w.call(this),I.validateFormats=$}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:I,meta:D,schemaId:C}=this.opts,$=d;C==="id"&&($={...d},$.id=$.$id,delete $.$id),D&&I&&this.addMetaSchema($,$[C],!1)}defaultMeta(){let{meta:I,schemaId:D}=this.opts;return this.opts.defaultMeta=typeof I=="object"?I[D]||I:void 0}validate(I,D){let C;if(typeof I=="string"){if(C=this.getSchema(I),!C)throw new Error(`no schema with key or ref "${I}"`)}else C=this.compile(I);let $=C(D);return"$async"in C||(this.errors=C.errors),$}compile(I,D){let C=this._addSchema(I,D);return C.validate||this._compileSchemaEnv(C)}compileAsync(I,D){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:C}=this.opts;return $.call(this,I,D);async function $(ce,je){await T.call(this,ce.$schema);let P=this._addSchema(ce,je);return P.validate||N.call(this,P)}async function T(ce){ce&&!this.getSchema(ce)&&await $.call(this,{$ref:ce},!0)}async function N(ce){try{return this._compileSchemaEnv(ce)}catch(je){if(!(je instanceof i.default))throw je;return W.call(this,je),await K.call(this,je.missingSchema),N.call(this,ce)}}function W({missingSchema:ce,missingRef:je}){if(this.refs[ce])throw new Error(`AnySchema ${ce} is loaded but ${je} cannot be resolved`)}async function K(ce){let je=await pe.call(this,ce);this.refs[ce]||await T.call(this,je.$schema),this.refs[ce]||this.addSchema(je,ce,D)}async function pe(ce){let je=this._loading[ce];if(je)return je;try{return await(this._loading[ce]=C(ce))}finally{delete this._loading[ce]}}}addSchema(I,D,C,$=this.opts.validateSchema){if(Array.isArray(I)){for(let N of I)this.addSchema(N,void 0,C,$);return this}let T;if(typeof I=="object"){let{schemaId:N}=this.opts;if(T=I[N],T!==void 0&&typeof T!="string")throw new Error(`schema ${N} must be string`)}return D=(0,c.normalizeId)(D||T),this._checkUnique(D),this.schemas[D]=this._addSchema(I,C,D,$,!0),this}addMetaSchema(I,D,C=this.opts.validateSchema){return this.addSchema(I,D,!0,C),this}validateSchema(I,D){if(typeof I=="boolean")return!0;let C;if(C=I.$schema,C!==void 0&&typeof C!="string")throw new Error("$schema must be a string");if(C=C||this.opts.defaultMeta||this.defaultMeta(),!C)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let $=this.validate(C,I);if(!$&&D){let T="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(T);else throw new Error(T)}return $}getSchema(I){let D;for(;typeof(D=x.call(this,I))=="string";)I=D;if(D===void 0){let{schemaId:C}=this.opts,$=new o.SchemaEnv({schema:{},schemaId:C});if(D=o.resolveSchema.call(this,$,I),!D)return;this.refs[I]=D}return D.validate||this._compileSchemaEnv(D)}removeSchema(I){if(I instanceof RegExp)return this._removeAllSchemas(this.schemas,I),this._removeAllSchemas(this.refs,I),this;switch(typeof I){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let D=x.call(this,I);return typeof D=="object"&&this._cache.delete(D.schema),delete this.schemas[I],delete this.refs[I],this}case"object":{let D=I;this._cache.delete(D);let C=I[this.opts.schemaId];return C&&(C=(0,c.normalizeId)(C),delete this.schemas[C],delete this.refs[C]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(I){for(let D of I)this.addKeyword(D);return this}addKeyword(I,D){let C;if(typeof I=="string")C=I,typeof D=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),D.keyword=C);else if(typeof I=="object"&&D===void 0){if(D=I,C=D.keyword,Array.isArray(C)&&!C.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(U.call(this,C,D),!D)return(0,l.eachItem)(C,T=>Y.call(this,T)),this;Qe.call(this,D);let $={...D,type:(0,u.getJSONTypes)(D.type),schemaType:(0,u.getJSONTypes)(D.schemaType)};return(0,l.eachItem)(C,$.type.length===0?T=>Y.call(this,T,$):T=>$.type.forEach(N=>Y.call(this,T,$,N))),this}getKeyword(I){let D=this.RULES.all[I];return typeof D=="object"?D.definition:!!D}removeKeyword(I){let{RULES:D}=this;delete D.keywords[I],delete D.all[I];for(let C of D.rules){let $=C.rules.findIndex(T=>T.keyword===I);$>=0&&C.rules.splice($,1)}return this}addFormat(I,D){return typeof D=="string"&&(D=new RegExp(D)),this.formats[I]=D,this}errorsText(I=this.errors,{separator:D=", ",dataVar:C="data"}={}){return!I||I.length===0?"No errors":I.map($=>`${C}${$.instancePath} ${$.message}`).reduce(($,T)=>$+D+T)}$dataMetaSchema(I,D){let C=this.RULES.all;I=JSON.parse(JSON.stringify(I));for(let $ of D){let T=$.split("/").slice(1),N=I;for(let W of T)N=N[W];for(let W in C){let K=C[W];if(typeof K!="object")continue;let{$data:pe}=K.definition,ce=N[W];pe&&ce&&(N[W]=fe(ce))}}return I}_removeAllSchemas(I,D){for(let C in I){let $=I[C];(!D||D.test(C))&&(typeof $=="string"?delete I[C]:$&&!$.meta&&(this._cache.delete($.schema),delete I[C]))}}_addSchema(I,D,C,$=this.opts.validateSchema,T=this.opts.addUsedSchema){let N,{schemaId:W}=this.opts;if(typeof I=="object")N=I[W];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof I!="boolean")throw new Error("schema must be object or boolean")}let K=this._cache.get(I);if(K!==void 0)return K;C=(0,c.normalizeId)(N||C);let pe=c.getSchemaRefs.call(this,I,C);return K=new o.SchemaEnv({schema:I,schemaId:W,meta:D,baseId:C,localRefs:pe}),this._cache.set(K.schema,K),T&&!C.startsWith("#")&&(C&&this._checkUnique(C),this.refs[C]=K),$&&this.validateSchema(I,!0),K}_checkUnique(I){if(this.schemas[I]||this.refs[I])throw new Error(`schema with key or id "${I}" already exists`)}_compileSchemaEnv(I){if(I.meta?this._compileMetaSchema(I):o.compileSchema.call(this,I),!I.validate)throw new Error("ajv implementation error");return I.validate}_compileMetaSchema(I){let D=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,I)}finally{this.opts=D}}}b.ValidationError=n.default,b.MissingRefError=i.default,t.default=b;function S(F,I,D,C="error"){for(let $ in F){let T=$;T in I&&this.logger[C](`${D}: option ${$}. ${F[T]}`)}}function x(F){return F=(0,c.normalizeId)(F),this.schemas[F]||this.refs[F]}function w(){let F=this.opts.schemas;if(F)if(Array.isArray(F))this.addSchema(F);else for(let I in F)this.addSchema(F[I],I)}function E(){for(let F in this.opts.formats){let I=this.opts.formats[F];I&&this.addFormat(F,I)}}function R(F){if(Array.isArray(F)){this.addVocabulary(F);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let I in F){let D=F[I];D.keyword||(D.keyword=I),this.addKeyword(D)}}function A(){let F={...this.opts};for(let I of h)delete F[I];return F}var M={log(){},warn(){},error(){}};function q(F){if(F===!1)return M;if(F===void 0)return console;if(F.log&&F.warn&&F.error)return F;throw new Error("logger must implement log, warn and error methods")}var B=/^[a-z_$][a-z0-9_$:-]*$/i;function U(F,I){let{RULES:D}=this;if((0,l.eachItem)(F,C=>{if(D.keywords[C])throw new Error(`Keyword ${C} is already defined`);if(!B.test(C))throw new Error(`Keyword ${C} has invalid name`)}),!!I&&I.$data&&!("code"in I||"validate"in I))throw new Error('$data keyword must have "code" or "validate" function')}function Y(F,I,D){var C;let $=I?.post;if(D&&$)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:T}=this,N=$?T.post:T.rules.find(({type:K})=>K===D);if(N||(N={type:D,rules:[]},T.rules.push(N)),T.keywords[F]=!0,!I)return;let W={keyword:F,definition:{...I,type:(0,u.getJSONTypes)(I.type),schemaType:(0,u.getJSONTypes)(I.schemaType)}};I.before?me.call(this,N,W,I.before):N.rules.push(W),T.all[F]=W,(C=I.implements)===null||C===void 0||C.forEach(K=>this.addKeyword(K))}function me(F,I,D){let C=F.rules.findIndex($=>$.keyword===D);C>=0?F.rules.splice(C,0,I):(F.rules.push(I),this.logger.warn(`rule ${D} is not defined`))}function Qe(F){let{metaSchema:I}=F;I!==void 0&&(F.$data&&this.opts.$data&&(I=fe(I)),F.validateSchema=this.compile(I,!0))}var mt={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function fe(F){return{anyOf:[F,mt]}}}),fie=V(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}),mie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=Gh(),r=Qn(),n=Ve(),i=Ea(),a=C$(),o=lt(),s={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:f}=l,{baseId:h,schemaEnv:_,validateName:g,opts:m,self:y}=f,{root:v}=_;if((p==="#"||p==="#/")&&h===v.baseId)return S();let b=a.resolveRef.call(y,v,h,p);if(b===void 0)throw new e.default(f.opts.uriResolver,h,p);if(b instanceof a.SchemaEnv)return x(b);return w(b);function S(){if(_===v)return u(l,g,_,_.$async);let E=d.scopeValue("root",{ref:v});return u(l,(0,n._)`${E}.validate`,v,v.$async)}function x(E){let R=c(l,E);u(l,R,E,E.$async)}function w(E){let R=d.scopeValue("schema",m.code.source===!0?{ref:E,code:(0,n.stringify)(E)}:{ref:E}),A=d.name("valid"),M=l.subschema({schema:E,dataTypes:[],schemaPath:n.nil,topSchemaRef:R,errSchemaPath:p},A);l.mergeEvaluated(M),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:h,it:_}=l,{allErrors:g,schemaEnv:m,opts:y}=_,v=y.passContext?i.default.this:n.nil;f?b():S();function b(){if(!m.$async)throw new Error("async schema referenced by sync schema");let E=h.let("valid");h.try(()=>{h.code((0,n._)`await ${(0,r.callValidateCode)(l,d,v)}`),w(d),g||h.assign(E,!0)},R=>{h.if((0,n._)`!(${R} instanceof ${_.ValidationError})`,()=>h.throw(R)),x(R),g||h.assign(E,!1)}),l.ok(E)}function S(){l.result((0,r.callValidateCode)(l,d,v),()=>w(d),()=>x(d))}function x(E){let R=(0,n._)`${E}.errors`;h.assign(i.default.vErrors,(0,n._)`${i.default.vErrors} === null ? ${R} : ${i.default.vErrors}.concat(${R})`),h.assign(i.default.errors,(0,n._)`${i.default.vErrors}.length`)}function w(E){var R;if(!_.opts.unevaluated)return;let A=(R=p?.validate)===null||R===void 0?void 0:R.evaluated;if(_.props!==!0)if(A&&!A.dynamicProps)A.props!==void 0&&(_.props=o.mergeEvaluated.props(h,A.props,_.props));else{let M=h.var("props",(0,n._)`${E}.evaluated.props`);_.props=o.mergeEvaluated.props(h,M,_.props,n.Name)}if(_.items!==!0)if(A&&!A.dynamicItems)A.items!==void 0&&(_.items=o.mergeEvaluated.items(h,A.items,_.items));else{let M=h.var("items",(0,n._)`${E}.evaluated.items`);_.items=o.mergeEvaluated.items(h,M,_.items,n.Name)}}}t.callRef=u,t.default=s}),hie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=fie(),r=mie(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),gie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),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:s})=>(0,e.str)`must be ${n[o].okStr} ${s}`,params:({keyword:o,schemaCode:s})=>(0,e._)`{comparison: ${n[o].okStr}, limit: ${s}}`},a={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u}=o;o.fail$data((0,e._)`${c} ${n[s].fail} ${u} || isNaN(${c})`)}};t.default=a}),vie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),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:a,data:o,schemaCode:s,it:c}=i,u=c.opts.multipleOfPrecision,l=a.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;i.fail$data((0,e._)`(${s} === 0 || (${l} = ${o}/${s}, ${d}))`)}};t.default=n}),yie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,i=0,a=0,o;for(;a=55296&&o<=56319&&a{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r=lt(),n=yie(),i={message({keyword:o,schemaCode:s}){let c=o==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${s} characters`},params:({schemaCode:o})=>(0,e._)`{limit: ${o}}`},a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u,it:l}=o,d=s==="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=a}),bie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Qn(),r=Ve(),n={message:({schemaCode:a})=>(0,r.str)`must match pattern "${a}"`,params:({schemaCode:a})=>(0,r._)`{pattern: ${a}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n,code(a){let{data:o,$data:s,schema:c,schemaCode:u,it:l}=a,d=l.opts.unicodeRegExp?"u":"",p=s?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(a,c);a.fail$data((0,r._)`!${p}.test(${o})`)}};t.default=i}),xie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r={message({keyword:i,schemaCode:a}){let o=i==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} properties`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxProperties"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`Object.keys(${o}).length ${c} ${s}`)}};t.default=n}),Sie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Qn(),r=Ve(),n=lt(),i={message:({params:{missingProperty:o}})=>(0,r.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,r._)`{missingProperty: ${o}}`},a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,schema:c,schemaCode:u,data:l,$data:d,it:p}=o,{opts:f}=p;if(!d&&c.length===0)return;let h=c.length>=f.loopRequired;if(p.allErrors?_():g(),f.strictRequired){let v=o.parentSchema.properties,{definedProperties:b}=o.it;for(let S of c)if(v?.[S]===void 0&&!b.has(S)){let x=p.schemaEnv.baseId+p.errSchemaPath,w=`required property "${S}" is not defined at "${x}" (strictRequired)`;(0,n.checkStrictMode)(p,w,p.opts.strictRequired)}}function _(){if(h||d)o.block$data(r.nil,m);else for(let v of c)(0,e.checkReportMissingProp)(o,v)}function g(){let v=s.let("missing");if(h||d){let b=s.let("valid",!0);o.block$data(b,()=>y(v,b)),o.ok(b)}else s.if((0,e.checkMissingProp)(o,c,v)),(0,e.reportMissingProp)(o,v),s.else()}function m(){s.forOf("prop",u,v=>{o.setParams({missingProperty:v}),s.if((0,e.noPropertyInData)(s,l,v,f.ownProperties),()=>o.error())})}function y(v,b){o.setParams({missingProperty:v}),s.forOf(v,u,()=>{s.assign(b,(0,e.propertyInData)(s,l,v,f.ownProperties)),s.if((0,r.not)(b),()=>{o.error(),s.break()})},r.nil)}}};t.default=a}),wie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r={message({keyword:i,schemaCode:a}){let o=i==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} items`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxItems"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`${o}.length ${c} ${s}`)}};t.default=n}),N$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=qh();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),$ie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ch(),r=Ve(),n=lt(),i=N$(),a={message:({params:{i:s,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${s} are identical)`,params:({params:{i:s,j:c}})=>(0,r._)`{i: ${s}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:a,code(s){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:f,it:h}=s;if(!l&&!d)return;let _=c.let("valid"),g=p.items?(0,e.getSchemaTypes)(p.items):[];s.block$data(_,m,(0,r._)`${f} === false`),s.ok(_);function m(){let S=c.let("i",(0,r._)`${u}.length`),x=c.let("j");s.setParams({i:S,j:x}),c.assign(_,!0),c.if((0,r._)`${S} > 1`,()=>(y()?v:b)(S,x))}function y(){return g.length>0&&!g.some(S=>S==="object"||S==="array")}function v(S,x){let w=c.name("item"),E=(0,e.checkDataTypes)(g,w,h.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${S}--;`,()=>{c.let(w,(0,r._)`${u}[${S}]`),c.if(E,(0,r._)`continue`),g.length>1&&c.if((0,r._)`typeof ${w} == "string"`,(0,r._)`${w} += "_"`),c.if((0,r._)`typeof ${R}[${w}] == "number"`,()=>{c.assign(x,(0,r._)`${R}[${w}]`),s.error(),c.assign(_,!1).break()}).code((0,r._)`${R}[${w}] = ${S}`)})}function b(S,x){let w=(0,n.useFunc)(c,i.default),E=c.name("outer");c.label(E).for((0,r._)`;${S}--;`,()=>c.for((0,r._)`${x} = ${S}; ${x}--;`,()=>c.if((0,r._)`${w}(${u}[${S}], ${u}[${x}])`,()=>{s.error(),c.assign(_,!1).break(E)})))}}};t.default=o}),Eie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r=lt(),n=N$(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,e._)`{allowedValue: ${o}}`},a={keyword:"const",$data:!0,error:i,code(o){let{gen:s,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,e._)`!${(0,r.useFunc)(s,n.default)}(${c}, ${l})`):o.fail((0,e._)`${d} !== ${c}`)}};t.default=a}),kie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r=lt(),n=N$(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,e._)`{allowedValues: ${o}}`},a={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,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,h,_=()=>h??(h=(0,r.useFunc)(s,n.default)),g;if(f||u)g=s.let("valid"),o.block$data(g,m);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let v=s.const("vSchema",d);g=(0,e.or)(...l.map((b,S)=>y(v,S)))}o.pass(g);function m(){s.assign(g,!1),s.forOf("v",d,v=>s.if((0,e._)`${_()}(${c}, ${v})`,()=>s.assign(g,!0).break()))}function y(v,b){let S=l[b];return typeof S=="object"&&S!==null?(0,e._)`${_()}(${c}, ${v}[${b}])`:(0,e._)`${c} === ${S}`}}};t.default=a}),Tie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=gie(),r=vie(),n=_ie(),i=bie(),a=xie(),o=Sie(),s=wie(),c=$ie(),u=Eie(),l=kie(),d=[e.default,r.default,n.default,i.default,a.default,o.default,s.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),p2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=Ve(),r=lt(),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:s,it:c}=o,{items:u}=s;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}a(o,u)}};function a(o,s){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:s.length}),o.pass((0,e._)`${f} <= ${s.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let _=c.var("valid",(0,e._)`${f} <= ${s.length}`);c.if((0,e.not)(_),()=>h(_)),o.ok(_)}function h(_){c.forRange("i",s.length,f,g=>{o.subschema({keyword:d,dataProp:g,dataPropType:r.Type.Num},_),p.allErrors||c.if((0,e.not)(_),()=>c.break())})}}t.validateAdditionalItems=a,t.default=i}),f2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=Ve(),r=lt(),n=Qn(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:s,it:c}=o;if(Array.isArray(s))return a(o,"additionalItems",s);c.items=!0,!(0,r.alwaysValidSchema)(c,s)&&o.ok((0,n.validateArray)(o))}};function a(o,s,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 h=u.name("valid"),_=u.const("len",(0,e._)`${d}.length`);c.forEach((m,y)=>{(0,r.alwaysValidSchema)(f,m)||(u.if((0,e._)`${_} > ${y}`,()=>o.subschema({keyword:p,schemaProp:y,dataProp:y},h)),o.ok(h))});function g(m){let{opts:y,errSchemaPath:v}=f,b=c.length,S=b===m.minItems&&(b===m.maxItems||m[s]===!1);if(y.strictTuples&&!S){let x=`"${p}" is ${b}-tuple, but minItems or maxItems/${s} are not specified or different at path "${v}"`;(0,r.checkStrictMode)(f,x,y.strictTuples)}}}t.validateTuple=a,t.default=i}),Iie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=f2(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),Pie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r=lt(),n=Qn(),i=p2(),a={message:({params:{len:s}})=>(0,e.str)`must NOT have more than ${s} items`,params:({params:{len:s}})=>(0,e._)`{limit: ${s}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:a,code(s){let{schema:c,parentSchema:u,it:l}=s,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(s,d):s.ok((0,n.validateArray)(s)))}};t.default=o}),Rie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r=lt(),n={message:({params:{min:a,max:o}})=>o===void 0?(0,e.str)`must contain at least ${a} valid item(s)`:(0,e.str)`must contain at least ${a} and no more than ${o} valid item(s)`,params:({params:{min:a,max:o}})=>o===void 0?(0,e._)`{minContains: ${a}}`:(0,e._)`{minContains: ${a}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,data:u,it:l}=a,d,p,{minContains:f,maxContains:h}=c;l.opts.next?(d=f===void 0?1:f,p=h):d=1;let _=o.const("len",(0,e._)`${u}.length`);if(a.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'),a.fail();return}if((0,r.alwaysValidSchema)(l,s)){let b=(0,e._)`${_} >= ${d}`;p!==void 0&&(b=(0,e._)`${b} && ${_} <= ${p}`),a.pass(b);return}l.items=!0;let g=o.name("valid");p===void 0&&d===1?y(g,()=>o.if(g,()=>o.break())):d===0?(o.let(g,!0),p!==void 0&&o.if((0,e._)`${u}.length > 0`,m)):(o.let(g,!1),m()),a.result(g,()=>a.reset());function m(){let b=o.name("_valid"),S=o.let("count",0);y(b,()=>o.if(b,()=>v(S)))}function y(b,S){o.forRange("i",0,_,x=>{a.subschema({keyword:"contains",dataProp:x,dataPropType:r.Type.Num,compositeRule:!0},b),S()})}function v(b){o.code((0,e._)`${b}++`),p===void 0?o.if((0,e._)`${b} >= ${d}`,()=>o.assign(g,!0).break()):(o.if((0,e._)`${b} > ${p}`,()=>o.assign(g,!1).break()),d===1?o.assign(g,!0):o.if((0,e._)`${b} >= ${d}`,()=>o.assign(g,!0)))}}};t.default=i}),Oie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=Ve(),r=lt(),n=Qn();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]=a(c);o(c,u),s(c,l)}};function a({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 h in u){let _=u[h];if(_.length===0)continue;let y=(0,n.propertyInData)(l,d,h,p.opts.ownProperties);c.setParams({property:h,depsCount:_.length,deps:_.join(", ")}),p.allErrors?l.if(y,()=>{for(let m of _)(0,n.checkReportMissingProp)(c,m)}):(l.if((0,e._)`${y} && (${(0,n.checkMissingProp)(c,_,f)})`),(0,n.reportMissingProp)(c,f),l.else())}}t.validatePropertyDeps=o;function s(c,u=c.schema){let{gen:l,data:d,keyword:p,it:f}=c,h=l.name("valid");for(let _ in u)(0,r.alwaysValidSchema)(f,u[_])||(l.if((0,n.propertyInData)(l,d,_,f.opts.ownProperties),()=>{let y=c.subschema({keyword:p,schemaProp:_},h);c.mergeValidEvaluated(y,h)},()=>l.var(h,!0)),c.ok(h))}t.validateSchemaDeps=s,t.default=i}),xie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n={message:"property name must be valid",params:({params:a})=>(0,e._)`{propertyName: ${a.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(a){let{gen:o,schema:s,data:c,it:u}=a;if((0,r.alwaysValidSchema)(u,s))return;let l=o.name("valid");o.forIn("key",c,d=>{a.setParams({propertyName:d}),a.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,e.not)(l),()=>{a.error(!0),u.allErrors||o.break()})}),a.ok(l)}};t.default=i}),l2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r=Be(),n=ka(),i=lt(),a={message:"must NOT have additional properties",params:({params:s})=>(0,r._)`{additionalProperty: ${s.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:a,code(s){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:f}=s;if(!p)throw new Error("ajv implementation error");let{allErrors:h,opts:_}=f;if(f.props=!0,_.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(f,u))return;let y=(0,e.allSchemaProperties)(l.properties),m=(0,e.allSchemaProperties)(l.patternProperties);v(),s.ok((0,r._)`${p} === ${n.default.errors}`);function v(){c.forIn("key",d,w=>{!y.length&&!m.length?S(w):c.if(g(w),()=>S(w))})}function g(w){let E;if(y.length>8){let O=(0,i.schemaRefOrVal)(f,l.properties,"properties");E=(0,e.isOwnProperty)(c,O,w)}else y.length?E=(0,r.or)(...y.map(O=>(0,r._)`${w} === ${O}`)):E=r.nil;return m.length&&(E=(0,r.or)(E,...m.map(O=>(0,r._)`${(0,e.usePattern)(s,O)}.test(${w})`))),(0,r.not)(E)}function b(w){c.code((0,r._)`delete ${d}[${w}]`)}function S(w){if(_.removeAdditional==="all"||_.removeAdditional&&u===!1){b(w);return}if(u===!1){s.setParams({additionalProperty:w}),s.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(f,u)){let E=c.name("valid");_.removeAdditional==="failing"?(x(w,E,!1),c.if((0,r.not)(E),()=>{s.reset(),b(w)})):(x(w,E),h||c.if((0,r.not)(E),()=>c.break()))}}function x(w,E,O){let A={keyword:"additionalProperties",dataProp:w,dataPropType:i.Type.Str};O===!1&&Object.assign(A,{compositeRule:!0,createErrors:!1,allErrors:!1}),s.subschema(A,E)}}};t.default=o}),Sie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Zh(),r=Xn(),n=lt(),i=l2(),a={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:s,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 m of p)d.definedProperties.add(m);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=n.mergeEvaluated.props(s,(0,n.toHash)(p),d.props));let f=p.filter(m=>!(0,n.alwaysValidSchema)(d,c[m]));if(f.length===0)return;let h=s.name("valid");for(let m of f)_(m)?y(m):(s.if((0,r.propertyInData)(s,l,m,d.opts.ownProperties)),y(m),d.allErrors||s.else().var(h,!0),s.endIf()),o.it.definedProperties.add(m),o.ok(h);function _(m){return d.opts.useDefaults&&!d.compositeRule&&c[m].default!==void 0}function y(m){o.subschema({keyword:"properties",schemaProp:m,dataProp:m},h)}}};t.default=a}),wie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r=Be(),n=lt(),i=lt(),a={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:s,schema:c,data:u,parentSchema:l,it:d}=o,{opts:p}=d,f=(0,e.allSchemaProperties)(c),h=f.filter(S=>(0,n.alwaysValidSchema)(d,c[S]));if(f.length===0||h.length===f.length&&(!d.opts.unevaluated||d.props===!0))return;let _=p.strictSchema&&!p.allowMatchingProperties&&l.properties,y=s.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,i.evaluatedPropsToName)(s,d.props));let{props:m}=d;v();function v(){for(let S of f)_&&g(S),d.allErrors?b(S):(s.var(y,!0),b(S),s.if(y))}function g(S){for(let x in _)new RegExp(S).test(x)&&(0,n.checkStrictMode)(d,`property ${x} matches pattern ${S} (use allowMatchingProperties)`)}function b(S){s.forIn("key",u,x=>{s.if((0,r._)`${(0,e.usePattern)(o,S)}.test(${x})`,()=>{let w=h.includes(S);w||o.subschema({keyword:"patternProperties",schemaProp:S,dataProp:x,dataPropType:i.Type.Str},y),d.opts.unevaluated&&m!==!0?s.assign((0,r._)`${m}[${x}]`,!0):!w&&!d.allErrors&&s.if((0,r.not)(y),()=>s.break())})})}}};t.default=a}),$ie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lt(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:i,schema:a,it:o}=n;if((0,e.alwaysValidSchema)(o,a)){n.fail();return}let s=i.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),n.failResult(s,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),Eie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),kie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n={message:"must match exactly one schema in oneOf",params:({params:a})=>(0,e._)`{passingSchemas: ${a.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,it:u}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=s,d=o.let("valid",!1),p=o.let("passing",null),f=o.name("_valid");a.setParams({passing:p}),o.block(h),a.result(d,()=>a.reset(),()=>a.error(!0));function h(){l.forEach((_,y)=>{let m;(0,r.alwaysValidSchema)(u,_)?o.var(f,!0):m=a.subschema({keyword:"oneOf",schemaProp:y,compositeRule:!0},f),y>0&&o.if((0,e._)`${f} && ${d}`).assign(d,!1).assign(p,(0,e._)`[${p}, ${y}]`).else(),o.if(f,()=>{o.assign(d,!0),o.assign(p,y),m&&a.mergeEvaluated(m,e.Name)})})}}};t.default=i}),Tie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lt(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:i,schema:a,it:o}=n;if(!Array.isArray(a))throw new Error("ajv implementation error");let s=i.name("valid");a.forEach((c,u)=>{if((0,e.alwaysValidSchema)(o,c))return;let l=n.subschema({keyword:"allOf",schemaProp:u},s);n.ok(s),n.mergeEvaluated(l)})}};t.default=r}),Iie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),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:s,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=a(u,"then"),d=a(u,"else");if(!l&&!d)return;let p=s.let("valid",!0),f=s.name("_valid");if(h(),o.reset(),l&&d){let y=s.let("ifClause");o.setParams({ifClause:y}),s.if(f,_("then",y),_("else",y))}else l?s.if(f,_("then")):s.if((0,e.not)(f),_("else"));o.pass(p,()=>o.error(!0));function h(){let y=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},f);o.mergeEvaluated(y)}function _(y,m){return()=>{let v=o.subschema({keyword:y},f);s.assign(p,f),o.mergeValidEvaluated(v,p),m?s.assign(m,(0,e._)`${y}`):o.setParams({ifClause:y})}}}};function a(o,s){let c=o.schema[s];return c!==void 0&&!(0,r.alwaysValidSchema)(o,c)}t.default=i}),Pie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lt(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:i,it:a}){i.if===void 0&&(0,e.checkStrictMode)(a,`"${n}" without "if" is ignored`)}};t.default=r}),Oie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=c2(),r=vie(),n=u2(),i=yie(),a=_ie(),o=bie(),s=xie(),c=l2(),u=Sie(),l=wie(),d=$ie(),p=Eie(),f=kie(),h=Tie(),_=Iie(),y=Pie();function m(v=!1){let g=[d.default,p.default,f.default,h.default,_.default,y.default,s.default,c.default,o.default,u.default,l.default];return v?g.push(r.default,i.default):g.push(e.default,n.default),g.push(a.default),g}t.default=m}),Rie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),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,a){let{gen:o,data:s,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:p,errSchemaPath:f,schemaEnv:h,self:_}=d;if(!p.validateFormats)return;c?y():m();function y(){let v=o.scopeValue("formats",{ref:_.formats,code:p.code.formats}),g=o.const("fDef",(0,e._)`${v}[${l}]`),b=o.let("fType"),S=o.let("format");o.if((0,e._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>o.assign(b,(0,e._)`${g}.type || "string"`).assign(S,(0,e._)`${g}.validate`),()=>o.assign(b,(0,e._)`"string"`).assign(S,g)),i.fail$data((0,e.or)(x(),w()));function x(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${S}`}function w(){let E=h.$async?(0,e._)`(${g}.async ? await ${S}(${s}) : ${S}(${s}))`:(0,e._)`${S}(${s})`,O=(0,e._)`(typeof ${S} == "function" ? ${E} : ${S}.test(${s}))`;return(0,e._)`${S} && ${S} !== true && ${b} === ${a} && !${O}`}}function m(){let v=_.formats[u];if(!v){x();return}if(v===!0)return;let[g,b,S]=w(v);g===a&&i.pass(E());function x(){if(p.strictSchema===!1){_.logger.warn(O());return}throw new Error(O());function O(){return`unknown format "${u}" ignored in schema at path "${f}"`}}function w(O){let A=O instanceof RegExp?(0,e.regexpCode)(O):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,M=o.scopeValue("formats",{key:u,ref:O,code:A});return typeof O=="object"&&!(O instanceof RegExp)?[O.type||"string",O.validate,(0,e._)`${M}.validate`]:["string",O,M]}function E(){if(typeof v=="object"&&!(v instanceof RegExp)&&v.async){if(!h.$async)throw new Error("async format in sync schema");return(0,e._)`await ${S}(${s})`}return typeof b=="function"?(0,e._)`${S}(${s})`:(0,e._)`${S}.test(${s})`}}}};t.default=n}),Cie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Rie(),r=[e.default];t.default=r}),Nie=V(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"]}),jie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=iie(),r=gie(),n=Oie(),i=Cie(),a=Nie(),o=[e.default,r.default,(0,n.default)(),i.default,a.metadataVocabulary,a.contentVocabulary];t.default=o}),Aie=V(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={}))}),Mie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=Aie(),n=P$(),i=Hh(),a=lt(),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}}`},s={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:f}=c,{oneOf:h}=p;if(!f.opts.discriminator)throw new Error("discriminator: requires discriminator option");let _=d.propertyName;if(typeof _!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let y=u.let("valid",!1),m=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(_)}`);u.if((0,e._)`typeof ${m} == "string"`,()=>v(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:m,tagName:_})),c.ok(y);function v(){let S=b();u.if(!1);for(let x in S)u.elseIf((0,e._)`${m} === ${x}`),u.assign(y,g(S[x]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:m,tagName:_}),u.endIf()}function g(S){let x=u.name("valid"),w=c.subschema({keyword:"oneOf",schemaProp:S},x);return c.mergeEvaluated(w,e.Name),x}function b(){var S;let x={},w=O(p),E=!0;for(let q=0;q{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}}),Die=V((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=tie(),n=jie(),i=Mie(),a=zie(),o=["/properties"],s="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(a,o):a;this.addMetaSchema(h,s,!1),this.refs["http://json-schema.org/schema"]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Zh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=Be();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=I$();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=Hh();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),Uie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=Die(),r=Be(),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}},a={message:({keyword:s,schemaCode:c})=>(0,r.str)`should be ${i[s].okStr} ${c}`,params:({keyword:s,schemaCode:c})=>(0,r._)`{comparison: ${i[s].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:a,code(s){let{gen:c,data:u,schemaCode:l,keyword:d,it:p}=s,{opts:f,self:h}=p;if(!f.validateFormats)return;let _=new e.KeywordCxt(p,h.RULES.all.format.definition,"format");_.$data?y():m();function y(){let g=c.scopeValue("formats",{ref:h.formats,code:f.code.formats}),b=c.const("fmt",(0,r._)`${g}[${_.schemaCode}]`);s.fail$data((0,r.or)((0,r._)`typeof ${b} != "object"`,(0,r._)`${b} instanceof RegExp`,(0,r._)`typeof ${b}.compare != "function"`,v(b)))}function m(){let g=_.schema,b=h.formats[g];if(!b||b===!0)return;if(typeof b!="object"||b instanceof RegExp||typeof b.compare!="function")throw new Error(`"${d}": format "${g}" does not define "compare" function`);let S=c.scopeValue("formats",{key:g,ref:b,code:f.code.formats?(0,r._)`${f.code.formats}${(0,r.getProperty)(g)}`:void 0});s.fail$data(v(S))}function v(g){return(0,r._)`${g}.compare(${u}, ${l}) ${i[d].fail} 0`}},dependencies:["format"]};var o=s=>(s.addKeyword(t.formatLimitDefinition),s);t.default=o}),qie=V((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=Gne(),n=Uie(),i=Be(),a=new i.Name("fullFormats"),o=new i.Name("fastFormats"),s=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,r.fullFormats,a),u;let[d,p]=l.mode==="fast"?[r.fastFormats,o]:[r.fullFormats,a],f=l.formats||r.formatNames;return c(u,f,d,p),l.keywords&&(0,n.default)(u),u};s.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,h;(f=(h=u.opts.code).formats)!==null&&f!==void 0||(h.formats=(0,i._)`require("ajv-formats/dist/formats").${p}`);for(let _ of l)u.addFormat(_,d[_])}e.exports=t=s,Object.defineProperty(t,"__esModule",{value:!0}),t.default=s}),Lie=50;function f2(t=Lie){let e=new AbortController;return(0,p2.setMaxListeners)(t,e.signal),e}var Fie=typeof global=="object"&&global&&global.Object===Object&&global,Zie=Fie,Hie=typeof self=="object"&&self&&self.Object===Object&&self,Bie=Zie||Hie||Function("return this")(),R$=Bie,Vie=R$.Symbol,Oh=Vie,v2=Object.prototype,Gie=v2.hasOwnProperty,Wie=v2.toString,id=Oh?Oh.toStringTag:void 0;function Kie(t){var e=Gie.call(t,id),r=t[id];try{t[id]=void 0;var n=!0}catch{}var i=Wie.call(t);return n&&(e?t[id]=r:delete t[id]),i}var Jie=Kie,Xie=Object.prototype,Yie=Xie.toString;function Qie(t){return Yie.call(t)}var eae=Qie,tae="[object Null]",rae="[object Undefined]",S4=Oh?Oh.toStringTag:void 0;function nae(t){return t==null?t===void 0?rae:tae:S4&&S4 in Object(t)?Jie(t):eae(t)}var iae=nae;function aae(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var y2=aae,oae="[object AsyncFunction]",sae="[object Function]",cae="[object GeneratorFunction]",uae="[object Proxy]";function lae(t){if(!y2(t))return!1;var e=iae(t);return e==sae||e==cae||e==oae||e==uae}var dae=lae,pae=R$["__core-js_shared__"],e$=pae,w4=(function(){var t=/[^.]+$/.exec(e$&&e$.keys&&e$.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function fae(t){return!!w4&&w4 in t}var mae=fae,hae=Function.prototype,gae=hae.toString;function vae(t){if(t!=null){try{return gae.call(t)}catch{}try{return t+""}catch{}}return""}var yae=vae,_ae=/[\\^$.*+?()[\]{}|]/g,bae=/^\[object .+?Constructor\]$/,xae=Function.prototype,Sae=Object.prototype,wae=xae.toString,$ae=Sae.hasOwnProperty,Eae=RegExp("^"+wae.call($ae).replace(_ae,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kae(t){if(!y2(t)||mae(t))return!1;var e=dae(t)?Eae:bae;return e.test(yae(t))}var Tae=kae;function Iae(t,e){return t?.[e]}var Pae=Iae;function Oae(t,e){var r=Pae(t,e);return Tae(r)?r:void 0}var _2=Oae,Rae=_2(Object,"create"),sd=Rae;function Cae(){this.__data__=sd?sd(null):{},this.size=0}var Nae=Cae;function jae(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Aae=jae,Mae="__lodash_hash_undefined__",zae=Object.prototype,Dae=zae.hasOwnProperty;function Uae(t){var e=this.__data__;if(sd){var r=e[t];return r===Mae?void 0:r}return Dae.call(e,t)?e[t]:void 0}var qae=Uae,Lae=Object.prototype,Fae=Lae.hasOwnProperty;function Zae(t){var e=this.__data__;return sd?e[t]!==void 0:Fae.call(e,t)}var Hae=Zae,Bae="__lodash_hash_undefined__";function Vae(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=sd&&e===void 0?Bae:e,this}var Gae=Vae;function gc(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var ooe=aoe;function soe(t,e){var r=this.__data__,n=Bh(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var coe=soe;function vc(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(a=>a.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(a=>a.startsWith("!")),n=e.some(a=>!a.startsWith("!"));if(r&&n)return null;let i=e.map(a=>a.replace(/^!/,"").toLowerCase());return{include:r?[]:i,exclude:r?i:[],isExclusive:r}});function Ioe(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let a=t.match(/^([^:[]+):/);a&&a[1]&&e.push(a[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 a=i[1].trim().toLowerCase();a.length<30&&!a.includes(" ")&&e.push(a)}return Array.from(new Set(e))}function Poe(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 Ooe(t,e){if(!e)return!0;let r=Ioe(t);return Poe(r,e)}function w2(){return process.env.CLAUDE_CONFIG_DIR??(0,x2.join)((0,S2.homedir)(),".claude")}function k4(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}var Roe={name:"BASH_MAX_OUTPUT_LENGTH",default:3e4,validate:t=>{if(!t)return{effective:3e4,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:3e4,status:"invalid",message:`Invalid value "${t}" (using default: 30000)`}:n>15e4?{effective:15e4,status:"capped",message:`Capped from ${n} to 150000`}:{effective:n,status:"valid"}}},Coe={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 Noe(){let t="";return typeof process<"u"&&typeof process.cwd=="function"&&(t=(0,E2.realpathSync)((0,$2.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,k2.randomUUID)(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[Roe,Coe],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}}var joe=Noe();function Aoe(){return joe.sessionId}function Moe({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,immediateMode:n=!1}){let i=[],a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.length!==0&&(t(i.join("")),i=[],o())}function c(){a||(a=setTimeout(s,e))}return{write(u){if(n){t(u);return}i.push(u),c(),i.length>=r&&s()},flush:s,dispose(){s()}}}var T4=new Set;function zoe(t){return T4.add(t),()=>T4.delete(t)}var Doe=xd(()=>k4(process.env.DEBUG)||k4(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||T2()||process.argv.some(t=>t.startsWith("--debug="))),Uoe=xd(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return Toe(e)}),T2=xd(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));function qoe(t){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=Uoe();return Ooe(t,e)}var Loe=!1,xh=null;function Foe(){return xh||(xh=Moe({writeFn:t=>{let e=I2();Ui().existsSync((0,yo.dirname)(e))||Ui().mkdirSync((0,yo.dirname)(e)),Ui().appendFileSync(e,t),Zoe()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Doe()}),zoe(async()=>xh?.dispose())),xh}function ba(t,{level:e}={level:"debug"}){if(!qoe(t))return;Loe&&t.includes(` + deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[u,l]=a(c);o(c,u),s(c,l)}};function a({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 h in u){let _=u[h];if(_.length===0)continue;let g=(0,n.propertyInData)(l,d,h,p.opts.ownProperties);c.setParams({property:h,depsCount:_.length,deps:_.join(", ")}),p.allErrors?l.if(g,()=>{for(let m of _)(0,n.checkReportMissingProp)(c,m)}):(l.if((0,e._)`${g} && (${(0,n.checkMissingProp)(c,_,f)})`),(0,n.reportMissingProp)(c,f),l.else())}}t.validatePropertyDeps=o;function s(c,u=c.schema){let{gen:l,data:d,keyword:p,it:f}=c,h=l.name("valid");for(let _ in u)(0,r.alwaysValidSchema)(f,u[_])||(l.if((0,n.propertyInData)(l,d,_,f.opts.ownProperties),()=>{let g=c.subschema({keyword:p,schemaProp:_},h);c.mergeValidEvaluated(g,h)},()=>l.var(h,!0)),c.ok(h))}t.validateSchemaDeps=s,t.default=i}),Cie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r=lt(),n={message:"property name must be valid",params:({params:a})=>(0,e._)`{propertyName: ${a.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(a){let{gen:o,schema:s,data:c,it:u}=a;if((0,r.alwaysValidSchema)(u,s))return;let l=o.name("valid");o.forIn("key",c,d=>{a.setParams({propertyName:d}),a.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,e.not)(l),()=>{a.error(!0),u.allErrors||o.break()})}),a.ok(l)}};t.default=i}),m2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Qn(),r=Ve(),n=Ea(),i=lt(),a={message:"must NOT have additional properties",params:({params:s})=>(0,r._)`{additionalProperty: ${s.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:a,code(s){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:f}=s;if(!p)throw new Error("ajv implementation error");let{allErrors:h,opts:_}=f;if(f.props=!0,_.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(f,u))return;let g=(0,e.allSchemaProperties)(l.properties),m=(0,e.allSchemaProperties)(l.patternProperties);y(),s.ok((0,r._)`${p} === ${n.default.errors}`);function y(){c.forIn("key",d,w=>{!g.length&&!m.length?S(w):c.if(v(w),()=>S(w))})}function v(w){let E;if(g.length>8){let R=(0,i.schemaRefOrVal)(f,l.properties,"properties");E=(0,e.isOwnProperty)(c,R,w)}else g.length?E=(0,r.or)(...g.map(R=>(0,r._)`${w} === ${R}`)):E=r.nil;return m.length&&(E=(0,r.or)(E,...m.map(R=>(0,r._)`${(0,e.usePattern)(s,R)}.test(${w})`))),(0,r.not)(E)}function b(w){c.code((0,r._)`delete ${d}[${w}]`)}function S(w){if(_.removeAdditional==="all"||_.removeAdditional&&u===!1){b(w);return}if(u===!1){s.setParams({additionalProperty:w}),s.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(f,u)){let E=c.name("valid");_.removeAdditional==="failing"?(x(w,E,!1),c.if((0,r.not)(E),()=>{s.reset(),b(w)})):(x(w,E),h||c.if((0,r.not)(E),()=>c.break()))}}function x(w,E,R){let A={keyword:"additionalProperties",dataProp:w,dataPropType:i.Type.Str};R===!1&&Object.assign(A,{compositeRule:!0,createErrors:!1,allErrors:!1}),s.subschema(A,E)}}};t.default=o}),Nie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Vh(),r=Qn(),n=lt(),i=m2(),a={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:s,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 m of p)d.definedProperties.add(m);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=n.mergeEvaluated.props(s,(0,n.toHash)(p),d.props));let f=p.filter(m=>!(0,n.alwaysValidSchema)(d,c[m]));if(f.length===0)return;let h=s.name("valid");for(let m of f)_(m)?g(m):(s.if((0,r.propertyInData)(s,l,m,d.opts.ownProperties)),g(m),d.allErrors||s.else().var(h,!0),s.endIf()),o.it.definedProperties.add(m),o.ok(h);function _(m){return d.opts.useDefaults&&!d.compositeRule&&c[m].default!==void 0}function g(m){o.subschema({keyword:"properties",schemaProp:m,dataProp:m},h)}}};t.default=a}),jie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Qn(),r=Ve(),n=lt(),i=lt(),a={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:s,schema:c,data:u,parentSchema:l,it:d}=o,{opts:p}=d,f=(0,e.allSchemaProperties)(c),h=f.filter(S=>(0,n.alwaysValidSchema)(d,c[S]));if(f.length===0||h.length===f.length&&(!d.opts.unevaluated||d.props===!0))return;let _=p.strictSchema&&!p.allowMatchingProperties&&l.properties,g=s.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,i.evaluatedPropsToName)(s,d.props));let{props:m}=d;y();function y(){for(let S of f)_&&v(S),d.allErrors?b(S):(s.var(g,!0),b(S),s.if(g))}function v(S){for(let x in _)new RegExp(S).test(x)&&(0,n.checkStrictMode)(d,`property ${x} matches pattern ${S} (use allowMatchingProperties)`)}function b(S){s.forIn("key",u,x=>{s.if((0,r._)`${(0,e.usePattern)(o,S)}.test(${x})`,()=>{let w=h.includes(S);w||o.subschema({keyword:"patternProperties",schemaProp:S,dataProp:x,dataPropType:i.Type.Str},g),d.opts.unevaluated&&m!==!0?s.assign((0,r._)`${m}[${x}]`,!0):!w&&!d.allErrors&&s.if((0,r.not)(g),()=>s.break())})})}}};t.default=a}),Aie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lt(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:i,schema:a,it:o}=n;if((0,e.alwaysValidSchema)(o,a)){n.fail();return}let s=i.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),n.failResult(s,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),Mie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Qn(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),Die=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r=lt(),n={message:"must match exactly one schema in oneOf",params:({params:a})=>(0,e._)`{passingSchemas: ${a.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,it:u}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=s,d=o.let("valid",!1),p=o.let("passing",null),f=o.name("_valid");a.setParams({passing:p}),o.block(h),a.result(d,()=>a.reset(),()=>a.error(!0));function h(){l.forEach((_,g)=>{let m;(0,r.alwaysValidSchema)(u,_)?o.var(f,!0):m=a.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),m&&a.mergeEvaluated(m,e.Name)})})}}};t.default=i}),zie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lt(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:i,schema:a,it:o}=n;if(!Array.isArray(a))throw new Error("ajv implementation error");let s=i.name("valid");a.forEach((c,u)=>{if((0,e.alwaysValidSchema)(o,c))return;let l=n.subschema({keyword:"allOf",schemaProp:u},s);n.ok(s),n.mergeEvaluated(l)})}};t.default=r}),Uie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r=lt(),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:s,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=a(u,"then"),d=a(u,"else");if(!l&&!d)return;let p=s.let("valid",!0),f=s.name("_valid");if(h(),o.reset(),l&&d){let g=s.let("ifClause");o.setParams({ifClause:g}),s.if(f,_("then",g),_("else",g))}else l?s.if(f,_("then")):s.if((0,e.not)(f),_("else"));o.pass(p,()=>o.error(!0));function h(){let g=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},f);o.mergeEvaluated(g)}function _(g,m){return()=>{let y=o.subschema({keyword:g},f);s.assign(p,f),o.mergeValidEvaluated(y,p),m?s.assign(m,(0,e._)`${g}`):o.setParams({ifClause:g})}}}};function a(o,s){let c=o.schema[s];return c!==void 0&&!(0,r.alwaysValidSchema)(o,c)}t.default=i}),qie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lt(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:i,it:a}){i.if===void 0&&(0,e.checkStrictMode)(a,`"${n}" without "if" is ignored`)}};t.default=r}),Lie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=p2(),r=Iie(),n=f2(),i=Pie(),a=Rie(),o=Oie(),s=Cie(),c=m2(),u=Nie(),l=jie(),d=Aie(),p=Mie(),f=Die(),h=zie(),_=Uie(),g=qie();function m(y=!1){let v=[d.default,p.default,f.default,h.default,_.default,g.default,s.default,c.default,o.default,u.default,l.default];return y?v.push(r.default,i.default):v.push(e.default,n.default),v.push(a.default),v}t.default=m}),Fie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),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,a){let{gen:o,data:s,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:p,errSchemaPath:f,schemaEnv:h,self:_}=d;if(!p.validateFormats)return;c?g():m();function g(){let y=o.scopeValue("formats",{ref:_.formats,code:p.code.formats}),v=o.const("fDef",(0,e._)`${y}[${l}]`),b=o.let("fType"),S=o.let("format");o.if((0,e._)`typeof ${v} == "object" && !(${v} instanceof RegExp)`,()=>o.assign(b,(0,e._)`${v}.type || "string"`).assign(S,(0,e._)`${v}.validate`),()=>o.assign(b,(0,e._)`"string"`).assign(S,v)),i.fail$data((0,e.or)(x(),w()));function x(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${S}`}function w(){let E=h.$async?(0,e._)`(${v}.async ? await ${S}(${s}) : ${S}(${s}))`:(0,e._)`${S}(${s})`,R=(0,e._)`(typeof ${S} == "function" ? ${E} : ${S}.test(${s}))`;return(0,e._)`${S} && ${S} !== true && ${b} === ${a} && !${R}`}}function m(){let y=_.formats[u];if(!y){x();return}if(y===!0)return;let[v,b,S]=w(y);v===a&&i.pass(E());function x(){if(p.strictSchema===!1){_.logger.warn(R());return}throw new Error(R());function R(){return`unknown format "${u}" ignored in schema at path "${f}"`}}function w(R){let A=R instanceof RegExp?(0,e.regexpCode)(R):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,M=o.scopeValue("formats",{key:u,ref:R,code:A});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,(0,e._)`${M}.validate`]:["string",R,M]}function E(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!h.$async)throw new Error("async format in sync schema");return(0,e._)`await ${S}(${s})`}return typeof b=="function"?(0,e._)`${S}(${s})`:(0,e._)`${S}.test(${s})`}}}};t.default=n}),Zie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Fie(),r=[e.default];t.default=r}),Hie=V(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"]}),Bie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=hie(),r=Tie(),n=Lie(),i=Zie(),a=Hie(),o=[e.default,r.default,(0,n.default)(),i.default,a.metadataVocabulary,a.contentVocabulary];t.default=o}),Vie=V(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={}))}),Gie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ve(),r=Vie(),n=C$(),i=Gh(),a=lt(),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}}`},s={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:f}=c,{oneOf:h}=p;if(!f.opts.discriminator)throw new Error("discriminator: requires discriminator option");let _=d.propertyName;if(typeof _!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let g=u.let("valid",!1),m=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(_)}`);u.if((0,e._)`typeof ${m} == "string"`,()=>y(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:m,tagName:_})),c.ok(g);function y(){let S=b();u.if(!1);for(let x in S)u.elseIf((0,e._)`${m} === ${x}`),u.assign(g,v(S[x]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:m,tagName:_}),u.endIf()}function v(S){let x=u.name("valid"),w=c.subschema({keyword:"oneOf",schemaProp:S},x);return c.mergeEvaluated(w,e.Name),x}function b(){var S;let x={},w=R(p),E=!0;for(let q=0;q{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}}),Kie=V((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=pie(),n=Bie(),i=Gie(),a=Wie(),o=["/properties"],s="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(a,o):a;this.addMetaSchema(h,s,!1),this.refs["http://json-schema.org/schema"]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Vh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=Ve();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=O$();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=Gh();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),Jie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=Kie(),r=Ve(),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}},a={message:({keyword:s,schemaCode:c})=>(0,r.str)`should be ${i[s].okStr} ${c}`,params:({keyword:s,schemaCode:c})=>(0,r._)`{comparison: ${i[s].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:a,code(s){let{gen:c,data:u,schemaCode:l,keyword:d,it:p}=s,{opts:f,self:h}=p;if(!f.validateFormats)return;let _=new e.KeywordCxt(p,h.RULES.all.format.definition,"format");_.$data?g():m();function g(){let v=c.scopeValue("formats",{ref:h.formats,code:f.code.formats}),b=c.const("fmt",(0,r._)`${v}[${_.schemaCode}]`);s.fail$data((0,r.or)((0,r._)`typeof ${b} != "object"`,(0,r._)`${b} instanceof RegExp`,(0,r._)`typeof ${b}.compare != "function"`,y(b)))}function m(){let v=_.schema,b=h.formats[v];if(!b||b===!0)return;if(typeof b!="object"||b instanceof RegExp||typeof b.compare!="function")throw new Error(`"${d}": format "${v}" does not define "compare" function`);let S=c.scopeValue("formats",{key:v,ref:b,code:f.code.formats?(0,r._)`${f.code.formats}${(0,r.getProperty)(v)}`:void 0});s.fail$data(y(S))}function y(v){return(0,r._)`${v}.compare(${u}, ${l}) ${i[d].fail} 0`}},dependencies:["format"]};var o=s=>(s.addKeyword(t.formatLimitDefinition),s);t.default=o}),Xie=V((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=iie(),n=Jie(),i=Ve(),a=new i.Name("fullFormats"),o=new i.Name("fastFormats"),s=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,r.fullFormats,a),u;let[d,p]=l.mode==="fast"?[r.fastFormats,o]:[r.fullFormats,a],f=l.formats||r.formatNames;return c(u,f,d,p),l.keywords&&(0,n.default)(u),u};s.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,h;(f=(h=u.opts.code).formats)!==null&&f!==void 0||(h.formats=(0,i._)`require("ajv-formats/dist/formats").${p}`);for(let _ of l)u.addFormat(_,d[_])}e.exports=t=s,Object.defineProperty(t,"__esModule",{value:!0}),t.default=s}),Yie=50;function v2(t=Yie){let e=new AbortController;return(0,g2.setMaxListeners)(t,e.signal),e}var Qie=typeof global=="object"&&global&&global.Object===Object&&global,eae=Qie,tae=typeof self=="object"&&self&&self.Object===Object&&self,rae=eae||tae||Function("return this")(),j$=rae,nae=j$.Symbol,Nh=nae,x2=Object.prototype,iae=x2.hasOwnProperty,aae=x2.toString,sd=Nh?Nh.toStringTag:void 0;function oae(t){var e=iae.call(t,sd),r=t[sd];try{t[sd]=void 0;var n=!0}catch{}var i=aae.call(t);return n&&(e?t[sd]=r:delete t[sd]),i}var sae=oae,cae=Object.prototype,uae=cae.toString;function lae(t){return uae.call(t)}var dae=lae,pae="[object Null]",fae="[object Undefined]",k4=Nh?Nh.toStringTag:void 0;function mae(t){return t==null?t===void 0?fae:pae:k4&&k4 in Object(t)?sae(t):dae(t)}var hae=mae;function gae(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var S2=gae,vae="[object AsyncFunction]",yae="[object Function]",_ae="[object GeneratorFunction]",bae="[object Proxy]";function xae(t){if(!S2(t))return!1;var e=hae(t);return e==yae||e==_ae||e==vae||e==bae}var Sae=xae,wae=j$["__core-js_shared__"],n$=wae,T4=(function(){var t=/[^.]+$/.exec(n$&&n$.keys&&n$.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function $ae(t){return!!T4&&T4 in t}var Eae=$ae,kae=Function.prototype,Tae=kae.toString;function Iae(t){if(t!=null){try{return Tae.call(t)}catch{}try{return t+""}catch{}}return""}var Pae=Iae,Rae=/[\\^$.*+?()[\]{}|]/g,Oae=/^\[object .+?Constructor\]$/,Cae=Function.prototype,Nae=Object.prototype,jae=Cae.toString,Aae=Nae.hasOwnProperty,Mae=RegExp("^"+jae.call(Aae).replace(Rae,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Dae(t){if(!S2(t)||Eae(t))return!1;var e=Sae(t)?Mae:Oae;return e.test(Pae(t))}var zae=Dae;function Uae(t,e){return t?.[e]}var qae=Uae;function Lae(t,e){var r=qae(t,e);return zae(r)?r:void 0}var w2=Lae,Fae=w2(Object,"create"),ld=Fae;function Zae(){this.__data__=ld?ld(null):{},this.size=0}var Hae=Zae;function Bae(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Vae=Bae,Gae="__lodash_hash_undefined__",Wae=Object.prototype,Kae=Wae.hasOwnProperty;function Jae(t){var e=this.__data__;if(ld){var r=e[t];return r===Gae?void 0:r}return Kae.call(e,t)?e[t]:void 0}var Xae=Jae,Yae=Object.prototype,Qae=Yae.hasOwnProperty;function eoe(t){var e=this.__data__;return ld?e[t]!==void 0:Qae.call(e,t)}var toe=eoe,roe="__lodash_hash_undefined__";function noe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=ld&&e===void 0?roe:e,this}var ioe=noe;function xc(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var voe=goe;function yoe(t,e){var r=this.__data__,n=Wh(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var _oe=yoe;function Sc(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(a=>a.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(a=>a.startsWith("!")),n=e.some(a=>!a.startsWith("!"));if(r&&n)return null;let i=e.map(a=>a.replace(/^!/,"").toLowerCase());return{include:r?[]:i,exclude:r?i:[],isExclusive:r}});function Uoe(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let a=t.match(/^([^:[]+):/);a&&a[1]&&e.push(a[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 a=i[1].trim().toLowerCase();a.length<30&&!a.includes(" ")&&e.push(a)}return Array.from(new Set(e))}function qoe(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 Loe(t,e){if(!e)return!0;let r=Uoe(t);return qoe(r,e)}function T2(){return process.env.CLAUDE_CONFIG_DIR??(0,E2.join)((0,k2.homedir)(),".claude")}function R4(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}var Foe={name:"BASH_MAX_OUTPUT_LENGTH",default:3e4,validate:t=>{if(!t)return{effective:3e4,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:3e4,status:"invalid",message:`Invalid value "${t}" (using default: 30000)`}:n>15e4?{effective:15e4,status:"capped",message:`Capped from ${n} to 150000`}:{effective:n,status:"valid"}}},Zoe={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 Hoe(){let t="";return typeof process<"u"&&typeof process.cwd=="function"&&(t=(0,P2.realpathSync)((0,I2.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,R2.randomUUID)(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[Foe,Zoe],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}}var Boe=Hoe();function Voe(){return Boe.sessionId}function Goe({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,immediateMode:n=!1}){let i=[],a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.length!==0&&(t(i.join("")),i=[],o())}function c(){a||(a=setTimeout(s,e))}return{write(u){if(n){t(u);return}i.push(u),c(),i.length>=r&&s()},flush:s,dispose(){s()}}}var O4=new Set;function Woe(t){return O4.add(t),()=>O4.delete(t)}var Koe=$d(()=>R4(process.env.DEBUG)||R4(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||O2()||process.argv.some(t=>t.startsWith("--debug="))),Joe=$d(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return zoe(e)}),O2=$d(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));function Xoe(t){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=Joe();return Loe(t,e)}var Yoe=!1,$h=null;function Qoe(){return $h||($h=Goe({writeFn:t=>{let e=C2();Ui().existsSync((0,_o.dirname)(e))||Ui().mkdirSync((0,_o.dirname)(e)),Ui().appendFileSync(e,t),ese()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Koe()}),Woe(async()=>$h?.dispose())),$h}function _a(t,{level:e}={level:"debug"}){if(!Xoe(t))return;Yoe&&t.includes(` `)&&(t=JSON.stringify(t));let n=`${new Date().toISOString()} [${e.toUpperCase()}] ${t.trim()} -`;if(T2()){koe(n);return}Foe().write(n)}function I2(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,yo.join)(w2(),"debug",`${Aoe()}.txt`)}var Zoe=xd(()=>{if(process.argv[2]!=="--ripgrep")try{let t=I2(),e=(0,yo.dirname)(t),r=(0,yo.join)(e,"latest");if(Ui().existsSync(e)||Ui().mkdirSync(e),Ui().existsSync(r))try{Ui().unlinkSync(r)}catch{}Ui().symlinkSync(t,r)}catch{}}),Hoe=5;function Yt(t,e){let r=performance.now();try{return e()}finally{let n=performance.now()-r;n>Hoe&&ba(`[SLOW OPERATION DETECTED] fs.${t} (${n.toFixed(1)}ms)`)}}var Boe={cwd(){return process.cwd()},existsSync(t){return Yt("existsSync",()=>xe.existsSync(t))},async stat(t){return(0,g2.stat)(t)},statSync(t){return Yt("statSync",()=>xe.statSync(t))},lstatSync(t){return Yt("lstatSync",()=>xe.lstatSync(t))},readFileSync(t,e){return Yt("readFileSync",()=>xe.readFileSync(t,{encoding:e.encoding}))},readFileBytesSync(t){return Yt("readFileBytesSync",()=>xe.readFileSync(t))},readSync(t,e){return Yt("readSync",()=>{let r;try{r=xe.openSync(t,"r");let n=Buffer.alloc(e.length),i=xe.readSync(r,n,0,e.length,0);return{buffer:n,bytesRead:i}}finally{r&&xe.closeSync(r)}})},writeFileSync(t,e,r){return Yt("writeFileSync",()=>{let n=xe.existsSync(t);if(!r.flush){let a={encoding:r.encoding};n?r.mode!==void 0&&(a.mode=r.mode):a.mode=r.mode??384,xe.writeFileSync(t,e,a);return}let i;try{let a=n?r.mode:r.mode??384;i=xe.openSync(t,"w",a),xe.writeFileSync(i,e,{encoding:r.encoding}),xe.fsyncSync(i)}finally{i&&xe.closeSync(i)}})},appendFileSync(t,e,r){return Yt("appendFileSync",()=>{if(xe.existsSync(t))xe.appendFileSync(t,e);else{let n=r?.mode??384,i=xe.openSync(t,"a",n);try{xe.appendFileSync(i,e)}finally{xe.closeSync(i)}}})},copyFileSync(t,e){return Yt("copyFileSync",()=>xe.copyFileSync(t,e))},unlinkSync(t){return Yt("unlinkSync",()=>xe.unlinkSync(t))},renameSync(t,e){return Yt("renameSync",()=>xe.renameSync(t,e))},linkSync(t,e){return Yt("linkSync",()=>xe.linkSync(t,e))},symlinkSync(t,e){return Yt("symlinkSync",()=>xe.symlinkSync(t,e))},readlinkSync(t){return Yt("readlinkSync",()=>xe.readlinkSync(t))},realpathSync(t){return Yt("realpathSync",()=>xe.realpathSync(t))},mkdirSync(t){return Yt("mkdirSync",()=>{xe.existsSync(t)||xe.mkdirSync(t,{recursive:!0,mode:448})})},readdirSync(t){return Yt("readdirSync",()=>xe.readdirSync(t,{withFileTypes:!0}))},readdirStringSync(t){return Yt("readdirStringSync",()=>xe.readdirSync(t))},isDirEmptySync(t){return Yt("isDirEmptySync",()=>this.readdirSync(t).length===0)},rmdirSync(t){return Yt("rmdirSync",()=>xe.rmdirSync(t))},rmSync(t,e){return Yt("rmSync",()=>xe.rmSync(t,e))},createWriteStream(t){return xe.createWriteStream(t)}},Voe=Boe;function Ui(){return Voe}var vo=class extends Error{};function P2(){return process.versions.bun!==void 0}var Sh=null,I4=!1;function Goe(){if(I4)return Sh;if(I4=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let t=(0,o$.join)(w2(),"debug");return Sh=(0,o$.join)(t,`sdk-${(0,O2.randomUUID)()}.txt`),(0,_c.existsSync)(t)||(0,_c.mkdirSync)(t,{recursive:!0}),process.stderr.write(`SDK debug logs: ${Sh} -`),Sh}function go(t){let e=Goe();if(!e)return;let n=`${new Date().toISOString()} ${t} -`;(0,_c.appendFileSync)(e,n)}function Woe(t,e){let r={...t};if(e){let n={sandbox:e};if(r.settings)try{n={...JSON.parse(r.settings),sandbox:e}}catch{}r.settings=JSON.stringify(n)}return r}var s$=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||f2(),this.initialize()}getDefaultExecutable(){return P2()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:n,cwd:i,env:a,signal:o}=e,s=a.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=(0,m2.spawn)(r,n,{cwd:i,stdio:["pipe","pipe",s],signal:o,env:a,windowsHide:!0});return(a.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();go(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:a=[],extraArgs:o={},pathToClaudeCodeExecutable:s,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:p,fallbackModel:f,jsonSchema:h,permissionMode:_,allowDangerouslySkipPermissions:y,permissionPromptToolName:m,continueConversation:v,resume:g,settingSources:b,allowedTools:S=[],disallowedTools:x=[],tools:w,mcpServers:E,strictMcpConfig:O,canUseTool:A,includePartialMessages:M,plugins:q,sandbox:B}=this.options,U=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&U.push("--max-thinking-tokens",u.toString()),l&&U.push("--max-turns",l.toString()),d!==void 0&&U.push("--max-budget-usd",d.toString()),p&&U.push("--model",p),r&&r.length>0&&U.push("--betas",r.join(",")),h&&U.push("--json-schema",JSON.stringify(h)),c.DEBUG_CLAUDE_AGENT_SDK&&U.push("--debug-to-stderr"),A){if(m)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");U.push("--permission-prompt-tool","stdio")}else m&&U.push("--permission-prompt-tool",m);if(v&&U.push("--continue"),g&&U.push("--resume",g),S.length>0&&U.push("--allowedTools",S.join(",")),x.length>0&&U.push("--disallowedTools",x.join(",")),w!==void 0&&(Array.isArray(w)?w.length===0?U.push("--tools",""):U.push("--tools",w.join(",")):U.push("--tools","default")),E&&Object.keys(E).length>0&&U.push("--mcp-config",JSON.stringify({mcpServers:E})),b&&U.push("--setting-sources",b.join(",")),O&&U.push("--strict-mcp-config"),_&&U.push("--permission-mode",_),y&&U.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.");U.push("--fallback-model",f)}M&&U.push("--include-partial-messages");for(let I of e)U.push("--add-dir",I);if(q&&q.length>0)for(let I of q)if(I.type==="local")U.push("--plugin-dir",I.path);else throw new Error(`Unsupported plugin type: ${I.type}`);this.options.forkSession&&U.push("--fork-session"),this.options.resumeSessionAt&&U.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&U.push("--no-session-persistence");let Y=Woe(o??{},B);for(let[I,z]of Object.entries(Y))z===null?U.push(`--${I}`):U.push(`--${I}`,z);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=Koe(s),Ye=me?s:i,ft=me?[...a,...U]:[...a,s,...U],fe={command:Ye,args:ft,cwd:n,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)go(`Spawning Claude Code (custom): ${Ye} ${ft.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(fe);else{if(!Ui().existsSync(s)){let z=me?`Claude Code native binary not found at ${s}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${s}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(z)}go(`Spawning Claude Code: ${Ye} ${ft.join(" ")}`),this.process=this.spawnLocalProcess(fe)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let F=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=F,this.abortHandler=F,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",I=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new vo("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${I.message}`),go(this.exitError.message))}),this.process.on("exit",(I,z)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new vo("Claude Code process aborted by user");else{let C=this.getProcessExitError(I,z);C&&(this.exitError=C,go(C.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 vo("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}`);go(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||go("[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,h2.createInterface)({input:this.processStdout});try{for await(let r of e)r.trim()&&(yield JSON.parse(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 a=this.getProcessExitError(n,i);e(a)};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=(a,o)=>{if(this.abortController.signal.aborted){r(new vo("Operation aborted"));return}let s=this.getProcessExitError(a,o);s?r(s):e()};this.process.once("exit",n);let i=a=>{this.process.off("exit",n),r(a)};this.process.once("error",i),this.process.once("exit",()=>{this.process.off("error",i)})})}};function Koe(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(r=>t.endsWith(r))}var c$=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})}},u$=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?.())}},l$=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new c$;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,a,o=new Map,s,c){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=n,this.hooks=i,this.abortController=a,this.jsonSchema=s,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&&(ba("[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(JSON.stringify(i)+` +`;if(O2()){Doe(n);return}Qoe().write(n)}function C2(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,_o.join)(T2(),"debug",`${Voe()}.txt`)}var ese=$d(()=>{if(process.argv[2]!=="--ripgrep")try{let t=C2(),e=(0,_o.dirname)(t),r=(0,_o.join)(e,"latest");if(Ui().existsSync(e)||Ui().mkdirSync(e),Ui().existsSync(r))try{Ui().unlinkSync(r)}catch{}Ui().symlinkSync(t,r)}catch{}}),tse=5;function Yt(t,e){let r=performance.now();try{return e()}finally{let n=performance.now()-r;n>tse&&_a(`[SLOW OPERATION DETECTED] fs.${t} (${n.toFixed(1)}ms)`)}}var rse={cwd(){return process.cwd()},existsSync(t){return Yt("existsSync",()=>xe.existsSync(t))},async stat(t){return(0,b2.stat)(t)},statSync(t){return Yt("statSync",()=>xe.statSync(t))},lstatSync(t){return Yt("lstatSync",()=>xe.lstatSync(t))},readFileSync(t,e){return Yt("readFileSync",()=>xe.readFileSync(t,{encoding:e.encoding}))},readFileBytesSync(t){return Yt("readFileBytesSync",()=>xe.readFileSync(t))},readSync(t,e){return Yt("readSync",()=>{let r;try{r=xe.openSync(t,"r");let n=Buffer.alloc(e.length),i=xe.readSync(r,n,0,e.length,0);return{buffer:n,bytesRead:i}}finally{r&&xe.closeSync(r)}})},writeFileSync(t,e,r){return Yt("writeFileSync",()=>{let n=xe.existsSync(t);if(!r.flush){let a={encoding:r.encoding};n?r.mode!==void 0&&(a.mode=r.mode):a.mode=r.mode??384,xe.writeFileSync(t,e,a);return}let i;try{let a=n?r.mode:r.mode??384;i=xe.openSync(t,"w",a),xe.writeFileSync(i,e,{encoding:r.encoding}),xe.fsyncSync(i)}finally{i&&xe.closeSync(i)}})},appendFileSync(t,e,r){return Yt("appendFileSync",()=>{if(xe.existsSync(t))xe.appendFileSync(t,e);else{let n=r?.mode??384,i=xe.openSync(t,"a",n);try{xe.appendFileSync(i,e)}finally{xe.closeSync(i)}}})},copyFileSync(t,e){return Yt("copyFileSync",()=>xe.copyFileSync(t,e))},unlinkSync(t){return Yt("unlinkSync",()=>xe.unlinkSync(t))},renameSync(t,e){return Yt("renameSync",()=>xe.renameSync(t,e))},linkSync(t,e){return Yt("linkSync",()=>xe.linkSync(t,e))},symlinkSync(t,e){return Yt("symlinkSync",()=>xe.symlinkSync(t,e))},readlinkSync(t){return Yt("readlinkSync",()=>xe.readlinkSync(t))},realpathSync(t){return Yt("realpathSync",()=>xe.realpathSync(t))},mkdirSync(t){return Yt("mkdirSync",()=>{xe.existsSync(t)||xe.mkdirSync(t,{recursive:!0,mode:448})})},readdirSync(t){return Yt("readdirSync",()=>xe.readdirSync(t,{withFileTypes:!0}))},readdirStringSync(t){return Yt("readdirStringSync",()=>xe.readdirSync(t))},isDirEmptySync(t){return Yt("isDirEmptySync",()=>this.readdirSync(t).length===0)},rmdirSync(t){return Yt("rmdirSync",()=>xe.rmdirSync(t))},rmSync(t,e){return Yt("rmSync",()=>xe.rmSync(t,e))},createWriteStream(t){return xe.createWriteStream(t)}},nse=rse;function Ui(){return nse}var yo=class extends Error{};function N2(){return process.versions.bun!==void 0}var Eh=null,C4=!1;function ise(){if(C4)return Eh;if(C4=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let t=(0,u$.join)(T2(),"debug");return Eh=(0,u$.join)(t,`sdk-${(0,j2.randomUUID)()}.txt`),(0,$c.existsSync)(t)||(0,$c.mkdirSync)(t,{recursive:!0}),process.stderr.write(`SDK debug logs: ${Eh} +`),Eh}function vo(t){let e=ise();if(!e)return;let n=`${new Date().toISOString()} ${t} +`;(0,$c.appendFileSync)(e,n)}function ase(t,e){let r={...t};if(e){let n={sandbox:e};if(r.settings)try{n={...JSON.parse(r.settings),sandbox:e}}catch{}r.settings=JSON.stringify(n)}return r}var l$=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||v2(),this.initialize()}getDefaultExecutable(){return N2()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:n,cwd:i,env:a,signal:o}=e,s=a.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=(0,y2.spawn)(r,n,{cwd:i,stdio:["pipe","pipe",s],signal:o,env:a,windowsHide:!0});return(a.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();vo(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:a=[],extraArgs:o={},pathToClaudeCodeExecutable:s,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:p,fallbackModel:f,jsonSchema:h,permissionMode:_,allowDangerouslySkipPermissions:g,permissionPromptToolName:m,continueConversation:y,resume:v,settingSources:b,allowedTools:S=[],disallowedTools:x=[],tools:w,mcpServers:E,strictMcpConfig:R,canUseTool:A,includePartialMessages:M,plugins:q,sandbox:B}=this.options,U=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&U.push("--max-thinking-tokens",u.toString()),l&&U.push("--max-turns",l.toString()),d!==void 0&&U.push("--max-budget-usd",d.toString()),p&&U.push("--model",p),r&&r.length>0&&U.push("--betas",r.join(",")),h&&U.push("--json-schema",JSON.stringify(h)),c.DEBUG_CLAUDE_AGENT_SDK&&U.push("--debug-to-stderr"),A){if(m)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");U.push("--permission-prompt-tool","stdio")}else m&&U.push("--permission-prompt-tool",m);if(y&&U.push("--continue"),v&&U.push("--resume",v),S.length>0&&U.push("--allowedTools",S.join(",")),x.length>0&&U.push("--disallowedTools",x.join(",")),w!==void 0&&(Array.isArray(w)?w.length===0?U.push("--tools",""):U.push("--tools",w.join(",")):U.push("--tools","default")),E&&Object.keys(E).length>0&&U.push("--mcp-config",JSON.stringify({mcpServers:E})),b&&U.push("--setting-sources",b.join(",")),R&&U.push("--strict-mcp-config"),_&&U.push("--permission-mode",_),g&&U.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.");U.push("--fallback-model",f)}M&&U.push("--include-partial-messages");for(let I of e)U.push("--add-dir",I);if(q&&q.length>0)for(let I of q)if(I.type==="local")U.push("--plugin-dir",I.path);else throw new Error(`Unsupported plugin type: ${I.type}`);this.options.forkSession&&U.push("--fork-session"),this.options.resumeSessionAt&&U.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&U.push("--no-session-persistence");let Y=ase(o??{},B);for(let[I,D]of Object.entries(Y))D===null?U.push(`--${I}`):U.push(`--${I}`,D);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=ose(s),Qe=me?s:i,mt=me?[...a,...U]:[...a,s,...U],fe={command:Qe,args:mt,cwd:n,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)vo(`Spawning Claude Code (custom): ${Qe} ${mt.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(fe);else{if(!Ui().existsSync(s)){let D=me?`Claude Code native binary not found at ${s}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${s}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(D)}vo(`Spawning Claude Code: ${Qe} ${mt.join(" ")}`),this.process=this.spawnLocalProcess(fe)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let F=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=F,this.abortHandler=F,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",I=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new yo("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${I.message}`),vo(this.exitError.message))}),this.process.on("exit",(I,D)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new yo("Claude Code process aborted by user");else{let C=this.getProcessExitError(I,D);C&&(this.exitError=C,vo(C.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 yo("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}`);vo(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||vo("[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,_2.createInterface)({input:this.processStdout});try{for await(let r of e)r.trim()&&(yield JSON.parse(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 a=this.getProcessExitError(n,i);e(a)};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=(a,o)=>{if(this.abortController.signal.aborted){r(new yo("Operation aborted"));return}let s=this.getProcessExitError(a,o);s?r(s):e()};this.process.once("exit",n);let i=a=>{this.process.off("exit",n),r(a)};this.process.once("error",i),this.process.once("exit",()=>{this.process.off("error",i)})})}};function ose(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(r=>t.endsWith(r))}var d$=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})}},p$=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?.())}},f$=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new d$;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,a,o=new Map,s,c){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=n,this.hooks=i,this.abortController=a,this.jsonSchema=s,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&&(_a("[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(JSON.stringify(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(JSON.stringify(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[a,o]of Object.entries(this.hooks))o.length>0&&(e[a]=o.map(s=>{let c=[];for(let u of s.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,u),c.push(l)}return{matcher:s.matcher,hookCallbackIds:c,timeout:s.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){await this.request({subtype:"rewind_files",user_message_id:e})}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,a)=>{this.pendingControlResponses.set(r,o=>{o.subtype==="success"?i(o):(a(new Error(o.error)),o.pending_permission_requests&&this.processPendingPermissionRequests(o.pending_permission_requests))}),Promise.resolve(this.transport.write(JSON.stringify(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()),a=new Set(Object.keys(r));for(let c of i)a.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){ba("[Query.streamInput] Starting to process input stream");try{let r=0;for await(let n of e){if(r++,ba(`[Query.streamInput] Processing message ${r}: ${n.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(JSON.stringify(n)+` -`))}ba(`[Query.streamInput] Finished processing ${r} messages from input stream`),this.hasBidirectionalNeeds()&&(ba("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),ba("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(r){if(!(r instanceof vo))throw r}}waitForFirstResult(){return this.firstResultReceived?(ba("[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 a=this.hookCallbacks.get(e);if(!a)throw new Error(`No hook callback found for ID: ${e}`);return a(r,n,{signal:i})}connectSdkMcpServer(e,r){let n=new u$(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}`,a=this.pendingMcpResponses.get(i);if(a){a.resolve(r),this.pendingMcpResponses.delete(i);return}}let n={type:"control_request",request_id:(0,R2.randomUUID)(),request:{subtype:"mcp_message",server_name:e,message:r}};this.transport.write(JSON.stringify(n)+` -`)}handleMcpControlRequest(e,r,n){let i="id"in r.message?r.message.id:null,a=`${e}:${i}`;return new Promise((o,s)=>{let c=()=>{this.pendingMcpResponses.delete(a)},u=d=>{c(),o(d)},l=d=>{c(),s(d)};if(this.pendingMcpResponses.set(a,{resolve:u,reject:l}),n.onmessage)n.onmessage(r.message);else{c(),s(new Error("No message handler registered"));return}})}};var st;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let a={};for(let o of i)a[o]=o;return a},t.getValidEnumValues=i=>{let a=t.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(let s of a)o[s]=i[s];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(a){return i[a]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let a=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},t.find=(i,a)=>{for(let o of i)if(a(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,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=n,t.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(st||(st={}));var P4;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(P4||(P4={}));var de=st.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),xa=t=>{switch(typeof t){case"undefined":return de.undefined;case"string":return de.string;case"number":return Number.isNaN(t)?de.nan:de.number;case"boolean":return de.boolean;case"function":return de.function;case"bigint":return de.bigint;case"symbol":return de.symbol;case"object":return Array.isArray(t)?de.array:t===null?de.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?de.promise:typeof Map<"u"&&t instanceof Map?de.map:typeof Set<"u"&&t instanceof Set?de.set:typeof Date<"u"&&t instanceof Date?de.date:de.object;default:return de.unknown}},te=st.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"]),En=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(a){return a.message},n={_errors:[]},i=a=>{for(let o of a.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 s=n,c=0;for(;cr.message){let r={},n=[];for(let i of this.issues)if(i.path.length>0){let a=i.path[0];r[a]=r[a]||[],r[a].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};En.create=t=>new En(t);var Joe=(t,e)=>{let r;switch(t.code){case te.invalid_type:t.received===de.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case te.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,st.jsonStringifyReplacer)}`;break;case te.unrecognized_keys:r=`Unrecognized key(s) in object: ${st.joinValues(t.keys,", ")}`;break;case te.invalid_union:r="Invalid input";break;case te.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${st.joinValues(t.options)}`;break;case te.invalid_enum_value:r=`Invalid enum value. Expected ${st.joinValues(t.options)}, received '${t.received}'`;break;case te.invalid_arguments:r="Invalid function arguments";break;case te.invalid_return_type:r="Invalid function return type";break;case te.invalid_date:r="Invalid date";break;case te.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}"`:st.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case te.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 te.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 te.custom:r="Invalid input";break;case te.invalid_intersection_types:r="Intersection results could not be merged";break;case te.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case te.not_finite:r="Number must be finite";break;default:r=e.defaultError,st.assertNever(t)}return{message:r}},cd=Joe,Xoe=cd;function d$(){return Xoe}var p$=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,a=[...r,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)s=u(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}};function se(t,e){let r=d$(),n=p$({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===cd?void 0:cd].filter(i=>!!i)});t.common.issues.push(n)}var Ar=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 Pe;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 a=await i.key,o=await i.value;n.push({key:a,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return Pe;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}},Pe=Object.freeze({status:"aborted"}),ad=t=>({status:"dirty",value:t}),Wr=t=>({status:"valid",value:t}),O4=t=>t.status==="aborted",R4=t=>t.status==="dirty",rc=t=>t.status==="valid",Rh=t=>typeof Promise<"u"&&t instanceof Promise,ge;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(ge||(ge={}));var kn=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}},C4=(t,e)=>{if(rc(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 En(t.common.issues);return this._error=r,this._error}}};function ze(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,s)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:c??n??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:c??r??s.defaultError}},description:i}}var Ve=class{get description(){return this._def.description}_getType(e){return xa(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:xa(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Ar,ctx:{common:e.parent.common,data:e.data,parsedType:xa(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Rh(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:xa(e)},i=this._parseSync({data:e,path:n.path,parent:n});return C4(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xa(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return rc(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=>rc(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:xa(e)},i=this._parse({data:e,path:n.path,parent:n}),a=await(Rh(i)?i:Promise.resolve(i));return C4(n,a)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,a)=>{let o=e(i),s=()=>a.addIssue({code:te.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(s(),!1)):o?!0:(s(),!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 Wn({schema:this,typeName:Oe.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 Gn.create(this,this._def)}nullable(){return Li.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return $a.create(this)}promise(){return _o.create(this,this._def)}or(e){return oc.create([this,e],this._def)}and(e){return sc.create(this,e,this._def)}transform(e){return new Wn({...ze(this._def),schema:this,typeName:Oe.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new pc({...ze(this._def),innerType:this,defaultValue:r,typeName:Oe.ZodDefault})}brand(){return new Ch({typeName:Oe.ZodBranded,type:this,...ze(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new fc({...ze(this._def),innerType:this,catchValue:r,typeName:Oe.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Nh.create(this,e)}readonly(){return mc.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Yoe=/^c[^\s-]{8,}$/i,Qoe=/^[0-9a-z]+$/,ese=/^[0-9A-HJKMNP-TV-Z]{26}$/i,tse=/^[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,rse=/^[a-z0-9_-]{21}$/i,nse=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,ise=/^[-+]?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)?)??$/,ase=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ose="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",t$,sse=/^(?:(?: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])$/,cse=/^(?:(?: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])$/,use=/^(([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]))$/,lse=/^(([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])$/,dse=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,pse=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,C2="((\\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])))",fse=new RegExp(`^${C2}$`);function N2(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 mse(t){return new RegExp(`^${N2(t)}$`)}function hse(t){let e=`${C2}T${N2(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 gse(t,e){return!!((e==="v4"||!e)&&sse.test(t)||(e==="v6"||!e)&&use.test(t))}function vse(t,e){if(!nse.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 yse(t,e){return!!((e==="v4"||!e)&&cse.test(t)||(e==="v6"||!e)&&lse.test(t))}var nc=class t extends Ve{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==de.string){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_type,expected:de.string,received:a.parsedType}),Pe}let n=new Ar,i;for(let a of this._def.checks)if(a.kind==="min")e.data.lengtha.value&&(i=this._getOrReturnCtx(e,i),se(i,{code:te.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){let o=e.data.length>a.value,s=e.data.lengthe.test(i),{validation:r,code:te.invalid_string,...ge.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ge.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ge.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ge.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ge.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ge.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ge.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ge.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ge.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ge.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...ge.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...ge.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ge.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...ge.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,...ge.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,...ge.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...ge.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...ge.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...ge.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...ge.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...ge.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...ge.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...ge.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...ge.errToObj(r)})}nonempty(e){return this.min(1,ge.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:Oe.ZodString,coerce:t?.coerce??!1,...ze(t)});function _se(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}var ud=class t extends Ve{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)!==de.number){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_type,expected:de.number,received:a.parsedType}),Pe}let n,i=new Ar;for(let a of this._def.checks)a.kind==="int"?st.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),se(n,{code:te.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?_se(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),se(n,{code:te.not_finite,message:a.message}),i.dirty()):st.assertNever(a);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,ge.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ge.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ge.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ge.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ge.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ge.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ge.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ge.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ge.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ge.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ge.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:ge.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ge.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ge.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"&&st.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.valuenew ud({checks:[],typeName:Oe.ZodNumber,coerce:t?.coerce||!1,...ze(t)});var ld=class t extends Ve{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)!==de.bigint)return this._getInvalidInput(e);let n,i=new Ar;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):st.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return se(r,{code:te.invalid_type,expected:de.bigint,received:r.parsedType}),Pe}gte(e,r){return this.setLimit("min",e,!0,ge.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ge.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ge.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ge.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ge.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:ge.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ge.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ge.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ge.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ge.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 ld({checks:[],typeName:Oe.ZodBigInt,coerce:t?.coerce??!1,...ze(t)});var dd=class extends Ve{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==de.boolean){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.boolean,received:n.parsedType}),Pe}return Wr(e.data)}};dd.create=t=>new dd({typeName:Oe.ZodBoolean,coerce:t?.coerce||!1,...ze(t)});var pd=class t extends Ve{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==de.date){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_type,expected:de.date,received:a.parsedType}),Pe}if(Number.isNaN(e.data.getTime())){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_date}),Pe}let n=new Ar,i;for(let a of this._def.checks)a.kind==="min"?e.data.getTime()a.value&&(i=this._getOrReturnCtx(e,i),se(i,{code:te.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):st.assertNever(a);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:ge.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:ge.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 pd({checks:[],coerce:t?.coerce||!1,typeName:Oe.ZodDate,...ze(t)});var fd=class extends Ve{_parse(e){if(this._getType(e)!==de.symbol){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.symbol,received:n.parsedType}),Pe}return Wr(e.data)}};fd.create=t=>new fd({typeName:Oe.ZodSymbol,...ze(t)});var ic=class extends Ve{_parse(e){if(this._getType(e)!==de.undefined){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.undefined,received:n.parsedType}),Pe}return Wr(e.data)}};ic.create=t=>new ic({typeName:Oe.ZodUndefined,...ze(t)});var ac=class extends Ve{_parse(e){if(this._getType(e)!==de.null){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.null,received:n.parsedType}),Pe}return Wr(e.data)}};ac.create=t=>new ac({typeName:Oe.ZodNull,...ze(t)});var md=class extends Ve{constructor(){super(...arguments),this._any=!0}_parse(e){return Wr(e.data)}};md.create=t=>new md({typeName:Oe.ZodAny,...ze(t)});var wa=class extends Ve{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Wr(e.data)}};wa.create=t=>new wa({typeName:Oe.ZodUnknown,...ze(t)});var yi=class extends Ve{_parse(e){let r=this._getOrReturnCtx(e);return se(r,{code:te.invalid_type,expected:de.never,received:r.parsedType}),Pe}};yi.create=t=>new yi({typeName:Oe.ZodNever,...ze(t)});var hd=class extends Ve{_parse(e){if(this._getType(e)!==de.undefined){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.void,received:n.parsedType}),Pe}return Wr(e.data)}};hd.create=t=>new hd({typeName:Oe.ZodVoid,...ze(t)});var $a=class t extends Ve{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==de.array)return se(r,{code:te.invalid_type,expected:de.array,received:r.parsedType}),Pe;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,s=r.data.lengthi.maxLength.value&&(se(r,{code:te.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,s)=>i.type._parseAsync(new kn(r,o,r.path,s)))).then(o=>Ar.mergeArray(n,o));let a=[...r.data].map((o,s)=>i.type._parseSync(new kn(r,o,r.path,s)));return Ar.mergeArray(n,a)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:ge.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:ge.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:ge.toString(r)}})}nonempty(e){return this.min(1,e)}};$a.create=(t,e)=>new $a({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Oe.ZodArray,...ze(e)});function Qs(t){if(t instanceof cn){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Gn.create(Qs(n))}return new cn({...t._def,shape:()=>e})}else return t instanceof $a?new $a({...t._def,type:Qs(t.element)}):t instanceof Gn?Gn.create(Qs(t.unwrap())):t instanceof Li?Li.create(Qs(t.unwrap())):t instanceof qi?qi.create(t.items.map(e=>Qs(e))):t}var cn=class t extends Ve{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=st.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==de.object){let u=this._getOrReturnCtx(e);return se(u,{code:te.invalid_type,expected:de.object,received:u.parsedType}),Pe}let{status:n,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof yi&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||s.push(u);let c=[];for(let u of o){let l=a[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new kn(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof yi){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of s)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")s.length>0&&(se(i,{code:te.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=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new kn(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=>Ar.mergeObjectSync(n,u)):Ar.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return ge.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:ge.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:Oe.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 st.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 st.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Qs(this)}partial(e){let r={};for(let n of st.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 st.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof Gn;)a=a._def.innerType;r[n]=a}return new t({...this._def,shape:()=>r})}keyof(){return j2(st.objectKeys(this.shape))}};cn.create=(t,e)=>new cn({shape:()=>t,unknownKeys:"strip",catchall:yi.create(),typeName:Oe.ZodObject,...ze(e)});cn.strictCreate=(t,e)=>new cn({shape:()=>t,unknownKeys:"strict",catchall:yi.create(),typeName:Oe.ZodObject,...ze(e)});cn.lazycreate=(t,e)=>new cn({shape:t,unknownKeys:"strip",catchall:yi.create(),typeName:Oe.ZodObject,...ze(e)});var oc=class extends Ve{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(a){for(let s of a)if(s.result.status==="valid")return s.result;for(let s of a)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let o=a.map(s=>new En(s.ctx.common.issues));return se(r,{code:te.invalid_union,unionErrors:o}),Pe}if(r.common.async)return Promise.all(n.map(async a=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await a._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let a,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"&&!a&&(a={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(a)return r.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(c=>new En(c));return se(r,{code:te.invalid_union,unionErrors:s}),Pe}}get options(){return this._def.options}};oc.create=(t,e)=>new oc({options:t,typeName:Oe.ZodUnion,...ze(e)});var Di=t=>t instanceof cc?Di(t.schema):t instanceof Wn?Di(t.innerType()):t instanceof uc?[t.value]:t instanceof lc?t.options:t instanceof dc?st.objectValues(t.enum):t instanceof pc?Di(t._def.innerType):t instanceof ic?[void 0]:t instanceof ac?[null]:t instanceof Gn?[void 0,...Di(t.unwrap())]:t instanceof Li?[null,...Di(t.unwrap())]:t instanceof Ch||t instanceof mc?Di(t.unwrap()):t instanceof fc?Di(t._def.innerType):[],f$=class t extends Ve{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==de.object)return se(r,{code:te.invalid_type,expected:de.object,received:r.parsedType}),Pe;let n=this.discriminator,i=r.data[n],a=this.optionsMap.get(i);return a?r.common.async?a._parseAsync({data:r.data,path:r.path,parent:r}):a._parseSync({data:r.data,path:r.path,parent:r}):(se(r,{code:te.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Pe)}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 a of r){let o=Di(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new t({typeName:Oe.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...ze(n)})}};function m$(t,e){let r=xa(t),n=xa(e);if(t===e)return{valid:!0,data:t};if(r===de.object&&n===de.object){let i=st.objectKeys(e),a=st.objectKeys(t).filter(s=>i.indexOf(s)!==-1),o={...t,...e};for(let s of a){let c=m$(t[s],e[s]);if(!c.valid)return{valid:!1};o[s]=c.data}return{valid:!0,data:o}}else if(r===de.array&&n===de.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let a=0;a{if(O4(a)||O4(o))return Pe;let s=m$(a.value,o.value);return s.valid?((R4(a)||R4(o))&&r.dirty(),{status:r.value,value:s.data}):(se(n,{code:te.invalid_intersection_types}),Pe)};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(([a,o])=>i(a,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}))}};sc.create=(t,e,r)=>new sc({left:t,right:e,typeName:Oe.ZodIntersection,...ze(r)});var qi=class t extends Ve{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==de.array)return se(n,{code:te.invalid_type,expected:de.array,received:n.parsedType}),Pe;if(n.data.lengththis._def.items.length&&(se(n,{code:te.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let a=[...n.data].map((o,s)=>{let c=this._def.items[s]||this._def.rest;return c?c._parse(new kn(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>Ar.mergeArray(r,o)):Ar.mergeArray(r,a)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};qi.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new qi({items:t,typeName:Oe.ZodTuple,rest:null,...ze(e)})};var h$=class t extends Ve{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!==de.object)return se(n,{code:te.invalid_type,expected:de.object,received:n.parsedType}),Pe;let i=[],a=this._def.keyType,o=this._def.valueType;for(let s in n.data)i.push({key:a._parse(new kn(n,s,n.path,s)),value:o._parse(new kn(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?Ar.mergeObjectAsync(r,i):Ar.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Ve?new t({keyType:e,valueType:r,typeName:Oe.ZodRecord,...ze(n)}):new t({keyType:nc.create(),valueType:e,typeName:Oe.ZodRecord,...ze(r)})}},gd=class extends Ve{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!==de.map)return se(n,{code:te.invalid_type,expected:de.map,received:n.parsedType}),Pe;let i=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([s,c],u)=>({key:i._parse(new kn(n,s,n.path,[u,"key"])),value:a._parse(new kn(n,c,n.path,[u,"value"]))}));if(n.common.async){let s=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 Pe;(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 o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Pe;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}}}};gd.create=(t,e,r)=>new gd({valueType:e,keyType:t,typeName:Oe.ZodMap,...ze(r)});var vd=class t extends Ve{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==de.set)return se(n,{code:te.invalid_type,expected:de.set,received:n.parsedType}),Pe;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(se(n,{code:te.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let a=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Pe;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let s=[...n.data.values()].map((c,u)=>a._parse(new kn(n,c,n.path,u)));return n.common.async?Promise.all(s).then(c=>o(c)):o(s)}min(e,r){return new t({...this._def,minSize:{value:e,message:ge.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:ge.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};vd.create=(t,e)=>new vd({valueType:t,minSize:null,maxSize:null,typeName:Oe.ZodSet,...ze(e)});var g$=class t extends Ve{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==de.function)return se(r,{code:te.invalid_type,expected:de.function,received:r.parsedType}),Pe;function n(s,c){return p$({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,d$(),cd].filter(u=>!!u),issueData:{code:te.invalid_arguments,argumentsError:c}})}function i(s,c){return p$({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,d$(),cd].filter(u=>!!u),issueData:{code:te.invalid_return_type,returnTypeError:c}})}let a={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof _o){let s=this;return Wr(async function(...c){let u=new En([]),l=await s._def.args.parseAsync(c,a).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(o,this,l);return await s._def.returns._def.type.parseAsync(d,a).catch(f=>{throw u.addIssue(i(d,f)),u})})}else{let s=this;return Wr(function(...c){let u=s._def.args.safeParse(c,a);if(!u.success)throw new En([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=s._def.returns.safeParse(l,a);if(!d.success)throw new En([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:qi.create(e).rest(wa.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||qi.create([]).rest(wa.create()),returns:r||wa.create(),typeName:Oe.ZodFunction,...ze(n)})}},cc=class extends Ve{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})}};cc.create=(t,e)=>new cc({getter:t,typeName:Oe.ZodLazy,...ze(e)});var uc=class extends Ve{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return se(r,{received:r.data,code:te.invalid_literal,expected:this._def.value}),Pe}return{status:"valid",value:e.data}}get value(){return this._def.value}};uc.create=(t,e)=>new uc({value:t,typeName:Oe.ZodLiteral,...ze(e)});function j2(t,e){return new lc({values:t,typeName:Oe.ZodEnum,...ze(e)})}var lc=class t extends Ve{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return se(r,{expected:st.joinValues(n),received:r.parsedType,code:te.invalid_type}),Pe}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 se(r,{received:r.data,code:te.invalid_enum_value,options:n}),Pe}return Wr(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})}};lc.create=j2;var dc=class extends Ve{_parse(e){let r=st.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==de.string&&n.parsedType!==de.number){let i=st.objectValues(r);return se(n,{expected:st.joinValues(i),received:n.parsedType,code:te.invalid_type}),Pe}if(this._cache||(this._cache=new Set(st.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=st.objectValues(r);return se(n,{received:n.data,code:te.invalid_enum_value,options:i}),Pe}return Wr(e.data)}get enum(){return this._def.values}};dc.create=(t,e)=>new dc({values:t,typeName:Oe.ZodNativeEnum,...ze(e)});var _o=class extends Ve{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==de.promise&&r.common.async===!1)return se(r,{code:te.invalid_type,expected:de.promise,received:r.parsedType}),Pe;let n=r.parsedType===de.promise?r.data:Promise.resolve(r.data);return Wr(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};_o.create=(t,e)=>new _o({type:t,typeName:Oe.ZodPromise,...ze(e)});var Wn=class extends Ve{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Oe.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,a={addIssue:o=>{se(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),i.type==="preprocess"){let o=i.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async s=>{if(r.value==="aborted")return Pe;let c=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return c.status==="aborted"?Pe:c.status==="dirty"||r.value==="dirty"?ad(c.value):c});{if(r.value==="aborted")return Pe;let s=this._def.schema._parseSync({data:o,path:n.path,parent:n});return s.status==="aborted"?Pe:s.status==="dirty"||r.value==="dirty"?ad(s.value):s}}if(i.type==="refinement"){let o=s=>{let c=i.refinement(s,a);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"?Pe:(s.status==="dirty"&&r.dirty(),o(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"?Pe:(s.status==="dirty"&&r.dirty(),o(s.value).then(()=>({status:r.value,value:s.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(!rc(o))return Pe;let s=i.transform(o.value,a);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(o=>rc(o)?Promise.resolve(i.transform(o.value,a)).then(s=>({status:r.value,value:s})):Pe);st.assertNever(i)}};Wn.create=(t,e,r)=>new Wn({schema:t,typeName:Oe.ZodEffects,effect:e,...ze(r)});Wn.createWithPreprocess=(t,e,r)=>new Wn({schema:e,effect:{type:"preprocess",transform:t},typeName:Oe.ZodEffects,...ze(r)});var Gn=class extends Ve{_parse(e){return this._getType(e)===de.undefined?Wr(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gn.create=(t,e)=>new Gn({innerType:t,typeName:Oe.ZodOptional,...ze(e)});var Li=class extends Ve{_parse(e){return this._getType(e)===de.null?Wr(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Li.create=(t,e)=>new Li({innerType:t,typeName:Oe.ZodNullable,...ze(e)});var pc=class extends Ve{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===de.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};pc.create=(t,e)=>new pc({innerType:t,typeName:Oe.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...ze(e)});var fc=class extends Ve{_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 Rh(i)?i.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new En(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new En(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};fc.create=(t,e)=>new fc({innerType:t,typeName:Oe.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...ze(e)});var yd=class extends Ve{_parse(e){if(this._getType(e)!==de.nan){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.nan,received:n.parsedType}),Pe}return{status:"valid",value:e.data}}};yd.create=t=>new yd({typeName:Oe.ZodNaN,...ze(t)});var Ch=class extends Ve{_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}},Nh=class t extends Ve{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Pe:a.status==="dirty"?(r.dirty(),ad(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Pe: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:Oe.ZodPipeline})}},mc=class extends Ve{_parse(e){let r=this._def.innerType._parse(e),n=i=>(rc(i)&&(i.value=Object.freeze(i.value)),i);return Rh(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};mc.create=(t,e)=>new mc({innerType:t,typeName:Oe.ZodReadonly,...ze(e)});var u1e={object:cn.lazycreate},Oe;(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"})(Oe||(Oe={}));var l1e=nc.create,d1e=ud.create,p1e=yd.create,f1e=ld.create,m1e=dd.create,h1e=pd.create,g1e=fd.create,v1e=ic.create,y1e=ac.create,_1e=md.create,b1e=wa.create,x1e=yi.create,S1e=hd.create,w1e=$a.create,$1e=cn.create,E1e=cn.strictCreate,k1e=oc.create,T1e=f$.create,I1e=sc.create,P1e=qi.create,O1e=h$.create,R1e=gd.create,C1e=vd.create,N1e=g$.create,j1e=cc.create,A1e=uc.create,M1e=lc.create,z1e=dc.create,D1e=_o.create,U1e=Wn.create,q1e=Gn.create,L1e=Li.create,F1e=Wn.createWithPreprocess,Z1e=Nh.create,H1e=Object.freeze({status:"aborted"});function X(t,e,r){function n(s,c){var u;Object.defineProperty(s,"_zod",{value:s._zod??{},enumerable:!1}),(u=s._zod).traits??(u.traits=new Set),s._zod.traits.add(t),e(s,c);for(let l in o.prototype)l in s||Object.defineProperty(s,l,{value:o.prototype[l].bind(s)});s._zod.constr=o,s._zod.def=c}let i=r?.Parent??Object;class a extends i{}Object.defineProperty(a,"name",{value:t});function o(s){var c;let u=r?.Parent?new a:this;n(u,s),(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:s=>r?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var bo=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},v$={};function Fi(t){return t&&Object.assign(v$,t),v$}var zt={};Q4(zt,{unwrapMessage:()=>od,stringifyPrimitive:()=>A$,required:()=>Dse,randomString:()=>Tse,propertyKeyTypes:()=>U2,promiseAllObject:()=>kse,primitiveTypes:()=>Ose,prefixIssues:()=>Sa,pick:()=>Nse,partial:()=>zse,optionalKeys:()=>q2,omit:()=>jse,numKeys:()=>Ise,nullish:()=>Wh,normalizeParams:()=>ke,merge:()=>Mse,jsonStringifyReplacer:()=>M2,joinValues:()=>y$,issue:()=>F2,isPlainObject:()=>bd,isObject:()=>_d,getSizableOrigin:()=>Use,getParsedType:()=>Pse,getLengthableOrigin:()=>Jh,getEnumValues:()=>A2,getElementAtPath:()=>Ese,floatSafeRemainder:()=>z2,finalizeIssue:()=>Zi,extend:()=>Ase,escapeRegex:()=>bc,esc:()=>ec,defineLazy:()=>Dt,createTransparentProxy:()=>Rse,clone:()=>Ta,cleanRegex:()=>Kh,cleanEnum:()=>qse,captureStackTrace:()=>j$,cached:()=>Gh,assignProp:()=>N$,assertNotEqual:()=>xse,assertNever:()=>wse,assertIs:()=>Sse,assertEqual:()=>bse,assert:()=>$se,allowsEval:()=>D2,aborted:()=>tc,NUMBER_FORMAT_RANGES:()=>L2,Class:()=>_$,BIGINT_FORMAT_RANGES:()=>Cse});function bse(t){return t}function xse(t){return t}function Sse(t){}function wse(t){throw new Error}function $se(t){}function A2(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 y$(t,e="|"){return t.map(r=>A$(r)).join(e)}function M2(t,e){return typeof e=="bigint"?e.toString():e}function Gh(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Wh(t){return t==null}function Kh(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function z2(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%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 N$(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Ese(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function kse(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let a=0;a{};function _d(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var D2=Gh(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function bd(t){if(_d(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(_d(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ise(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var Pse=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}`)}},U2=new Set(["string","number","symbol"]),Ose=new Set(["string","number","bigint","boolean","symbol","undefined"]);function bc(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ta(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function ke(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 Rse(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,a){return e??(e=t()),Reflect.set(e,n,i,a)},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 A$(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 L2={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]},Cse={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Nse(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 Ta(t,{...t._zod.def,shape:r,checks:[]})}function jse(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 Ta(t,{...t._zod.def,shape:r,checks:[]})}function Ase(t,e){if(!bd(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 N$(this,"shape",n),n},checks:[]};return Ta(t,r)}function Mse(t,e){return Ta(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return N$(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function zse(t,e,r){let n=e._zod.def.shape,i={...n};if(r)for(let a in r){if(!(a in n))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=t?new t({type:"optional",innerType:n[a]}):n[a])}else for(let a in n)i[a]=t?new t({type:"optional",innerType:n[a]}):n[a];return Ta(e,{...e._zod.def,shape:i,checks:[]})}function Dse(t,e,r){let n=e._zod.def.shape,i={...n};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:n[a]}))}else for(let a in n)i[a]=new t({type:"nonoptional",innerType:n[a]});return Ta(e,{...e._zod.def,shape:i,checks:[]})}function tc(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function od(t){return typeof t=="string"?t:t?.message}function Zi(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=od(t.inst?._zod.def?.error?.(t))??od(e?.error?.(t))??od(r.customError?.(t))??od(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Use(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Jh(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function F2(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function qse(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var _$=class{constructor(...e){}},Z2=(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,M2,2)},enumerable:!0})},H2=X("$ZodError",Z2),B2=X("$ZodError",Z2,{Parent:Error});function Lse(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 Fse(t,e){let r=e||function(a){return a.message},n={_errors:[]},i=a=>{for(let o of a.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(s=>i({issues:s}));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 s=n,c=0;for(;c(e,r,n,i)=>{let a=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise)throw new bo;if(o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Zi(c,a,Fi())));throw j$(s,i?.callee),s}return o.value};var Hse=t=>async(e,r,n,i)=>{let a=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Zi(c,a,Fi())));throw j$(s,i?.callee),s}return o.value};var V2=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new bo;return a.issues.length?{success:!1,error:new(t??H2)(a.issues.map(o=>Zi(o,i,Fi())))}:{success:!0,data:a.value}},Bse=V2(B2),G2=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new t(a.issues.map(o=>Zi(o,i,Fi())))}:{success:!0,data:a.value}},Vse=G2(B2),Gse=/^[cC][^\s-]{8,}$/,Wse=/^[0-9a-z]+$/,Kse=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Jse=/^[0-9a-vA-V]{20}$/,Xse=/^[A-Za-z0-9]{27}$/,Yse=/^[a-zA-Z0-9_-]{21}$/,Qse=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ece=/^([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})$/,N4=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)$/,tce=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,rce="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function nce(){return new RegExp(rce,"u")}var ice=/^(?:(?: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])$/,ace=/^(([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})$/,oce=/^((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])$/,sce=/^(([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])$/,cce=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,W2=/^[A-Za-z0-9_-]*$/,uce=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,lce=/^\+(?:[0-9]){6,14}[0-9]$/,K2="(?:(?:\\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])))",dce=new RegExp(`^${K2}$`);function J2(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 pce(t){return new RegExp(`^${J2(t)}$`)}function fce(t){let e=J2({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(`^${K2}T(?:${n})$`)}var mce=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},hce=/^\d+$/,gce=/^-?\d+(?:\.\d+)?/i,vce=/true|false/i,yce=/null/i,_ce=/^[^A-Z]*$/,bce=/^[^a-z]*$/,Kr=X("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),X2={number:"number",bigint:"bigint",object:"date"},Y2=X("$ZodCheckLessThan",(t,e)=>{Kr.init(t,e);let r=X2[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Kr.init(t,e);let r=X2[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>a&&(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})}}),xce=X("$ZodCheckMultipleOf",(t,e)=>{Kr.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):z2(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})}}),Sce=X("$ZodCheckNumberFormat",(t,e)=>{Kr.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,a]=L2[e.format];t._zod.onattach.push(o=>{let s=o._zod.bag;s.format=e.format,s.minimum=i,s.maximum=a,r&&(s.pattern=hce)}),t._zod.check=o=>{let s=o.value;if(r){if(!Number.isInteger(s)){o.issues.push({expected:n,format:e.format,code:"invalid_type",input:s,inst:t});return}if(!Number.isSafeInteger(s)){s>0?o.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,continue:!e.abort}):o.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,continue:!e.abort});return}}sa&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inst:t})}}),wce=X("$ZodCheckMaxLength",(t,e)=>{Kr.init(t,e),t._zod.when=r=>{let n=r.value;return!Wh(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 a=Jh(n);r.issues.push({origin:a,code:"too_big",maximum:e.maximum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),$ce=X("$ZodCheckMinLength",(t,e)=>{Kr.init(t,e),t._zod.when=r=>{let n=r.value;return!Wh(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 a=Jh(n);r.issues.push({origin:a,code:"too_small",minimum:e.minimum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),Ece=X("$ZodCheckLengthEquals",(t,e)=>{Kr.init(t,e),t._zod.when=r=>{let n=r.value;return!Wh(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 a=Jh(n),o=i>e.length;r.issues.push({origin:a,...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})}}),Xh=X("$ZodCheckStringFormat",(t,e)=>{var r,n;Kr.init(t,e),t._zod.onattach.push(i=>{let a=i._zod.bag;a.format=e.format,e.pattern&&(a.patterns??(a.patterns=new Set),a.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=()=>{})}),kce=X("$ZodCheckRegex",(t,e)=>{Xh.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})}}),Tce=X("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=_ce),Xh.init(t,e)}),Ice=X("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=bce),Xh.init(t,e)}),Pce=X("$ZodCheckIncludes",(t,e)=>{Kr.init(t,e);let r=bc(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{let a=i._zod.bag;a.patterns??(a.patterns=new Set),a.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})}}),Oce=X("$ZodCheckStartsWith",(t,e)=>{Kr.init(t,e);let r=new RegExp(`^${bc(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})}}),Rce=X("$ZodCheckEndsWith",(t,e)=>{Kr.init(t,e);let r=new RegExp(`.*${bc(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})}}),Cce=X("$ZodCheckOverwrite",(t,e)=>{Kr.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),b$=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(` +`))})}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()),a=new Set(Object.keys(r));for(let c of i)a.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){_a("[Query.streamInput] Starting to process input stream");try{let r=0;for await(let n of e){if(r++,_a(`[Query.streamInput] Processing message ${r}: ${n.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(JSON.stringify(n)+` +`))}_a(`[Query.streamInput] Finished processing ${r} messages from input stream`),this.hasBidirectionalNeeds()&&(_a("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),_a("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(r){if(!(r instanceof yo))throw r}}waitForFirstResult(){return this.firstResultReceived?(_a("[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 a=this.hookCallbacks.get(e);if(!a)throw new Error(`No hook callback found for ID: ${e}`);return a(r,n,{signal:i})}connectSdkMcpServer(e,r){let n=new p$(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}`,a=this.pendingMcpResponses.get(i);if(a){a.resolve(r),this.pendingMcpResponses.delete(i);return}}let n={type:"control_request",request_id:(0,A2.randomUUID)(),request:{subtype:"mcp_message",server_name:e,message:r}};this.transport.write(JSON.stringify(n)+` +`)}handleMcpControlRequest(e,r,n){let i="id"in r.message?r.message.id:null,a=`${e}:${i}`;return new Promise((o,s)=>{let c=()=>{this.pendingMcpResponses.delete(a)},u=d=>{c(),o(d)},l=d=>{c(),s(d)};if(this.pendingMcpResponses.set(a,{resolve:u,reject:l}),n.onmessage)n.onmessage(r.message);else{c(),s(new Error("No message handler registered"));return}})}};var st;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let a={};for(let o of i)a[o]=o;return a},t.getValidEnumValues=i=>{let a=t.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(let s of a)o[s]=i[s];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(a){return i[a]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let a=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},t.find=(i,a)=>{for(let o of i)if(a(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,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=n,t.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(st||(st={}));var N4;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(N4||(N4={}));var de=st.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ba=t=>{switch(typeof t){case"undefined":return de.undefined;case"string":return de.string;case"number":return Number.isNaN(t)?de.nan:de.number;case"boolean":return de.boolean;case"function":return de.function;case"bigint":return de.bigint;case"symbol":return de.symbol;case"object":return Array.isArray(t)?de.array:t===null?de.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?de.promise:typeof Map<"u"&&t instanceof Map?de.map:typeof Set<"u"&&t instanceof Set?de.set:typeof Date<"u"&&t instanceof Date?de.date:de.object;default:return de.unknown}},te=st.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"]),Tn=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(a){return a.message},n={_errors:[]},i=a=>{for(let o of a.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 s=n,c=0;for(;cr.message){let r={},n=[];for(let i of this.issues)if(i.path.length>0){let a=i.path[0];r[a]=r[a]||[],r[a].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Tn.create=t=>new Tn(t);var sse=(t,e)=>{let r;switch(t.code){case te.invalid_type:t.received===de.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case te.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,st.jsonStringifyReplacer)}`;break;case te.unrecognized_keys:r=`Unrecognized key(s) in object: ${st.joinValues(t.keys,", ")}`;break;case te.invalid_union:r="Invalid input";break;case te.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${st.joinValues(t.options)}`;break;case te.invalid_enum_value:r=`Invalid enum value. Expected ${st.joinValues(t.options)}, received '${t.received}'`;break;case te.invalid_arguments:r="Invalid function arguments";break;case te.invalid_return_type:r="Invalid function return type";break;case te.invalid_date:r="Invalid date";break;case te.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}"`:st.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case te.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 te.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 te.custom:r="Invalid input";break;case te.invalid_intersection_types:r="Intersection results could not be merged";break;case te.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case te.not_finite:r="Number must be finite";break;default:r=e.defaultError,st.assertNever(t)}return{message:r}},dd=sse,cse=dd;function m$(){return cse}var h$=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,a=[...r,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)s=u(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}};function se(t,e){let r=m$(),n=h$({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===dd?void 0:dd].filter(i=>!!i)});t.common.issues.push(n)}var Mr=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 Re;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 a=await i.key,o=await i.value;n.push({key:a,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return Re;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}},Re=Object.freeze({status:"aborted"}),cd=t=>({status:"dirty",value:t}),Kr=t=>({status:"valid",value:t}),j4=t=>t.status==="aborted",A4=t=>t.status==="dirty",sc=t=>t.status==="valid",jh=t=>typeof Promise<"u"&&t instanceof Promise,ge;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(ge||(ge={}));var In=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}},M4=(t,e)=>{if(sc(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 Tn(t.common.issues);return this._error=r,this._error}}};function De(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,s)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:c??n??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:c??r??s.defaultError}},description:i}}var Ge=class{get description(){return this._def.description}_getType(e){return ba(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:ba(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Mr,ctx:{common:e.parent.common,data:e.data,parsedType:ba(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(jh(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:ba(e)},i=this._parseSync({data:e,path:n.path,parent:n});return M4(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ba(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return sc(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=>sc(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:ba(e)},i=this._parse({data:e,path:n.path,parent:n}),a=await(jh(i)?i:Promise.resolve(i));return M4(n,a)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,a)=>{let o=e(i),s=()=>a.addIssue({code:te.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(s(),!1)):o?!0:(s(),!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 Jn({schema:this,typeName:Oe.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 Kn.create(this,this._def)}nullable(){return Li.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return wa.create(this)}promise(){return bo.create(this,this._def)}or(e){return dc.create([this,e],this._def)}and(e){return pc.create(this,e,this._def)}transform(e){return new Jn({...De(this._def),schema:this,typeName:Oe.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new vc({...De(this._def),innerType:this,defaultValue:r,typeName:Oe.ZodDefault})}brand(){return new Ah({typeName:Oe.ZodBranded,type:this,...De(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new yc({...De(this._def),innerType:this,catchValue:r,typeName:Oe.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Mh.create(this,e)}readonly(){return _c.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},use=/^c[^\s-]{8,}$/i,lse=/^[0-9a-z]+$/,dse=/^[0-9A-HJKMNP-TV-Z]{26}$/i,pse=/^[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,fse=/^[a-z0-9_-]{21}$/i,mse=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,hse=/^[-+]?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)?)??$/,gse=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,vse="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",i$,yse=/^(?:(?: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])$/,_se=/^(?:(?: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])$/,bse=/^(([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]))$/,xse=/^(([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])$/,Sse=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,wse=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,M2="((\\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])))",$se=new RegExp(`^${M2}$`);function D2(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 Ese(t){return new RegExp(`^${D2(t)}$`)}function kse(t){let e=`${M2}T${D2(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 Tse(t,e){return!!((e==="v4"||!e)&&yse.test(t)||(e==="v6"||!e)&&bse.test(t))}function Ise(t,e){if(!mse.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 Pse(t,e){return!!((e==="v4"||!e)&&_se.test(t)||(e==="v6"||!e)&&xse.test(t))}var cc=class t extends Ge{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==de.string){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_type,expected:de.string,received:a.parsedType}),Re}let n=new Mr,i;for(let a of this._def.checks)if(a.kind==="min")e.data.lengtha.value&&(i=this._getOrReturnCtx(e,i),se(i,{code:te.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){let o=e.data.length>a.value,s=e.data.lengthe.test(i),{validation:r,code:te.invalid_string,...ge.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ge.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ge.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ge.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ge.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ge.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ge.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ge.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ge.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ge.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...ge.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...ge.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ge.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...ge.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,...ge.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,...ge.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...ge.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...ge.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...ge.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...ge.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...ge.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...ge.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...ge.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...ge.errToObj(r)})}nonempty(e){return this.min(1,ge.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 cc({checks:[],typeName:Oe.ZodString,coerce:t?.coerce??!1,...De(t)});function Rse(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}var pd=class t extends Ge{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)!==de.number){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_type,expected:de.number,received:a.parsedType}),Re}let n,i=new Mr;for(let a of this._def.checks)a.kind==="int"?st.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),se(n,{code:te.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?Rse(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),se(n,{code:te.not_finite,message:a.message}),i.dirty()):st.assertNever(a);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,ge.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ge.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ge.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ge.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ge.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ge.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ge.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ge.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ge.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ge.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ge.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:ge.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ge.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ge.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"&&st.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 pd({checks:[],typeName:Oe.ZodNumber,coerce:t?.coerce||!1,...De(t)});var fd=class t extends Ge{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)!==de.bigint)return this._getInvalidInput(e);let n,i=new Mr;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):st.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return se(r,{code:te.invalid_type,expected:de.bigint,received:r.parsedType}),Re}gte(e,r){return this.setLimit("min",e,!0,ge.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ge.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ge.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ge.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ge.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:ge.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ge.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ge.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ge.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ge.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 fd({checks:[],typeName:Oe.ZodBigInt,coerce:t?.coerce??!1,...De(t)});var md=class extends Ge{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==de.boolean){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.boolean,received:n.parsedType}),Re}return Kr(e.data)}};md.create=t=>new md({typeName:Oe.ZodBoolean,coerce:t?.coerce||!1,...De(t)});var hd=class t extends Ge{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==de.date){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_type,expected:de.date,received:a.parsedType}),Re}if(Number.isNaN(e.data.getTime())){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_date}),Re}let n=new Mr,i;for(let a of this._def.checks)a.kind==="min"?e.data.getTime()a.value&&(i=this._getOrReturnCtx(e,i),se(i,{code:te.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):st.assertNever(a);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:ge.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:ge.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew hd({checks:[],coerce:t?.coerce||!1,typeName:Oe.ZodDate,...De(t)});var gd=class extends Ge{_parse(e){if(this._getType(e)!==de.symbol){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.symbol,received:n.parsedType}),Re}return Kr(e.data)}};gd.create=t=>new gd({typeName:Oe.ZodSymbol,...De(t)});var uc=class extends Ge{_parse(e){if(this._getType(e)!==de.undefined){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.undefined,received:n.parsedType}),Re}return Kr(e.data)}};uc.create=t=>new uc({typeName:Oe.ZodUndefined,...De(t)});var lc=class extends Ge{_parse(e){if(this._getType(e)!==de.null){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.null,received:n.parsedType}),Re}return Kr(e.data)}};lc.create=t=>new lc({typeName:Oe.ZodNull,...De(t)});var vd=class extends Ge{constructor(){super(...arguments),this._any=!0}_parse(e){return Kr(e.data)}};vd.create=t=>new vd({typeName:Oe.ZodAny,...De(t)});var Sa=class extends Ge{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Kr(e.data)}};Sa.create=t=>new Sa({typeName:Oe.ZodUnknown,...De(t)});var yi=class extends Ge{_parse(e){let r=this._getOrReturnCtx(e);return se(r,{code:te.invalid_type,expected:de.never,received:r.parsedType}),Re}};yi.create=t=>new yi({typeName:Oe.ZodNever,...De(t)});var yd=class extends Ge{_parse(e){if(this._getType(e)!==de.undefined){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.void,received:n.parsedType}),Re}return Kr(e.data)}};yd.create=t=>new yd({typeName:Oe.ZodVoid,...De(t)});var wa=class t extends Ge{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==de.array)return se(r,{code:te.invalid_type,expected:de.array,received:r.parsedType}),Re;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,s=r.data.lengthi.maxLength.value&&(se(r,{code:te.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,s)=>i.type._parseAsync(new In(r,o,r.path,s)))).then(o=>Mr.mergeArray(n,o));let a=[...r.data].map((o,s)=>i.type._parseSync(new In(r,o,r.path,s)));return Mr.mergeArray(n,a)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:ge.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:ge.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:ge.toString(r)}})}nonempty(e){return this.min(1,e)}};wa.create=(t,e)=>new wa({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Oe.ZodArray,...De(e)});function ic(t){if(t instanceof un){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Kn.create(ic(n))}return new un({...t._def,shape:()=>e})}else return t instanceof wa?new wa({...t._def,type:ic(t.element)}):t instanceof Kn?Kn.create(ic(t.unwrap())):t instanceof Li?Li.create(ic(t.unwrap())):t instanceof qi?qi.create(t.items.map(e=>ic(e))):t}var un=class t extends Ge{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=st.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==de.object){let u=this._getOrReturnCtx(e);return se(u,{code:te.invalid_type,expected:de.object,received:u.parsedType}),Re}let{status:n,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof yi&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||s.push(u);let c=[];for(let u of o){let l=a[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new In(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof yi){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of s)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")s.length>0&&(se(i,{code:te.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=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new In(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=>Mr.mergeObjectSync(n,u)):Mr.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return ge.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:ge.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:Oe.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 st.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 st.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return ic(this)}partial(e){let r={};for(let n of st.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 st.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof Kn;)a=a._def.innerType;r[n]=a}return new t({...this._def,shape:()=>r})}keyof(){return z2(st.objectKeys(this.shape))}};un.create=(t,e)=>new un({shape:()=>t,unknownKeys:"strip",catchall:yi.create(),typeName:Oe.ZodObject,...De(e)});un.strictCreate=(t,e)=>new un({shape:()=>t,unknownKeys:"strict",catchall:yi.create(),typeName:Oe.ZodObject,...De(e)});un.lazycreate=(t,e)=>new un({shape:t,unknownKeys:"strip",catchall:yi.create(),typeName:Oe.ZodObject,...De(e)});var dc=class extends Ge{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(a){for(let s of a)if(s.result.status==="valid")return s.result;for(let s of a)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let o=a.map(s=>new Tn(s.ctx.common.issues));return se(r,{code:te.invalid_union,unionErrors:o}),Re}if(r.common.async)return Promise.all(n.map(async a=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await a._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let a,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"&&!a&&(a={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(a)return r.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(c=>new Tn(c));return se(r,{code:te.invalid_union,unionErrors:s}),Re}}get options(){return this._def.options}};dc.create=(t,e)=>new dc({options:t,typeName:Oe.ZodUnion,...De(e)});var zi=t=>t instanceof fc?zi(t.schema):t instanceof Jn?zi(t.innerType()):t instanceof mc?[t.value]:t instanceof hc?t.options:t instanceof gc?st.objectValues(t.enum):t instanceof vc?zi(t._def.innerType):t instanceof uc?[void 0]:t instanceof lc?[null]:t instanceof Kn?[void 0,...zi(t.unwrap())]:t instanceof Li?[null,...zi(t.unwrap())]:t instanceof Ah||t instanceof _c?zi(t.unwrap()):t instanceof yc?zi(t._def.innerType):[],g$=class t extends Ge{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==de.object)return se(r,{code:te.invalid_type,expected:de.object,received:r.parsedType}),Re;let n=this.discriminator,i=r.data[n],a=this.optionsMap.get(i);return a?r.common.async?a._parseAsync({data:r.data,path:r.path,parent:r}):a._parseSync({data:r.data,path:r.path,parent:r}):(se(r,{code:te.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Re)}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 a of r){let o=zi(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new t({typeName:Oe.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...De(n)})}};function v$(t,e){let r=ba(t),n=ba(e);if(t===e)return{valid:!0,data:t};if(r===de.object&&n===de.object){let i=st.objectKeys(e),a=st.objectKeys(t).filter(s=>i.indexOf(s)!==-1),o={...t,...e};for(let s of a){let c=v$(t[s],e[s]);if(!c.valid)return{valid:!1};o[s]=c.data}return{valid:!0,data:o}}else if(r===de.array&&n===de.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let a=0;a{if(j4(a)||j4(o))return Re;let s=v$(a.value,o.value);return s.valid?((A4(a)||A4(o))&&r.dirty(),{status:r.value,value:s.data}):(se(n,{code:te.invalid_intersection_types}),Re)};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(([a,o])=>i(a,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}))}};pc.create=(t,e,r)=>new pc({left:t,right:e,typeName:Oe.ZodIntersection,...De(r)});var qi=class t extends Ge{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==de.array)return se(n,{code:te.invalid_type,expected:de.array,received:n.parsedType}),Re;if(n.data.lengththis._def.items.length&&(se(n,{code:te.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let a=[...n.data].map((o,s)=>{let c=this._def.items[s]||this._def.rest;return c?c._parse(new In(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>Mr.mergeArray(r,o)):Mr.mergeArray(r,a)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};qi.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new qi({items:t,typeName:Oe.ZodTuple,rest:null,...De(e)})};var y$=class t extends Ge{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!==de.object)return se(n,{code:te.invalid_type,expected:de.object,received:n.parsedType}),Re;let i=[],a=this._def.keyType,o=this._def.valueType;for(let s in n.data)i.push({key:a._parse(new In(n,s,n.path,s)),value:o._parse(new In(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?Mr.mergeObjectAsync(r,i):Mr.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Ge?new t({keyType:e,valueType:r,typeName:Oe.ZodRecord,...De(n)}):new t({keyType:cc.create(),valueType:e,typeName:Oe.ZodRecord,...De(r)})}},_d=class extends Ge{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!==de.map)return se(n,{code:te.invalid_type,expected:de.map,received:n.parsedType}),Re;let i=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([s,c],u)=>({key:i._parse(new In(n,s,n.path,[u,"key"])),value:a._parse(new In(n,c,n.path,[u,"value"]))}));if(n.common.async){let s=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 Re;(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 o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Re;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}}}};_d.create=(t,e,r)=>new _d({valueType:e,keyType:t,typeName:Oe.ZodMap,...De(r)});var bd=class t extends Ge{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==de.set)return se(n,{code:te.invalid_type,expected:de.set,received:n.parsedType}),Re;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(se(n,{code:te.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let a=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Re;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let s=[...n.data.values()].map((c,u)=>a._parse(new In(n,c,n.path,u)));return n.common.async?Promise.all(s).then(c=>o(c)):o(s)}min(e,r){return new t({...this._def,minSize:{value:e,message:ge.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:ge.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};bd.create=(t,e)=>new bd({valueType:t,minSize:null,maxSize:null,typeName:Oe.ZodSet,...De(e)});var _$=class t extends Ge{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==de.function)return se(r,{code:te.invalid_type,expected:de.function,received:r.parsedType}),Re;function n(s,c){return h$({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,m$(),dd].filter(u=>!!u),issueData:{code:te.invalid_arguments,argumentsError:c}})}function i(s,c){return h$({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,m$(),dd].filter(u=>!!u),issueData:{code:te.invalid_return_type,returnTypeError:c}})}let a={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof bo){let s=this;return Kr(async function(...c){let u=new Tn([]),l=await s._def.args.parseAsync(c,a).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(o,this,l);return await s._def.returns._def.type.parseAsync(d,a).catch(f=>{throw u.addIssue(i(d,f)),u})})}else{let s=this;return Kr(function(...c){let u=s._def.args.safeParse(c,a);if(!u.success)throw new Tn([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=s._def.returns.safeParse(l,a);if(!d.success)throw new Tn([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:qi.create(e).rest(Sa.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||qi.create([]).rest(Sa.create()),returns:r||Sa.create(),typeName:Oe.ZodFunction,...De(n)})}},fc=class extends Ge{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})}};fc.create=(t,e)=>new fc({getter:t,typeName:Oe.ZodLazy,...De(e)});var mc=class extends Ge{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return se(r,{received:r.data,code:te.invalid_literal,expected:this._def.value}),Re}return{status:"valid",value:e.data}}get value(){return this._def.value}};mc.create=(t,e)=>new mc({value:t,typeName:Oe.ZodLiteral,...De(e)});function z2(t,e){return new hc({values:t,typeName:Oe.ZodEnum,...De(e)})}var hc=class t extends Ge{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return se(r,{expected:st.joinValues(n),received:r.parsedType,code:te.invalid_type}),Re}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 se(r,{received:r.data,code:te.invalid_enum_value,options:n}),Re}return Kr(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})}};hc.create=z2;var gc=class extends Ge{_parse(e){let r=st.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==de.string&&n.parsedType!==de.number){let i=st.objectValues(r);return se(n,{expected:st.joinValues(i),received:n.parsedType,code:te.invalid_type}),Re}if(this._cache||(this._cache=new Set(st.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=st.objectValues(r);return se(n,{received:n.data,code:te.invalid_enum_value,options:i}),Re}return Kr(e.data)}get enum(){return this._def.values}};gc.create=(t,e)=>new gc({values:t,typeName:Oe.ZodNativeEnum,...De(e)});var bo=class extends Ge{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==de.promise&&r.common.async===!1)return se(r,{code:te.invalid_type,expected:de.promise,received:r.parsedType}),Re;let n=r.parsedType===de.promise?r.data:Promise.resolve(r.data);return Kr(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};bo.create=(t,e)=>new bo({type:t,typeName:Oe.ZodPromise,...De(e)});var Jn=class extends Ge{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Oe.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,a={addIssue:o=>{se(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),i.type==="preprocess"){let o=i.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async s=>{if(r.value==="aborted")return Re;let c=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return c.status==="aborted"?Re:c.status==="dirty"||r.value==="dirty"?cd(c.value):c});{if(r.value==="aborted")return Re;let s=this._def.schema._parseSync({data:o,path:n.path,parent:n});return s.status==="aborted"?Re:s.status==="dirty"||r.value==="dirty"?cd(s.value):s}}if(i.type==="refinement"){let o=s=>{let c=i.refinement(s,a);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"?Re:(s.status==="dirty"&&r.dirty(),o(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"?Re:(s.status==="dirty"&&r.dirty(),o(s.value).then(()=>({status:r.value,value:s.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(!sc(o))return Re;let s=i.transform(o.value,a);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(o=>sc(o)?Promise.resolve(i.transform(o.value,a)).then(s=>({status:r.value,value:s})):Re);st.assertNever(i)}};Jn.create=(t,e,r)=>new Jn({schema:t,typeName:Oe.ZodEffects,effect:e,...De(r)});Jn.createWithPreprocess=(t,e,r)=>new Jn({schema:e,effect:{type:"preprocess",transform:t},typeName:Oe.ZodEffects,...De(r)});var Kn=class extends Ge{_parse(e){return this._getType(e)===de.undefined?Kr(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Kn.create=(t,e)=>new Kn({innerType:t,typeName:Oe.ZodOptional,...De(e)});var Li=class extends Ge{_parse(e){return this._getType(e)===de.null?Kr(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Li.create=(t,e)=>new Li({innerType:t,typeName:Oe.ZodNullable,...De(e)});var vc=class extends Ge{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===de.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};vc.create=(t,e)=>new vc({innerType:t,typeName:Oe.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...De(e)});var yc=class extends Ge{_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 jh(i)?i.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new Tn(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Tn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};yc.create=(t,e)=>new yc({innerType:t,typeName:Oe.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...De(e)});var xd=class extends Ge{_parse(e){if(this._getType(e)!==de.nan){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.nan,received:n.parsedType}),Re}return{status:"valid",value:e.data}}};xd.create=t=>new xd({typeName:Oe.ZodNaN,...De(t)});var Ah=class extends Ge{_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}},Mh=class t extends Ge{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Re:a.status==="dirty"?(r.dirty(),cd(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Re: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:Oe.ZodPipeline})}},_c=class extends Ge{_parse(e){let r=this._def.innerType._parse(e),n=i=>(sc(i)&&(i.value=Object.freeze(i.value)),i);return jh(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};_c.create=(t,e)=>new _c({innerType:t,typeName:Oe.ZodReadonly,...De(e)});var R1e={object:un.lazycreate},Oe;(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"})(Oe||(Oe={}));var O1e=cc.create,C1e=pd.create,N1e=xd.create,j1e=fd.create,A1e=md.create,M1e=hd.create,D1e=gd.create,z1e=uc.create,U1e=lc.create,q1e=vd.create,L1e=Sa.create,F1e=yi.create,Z1e=yd.create,H1e=wa.create,B1e=un.create,V1e=un.strictCreate,G1e=dc.create,W1e=g$.create,K1e=pc.create,J1e=qi.create,X1e=y$.create,Y1e=_d.create,Q1e=bd.create,eIe=_$.create,tIe=fc.create,rIe=mc.create,nIe=hc.create,iIe=gc.create,aIe=bo.create,oIe=Jn.create,sIe=Kn.create,cIe=Li.create,uIe=Jn.createWithPreprocess,lIe=Mh.create,dIe=Object.freeze({status:"aborted"});function X(t,e,r){function n(s,c){var u;Object.defineProperty(s,"_zod",{value:s._zod??{},enumerable:!1}),(u=s._zod).traits??(u.traits=new Set),s._zod.traits.add(t),e(s,c);for(let l in o.prototype)l in s||Object.defineProperty(s,l,{value:o.prototype[l].bind(s)});s._zod.constr=o,s._zod.def=c}let i=r?.Parent??Object;class a extends i{}Object.defineProperty(a,"name",{value:t});function o(s){var c;let u=r?.Parent?new a:this;n(u,s),(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:s=>r?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var xo=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},b$={};function Fi(t){return t&&Object.assign(b$,t),b$}var Dt={};n2(Dt,{unwrapMessage:()=>ud,stringifyPrimitive:()=>z$,required:()=>Kse,randomString:()=>zse,propertyKeyTypes:()=>Z2,promiseAllObject:()=>Dse,primitiveTypes:()=>Lse,prefixIssues:()=>xa,pick:()=>Hse,partial:()=>Wse,optionalKeys:()=>H2,omit:()=>Bse,numKeys:()=>Use,nullish:()=>Xh,normalizeParams:()=>ke,merge:()=>Gse,jsonStringifyReplacer:()=>q2,joinValues:()=>x$,issue:()=>V2,isPlainObject:()=>wd,isObject:()=>Sd,getSizableOrigin:()=>Jse,getParsedType:()=>qse,getLengthableOrigin:()=>Qh,getEnumValues:()=>U2,getElementAtPath:()=>Mse,floatSafeRemainder:()=>L2,finalizeIssue:()=>Zi,extend:()=>Vse,escapeRegex:()=>Ec,esc:()=>ac,defineLazy:()=>zt,createTransparentProxy:()=>Fse,clone:()=>ka,cleanRegex:()=>Yh,cleanEnum:()=>Xse,captureStackTrace:()=>D$,cached:()=>Jh,assignProp:()=>M$,assertNotEqual:()=>Cse,assertNever:()=>jse,assertIs:()=>Nse,assertEqual:()=>Ose,assert:()=>Ase,allowsEval:()=>F2,aborted:()=>oc,NUMBER_FORMAT_RANGES:()=>B2,Class:()=>S$,BIGINT_FORMAT_RANGES:()=>Zse});function Ose(t){return t}function Cse(t){return t}function Nse(t){}function jse(t){throw new Error}function Ase(t){}function U2(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 x$(t,e="|"){return t.map(r=>z$(r)).join(e)}function q2(t,e){return typeof e=="bigint"?e.toString():e}function Jh(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Xh(t){return t==null}function Yh(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function L2(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}function zt(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 M$(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Mse(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function Dse(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let a=0;a{};function Sd(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var F2=Jh(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function wd(t){if(Sd(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(Sd(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Use(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var qse=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}`)}},Z2=new Set(["string","number","symbol"]),Lse=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Ec(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ka(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function ke(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 Fse(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,a){return e??(e=t()),Reflect.set(e,n,i,a)},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 z$(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function H2(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var B2={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]},Zse={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Hse(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 ka(t,{...t._zod.def,shape:r,checks:[]})}function Bse(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 ka(t,{...t._zod.def,shape:r,checks:[]})}function Vse(t,e){if(!wd(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 M$(this,"shape",n),n},checks:[]};return ka(t,r)}function Gse(t,e){return ka(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return M$(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function Wse(t,e,r){let n=e._zod.def.shape,i={...n};if(r)for(let a in r){if(!(a in n))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=t?new t({type:"optional",innerType:n[a]}):n[a])}else for(let a in n)i[a]=t?new t({type:"optional",innerType:n[a]}):n[a];return ka(e,{...e._zod.def,shape:i,checks:[]})}function Kse(t,e,r){let n=e._zod.def.shape,i={...n};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:n[a]}))}else for(let a in n)i[a]=new t({type:"nonoptional",innerType:n[a]});return ka(e,{...e._zod.def,shape:i,checks:[]})}function oc(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function ud(t){return typeof t=="string"?t:t?.message}function Zi(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=ud(t.inst?._zod.def?.error?.(t))??ud(e?.error?.(t))??ud(r.customError?.(t))??ud(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Jse(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Qh(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function V2(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function Xse(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var S$=class{constructor(...e){}},G2=(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,q2,2)},enumerable:!0})},W2=X("$ZodError",G2),K2=X("$ZodError",G2,{Parent:Error});function Yse(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 Qse(t,e){let r=e||function(a){return a.message},n={_errors:[]},i=a=>{for(let o of a.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(s=>i({issues:s}));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 s=n,c=0;for(;c(e,r,n,i)=>{let a=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise)throw new xo;if(o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Zi(c,a,Fi())));throw D$(s,i?.callee),s}return o.value};var tce=t=>async(e,r,n,i)=>{let a=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Zi(c,a,Fi())));throw D$(s,i?.callee),s}return o.value};var J2=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new xo;return a.issues.length?{success:!1,error:new(t??W2)(a.issues.map(o=>Zi(o,i,Fi())))}:{success:!0,data:a.value}},rce=J2(K2),X2=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new t(a.issues.map(o=>Zi(o,i,Fi())))}:{success:!0,data:a.value}},nce=X2(K2),ice=/^[cC][^\s-]{8,}$/,ace=/^[0-9a-z]+$/,oce=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,sce=/^[0-9a-vA-V]{20}$/,cce=/^[A-Za-z0-9]{27}$/,uce=/^[a-zA-Z0-9_-]{21}$/,lce=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,dce=/^([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})$/,D4=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)$/,pce=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,fce="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function mce(){return new RegExp(fce,"u")}var hce=/^(?:(?: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])$/,gce=/^(([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})$/,vce=/^((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])$/,yce=/^(([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])$/,_ce=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Y2=/^[A-Za-z0-9_-]*$/,bce=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,xce=/^\+(?:[0-9]){6,14}[0-9]$/,Q2="(?:(?:\\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])))",Sce=new RegExp(`^${Q2}$`);function e6(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 wce(t){return new RegExp(`^${e6(t)}$`)}function $ce(t){let e=e6({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(`^${Q2}T(?:${n})$`)}var Ece=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},kce=/^\d+$/,Tce=/^-?\d+(?:\.\d+)?/i,Ice=/true|false/i,Pce=/null/i,Rce=/^[^A-Z]*$/,Oce=/^[^a-z]*$/,Jr=X("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),t6={number:"number",bigint:"bigint",object:"date"},r6=X("$ZodCheckLessThan",(t,e)=>{Jr.init(t,e);let r=t6[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Jr.init(t,e);let r=t6[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>a&&(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})}}),Cce=X("$ZodCheckMultipleOf",(t,e)=>{Jr.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):L2(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})}}),Nce=X("$ZodCheckNumberFormat",(t,e)=>{Jr.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,a]=B2[e.format];t._zod.onattach.push(o=>{let s=o._zod.bag;s.format=e.format,s.minimum=i,s.maximum=a,r&&(s.pattern=kce)}),t._zod.check=o=>{let s=o.value;if(r){if(!Number.isInteger(s)){o.issues.push({expected:n,format:e.format,code:"invalid_type",input:s,inst:t});return}if(!Number.isSafeInteger(s)){s>0?o.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,continue:!e.abort}):o.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,continue:!e.abort});return}}sa&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inst:t})}}),jce=X("$ZodCheckMaxLength",(t,e)=>{Jr.init(t,e),t._zod.when=r=>{let n=r.value;return!Xh(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 a=Qh(n);r.issues.push({origin:a,code:"too_big",maximum:e.maximum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),Ace=X("$ZodCheckMinLength",(t,e)=>{Jr.init(t,e),t._zod.when=r=>{let n=r.value;return!Xh(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 a=Qh(n);r.issues.push({origin:a,code:"too_small",minimum:e.minimum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),Mce=X("$ZodCheckLengthEquals",(t,e)=>{Jr.init(t,e),t._zod.when=r=>{let n=r.value;return!Xh(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 a=Qh(n),o=i>e.length;r.issues.push({origin:a,...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})}}),eg=X("$ZodCheckStringFormat",(t,e)=>{var r,n;Jr.init(t,e),t._zod.onattach.push(i=>{let a=i._zod.bag;a.format=e.format,e.pattern&&(a.patterns??(a.patterns=new Set),a.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=()=>{})}),Dce=X("$ZodCheckRegex",(t,e)=>{eg.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})}}),zce=X("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Rce),eg.init(t,e)}),Uce=X("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Oce),eg.init(t,e)}),qce=X("$ZodCheckIncludes",(t,e)=>{Jr.init(t,e);let r=Ec(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{let a=i._zod.bag;a.patterns??(a.patterns=new Set),a.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})}}),Lce=X("$ZodCheckStartsWith",(t,e)=>{Jr.init(t,e);let r=new RegExp(`^${Ec(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})}}),Fce=X("$ZodCheckEndsWith",(t,e)=>{Jr.init(t,e);let r=new RegExp(`.*${Ec(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})}}),Zce=X("$ZodCheckOverwrite",(t,e)=>{Jr.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),w$=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)),a=n.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of a)this.content.push(o)}compile(){let e=Function,r=this?.args,i=[...(this?.content??[""]).map(a=>` ${a}`)];return new e(...r,i.join(` -`))}},Nce={major:4,minor:0,patch:0},Ut=X("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Nce;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let a of i._zod.onattach)a(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let i=(a,o,s)=>{let c=tc(a),u;for(let l of o){if(l._zod.when){if(!l._zod.when(a))continue}else if(c)continue;let d=a.issues.length,p=l._zod.check(a);if(p instanceof Promise&&s?.async===!1)throw new bo;if(u||p instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await p,a.issues.length!==d&&(c||(c=tc(a,d)))});else{if(a.issues.length===d)continue;c||(c=tc(a,d))}}return u?u.then(()=>a):a};t._zod.run=(a,o)=>{let s=t._zod.parse(a,o);if(s instanceof Promise){if(o.async===!1)throw new bo;return s.then(c=>i(c,n,o))}return i(s,n,o)}}t["~standard"]={validate:i=>{try{let a=Bse(t,i);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return Vse(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),M$=X("$ZodString",(t,e)=>{Ut.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??mce(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}}),Lt=X("$ZodStringFormat",(t,e)=>{Xh.init(t,e),M$.init(t,e)}),jce=X("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=ece),Lt.init(t,e)}),Ace=X("$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=N4(n))}else e.pattern??(e.pattern=N4());Lt.init(t,e)}),Mce=X("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=tce),Lt.init(t,e)}),zce=X("$ZodURL",(t,e)=>{Lt.init(t,e),t._zod.check=r=>{try{let n=r.value,i=new URL(n),a=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:uce.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("/")&&a.endsWith("/")?r.value=a.slice(0,-1):r.value=a;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),Dce=X("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=nce()),Lt.init(t,e)}),Uce=X("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Yse),Lt.init(t,e)}),qce=X("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=Gse),Lt.init(t,e)}),Lce=X("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Wse),Lt.init(t,e)}),Fce=X("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Kse),Lt.init(t,e)}),Zce=X("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Jse),Lt.init(t,e)}),Hce=X("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Xse),Lt.init(t,e)}),Bce=X("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=fce(e)),Lt.init(t,e)}),Vce=X("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=dce),Lt.init(t,e)}),Gce=X("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=pce(e)),Lt.init(t,e)}),Wce=X("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Qse),Lt.init(t,e)}),Kce=X("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=ice),Lt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),Jce=X("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=ace),Lt.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})}}}),Xce=X("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=oce),Lt.init(t,e)}),Yce=X("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=sce),Lt.init(t,e),t._zod.check=r=>{let[n,i]=r.value.split("/");try{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://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function e6(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var Qce=X("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=cce),Lt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{e6(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function eue(t){if(!W2.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return e6(r)}var tue=X("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=W2),Lt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{eue(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),rue=X("$ZodE164",(t,e)=>{e.pattern??(e.pattern=lce),Lt.init(t,e)});function nue(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 iue=X("$ZodJWT",(t,e)=>{Lt.init(t,e),t._zod.check=r=>{nue(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),t6=X("$ZodNumber",(t,e)=>{Ut.init(t,e),t._zod.pattern=t._zod.bag.pattern??gce,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 a=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,...a?{received:a}:{}}),r}}),aue=X("$ZodNumber",(t,e)=>{Sce.init(t,e),t6.init(t,e)}),oue=X("$ZodBoolean",(t,e)=>{Ut.init(t,e),t._zod.pattern=vce,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}}),sue=X("$ZodNull",(t,e)=>{Ut.init(t,e),t._zod.pattern=yce,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}}),cue=X("$ZodUnknown",(t,e)=>{Ut.init(t,e),t._zod.parse=r=>r}),uue=X("$ZodNever",(t,e)=>{Ut.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function j4(t,e,r){t.issues.length&&e.issues.push(...Sa(r,t.issues)),e.value[r]=t.value}var lue=X("$ZodArray",(t,e)=>{Ut.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 a=[];for(let o=0;oj4(u,r,o))):j4(c,r,o)}return a.length?Promise.all(a).then(()=>r):r}});function wh(t,e,r){t.issues.length&&e.issues.push(...Sa(r,t.issues)),e.value[r]=t.value}function A4(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(...Sa(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var due=X("$ZodObject",(t,e)=>{Ut.init(t,e);let r=Gh(()=>{let d=Object.keys(e.shape);for(let f of d)if(!(e.shape[f]instanceof Ut))throw new Error(`Invalid element at key "${f}": 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 f in d){let h=d[f]._zod;if(h.values){p[f]??(p[f]=new Set);for(let _ of h.values)p[f].add(_)}}return p});let n=d=>{let p=new b$(["shape","payload","ctx"]),f=r.value,h=v=>{let g=ec(v);return`shape[${g}]._zod.run({ value: input[${g}], issues: [] }, ctx)`};p.write("const input = payload.value;");let _=Object.create(null),y=0;for(let v of f.keys)_[v]=`key_${y++}`;p.write("const newResult = {}");for(let v of f.keys)if(f.optionalKeys.has(v)){let g=_[v];p.write(`const ${g} = ${h(v)};`);let b=ec(v);p.write(` - if (${g}.issues.length) { +`))}},Hce={major:4,minor:0,patch:0},Ut=X("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Hce;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let a of i._zod.onattach)a(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let i=(a,o,s)=>{let c=oc(a),u;for(let l of o){if(l._zod.when){if(!l._zod.when(a))continue}else if(c)continue;let d=a.issues.length,p=l._zod.check(a);if(p instanceof Promise&&s?.async===!1)throw new xo;if(u||p instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await p,a.issues.length!==d&&(c||(c=oc(a,d)))});else{if(a.issues.length===d)continue;c||(c=oc(a,d))}}return u?u.then(()=>a):a};t._zod.run=(a,o)=>{let s=t._zod.parse(a,o);if(s instanceof Promise){if(o.async===!1)throw new xo;return s.then(c=>i(c,n,o))}return i(s,n,o)}}t["~standard"]={validate:i=>{try{let a=rce(t,i);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return nce(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),U$=X("$ZodString",(t,e)=>{Ut.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Ece(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}}),Lt=X("$ZodStringFormat",(t,e)=>{eg.init(t,e),U$.init(t,e)}),Bce=X("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=dce),Lt.init(t,e)}),Vce=X("$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=D4(n))}else e.pattern??(e.pattern=D4());Lt.init(t,e)}),Gce=X("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=pce),Lt.init(t,e)}),Wce=X("$ZodURL",(t,e)=>{Lt.init(t,e),t._zod.check=r=>{try{let n=r.value,i=new URL(n),a=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:bce.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("/")&&a.endsWith("/")?r.value=a.slice(0,-1):r.value=a;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),Kce=X("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=mce()),Lt.init(t,e)}),Jce=X("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=uce),Lt.init(t,e)}),Xce=X("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=ice),Lt.init(t,e)}),Yce=X("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=ace),Lt.init(t,e)}),Qce=X("$ZodULID",(t,e)=>{e.pattern??(e.pattern=oce),Lt.init(t,e)}),eue=X("$ZodXID",(t,e)=>{e.pattern??(e.pattern=sce),Lt.init(t,e)}),tue=X("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=cce),Lt.init(t,e)}),rue=X("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=$ce(e)),Lt.init(t,e)}),nue=X("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Sce),Lt.init(t,e)}),iue=X("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=wce(e)),Lt.init(t,e)}),aue=X("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=lce),Lt.init(t,e)}),oue=X("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=hce),Lt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),sue=X("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=gce),Lt.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})}}}),cue=X("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=vce),Lt.init(t,e)}),uue=X("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=yce),Lt.init(t,e),t._zod.check=r=>{let[n,i]=r.value.split("/");try{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://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function i6(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var lue=X("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=_ce),Lt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{i6(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function due(t){if(!Y2.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return i6(r)}var pue=X("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Y2),Lt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{due(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),fue=X("$ZodE164",(t,e)=>{e.pattern??(e.pattern=xce),Lt.init(t,e)});function mue(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 hue=X("$ZodJWT",(t,e)=>{Lt.init(t,e),t._zod.check=r=>{mue(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),a6=X("$ZodNumber",(t,e)=>{Ut.init(t,e),t._zod.pattern=t._zod.bag.pattern??Tce,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 a=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,...a?{received:a}:{}}),r}}),gue=X("$ZodNumber",(t,e)=>{Nce.init(t,e),a6.init(t,e)}),vue=X("$ZodBoolean",(t,e)=>{Ut.init(t,e),t._zod.pattern=Ice,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}}),yue=X("$ZodNull",(t,e)=>{Ut.init(t,e),t._zod.pattern=Pce,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}}),_ue=X("$ZodUnknown",(t,e)=>{Ut.init(t,e),t._zod.parse=r=>r}),bue=X("$ZodNever",(t,e)=>{Ut.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function z4(t,e,r){t.issues.length&&e.issues.push(...xa(r,t.issues)),e.value[r]=t.value}var xue=X("$ZodArray",(t,e)=>{Ut.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 a=[];for(let o=0;oz4(u,r,o))):z4(c,r,o)}return a.length?Promise.all(a).then(()=>r):r}});function kh(t,e,r){t.issues.length&&e.issues.push(...xa(r,t.issues)),e.value[r]=t.value}function U4(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(...xa(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var Sue=X("$ZodObject",(t,e)=>{Ut.init(t,e);let r=Jh(()=>{let d=Object.keys(e.shape);for(let f of d)if(!(e.shape[f]instanceof Ut))throw new Error(`Invalid element at key "${f}": expected a Zod schema`);let p=H2(e.shape);return{shape:e.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(p)}});zt(t._zod,"propValues",()=>{let d=e.shape,p={};for(let f in d){let h=d[f]._zod;if(h.values){p[f]??(p[f]=new Set);for(let _ of h.values)p[f].add(_)}}return p});let n=d=>{let p=new w$(["shape","payload","ctx"]),f=r.value,h=y=>{let v=ac(y);return`shape[${v}]._zod.run({ value: input[${v}], issues: [] }, ctx)`};p.write("const input = payload.value;");let _=Object.create(null),g=0;for(let y of f.keys)_[y]=`key_${g++}`;p.write("const newResult = {}");for(let y of f.keys)if(f.optionalKeys.has(y)){let v=_[y];p.write(`const ${v} = ${h(y)};`);let b=ac(y);p.write(` + if (${v}.issues.length) { if (input[${b}] === undefined) { if (${b} in input) { newResult[${b}] = undefined; } } else { payload.issues = payload.issues.concat( - ${g}.issues.map((iss) => ({ + ${v}.issues.map((iss) => ({ ...iss, path: iss.path ? [${b}, ...iss.path] : [${b}], })) ); } - } else if (${g}.value === undefined) { + } else if (${v}.value === undefined) { if (${b} in input) newResult[${b}] = undefined; } else { - newResult[${b}] = ${g}.value; + newResult[${b}] = ${v}.value; } - `)}else{let g=_[v];p.write(`const ${g} = ${h(v)};`),p.write(` - if (${g}.issues.length) payload.issues = payload.issues.concat(${g}.issues.map(iss => ({ + `)}else{let v=_[y];p.write(`const ${v} = ${h(y)};`),p.write(` + if (${v}.issues.length) payload.issues = payload.issues.concat(${v}.issues.map(iss => ({ ...iss, - path: iss.path ? [${ec(v)}, ...iss.path] : [${ec(v)}] - })));`),p.write(`newResult[${ec(v)}] = ${g}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let m=p.compile();return(v,g)=>m(d,v,g)},i,a=_d,o=!v$.jitless,c=o&&D2.value,u=e.catchall,l;t._zod.parse=(d,p)=>{l??(l=r.value);let f=d.value;if(!a(f))return d.issues.push({expected:"object",code:"invalid_type",input:f,inst:t}),d;let h=[];if(o&&c&&p?.async===!1&&p.jitless!==!0)i||(i=n(e.shape)),d=i(d,p);else{d.value={};let g=l.shape;for(let b of l.keys){let S=g[b],x=S._zod.run({value:f[b],issues:[]},p),w=S._zod.optin==="optional"&&S._zod.optout==="optional";x instanceof Promise?h.push(x.then(E=>w?A4(E,d,b,f):wh(E,d,b))):w?A4(x,d,b,f):wh(x,d,b)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let _=[],y=l.keySet,m=u._zod,v=m.def.type;for(let g of Object.keys(f)){if(y.has(g))continue;if(v==="never"){_.push(g);continue}let b=m.run({value:f[g],issues:[]},p);b instanceof Promise?h.push(b.then(S=>wh(S,d,g))):wh(b,d,g)}return _.length&&d.issues.push({code:"unrecognized_keys",keys:_,input:f,inst:t}),h.length?Promise.all(h).then(()=>d):d}});function M4(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(a=>Zi(a,n,Fi())))}),e}var r6=X("$ZodUnion",(t,e)=>{Ut.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=>Kh(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let i=!1,a=[];for(let o of e.options){let s=o._zod.run({value:r.value,issues:[]},n);if(s instanceof Promise)a.push(s),i=!0;else{if(s.issues.length===0)return s;a.push(s)}}return i?Promise.all(a).then(o=>M4(o,r,t,n)):M4(a,r,t,n)}}),pue=X("$ZodDiscriminatedUnion",(t,e)=>{r6.init(t,e);let r=t._zod.parse;Dt(t._zod,"propValues",()=>{let i={};for(let a of e.options){let o=a._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let[s,c]of Object.entries(o)){i[s]||(i[s]=new Set);for(let u of c)i[s].add(u)}}return i});let n=Gh(()=>{let i=e.options,a=new Map;for(let o of i){let s=o._zod.propValues[e.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of s){if(a.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);a.set(c,o)}}return a});t._zod.parse=(i,a)=>{let o=i.value;if(!_d(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let s=n.value.get(o?.[e.discriminator]);return s?s._zod.run(i,a):e.unionFallback?r(i,a):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[e.discriminator],inst:t}),i)}}),fue=X("$ZodIntersection",(t,e)=>{Ut.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,a=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return a instanceof Promise||o instanceof Promise?Promise.all([a,o]).then(([c,u])=>z4(r,c,u)):z4(r,a,o)}});function x$(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(bd(t)&&bd(e)){let r=Object.keys(e),n=Object.keys(t).filter(a=>r.indexOf(a)!==-1),i={...t,...e};for(let a of n){let o=x$(t[a],e[a]);if(!o.valid)return{valid:!1,mergeErrorPath:[a,...o.mergeErrorPath]};i[a]=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{Ut.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!bd(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let a=[];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?a.push(u.then(l=>{l.issues.length&&r.issues.push(...Sa(c,l.issues)),r.value[c]=l.value})):(u.issues.length&&r.issues.push(...Sa(c,u.issues)),r.value[c]=u.value)}let s;for(let c in i)o.has(c)||(s=s??[],s.push(c));s&&s.length>0&&r.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:s})}else{r.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let s=e.keyType._zod.run({value:o,issues:[]},n);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(s.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:s.issues.map(u=>Zi(u,n,Fi())),input:o,path:[o],inst:t}),r.value[s.value]=s.value;continue}let c=e.valueType._zod.run({value:i[o],issues:[]},n);c instanceof Promise?a.push(c.then(u=>{u.issues.length&&r.issues.push(...Sa(o,u.issues)),r.value[s.value]=u.value})):(c.issues.length&&r.issues.push(...Sa(o,c.issues)),r.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>r):r}}),hue=X("$ZodEnum",(t,e)=>{Ut.init(t,e);let r=A2(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>U2.has(typeof n)).map(n=>typeof n=="string"?bc(n):n.toString()).join("|")})$`),t._zod.parse=(n,i)=>{let a=n.value;return t._zod.values.has(a)||n.issues.push({code:"invalid_value",values:r,input:a,inst:t}),n}}),gue=X("$ZodLiteral",(t,e)=>{Ut.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?bc(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}}),vue=X("$ZodTransform",(t,e)=>{Ut.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 bo;return r.value=i,r}}),yue=X("$ZodOptional",(t,e)=>{Ut.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(`^(${Kh(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)}),_ue=X("$ZodNullable",(t,e)=>{Ut.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(`^(${Kh(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)}),bue=X("$ZodDefault",(t,e)=>{Ut.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(a=>D4(a,e)):D4(i,e)}});function D4(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var xue=X("$ZodPrefault",(t,e)=>{Ut.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))}),Sue=X("$ZodNonOptional",(t,e)=>{Ut.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(a=>U4(a,t)):U4(i,t)}});function U4(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 wue=X("$ZodCatch",(t,e)=>{Ut.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(a=>(r.value=a.value,a.issues.length&&(r.value=e.catchValue({...r,error:{issues:a.issues.map(o=>Zi(o,n,Fi()))},input:r.value}),r.issues=[]),r)):(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>Zi(a,n,Fi()))},input:r.value}),r.issues=[]),r)}}),$ue=X("$ZodPipe",(t,e)=>{Ut.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(a=>q4(a,e,n)):q4(i,e,n)}});function q4(t,e,r){return tc(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var Eue=X("$ZodReadonly",(t,e)=>{Ut.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(L4):L4(i)}});function L4(t){return t.value=Object.freeze(t.value),t}var kue=X("$ZodCustom",(t,e)=>{Kr.init(t,e),Ut.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(a=>F4(a,r,n,t));F4(i,r,n,t)}});function F4(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(F2(i))}}var Tue=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},Iue=()=>{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 ${Tue(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${A$(n.values[0])}`:`Invalid option: expected one of ${y$(n.values,"|")}`;case"too_big":{let i=n.inclusive?"<=":"<",a=e(n.origin);return a?`Too big: expected ${n.origin??"value"} to have ${i}${n.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${i}${n.maximum.toString()}`}case"too_small":{let i=n.inclusive?">=":">",a=e(n.origin);return a?`Too small: expected ${n.origin} to have ${i}${n.minimum.toString()} ${a.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":""}: ${y$(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 Pue(){return{localeError:Iue()}}var S$=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 Oue(){return new S$}var $h=Oue();function Rue(t,e){return new t({type:"string",...ke(e)})}function Cue(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...ke(e)})}function Z4(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...ke(e)})}function Nue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...ke(e)})}function jue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ke(e)})}function Aue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ke(e)})}function Mue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ke(e)})}function zue(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...ke(e)})}function Due(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...ke(e)})}function Uue(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...ke(e)})}function que(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...ke(e)})}function Lue(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...ke(e)})}function Fue(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...ke(e)})}function Zue(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...ke(e)})}function Hue(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...ke(e)})}function Bue(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...ke(e)})}function Vue(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...ke(e)})}function Gue(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ke(e)})}function Wue(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ke(e)})}function Kue(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...ke(e)})}function Jue(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...ke(e)})}function Xue(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...ke(e)})}function Yue(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...ke(e)})}function Que(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ke(e)})}function ele(t,e){return new t({type:"string",format:"date",check:"string_format",...ke(e)})}function tle(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...ke(e)})}function rle(t,e){return new t({type:"string",format:"duration",check:"string_format",...ke(e)})}function nle(t,e){return new t({type:"number",checks:[],...ke(e)})}function ile(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...ke(e)})}function ale(t,e){return new t({type:"boolean",...ke(e)})}function ole(t,e){return new t({type:"null",...ke(e)})}function sle(t){return new t({type:"unknown"})}function cle(t,e){return new t({type:"never",...ke(e)})}function H4(t,e){return new Y2({check:"less_than",...ke(e),value:t,inclusive:!1})}function r$(t,e){return new Y2({check:"less_than",...ke(e),value:t,inclusive:!0})}function B4(t,e){return new Q2({check:"greater_than",...ke(e),value:t,inclusive:!1})}function n$(t,e){return new Q2({check:"greater_than",...ke(e),value:t,inclusive:!0})}function V4(t,e){return new xce({check:"multiple_of",...ke(e),value:t})}function n6(t,e){return new wce({check:"max_length",...ke(e),maximum:t})}function jh(t,e){return new $ce({check:"min_length",...ke(e),minimum:t})}function i6(t,e){return new Ece({check:"length_equals",...ke(e),length:t})}function ule(t,e){return new kce({check:"string_format",format:"regex",...ke(e),pattern:t})}function lle(t){return new Tce({check:"string_format",format:"lowercase",...ke(t)})}function dle(t){return new Ice({check:"string_format",format:"uppercase",...ke(t)})}function ple(t,e){return new Pce({check:"string_format",format:"includes",...ke(e),includes:t})}function fle(t,e){return new Oce({check:"string_format",format:"starts_with",...ke(e),prefix:t})}function mle(t,e){return new Rce({check:"string_format",format:"ends_with",...ke(e),suffix:t})}function Sd(t){return new Cce({check:"overwrite",tx:t})}function hle(t){return Sd(e=>e.normalize(t))}function gle(){return Sd(t=>t.trim())}function vle(){return Sd(t=>t.toLowerCase())}function yle(){return Sd(t=>t.toUpperCase())}function _le(t,e,r){return new t({type:"array",element:e,...ke(r)})}function ble(t,e,r){let n=ke(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function xle(t,e,r){return new t({type:"custom",check:"custom",fn:e,...ke(r)})}var a6={};Q4(a6,{time:()=>d6,duration:()=>f6,datetime:()=>s6,date:()=>u6,ZodISOTime:()=>l6,ZodISODuration:()=>p6,ZodISODateTime:()=>o6,ZodISODate:()=>c6});var o6=X("ZodISODateTime",(t,e)=>{Bce.init(t,e),Vt.init(t,e)});function s6(t){return Que(o6,t)}var c6=X("ZodISODate",(t,e)=>{Vce.init(t,e),Vt.init(t,e)});function u6(t){return ele(c6,t)}var l6=X("ZodISOTime",(t,e)=>{Gce.init(t,e),Vt.init(t,e)});function d6(t){return tle(l6,t)}var p6=X("ZodISODuration",(t,e)=>{Wce.init(t,e),Vt.init(t,e)});function f6(t){return rle(p6,t)}var m6=(t,e)=>{H2.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Fse(t,r)},flatten:{value:r=>Lse(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},B1e=X("ZodError",m6),Yh=X("ZodError",m6,{Parent:Error}),Sle=Zse(Yh),wle=Hse(Yh),$le=V2(Yh),Ele=G2(Yh),Bt=X("ZodType",(t,e)=>(Ut.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)=>Ta(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>Sle(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>$le(t,r,n),t.parseAsync=async(r,n)=>wle(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Ele(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(hde(r,n)),t.superRefine=r=>t.check(gde(r)),t.overwrite=r=>t.check(Sd(r)),t.optional=()=>_e(t),t.nullable=()=>K4(t),t.nullish=()=>_e(K4(t)),t.nonoptional=r=>sde(t,r),t.array=()=>it(t),t.or=r=>Ft([t,r]),t.and=r=>z$(t,r),t.transform=r=>$$(t,x6(r)),t.default=r=>ide(t,r),t.prefault=r=>ode(t,r),t.catch=r=>ude(t,r),t.pipe=r=>$$(t,r),t.readonly=()=>pde(t),t.describe=r=>{let n=t.clone();return $h.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return $h.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return $h.get(t);let n=t.clone();return $h.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),h6=X("_ZodString",(t,e)=>{M$.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(ule(...n)),t.includes=(...n)=>t.check(ple(...n)),t.startsWith=(...n)=>t.check(fle(...n)),t.endsWith=(...n)=>t.check(mle(...n)),t.min=(...n)=>t.check(jh(...n)),t.max=(...n)=>t.check(n6(...n)),t.length=(...n)=>t.check(i6(...n)),t.nonempty=(...n)=>t.check(jh(1,...n)),t.lowercase=n=>t.check(lle(n)),t.uppercase=n=>t.check(dle(n)),t.trim=()=>t.check(gle()),t.normalize=(...n)=>t.check(hle(...n)),t.toLowerCase=()=>t.check(vle()),t.toUpperCase=()=>t.check(yle())}),kle=X("ZodString",(t,e)=>{M$.init(t,e),h6.init(t,e),t.email=r=>t.check(Cue(Tle,r)),t.url=r=>t.check(zue(Ile,r)),t.jwt=r=>t.check(Yue(Zle,r)),t.emoji=r=>t.check(Due(Ple,r)),t.guid=r=>t.check(Z4(G4,r)),t.uuid=r=>t.check(Nue(Eh,r)),t.uuidv4=r=>t.check(jue(Eh,r)),t.uuidv6=r=>t.check(Aue(Eh,r)),t.uuidv7=r=>t.check(Mue(Eh,r)),t.nanoid=r=>t.check(Uue(Ole,r)),t.guid=r=>t.check(Z4(G4,r)),t.cuid=r=>t.check(que(Rle,r)),t.cuid2=r=>t.check(Lue(Cle,r)),t.ulid=r=>t.check(Fue(Nle,r)),t.base64=r=>t.check(Kue(qle,r)),t.base64url=r=>t.check(Jue(Lle,r)),t.xid=r=>t.check(Zue(jle,r)),t.ksuid=r=>t.check(Hue(Ale,r)),t.ipv4=r=>t.check(Bue(Mle,r)),t.ipv6=r=>t.check(Vue(zle,r)),t.cidrv4=r=>t.check(Gue(Dle,r)),t.cidrv6=r=>t.check(Wue(Ule,r)),t.e164=r=>t.check(Xue(Fle,r)),t.datetime=r=>t.check(s6(r)),t.date=r=>t.check(u6(r)),t.time=r=>t.check(d6(r)),t.duration=r=>t.check(f6(r))});function G(t){return Rue(kle,t)}var Vt=X("ZodStringFormat",(t,e)=>{Lt.init(t,e),h6.init(t,e)}),Tle=X("ZodEmail",(t,e)=>{Mce.init(t,e),Vt.init(t,e)}),G4=X("ZodGUID",(t,e)=>{jce.init(t,e),Vt.init(t,e)}),Eh=X("ZodUUID",(t,e)=>{Ace.init(t,e),Vt.init(t,e)}),Ile=X("ZodURL",(t,e)=>{zce.init(t,e),Vt.init(t,e)}),Ple=X("ZodEmoji",(t,e)=>{Dce.init(t,e),Vt.init(t,e)}),Ole=X("ZodNanoID",(t,e)=>{Uce.init(t,e),Vt.init(t,e)}),Rle=X("ZodCUID",(t,e)=>{qce.init(t,e),Vt.init(t,e)}),Cle=X("ZodCUID2",(t,e)=>{Lce.init(t,e),Vt.init(t,e)}),Nle=X("ZodULID",(t,e)=>{Fce.init(t,e),Vt.init(t,e)}),jle=X("ZodXID",(t,e)=>{Zce.init(t,e),Vt.init(t,e)}),Ale=X("ZodKSUID",(t,e)=>{Hce.init(t,e),Vt.init(t,e)}),Mle=X("ZodIPv4",(t,e)=>{Kce.init(t,e),Vt.init(t,e)}),zle=X("ZodIPv6",(t,e)=>{Jce.init(t,e),Vt.init(t,e)}),Dle=X("ZodCIDRv4",(t,e)=>{Xce.init(t,e),Vt.init(t,e)}),Ule=X("ZodCIDRv6",(t,e)=>{Yce.init(t,e),Vt.init(t,e)}),qle=X("ZodBase64",(t,e)=>{Qce.init(t,e),Vt.init(t,e)}),Lle=X("ZodBase64URL",(t,e)=>{tue.init(t,e),Vt.init(t,e)}),Fle=X("ZodE164",(t,e)=>{rue.init(t,e),Vt.init(t,e)}),Zle=X("ZodJWT",(t,e)=>{iue.init(t,e),Vt.init(t,e)}),g6=X("ZodNumber",(t,e)=>{t6.init(t,e),Bt.init(t,e),t.gt=(n,i)=>t.check(B4(n,i)),t.gte=(n,i)=>t.check(n$(n,i)),t.min=(n,i)=>t.check(n$(n,i)),t.lt=(n,i)=>t.check(H4(n,i)),t.lte=(n,i)=>t.check(r$(n,i)),t.max=(n,i)=>t.check(r$(n,i)),t.int=n=>t.check(W4(n)),t.safe=n=>t.check(W4(n)),t.positive=n=>t.check(B4(0,n)),t.nonnegative=n=>t.check(n$(0,n)),t.negative=n=>t.check(H4(0,n)),t.nonpositive=n=>t.check(r$(0,n)),t.multipleOf=(n,i)=>t.check(V4(n,i)),t.step=(n,i)=>t.check(V4(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 nle(g6,t)}var Hle=X("ZodNumberFormat",(t,e)=>{aue.init(t,e),g6.init(t,e)});function W4(t){return ile(Hle,t)}var Ble=X("ZodBoolean",(t,e)=>{oue.init(t,e),Bt.init(t,e)});function xr(t){return ale(Ble,t)}var Vle=X("ZodNull",(t,e)=>{sue.init(t,e),Bt.init(t,e)});function v6(t){return ole(Vle,t)}var Gle=X("ZodUnknown",(t,e)=>{cue.init(t,e),Bt.init(t,e)});function nr(){return sle(Gle)}var Wle=X("ZodNever",(t,e)=>{uue.init(t,e),Bt.init(t,e)});function Kle(t){return cle(Wle,t)}var Jle=X("ZodArray",(t,e)=>{lue.init(t,e),Bt.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(jh(r,n)),t.nonempty=r=>t.check(jh(1,r)),t.max=(r,n)=>t.check(n6(r,n)),t.length=(r,n)=>t.check(i6(r,n)),t.unwrap=()=>t.element});function it(t,e){return _le(Jle,t,e)}var y6=X("ZodObject",(t,e)=>{due.init(t,e),Bt.init(t,e),zt.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Sr(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:Kle()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>zt.extend(t,r),t.merge=r=>zt.merge(t,r),t.pick=r=>zt.pick(t,r),t.omit=r=>zt.omit(t,r),t.partial=(...r)=>zt.partial(S6,t,r[0]),t.required=(...r)=>zt.required(w6,t,r[0])});function re(t,e){let r={type:"object",get shape(){return zt.assignProp(this,"shape",{...t}),this.shape},...zt.normalizeParams(e)};return new y6(r)}function Kn(t,e){return new y6({type:"object",get shape(){return zt.assignProp(this,"shape",{...t}),this.shape},catchall:nr(),...zt.normalizeParams(e)})}var _6=X("ZodUnion",(t,e)=>{r6.init(t,e),Bt.init(t,e),t.options=e.options});function Ft(t,e){return new _6({type:"union",options:t,...zt.normalizeParams(e)})}var Xle=X("ZodDiscriminatedUnion",(t,e)=>{_6.init(t,e),pue.init(t,e)});function b6(t,e,r){return new Xle({type:"union",options:e,discriminator:t,...zt.normalizeParams(r)})}var Yle=X("ZodIntersection",(t,e)=>{fue.init(t,e),Bt.init(t,e)});function z$(t,e){return new Yle({type:"intersection",left:t,right:e})}var Qle=X("ZodRecord",(t,e)=>{mue.init(t,e),Bt.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function ir(t,e,r){return new Qle({type:"record",keyType:t,valueType:e,...zt.normalizeParams(r)})}var w$=X("ZodEnum",(t,e)=>{hue.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 a={};for(let o of n)if(r.has(o))a[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new w$({...e,checks:[],...zt.normalizeParams(i),entries:a})},t.exclude=(n,i)=>{let a={...e.entries};for(let o of n)if(r.has(o))delete a[o];else throw new Error(`Key ${o} not found in enum`);return new w$({...e,checks:[],...zt.normalizeParams(i),entries:a})}});function Sr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new w$({type:"enum",entries:r,...zt.normalizeParams(e)})}var ede=X("ZodLiteral",(t,e)=>{gue.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 be(t,e){return new ede({type:"literal",values:Array.isArray(t)?t:[t],...zt.normalizeParams(e)})}var tde=X("ZodTransform",(t,e)=>{vue.init(t,e),Bt.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=a=>{if(typeof a=="string")r.issues.push(zt.issue(a,r.value,e));else{let o=a;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(zt.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(a=>(r.value=a,r)):(r.value=i,r)}});function x6(t){return new tde({type:"transform",transform:t})}var S6=X("ZodOptional",(t,e)=>{yue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function _e(t){return new S6({type:"optional",innerType:t})}var rde=X("ZodNullable",(t,e)=>{_ue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function K4(t){return new rde({type:"nullable",innerType:t})}var nde=X("ZodDefault",(t,e)=>{bue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function ide(t,e){return new nde({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var ade=X("ZodPrefault",(t,e)=>{xue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function ode(t,e){return new ade({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var w6=X("ZodNonOptional",(t,e)=>{Sue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function sde(t,e){return new w6({type:"nonoptional",innerType:t,...zt.normalizeParams(e)})}var cde=X("ZodCatch",(t,e)=>{wue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function ude(t,e){return new cde({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var lde=X("ZodPipe",(t,e)=>{$ue.init(t,e),Bt.init(t,e),t.in=e.in,t.out=e.out});function $$(t,e){return new lde({type:"pipe",in:t,out:e})}var dde=X("ZodReadonly",(t,e)=>{Eue.init(t,e),Bt.init(t,e)});function pde(t){return new dde({type:"readonly",innerType:t})}var $6=X("ZodCustom",(t,e)=>{kue.init(t,e),Bt.init(t,e)});function fde(t,e){let r=new Kr({check:"custom",...zt.normalizeParams(e)});return r._zod.check=t,r}function mde(t,e){return ble($6,t??(()=>!0),e)}function hde(t,e={}){return xle($6,t,e)}function gde(t,e){let r=fde(n=>(n.addIssue=i=>{if(typeof i=="string")n.issues.push(zt.issue(i,n.value,r._zod.def));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=r),a.continue??(a.continue=!r._zod.def.abort),n.issues.push(zt.issue(a))}},t(n.value,n)),e);return r}function E6(t,e){return $$(x6(t),e)}Fi(Pue());var D$="io.modelcontextprotocol/related-task",Qh="2.0",vi=mde(t=>t!==null&&(typeof t=="object"||typeof t=="function")),k6=Ft([G(),Rt().int()]),T6=G(),vde=Kn({ttl:Ft([Rt(),v6()]).optional(),pollInterval:Rt().optional()}),U$=Kn({taskId:G()}),yde=Kn({progressToken:k6.optional(),[D$]:U$.optional()}),Jr=Kn({task:vde.optional(),_meta:yde.optional()}),fr=re({method:G(),params:Jr.optional()}),xo=Kn({_meta:re({[D$]:_e(U$)}).passthrough().optional()}),Tn=re({method:G(),params:xo.optional()}),wr=Kn({_meta:Kn({[D$]:U$.optional()}).optional()}),eg=Ft([G(),Rt().int()]),_de=re({jsonrpc:be(Qh),id:eg,...fr.shape}).strict();var bde=re({jsonrpc:be(Qh),...Tn.shape}).strict();var xde=re({jsonrpc:be(Qh),id:eg,result:wr}).strict();var J4;(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"})(J4||(J4={}));var Sde=re({jsonrpc:be(Qh),id:eg,error:re({code:Rt().int(),message:G(),data:_e(nr())})}).strict();var V1e=Ft([_de,bde,xde,Sde]),I6=wr.strict(),wde=xo.extend({requestId:eg,reason:G().optional()}),P6=Tn.extend({method:be("notifications/cancelled"),params:wde}),$de=re({src:G(),mimeType:G().optional(),sizes:it(G()).optional()}),wd=re({icons:it($de).optional()}),hc=re({name:G(),title:G().optional()}),O6=hc.extend({...hc.shape,...wd.shape,version:G(),websiteUrl:G().optional()}),Ede=z$(re({applyDefaults:xr().optional()}),ir(G(),nr())),kde=E6(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,z$(re({form:Ede.optional(),url:vi.optional()}),ir(G(),nr()).optional())),Tde=re({list:_e(re({}).passthrough()),cancel:_e(re({}).passthrough()),requests:_e(re({sampling:_e(re({createMessage:_e(re({}).passthrough())}).passthrough()),elicitation:_e(re({create:_e(re({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Ide=re({list:_e(re({}).passthrough()),cancel:_e(re({}).passthrough()),requests:_e(re({tools:_e(re({call:_e(re({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Pde=re({experimental:ir(G(),vi).optional(),sampling:re({context:vi.optional(),tools:vi.optional()}).optional(),elicitation:kde.optional(),roots:re({listChanged:xr().optional()}).optional(),tasks:_e(Tde)}),Ode=Jr.extend({protocolVersion:G(),capabilities:Pde,clientInfo:O6}),Rde=fr.extend({method:be("initialize"),params:Ode}),Cde=re({experimental:ir(G(),vi).optional(),logging:vi.optional(),completions:vi.optional(),prompts:_e(re({listChanged:_e(xr())})),resources:re({subscribe:xr().optional(),listChanged:xr().optional()}).optional(),tools:re({listChanged:xr().optional()}).optional(),tasks:_e(Ide)}).passthrough(),Nde=wr.extend({protocolVersion:G(),capabilities:Cde,serverInfo:O6,instructions:G().optional()}),jde=Tn.extend({method:be("notifications/initialized")}),R6=fr.extend({method:be("ping")}),Ade=re({progress:Rt(),total:_e(Rt()),message:_e(G())}),Mde=re({...xo.shape,...Ade.shape,progressToken:k6}),C6=Tn.extend({method:be("notifications/progress"),params:Mde}),zde=Jr.extend({cursor:T6.optional()}),$d=fr.extend({params:zde.optional()}),Ed=wr.extend({nextCursor:_e(T6)}),kd=re({taskId:G(),status:Sr(["working","input_required","completed","failed","cancelled"]),ttl:Ft([Rt(),v6()]),createdAt:G(),lastUpdatedAt:G(),pollInterval:_e(Rt()),statusMessage:_e(G())}),N6=wr.extend({task:kd}),Dde=xo.merge(kd),j6=Tn.extend({method:be("notifications/tasks/status"),params:Dde}),A6=fr.extend({method:be("tasks/get"),params:Jr.extend({taskId:G()})}),M6=wr.merge(kd),z6=fr.extend({method:be("tasks/result"),params:Jr.extend({taskId:G()})}),D6=$d.extend({method:be("tasks/list")}),U6=Ed.extend({tasks:it(kd)}),G1e=fr.extend({method:be("tasks/cancel"),params:Jr.extend({taskId:G()})}),W1e=wr.merge(kd),q6=re({uri:G(),mimeType:_e(G()),_meta:ir(G(),nr()).optional()}),L6=q6.extend({text:G()}),q$=G().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),F6=q6.extend({blob:q$}),xc=re({audience:it(Sr(["user","assistant"])).optional(),priority:Rt().min(0).max(1).optional(),lastModified:a6.datetime({offset:!0}).optional()}),Z6=re({...hc.shape,...wd.shape,uri:G(),description:_e(G()),mimeType:_e(G()),annotations:xc.optional(),_meta:_e(Kn({}))}),Ude=re({...hc.shape,...wd.shape,uriTemplate:G(),description:_e(G()),mimeType:_e(G()),annotations:xc.optional(),_meta:_e(Kn({}))}),qde=$d.extend({method:be("resources/list")}),Lde=Ed.extend({resources:it(Z6)}),Fde=$d.extend({method:be("resources/templates/list")}),Zde=Ed.extend({resourceTemplates:it(Ude)}),L$=Jr.extend({uri:G()}),Hde=L$,Bde=fr.extend({method:be("resources/read"),params:Hde}),Vde=wr.extend({contents:it(Ft([L6,F6]))}),Gde=Tn.extend({method:be("notifications/resources/list_changed")}),Wde=L$,Kde=fr.extend({method:be("resources/subscribe"),params:Wde}),Jde=L$,Xde=fr.extend({method:be("resources/unsubscribe"),params:Jde}),Yde=xo.extend({uri:G()}),Qde=Tn.extend({method:be("notifications/resources/updated"),params:Yde}),epe=re({name:G(),description:_e(G()),required:_e(xr())}),tpe=re({...hc.shape,...wd.shape,description:_e(G()),arguments:_e(it(epe)),_meta:_e(Kn({}))}),rpe=$d.extend({method:be("prompts/list")}),npe=Ed.extend({prompts:it(tpe)}),ipe=Jr.extend({name:G(),arguments:ir(G(),G()).optional()}),ape=fr.extend({method:be("prompts/get"),params:ipe}),F$=re({type:be("text"),text:G(),annotations:xc.optional(),_meta:ir(G(),nr()).optional()}),Z$=re({type:be("image"),data:q$,mimeType:G(),annotations:xc.optional(),_meta:ir(G(),nr()).optional()}),H$=re({type:be("audio"),data:q$,mimeType:G(),annotations:xc.optional(),_meta:ir(G(),nr()).optional()}),ope=re({type:be("tool_use"),name:G(),id:G(),input:re({}).passthrough(),_meta:_e(re({}).passthrough())}).passthrough(),spe=re({type:be("resource"),resource:Ft([L6,F6]),annotations:xc.optional(),_meta:ir(G(),nr()).optional()}),cpe=Z6.extend({type:be("resource_link")}),B$=Ft([F$,Z$,H$,cpe,spe]),upe=re({role:Sr(["user","assistant"]),content:B$}),lpe=wr.extend({description:_e(G()),messages:it(upe)}),dpe=Tn.extend({method:be("notifications/prompts/list_changed")}),ppe=re({title:G().optional(),readOnlyHint:xr().optional(),destructiveHint:xr().optional(),idempotentHint:xr().optional(),openWorldHint:xr().optional()}),fpe=re({taskSupport:Sr(["required","optional","forbidden"]).optional()}),H6=re({...hc.shape,...wd.shape,description:G().optional(),inputSchema:re({type:be("object"),properties:ir(G(),vi).optional(),required:it(G()).optional()}).catchall(nr()),outputSchema:re({type:be("object"),properties:ir(G(),vi).optional(),required:it(G()).optional()}).catchall(nr()).optional(),annotations:_e(ppe),execution:_e(fpe),_meta:ir(G(),nr()).optional()}),mpe=$d.extend({method:be("tools/list")}),hpe=Ed.extend({tools:it(H6)}),B6=wr.extend({content:it(B$).default([]),structuredContent:ir(G(),nr()).optional(),isError:_e(xr())}),K1e=B6.or(wr.extend({toolResult:nr()})),gpe=Jr.extend({name:G(),arguments:_e(ir(G(),nr()))}),vpe=fr.extend({method:be("tools/call"),params:gpe}),ype=Tn.extend({method:be("notifications/tools/list_changed")}),V6=Sr(["debug","info","notice","warning","error","critical","alert","emergency"]),_pe=Jr.extend({level:V6}),bpe=fr.extend({method:be("logging/setLevel"),params:_pe}),xpe=xo.extend({level:V6,logger:G().optional(),data:nr()}),Spe=Tn.extend({method:be("notifications/message"),params:xpe}),wpe=re({name:G().optional()}),$pe=re({hints:_e(it(wpe)),costPriority:_e(Rt().min(0).max(1)),speedPriority:_e(Rt().min(0).max(1)),intelligencePriority:_e(Rt().min(0).max(1))}),Epe=re({mode:_e(Sr(["auto","required","none"]))}),kpe=re({type:be("tool_result"),toolUseId:G().describe("The unique identifier for the corresponding tool call."),content:it(B$).default([]),structuredContent:re({}).passthrough().optional(),isError:_e(xr()),_meta:_e(re({}).passthrough())}).passthrough(),Tpe=b6("type",[F$,Z$,H$]),Ah=b6("type",[F$,Z$,H$,ope,kpe]),Ipe=re({role:Sr(["user","assistant"]),content:Ft([Ah,it(Ah)]),_meta:_e(re({}).passthrough())}).passthrough(),Ppe=Jr.extend({messages:it(Ipe),modelPreferences:$pe.optional(),systemPrompt:G().optional(),includeContext:Sr(["none","thisServer","allServers"]).optional(),temperature:Rt().optional(),maxTokens:Rt().int(),stopSequences:it(G()).optional(),metadata:vi.optional(),tools:_e(it(H6)),toolChoice:_e(Epe)}),Ope=fr.extend({method:be("sampling/createMessage"),params:Ppe}),Rpe=wr.extend({model:G(),stopReason:_e(Sr(["endTurn","stopSequence","maxTokens"]).or(G())),role:Sr(["user","assistant"]),content:Tpe}),Cpe=wr.extend({model:G(),stopReason:_e(Sr(["endTurn","stopSequence","maxTokens","toolUse"]).or(G())),role:Sr(["user","assistant"]),content:Ft([Ah,it(Ah)])}),Npe=re({type:be("boolean"),title:G().optional(),description:G().optional(),default:xr().optional()}),jpe=re({type:be("string"),title:G().optional(),description:G().optional(),minLength:Rt().optional(),maxLength:Rt().optional(),format:Sr(["email","uri","date","date-time"]).optional(),default:G().optional()}),Ape=re({type:Sr(["number","integer"]),title:G().optional(),description:G().optional(),minimum:Rt().optional(),maximum:Rt().optional(),default:Rt().optional()}),Mpe=re({type:be("string"),title:G().optional(),description:G().optional(),enum:it(G()),default:G().optional()}),zpe=re({type:be("string"),title:G().optional(),description:G().optional(),oneOf:it(re({const:G(),title:G()})),default:G().optional()}),Dpe=re({type:be("string"),title:G().optional(),description:G().optional(),enum:it(G()),enumNames:it(G()).optional(),default:G().optional()}),Upe=Ft([Mpe,zpe]),qpe=re({type:be("array"),title:G().optional(),description:G().optional(),minItems:Rt().optional(),maxItems:Rt().optional(),items:re({type:be("string"),enum:it(G())}),default:it(G()).optional()}),Lpe=re({type:be("array"),title:G().optional(),description:G().optional(),minItems:Rt().optional(),maxItems:Rt().optional(),items:re({anyOf:it(re({const:G(),title:G()}))}),default:it(G()).optional()}),Fpe=Ft([qpe,Lpe]),Zpe=Ft([Dpe,Upe,Fpe]),Hpe=Ft([Zpe,Npe,jpe,Ape]),Bpe=Jr.extend({mode:be("form").optional(),message:G(),requestedSchema:re({type:be("object"),properties:ir(G(),Hpe),required:it(G()).optional()})}),Vpe=Jr.extend({mode:be("url"),message:G(),elicitationId:G(),url:G().url()}),Gpe=Ft([Bpe,Vpe]),Wpe=fr.extend({method:be("elicitation/create"),params:Gpe}),Kpe=xo.extend({elicitationId:G()}),Jpe=Tn.extend({method:be("notifications/elicitation/complete"),params:Kpe}),Xpe=wr.extend({action:Sr(["accept","decline","cancel"]),content:E6(t=>t===null?void 0:t,ir(G(),Ft([G(),Rt(),xr(),it(G())])).optional())}),Ype=re({type:be("ref/resource"),uri:G()}),Qpe=re({type:be("ref/prompt"),name:G()}),efe=Jr.extend({ref:Ft([Qpe,Ype]),argument:re({name:G(),value:G()}),context:re({arguments:ir(G(),G()).optional()}).optional()}),tfe=fr.extend({method:be("completion/complete"),params:efe});var rfe=wr.extend({completion:Kn({values:it(G()).max(100),total:_e(Rt().int()),hasMore:_e(xr())})}),nfe=re({uri:G().startsWith("file://"),name:G().optional(),_meta:ir(G(),nr()).optional()}),ife=fr.extend({method:be("roots/list")}),afe=wr.extend({roots:it(nfe)}),ofe=Tn.extend({method:be("notifications/roots/list_changed")}),J1e=Ft([R6,Rde,tfe,bpe,ape,rpe,qde,Fde,Bde,Kde,Xde,vpe,mpe,A6,z6,D6]),X1e=Ft([P6,C6,jde,ofe,j6]),Y1e=Ft([I6,Rpe,Cpe,Xpe,afe,M6,U6,N6]),Q1e=Ft([R6,Ope,Wpe,ife,A6,z6,D6]),eIe=Ft([P6,C6,Spe,Qde,Gde,ype,dpe,j6,Jpe]),tIe=Ft([I6,Nde,rfe,lpe,npe,Lde,Zde,Vde,B6,hpe,M6,U6,N6]);var rIe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var nIe=Y4(Vne(),1),iIe=Y4(qie(),1);var X4;(function(t){t.Completable="McpCompletable"})(X4||(X4={}));function G6({prompt:t,options:e}){let{systemPrompt:r,settingSources:n,sandbox:i,...a}=e??{},o,s;r===void 0?o="":typeof r=="string"?o=r:r.type==="preset"&&(s=r.append);let c=a.pathToClaudeCodeExecutable;if(!c){let Z=(0,d2.fileURLToPath)(sfe.url),J=(0,a$.join)(Z,"..");c=(0,a$.join)(J,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.76";let{abortController:u=f2(),additionalDirectories:l=[],agents:d,allowedTools:p=[],betas:f,canUseTool:h,continue:_,cwd:y,disallowedTools:m=[],tools:v,env:g,executable:b=P2()?"bun":"node",executableArgs:S=[],extraArgs:x={},fallbackModel:w,enableFileCheckpointing:E,forkSession:O,hooks:A,includePartialMessages:M,persistSession:q,maxThinkingTokens:B,maxTurns:U,maxBudgetUsd:Y,mcpServers:me,model:Ye,outputFormat:ft,permissionMode:fe="default",allowDangerouslySkipPermissions:F=!1,permissionPromptToolName:I,plugins:z,resume:C,resumeSessionAt:$,stderr:k,strictMcpConfig:N}=a,W=ft?.type==="json_schema"?ft.schema:void 0,K=g;if(K||(K={...process.env}),K.CLAUDE_CODE_ENTRYPOINT||(K.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),E&&(K.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let pe={},ce=new Map;if(me)for(let[Z,J]of Object.entries(me))J.type==="sdk"&&"instance"in J?(ce.set(Z,J.instance),pe[Z]={type:"sdk",name:Z}):pe[Z]=J;let Ne=typeof t=="string",P=new s$({abortController:u,additionalDirectories:l,betas:f,cwd:y,executable:b,executableArgs:S,extraArgs:x,pathToClaudeCodeExecutable:c,env:K,forkSession:O,stderr:k,maxThinkingTokens:B,maxTurns:U,maxBudgetUsd:Y,model:Ye,fallbackModel:w,jsonSchema:W,permissionMode:fe,allowDangerouslySkipPermissions:F,permissionPromptToolName:I,continueConversation:_,resume:C,resumeSessionAt:$,settingSources:n??[],allowedTools:p,disallowedTools:m,tools:v,mcpServers:pe,strictMcpConfig:N,canUseTool:!!h,hooks:!!A,includePartialMessages:M,persistSession:q,plugins:z,sandbox:i,spawnClaudeCodeProcess:a.spawnClaudeCodeProcess}),R={systemPrompt:o,appendSystemPrompt:s,agents:d},D=new l$(P,Ne,h,A,u,ce,W,R);return typeof t=="string"?P.write(JSON.stringify({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null})+` -`):D.streamInput(t),D}var tg=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let n=this.findClaudeExecutable(),i=this.getModelId(),a=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"],o=this.createMessageGenerator(e),s=!!e.memorySessionId;T.info("SDK","Starting SDK query",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,hasRealMemorySessionId:s,resume_parameter:s?e.memorySessionId:"(none - fresh start)",lastPromptNumber:e.lastPromptNumber}),e.lastPromptNumber>1?T.info("SDK",`[ALIGNMENT] Resume Decision | contentSessionId=${e.contentSessionId} | memorySessionId=${e.memorySessionId} | prompt#=${e.lastPromptNumber} | hasRealMemorySessionId=${s} | resumeWith=${s?e.memorySessionId:"NONE (fresh SDK session)"}`):T.info("SDK",`[ALIGNMENT] First Prompt | contentSessionId=${e.contentSessionId} | prompt#=${e.lastPromptNumber} | Will capture memorySessionId from first SDK response`);let c=G6({prompt:o,options:{model:i,...s&&{resume:e.memorySessionId},disallowedTools:a,abortController:e.abortController,pathToClaudeCodeExecutable:n}});for await(let l of c){if(!e.memorySessionId&&l.session_id&&(e.memorySessionId=l.session_id,this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,l.session_id),T.info("SDK","Captured memory session ID",{sessionDbId:e.sessionDbId,memorySessionId:l.session_id}),T.info("SDK",`[ALIGNMENT] Captured | contentSessionId=${e.contentSessionId} \u2192 memorySessionId=${l.session_id} | Future prompts will resume with this ID`)),l.type==="assistant"){let d=l.message.content,p=Array.isArray(d)?d.filter(v=>v.type==="text").map(v=>v.text).join(` -`):typeof d=="string"?d:"",f=p.length,h=e.cumulativeInputTokens+e.cumulativeOutputTokens,_=l.message.usage;_&&(e.cumulativeInputTokens+=_.input_tokens||0,e.cumulativeOutputTokens+=_.output_tokens||0,_.cache_creation_input_tokens&&(e.cumulativeInputTokens+=_.cache_creation_input_tokens),T.debug("SDK","Token usage captured",{sessionId:e.sessionDbId,inputTokens:_.input_tokens,outputTokens:_.output_tokens,cacheCreation:_.cache_creation_input_tokens||0,cacheRead:_.cache_read_input_tokens||0,cumulativeInput:e.cumulativeInputTokens,cumulativeOutput:e.cumulativeOutputTokens}));let y=e.cumulativeInputTokens+e.cumulativeOutputTokens-h,m=e.earliestPendingTimestamp;if(f>0){let v=f>100?p.substring(0,100)+"...":p;T.dataOut("SDK",`Response received (${f} chars)`,{sessionId:e.sessionDbId,promptNumber:e.lastPromptNumber},v)}await Vn(p,e,this.dbManager,this.sessionManager,r,y,m,"SDK")}l.type==="result"&&l.subtype}let u=Date.now()-e.startTime;T.success("SDK","Agent completed",{sessionId:e.sessionDbId,duration:`${(u/1e3).toFixed(1)}s`})}async*createMessageGenerator(e){let r=He.getInstance().getActiveMode(),n=e.lastPromptNumber===1;T.info("SDK","Creating message generator",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,lastPromptNumber:e.lastPromptNumber,isInitPrompt:n,promptType:n?"INIT":"CONTINUATION"});let i=n?Ks(e.project,e.contentSessionId,e.userPrompt,r):Ys(e.userPrompt,e.lastPromptNumber,e.contentSessionId,r);e.conversationHistory.push({role:"user",content:i}),yield{type:"user",message:{role:"user",content:i},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0};for await(let a of this.sessionManager.getMessageIterator(e.sessionDbId))if(a.type==="observation"){a.prompt_number!==void 0&&(e.lastPromptNumber=a.prompt_number);let o=Js({id:0,tool_name:a.tool_name,tool_input:JSON.stringify(a.tool_input),tool_output:JSON.stringify(a.tool_response),created_at_epoch:Date.now(),cwd:a.cwd});e.conversationHistory.push({role:"user",content:o}),yield{type:"user",message:{role:"user",content:o},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}else if(a.type==="summarize"){let o=Xs({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:a.last_assistant_message||""},r);e.conversationHistory.push({role:"user",content:o}),yield{type:"user",message:{role:"user",content:o},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}}findClaudeExecutable(){let e=nt.loadFromFile(wn);if(e.CLAUDE_CODE_PATH){let{existsSync:r}=require("fs");if(!r(e.CLAUDE_CODE_PATH))throw new Error(`CLAUDE_CODE_PATH is set to "${e.CLAUDE_CODE_PATH}" but the file does not exist.`);return e.CLAUDE_CODE_PATH}try{let r=(0,W6.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){T.debug("SDK","Claude executable auto-detection failed",{},r)}throw new Error(`Claude executable not found. Please either: + path: iss.path ? [${ac(y)}, ...iss.path] : [${ac(y)}] + })));`),p.write(`newResult[${ac(y)}] = ${v}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let m=p.compile();return(y,v)=>m(d,y,v)},i,a=Sd,o=!b$.jitless,c=o&&F2.value,u=e.catchall,l;t._zod.parse=(d,p)=>{l??(l=r.value);let f=d.value;if(!a(f))return d.issues.push({expected:"object",code:"invalid_type",input:f,inst:t}),d;let h=[];if(o&&c&&p?.async===!1&&p.jitless!==!0)i||(i=n(e.shape)),d=i(d,p);else{d.value={};let v=l.shape;for(let b of l.keys){let S=v[b],x=S._zod.run({value:f[b],issues:[]},p),w=S._zod.optin==="optional"&&S._zod.optout==="optional";x instanceof Promise?h.push(x.then(E=>w?U4(E,d,b,f):kh(E,d,b))):w?U4(x,d,b,f):kh(x,d,b)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let _=[],g=l.keySet,m=u._zod,y=m.def.type;for(let v of Object.keys(f)){if(g.has(v))continue;if(y==="never"){_.push(v);continue}let b=m.run({value:f[v],issues:[]},p);b instanceof Promise?h.push(b.then(S=>kh(S,d,v))):kh(b,d,v)}return _.length&&d.issues.push({code:"unrecognized_keys",keys:_,input:f,inst:t}),h.length?Promise.all(h).then(()=>d):d}});function q4(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(a=>Zi(a,n,Fi())))}),e}var o6=X("$ZodUnion",(t,e)=>{Ut.init(t,e),zt(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),zt(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),zt(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),zt(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=>Yh(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let i=!1,a=[];for(let o of e.options){let s=o._zod.run({value:r.value,issues:[]},n);if(s instanceof Promise)a.push(s),i=!0;else{if(s.issues.length===0)return s;a.push(s)}}return i?Promise.all(a).then(o=>q4(o,r,t,n)):q4(a,r,t,n)}}),wue=X("$ZodDiscriminatedUnion",(t,e)=>{o6.init(t,e);let r=t._zod.parse;zt(t._zod,"propValues",()=>{let i={};for(let a of e.options){let o=a._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let[s,c]of Object.entries(o)){i[s]||(i[s]=new Set);for(let u of c)i[s].add(u)}}return i});let n=Jh(()=>{let i=e.options,a=new Map;for(let o of i){let s=o._zod.propValues[e.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of s){if(a.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);a.set(c,o)}}return a});t._zod.parse=(i,a)=>{let o=i.value;if(!Sd(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let s=n.value.get(o?.[e.discriminator]);return s?s._zod.run(i,a):e.unionFallback?r(i,a):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[e.discriminator],inst:t}),i)}}),$ue=X("$ZodIntersection",(t,e)=>{Ut.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,a=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return a instanceof Promise||o instanceof Promise?Promise.all([a,o]).then(([c,u])=>L4(r,c,u)):L4(r,a,o)}});function $$(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(wd(t)&&wd(e)){let r=Object.keys(e),n=Object.keys(t).filter(a=>r.indexOf(a)!==-1),i={...t,...e};for(let a of n){let o=$$(t[a],e[a]);if(!o.valid)return{valid:!1,mergeErrorPath:[a,...o.mergeErrorPath]};i[a]=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{Ut.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!wd(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let a=[];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?a.push(u.then(l=>{l.issues.length&&r.issues.push(...xa(c,l.issues)),r.value[c]=l.value})):(u.issues.length&&r.issues.push(...xa(c,u.issues)),r.value[c]=u.value)}let s;for(let c in i)o.has(c)||(s=s??[],s.push(c));s&&s.length>0&&r.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:s})}else{r.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let s=e.keyType._zod.run({value:o,issues:[]},n);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(s.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:s.issues.map(u=>Zi(u,n,Fi())),input:o,path:[o],inst:t}),r.value[s.value]=s.value;continue}let c=e.valueType._zod.run({value:i[o],issues:[]},n);c instanceof Promise?a.push(c.then(u=>{u.issues.length&&r.issues.push(...xa(o,u.issues)),r.value[s.value]=u.value})):(c.issues.length&&r.issues.push(...xa(o,c.issues)),r.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>r):r}}),kue=X("$ZodEnum",(t,e)=>{Ut.init(t,e);let r=U2(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>Z2.has(typeof n)).map(n=>typeof n=="string"?Ec(n):n.toString()).join("|")})$`),t._zod.parse=(n,i)=>{let a=n.value;return t._zod.values.has(a)||n.issues.push({code:"invalid_value",values:r,input:a,inst:t}),n}}),Tue=X("$ZodLiteral",(t,e)=>{Ut.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?Ec(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}}),Iue=X("$ZodTransform",(t,e)=>{Ut.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 xo;return r.value=i,r}}),Pue=X("$ZodOptional",(t,e)=>{Ut.init(t,e),t._zod.optin="optional",t._zod.optout="optional",zt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),zt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Yh(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)}),Rue=X("$ZodNullable",(t,e)=>{Ut.init(t,e),zt(t._zod,"optin",()=>e.innerType._zod.optin),zt(t._zod,"optout",()=>e.innerType._zod.optout),zt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Yh(r.source)}|null)$`):void 0}),zt(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)}),Oue=X("$ZodDefault",(t,e)=>{Ut.init(t,e),t._zod.optin="optional",zt(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(a=>F4(a,e)):F4(i,e)}});function F4(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var Cue=X("$ZodPrefault",(t,e)=>{Ut.init(t,e),t._zod.optin="optional",zt(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))}),Nue=X("$ZodNonOptional",(t,e)=>{Ut.init(t,e),zt(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(a=>Z4(a,t)):Z4(i,t)}});function Z4(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 jue=X("$ZodCatch",(t,e)=>{Ut.init(t,e),t._zod.optin="optional",zt(t._zod,"optout",()=>e.innerType._zod.optout),zt(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(a=>(r.value=a.value,a.issues.length&&(r.value=e.catchValue({...r,error:{issues:a.issues.map(o=>Zi(o,n,Fi()))},input:r.value}),r.issues=[]),r)):(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>Zi(a,n,Fi()))},input:r.value}),r.issues=[]),r)}}),Aue=X("$ZodPipe",(t,e)=>{Ut.init(t,e),zt(t._zod,"values",()=>e.in._zod.values),zt(t._zod,"optin",()=>e.in._zod.optin),zt(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(a=>H4(a,e,n)):H4(i,e,n)}});function H4(t,e,r){return oc(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var Mue=X("$ZodReadonly",(t,e)=>{Ut.init(t,e),zt(t._zod,"propValues",()=>e.innerType._zod.propValues),zt(t._zod,"values",()=>e.innerType._zod.values),zt(t._zod,"optin",()=>e.innerType._zod.optin),zt(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(B4):B4(i)}});function B4(t){return t.value=Object.freeze(t.value),t}var Due=X("$ZodCustom",(t,e)=>{Jr.init(t,e),Ut.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(a=>V4(a,r,n,t));V4(i,r,n,t)}});function V4(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(V2(i))}}var zue=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},Uue=()=>{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 ${zue(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${z$(n.values[0])}`:`Invalid option: expected one of ${x$(n.values,"|")}`;case"too_big":{let i=n.inclusive?"<=":"<",a=e(n.origin);return a?`Too big: expected ${n.origin??"value"} to have ${i}${n.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${i}${n.maximum.toString()}`}case"too_small":{let i=n.inclusive?">=":">",a=e(n.origin);return a?`Too small: expected ${n.origin} to have ${i}${n.minimum.toString()} ${a.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":""}: ${x$(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 que(){return{localeError:Uue()}}var E$=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 Lue(){return new E$}var Th=Lue();function Fue(t,e){return new t({type:"string",...ke(e)})}function Zue(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...ke(e)})}function G4(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...ke(e)})}function Hue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...ke(e)})}function Bue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ke(e)})}function Vue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ke(e)})}function Gue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ke(e)})}function Wue(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...ke(e)})}function Kue(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...ke(e)})}function Jue(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...ke(e)})}function Xue(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...ke(e)})}function Yue(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...ke(e)})}function Que(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...ke(e)})}function ele(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...ke(e)})}function tle(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...ke(e)})}function rle(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...ke(e)})}function nle(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...ke(e)})}function ile(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ke(e)})}function ale(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ke(e)})}function ole(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...ke(e)})}function sle(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...ke(e)})}function cle(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...ke(e)})}function ule(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...ke(e)})}function lle(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ke(e)})}function dle(t,e){return new t({type:"string",format:"date",check:"string_format",...ke(e)})}function ple(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...ke(e)})}function fle(t,e){return new t({type:"string",format:"duration",check:"string_format",...ke(e)})}function mle(t,e){return new t({type:"number",checks:[],...ke(e)})}function hle(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...ke(e)})}function gle(t,e){return new t({type:"boolean",...ke(e)})}function vle(t,e){return new t({type:"null",...ke(e)})}function yle(t){return new t({type:"unknown"})}function _le(t,e){return new t({type:"never",...ke(e)})}function W4(t,e){return new r6({check:"less_than",...ke(e),value:t,inclusive:!1})}function a$(t,e){return new r6({check:"less_than",...ke(e),value:t,inclusive:!0})}function K4(t,e){return new n6({check:"greater_than",...ke(e),value:t,inclusive:!1})}function o$(t,e){return new n6({check:"greater_than",...ke(e),value:t,inclusive:!0})}function J4(t,e){return new Cce({check:"multiple_of",...ke(e),value:t})}function s6(t,e){return new jce({check:"max_length",...ke(e),maximum:t})}function Dh(t,e){return new Ace({check:"min_length",...ke(e),minimum:t})}function c6(t,e){return new Mce({check:"length_equals",...ke(e),length:t})}function ble(t,e){return new Dce({check:"string_format",format:"regex",...ke(e),pattern:t})}function xle(t){return new zce({check:"string_format",format:"lowercase",...ke(t)})}function Sle(t){return new Uce({check:"string_format",format:"uppercase",...ke(t)})}function wle(t,e){return new qce({check:"string_format",format:"includes",...ke(e),includes:t})}function $le(t,e){return new Lce({check:"string_format",format:"starts_with",...ke(e),prefix:t})}function Ele(t,e){return new Fce({check:"string_format",format:"ends_with",...ke(e),suffix:t})}function Ed(t){return new Zce({check:"overwrite",tx:t})}function kle(t){return Ed(e=>e.normalize(t))}function Tle(){return Ed(t=>t.trim())}function Ile(){return Ed(t=>t.toLowerCase())}function Ple(){return Ed(t=>t.toUpperCase())}function Rle(t,e,r){return new t({type:"array",element:e,...ke(r)})}function Ole(t,e,r){let n=ke(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function Cle(t,e,r){return new t({type:"custom",check:"custom",fn:e,...ke(r)})}var u6={};n2(u6,{time:()=>h6,duration:()=>v6,datetime:()=>d6,date:()=>f6,ZodISOTime:()=>m6,ZodISODuration:()=>g6,ZodISODateTime:()=>l6,ZodISODate:()=>p6});var l6=X("ZodISODateTime",(t,e)=>{rue.init(t,e),Gt.init(t,e)});function d6(t){return lle(l6,t)}var p6=X("ZodISODate",(t,e)=>{nue.init(t,e),Gt.init(t,e)});function f6(t){return dle(p6,t)}var m6=X("ZodISOTime",(t,e)=>{iue.init(t,e),Gt.init(t,e)});function h6(t){return ple(m6,t)}var g6=X("ZodISODuration",(t,e)=>{aue.init(t,e),Gt.init(t,e)});function v6(t){return fle(g6,t)}var y6=(t,e)=>{W2.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Qse(t,r)},flatten:{value:r=>Yse(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},pIe=X("ZodError",y6),tg=X("ZodError",y6,{Parent:Error}),Nle=ece(tg),jle=tce(tg),Ale=J2(tg),Mle=X2(tg),Vt=X("ZodType",(t,e)=>(Ut.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)=>ka(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>Nle(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>Ale(t,r,n),t.parseAsync=async(r,n)=>jle(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Mle(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(kde(r,n)),t.superRefine=r=>t.check(Tde(r)),t.overwrite=r=>t.check(Ed(r)),t.optional=()=>_e(t),t.nullable=()=>Q4(t),t.nullish=()=>_e(Q4(t)),t.nonoptional=r=>yde(t,r),t.array=()=>it(t),t.or=r=>Ft([t,r]),t.and=r=>q$(t,r),t.transform=r=>T$(t,E6(r)),t.default=r=>hde(t,r),t.prefault=r=>vde(t,r),t.catch=r=>bde(t,r),t.pipe=r=>T$(t,r),t.readonly=()=>wde(t),t.describe=r=>{let n=t.clone();return Th.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Th.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Th.get(t);let n=t.clone();return Th.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),_6=X("_ZodString",(t,e)=>{U$.init(t,e),Vt.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(ble(...n)),t.includes=(...n)=>t.check(wle(...n)),t.startsWith=(...n)=>t.check($le(...n)),t.endsWith=(...n)=>t.check(Ele(...n)),t.min=(...n)=>t.check(Dh(...n)),t.max=(...n)=>t.check(s6(...n)),t.length=(...n)=>t.check(c6(...n)),t.nonempty=(...n)=>t.check(Dh(1,...n)),t.lowercase=n=>t.check(xle(n)),t.uppercase=n=>t.check(Sle(n)),t.trim=()=>t.check(Tle()),t.normalize=(...n)=>t.check(kle(...n)),t.toLowerCase=()=>t.check(Ile()),t.toUpperCase=()=>t.check(Ple())}),Dle=X("ZodString",(t,e)=>{U$.init(t,e),_6.init(t,e),t.email=r=>t.check(Zue(zle,r)),t.url=r=>t.check(Wue(Ule,r)),t.jwt=r=>t.check(ule(ede,r)),t.emoji=r=>t.check(Kue(qle,r)),t.guid=r=>t.check(G4(X4,r)),t.uuid=r=>t.check(Hue(Ih,r)),t.uuidv4=r=>t.check(Bue(Ih,r)),t.uuidv6=r=>t.check(Vue(Ih,r)),t.uuidv7=r=>t.check(Gue(Ih,r)),t.nanoid=r=>t.check(Jue(Lle,r)),t.guid=r=>t.check(G4(X4,r)),t.cuid=r=>t.check(Xue(Fle,r)),t.cuid2=r=>t.check(Yue(Zle,r)),t.ulid=r=>t.check(Que(Hle,r)),t.base64=r=>t.check(ole(Xle,r)),t.base64url=r=>t.check(sle(Yle,r)),t.xid=r=>t.check(ele(Ble,r)),t.ksuid=r=>t.check(tle(Vle,r)),t.ipv4=r=>t.check(rle(Gle,r)),t.ipv6=r=>t.check(nle(Wle,r)),t.cidrv4=r=>t.check(ile(Kle,r)),t.cidrv6=r=>t.check(ale(Jle,r)),t.e164=r=>t.check(cle(Qle,r)),t.datetime=r=>t.check(d6(r)),t.date=r=>t.check(f6(r)),t.time=r=>t.check(h6(r)),t.duration=r=>t.check(v6(r))});function G(t){return Fue(Dle,t)}var Gt=X("ZodStringFormat",(t,e)=>{Lt.init(t,e),_6.init(t,e)}),zle=X("ZodEmail",(t,e)=>{Gce.init(t,e),Gt.init(t,e)}),X4=X("ZodGUID",(t,e)=>{Bce.init(t,e),Gt.init(t,e)}),Ih=X("ZodUUID",(t,e)=>{Vce.init(t,e),Gt.init(t,e)}),Ule=X("ZodURL",(t,e)=>{Wce.init(t,e),Gt.init(t,e)}),qle=X("ZodEmoji",(t,e)=>{Kce.init(t,e),Gt.init(t,e)}),Lle=X("ZodNanoID",(t,e)=>{Jce.init(t,e),Gt.init(t,e)}),Fle=X("ZodCUID",(t,e)=>{Xce.init(t,e),Gt.init(t,e)}),Zle=X("ZodCUID2",(t,e)=>{Yce.init(t,e),Gt.init(t,e)}),Hle=X("ZodULID",(t,e)=>{Qce.init(t,e),Gt.init(t,e)}),Ble=X("ZodXID",(t,e)=>{eue.init(t,e),Gt.init(t,e)}),Vle=X("ZodKSUID",(t,e)=>{tue.init(t,e),Gt.init(t,e)}),Gle=X("ZodIPv4",(t,e)=>{oue.init(t,e),Gt.init(t,e)}),Wle=X("ZodIPv6",(t,e)=>{sue.init(t,e),Gt.init(t,e)}),Kle=X("ZodCIDRv4",(t,e)=>{cue.init(t,e),Gt.init(t,e)}),Jle=X("ZodCIDRv6",(t,e)=>{uue.init(t,e),Gt.init(t,e)}),Xle=X("ZodBase64",(t,e)=>{lue.init(t,e),Gt.init(t,e)}),Yle=X("ZodBase64URL",(t,e)=>{pue.init(t,e),Gt.init(t,e)}),Qle=X("ZodE164",(t,e)=>{fue.init(t,e),Gt.init(t,e)}),ede=X("ZodJWT",(t,e)=>{hue.init(t,e),Gt.init(t,e)}),b6=X("ZodNumber",(t,e)=>{a6.init(t,e),Vt.init(t,e),t.gt=(n,i)=>t.check(K4(n,i)),t.gte=(n,i)=>t.check(o$(n,i)),t.min=(n,i)=>t.check(o$(n,i)),t.lt=(n,i)=>t.check(W4(n,i)),t.lte=(n,i)=>t.check(a$(n,i)),t.max=(n,i)=>t.check(a$(n,i)),t.int=n=>t.check(Y4(n)),t.safe=n=>t.check(Y4(n)),t.positive=n=>t.check(K4(0,n)),t.nonnegative=n=>t.check(o$(0,n)),t.negative=n=>t.check(W4(0,n)),t.nonpositive=n=>t.check(a$(0,n)),t.multipleOf=(n,i)=>t.check(J4(n,i)),t.step=(n,i)=>t.check(J4(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 Ot(t){return mle(b6,t)}var tde=X("ZodNumberFormat",(t,e)=>{gue.init(t,e),b6.init(t,e)});function Y4(t){return hle(tde,t)}var rde=X("ZodBoolean",(t,e)=>{vue.init(t,e),Vt.init(t,e)});function xr(t){return gle(rde,t)}var nde=X("ZodNull",(t,e)=>{yue.init(t,e),Vt.init(t,e)});function x6(t){return vle(nde,t)}var ide=X("ZodUnknown",(t,e)=>{_ue.init(t,e),Vt.init(t,e)});function nr(){return yle(ide)}var ade=X("ZodNever",(t,e)=>{bue.init(t,e),Vt.init(t,e)});function ode(t){return _le(ade,t)}var sde=X("ZodArray",(t,e)=>{xue.init(t,e),Vt.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(Dh(r,n)),t.nonempty=r=>t.check(Dh(1,r)),t.max=(r,n)=>t.check(s6(r,n)),t.length=(r,n)=>t.check(c6(r,n)),t.unwrap=()=>t.element});function it(t,e){return Rle(sde,t,e)}var S6=X("ZodObject",(t,e)=>{Sue.init(t,e),Vt.init(t,e),Dt.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Sr(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:ode()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>Dt.extend(t,r),t.merge=r=>Dt.merge(t,r),t.pick=r=>Dt.pick(t,r),t.omit=r=>Dt.omit(t,r),t.partial=(...r)=>Dt.partial(k6,t,r[0]),t.required=(...r)=>Dt.required(T6,t,r[0])});function re(t,e){let r={type:"object",get shape(){return Dt.assignProp(this,"shape",{...t}),this.shape},...Dt.normalizeParams(e)};return new S6(r)}function Xn(t,e){return new S6({type:"object",get shape(){return Dt.assignProp(this,"shape",{...t}),this.shape},catchall:nr(),...Dt.normalizeParams(e)})}var w6=X("ZodUnion",(t,e)=>{o6.init(t,e),Vt.init(t,e),t.options=e.options});function Ft(t,e){return new w6({type:"union",options:t,...Dt.normalizeParams(e)})}var cde=X("ZodDiscriminatedUnion",(t,e)=>{w6.init(t,e),wue.init(t,e)});function $6(t,e,r){return new cde({type:"union",options:e,discriminator:t,...Dt.normalizeParams(r)})}var ude=X("ZodIntersection",(t,e)=>{$ue.init(t,e),Vt.init(t,e)});function q$(t,e){return new ude({type:"intersection",left:t,right:e})}var lde=X("ZodRecord",(t,e)=>{Eue.init(t,e),Vt.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function ir(t,e,r){return new lde({type:"record",keyType:t,valueType:e,...Dt.normalizeParams(r)})}var k$=X("ZodEnum",(t,e)=>{kue.init(t,e),Vt.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 a={};for(let o of n)if(r.has(o))a[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new k$({...e,checks:[],...Dt.normalizeParams(i),entries:a})},t.exclude=(n,i)=>{let a={...e.entries};for(let o of n)if(r.has(o))delete a[o];else throw new Error(`Key ${o} not found in enum`);return new k$({...e,checks:[],...Dt.normalizeParams(i),entries:a})}});function Sr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new k$({type:"enum",entries:r,...Dt.normalizeParams(e)})}var dde=X("ZodLiteral",(t,e)=>{Tue.init(t,e),Vt.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 be(t,e){return new dde({type:"literal",values:Array.isArray(t)?t:[t],...Dt.normalizeParams(e)})}var pde=X("ZodTransform",(t,e)=>{Iue.init(t,e),Vt.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=a=>{if(typeof a=="string")r.issues.push(Dt.issue(a,r.value,e));else{let o=a;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(Dt.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(a=>(r.value=a,r)):(r.value=i,r)}});function E6(t){return new pde({type:"transform",transform:t})}var k6=X("ZodOptional",(t,e)=>{Pue.init(t,e),Vt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function _e(t){return new k6({type:"optional",innerType:t})}var fde=X("ZodNullable",(t,e)=>{Rue.init(t,e),Vt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Q4(t){return new fde({type:"nullable",innerType:t})}var mde=X("ZodDefault",(t,e)=>{Oue.init(t,e),Vt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function hde(t,e){return new mde({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var gde=X("ZodPrefault",(t,e)=>{Cue.init(t,e),Vt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function vde(t,e){return new gde({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var T6=X("ZodNonOptional",(t,e)=>{Nue.init(t,e),Vt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function yde(t,e){return new T6({type:"nonoptional",innerType:t,...Dt.normalizeParams(e)})}var _de=X("ZodCatch",(t,e)=>{jue.init(t,e),Vt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function bde(t,e){return new _de({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var xde=X("ZodPipe",(t,e)=>{Aue.init(t,e),Vt.init(t,e),t.in=e.in,t.out=e.out});function T$(t,e){return new xde({type:"pipe",in:t,out:e})}var Sde=X("ZodReadonly",(t,e)=>{Mue.init(t,e),Vt.init(t,e)});function wde(t){return new Sde({type:"readonly",innerType:t})}var I6=X("ZodCustom",(t,e)=>{Due.init(t,e),Vt.init(t,e)});function $de(t,e){let r=new Jr({check:"custom",...Dt.normalizeParams(e)});return r._zod.check=t,r}function Ede(t,e){return Ole(I6,t??(()=>!0),e)}function kde(t,e={}){return Cle(I6,t,e)}function Tde(t,e){let r=$de(n=>(n.addIssue=i=>{if(typeof i=="string")n.issues.push(Dt.issue(i,n.value,r._zod.def));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=r),a.continue??(a.continue=!r._zod.def.abort),n.issues.push(Dt.issue(a))}},t(n.value,n)),e);return r}function P6(t,e){return T$(E6(t),e)}Fi(que());var L$="io.modelcontextprotocol/related-task",rg="2.0",vi=Ede(t=>t!==null&&(typeof t=="object"||typeof t=="function")),R6=Ft([G(),Ot().int()]),O6=G(),Ide=Xn({ttl:Ft([Ot(),x6()]).optional(),pollInterval:Ot().optional()}),F$=Xn({taskId:G()}),Pde=Xn({progressToken:R6.optional(),[L$]:F$.optional()}),Xr=Xn({task:Ide.optional(),_meta:Pde.optional()}),fr=re({method:G(),params:Xr.optional()}),So=Xn({_meta:re({[L$]:_e(F$)}).passthrough().optional()}),Pn=re({method:G(),params:So.optional()}),wr=Xn({_meta:Xn({[L$]:F$.optional()}).optional()}),ng=Ft([G(),Ot().int()]),Rde=re({jsonrpc:be(rg),id:ng,...fr.shape}).strict();var Ode=re({jsonrpc:be(rg),...Pn.shape}).strict();var Cde=re({jsonrpc:be(rg),id:ng,result:wr}).strict();var e2;(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"})(e2||(e2={}));var Nde=re({jsonrpc:be(rg),id:ng,error:re({code:Ot().int(),message:G(),data:_e(nr())})}).strict();var fIe=Ft([Rde,Ode,Cde,Nde]),C6=wr.strict(),jde=So.extend({requestId:ng,reason:G().optional()}),N6=Pn.extend({method:be("notifications/cancelled"),params:jde}),Ade=re({src:G(),mimeType:G().optional(),sizes:it(G()).optional()}),kd=re({icons:it(Ade).optional()}),bc=re({name:G(),title:G().optional()}),j6=bc.extend({...bc.shape,...kd.shape,version:G(),websiteUrl:G().optional()}),Mde=q$(re({applyDefaults:xr().optional()}),ir(G(),nr())),Dde=P6(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,q$(re({form:Mde.optional(),url:vi.optional()}),ir(G(),nr()).optional())),zde=re({list:_e(re({}).passthrough()),cancel:_e(re({}).passthrough()),requests:_e(re({sampling:_e(re({createMessage:_e(re({}).passthrough())}).passthrough()),elicitation:_e(re({create:_e(re({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Ude=re({list:_e(re({}).passthrough()),cancel:_e(re({}).passthrough()),requests:_e(re({tools:_e(re({call:_e(re({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),qde=re({experimental:ir(G(),vi).optional(),sampling:re({context:vi.optional(),tools:vi.optional()}).optional(),elicitation:Dde.optional(),roots:re({listChanged:xr().optional()}).optional(),tasks:_e(zde)}),Lde=Xr.extend({protocolVersion:G(),capabilities:qde,clientInfo:j6}),Fde=fr.extend({method:be("initialize"),params:Lde}),Zde=re({experimental:ir(G(),vi).optional(),logging:vi.optional(),completions:vi.optional(),prompts:_e(re({listChanged:_e(xr())})),resources:re({subscribe:xr().optional(),listChanged:xr().optional()}).optional(),tools:re({listChanged:xr().optional()}).optional(),tasks:_e(Ude)}).passthrough(),Hde=wr.extend({protocolVersion:G(),capabilities:Zde,serverInfo:j6,instructions:G().optional()}),Bde=Pn.extend({method:be("notifications/initialized")}),A6=fr.extend({method:be("ping")}),Vde=re({progress:Ot(),total:_e(Ot()),message:_e(G())}),Gde=re({...So.shape,...Vde.shape,progressToken:R6}),M6=Pn.extend({method:be("notifications/progress"),params:Gde}),Wde=Xr.extend({cursor:O6.optional()}),Td=fr.extend({params:Wde.optional()}),Id=wr.extend({nextCursor:_e(O6)}),Pd=re({taskId:G(),status:Sr(["working","input_required","completed","failed","cancelled"]),ttl:Ft([Ot(),x6()]),createdAt:G(),lastUpdatedAt:G(),pollInterval:_e(Ot()),statusMessage:_e(G())}),D6=wr.extend({task:Pd}),Kde=So.merge(Pd),z6=Pn.extend({method:be("notifications/tasks/status"),params:Kde}),U6=fr.extend({method:be("tasks/get"),params:Xr.extend({taskId:G()})}),q6=wr.merge(Pd),L6=fr.extend({method:be("tasks/result"),params:Xr.extend({taskId:G()})}),F6=Td.extend({method:be("tasks/list")}),Z6=Id.extend({tasks:it(Pd)}),mIe=fr.extend({method:be("tasks/cancel"),params:Xr.extend({taskId:G()})}),hIe=wr.merge(Pd),H6=re({uri:G(),mimeType:_e(G()),_meta:ir(G(),nr()).optional()}),B6=H6.extend({text:G()}),Z$=G().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),V6=H6.extend({blob:Z$}),kc=re({audience:it(Sr(["user","assistant"])).optional(),priority:Ot().min(0).max(1).optional(),lastModified:u6.datetime({offset:!0}).optional()}),G6=re({...bc.shape,...kd.shape,uri:G(),description:_e(G()),mimeType:_e(G()),annotations:kc.optional(),_meta:_e(Xn({}))}),Jde=re({...bc.shape,...kd.shape,uriTemplate:G(),description:_e(G()),mimeType:_e(G()),annotations:kc.optional(),_meta:_e(Xn({}))}),Xde=Td.extend({method:be("resources/list")}),Yde=Id.extend({resources:it(G6)}),Qde=Td.extend({method:be("resources/templates/list")}),epe=Id.extend({resourceTemplates:it(Jde)}),H$=Xr.extend({uri:G()}),tpe=H$,rpe=fr.extend({method:be("resources/read"),params:tpe}),npe=wr.extend({contents:it(Ft([B6,V6]))}),ipe=Pn.extend({method:be("notifications/resources/list_changed")}),ape=H$,ope=fr.extend({method:be("resources/subscribe"),params:ape}),spe=H$,cpe=fr.extend({method:be("resources/unsubscribe"),params:spe}),upe=So.extend({uri:G()}),lpe=Pn.extend({method:be("notifications/resources/updated"),params:upe}),dpe=re({name:G(),description:_e(G()),required:_e(xr())}),ppe=re({...bc.shape,...kd.shape,description:_e(G()),arguments:_e(it(dpe)),_meta:_e(Xn({}))}),fpe=Td.extend({method:be("prompts/list")}),mpe=Id.extend({prompts:it(ppe)}),hpe=Xr.extend({name:G(),arguments:ir(G(),G()).optional()}),gpe=fr.extend({method:be("prompts/get"),params:hpe}),B$=re({type:be("text"),text:G(),annotations:kc.optional(),_meta:ir(G(),nr()).optional()}),V$=re({type:be("image"),data:Z$,mimeType:G(),annotations:kc.optional(),_meta:ir(G(),nr()).optional()}),G$=re({type:be("audio"),data:Z$,mimeType:G(),annotations:kc.optional(),_meta:ir(G(),nr()).optional()}),vpe=re({type:be("tool_use"),name:G(),id:G(),input:re({}).passthrough(),_meta:_e(re({}).passthrough())}).passthrough(),ype=re({type:be("resource"),resource:Ft([B6,V6]),annotations:kc.optional(),_meta:ir(G(),nr()).optional()}),_pe=G6.extend({type:be("resource_link")}),W$=Ft([B$,V$,G$,_pe,ype]),bpe=re({role:Sr(["user","assistant"]),content:W$}),xpe=wr.extend({description:_e(G()),messages:it(bpe)}),Spe=Pn.extend({method:be("notifications/prompts/list_changed")}),wpe=re({title:G().optional(),readOnlyHint:xr().optional(),destructiveHint:xr().optional(),idempotentHint:xr().optional(),openWorldHint:xr().optional()}),$pe=re({taskSupport:Sr(["required","optional","forbidden"]).optional()}),W6=re({...bc.shape,...kd.shape,description:G().optional(),inputSchema:re({type:be("object"),properties:ir(G(),vi).optional(),required:it(G()).optional()}).catchall(nr()),outputSchema:re({type:be("object"),properties:ir(G(),vi).optional(),required:it(G()).optional()}).catchall(nr()).optional(),annotations:_e(wpe),execution:_e($pe),_meta:ir(G(),nr()).optional()}),Epe=Td.extend({method:be("tools/list")}),kpe=Id.extend({tools:it(W6)}),K6=wr.extend({content:it(W$).default([]),structuredContent:ir(G(),nr()).optional(),isError:_e(xr())}),gIe=K6.or(wr.extend({toolResult:nr()})),Tpe=Xr.extend({name:G(),arguments:_e(ir(G(),nr()))}),Ipe=fr.extend({method:be("tools/call"),params:Tpe}),Ppe=Pn.extend({method:be("notifications/tools/list_changed")}),J6=Sr(["debug","info","notice","warning","error","critical","alert","emergency"]),Rpe=Xr.extend({level:J6}),Ope=fr.extend({method:be("logging/setLevel"),params:Rpe}),Cpe=So.extend({level:J6,logger:G().optional(),data:nr()}),Npe=Pn.extend({method:be("notifications/message"),params:Cpe}),jpe=re({name:G().optional()}),Ape=re({hints:_e(it(jpe)),costPriority:_e(Ot().min(0).max(1)),speedPriority:_e(Ot().min(0).max(1)),intelligencePriority:_e(Ot().min(0).max(1))}),Mpe=re({mode:_e(Sr(["auto","required","none"]))}),Dpe=re({type:be("tool_result"),toolUseId:G().describe("The unique identifier for the corresponding tool call."),content:it(W$).default([]),structuredContent:re({}).passthrough().optional(),isError:_e(xr()),_meta:_e(re({}).passthrough())}).passthrough(),zpe=$6("type",[B$,V$,G$]),zh=$6("type",[B$,V$,G$,vpe,Dpe]),Upe=re({role:Sr(["user","assistant"]),content:Ft([zh,it(zh)]),_meta:_e(re({}).passthrough())}).passthrough(),qpe=Xr.extend({messages:it(Upe),modelPreferences:Ape.optional(),systemPrompt:G().optional(),includeContext:Sr(["none","thisServer","allServers"]).optional(),temperature:Ot().optional(),maxTokens:Ot().int(),stopSequences:it(G()).optional(),metadata:vi.optional(),tools:_e(it(W6)),toolChoice:_e(Mpe)}),Lpe=fr.extend({method:be("sampling/createMessage"),params:qpe}),Fpe=wr.extend({model:G(),stopReason:_e(Sr(["endTurn","stopSequence","maxTokens"]).or(G())),role:Sr(["user","assistant"]),content:zpe}),Zpe=wr.extend({model:G(),stopReason:_e(Sr(["endTurn","stopSequence","maxTokens","toolUse"]).or(G())),role:Sr(["user","assistant"]),content:Ft([zh,it(zh)])}),Hpe=re({type:be("boolean"),title:G().optional(),description:G().optional(),default:xr().optional()}),Bpe=re({type:be("string"),title:G().optional(),description:G().optional(),minLength:Ot().optional(),maxLength:Ot().optional(),format:Sr(["email","uri","date","date-time"]).optional(),default:G().optional()}),Vpe=re({type:Sr(["number","integer"]),title:G().optional(),description:G().optional(),minimum:Ot().optional(),maximum:Ot().optional(),default:Ot().optional()}),Gpe=re({type:be("string"),title:G().optional(),description:G().optional(),enum:it(G()),default:G().optional()}),Wpe=re({type:be("string"),title:G().optional(),description:G().optional(),oneOf:it(re({const:G(),title:G()})),default:G().optional()}),Kpe=re({type:be("string"),title:G().optional(),description:G().optional(),enum:it(G()),enumNames:it(G()).optional(),default:G().optional()}),Jpe=Ft([Gpe,Wpe]),Xpe=re({type:be("array"),title:G().optional(),description:G().optional(),minItems:Ot().optional(),maxItems:Ot().optional(),items:re({type:be("string"),enum:it(G())}),default:it(G()).optional()}),Ype=re({type:be("array"),title:G().optional(),description:G().optional(),minItems:Ot().optional(),maxItems:Ot().optional(),items:re({anyOf:it(re({const:G(),title:G()}))}),default:it(G()).optional()}),Qpe=Ft([Xpe,Ype]),efe=Ft([Kpe,Jpe,Qpe]),tfe=Ft([efe,Hpe,Bpe,Vpe]),rfe=Xr.extend({mode:be("form").optional(),message:G(),requestedSchema:re({type:be("object"),properties:ir(G(),tfe),required:it(G()).optional()})}),nfe=Xr.extend({mode:be("url"),message:G(),elicitationId:G(),url:G().url()}),ife=Ft([rfe,nfe]),afe=fr.extend({method:be("elicitation/create"),params:ife}),ofe=So.extend({elicitationId:G()}),sfe=Pn.extend({method:be("notifications/elicitation/complete"),params:ofe}),cfe=wr.extend({action:Sr(["accept","decline","cancel"]),content:P6(t=>t===null?void 0:t,ir(G(),Ft([G(),Ot(),xr(),it(G())])).optional())}),ufe=re({type:be("ref/resource"),uri:G()}),lfe=re({type:be("ref/prompt"),name:G()}),dfe=Xr.extend({ref:Ft([lfe,ufe]),argument:re({name:G(),value:G()}),context:re({arguments:ir(G(),G()).optional()}).optional()}),pfe=fr.extend({method:be("completion/complete"),params:dfe});var ffe=wr.extend({completion:Xn({values:it(G()).max(100),total:_e(Ot().int()),hasMore:_e(xr())})}),mfe=re({uri:G().startsWith("file://"),name:G().optional(),_meta:ir(G(),nr()).optional()}),hfe=fr.extend({method:be("roots/list")}),gfe=wr.extend({roots:it(mfe)}),vfe=Pn.extend({method:be("notifications/roots/list_changed")}),vIe=Ft([A6,Fde,pfe,Ope,gpe,fpe,Xde,Qde,rpe,ope,cpe,Ipe,Epe,U6,L6,F6]),yIe=Ft([N6,M6,Bde,vfe,z6]),_Ie=Ft([C6,Fpe,Zpe,cfe,gfe,q6,Z6,D6]),bIe=Ft([A6,Lpe,afe,hfe,U6,L6,F6]),xIe=Ft([N6,M6,Npe,lpe,ipe,Ppe,Spe,z6,sfe]),SIe=Ft([C6,Hde,ffe,xpe,mpe,Yde,epe,npe,K6,kpe,q6,Z6,D6]);var wIe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var $Ie=r2(nie(),1),EIe=r2(Xie(),1);var t2;(function(t){t.Completable="McpCompletable"})(t2||(t2={}));function X6({prompt:t,options:e}){let{systemPrompt:r,settingSources:n,sandbox:i,...a}=e??{},o,s;r===void 0?o="":typeof r=="string"?o=r:r.type==="preset"&&(s=r.append);let c=a.pathToClaudeCodeExecutable;if(!c){let Z=(0,h2.fileURLToPath)(yfe.url),J=(0,c$.join)(Z,"..");c=(0,c$.join)(J,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.76";let{abortController:u=v2(),additionalDirectories:l=[],agents:d,allowedTools:p=[],betas:f,canUseTool:h,continue:_,cwd:g,disallowedTools:m=[],tools:y,env:v,executable:b=N2()?"bun":"node",executableArgs:S=[],extraArgs:x={},fallbackModel:w,enableFileCheckpointing:E,forkSession:R,hooks:A,includePartialMessages:M,persistSession:q,maxThinkingTokens:B,maxTurns:U,maxBudgetUsd:Y,mcpServers:me,model:Qe,outputFormat:mt,permissionMode:fe="default",allowDangerouslySkipPermissions:F=!1,permissionPromptToolName:I,plugins:D,resume:C,resumeSessionAt:$,stderr:T,strictMcpConfig:N}=a,W=mt?.type==="json_schema"?mt.schema:void 0,K=v;if(K||(K={...process.env}),K.CLAUDE_CODE_ENTRYPOINT||(K.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),E&&(K.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let pe={},ce=new Map;if(me)for(let[Z,J]of Object.entries(me))J.type==="sdk"&&"instance"in J?(ce.set(Z,J.instance),pe[Z]={type:"sdk",name:Z}):pe[Z]=J;let je=typeof t=="string",P=new l$({abortController:u,additionalDirectories:l,betas:f,cwd:g,executable:b,executableArgs:S,extraArgs:x,pathToClaudeCodeExecutable:c,env:K,forkSession:R,stderr:T,maxThinkingTokens:B,maxTurns:U,maxBudgetUsd:Y,model:Qe,fallbackModel:w,jsonSchema:W,permissionMode:fe,allowDangerouslySkipPermissions:F,permissionPromptToolName:I,continueConversation:_,resume:C,resumeSessionAt:$,settingSources:n??[],allowedTools:p,disallowedTools:m,tools:y,mcpServers:pe,strictMcpConfig:N,canUseTool:!!h,hooks:!!A,includePartialMessages:M,persistSession:q,plugins:D,sandbox:i,spawnClaudeCodeProcess:a.spawnClaudeCodeProcess}),O={systemPrompt:o,appendSystemPrompt:s,agents:d},z=new f$(P,je,h,A,u,ce,W,O);return typeof t=="string"?P.write(JSON.stringify({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null})+` +`):z.streamInput(t),z}var ig=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let n={lastCwd:void 0},i=this.findClaudeExecutable(),a=this.getModelId(),o=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"],s=this.createMessageGenerator(e,n),c=!!e.memorySessionId;if(k.info("SDK","Starting SDK query",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,hasRealMemorySessionId:c,resume_parameter:c?e.memorySessionId:"(none - fresh start)",lastPromptNumber:e.lastPromptNumber}),e.lastPromptNumber>1){let d=c;k.debug("SDK",`[ALIGNMENT] Resume Decision | contentSessionId=${e.contentSessionId} | memorySessionId=${e.memorySessionId} | prompt#=${e.lastPromptNumber} | hasRealMemorySessionId=${c} | willResume=${d} | resumeWith=${d?e.memorySessionId:"NONE"}`)}else{let d=c;k.debug("SDK",`[ALIGNMENT] First Prompt (INIT) | contentSessionId=${e.contentSessionId} | prompt#=${e.lastPromptNumber} | hasStaleMemoryId=${d} | action=START_FRESH | Will capture new memorySessionId from SDK response`),d&&k.warn("SDK",`Skipping resume for INIT prompt despite existing memorySessionId=${e.memorySessionId} - SDK context was lost (worker restart or crash recovery)`)}let u=X6({prompt:s,options:{model:a,...c&&e.lastPromptNumber>1&&{resume:e.memorySessionId},disallowedTools:o,abortController:e.abortController,pathToClaudeCodeExecutable:i}});for await(let d of u){if(!e.memorySessionId&&d.session_id){e.memorySessionId=d.session_id,this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,d.session_id);let p=this.dbManager.getSessionStore().getSessionById(e.sessionDbId),f=p?.memory_session_id===d.session_id;k.info("SESSION",`MEMORY_ID_CAPTURED | sessionDbId=${e.sessionDbId} | memorySessionId=${d.session_id} | dbVerified=${f}`,{sessionId:e.sessionDbId,memorySessionId:d.session_id}),f||k.error("SESSION",`MEMORY_ID_MISMATCH | sessionDbId=${e.sessionDbId} | expected=${d.session_id} | got=${p?.memory_session_id}`,{sessionId:e.sessionDbId}),k.debug("SDK",`[ALIGNMENT] Captured | contentSessionId=${e.contentSessionId} \u2192 memorySessionId=${d.session_id} | Future prompts will resume with this ID`)}if(d.type==="assistant"){let p=d.message.content,f=Array.isArray(p)?p.filter(v=>v.type==="text").map(v=>v.text).join(` +`):typeof p=="string"?p:"",h=f.length,_=e.cumulativeInputTokens+e.cumulativeOutputTokens,g=d.message.usage;g&&(e.cumulativeInputTokens+=g.input_tokens||0,e.cumulativeOutputTokens+=g.output_tokens||0,g.cache_creation_input_tokens&&(e.cumulativeInputTokens+=g.cache_creation_input_tokens),k.debug("SDK","Token usage captured",{sessionId:e.sessionDbId,inputTokens:g.input_tokens,outputTokens:g.output_tokens,cacheCreation:g.cache_creation_input_tokens||0,cacheRead:g.cache_read_input_tokens||0,cumulativeInput:e.cumulativeInputTokens,cumulativeOutput:e.cumulativeOutputTokens}));let m=e.cumulativeInputTokens+e.cumulativeOutputTokens-_,y=e.earliestPendingTimestamp;if(h>0){let v=h>100?f.substring(0,100)+"...":f;k.dataOut("SDK",`Response received (${h} chars)`,{sessionId:e.sessionDbId,promptNumber:e.lastPromptNumber},v)}await Wn(f,e,this.dbManager,this.sessionManager,r,m,y,"SDK",n.lastCwd)}d.type==="result"&&d.subtype}let l=Date.now()-e.startTime;k.success("SDK","Agent completed",{sessionId:e.sessionDbId,duration:`${(l/1e3).toFixed(1)}s`})}async*createMessageGenerator(e,r){let n=Be.getInstance().getActiveMode(),i=e.lastPromptNumber===1;k.info("SDK","Creating message generator",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,lastPromptNumber:e.lastPromptNumber,isInitPrompt:i,promptType:i?"INIT":"CONTINUATION"});let a=i?Ys(e.project,e.contentSessionId,e.userPrompt,n):tc(e.userPrompt,e.lastPromptNumber,e.contentSessionId,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};for await(let o of this.sessionManager.getMessageIterator(e.sessionDbId))if(o.cwd&&(r.lastCwd=o.cwd),o.type==="observation"){o.prompt_number!==void 0&&(e.lastPromptNumber=o.prompt_number);let s=Qs({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:s}),yield{type:"user",message:{role:"user",content:s},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}else if(o.type==="summarize"){let s=ec({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:s}),yield{type:"user",message:{role:"user",content:s},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}}findClaudeExecutable(){let e=Fe.loadFromFile($n);if(e.CLAUDE_CODE_PATH){let{existsSync:r}=require("fs");if(!r(e.CLAUDE_CODE_PATH))throw new Error(`CLAUDE_CODE_PATH is set to "${e.CLAUDE_CODE_PATH}" but the file does not exist.`);return e.CLAUDE_CODE_PATH}try{let r=(0,Y6.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){k.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=J6.default.join((0,K6.homedir)(),".claude-mem","settings.json");return nt.loadFromFile(e).CLAUDE_MEM_MODEL}};var ng=yt(require("path"),1),ig=require("os");Ae();yn();jr();var cfe="https://generativelanguage.googleapis.com/v1beta/models",ufe={"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":5},X6=0;async function lfe(t,e){if(!e)return;let r=ufe[t]||5,n=Math.ceil(6e4/r)+100,a=Date.now()-X6;if(asetTimeout(s,o))}X6=Date.now()}var rg=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:a}=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.");let o=He.getInstance().getActiveMode(),s=e.lastPromptNumber===1?Ks(e.project,e.contentSessionId,e.userPrompt,o):Ys(e.userPrompt,e.lastPromptNumber,e.contentSessionId,o);e.conversationHistory.push({role:"user",content:s});let c=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,a);if(c.content){e.conversationHistory.push({role:"assistant",content:c.content});let l=c.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(l*.7),e.cumulativeOutputTokens+=Math.floor(l*.3),await Vn(c.content,e,this.dbManager,this.sessionManager,r,l,null,"Gemini")}else T.warn("SDK","Empty Gemini init response - session may lack context",{sessionId:e.sessionDbId,model:i});for await(let l of this.sessionManager.getMessageIterator(e.sessionDbId)){let d=e.earliestPendingTimestamp;if(l.type==="observation"){l.prompt_number!==void 0&&(e.lastPromptNumber=l.prompt_number);let p=Js({id:0,tool_name:l.tool_name,tool_input:JSON.stringify(l.tool_input),tool_output:JSON.stringify(l.tool_response),created_at_epoch:d??Date.now(),cwd:l.cwd});e.conversationHistory.push({role:"user",content:p});let f=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,a),h=0;f.content&&(e.conversationHistory.push({role:"assistant",content:f.content}),h=f.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(h*.7),e.cumulativeOutputTokens+=Math.floor(h*.3)),await Vn(f.content||"",e,this.dbManager,this.sessionManager,r,h,d,"Gemini")}else if(l.type==="summarize"){let p=Xs({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:l.last_assistant_message||""},o);e.conversationHistory.push({role:"user",content:p});let f=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,a),h=0;f.content&&(e.conversationHistory.push({role:"assistant",content:f.content}),h=f.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(h*.7),e.cumulativeOutputTokens+=Math.floor(h*.3)),await Vn(f.content||"",e,this.dbManager,this.sessionManager,r,h,d,"Gemini")}}let u=Date.now()-e.startTime;T.success("SDK","Gemini agent completed",{sessionId:e.sessionDbId,duration:`${(u/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length})}catch(n){if(nd(n))throw T.warn("SDK","Gemini agent aborted",{sessionId:e.sessionDbId}),n;if(rd(n)&&this.fallbackAgent)return T.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 T.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 a=this.conversationToGeminiContents(e),o=e.reduce((p,f)=>p+f.content.length,0);T.debug("SDK",`Querying Gemini multi-turn (${n})`,{turns:e.length,totalChars:o});let s=`${cfe}/${n}:generateContent?key=${r}`;await lfe(n,i);let c=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:a,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 T.warn("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=ng.default.join((0,ig.homedir)(),".claude-mem","settings.json"),r=nt.loadFromFile(e),n=r.CLAUDE_MEM_GEMINI_API_KEY||process.env.GEMINI_API_KEY||"",i="gemini-2.5-flash",a=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"],s;o.includes(a)?s=a:(T.warn("SDK",`Invalid Gemini model "${a}", falling back to ${i}`,{configured:a,validModels:o}),s=i);let c=r.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED!=="false";return{apiKey:n,model:s,rateLimitingEnabled:c}}};function V$(){let t=ng.default.join((0,ig.homedir)(),".claude-mem","settings.json");return!!(nt.loadFromFile(t).CLAUDE_MEM_GEMINI_API_KEY||process.env.GEMINI_API_KEY)}function G$(){let t=ng.default.join((0,ig.homedir)(),".claude-mem","settings.json");return nt.loadFromFile(t).CLAUDE_MEM_PROVIDER==="gemini"}Ae();yn();sn();jr();var dfe="https://openrouter.ai/api/v1/chat/completions",pfe=20,ffe=1e5,mfe=4,ag=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:a,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.");let s=He.getInstance().getActiveMode(),c=e.lastPromptNumber===1?Ks(e.project,e.contentSessionId,e.userPrompt,s):Ys(e.userPrompt,e.lastPromptNumber,e.contentSessionId,s);e.conversationHistory.push({role:"user",content:c});let u=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,a,o);if(u.content){e.conversationHistory.push({role:"assistant",content:u.content});let d=u.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(d*.7),e.cumulativeOutputTokens+=Math.floor(d*.3),await Vn(u.content,e,this.dbManager,this.sessionManager,r,d,null,"OpenRouter")}else T.warn("SDK","Empty OpenRouter init response - session may lack context",{sessionId:e.sessionDbId,model:i});for await(let d of this.sessionManager.getMessageIterator(e.sessionDbId)){let p=e.earliestPendingTimestamp;if(d.type==="observation"){d.prompt_number!==void 0&&(e.lastPromptNumber=d.prompt_number);let f=Js({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 h=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,a,o),_=0;h.content&&(e.conversationHistory.push({role:"assistant",content:h.content}),_=h.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(_*.7),e.cumulativeOutputTokens+=Math.floor(_*.3)),await Vn(h.content||"",e,this.dbManager,this.sessionManager,r,_,p,"OpenRouter")}else if(d.type==="summarize"){let f=Xs({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:d.last_assistant_message||""},s);e.conversationHistory.push({role:"user",content:f});let h=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,a,o),_=0;h.content&&(e.conversationHistory.push({role:"assistant",content:h.content}),_=h.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(_*.7),e.cumulativeOutputTokens+=Math.floor(_*.3)),await Vn(h.content||"",e,this.dbManager,this.sessionManager,r,_,p,"OpenRouter")}}let l=Date.now()-e.startTime;T.success("SDK","OpenRouter agent completed",{sessionId:e.sessionDbId,duration:`${(l/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length,model:i})}catch(n){if(nd(n))throw T.warn("SDK","OpenRouter agent aborted",{sessionId:e.sessionDbId}),n;if(rd(n)&&this.fallbackAgent)return T.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 T.failure("SDK","OpenRouter agent error",{sessionDbId:e.sessionDbId},n),n}}estimateTokens(e){return Math.ceil(e.length/mfe)}truncateHistory(e){let r=nt.loadFromFile(wn),n=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES)||pfe,i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS)||ffe;if(e.length<=n&&e.reduce((c,u)=>c+this.estimateTokens(u.content),0)<=i)return e;let a=[],o=0;for(let s=e.length-1;s>=0;s--){let c=e[s],u=this.estimateTokens(c.content);if(a.length>=n||o+u>i){T.warn("SDK","Context window truncated to prevent runaway costs",{originalMessages:e.length,keptMessages:a.length,droppedMessages:s+1,estimatedTokens:o,tokenLimit:i});break}a.unshift(c),o+=u}return a}conversationToOpenAIMessages(e){return e.map(r=>({role:r.role==="assistant"?"assistant":"user",content:r.content}))}async queryOpenRouterMultiTurn(e,r,n,i,a){let o=this.truncateHistory(e),s=this.conversationToOpenAIMessages(o),c=o.reduce((h,_)=>h+_.content.length,0),u=this.estimateTokens(o.map(h=>h.content).join(""));T.debug("SDK",`Querying OpenRouter multi-turn (${n})`,{turns:o.length,totalChars:c,estimatedTokens:u});let l=await fetch(dfe,{method:"POST",headers:{Authorization:`Bearer ${r}`,"HTTP-Referer":i||"https://github.com/thedotmack/claude-mem","X-Title":a||"claude-mem","Content-Type":"application/json"},body:JSON.stringify({model:n,messages:s,temperature:.3,max_tokens:4096})});if(!l.ok){let h=await l.text();throw new Error(`OpenRouter API error: ${l.status} - ${h}`)}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 T.warn("SDK","Empty response from OpenRouter"),{content:""};let p=d.choices[0].message.content,f=d.usage?.total_tokens;if(f){let h=d.usage?.prompt_tokens||0,_=d.usage?.completion_tokens||0,y=h/1e6*3+_/1e6*15;T.info("SDK","OpenRouter API usage",{model:n,inputTokens:h,outputTokens:_,totalTokens:f,estimatedCostUSD:y.toFixed(4),messagesInContext:o.length}),f>5e4&&T.warn("SDK","High token usage detected - consider reducing context",{totalTokens:f,estimatedCost:y.toFixed(4)})}return{content:p,tokensUsed:f}}getOpenRouterConfig(){let e=wn,r=nt.loadFromFile(e),n=r.CLAUDE_MEM_OPENROUTER_API_KEY||process.env.OPENROUTER_API_KEY||"",i=r.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",a=r.CLAUDE_MEM_OPENROUTER_SITE_URL||"",o=r.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem";return{apiKey:n,model:i,siteUrl:a,appName:o}}};function W$(){let t=wn;return!!(nt.loadFromFile(t).CLAUDE_MEM_OPENROUTER_API_KEY||process.env.OPENROUTER_API_KEY)}function K$(){let t=wn;return nt.loadFromFile(t).CLAUDE_MEM_PROVIDER==="openrouter"}Ae();var og=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(a=>this.stripProjectPath(a,r));return JSON.stringify(i)}catch(n){return T.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(a=>this.sanitizeObservation(a))}}getSummaries(e,r,n){let i=this.dbManager.getSessionStore().db,a=` +2. Set CLAUDE_CODE_PATH in ~/.claude-mem/settings.json`)}getModelId(){let e=eU.default.join((0,Q6.homedir)(),".claude-mem","settings.json");return Fe.loadFromFile(e).CLAUDE_MEM_MODEL}};var og=dt(require("path"),1),sg=require("os");Pe();Fr();jr();var _fe="https://generativelanguage.googleapis.com/v1beta/models",bfe={"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":5},tU=0;async function xfe(t,e){if(!e)return;let r=bfe[t]||5,n=Math.ceil(6e4/r)+100,a=Date.now()-tU;if(asetTimeout(s,o))}tU=Date.now()}var ag=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:a}=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.");let o=Be.getInstance().getActiveMode(),s=e.lastPromptNumber===1?Ys(e.project,e.contentSessionId,e.userPrompt,o):tc(e.userPrompt,e.lastPromptNumber,e.contentSessionId,o);e.conversationHistory.push({role:"user",content:s});let c=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,a);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 Wn(c.content,e,this.dbManager,this.sessionManager,r,d,null,"Gemini")}else k.warn("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)){d.cwd&&(u=d.cwd);let p=e.earliestPendingTimestamp;if(d.type==="observation"){d.prompt_number!==void 0&&(e.lastPromptNumber=d.prompt_number);let f=Qs({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 h=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,a),_=0;h.content&&(e.conversationHistory.push({role:"assistant",content:h.content}),_=h.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(_*.7),e.cumulativeOutputTokens+=Math.floor(_*.3)),await Wn(h.content||"",e,this.dbManager,this.sessionManager,r,_,p,"Gemini",u)}else if(d.type==="summarize"){let f=ec({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 h=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,a),_=0;h.content&&(e.conversationHistory.push({role:"assistant",content:h.content}),_=h.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(_*.7),e.cumulativeOutputTokens+=Math.floor(_*.3)),await Wn(h.content||"",e,this.dbManager,this.sessionManager,r,_,p,"Gemini",u)}}let l=Date.now()-e.startTime;k.success("SDK","Gemini agent completed",{sessionId:e.sessionDbId,duration:`${(l/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length})}catch(n){if(od(n))throw k.warn("SDK","Gemini agent aborted",{sessionId:e.sessionDbId}),n;if(ad(n)&&this.fallbackAgent)return k.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 k.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 a=this.conversationToGeminiContents(e),o=e.reduce((p,f)=>p+f.content.length,0);k.debug("SDK",`Querying Gemini multi-turn (${n})`,{turns:e.length,totalChars:o});let s=`${_fe}/${n}:generateContent?key=${r}`;await xfe(n,i);let c=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:a,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 k.warn("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=og.default.join((0,sg.homedir)(),".claude-mem","settings.json"),r=Fe.loadFromFile(e),n=r.CLAUDE_MEM_GEMINI_API_KEY||process.env.GEMINI_API_KEY||"",i="gemini-2.5-flash",a=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"],s;o.includes(a)?s=a:(k.warn("SDK",`Invalid Gemini model "${a}", falling back to ${i}`,{configured:a,validModels:o}),s=i);let c=r.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED!=="false";return{apiKey:n,model:s,rateLimitingEnabled:c}}};function K$(){let t=og.default.join((0,sg.homedir)(),".claude-mem","settings.json");return!!(Fe.loadFromFile(t).CLAUDE_MEM_GEMINI_API_KEY||process.env.GEMINI_API_KEY)}function J$(){let t=og.default.join((0,sg.homedir)(),".claude-mem","settings.json");return Fe.loadFromFile(t).CLAUDE_MEM_PROVIDER==="gemini"}Pe();Fr();cn();jr();var Sfe="https://openrouter.ai/api/v1/chat/completions",wfe=20,$fe=1e5,Efe=4,cg=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:a,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.");let s=Be.getInstance().getActiveMode(),c=e.lastPromptNumber===1?Ys(e.project,e.contentSessionId,e.userPrompt,s):tc(e.userPrompt,e.lastPromptNumber,e.contentSessionId,s);e.conversationHistory.push({role:"user",content:c});let u=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,a,o);if(u.content){e.conversationHistory.push({role:"assistant",content:u.content});let p=u.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(p*.7),e.cumulativeOutputTokens+=Math.floor(p*.3),await Wn(u.content,e,this.dbManager,this.sessionManager,r,p,null,"OpenRouter",void 0)}else k.warn("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)){p.cwd&&(l=p.cwd);let f=e.earliestPendingTimestamp;if(p.type==="observation"){p.prompt_number!==void 0&&(e.lastPromptNumber=p.prompt_number);let h=Qs({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:h});let _=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,a,o),g=0;_.content&&(e.conversationHistory.push({role:"assistant",content:_.content}),g=_.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(g*.7),e.cumulativeOutputTokens+=Math.floor(g*.3)),await Wn(_.content||"",e,this.dbManager,this.sessionManager,r,g,f,"OpenRouter",l)}else if(p.type==="summarize"){let h=ec({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:p.last_assistant_message||""},s);e.conversationHistory.push({role:"user",content:h});let _=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,a,o),g=0;_.content&&(e.conversationHistory.push({role:"assistant",content:_.content}),g=_.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(g*.7),e.cumulativeOutputTokens+=Math.floor(g*.3)),await Wn(_.content||"",e,this.dbManager,this.sessionManager,r,g,f,"OpenRouter",l)}}let d=Date.now()-e.startTime;k.success("SDK","OpenRouter agent completed",{sessionId:e.sessionDbId,duration:`${(d/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length,model:i})}catch(n){if(od(n))throw k.warn("SDK","OpenRouter agent aborted",{sessionId:e.sessionDbId}),n;if(ad(n)&&this.fallbackAgent)return k.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 k.failure("SDK","OpenRouter agent error",{sessionDbId:e.sessionDbId},n),n}}estimateTokens(e){return Math.ceil(e.length/Efe)}truncateHistory(e){let r=Fe.loadFromFile($n),n=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES)||wfe,i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS)||$fe;if(e.length<=n&&e.reduce((c,u)=>c+this.estimateTokens(u.content),0)<=i)return e;let a=[],o=0;for(let s=e.length-1;s>=0;s--){let c=e[s],u=this.estimateTokens(c.content);if(a.length>=n||o+u>i){k.warn("SDK","Context window truncated to prevent runaway costs",{originalMessages:e.length,keptMessages:a.length,droppedMessages:s+1,estimatedTokens:o,tokenLimit:i});break}a.unshift(c),o+=u}return a}conversationToOpenAIMessages(e){return e.map(r=>({role:r.role==="assistant"?"assistant":"user",content:r.content}))}async queryOpenRouterMultiTurn(e,r,n,i,a){let o=this.truncateHistory(e),s=this.conversationToOpenAIMessages(o),c=o.reduce((h,_)=>h+_.content.length,0),u=this.estimateTokens(o.map(h=>h.content).join(""));k.debug("SDK",`Querying OpenRouter multi-turn (${n})`,{turns:o.length,totalChars:c,estimatedTokens:u});let l=await fetch(Sfe,{method:"POST",headers:{Authorization:`Bearer ${r}`,"HTTP-Referer":i||"https://github.com/thedotmack/claude-mem","X-Title":a||"claude-mem","Content-Type":"application/json"},body:JSON.stringify({model:n,messages:s,temperature:.3,max_tokens:4096})});if(!l.ok){let h=await l.text();throw new Error(`OpenRouter API error: ${l.status} - ${h}`)}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 k.warn("SDK","Empty response from OpenRouter"),{content:""};let p=d.choices[0].message.content,f=d.usage?.total_tokens;if(f){let h=d.usage?.prompt_tokens||0,_=d.usage?.completion_tokens||0,g=h/1e6*3+_/1e6*15;k.info("SDK","OpenRouter API usage",{model:n,inputTokens:h,outputTokens:_,totalTokens:f,estimatedCostUSD:g.toFixed(4),messagesInContext:o.length}),f>5e4&&k.warn("SDK","High token usage detected - consider reducing context",{totalTokens:f,estimatedCost:g.toFixed(4)})}return{content:p,tokensUsed:f}}getOpenRouterConfig(){let e=$n,r=Fe.loadFromFile(e),n=r.CLAUDE_MEM_OPENROUTER_API_KEY||process.env.OPENROUTER_API_KEY||"",i=r.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",a=r.CLAUDE_MEM_OPENROUTER_SITE_URL||"",o=r.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem";return{apiKey:n,model:i,siteUrl:a,appName:o}}};function X$(){let t=$n;return!!(Fe.loadFromFile(t).CLAUDE_MEM_OPENROUTER_API_KEY||process.env.OPENROUTER_API_KEY)}function Y$(){let t=$n;return Fe.loadFromFile(t).CLAUDE_MEM_PROVIDER==="openrouter"}Pe();var ug=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(a=>this.stripProjectPath(a,r));return JSON.stringify(i)}catch(n){return k.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(a=>this.sanitizeObservation(a))}}getSummaries(e,r,n){let i=this.dbManager.getSessionStore().db,a=` SELECT ss.id, s.content_session_id as session_id, @@ -1138,13 +1169,13 @@ ${n.prompts.header_memory_continued}`}yn();sn();jr();var Jw=["429","500","502"," 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&&(a+=" WHERE s.project = ?",o.push(n)),a+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",o.push(r+1,e);let c=i.prepare(a).all(...o);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,n,i,a){let o=this.dbManager.getSessionStore().db,s=`SELECT ${r} FROM ${e}`,c=[];a&&(s+=" WHERE project = ?",c.push(a)),s+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",c.push(i+1,n);let l=o.prepare(s).all(...c);return{items:l.slice(0,i),hasMore:l.length>i,offset:n,limit:i}}};Ae();var sg=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 a of n){let o=a.key;o in i&&(i[o]=JSON.parse(a.value))}return i}catch(r){return T.debug("WORKER","Failed to load settings, using defaults",{},r),{...this.defaultSettings}}}updateSettings(e){let n=this.dbManager.getSessionStore().db.prepare(` + `,o=[];n&&(a+=" WHERE s.project = ?",o.push(n)),a+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",o.push(r+1,e);let c=i.prepare(a).all(...o);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,n,i,a){let o=this.dbManager.getSessionStore().db,s=`SELECT ${r} FROM ${e}`,c=[];a&&(s+=" WHERE project = ?",c.push(a)),s+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",c.push(i+1,n);let l=o.prepare(s).all(...c);return{items:l.slice(0,i),hasMore:l.length>i,offset:n,limit:i}}};Pe();var lg=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 a of n){let o=a.key;o in i&&(i[o]=JSON.parse(a.value))}return i}catch(r){return k.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,a]of Object.entries(e))n.run(i,JSON.stringify(a));return this.getSettings()}};var Y6=require("path");Ae();Td();jr();var Bi=class{emptyResult(e){return{results:{observations:[],sessions:[],prompts:[]},usedChroma:e==="chroma"||e==="hybrid",fellBack:!1,strategy:e}}};var qt={RECENCY_WINDOW_DAYS:90,RECENCY_WINDOW_MS:7776e6,DEFAULT_LIMIT:20,CHROMA_BATCH_SIZE:100};Ae();var Id=class extends Bi{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:a,concepts:o,files:s,limit:c=qt.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",h=[],_=[],y=[];try{let m=this.buildWhereFilter(i);T.debug("SEARCH","ChromaSearchStrategy: Querying Chroma",{query:n,searchType:i});let v=await this.chromaSync.queryChroma(n,qt.CHROMA_BATCH_SIZE,m);if(T.debug("SEARCH","ChromaSearchStrategy: Chroma returned matches",{matchCount:v.ids.length}),v.ids.length===0)return{results:{observations:[],sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"chroma"};let g=this.filterByRecency(v);T.debug("SEARCH","ChromaSearchStrategy: Filtered by recency",{count:g.length});let b=this.categorizeByDocType(g,{searchObservations:d,searchSessions:p,searchPrompts:f});if(b.obsIds.length>0){let S={type:a,concepts:o,files:s,orderBy:l,limit:c,project:u};h=this.sessionStore.getObservationsByIds(b.obsIds,S)}return b.sessionIds.length>0&&(_=this.sessionStore.getSessionSummariesByIds(b.sessionIds,{orderBy:l,limit:c,project:u})),b.promptIds.length>0&&(y=this.sessionStore.getUserPromptsByIds(b.promptIds,{orderBy:l,limit:c,project:u})),T.debug("SEARCH","ChromaSearchStrategy: Hydrated results",{observations:h.length,sessions:_.length,prompts:y.length}),{results:{observations:h,sessions:_,prompts:y},usedChroma:!0,fellBack:!1,strategy:"chroma"}}catch(m){return T.warn("SEARCH","ChromaSearchStrategy: Search failed",{},m),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"chroma"}}}buildWhereFilter(r){switch(r){case"observations":return{doc_type:"observation"};case"sessions":return{doc_type:"session_summary"};case"prompts":return{doc_type:"user_prompt"};default:return}}filterByRecency(r){let n=Date.now()-qt.RECENCY_WINDOW_MS;return r.metadatas.map((i,a)=>({id:r.ids[a],meta:i})).filter(i=>i.meta&&i.meta.created_at_epoch>n)}categorizeByDocType(r,n){let i=[],a=[],o=[];for(let s of r){let c=s.meta?.doc_type;c==="observation"&&n.searchObservations?i.push(s.id):c==="session_summary"&&n.searchSessions?a.push(s.id):c==="user_prompt"&&n.searchPrompts&&o.push(s.id)}return{obsIds:i,sessionIds:a,promptIds:o}}};Ae();var Pd=class extends Bi{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:a,files:o,limit:s=qt.DEFAULT_LIMIT,offset:c=0,project:u,dateRange:l,orderBy:d="date_desc"}=r,p=n==="all"||n==="observations",f=n==="all"||n==="sessions",h=n==="all"||n==="prompts",_=[],y=[],m=[],v={limit:s,offset:c,orderBy:d,project:u,dateRange:l};T.debug("SEARCH","SQLiteSearchStrategy: Filter-only query",{searchType:n,hasDateRange:!!l,hasProject:!!u});try{if(p){let g={...v,type:i,concepts:a,files:o};_=this.sessionSearch.searchObservations(void 0,g)}return f&&(y=this.sessionSearch.searchSessions(void 0,v)),h&&(m=this.sessionSearch.searchUserPrompts(void 0,v)),T.debug("SEARCH","SQLiteSearchStrategy: Results",{observations:_.length,sessions:y.length,prompts:m.length}),{results:{observations:_,sessions:y,prompts:m},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}catch(g){return T.warn("SEARCH","SQLiteSearchStrategy: Search failed",{},g),this.emptyResult("sqlite")}}findByConcept(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s="date_desc"}=n;return this.sessionSearch.findByConcept(r,{limit:i,project:a,dateRange:o,orderBy:s})}findByType(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s="date_desc"}=n;return this.sessionSearch.findByType(r,{limit:i,project:a,dateRange:o,orderBy:s})}findByFile(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s="date_desc"}=n;return this.sessionSearch.findByFile(r,{limit:i,project:a,dateRange:o,orderBy:s})}};Ae();var Od=class extends Bi{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=qt.DEFAULT_LIMIT,project:a}=r;return n?this.emptyResult("hybrid"):this.emptyResult("hybrid")}async findByConcept(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s}=n,c={limit:i,project:a,dateRange:o,orderBy:s};try{T.debug("SEARCH","HybridSearchStrategy: findByConcept",{concept:r});let u=this.sessionSearch.findByConcept(r,c);if(T.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,qt.CHROMA_BATCH_SIZE)),p=this.intersectWithRanking(l,d.ids);if(T.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:p.length}),p.length>0){let f=this.sessionStore.getObservationsByIds(p,{limit:i});return f.sort((h,_)=>p.indexOf(h.id)-p.indexOf(_.id)),{results:{observations:f,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(u){return T.warn("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=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s}=n,c={limit:i,project:a,dateRange:o,orderBy:s},u=Array.isArray(r)?r.join(", "):r;try{T.debug("SEARCH","HybridSearchStrategy: findByType",{type:u});let l=this.sessionSearch.findByType(r,c);if(T.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:l.length}),l.length===0)return this.emptyResult("hybrid");let d=l.map(h=>h.id),p=await this.chromaSync.queryChroma(u,Math.min(d.length,qt.CHROMA_BATCH_SIZE)),f=this.intersectWithRanking(d,p.ids);if(T.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:f.length}),f.length>0){let h=this.sessionStore.getObservationsByIds(f,{limit:i});return h.sort((_,y)=>f.indexOf(_.id)-f.indexOf(y.id)),{results:{observations:h,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(l){return T.warn("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=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s}=n,c={limit:i,project:a,dateRange:o,orderBy:s};try{T.debug("SEARCH","HybridSearchStrategy: findByFile",{filePath:r});let u=this.sessionSearch.findByFile(r,c);T.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(h=>h.id),p=await this.chromaSync.queryChroma(r,Math.min(d.length,qt.CHROMA_BATCH_SIZE)),f=this.intersectWithRanking(d,p.ids);if(T.debug("SEARCH","HybridSearchStrategy: Ranked observations",{count:f.length}),f.length>0){let h=this.sessionStore.getObservationsByIds(f,{limit:i});return h.sort((_,y)=>f.indexOf(_.id)-f.indexOf(y.id)),{observations:h,sessions:l,usedChroma:!0}}return{observations:[],sessions:l,usedChroma:!1}}catch(u){T.warn("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),a=[];for(let o of n)i.has(o)&&!a.includes(o)&&a.push(o);return a}};jr();Td();var gfe=4,Rd=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 a=this.combineResults(e);a.sort((u,l)=>l.epoch-u.epoch);let o=process.cwd(),s=cg(a,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 s){c.push(`### ${u}`),c.push("");let d=new Map;for(let p of l){let f="General";p.type==="observation"&&(f=Yn(p.data.files_modified,o)),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 h="";for(let _ of f)if(_.type==="observation"){let y=this.formatObservationSearchRow(_.data,h);c.push(y.row),h=y.time}else if(_.type==="session"){let y=this.formatSessionSearchRow(_.data,h);c.push(y.row),h=y.time}else{let y=this.formatPromptSearchRow(_.data,h);c.push(y.row),h=y.time}c.push("")}}return c.join(` + `);for(let[i,a]of Object.entries(e))n.run(i,JSON.stringify(a));return this.getSettings()}};var rU=require("path");Pe();nc();jr();var Hi=class{emptyResult(e){return{results:{observations:[],sessions:[],prompts:[]},usedChroma:e==="chroma"||e==="hybrid",fellBack:!1,strategy:e}}};var qt={RECENCY_WINDOW_DAYS:90,RECENCY_WINDOW_MS:7776e6,DEFAULT_LIMIT:20,CHROMA_BATCH_SIZE:100};Pe();var Rd=class extends Hi{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:a,concepts:o,files:s,limit:c=qt.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",h=[],_=[],g=[];try{let m=this.buildWhereFilter(i);k.debug("SEARCH","ChromaSearchStrategy: Querying Chroma",{query:n,searchType:i});let y=await this.chromaSync.queryChroma(n,qt.CHROMA_BATCH_SIZE,m);if(k.debug("SEARCH","ChromaSearchStrategy: Chroma returned matches",{matchCount:y.ids.length}),y.ids.length===0)return{results:{observations:[],sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"chroma"};let v=this.filterByRecency(y);k.debug("SEARCH","ChromaSearchStrategy: Filtered by recency",{count:v.length});let b=this.categorizeByDocType(v,{searchObservations:d,searchSessions:p,searchPrompts:f});if(b.obsIds.length>0){let S={type:a,concepts:o,files:s,orderBy:l,limit:c,project:u};h=this.sessionStore.getObservationsByIds(b.obsIds,S)}return b.sessionIds.length>0&&(_=this.sessionStore.getSessionSummariesByIds(b.sessionIds,{orderBy:l,limit:c,project:u})),b.promptIds.length>0&&(g=this.sessionStore.getUserPromptsByIds(b.promptIds,{orderBy:l,limit:c,project:u})),k.debug("SEARCH","ChromaSearchStrategy: Hydrated results",{observations:h.length,sessions:_.length,prompts:g.length}),{results:{observations:h,sessions:_,prompts:g},usedChroma:!0,fellBack:!1,strategy:"chroma"}}catch(m){return k.warn("SEARCH","ChromaSearchStrategy: Search failed",{},m),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"chroma"}}}buildWhereFilter(r){switch(r){case"observations":return{doc_type:"observation"};case"sessions":return{doc_type:"session_summary"};case"prompts":return{doc_type:"user_prompt"};default:return}}filterByRecency(r){let n=Date.now()-qt.RECENCY_WINDOW_MS;return r.metadatas.map((i,a)=>({id:r.ids[a],meta:i})).filter(i=>i.meta&&i.meta.created_at_epoch>n)}categorizeByDocType(r,n){let i=[],a=[],o=[];for(let s of r){let c=s.meta?.doc_type;c==="observation"&&n.searchObservations?i.push(s.id):c==="session_summary"&&n.searchSessions?a.push(s.id):c==="user_prompt"&&n.searchPrompts&&o.push(s.id)}return{obsIds:i,sessionIds:a,promptIds:o}}};Pe();var Od=class extends Hi{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:a,files:o,limit:s=qt.DEFAULT_LIMIT,offset:c=0,project:u,dateRange:l,orderBy:d="date_desc"}=r,p=n==="all"||n==="observations",f=n==="all"||n==="sessions",h=n==="all"||n==="prompts",_=[],g=[],m=[],y={limit:s,offset:c,orderBy:d,project:u,dateRange:l};k.debug("SEARCH","SQLiteSearchStrategy: Filter-only query",{searchType:n,hasDateRange:!!l,hasProject:!!u});try{if(p){let v={...y,type:i,concepts:a,files:o};_=this.sessionSearch.searchObservations(void 0,v)}return f&&(g=this.sessionSearch.searchSessions(void 0,y)),h&&(m=this.sessionSearch.searchUserPrompts(void 0,y)),k.debug("SEARCH","SQLiteSearchStrategy: Results",{observations:_.length,sessions:g.length,prompts:m.length}),{results:{observations:_,sessions:g,prompts:m},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}catch(v){return k.warn("SEARCH","SQLiteSearchStrategy: Search failed",{},v),this.emptyResult("sqlite")}}findByConcept(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s="date_desc"}=n;return this.sessionSearch.findByConcept(r,{limit:i,project:a,dateRange:o,orderBy:s})}findByType(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s="date_desc"}=n;return this.sessionSearch.findByType(r,{limit:i,project:a,dateRange:o,orderBy:s})}findByFile(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s="date_desc"}=n;return this.sessionSearch.findByFile(r,{limit:i,project:a,dateRange:o,orderBy:s})}};Pe();var Cd=class extends Hi{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=qt.DEFAULT_LIMIT,project:a}=r;return n?this.emptyResult("hybrid"):this.emptyResult("hybrid")}async findByConcept(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s}=n,c={limit:i,project:a,dateRange:o,orderBy:s};try{k.debug("SEARCH","HybridSearchStrategy: findByConcept",{concept:r});let u=this.sessionSearch.findByConcept(r,c);if(k.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,qt.CHROMA_BATCH_SIZE)),p=this.intersectWithRanking(l,d.ids);if(k.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:p.length}),p.length>0){let f=this.sessionStore.getObservationsByIds(p,{limit:i});return f.sort((h,_)=>p.indexOf(h.id)-p.indexOf(_.id)),{results:{observations:f,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(u){return k.warn("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=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s}=n,c={limit:i,project:a,dateRange:o,orderBy:s},u=Array.isArray(r)?r.join(", "):r;try{k.debug("SEARCH","HybridSearchStrategy: findByType",{type:u});let l=this.sessionSearch.findByType(r,c);if(k.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:l.length}),l.length===0)return this.emptyResult("hybrid");let d=l.map(h=>h.id),p=await this.chromaSync.queryChroma(u,Math.min(d.length,qt.CHROMA_BATCH_SIZE)),f=this.intersectWithRanking(d,p.ids);if(k.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:f.length}),f.length>0){let h=this.sessionStore.getObservationsByIds(f,{limit:i});return h.sort((_,g)=>f.indexOf(_.id)-f.indexOf(g.id)),{results:{observations:h,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(l){return k.warn("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=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s}=n,c={limit:i,project:a,dateRange:o,orderBy:s};try{k.debug("SEARCH","HybridSearchStrategy: findByFile",{filePath:r});let u=this.sessionSearch.findByFile(r,c);k.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(h=>h.id),p=await this.chromaSync.queryChroma(r,Math.min(d.length,qt.CHROMA_BATCH_SIZE)),f=this.intersectWithRanking(d,p.ids);if(k.debug("SEARCH","HybridSearchStrategy: Ranked observations",{count:f.length}),f.length>0){let h=this.sessionStore.getObservationsByIds(f,{limit:i});return h.sort((_,g)=>f.indexOf(_.id)-f.indexOf(g.id)),{observations:h,sessions:l,usedChroma:!0}}return{observations:[],sessions:l,usedChroma:!1}}catch(u){k.warn("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),a=[];for(let o of n)i.has(o)&&!a.includes(o)&&a.push(o);return a}};jr();nc();var kfe=4,Nd=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 a=this.combineResults(e);a.sort((u,l)=>l.epoch-u.epoch);let o=process.cwd(),s=ho(a,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 s){c.push(`### ${u}`),c.push("");let d=new Map;for(let p of l){let f="General";if(p.type==="observation"){let h=p.data;f=Vn(h.files_modified,o,h.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 h="";for(let _ of f)if(_.type==="observation"){let g=this.formatObservationSearchRow(_.data,h);c.push(g.row),h=g.time}else if(_.type==="session"){let g=this.formatSessionSearchRow(_.data,h);c.push(g.row),h=g.time}else{let g=this.formatPromptSearchRow(_.data,h);c.push(g.row),h=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=Mr(e.created_at_epoch),a=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?'"':i} | ${a} | ${o} | ~${s} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=Mr(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?'"':i} | ${a} | ${o} | - |`,time:i}}formatPromptSearchRow(e,r){let n=`#P${e.id}`,i=Mr(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?'"':i} | ${a} | ${o} | - |`,time:i}}formatObservationIndex(e,r){let n=`#${e.id}`,i=Mr(e.created_at_epoch),a=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e),c=He.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${a} | ${o} | ~${s} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=Mr(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${a} | ${o} | - | - |`}formatPromptIndex(e,r){let n=`#P${e.id}`,i=Mr(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${a} | ${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/gfe)}formatChromaFailureMessage(){return`Vector search failed - semantic search unavailable. +|-----|------|---|-------|------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,i=Ar(e.created_at_epoch),a=Be.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?'"':i} | ${a} | ${o} | ~${s} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=Ar(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?'"':i} | ${a} | ${o} | - |`,time:i}}formatPromptSearchRow(e,r){let n=`#P${e.id}`,i=Ar(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?'"':i} | ${a} | ${o} | - |`,time:i}}formatObservationIndex(e,r){let n=`#${e.id}`,i=Ar(e.created_at_epoch),a=Be.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e),c=Be.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${a} | ${o} | ~${s} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=Ar(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${a} | ${o} | - | - |`}formatPromptIndex(e,r){let n=`#P${e.id}`,i=Ar(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${a} | ${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/kfe)}formatChromaFailureMessage(){return`Vector search failed - semantic search unavailable. To enable semantic search: 1. Install uv: https://docs.astral.sh/uv/getting-started/installation/ @@ -1160,58 +1191,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"`}};jr();Td();var So=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,a){if(e.length===0)return e;let o=this.findAnchorIndex(e,r,n);if(o===-1)return e;let s=Math.max(0,o-i),c=Math.min(e.length,o+a+1);return e.slice(s,c)}findAnchorIndex(e,r,n){if(typeof r=="number")return e.findIndex(a=>a.type==="observation"&&a.data.id===r);if(typeof r=="string"&&r.startsWith("S")){let a=parseInt(r.slice(1),10);return e.findIndex(o=>o.type==="session"&&o.data.id===a)}let i=e.findIndex(a=>a.epoch>=n);return i===-1?e.length-1:i}formatTimeline(e,r,n={}){let{query:i,depthBefore:a,depthAfter:o,cwd:s=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");a!==void 0&&o!==void 0?c.push(`**Window:** ${a} 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,h="",_=!1;for(let y of p){let m=this.isAnchorItem(y,r);if(y.type==="session"){_&&(c.push(""),_=!1,f=null,h="");let v=y.data,g=v.request||"Session summary",b=m?" <- **ANCHOR**":"";c.push(`**\u{1F3AF} #S${v.id}** ${g} (${In(y.epoch)})${b}`),c.push("")}else if(y.type==="prompt"){_&&(c.push(""),_=!1,f=null,h="");let v=y.data,g=v.prompt_text.length>100?v.prompt_text.substring(0,100)+"...":v.prompt_text;c.push(`**\u{1F4AC} User Prompt #${v.prompt_number}** (${In(y.epoch)})`),c.push(`> ${g}`),c.push("")}else if(y.type==="observation"){let v=y.data,g=Yn(v.files_modified,s);g!==f&&(_&&c.push(""),c.push(`**${g}**`),c.push("| ID | Time | T | Title | Tokens |"),c.push("|----|------|---|-------|--------|"),f=g,_=!0,h="");let b=He.getInstance().getTypeIcon(v.type),S=Mr(y.epoch),x=v.title||"Untitled",w=Sc(v.narrative),O=S!==h?S:'"';h=S;let A=m?" <- **ANCHOR**":"";c.push(`| #${v.id} | ${O} | ${b} | ${x}${A} | ~${w} |`)}}_&&c.push("")}return c.join(` -`)}groupByDay(e){let r=new Map;for(let n of e){let i=Hi(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(),a=new Date(n[0]).getTime();return i-a})}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}};Ae();var Cd=class{constructor(e,r,n){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.sqliteStrategy=new Pd(e),n&&(this.chromaStrategy=new Id(n,r),this.hybridStrategy=new Od(n,r,e)),this.resultFormatter=new Rd,this.timelineBuilder=new So}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 T.debug("SEARCH","Orchestrator: Filter-only query, using SQLite",{}),await this.sqliteStrategy.search(e);if(this.chromaStrategy){T.debug("SEARCH","Orchestrator: Using Chroma semantic search",{});let r=await this.chromaStrategy.search(e);return r.usedChroma?r:(T.debug("SEARCH","Orchestrator: Chroma failed, falling back to SQLite",{}),{...await this.sqliteStrategy.search({...e,query:void 0}),fellBack:!0})}return T.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,a){let o=this.timelineBuilder.buildTimeline(e);return this.timelineBuilder.filterByDepth(o,r,n,i,a)}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 ug=class{constructor(e,r,n,i,a){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.formatter=i;this.timelineService=a;this.orchestrator=new Cd(e,r,n),this.timelineBuilder=new So}orchestrator;timelineBuilder;async queryChroma(e,r,n){return await this.chromaSync.queryChroma(e,r,n)}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.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}async search(e){let r=this.normalizeParams(e),{query:n,type:i,obs_type:a,concepts:o,files:s,format:c,...u}=r,l=[],d=[],p=[],f=!1,h=!i||i==="observations",_=!i||i==="sessions",y=!i||i==="prompts";if(n)if(this.chromaSync){let w=!1;T.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:i||"all"});let E;i==="observations"?E={doc_type:"observation"}:i==="sessions"?E={doc_type:"session_summary"}:i==="prompts"&&(E={doc_type:"user_prompt"});let O=await this.queryChroma(n,100,E);if(w=!0,T.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:O.ids.length}),O.ids.length>0){let A=Date.now()-qt.RECENCY_WINDOW_MS,M=O.metadatas.map((Y,me)=>({id:O.ids[me],meta:Y,isRecent:Y&&Y.created_at_epoch>A})).filter(Y=>Y.isRecent);T.debug("SEARCH","Results within 90-day window",{count:M.length});let q=[],B=[],U=[];for(let Y of M){let me=Y.meta?.doc_type;me==="observation"&&h?q.push(Y.id):me==="session_summary"&&_?B.push(Y.id):me==="user_prompt"&&y&&U.push(Y.id)}if(T.debug("SEARCH","Categorized results by type",{observations:q.length,sessions:B.length,prompts:p.length}),q.length>0){let Y={...u,type:a,concepts:o,files:s};l=this.sessionStore.getObservationsByIds(q,Y)}B.length>0&&(d=this.sessionStore.getSessionSummariesByIds(B,{orderBy:"date_desc",limit:u.limit,project:u.project})),U.length>0&&(p=this.sessionStore.getUserPromptsByIds(U,{orderBy:"date_desc",limit:u.limit,project:u.project})),T.debug("SEARCH","Hydrated results from SQLite",{observations:l.length,sessions:d.length,prompts:p.length})}else T.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else n&&(f=!0,T.debug("SEARCH","ChromaDB not initialized - semantic search unavailable",{}),T.debug("SEARCH","Install UVX/Python to enable vector search",{url:"https://docs.astral.sh/uv/getting-started/installation/"}),l=[],d=[],p=[]);else{T.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let w={...u,type:a,concepts:o,files:s};h&&(l=this.sessionSearch.searchObservations(void 0,w)),_&&(d=this.sessionSearch.searchSessions(void 0,u)),y&&(p=this.sessionSearch.searchUserPrompts(void 0,u))}let m=l.length+d.length+p.length;if(c==="json")return{observations:l,sessions:d,prompts:p,totalResults:m,query:n||""};if(m===0)return f?{content:[{type:"text",text:`Vector search failed - semantic search unavailable. +- Sort: orderBy="date_desc" or "date_asc"`}};jr();nc();var wo=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,a){if(e.length===0)return e;let o=this.findAnchorIndex(e,r,n);if(o===-1)return e;let s=Math.max(0,o-i),c=Math.min(e.length,o+a+1);return e.slice(s,c)}findAnchorIndex(e,r,n){if(typeof r=="number")return e.findIndex(a=>a.type==="observation"&&a.data.id===r);if(typeof r=="string"&&r.startsWith("S")){let a=parseInt(r.slice(1),10);return e.findIndex(o=>o.type==="session"&&o.data.id===a)}let i=e.findIndex(a=>a.epoch>=n);return i===-1?e.length-1:i}formatTimeline(e,r,n={}){let{query:i,depthBefore:a,depthAfter:o,cwd:s=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");a!==void 0&&o!==void 0?c.push(`**Window:** ${a} 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,h="",_=!1;for(let g of p){let m=this.isAnchorItem(g,r);if(g.type==="session"){_&&(c.push(""),_=!1,f=null,h="");let y=g.data,v=y.request||"Session summary",b=m?" <- **ANCHOR**":"";c.push(`**\u{1F3AF} #S${y.id}** ${v} (${kn(g.epoch)})${b}`),c.push("")}else if(g.type==="prompt"){_&&(c.push(""),_=!1,f=null,h="");let y=g.data,v=y.prompt_text.length>100?y.prompt_text.substring(0,100)+"...":y.prompt_text;c.push(`**\u{1F4AC} User Prompt #${y.prompt_number}** (${kn(g.epoch)})`),c.push(`> ${v}`),c.push("")}else if(g.type==="observation"){let y=g.data,v=Vn(y.files_modified,s,y.files_read);v!==f&&(_&&c.push(""),c.push(`**${v}**`),c.push("| ID | Time | T | Title | Tokens |"),c.push("|----|------|---|-------|--------|"),f=v,_=!0,h="");let b=Be.getInstance().getTypeIcon(y.type),S=Ar(g.epoch),x=y.title||"Untitled",w=rc(y.narrative),R=S!==h?S:'"';h=S;let A=m?" <- **ANCHOR**":"";c.push(`| #${y.id} | ${R} | ${b} | ${x}${A} | ~${w} |`)}}_&&c.push("")}return c.join(` +`)}groupByDay(e){let r=new Map;for(let n of e){let i=Di(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(),a=new Date(n[0]).getTime();return i-a})}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}};Pe();var jd=class{constructor(e,r,n){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.sqliteStrategy=new Od(e),n&&(this.chromaStrategy=new Rd(n,r),this.hybridStrategy=new Cd(n,r,e)),this.resultFormatter=new Nd,this.timelineBuilder=new wo}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 k.debug("SEARCH","Orchestrator: Filter-only query, using SQLite",{}),await this.sqliteStrategy.search(e);if(this.chromaStrategy){k.debug("SEARCH","Orchestrator: Using Chroma semantic search",{});let r=await this.chromaStrategy.search(e);return r.usedChroma?r:(k.debug("SEARCH","Orchestrator: Chroma failed, falling back to SQLite",{}),{...await this.sqliteStrategy.search({...e,query:void 0}),fellBack:!0})}return k.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,a){let o=this.timelineBuilder.buildTimeline(e);return this.timelineBuilder.filterByDepth(o,r,n,i,a)}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 dg=class{constructor(e,r,n,i,a){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.formatter=i;this.timelineService=a;this.orchestrator=new jd(e,r,n),this.timelineBuilder=new wo}orchestrator;timelineBuilder;async queryChroma(e,r,n){return await this.chromaSync.queryChroma(e,r,n)}normalizeParams(e){let r={...e};return r.filePath&&!r.files&&(r.files=r.filePath,delete r.filePath),r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obs_type=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r.isFolder==="true"?r.isFolder=!0:r.isFolder==="false"&&(r.isFolder=!1),r}async search(e){let r=this.normalizeParams(e),{query:n,type:i,obs_type:a,concepts:o,files:s,format:c,...u}=r,l=[],d=[],p=[],f=!1,h=!i||i==="observations",_=!i||i==="sessions",g=!i||i==="prompts";if(n)if(this.chromaSync){let w=!1;k.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:i||"all"});let E;i==="observations"?E={doc_type:"observation"}:i==="sessions"?E={doc_type:"session_summary"}:i==="prompts"&&(E={doc_type:"user_prompt"});let R=await this.queryChroma(n,100,E);if(w=!0,k.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:R.ids.length}),R.ids.length>0){let A=Date.now()-qt.RECENCY_WINDOW_MS,M=R.metadatas.map((Y,me)=>({id:R.ids[me],meta:Y,isRecent:Y&&Y.created_at_epoch>A})).filter(Y=>Y.isRecent);k.debug("SEARCH","Results within 90-day window",{count:M.length});let q=[],B=[],U=[];for(let Y of M){let me=Y.meta?.doc_type;me==="observation"&&h?q.push(Y.id):me==="session_summary"&&_?B.push(Y.id):me==="user_prompt"&&g&&U.push(Y.id)}if(k.debug("SEARCH","Categorized results by type",{observations:q.length,sessions:B.length,prompts:p.length}),q.length>0){let Y={...u,type:a,concepts:o,files:s};l=this.sessionStore.getObservationsByIds(q,Y)}B.length>0&&(d=this.sessionStore.getSessionSummariesByIds(B,{orderBy:"date_desc",limit:u.limit,project:u.project})),U.length>0&&(p=this.sessionStore.getUserPromptsByIds(U,{orderBy:"date_desc",limit:u.limit,project:u.project})),k.debug("SEARCH","Hydrated results from SQLite",{observations:l.length,sessions:d.length,prompts:p.length})}else k.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else n&&(f=!0,k.debug("SEARCH","ChromaDB not initialized - semantic search unavailable",{}),k.debug("SEARCH","Install UVX/Python to enable vector search",{url:"https://docs.astral.sh/uv/getting-started/installation/"}),l=[],d=[],p=[]);else{k.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let w={...u,type:a,concepts:o,files:s};h&&(l=this.sessionSearch.searchObservations(void 0,w)),_&&(d=this.sessionSearch.searchSessions(void 0,u)),g&&(p=this.sessionSearch.searchUserPrompts(void 0,u))}let m=l.length+d.length+p.length;if(c==="json")return{observations:l,sessions:d,prompts:p,totalResults:m,query:n||""};if(m===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 v=[...l.map(w=>({type:"observation",data:w,epoch:w.created_at_epoch,created_at:w.created_at})),...d.map(w=>({type:"session",data:w,epoch:w.created_at_epoch,created_at:w.created_at})),...p.map(w=>({type:"prompt",data:w,epoch:w.created_at_epoch,created_at:w.created_at}))];u.orderBy==="date_desc"?v.sort((w,E)=>E.epoch-w.epoch):u.orderBy==="date_asc"&&v.sort((w,E)=>w.epoch-E.epoch);let g=v.slice(0,u.limit||20),b=process.cwd(),S=cg(g,w=>w.created_at),x=[];x.push(`Found ${m} result(s) matching "${n}" (${l.length} obs, ${d.length} sessions, ${p.length} prompts)`),x.push("");for(let[w,E]of S){x.push(`### ${w}`),x.push("");let O=new Map;for(let A of E){let M="General";A.type==="observation"&&(M=Yn(A.data.files_modified,b)),O.has(M)||O.set(M,[]),O.get(M).push(A)}for(let[A,M]of O){x.push(`**${A}**`),x.push(this.formatter.formatSearchTableHeader());let q="";for(let B of M)if(B.type==="observation"){let U=this.formatter.formatObservationSearchRow(B.data,q);x.push(U.row),q=U.time}else if(B.type==="session"){let U=this.formatter.formatSessionSearchRow(B.data,q);x.push(U.row),q=U.time}else{let U=this.formatter.formatUserPromptSearchRow(B.data,q);x.push(U.row),q=U.time}x.push("")}}return{content:[{type:"text",text:x.join(` -`)}]}}async timeline(e){let{anchor:r,query:n,depth_before:i=10,depth_after:a=10,project:o}=e,s=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 y=[];if(this.chromaSync)try{T.debug("SEARCH","Using hybrid semantic search for timeline query",{});let v=await this.queryChroma(n,100);if(T.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:v?.ids?.length??0}),v?.ids&&v.ids.length>0){let g=Date.now()-qt.RECENCY_WINDOW_MS,b=v.ids.filter((S,x)=>{let w=v.metadatas[x];return w&&w.created_at_epoch>g});b.length>0&&(y=this.sessionStore.getObservationsByIds(b,{orderBy:"date_desc",limit:1}))}}catch(v){T.warn("SEARCH","Chroma search failed for timeline, continuing without semantic results",{},v)}if(y.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};let m=y[0];c=m.id,u=m.created_at_epoch,T.debug("SEARCH","Query mode: Using observation as timeline anchor",{observationId:m.id}),l=this.sessionStore.getTimelineAroundObservation(m.id,m.created_at_epoch,i,a,o)}else if(typeof r=="number"){let y=this.sessionStore.getObservationById(r);if(!y)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};c=r,u=y.created_at_epoch,l=this.sessionStore.getTimelineAroundObservation(r,u,i,a,o)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let y=r.replace(/^#?S/,""),m=parseInt(y,10),v=this.sessionStore.getSessionSummariesByIds([m]);if(v.length===0)return{content:[{type:"text",text:`Session #${m} not found`}],isError:!0};u=v[0].created_at_epoch,c=`S${m}`,l=this.sessionStore.getTimelineAroundTimestamp(u,i,a,o)}else{let y=new Date(r);if(isNaN(y.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};u=y.getTime(),c=r,l=this.sessionStore.getTimelineAroundTimestamp(u,i,a,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(y=>({type:"observation",data:y,epoch:y.created_at_epoch})),...(l.sessions||[]).map(y=>({type:"session",data:y,epoch:y.created_at_epoch})),...(l.prompts||[]).map(y=>({type:"prompt",data:y,epoch:y.created_at_epoch}))];d.sort((y,m)=>y.epoch-m.epoch);let p=this.timelineService.filterByDepth(d,c,u,i,a);if(!p||p.length===0)return{content:[{type:"text",text:n?`Found observation matching "${n}", but no timeline context available (${i} records before, ${a} records after).`:`No context found around anchor (${i} records before, ${a} records after)`}]};let f=[];if(n){let y=p.find(v=>v.type==="observation"&&v.data.id===c),m=y&&y.type==="observation"?y.data.title||"Untitled":"Unknown";f.push(`# Timeline for query: "${n}"`),f.push(`**Anchor:** Observation #${c} - ${m}`)}else f.push(`# Timeline around anchor: ${c}`);f.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${p?.length??0}`),f.push("");let h=new Map;for(let y of p){let m=Hi(y.epoch);h.has(m)||h.set(m,[]),h.get(m).push(y)}let _=Array.from(h.entries()).sort((y,m)=>{let v=new Date(y[0]).getTime(),g=new Date(m[0]).getTime();return v-g});for(let[y,m]of _){f.push(`### ${y}`),f.push("");let v=null,g="",b=!1;for(let S of m){let x=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"){b&&(f.push(""),b=!1,v=null,g="");let w=S.data,E=w.request||"Session summary",O=x?" <- **ANCHOR**":"";f.push(`**\u{1F3AF} #S${w.id}** ${E} (${In(S.epoch)})${O}`),f.push("")}else if(S.type==="prompt"){b&&(f.push(""),b=!1,v=null,g="");let w=S.data,E=w.prompt_text.length>100?w.prompt_text.substring(0,100)+"...":w.prompt_text;f.push(`**\u{1F4AC} User Prompt #${w.prompt_number}** (${In(S.epoch)})`),f.push(`> ${E}`),f.push("")}else if(S.type==="observation"){let w=S.data,E=Yn(w.files_modified,s);E!==v&&(b&&f.push(""),f.push(`**${E}**`),f.push("| ID | Time | T | Title | Tokens |"),f.push("|----|------|---|-------|--------|"),v=E,b=!0,g="");let O=He.getInstance().getTypeIcon(w.type),A=Mr(S.epoch),M=w.title||"Untitled",q=Sc(w.narrative),U=A!==g?A:'"';g=A;let Y=x?" <- **ANCHOR**":"";f.push(`| #${w.id} | ${U} | ${O} | ${M}${Y} | ~${q} |`)}}b&&f.push("")}return{content:[{type:"text",text:f.join(` -`)}]}}async decisions(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync)try{if(n){T.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&&(a=this.sessionStore.getObservationsByIds(u,{...i,type:"decision"}),a.sort((l,d)=>u.indexOf(l.id)-u.indexOf(d.id)))}else{T.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&&(a=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),a.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}}catch(c){T.warn("SEARCH","Chroma search failed for decisions, falling back to metadata search",{},c)}if(a.length===0&&(a=this.sessionSearch.findByType("decision",i)),a.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let o=`Found ${a.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 y=[...l.map(w=>({type:"observation",data:w,epoch:w.created_at_epoch,created_at:w.created_at})),...d.map(w=>({type:"session",data:w,epoch:w.created_at_epoch,created_at:w.created_at})),...p.map(w=>({type:"prompt",data:w,epoch:w.created_at_epoch,created_at:w.created_at}))];u.orderBy==="date_desc"?y.sort((w,E)=>E.epoch-w.epoch):u.orderBy==="date_asc"&&y.sort((w,E)=>w.epoch-E.epoch);let v=y.slice(0,u.limit||20),b=process.cwd(),S=ho(v,w=>w.created_at),x=[];x.push(`Found ${m} result(s) matching "${n}" (${l.length} obs, ${d.length} sessions, ${p.length} prompts)`),x.push("");for(let[w,E]of S){x.push(`### ${w}`),x.push("");let R=new Map;for(let A of E){let M="General";A.type==="observation"&&(M=Vn(A.data.files_modified,b,A.data.files_read)),R.has(M)||R.set(M,[]),R.get(M).push(A)}for(let[A,M]of R){x.push(`**${A}**`),x.push(this.formatter.formatSearchTableHeader());let q="";for(let B of M)if(B.type==="observation"){let U=this.formatter.formatObservationSearchRow(B.data,q);x.push(U.row),q=U.time}else if(B.type==="session"){let U=this.formatter.formatSessionSearchRow(B.data,q);x.push(U.row),q=U.time}else{let U=this.formatter.formatUserPromptSearchRow(B.data,q);x.push(U.row),q=U.time}x.push("")}}return{content:[{type:"text",text:x.join(` +`)}]}}async timeline(e){let{anchor:r,query:n,depth_before:i=10,depth_after:a=10,project:o}=e,s=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{k.debug("SEARCH","Using hybrid semantic search for timeline query",{});let y=await this.queryChroma(n,100);if(k.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:y?.ids?.length??0}),y?.ids&&y.ids.length>0){let v=Date.now()-qt.RECENCY_WINDOW_MS,b=y.ids.filter((S,x)=>{let w=y.metadatas[x];return w&&w.created_at_epoch>v});b.length>0&&(g=this.sessionStore.getObservationsByIds(b,{orderBy:"date_desc",limit:1}))}}catch(y){k.warn("SEARCH","Chroma search failed for timeline, continuing without semantic results",{},y)}if(g.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};let m=g[0];c=m.id,u=m.created_at_epoch,k.debug("SEARCH","Query mode: Using observation as timeline anchor",{observationId:m.id}),l=this.sessionStore.getTimelineAroundObservation(m.id,m.created_at_epoch,i,a,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,a,o)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let g=r.replace(/^#?S/,""),m=parseInt(g,10),y=this.sessionStore.getSessionSummariesByIds([m]);if(y.length===0)return{content:[{type:"text",text:`Session #${m} not found`}],isError:!0};u=y[0].created_at_epoch,c=`S${m}`,l=this.sessionStore.getTimelineAroundTimestamp(u,i,a,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,a,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,m)=>g.epoch-m.epoch);let p=this.timelineService.filterByDepth(d,c,u,i,a);if(!p||p.length===0)return{content:[{type:"text",text:n?`Found observation matching "${n}", but no timeline context available (${i} records before, ${a} records after).`:`No context found around anchor (${i} records before, ${a} records after)`}]};let f=[];if(n){let g=p.find(y=>y.type==="observation"&&y.data.id===c),m=g&&g.type==="observation"?g.data.title||"Untitled":"Unknown";f.push(`# Timeline for query: "${n}"`),f.push(`**Anchor:** Observation #${c} - ${m}`)}else f.push(`# Timeline around anchor: ${c}`);f.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${p?.length??0}`),f.push("");let h=new Map;for(let g of p){let m=Di(g.epoch);h.has(m)||h.set(m,[]),h.get(m).push(g)}let _=Array.from(h.entries()).sort((g,m)=>{let y=new Date(g[0]).getTime(),v=new Date(m[0]).getTime();return y-v});for(let[g,m]of _){f.push(`### ${g}`),f.push("");let y=null,v="",b=!1;for(let S of m){let x=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"){b&&(f.push(""),b=!1,y=null,v="");let w=S.data,E=w.request||"Session summary",R=x?" <- **ANCHOR**":"";f.push(`**\u{1F3AF} #S${w.id}** ${E} (${kn(S.epoch)})${R}`),f.push("")}else if(S.type==="prompt"){b&&(f.push(""),b=!1,y=null,v="");let w=S.data,E=w.prompt_text.length>100?w.prompt_text.substring(0,100)+"...":w.prompt_text;f.push(`**\u{1F4AC} User Prompt #${w.prompt_number}** (${kn(S.epoch)})`),f.push(`> ${E}`),f.push("")}else if(S.type==="observation"){let w=S.data,E=Vn(w.files_modified,s,w.files_read);E!==y&&(b&&f.push(""),f.push(`**${E}**`),f.push("| ID | Time | T | Title | Tokens |"),f.push("|----|------|---|-------|--------|"),y=E,b=!0,v="");let R=Be.getInstance().getTypeIcon(w.type),A=Ar(S.epoch),M=w.title||"Untitled",q=rc(w.narrative),U=A!==v?A:'"';v=A;let Y=x?" <- **ANCHOR**":"";f.push(`| #${w.id} | ${U} | ${R} | ${M}${Y} | ~${q} |`)}}b&&f.push("")}return{content:[{type:"text",text:f.join(` +`)}]}}async decisions(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync)try{if(n){k.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&&(a=this.sessionStore.getObservationsByIds(u,{...i,type:"decision"}),a.sort((l,d)=>u.indexOf(l.id)-u.indexOf(d.id)))}else{k.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&&(a=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),a.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}}catch(c){k.warn("SEARCH","Chroma search failed for decisions, falling back to metadata search",{},c)}if(a.length===0&&(a=this.sessionSearch.findByType("decision",i)),a.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let o=`Found ${a.length} decision(s) ${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:o+` `+s.join(` -`)}]}}async changes(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync)try{T.debug("SEARCH","Using hybrid search for change-related observations",{});let s=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;if([...s,...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 h of p.ids)d.includes(h)&&!f.includes(h)&&f.push(h);f.length>0&&(i=this.sessionStore.getObservationsByIds(f,{limit:n.limit||20}),i.sort((h,_)=>f.indexOf(h.id)-f.indexOf(_.id)))}}catch(s){T.warn("SEARCH","Chroma search failed for changes, falling back to metadata search",{},s)}if(i.length===0){let s=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;[...s,...c,...u].forEach(d=>l.add(d.id)),i=Array.from(l).map(d=>s.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 a=`Found ${i.length} change-related observation(s) +`)}]}}async changes(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync)try{k.debug("SEARCH","Using hybrid search for change-related observations",{});let s=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;if([...s,...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 h of p.ids)d.includes(h)&&!f.includes(h)&&f.push(h);f.length>0&&(i=this.sessionStore.getObservationsByIds(f,{limit:n.limit||20}),i.sort((h,_)=>f.indexOf(h.id)-f.indexOf(_.id)))}}catch(s){k.warn("SEARCH","Chroma search failed for changes, falling back to metadata search",{},s)}if(i.length===0){let s=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;[...s,...c,...u].forEach(d=>l.add(d.id)),i=Array.from(l).map(d=>s.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 a=`Found ${i.length} change-related observation(s) ${this.formatter.formatTableHeader()}`,o=i.map((s,c)=>this.formatter.formatObservationIndex(s,c));return{content:[{type:"text",text:a+` `+o.join(` -`)}]}}async howItWorks(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync){T.debug("SEARCH","Using metadata-first + semantic ranking for how-it-works",{});let s=this.sessionSearch.findByConcept("how-it-works",n);if(s.length>0){let c=s.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 a=`Found ${i.length} "how it works" observation(s) +`)}]}}async howItWorks(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync){k.debug("SEARCH","Using metadata-first + semantic ranking for how-it-works",{});let s=this.sessionSearch.findByConcept("how-it-works",n);if(s.length>0){let c=s.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 a=`Found ${i.length} "how it works" observation(s) ${this.formatter.formatTableHeader()}`,o=i.map((s,c)=>this.formatter.formatObservationIndex(s,c));return{content:[{type:"text",text:a+` `+o.join(` -`)}]}}async searchObservations(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync){T.debug("SEARCH","Using hybrid semantic search (Chroma + SQLite)",{});let c=await this.queryChroma(n,100);if(T.debug("SEARCH","Chroma returned semantic matches",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-qt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(T.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;a=this.sessionStore.getObservationsByIds(l,{orderBy:"date_desc",limit:d}),T.debug("SEARCH","Hydrated observations from SQLite",{count:a.length})}}}if(a.length===0)return{content:[{type:"text",text:`No observations found matching "${n}"`}]};let o=`Found ${a.length} observation(s) matching "${n}" +`)}]}}async searchObservations(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync){k.debug("SEARCH","Using hybrid semantic search (Chroma + SQLite)",{});let c=await this.queryChroma(n,100);if(k.debug("SEARCH","Chroma returned semantic matches",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-qt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(k.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;a=this.sessionStore.getObservationsByIds(l,{orderBy:"date_desc",limit:d}),k.debug("SEARCH","Hydrated observations from SQLite",{count:a.length})}}}if(a.length===0)return{content:[{type:"text",text:`No observations found matching "${n}"`}]};let o=`Found ${a.length} observation(s) matching "${n}" ${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:o+` `+s.join(` -`)}]}}async searchSessions(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync){T.debug("SEARCH","Using hybrid semantic search for sessions",{});let c=await this.queryChroma(n,100,{doc_type:"session_summary"});if(T.debug("SEARCH","Chroma returned semantic matches for sessions",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-qt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(T.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;a=this.sessionStore.getSessionSummariesByIds(l,{orderBy:"date_desc",limit:d}),T.debug("SEARCH","Hydrated sessions from SQLite",{count:a.length})}}}if(a.length===0)return{content:[{type:"text",text:`No sessions found matching "${n}"`}]};let o=`Found ${a.length} session(s) matching "${n}" +`)}]}}async searchSessions(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync){k.debug("SEARCH","Using hybrid semantic search for sessions",{});let c=await this.queryChroma(n,100,{doc_type:"session_summary"});if(k.debug("SEARCH","Chroma returned semantic matches for sessions",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-qt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(k.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;a=this.sessionStore.getSessionSummariesByIds(l,{orderBy:"date_desc",limit:d}),k.debug("SEARCH","Hydrated sessions from SQLite",{count:a.length})}}}if(a.length===0)return{content:[{type:"text",text:`No sessions found matching "${n}"`}]};let o=`Found ${a.length} session(s) matching "${n}" ${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatSessionIndex(c,u));return{content:[{type:"text",text:o+` `+s.join(` -`)}]}}async searchUserPrompts(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync){T.debug("SEARCH","Using hybrid semantic search for user prompts",{});let c=await this.queryChroma(n,100,{doc_type:"user_prompt"});if(T.debug("SEARCH","Chroma returned semantic matches for prompts",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-qt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(T.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;a=this.sessionStore.getUserPromptsByIds(l,{orderBy:"date_desc",limit:d}),T.debug("SEARCH","Hydrated user prompts from SQLite",{count:a.length})}}}if(a.length===0)return{content:[{type:"text",text:n?`No user prompts found matching "${n}"`:"No user prompts found"}]};let o=`Found ${a.length} user prompt(s) matching "${n}" +`)}]}}async searchUserPrompts(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync){k.debug("SEARCH","Using hybrid semantic search for user prompts",{});let c=await this.queryChroma(n,100,{doc_type:"user_prompt"});if(k.debug("SEARCH","Chroma returned semantic matches for prompts",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-qt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(k.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;a=this.sessionStore.getUserPromptsByIds(l,{orderBy:"date_desc",limit:d}),k.debug("SEARCH","Hydrated user prompts from SQLite",{count:a.length})}}}if(a.length===0)return{content:[{type:"text",text:n?`No user prompts found matching "${n}"`:"No user prompts found"}]};let o=`Found ${a.length} user prompt(s) matching "${n}" ${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatUserPromptIndex(c,u));return{content:[{type:"text",text:o+` `+s.join(` -`)}]}}async findByConcept(e){let r=this.normalizeParams(e),{concepts:n,...i}=r,a=[];if(this.chromaSync){T.debug("SEARCH","Using metadata-first + semantic ranking for concept search",{});let c=this.sessionSearch.findByConcept(n,i);if(T.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);T.debug("SEARCH","Chroma ranked results by semantic relevance",{count:d.length}),d.length>0&&(a=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),a.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}if(a.length===0&&(T.debug("SEARCH","Using SQLite-only concept search",{}),a=this.sessionSearch.findByConcept(n,i)),a.length===0)return{content:[{type:"text",text:`No observations found with concept "${n}"`}]};let o=`Found ${a.length} observation(s) with concept "${n}" +`)}]}}async findByConcept(e){let r=this.normalizeParams(e),{concepts:n,...i}=r,a=[];if(this.chromaSync){k.debug("SEARCH","Using metadata-first + semantic ranking for concept search",{});let c=this.sessionSearch.findByConcept(n,i);if(k.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);k.debug("SEARCH","Chroma ranked results by semantic relevance",{count:d.length}),d.length>0&&(a=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),a.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}if(a.length===0&&(k.debug("SEARCH","Using SQLite-only concept search",{}),a=this.sessionSearch.findByConcept(n,i)),a.length===0)return{content:[{type:"text",text:`No observations found with concept "${n}"`}]};let o=`Found ${a.length} observation(s) with concept "${n}" ${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:o+` `+s.join(` -`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:n,...i}=r,a=[],o=[];if(this.chromaSync){T.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let l=this.sessionSearch.findByFile(n,i);if(T.debug("SEARCH","Found results for file",{file:n,observations:l.observations.length,sessions:l.sessions.length}),o=l.sessions,l.observations.length>0){let d=l.observations.map(h=>h.id),p=await this.queryChroma(n,Math.min(d.length,100)),f=[];for(let h of p.ids)d.includes(h)&&!f.includes(h)&&f.push(h);T.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:f.length}),f.length>0&&(a=this.sessionStore.getObservationsByIds(f,{limit:i.limit||20}),a.sort((h,_)=>f.indexOf(h.id)-f.indexOf(_.id)))}}if(a.length===0&&o.length===0){T.debug("SEARCH","Using SQLite-only file search",{});let l=this.sessionSearch.findByFile(n,i);a=l.observations,o=l.sessions}let s=a.length+o.length;if(s===0)return{content:[{type:"text",text:`No results found for file "${n}"`}]};let c=`Found ${s} result(s) for file "${n}" - -${this.formatter.formatTableHeader()}`,u=[];return a.forEach((l,d)=>{u.push(this.formatter.formatObservationIndex(l,d))}),o.forEach((l,d)=>{u.push(this.formatter.formatSessionIndex(l,d+a.length))}),{content:[{type:"text",text:c+` -`+u.join(` -`)}]}}async findByType(e){let r=this.normalizeParams(e),{type:n,...i}=r,a=Array.isArray(n)?n.join(", "):n,o=[];if(this.chromaSync){T.debug("SEARCH","Using metadata-first + semantic ranking for type search",{});let u=this.sessionSearch.findByType(n,i);if(T.debug("SEARCH","Found observations with type",{type:a,count:u.length}),u.length>0){let l=u.map(f=>f.id),d=await this.queryChroma(a,Math.min(l.length,100)),p=[];for(let f of d.ids)l.includes(f)&&!p.includes(f)&&p.push(f);T.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,h)=>p.indexOf(f.id)-p.indexOf(h.id)))}}if(o.length===0&&(T.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 "${a}"`}]};let s=`Found ${o.length} observation(s) with type "${a}" +`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:n,...i}=r,a=Array.isArray(n)?n[0]:n,o=[],s=[];if(this.chromaSync){k.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let p=this.sessionSearch.findByFile(a,i);if(k.debug("SEARCH","Found results for file",{file:a,observations:p.observations.length,sessions:p.sessions.length}),s=p.sessions,p.observations.length>0){let f=p.observations.map(g=>g.id),h=await this.queryChroma(a,Math.min(f.length,100)),_=[];for(let g of h.ids)f.includes(g)&&!_.includes(g)&&_.push(g);k.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:_.length}),_.length>0&&(o=this.sessionStore.getObservationsByIds(_,{limit:i.limit||20}),o.sort((g,m)=>_.indexOf(g.id)-_.indexOf(m.id)))}}if(o.length===0&&s.length===0){k.debug("SEARCH","Using SQLite-only file search",{});let p=this.sessionSearch.findByFile(a,i);o=p.observations,s=p.sessions}let c=o.length+s.length;if(c===0)return{content:[{type:"text",text:`No results found for file "${a}"`}]};let u=[...o.map(p=>({type:"observation",data:p,epoch:p.created_at_epoch,created_at:p.created_at})),...s.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=ho(u,p=>p.created_at),d=[];d.push(`Found ${c} result(s) for file "${a}"`),d.push("");for(let[p,f]of l){d.push(`### ${p}`),d.push(""),d.push(this.formatter.formatTableHeader());for(let h of f)h.type==="observation"?d.push(this.formatter.formatObservationIndex(h.data,0)):d.push(this.formatter.formatSessionIndex(h.data,0));d.push("")}return{content:[{type:"text",text:d.join(` +`)}]}}async findByType(e){let r=this.normalizeParams(e),{type:n,...i}=r,a=Array.isArray(n)?n.join(", "):n,o=[];if(this.chromaSync){k.debug("SEARCH","Using metadata-first + semantic ranking for type search",{});let u=this.sessionSearch.findByType(n,i);if(k.debug("SEARCH","Found observations with type",{type:a,count:u.length}),u.length>0){let l=u.map(f=>f.id),d=await this.queryChroma(a,Math.min(l.length,100)),p=[];for(let f of d.ids)l.includes(f)&&!p.includes(f)&&p.push(f);k.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,h)=>p.indexOf(f.id)-p.indexOf(h.id)))}}if(o.length===0&&(k.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 "${a}"`}]};let s=`Found ${o.length} observation(s) with type "${a}" ${this.formatter.formatTableHeader()}`,c=o.map((u,l)=>this.formatter.formatObservationIndex(u,l));return{content:[{type:"text",text:s+` `+c.join(` -`)}]}}async getRecentContext(e){let r=e.project||(0,Y6.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,rU.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 a=[];a.push("# Recent Session Context"),a.push(""),a.push(`Showing last ${i.length} session(s) for **${r}**:`),a.push("");for(let o of i)if(o.memory_session_id){if(a.push("---"),a.push(""),o.has_summary){let s=this.sessionStore.getSummaryForSession(o.memory_session_id);if(s){let c=s.prompt_number?` (Prompt #${s.prompt_number})`:"";if(a.push(`**Summary${c}**`),a.push(""),s.request&&a.push(`**Request:** ${s.request}`),s.completed&&a.push(`**Completed:** ${s.completed}`),s.learned&&a.push(`**Learned:** ${s.learned}`),s.next_steps&&a.push(`**Next Steps:** ${s.next_steps}`),s.files_read)try{let l=JSON.parse(s.files_read);Array.isArray(l)&&l.length>0&&a.push(`**Files Read:** ${l.join(", ")}`)}catch(l){T.debug("WORKER","files_read is plain string, using as-is",{},l),s.files_read.trim()&&a.push(`**Files Read:** ${s.files_read}`)}if(s.files_edited)try{let l=JSON.parse(s.files_edited);Array.isArray(l)&&l.length>0&&a.push(`**Files Edited:** ${l.join(", ")}`)}catch(l){T.debug("WORKER","files_edited is plain string, using as-is",{},l),s.files_edited.trim()&&a.push(`**Files Edited:** ${s.files_edited}`)}let u=new Date(s.created_at).toLocaleString();a.push(`**Date:** ${u}`)}}else if(o.status==="active"){a.push("**In Progress**"),a.push(""),o.user_prompt&&a.push(`**Request:** ${o.user_prompt}`);let s=this.sessionStore.getObservationsForSession(o.memory_session_id);if(s.length>0){a.push(""),a.push(`**Observations (${s.length}):**`);for(let u of s)a.push(`- ${u.title}`)}else a.push(""),a.push("*No observations yet*");a.push(""),a.push("**Status:** Active - summary pending");let c=new Date(o.started_at).toLocaleString();a.push(`**Date:** ${c}`)}else{a.push(`**${o.status.charAt(0).toUpperCase()+o.status.slice(1)}**`),a.push(""),o.user_prompt&&a.push(`**Request:** ${o.user_prompt}`),a.push(""),a.push(`**Status:** ${o.status} - no summary available`);let s=new Date(o.started_at).toLocaleString();a.push(`**Date:** ${s}`)}a.push("")}return{content:[{type:"text",text:a.join(` -`)}]}}async getContextTimeline(e){let{anchor:r,depth_before:n=10,depth_after:i=10,project:a}=e,o=process.cwd(),s,c=r,u;if(typeof r=="number"){let _=this.sessionStore.getObservationById(r);if(!_)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};s=_.created_at_epoch,u=this.sessionStore.getTimelineAroundObservation(r,s,n,i,a)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let _=r.replace(/^#?S/,""),y=parseInt(_,10),m=this.sessionStore.getSessionSummariesByIds([y]);if(m.length===0)return{content:[{type:"text",text:`Session #${y} not found`}],isError:!0};s=m[0].created_at_epoch,c=`S${y}`,u=this.sessionStore.getTimelineAroundTimestamp(s,n,i,a)}else{let _=new Date(r);if(isNaN(_.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};s=_.getTime(),u=this.sessionStore.getTimelineAroundTimestamp(s,n,i,a)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let l=[...u.observations.map(_=>({type:"observation",data:_,epoch:_.created_at_epoch})),...u.sessions.map(_=>({type:"session",data:_,epoch:_.created_at_epoch})),...u.prompts.map(_=>({type:"prompt",data:_,epoch:_.created_at_epoch}))];l.sort((_,y)=>_.epoch-y.epoch);let d=this.timelineService.filterByDepth(l,c,s,n,i);if(!d||d.length===0)return{content:[{type:"text",text:`No context found around ${new Date(s).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 _ of d){let y=Hi(_.epoch);f.has(y)||f.set(y,[]),f.get(y).push(_)}let h=Array.from(f.entries()).sort((_,y)=>{let m=new Date(_[0]).getTime(),v=new Date(y[0]).getTime();return m-v});for(let[_,y]of h){p.push(`### ${_}`),p.push("");let m=null,v="",g=!1;for(let b of y){let S=typeof c=="number"&&b.type==="observation"&&b.data.id===c||typeof c=="string"&&c.startsWith("S")&&b.type==="session"&&`S${b.data.id}`===c;if(b.type==="session"){g&&(p.push(""),g=!1,m=null,v="");let x=b.data,w=x.request||"Session summary",E=S?" <- **ANCHOR**":"";p.push(`**\u{1F3AF} #S${x.id}** ${w} (${In(b.epoch)})${E}`),p.push("")}else if(b.type==="prompt"){g&&(p.push(""),g=!1,m=null,v="");let x=b.data,w=x.prompt_text.length>100?x.prompt_text.substring(0,100)+"...":x.prompt_text;p.push(`**\u{1F4AC} User Prompt #${x.prompt_number}** (${In(b.epoch)})`),p.push(`> ${w}`),p.push("")}else if(b.type==="observation"){let x=b.data,w=Yn(x.files_modified,o);w!==m&&(g&&p.push(""),p.push(`**${w}**`),p.push("| ID | Time | T | Title | Tokens |"),p.push("|----|------|---|-------|--------|"),m=w,g=!0,v="");let E=He.getInstance().getTypeIcon(x.type),O=Mr(b.epoch),A=x.title||"Untitled",M=Sc(x.narrative),B=O!==v?O:'"';v=O;let U=S?" <- **ANCHOR**":"";p.push(`| #${x.id} | ${B} | ${E} | ${A}${U} | ~${M} |`)}}g&&p.push("")}return{content:[{type:"text",text:p.join(` -`)}]}}async getTimelineByQuery(e){let{query:r,mode:n="auto",depth_before:i=10,depth_after:a=10,limit:o=5,project:s}=e,c=process.cwd(),u=[];if(this.chromaSync){T.debug("SEARCH","Using hybrid semantic search for timeline query",{});let l=await this.queryChroma(r,100);if(T.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:l.ids.length}),l.ids.length>0){let d=Date.now()-qt.RECENCY_WINDOW_MS,p=l.ids.filter((f,h)=>{let _=l.metadatas[h];return _&&_.created_at_epoch>d});T.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}),T.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:m,epoch:m.created_at_epoch})),...(d.sessions||[]).map(m=>({type:"session",data:m,epoch:m.created_at_epoch})),...(d.prompts||[]).map(m=>({type:"prompt",data:m,epoch:m.created_at_epoch}))];p.sort((m,v)=>m.epoch-v.epoch);let f=this.timelineService.filterByDepth(p,l.id,0,i,a);if(!f||f.length===0)return{content:[{type:"text",text:`Found observation #${l.id} matching "${r}", but no timeline context available (${i} records before, ${a} records after).`}]};let h=[];h.push(`# Timeline for query: "${r}"`),h.push(`**Anchor:** Observation #${l.id} - ${l.title||"Untitled"}`),h.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${f?.length??0}`),h.push("");let _=new Map;for(let m of f){let v=Hi(m.epoch);_.has(v)||_.set(v,[]),_.get(v).push(m)}let y=Array.from(_.entries()).sort((m,v)=>{let g=new Date(m[0]).getTime(),b=new Date(v[0]).getTime();return g-b});for(let[m,v]of y){h.push(`### ${m}`),h.push("");let g=null,b="",S=!1;for(let x of v){let w=x.type==="observation"&&x.data.id===l.id;if(x.type==="session"){S&&(h.push(""),S=!1,g=null,b="");let E=x.data,O=E.request||"Session summary";h.push(`**\u{1F3AF} #S${E.id}** ${O} (${In(x.epoch)})`),h.push("")}else if(x.type==="prompt"){S&&(h.push(""),S=!1,g=null,b="");let E=x.data,O=E.prompt_text.length>100?E.prompt_text.substring(0,100)+"...":E.prompt_text;h.push(`**\u{1F4AC} User Prompt #${E.prompt_number}** (${In(x.epoch)})`),h.push(`> ${O}`),h.push("")}else if(x.type==="observation"){let E=x.data,O=Yn(E.files_modified,c);O!==g&&(S&&h.push(""),h.push(`**${O}**`),h.push("| ID | Time | T | Title | Tokens |"),h.push("|----|------|---|-------|--------|"),g=O,S=!0,b="");let A=He.getInstance().getTypeIcon(E.type),M=Mr(x.epoch),q=E.title||"Untitled",B=Sc(E.narrative),Y=M!==b?M:'"';b=M;let me=w?" <- **ANCHOR**":"";h.push(`| #${E.id} | ${Y} | ${A} | ${q}${me} | ~${B} |`)}}S&&h.push("")}return{content:[{type:"text",text:h.join(` -`)}]}}}};jr();var vfe=4,lg=class{formatSearchTips(){return` +No previous sessions found for project "${r}".`}]};let a=[];a.push("# Recent Session Context"),a.push(""),a.push(`Showing last ${i.length} session(s) for **${r}**:`),a.push("");for(let o of i)if(o.memory_session_id){if(a.push("---"),a.push(""),o.has_summary){let s=this.sessionStore.getSummaryForSession(o.memory_session_id);if(s){let c=s.prompt_number?` (Prompt #${s.prompt_number})`:"";if(a.push(`**Summary${c}**`),a.push(""),s.request&&a.push(`**Request:** ${s.request}`),s.completed&&a.push(`**Completed:** ${s.completed}`),s.learned&&a.push(`**Learned:** ${s.learned}`),s.next_steps&&a.push(`**Next Steps:** ${s.next_steps}`),s.files_read)try{let l=JSON.parse(s.files_read);Array.isArray(l)&&l.length>0&&a.push(`**Files Read:** ${l.join(", ")}`)}catch(l){k.debug("WORKER","files_read is plain string, using as-is",{},l),s.files_read.trim()&&a.push(`**Files Read:** ${s.files_read}`)}if(s.files_edited)try{let l=JSON.parse(s.files_edited);Array.isArray(l)&&l.length>0&&a.push(`**Files Edited:** ${l.join(", ")}`)}catch(l){k.debug("WORKER","files_edited is plain string, using as-is",{},l),s.files_edited.trim()&&a.push(`**Files Edited:** ${s.files_edited}`)}let u=new Date(s.created_at).toLocaleString();a.push(`**Date:** ${u}`)}}else if(o.status==="active"){a.push("**In Progress**"),a.push(""),o.user_prompt&&a.push(`**Request:** ${o.user_prompt}`);let s=this.sessionStore.getObservationsForSession(o.memory_session_id);if(s.length>0){a.push(""),a.push(`**Observations (${s.length}):**`);for(let u of s)a.push(`- ${u.title}`)}else a.push(""),a.push("*No observations yet*");a.push(""),a.push("**Status:** Active - summary pending");let c=new Date(o.started_at).toLocaleString();a.push(`**Date:** ${c}`)}else{a.push(`**${o.status.charAt(0).toUpperCase()+o.status.slice(1)}**`),a.push(""),o.user_prompt&&a.push(`**Request:** ${o.user_prompt}`),a.push(""),a.push(`**Status:** ${o.status} - no summary available`);let s=new Date(o.started_at).toLocaleString();a.push(`**Date:** ${s}`)}a.push("")}return{content:[{type:"text",text:a.join(` +`)}]}}async getContextTimeline(e){let{anchor:r,depth_before:n=10,depth_after:i=10,project:a}=e,o=process.cwd(),s,c=r,u;if(typeof r=="number"){let _=this.sessionStore.getObservationById(r);if(!_)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};s=_.created_at_epoch,u=this.sessionStore.getTimelineAroundObservation(r,s,n,i,a)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let _=r.replace(/^#?S/,""),g=parseInt(_,10),m=this.sessionStore.getSessionSummariesByIds([g]);if(m.length===0)return{content:[{type:"text",text:`Session #${g} not found`}],isError:!0};s=m[0].created_at_epoch,c=`S${g}`,u=this.sessionStore.getTimelineAroundTimestamp(s,n,i,a)}else{let _=new Date(r);if(isNaN(_.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};s=_.getTime(),u=this.sessionStore.getTimelineAroundTimestamp(s,n,i,a)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let l=[...u.observations.map(_=>({type:"observation",data:_,epoch:_.created_at_epoch})),...u.sessions.map(_=>({type:"session",data:_,epoch:_.created_at_epoch})),...u.prompts.map(_=>({type:"prompt",data:_,epoch:_.created_at_epoch}))];l.sort((_,g)=>_.epoch-g.epoch);let d=this.timelineService.filterByDepth(l,c,s,n,i);if(!d||d.length===0)return{content:[{type:"text",text:`No context found around ${new Date(s).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 _ of d){let g=Di(_.epoch);f.has(g)||f.set(g,[]),f.get(g).push(_)}let h=Array.from(f.entries()).sort((_,g)=>{let m=new Date(_[0]).getTime(),y=new Date(g[0]).getTime();return m-y});for(let[_,g]of h){p.push(`### ${_}`),p.push("");let m=null,y="",v=!1;for(let b of g){let S=typeof c=="number"&&b.type==="observation"&&b.data.id===c||typeof c=="string"&&c.startsWith("S")&&b.type==="session"&&`S${b.data.id}`===c;if(b.type==="session"){v&&(p.push(""),v=!1,m=null,y="");let x=b.data,w=x.request||"Session summary",E=S?" <- **ANCHOR**":"";p.push(`**\u{1F3AF} #S${x.id}** ${w} (${kn(b.epoch)})${E}`),p.push("")}else if(b.type==="prompt"){v&&(p.push(""),v=!1,m=null,y="");let x=b.data,w=x.prompt_text.length>100?x.prompt_text.substring(0,100)+"...":x.prompt_text;p.push(`**\u{1F4AC} User Prompt #${x.prompt_number}** (${kn(b.epoch)})`),p.push(`> ${w}`),p.push("")}else if(b.type==="observation"){let x=b.data,w=Vn(x.files_modified,o,x.files_read);w!==m&&(v&&p.push(""),p.push(`**${w}**`),p.push("| ID | Time | T | Title | Tokens |"),p.push("|----|------|---|-------|--------|"),m=w,v=!0,y="");let E=Be.getInstance().getTypeIcon(x.type),R=Ar(b.epoch),A=x.title||"Untitled",M=rc(x.narrative),B=R!==y?R:'"';y=R;let U=S?" <- **ANCHOR**":"";p.push(`| #${x.id} | ${B} | ${E} | ${A}${U} | ~${M} |`)}}v&&p.push("")}return{content:[{type:"text",text:p.join(` +`)}]}}async getTimelineByQuery(e){let{query:r,mode:n="auto",depth_before:i=10,depth_after:a=10,limit:o=5,project:s}=e,c=process.cwd(),u=[];if(this.chromaSync){k.debug("SEARCH","Using hybrid semantic search for timeline query",{});let l=await this.queryChroma(r,100);if(k.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:l.ids.length}),l.ids.length>0){let d=Date.now()-qt.RECENCY_WINDOW_MS,p=l.ids.filter((f,h)=>{let _=l.metadatas[h];return _&&_.created_at_epoch>d});k.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}),k.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:m,epoch:m.created_at_epoch})),...(d.sessions||[]).map(m=>({type:"session",data:m,epoch:m.created_at_epoch})),...(d.prompts||[]).map(m=>({type:"prompt",data:m,epoch:m.created_at_epoch}))];p.sort((m,y)=>m.epoch-y.epoch);let f=this.timelineService.filterByDepth(p,l.id,0,i,a);if(!f||f.length===0)return{content:[{type:"text",text:`Found observation #${l.id} matching "${r}", but no timeline context available (${i} records before, ${a} records after).`}]};let h=[];h.push(`# Timeline for query: "${r}"`),h.push(`**Anchor:** Observation #${l.id} - ${l.title||"Untitled"}`),h.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${f?.length??0}`),h.push("");let _=new Map;for(let m of f){let y=Di(m.epoch);_.has(y)||_.set(y,[]),_.get(y).push(m)}let g=Array.from(_.entries()).sort((m,y)=>{let v=new Date(m[0]).getTime(),b=new Date(y[0]).getTime();return v-b});for(let[m,y]of g){h.push(`### ${m}`),h.push("");let v=null,b="",S=!1;for(let x of y){let w=x.type==="observation"&&x.data.id===l.id;if(x.type==="session"){S&&(h.push(""),S=!1,v=null,b="");let E=x.data,R=E.request||"Session summary";h.push(`**\u{1F3AF} #S${E.id}** ${R} (${kn(x.epoch)})`),h.push("")}else if(x.type==="prompt"){S&&(h.push(""),S=!1,v=null,b="");let E=x.data,R=E.prompt_text.length>100?E.prompt_text.substring(0,100)+"...":E.prompt_text;h.push(`**\u{1F4AC} User Prompt #${E.prompt_number}** (${kn(x.epoch)})`),h.push(`> ${R}`),h.push("")}else if(x.type==="observation"){let E=x.data,R=Vn(E.files_modified,c,E.files_read);R!==v&&(S&&h.push(""),h.push(`**${R}**`),h.push("| ID | Time | T | Title | Tokens |"),h.push("|----|------|---|-------|--------|"),v=R,S=!0,b="");let A=Be.getInstance().getTypeIcon(E.type),M=Ar(x.epoch),q=E.title||"Untitled",B=rc(E.narrative),Y=M!==b?M:'"';b=M;let me=w?" <- **ANCHOR**":"";h.push(`| #${E.id} | ${Y} | ${A} | ${q}${me} | ~${B} |`)}}S&&h.push("")}return{content:[{type:"text",text:h.join(` +`)}]}}}};jr();var Tfe=4,pg=class{formatSearchTips(){return` --- \u{1F4A1} Search Strategy: 1. Search with index to see titles, dates, IDs @@ -1221,18 +1249,18 @@ No previous sessions found for project "${r}".`}]};let a=[];a.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/vfe)}formatObservationIndex(e,r){let n=`#${e.id}`,i=this.formatTime(e.created_at_epoch),a=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e),c=He.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${a} | ${o} | ~${s} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${a} | ${o} | - | - |`}formatUserPromptIndex(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${a} | ${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/Tfe)}formatObservationIndex(e,r){let n=`#${e.id}`,i=this.formatTime(e.created_at_epoch),a=Be.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e),c=Be.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${a} | ${o} | ~${s} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${a} | ${o} | - | - |`}formatUserPromptIndex(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${a} | ${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),a=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?"\u2033":i} | ${a} | ${o} | ~${s} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?"\u2033":i} | ${a} | ${o} | - |`,time:i}}formatUserPromptSearchRow(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?"\u2033":i} | ${a} | ${o} | - |`,time:i}}};jr();var dg=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,a){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 s=Math.max(0,o-i),c=Math.min(e.length,o+a+1);return e.slice(s,c)}formatTimeline(e,r,n,i,a){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&&a!==void 0?o.push(`**Window:** ${i} records before \u2192 ${a} 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 s=new Map;for(let u of e){let l=this.formatDate(u.epoch);s.has(l)||s.set(l,[]),s.get(l).push(u)}let c=Array.from(s.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 h of l){let _=typeof r=="number"&&h.type==="observation"&&h.data.id===r||typeof r=="string"&&r.startsWith("S")&&h.type==="session"&&`S${h.data.id}`===r;if(h.type==="session"){f&&(o.push(""),f=!1,d=null,p="");let y=h.data,m=y.request||"Session summary",v=_?" \u2190 **ANCHOR**":"";o.push(`**\u{1F3AF} #S${y.id}** ${m} (${this.formatDateTime(h.epoch)})${v}`),o.push("")}else if(h.type==="prompt"){f&&(o.push(""),f=!1,d=null,p="");let y=h.data,m=y.prompt_text.length>100?y.prompt_text.substring(0,100)+"...":y.prompt_text;o.push(`**\u{1F4AC} User Prompt #${y.prompt_number}** (${this.formatDateTime(h.epoch)})`),o.push(`> ${m}`),o.push("")}else if(h.type==="observation"){let y=h.data,m="General";m!==d&&(f&&o.push(""),o.push(`**${m}**`),o.push("| ID | Time | T | Title | Tokens |"),o.push("|----|------|---|-------|--------|"),d=m,f=!0,p="");let v=this.getTypeIcon(y.type),g=this.formatTime(h.epoch),b=y.title||"Untitled",S=this.estimateTokens(y.narrative),w=g!==p?g:"\u2033";p=g;let E=_?" \u2190 **ANCHOR**":"";o.push(`| #${y.id} | ${w} | ${v} | ${b}${E} | ~${S} |`)}}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 pg=class{constructor(e,r){this.sseBroadcaster=e;this.workerService=r}broadcastNewPrompt(e){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:e}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:!0}),this.workerService.broadcastProcessingStatus()}broadcastSessionStarted(e,r){this.sseBroadcaster.broadcast({type:"session_started",sessionDbId:e,project:r}),this.workerService.broadcastProcessingStatus()}broadcastObservationQueued(e){this.sseBroadcaster.broadcast({type:"observation_queued",sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSessionCompleted(e){this.sseBroadcaster.broadcast({type:"session_completed",timestamp:Date.now(),sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSummarizeQueued(){this.workerService.broadcastProcessingStatus()}};var Q6=yt(ch(),1),fg=yt(require("path"),1),hg=require("fs");sn();Ae();var Xr=class{wrapHandler(e){return(r,n)=>{try{let i=e(r,n);i instanceof Promise&&i.catch(a=>this.handleError(n,a))}catch(i){T.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){T.failure("WORKER",n||"Request failed",{},r),e.headersSent||e.status(500).json({error:r.message})}};var mg=class extends Xr{constructor(r,n,i){super();this.sseBroadcaster=r;this.dbManager=n;this.sessionManager=i}setupRoutes(r){let n=Gr();r.use(Q6.default.static(fg.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=Gr(),o=[fg.default.join(i,"ui","viewer.html"),fg.default.join(i,"plugin","ui","viewer.html")].find(c=>(0,hg.existsSync)(c));if(!o)throw new Error("Viewer UI not found at any expected location");let s=(0,hg.readFileSync)(o,"utf-8");n.setHeader("Content-Type","text/html"),n.send(s)});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 a=this.sessionManager.isAnySessionProcessing(),o=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:a,queueDepth:o})})};Ae();Ae();var eU=100;function yfe(t){let e=(t.match(//g)||[]).length,r=(t.match(//g)||[]).length;return e+r}function tU(t){let e=yfe(t);return e>eU&&T.warn("SYSTEM","tag count exceeds limit",void 0,{tagCount:e,maxAllowed:eU,contentLength:t.length}),t.replace(/[\s\S]*?<\/claude-mem-context>/g,"").replace(/[\s\S]*?<\/private>/g,"").trim()}function Y$(t){return tU(t)}function rU(t){return tU(t)}var gg=class{constructor(e,r){this.sessionManager=e;this.eventBroadcaster=r}async completeByDbId(e){await this.sessionManager.deleteSession(e),this.eventBroadcaster.broadcastSessionCompleted(e)}};Ae();var Nd=class{static checkUserPromptPrivacy(e,r,n,i,a,o){let s=e.getUserPrompt(r,n);return!s||s.trim()===""?(T.debug("HOOK",`Skipping ${i} - user prompt was entirely private`,{sessionId:a,promptNumber:n,...o}),null):s}};yn();sn();var vg=class extends Xr{constructor(r,n,i,a,o,s,c){super();this.sessionManager=r;this.dbManager=n;this.sdkAgent=i;this.geminiAgent=a;this.openRouterAgent=o;this.eventBroadcaster=s;this.workerService=c;this.completionHandler=new gg(r,s)}completionHandler;getActiveAgent(){if(K$()){if(W$())return T.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(G$()){if(V$())return T.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 K$()&&W$()?"openrouter":G$()&&V$()?"gemini":"claude"}ensureGeneratorRunning(r,n){let i=this.sessionManager.getSession(r);if(!i)return;let a=this.getSelectedProvider();if(!i.generatorPromise){this.startGeneratorWithProvider(i,a,n);return}i.currentProvider&&i.currentProvider!==a&&T.info("SESSION","Provider changed, will switch after current generator finishes",{sessionId:r,currentProvider:i.currentProvider,selectedProvider:a,historyLength:i.conversationHistory.length})}startGeneratorWithProvider(r,n,i){if(!r)return;let a=n==="openrouter"?this.openRouterAgent:n==="gemini"?this.geminiAgent:this.sdkAgent,o=n==="openrouter"?"OpenRouter":n==="gemini"?"Gemini":"Claude SDK";T.info("SESSION",`Generator auto-starting (${i}) using ${o}`,{sessionId:r.sessionDbId,queueDepth:r.pendingMessages.length,historyLength:r.conversationHistory.length}),r.currentProvider=n,r.generatorPromise=a.startSession(r,this.workerService).catch(s=>{if(r.abortController.signal.aborted)return;T.error("SESSION","Generator failed",{sessionId:r.sessionDbId,provider:n,error:s.message},s);let c=this.sessionManager.getPendingMessageStore();try{let u=c.markSessionMessagesFailed(r.sessionDbId);u>0&&T.warn("SESSION","Marked messages as failed after generator error",{sessionId:r.sessionDbId,failedCount:u})}catch(u){T.error("SESSION","Failed to mark messages as failed",{sessionId:r.sessionDbId},u)}}).finally(()=>{let s=r.sessionDbId,c=r.abortController.signal.aborted;if(c?T.info("SESSION","Generator aborted",{sessionId:s}):T.warn("SESSION","Generator exited unexpectedly",{sessionId:s}),r.generatorPromise=null,r.currentProvider=null,this.workerService.broadcastProcessingStatus(),!c)try{let l=this.sessionManager.getPendingMessageStore().getPendingCount(s);l>0?(T.info("SESSION","Restarting generator after crash/exit with pending work",{sessionId:s,pendingCount:l}),r.abortController=new AbortController,setTimeout(()=>{let d=this.sessionManager.getSession(s);d&&!d.generatorPromise&&this.startGeneratorWithProvider(d,this.getSelectedProvider(),"crash-recovery")},1e3)):(r.abortController.abort(),T.debug("SESSION","Aborted controller after natural completion",{sessionId:s}))}catch(u){T.debug("SESSION","Error during recovery check, aborting to prevent leaks",{sessionId:s,error:u instanceof Error?u.message:String(u)}),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))}handleSessionInit=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{userPrompt:a,promptNumber:o}=r.body;T.info("HTTP","SessionRoutes: handleSessionInit called",{sessionDbId:i,promptNumber:o,has_userPrompt:!!a});let s=this.sessionManager.initializeSession(i,a,o),c=this.dbManager.getSessionStore().getLatestUserPrompt(s.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;T.debug("CHROMA","User prompt synced",{promptId:c.id,duration:`${d}ms`,prompt:p})}).catch(d=>{T.warn("CHROMA","User prompt sync failed, continuing without vector search",{promptId:c.id,prompt:l.length>60?l.substring(0,60)+"...":l},d)})}this.startGeneratorWithProvider(s,this.getSelectedProvider(),"init"),this.eventBroadcaster.broadcastSessionStarted(i,s.project),n.json({status:"initialized",sessionDbId:i,port:Ln()})});handleObservations=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{tool_name:a,tool_input:o,tool_response:s,prompt_number:c,cwd:u}=r.body;this.sessionManager.queueObservation(i,{tool_name:a,tool_input:o,tool_response:s,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:a}=r.body;this.sessionManager.queueSummarize(i,a),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 a=this.sessionManager.getSession(i);if(!a){n.json({status:"not_found"});return}n.json({status:"active",sessionDbId:i,project:a.project,queueLength:a.pendingMessages.length,uptime:Date.now()-a.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:a,tool_input:o,tool_response:s,cwd:c}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let u=nt.loadFromFile(wn);if(new Set(u.CLAUDE_MEM_SKIP_TOOLS.split(",").map(v=>v.trim()).filter(Boolean)).has(a)){T.debug("SESSION","Skipping observation for tool",{tool_name:a}),n.json({status:"skipped",reason:"tool_excluded"});return}if(new Set(["Edit","Write","Read","NotebookEdit"]).has(a)&&o){let v=o.file_path||o.notebook_path;if(v&&v.includes("session-memory")){T.debug("SESSION","Skipping meta-observation for session-memory file",{tool_name:a,file_path:v}),n.json({status:"skipped",reason:"session_memory_meta"});return}}let p=this.dbManager.getSessionStore(),f=p.createSDKSession(i,"",""),h=p.getPromptNumberFromUserPrompts(i);if(!Nd.checkUserPromptPrivacy(p,i,h,"observation",f,{tool_name:a})){n.json({status:"skipped",reason:"private"});return}let y=o!==void 0?Y$(JSON.stringify(o)):"{}",m=s!==void 0?Y$(JSON.stringify(s)):"{}";this.sessionManager.queueObservation(f,{tool_name:a,tool_input:y,tool_response:m,prompt_number:h,cwd:c||T.happyPathError("SESSION","Missing cwd when queueing observation in SessionRoutes",{sessionId:f},{tool_name:a},"")}),this.ensureGeneratorRunning(f,"observation"),this.eventBroadcaster.broadcastObservationQueued(f),n.json({status:"queued"})});handleSummarizeByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,last_assistant_message:a}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let o=this.dbManager.getSessionStore(),s=o.createSDKSession(i,"",""),c=o.getPromptNumberFromUserPrompts(i);if(!Nd.checkUserPromptPrivacy(o,i,c,"summarize",s)){n.json({status:"skipped",reason:"private"});return}this.sessionManager.queueSummarize(s,a),this.ensureGeneratorRunning(s,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionInitByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,project:a,prompt:o}=r.body;if(T.info("HTTP","SessionRoutes: handleSessionInitByClaudeId called",{contentSessionId:i,project:a,prompt_length:o?.length}),!this.validateRequired(r,n,["contentSessionId","project","prompt"]))return;let s=this.dbManager.getSessionStore(),c=s.createSDKSession(i,a,o);T.info("HTTP","SessionRoutes: createSDKSession returned",{sessionDbId:c,contentSessionId:i});let l=s.getSessionById(c)?.memory_session_id||null,d=!!l,p=s.getPromptNumberFromUserPrompts(i),f=p+1;T.info("HTTP","SessionRoutes: Calculated promptNumber",{sessionDbId:c,promptNumber:f,currentCount:p}),f>1?T.info("HTTP",`[ALIGNMENT] DB Lookup Proof | contentSessionId=${i} \u2192 memorySessionId=${l||"(not yet captured)"} | prompt#=${f} | hasCapturedMemoryId=${d}`):T.info("HTTP",`[ALIGNMENT] New Session | contentSessionId=${i} | prompt#=${f} | memorySessionId will be captured on first SDK response`);let h=rU(o);if(!h||h.trim()===""){T.debug("HOOK","Session init - prompt entirely private",{sessionId:c,promptNumber:f,originalLength:o.length}),n.json({sessionDbId:c,promptNumber:f,skipped:!0,reason:"private"});return}s.saveUserPrompt(i,f,h),T.info("SESSION","Session initialized via HTTP",{sessionId:c,promptNumber:f,project:a}),n.json({sessionDbId:c,promptNumber:f,skipped:!1})})};var Q$=yt(require("path"),1),wc=require("fs");Ae();var nU=require("os");sn();var yg=class extends Xr{constructor(r,n,i,a,o,s){super();this.paginationHelper=r;this.dbManager=n;this.sessionManager=i;this.sseBroadcaster=a;this.workerService=o;this.startTime=s}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:a,project:o}=this.parsePaginationParams(r),s=this.paginationHelper.getObservations(i,a,o);n.json(s)});handleGetSummaries=this.wrapHandler((r,n)=>{let{offset:i,limit:a,project:o}=this.parsePaginationParams(r),s=this.paginationHelper.getSummaries(i,a,o);n.json(s)});handleGetPrompts=this.wrapHandler((r,n)=>{let{offset:i,limit:a,project:o}=this.parsePaginationParams(r),s=this.paginationHelper.getPrompts(i,a,o);n.json(s)});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:a,limit:o,project:s}=r.body;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:a,limit:o,project:s});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(!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,a=Gr(),o=Q$.default.join(a,"package.json"),c=JSON.parse((0,wc.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,nU.homedir)(),".claude-mem","claude-mem.db"),f=0;(0,wc.existsSync)(p)&&(f=(0,wc.statSync)(p).size);let h=Math.floor((Date.now()-this.startTime)/1e3),_=this.sessionManager.getActiveSessionCount(),y=this.sseBroadcaster.getClientCount();n.json({worker:{version:c,uptime:h,activeSessions:_,sseClients:y,port:Ln()},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(` +|----|------|---|-------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,i=this.formatTime(e.created_at_epoch),a=Be.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?"\u2033":i} | ${a} | ${o} | ~${s} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?"\u2033":i} | ${a} | ${o} | - |`,time:i}}formatUserPromptSearchRow(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?"\u2033":i} | ${a} | ${o} | - |`,time:i}}};jr();var fg=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,a){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 s=Math.max(0,o-i),c=Math.min(e.length,o+a+1);return e.slice(s,c)}formatTimeline(e,r,n,i,a){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&&a!==void 0?o.push(`**Window:** ${i} records before \u2192 ${a} 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 s=new Map;for(let u of e){let l=this.formatDate(u.epoch);s.has(l)||s.set(l,[]),s.get(l).push(u)}let c=Array.from(s.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 h of l){let _=typeof r=="number"&&h.type==="observation"&&h.data.id===r||typeof r=="string"&&r.startsWith("S")&&h.type==="session"&&`S${h.data.id}`===r;if(h.type==="session"){f&&(o.push(""),f=!1,d=null,p="");let g=h.data,m=g.request||"Session summary",y=_?" \u2190 **ANCHOR**":"";o.push(`**\u{1F3AF} #S${g.id}** ${m} (${this.formatDateTime(h.epoch)})${y}`),o.push("")}else if(h.type==="prompt"){f&&(o.push(""),f=!1,d=null,p="");let g=h.data,m=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(h.epoch)})`),o.push(`> ${m}`),o.push("")}else if(h.type==="observation"){let g=h.data,m="General";m!==d&&(f&&o.push(""),o.push(`**${m}**`),o.push("| ID | Time | T | Title | Tokens |"),o.push("|----|------|---|-------|--------|"),d=m,f=!0,p="");let y=this.getTypeIcon(g.type),v=this.formatTime(h.epoch),b=g.title||"Untitled",S=this.estimateTokens(g.narrative),w=v!==p?v:"\u2033";p=v;let E=_?" \u2190 **ANCHOR**":"";o.push(`| #${g.id} | ${w} | ${y} | ${b}${E} | ~${S} |`)}}f&&o.push("")}return o.join(` +`)}getTypeIcon(e){return Be.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 mg=class{constructor(e,r){this.sseBroadcaster=e;this.workerService=r}broadcastNewPrompt(e){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:e}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:!0}),this.workerService.broadcastProcessingStatus()}broadcastSessionStarted(e,r){this.sseBroadcaster.broadcast({type:"session_started",sessionDbId:e,project:r}),this.workerService.broadcastProcessingStatus()}broadcastObservationQueued(e){this.sseBroadcaster.broadcast({type:"observation_queued",sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSessionCompleted(e){this.sseBroadcaster.broadcast({type:"session_completed",timestamp:Date.now(),sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSummarizeQueued(){this.workerService.broadcastProcessingStatus()}};var nU=dt(lh(),1),hg=dt(require("path"),1),vg=require("fs");cn();Pe();var Yr=class{wrapHandler(e){return(r,n)=>{try{let i=e(r,n);i instanceof Promise&&i.catch(a=>this.handleError(n,a))}catch(i){k.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){k.failure("WORKER",n||"Request failed",{},r),e.headersSent||e.status(500).json({error:r.message})}};var gg=class extends Yr{constructor(r,n,i){super();this.sseBroadcaster=r;this.dbManager=n;this.sessionManager=i}setupRoutes(r){let n=Wr();r.use(nU.default.static(hg.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=Wr(),o=[hg.default.join(i,"ui","viewer.html"),hg.default.join(i,"plugin","ui","viewer.html")].find(c=>(0,vg.existsSync)(c));if(!o)throw new Error("Viewer UI not found at any expected location");let s=(0,vg.readFileSync)(o,"utf-8");n.setHeader("Content-Type","text/html"),n.send(s)});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 a=this.sessionManager.isAnySessionProcessing(),o=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:a,queueDepth:o})})};Pe();Pe();var iU=100;function Ife(t){let e=(t.match(//g)||[]).length,r=(t.match(//g)||[]).length;return e+r}function aU(t){let e=Ife(t);return e>iU&&k.warn("SYSTEM","tag count exceeds limit",void 0,{tagCount:e,maxAllowed:iU,contentLength:t.length}),t.replace(/[\s\S]*?<\/claude-mem-context>/g,"").replace(/[\s\S]*?<\/private>/g,"").trim()}function Q$(t){return aU(t)}function oU(t){return aU(t)}var yg=class{constructor(e,r){this.sessionManager=e;this.eventBroadcaster=r}async completeByDbId(e){await this.sessionManager.deleteSession(e),this.eventBroadcaster.broadcastSessionCompleted(e)}};Pe();var Ad=class{static checkUserPromptPrivacy(e,r,n,i,a,o){let s=e.getUserPrompt(r,n);return!s||s.trim()===""?(k.debug("HOOK",`Skipping ${i} - user prompt was entirely private`,{sessionId:a,promptNumber:n,...o}),null):s}};Fr();cn();var _g=class extends Yr{constructor(r,n,i,a,o,s,c){super();this.sessionManager=r;this.dbManager=n;this.sdkAgent=i;this.geminiAgent=a;this.openRouterAgent=o;this.eventBroadcaster=s;this.workerService=c;this.completionHandler=new yg(r,s)}completionHandler;getActiveAgent(){if(Y$()){if(X$())return k.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(J$()){if(K$())return k.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 Y$()&&X$()?"openrouter":J$()&&K$()?"gemini":"claude"}ensureGeneratorRunning(r,n){let i=this.sessionManager.getSession(r);if(!i)return;let a=this.getSelectedProvider();if(!i.generatorPromise){this.startGeneratorWithProvider(i,a,n);return}i.currentProvider&&i.currentProvider!==a&&k.info("SESSION","Provider changed, will switch after current generator finishes",{sessionId:r,currentProvider:i.currentProvider,selectedProvider:a,historyLength:i.conversationHistory.length})}startGeneratorWithProvider(r,n,i){if(!r)return;let a=n==="openrouter"?this.openRouterAgent:n==="gemini"?this.geminiAgent:this.sdkAgent,o=n==="openrouter"?"OpenRouter":n==="gemini"?"Gemini":"Claude SDK";k.info("SESSION",`Generator auto-starting (${i}) using ${o}`,{sessionId:r.sessionDbId,queueDepth:r.pendingMessages.length,historyLength:r.conversationHistory.length}),r.currentProvider=n,r.generatorPromise=a.startSession(r,this.workerService).catch(s=>{if(r.abortController.signal.aborted)return;k.error("SESSION","Generator failed",{sessionId:r.sessionDbId,provider:n,error:s.message},s);let c=this.sessionManager.getPendingMessageStore();try{let u=c.markSessionMessagesFailed(r.sessionDbId);u>0&&k.warn("SESSION","Marked messages as failed after generator error",{sessionId:r.sessionDbId,failedCount:u})}catch(u){k.error("SESSION","Failed to mark messages as failed",{sessionId:r.sessionDbId},u)}}).finally(()=>{let s=r.sessionDbId,c=r.abortController.signal.aborted;if(c?k.info("SESSION","Generator aborted",{sessionId:s}):k.warn("SESSION","Generator exited unexpectedly",{sessionId:s}),r.generatorPromise=null,r.currentProvider=null,this.workerService.broadcastProcessingStatus(),!c)try{let l=this.sessionManager.getPendingMessageStore().getPendingCount(s);l>0?(k.info("SESSION","Restarting generator after crash/exit with pending work",{sessionId:s,pendingCount:l}),r.abortController=new AbortController,setTimeout(()=>{let d=this.sessionManager.getSession(s);d&&!d.generatorPromise&&this.startGeneratorWithProvider(d,this.getSelectedProvider(),"crash-recovery")},1e3)):(r.abortController.abort(),k.debug("SESSION","Aborted controller after natural completion",{sessionId:s}))}catch(u){k.debug("SESSION","Error during recovery check, aborting to prevent leaks",{sessionId:s,error:u instanceof Error?u.message:String(u)}),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))}handleSessionInit=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{userPrompt:a,promptNumber:o}=r.body;k.info("HTTP","SessionRoutes: handleSessionInit called",{sessionDbId:i,promptNumber:o,has_userPrompt:!!a});let s=this.sessionManager.initializeSession(i,a,o),c=this.dbManager.getSessionStore().getLatestUserPrompt(s.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;k.debug("CHROMA","User prompt synced",{promptId:c.id,duration:`${d}ms`,prompt:p})}).catch(d=>{k.warn("CHROMA","User prompt sync failed, continuing without vector search",{promptId:c.id,prompt:l.length>60?l.substring(0,60)+"...":l},d)})}this.startGeneratorWithProvider(s,this.getSelectedProvider(),"init"),this.eventBroadcaster.broadcastSessionStarted(i,s.project),n.json({status:"initialized",sessionDbId:i,port:_n()})});handleObservations=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{tool_name:a,tool_input:o,tool_response:s,prompt_number:c,cwd:u}=r.body;this.sessionManager.queueObservation(i,{tool_name:a,tool_input:o,tool_response:s,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:a}=r.body;this.sessionManager.queueSummarize(i,a),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 a=this.sessionManager.getSession(i);if(!a){n.json({status:"not_found"});return}n.json({status:"active",sessionDbId:i,project:a.project,queueLength:a.pendingMessages.length,uptime:Date.now()-a.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:a,tool_input:o,tool_response:s,cwd:c}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let u=Fe.loadFromFile($n);if(new Set(u.CLAUDE_MEM_SKIP_TOOLS.split(",").map(y=>y.trim()).filter(Boolean)).has(a)){k.debug("SESSION","Skipping observation for tool",{tool_name:a}),n.json({status:"skipped",reason:"tool_excluded"});return}if(new Set(["Edit","Write","Read","NotebookEdit"]).has(a)&&o){let y=o.file_path||o.notebook_path;if(y&&y.includes("session-memory")){k.debug("SESSION","Skipping meta-observation for session-memory file",{tool_name:a,file_path:y}),n.json({status:"skipped",reason:"session_memory_meta"});return}}let p=this.dbManager.getSessionStore(),f=p.createSDKSession(i,"",""),h=p.getPromptNumberFromUserPrompts(i);if(!Ad.checkUserPromptPrivacy(p,i,h,"observation",f,{tool_name:a})){n.json({status:"skipped",reason:"private"});return}let g=o!==void 0?Q$(JSON.stringify(o)):"{}",m=s!==void 0?Q$(JSON.stringify(s)):"{}";this.sessionManager.queueObservation(f,{tool_name:a,tool_input:g,tool_response:m,prompt_number:h,cwd:c||k.happyPathError("SESSION","Missing cwd when queueing observation in SessionRoutes",{sessionId:f},{tool_name:a},"")}),this.ensureGeneratorRunning(f,"observation"),this.eventBroadcaster.broadcastObservationQueued(f),n.json({status:"queued"})});handleSummarizeByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,last_assistant_message:a}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let o=this.dbManager.getSessionStore(),s=o.createSDKSession(i,"",""),c=o.getPromptNumberFromUserPrompts(i);if(!Ad.checkUserPromptPrivacy(o,i,c,"summarize",s)){n.json({status:"skipped",reason:"private"});return}this.sessionManager.queueSummarize(s,a),this.ensureGeneratorRunning(s,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionInitByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,project:a,prompt:o}=r.body;if(k.info("HTTP","SessionRoutes: handleSessionInitByClaudeId called",{contentSessionId:i,project:a,prompt_length:o?.length}),!this.validateRequired(r,n,["contentSessionId","project","prompt"]))return;let s=this.dbManager.getSessionStore(),c=s.createSDKSession(i,a,o),u=s.getSessionById(c),l=!u?.memory_session_id;k.info("SESSION",`CREATED | contentSessionId=${i} \u2192 sessionDbId=${c} | isNew=${l} | project=${a}`,{sessionId:c});let p=s.getPromptNumberFromUserPrompts(i)+1,f=u?.memory_session_id||null;p>1?k.debug("HTTP",`[ALIGNMENT] DB Lookup Proof | contentSessionId=${i} \u2192 memorySessionId=${f||"(not yet captured)"} | prompt#=${p}`):k.debug("HTTP",`[ALIGNMENT] New Session | contentSessionId=${i} | prompt#=${p} | memorySessionId will be captured on first SDK response`);let h=oU(o);if(!h||h.trim()===""){k.debug("HOOK","Session init - prompt entirely private",{sessionId:c,promptNumber:p,originalLength:o.length}),n.json({sessionDbId:c,promptNumber:p,skipped:!0,reason:"private"});return}s.saveUserPrompt(i,p,h),k.debug("SESSION","User prompt saved",{sessionId:c,promptNumber:p}),n.json({sessionDbId:c,promptNumber:p,skipped:!1})})};var eE=dt(require("path"),1),Tc=require("fs");Pe();var sU=require("os");cn();var bg=class extends Yr{constructor(r,n,i,a,o,s){super();this.paginationHelper=r;this.dbManager=n;this.sessionManager=i;this.sseBroadcaster=a;this.workerService=o;this.startTime=s}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:a,project:o}=this.parsePaginationParams(r),s=this.paginationHelper.getObservations(i,a,o);n.json(s)});handleGetSummaries=this.wrapHandler((r,n)=>{let{offset:i,limit:a,project:o}=this.parsePaginationParams(r),s=this.paginationHelper.getSummaries(i,a,o);n.json(s)});handleGetPrompts=this.wrapHandler((r,n)=>{let{offset:i,limit:a,project:o}=this.parsePaginationParams(r),s=this.paginationHelper.getPrompts(i,a,o);n.json(s)});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:a,limit:o,project:s}=r.body;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:a,limit:o,project:s});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(!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,a=Wr(),o=eE.default.join(a,"package.json"),c=JSON.parse((0,Tc.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=eE.default.join((0,sU.homedir)(),".claude-mem","claude-mem.db"),f=0;(0,Tc.existsSync)(p)&&(f=(0,Tc.statSync)(p).size);let h=Math.floor((Date.now()-this.startTime)/1e3),_=this.sessionManager.getActiveSessionCount(),g=this.sseBroadcaster.getClientCount();n.json({worker:{version:c,uptime:h,activeSessions:_,sseClients:g,port:_n()},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(s=>s.project);n.json({projects:o})});handleGetProcessingStatus=this.wrapHandler((r,n)=>{let i=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalActiveWork();n.json({isProcessing:i,queueDepth:a})});handleSetProcessing=this.wrapHandler((r,n)=>{this.workerService.broadcastProcessingStatus();let i=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalQueueDepth(),o=this.sessionManager.getActiveSessionCount();n.json({status:"ok",isProcessing:i,queueDepth:a,activeSessions:o})});parsePaginationParams(r){let n=parseInt(r.query.offset,10)||0,i=Math.min(parseInt(r.query.limit,10)||20,100),a=r.query.project;return{offset:n,limit:i,project:a}}handleImport=this.wrapHandler((r,n)=>{let{sessions:i,summaries:a,observations:o,prompts:s}=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(a))for(let l of a)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(s))for(let l of s)u.importUserPrompt(l).imported?c.promptsImported++:c.promptsSkipped++;n.json({success:!0,stats:c})});handleGetPendingQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(ho(),qd(Ws)),a=new i(this.dbManager.getSessionStore().db,3),o=a.getQueueMessages(),s=a.getRecentlyProcessed(20,30),c=a.getStuckCount(300*1e3),u=a.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:s,sessionsWithPendingWork:u})});handleProcessPendingQueue=this.wrapHandler(async(r,n)=>{let i=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),a=await this.workerService.processPendingQueues(i);n.json({success:!0,...a})});handleClearFailedQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(ho(),qd(Ws)),o=new i(this.dbManager.getSessionStore().db,3).clearFailed();T.info("QUEUE","Cleared failed queue messages",{clearedCount:o}),n.json({success:!0,clearedCount:o})});handleClearAllQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(ho(),qd(Ws)),o=new i(this.dbManager.getSessionStore().db,3).clearAll();T.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:o}),n.json({success:!0,clearedCount:o})})};var wg=class extends Xr{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:a}=await Promise.resolve().then(()=>(dE(),lE)),o=`/preview/${i}`,s=await a({session_id:"preview-"+Date.now(),cwd:o},!0);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(s)});handleContextInject=this.wrapHandler(async(r,n)=>{let i=r.query.project,a=r.query.colors==="true";if(!i){this.badRequest(n,"Project parameter is required");return}let{generateContext:o}=await Promise.resolve().then(()=>(dE(),lE)),s=`/context/${i}`,c=await o({session_id:"context-inject-"+Date.now(),cwd:s},a);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(c)});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 Eo=yt(require("path"),1),mr=require("fs"),hE=require("os");sn();Ae();var fE=require("child_process"),$o=require("fs"),iq=require("os"),zd=require("path");Ae();var Dd=(0,zd.join)((0,iq.homedir)(),".claude","plugins","marketplaces","thedotmack");function pE(t){return!t||typeof t!="string"?!1:/^[a-zA-Z0-9][a-zA-Z0-9._/-]*$/.test(t)&&!t.includes("..")}var Pfe=3e5,mE=6e5;function Pn(t){let e=(0,fE.spawnSync)("git",t,{cwd:Dd,encoding:"utf-8",timeout:Pfe,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 aq(t,e=mE){let n=process.platform==="win32"?"npm.cmd":"npm",i=(0,fE.spawnSync)(n,t,{cwd:Dd,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 $g(){let t=(0,zd.join)(Dd,".git");if(!(0,$o.existsSync)(t))return{branch:null,isBeta:!1,isGitRepo:!1,isDirty:!1,canSwitch:!1,error:"Installed plugin is not a git repository"};try{let e=Pn(["rev-parse","--abbrev-ref","HEAD"]),n=Pn(["status","--porcelain"]).length>0,i=e.startsWith("beta");return{branch:e,isBeta:i,isGitRepo:!0,isDirty:n,canSwitch:!0}}catch(e){return T.error("BRANCH","Failed to get branch info",{},e),{branch:null,isBeta:!1,isGitRepo:!0,isDirty:!1,canSwitch:!1,error:e.message}}}async function oq(t){if(!pE(t))return{success:!1,error:`Invalid branch name: ${t}. Branch names must be alphanumeric with hyphens, underscores, slashes, or dots.`};let e=$g();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{T.info("BRANCH","Starting branch switch",{from:e.branch,to:t}),T.debug("BRANCH","Discarding local changes"),Pn(["checkout","--","."]),Pn(["clean","-fd"]),T.debug("BRANCH","Fetching from origin"),Pn(["fetch","origin"]),T.debug("BRANCH","Checking out branch",{branch:t});try{Pn(["checkout",t])}catch(n){T.debug("BRANCH","Branch not local, tracking remote",{branch:t,error:n instanceof Error?n.message:String(n)}),Pn(["checkout","-b",t,`origin/${t}`])}T.debug("BRANCH","Pulling latest"),Pn(["pull","origin",t]);let r=(0,zd.join)(Dd,".install-version");return(0,$o.existsSync)(r)&&(0,$o.unlinkSync)(r),T.debug("BRANCH","Running npm install"),aq(["install"],mE),T.success("BRANCH","Branch switch complete",{branch:t}),{success:!0,branch:t,message:`Switched to ${t}. Worker will restart automatically.`}}catch(r){T.error("BRANCH","Branch switch failed",{targetBranch:t},r);try{e.branch&&pE(e.branch)&&Pn(["checkout",e.branch])}catch(n){T.warn("BRANCH","Recovery checkout also failed",{originalBranch:e.branch},n)}return{success:!1,error:`Branch switch failed: ${r.message}`}}}async function sq(){let t=$g();if(!t.isGitRepo||!t.branch)return{success:!1,error:"Cannot pull updates: not a git repository"};try{if(!pE(t.branch))return{success:!1,error:`Invalid current branch name: ${t.branch}`};T.info("BRANCH","Pulling updates",{branch:t.branch}),Pn(["checkout","--","."]),Pn(["fetch","origin"]),Pn(["pull","origin",t.branch]);let e=(0,zd.join)(Dd,".install-version");return(0,$o.existsSync)(e)&&(0,$o.unlinkSync)(e),aq(["install"],mE),T.success("BRANCH","Updates pulled",{branch:t.branch}),{success:!0,branch:t.branch,message:`Updated ${t.branch}. Worker will restart automatically.`}}catch(e){return T.error("BRANCH","Pull failed",{},e),{success:!1,error:`Pull failed: ${e.message}`}}}yn();var Eg=class extends Xr{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=Eo.default.join((0,hE.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(i);let a=nt.loadFromFile(i);n.json(a)});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 a=Eo.default.join((0,hE.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(a);let o={};if((0,mr.existsSync)(a)){let c=(0,mr.readFileSync)(a,"utf-8");try{o=JSON.parse(c)}catch(u){T.error("SETTINGS","Failed to parse settings file",{settingsPath:a},u),n.status(500).json({success:!1,error:"Settings file is corrupted. Delete ~/.claude-mem/settings.json to reset."});return}}let s=["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"];for(let c of s)r.body[c]!==void 0&&(o[c]=r.body[c]);(0,mr.writeFileSync)(a,JSON.stringify(o,null,2),"utf-8"),wR(),T.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=$g();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 a=["main","beta/7.0","feature/bun-executable"];if(!a.includes(i)){n.status(400).json({success:!1,error:`Invalid branch. Allowed: ${a.join(", ")}`});return}T.info("WORKER","Branch switch requested",{branch:i});let o=await oq(i);o.success&&setTimeout(()=>{T.info("WORKER","Restarting worker after branch switch"),process.exit(0)},1e3),n.json(o)});handleUpdateBranch=this.wrapHandler(async(r,n)=>{T.info("WORKER","Branch update requested");let i=await sq();i.success&&setTimeout(()=>{T.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"].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"};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 T.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=Gr(),n=Eo.default.join(r,"plugin",".mcp.json");return(0,mr.existsSync)(n)}toggleMcp(r){let n=Gr(),i=Eo.default.join(n,"plugin",".mcp.json"),a=Eo.default.join(n,"plugin",".mcp.json.disabled");r&&(0,mr.existsSync)(a)?((0,mr.renameSync)(a,i),T.info("WORKER","MCP search server enabled")):!r&&(0,mr.existsSync)(i)?((0,mr.renameSync)(i,a),T.info("WORKER","MCP search server disabled")):T.debug("WORKER","MCP toggle no-op (already in desired state)",{enabled:r})}ensureSettingsFile(r){if(!(0,mr.existsSync)(r)){let n=nt.getAllDefaults(),i=Eo.default.dirname(r);(0,mr.existsSync)(i)||(0,mr.mkdirSync)(i,{recursive:!0}),(0,mr.writeFileSync)(r,JSON.stringify(n,null,2),"utf-8"),T.info("SETTINGS","Created settings file with defaults",{settingsPath:r})}}};var ko=require("fs"),kg=require("path");Ae();yn();var Tg=class extends Xr{getLogFilePath(){let e=nt.get("CLAUDE_MEM_DATA_DIR"),r=(0,kg.join)(e,"logs"),n=new Date().toISOString().split("T")[0];return(0,kg.join)(r,`claude-mem-${n}.log`)}getLogsDir(){let e=nt.get("CLAUDE_MEM_DATA_DIR");return(0,kg.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,ko.existsSync)(n)){r.json({logs:"",path:n,exists:!1});return}let i=parseInt(e.query.lines||"1000",10),a=Math.min(i,1e4),s=(0,ko.readFileSync)(n,"utf-8").split(` + `).all().map(s=>s.project);n.json({projects:o})});handleGetProcessingStatus=this.wrapHandler((r,n)=>{let i=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalActiveWork();n.json({isProcessing:i,queueDepth:a})});handleSetProcessing=this.wrapHandler((r,n)=>{this.workerService.broadcastProcessingStatus();let i=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalQueueDepth(),o=this.sessionManager.getActiveSessionCount();n.json({status:"ok",isProcessing:i,queueDepth:a,activeSessions:o})});parsePaginationParams(r){let n=parseInt(r.query.offset,10)||0,i=Math.min(parseInt(r.query.limit,10)||20,100),a=r.query.project;return{offset:n,limit:i,project:a}}handleImport=this.wrapHandler((r,n)=>{let{sessions:i,summaries:a,observations:o,prompts:s}=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(a))for(let l of a)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(s))for(let l of s)u.importUserPrompt(l).imported?c.promptsImported++:c.promptsSkipped++;n.json({success:!0,stats:c})});handleGetPendingQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(mo(),Fd(Xs)),a=new i(this.dbManager.getSessionStore().db,3),o=a.getQueueMessages(),s=a.getRecentlyProcessed(20,30),c=a.getStuckCount(300*1e3),u=a.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:s,sessionsWithPendingWork:u})});handleProcessPendingQueue=this.wrapHandler(async(r,n)=>{let i=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),a=await this.workerService.processPendingQueues(i);n.json({success:!0,...a})});handleClearFailedQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(mo(),Fd(Xs)),o=new i(this.dbManager.getSessionStore().db,3).clearFailed();k.info("QUEUE","Cleared failed queue messages",{clearedCount:o}),n.json({success:!0,clearedCount:o})});handleClearAllQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(mo(),Fd(Xs)),o=new i(this.dbManager.getSessionStore().db,3).clearAll();k.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:o}),n.json({success:!0,clearedCount:o})})};var Eg=class extends Yr{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:a}=await Promise.resolve().then(()=>(fE(),pE)),o=`/preview/${i}`,s=await a({session_id:"preview-"+Date.now(),cwd:o},!0);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(s)});handleContextInject=this.wrapHandler(async(r,n)=>{let i=r.query.projects||r.query.project,a=r.query.colors==="true";if(!i){this.badRequest(n,"Project(s) parameter is required");return}let o=i.split(",").map(d=>d.trim()).filter(Boolean);if(o.length===0){this.badRequest(n,"At least one project is required");return}let{generateContext:s}=await Promise.resolve().then(()=>(fE(),pE)),u=`/context/${o[o.length-1]}`,l=await s({session_id:"context-inject-"+Date.now(),cwd:u,projects:o},a);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(l)});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 ko=dt(require("path"),1),mr=require("fs"),vE=require("os");cn();Pe();var hE=require("child_process"),Eo=require("fs"),lq=require("os"),Ud=require("path");Pe();var qd=(0,Ud.join)((0,lq.homedir)(),".claude","plugins","marketplaces","thedotmack");function mE(t){return!t||typeof t!="string"?!1:/^[a-zA-Z0-9][a-zA-Z0-9._/-]*$/.test(t)&&!t.includes("..")}var Ufe=3e5,gE=6e5;function Rn(t){let e=(0,hE.spawnSync)("git",t,{cwd:qd,encoding:"utf-8",timeout:Ufe,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 dq(t,e=gE){let n=process.platform==="win32"?"npm.cmd":"npm",i=(0,hE.spawnSync)(n,t,{cwd:qd,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 kg(){let t=(0,Ud.join)(qd,".git");if(!(0,Eo.existsSync)(t))return{branch:null,isBeta:!1,isGitRepo:!1,isDirty:!1,canSwitch:!1,error:"Installed plugin is not a git repository"};try{let e=Rn(["rev-parse","--abbrev-ref","HEAD"]),n=Rn(["status","--porcelain"]).length>0,i=e.startsWith("beta");return{branch:e,isBeta:i,isGitRepo:!0,isDirty:n,canSwitch:!0}}catch(e){return k.error("BRANCH","Failed to get branch info",{},e),{branch:null,isBeta:!1,isGitRepo:!0,isDirty:!1,canSwitch:!1,error:e.message}}}async function pq(t){if(!mE(t))return{success:!1,error:`Invalid branch name: ${t}. Branch names must be alphanumeric with hyphens, underscores, slashes, or dots.`};let e=kg();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{k.info("BRANCH","Starting branch switch",{from:e.branch,to:t}),k.debug("BRANCH","Discarding local changes"),Rn(["checkout","--","."]),Rn(["clean","-fd"]),k.debug("BRANCH","Fetching from origin"),Rn(["fetch","origin"]),k.debug("BRANCH","Checking out branch",{branch:t});try{Rn(["checkout",t])}catch(n){k.debug("BRANCH","Branch not local, tracking remote",{branch:t,error:n instanceof Error?n.message:String(n)}),Rn(["checkout","-b",t,`origin/${t}`])}k.debug("BRANCH","Pulling latest"),Rn(["pull","origin",t]);let r=(0,Ud.join)(qd,".install-version");return(0,Eo.existsSync)(r)&&(0,Eo.unlinkSync)(r),k.debug("BRANCH","Running npm install"),dq(["install"],gE),k.success("BRANCH","Branch switch complete",{branch:t}),{success:!0,branch:t,message:`Switched to ${t}. Worker will restart automatically.`}}catch(r){k.error("BRANCH","Branch switch failed",{targetBranch:t},r);try{e.branch&&mE(e.branch)&&Rn(["checkout",e.branch])}catch(n){k.warn("BRANCH","Recovery checkout also failed",{originalBranch:e.branch},n)}return{success:!1,error:`Branch switch failed: ${r.message}`}}}async function fq(){let t=kg();if(!t.isGitRepo||!t.branch)return{success:!1,error:"Cannot pull updates: not a git repository"};try{if(!mE(t.branch))return{success:!1,error:`Invalid current branch name: ${t.branch}`};k.info("BRANCH","Pulling updates",{branch:t.branch}),Rn(["checkout","--","."]),Rn(["fetch","origin"]),Rn(["pull","origin",t.branch]);let e=(0,Ud.join)(qd,".install-version");return(0,Eo.existsSync)(e)&&(0,Eo.unlinkSync)(e),dq(["install"],gE),k.success("BRANCH","Updates pulled",{branch:t.branch}),{success:!0,branch:t.branch,message:`Updated ${t.branch}. Worker will restart automatically.`}}catch(e){return k.error("BRANCH","Pull failed",{},e),{success:!1,error:`Pull failed: ${e.message}`}}}Fr();var Tg=class extends Yr{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=ko.default.join((0,vE.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(i);let a=Fe.loadFromFile(i);n.json(a)});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 a=ko.default.join((0,vE.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(a);let o={};if((0,mr.existsSync)(a)){let c=(0,mr.readFileSync)(a,"utf-8");try{o=JSON.parse(c)}catch(u){k.error("SETTINGS","Failed to parse settings file",{settingsPath:a},u),n.status(500).json({success:!1,error:"Settings file is corrupted. Delete ~/.claude-mem/settings.json to reset."});return}}let s=["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"];for(let c of s)r.body[c]!==void 0&&(o[c]=r.body[c]);(0,mr.writeFileSync)(a,JSON.stringify(o,null,2),"utf-8"),$O(),k.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=kg();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 a=["main","beta/7.0","feature/bun-executable"];if(!a.includes(i)){n.status(400).json({success:!1,error:`Invalid branch. Allowed: ${a.join(", ")}`});return}k.info("WORKER","Branch switch requested",{branch:i});let o=await pq(i);o.success&&setTimeout(()=>{k.info("WORKER","Restarting worker after branch switch"),process.exit(0)},1e3),n.json(o)});handleUpdateBranch=this.wrapHandler(async(r,n)=>{k.info("WORKER","Branch update requested");let i=await fq();i.success&&setTimeout(()=>{k.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"].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"};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 k.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=Wr(),n=ko.default.join(r,"plugin",".mcp.json");return(0,mr.existsSync)(n)}toggleMcp(r){let n=Wr(),i=ko.default.join(n,"plugin",".mcp.json"),a=ko.default.join(n,"plugin",".mcp.json.disabled");r&&(0,mr.existsSync)(a)?((0,mr.renameSync)(a,i),k.info("WORKER","MCP search server enabled")):!r&&(0,mr.existsSync)(i)?((0,mr.renameSync)(i,a),k.info("WORKER","MCP search server disabled")):k.debug("WORKER","MCP toggle no-op (already in desired state)",{enabled:r})}ensureSettingsFile(r){if(!(0,mr.existsSync)(r)){let n=Fe.getAllDefaults(),i=ko.default.dirname(r);(0,mr.existsSync)(i)||(0,mr.mkdirSync)(i,{recursive:!0}),(0,mr.writeFileSync)(r,JSON.stringify(n,null,2),"utf-8"),k.info("SETTINGS","Created settings file with defaults",{settingsPath:r})}}};var To=require("fs"),Ig=require("path");Pe();Fr();var Pg=class extends Yr{getLogFilePath(){let e=Fe.get("CLAUDE_MEM_DATA_DIR"),r=(0,Ig.join)(e,"logs"),n=new Date().toISOString().split("T")[0];return(0,Ig.join)(r,`claude-mem-${n}.log`)}getLogsDir(){let e=Fe.get("CLAUDE_MEM_DATA_DIR");return(0,Ig.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,To.existsSync)(n)){r.json({logs:"",path:n,exists:!1});return}let i=parseInt(e.query.lines||"1000",10),a=Math.min(i,1e4),s=(0,To.readFileSync)(n,"utf-8").split(` `),c=Math.max(0,s.length-a),u=s.slice(c).join(` -`);r.json({logs:u,path:n,exists:!0,totalLines:s.length,returnedLines:s.length-c})});handleClearLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,ko.existsSync)(n)){r.json({success:!0,message:"Log file does not exist",path:n});return}(0,ko.writeFileSync)(n,"","utf-8"),T.info("SYSTEM","Log file cleared via UI",{path:n}),r.json({success:!0,message:"Log file cleared",path:n})})};var Nfe={};var Ig=class{server;startTime=Date.now();mcpClient;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;geminiAgent;openRouterAgent;paginationHelper;settingsManager;sessionEventBroadcaster;searchRoutes=null;initializationComplete;resolveInitialization;constructor(){this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new hh,this.sessionManager=new vh(this.dbManager),this.sseBroadcaster=new yh,this.sdkAgent=new tg(this.dbManager,this.sessionManager),this.geminiAgent=new rg(this.dbManager,this.sessionManager),this.geminiAgent.setFallbackAgent(this.sdkAgent),this.openRouterAgent=new ag(this.dbManager,this.sessionManager),this.openRouterAgent.setFallbackAgent(this.sdkAgent),this.paginationHelper=new og(this.dbManager),this.settingsManager=new sg(this.dbManager),this.sessionEventBroadcaster=new pg(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new gs({name:"worker-search-proxy",version:"1.0.0"},{capabilities:{}}),this.server=new lh({getInitializationComplete:()=>this.initializationCompleteFlag,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown()}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){let e={value:this.isShuttingDown},r=CR(()=>this.shutdown(),e);process.on("SIGTERM",()=>{this.isShuttingDown=e.value,r("SIGTERM")}),process.on("SIGINT",()=>{this.isShuttingDown=e.value,r("SIGINT")})}registerRoutes(){this.server.registerRoutes(new mg(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new vg(this.sessionManager,this.dbManager,this.sdkAgent,this.geminiAgent,this.openRouterAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new yg(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime)),this.server.registerRoutes(new Eg(this.settingsManager)),this.server.registerRoutes(new Tg),this.server.app.get("/api/context/inject",async(e,r,n)=>{let a=new Promise((o,s)=>setTimeout(()=>s(new Error("Initialization timeout")),3e5));if(await Promise.race([this.initializationComplete,a]),!this.searchRoutes){r.status(503).json({error:"Search routes not initialized"});return}n()})}async start(){let e=Ln(),r=SR();await this.server.listen(e,r),T.info("SYSTEM","Worker started",{host:r,port:e,pid:process.pid}),this.initializeBackground().catch(n=>{T.error("SYSTEM","Background initialization failed",{},n)})}async initializeBackground(){try{await RR();let{ModeManager:e}=await Promise.resolve().then(()=>(jr(),v4)),{SettingsDefaultsManager:r}=await Promise.resolve().then(()=>(yn(),bR)),{USER_SETTINGS_PATH:n}=await Promise.resolve().then(()=>(sn(),KD)),a=r.loadFromFile(n).CLAUDE_MEM_MODE;e.getInstance().loadMode(a),T.info("SYSTEM",`Mode loaded: ${a}`),await this.dbManager.initialize();let{PendingMessageStore:o}=await Promise.resolve().then(()=>(ho(),Ws)),s=new o(this.dbManager.getSessionStore().db,3),c=300*1e3,u=s.resetStuckMessages(c);u>0&&T.info("SYSTEM",`Recovered ${u} stuck messages from previous session`,{thresholdMinutes:5});let l=new lg,d=new dg,p=new ug(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getChromaSync(),l,d);this.searchRoutes=new wg(p),this.server.registerRoutes(this.searchRoutes),T.info("WORKER","SearchManager initialized and search routes registered");let f=cq.default.join(__dirname,"mcp-server.cjs"),h=new _s({command:"node",args:[f],env:process.env}),_=3e5,y=this.mcpClient.connect(h),m=new Promise((v,g)=>setTimeout(()=>g(new Error("MCP connection timeout after 5 minutes")),_));await Promise.race([y,m]),this.mcpReady=!0,T.success("WORKER","Connected to MCP server"),this.initializationCompleteFlag=!0,this.resolveInitialization(),T.info("SYSTEM","Background initialization complete"),this.processPendingQueues(50).then(v=>{v.sessionsStarted>0&&T.info("SYSTEM",`Auto-recovered ${v.sessionsStarted} sessions with pending work`,{totalPending:v.totalPendingSessions,started:v.sessionsStarted,sessionIds:v.startedSessionIds})}).catch(v=>{T.warn("SYSTEM","Auto-recovery of pending queues failed",{},v)})}catch(e){throw T.error("SYSTEM","Background initialization failed",{},e),e}}startSessionProcessor(e,r){if(!e)return;let n=e.sessionDbId;T.info("SYSTEM",`Starting generator (${r})`,{sessionId:n}),e.generatorPromise=this.sdkAgent.startSession(e,this).catch(i=>{T.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project},i)}).finally(()=>{e.generatorPromise=null,this.broadcastProcessingStatus()})}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(ho(),Ws)),n=new r(this.dbManager.getSessionStore().db,3),i=n.getSessionsWithPendingMessages(),a={totalPendingSessions:i.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(i.length===0)return a;T.info("SYSTEM",`Processing up to ${e} of ${i.length} pending session queues`);for(let o of i){if(a.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(o)?.generatorPromise){a.sessionsSkipped++;continue}let c=this.sessionManager.initializeSession(o);T.info("SYSTEM",`Starting processor for session ${o}`,{project:c.project,pendingCount:n.getPendingCount(o)}),this.startSessionProcessor(c,"startup-recovery"),a.sessionsStarted++,a.startedSessionIds.push(o),await new Promise(u=>setTimeout(u,100))}catch(s){T.warn("SYSTEM",`Failed to process session ${o}`,{},s),a.sessionsSkipped++}}return a}async shutdown(){await MR({server:this.server.getHttpServer(),sessionManager:this.sessionManager,mcpClient:this.mcpClient,dbManager:this.dbManager})}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),r=this.sessionManager.getTotalActiveWork(),n=this.sessionManager.getActiveSessionCount();T.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:r,activeSessions:n}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:r})}};async function Ofe(){let t=process.argv[2],e=Ln();switch(t){case"start":{if(await ml(e,1e3)){let a=await AR(e);a.matches?(T.info("SYSTEM","Worker already running and healthy"),process.exit(0)):(T.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:a.pluginVersion,workerVersion:a.workerVersion}),await em(e),await Qf(e,Ya(15e3))||(T.error("SYSTEM","Port did not free up after shutdown for version mismatch restart",{port:e}),process.exit(1)),Ai())}await Yf(e)&&(T.info("SYSTEM","Port in use, waiting for worker to become healthy"),await ml(e,Ya(15e3))&&(T.info("SYSTEM","Worker is now healthy"),process.exit(0)),T.error("SYSTEM","Port in use but worker not responding to health checks"),process.exit(1)),T.info("SYSTEM","Starting worker daemon");let n=M0(__filename,e);n===void 0&&(T.error("SYSTEM","Failed to spawn worker daemon"),process.exit(1)),A0({pid:n,port:e,startedAt:new Date().toISOString()}),await ml(e,Ya(3e4))||(Ai(),T.error("SYSTEM","Worker failed to start (health check timeout)"),process.exit(1)),T.info("SYSTEM","Worker started successfully"),process.exit(0)}case"stop":await em(e),await Qf(e,Ya(15e3))||T.warn("SYSTEM","Port did not free up after shutdown",{port:e}),Ai(),T.info("SYSTEM","Worker stopped successfully"),process.exit(0);case"restart":{T.info("SYSTEM","Restarting worker"),await em(e),await Qf(e,Ya(15e3))||(T.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:e}),process.exit(1)),Ai();let n=M0(__filename,e);n===void 0&&(T.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(1)),A0({pid:n,port:e,startedAt:new Date().toISOString()}),await ml(e,Ya(3e4))||(Ai(),T.error("SYSTEM","Worker failed to restart"),process.exit(1)),T.info("SYSTEM","Worker restarted successfully"),process.exit(0)}case"status":{let r=await Yf(e),n=TR();r&&n?(console.log("Worker is running"),console.log(` PID: ${n.pid}`),console.log(` Port: ${n.port}`),console.log(` Started: ${n.startedAt}`)):console.log("Worker is not running"),process.exit(0)}case"cursor":{let r=process.argv[3],n=await d4(r,process.argv.slice(4));process.exit(n)}default:new Ig().start().catch(n=>{T.failure("SYSTEM","Worker failed to start",{},n),Ai(),process.exit(1)})}}var Rfe=typeof require<"u"&&typeof module<"u"?require.main===module||!module.parent:Nfe.url===`file://${process.argv[1]}`||process.argv[1]?.endsWith("worker-service");Rfe&&Ofe();0&&(module.exports={WorkerService,updateCursorContextForProject}); +`);r.json({logs:u,path:n,exists:!0,totalLines:s.length,returnedLines:s.length-c})});handleClearLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,To.existsSync)(n)){r.json({success:!0,message:"Log file does not exist",path:n});return}(0,To.writeFileSync)(n,"","utf-8"),k.info("SYSTEM","Log file cleared via UI",{path:n}),r.json({success:!0,message:"Log file cleared",path:n})})};var Zfe={};var Rg=class{server;startTime=Date.now();mcpClient;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;geminiAgent;openRouterAgent;paginationHelper;settingsManager;sessionEventBroadcaster;searchRoutes=null;initializationComplete;resolveInitialization;constructor(){this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new vh,this.sessionManager=new _h(this.dbManager),this.sseBroadcaster=new bh,this.sdkAgent=new ig(this.dbManager,this.sessionManager),this.geminiAgent=new ag(this.dbManager,this.sessionManager),this.geminiAgent.setFallbackAgent(this.sdkAgent),this.openRouterAgent=new cg(this.dbManager,this.sessionManager),this.openRouterAgent.setFallbackAgent(this.sdkAgent),this.paginationHelper=new ug(this.dbManager),this.settingsManager=new lg(this.dbManager),this.sessionEventBroadcaster=new mg(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new vs({name:"worker-search-proxy",version:"1.0.0"},{capabilities:{}}),this.server=new ph({getInitializationComplete:()=>this.initializationCompleteFlag,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown()}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){let e={value:this.isShuttingDown},r=NO(()=>this.shutdown(),e);process.on("SIGTERM",()=>{this.isShuttingDown=e.value,r("SIGTERM")}),process.on("SIGINT",()=>{this.isShuttingDown=e.value,r("SIGINT")})}registerRoutes(){this.server.registerRoutes(new gg(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new _g(this.sessionManager,this.dbManager,this.sdkAgent,this.geminiAgent,this.openRouterAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new bg(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime)),this.server.registerRoutes(new Tg(this.settingsManager)),this.server.registerRoutes(new Pg),this.server.app.get("/api/context/inject",async(e,r,n)=>{let a=new Promise((o,s)=>setTimeout(()=>s(new Error("Initialization timeout")),3e5));if(await Promise.race([this.initializationComplete,a]),!this.searchRoutes){r.status(503).json({error:"Search routes not initialized"});return}n()})}async start(){let e=_n(),r=wO();await this.server.listen(e,r),k.info("SYSTEM","Worker started",{host:r,port:e,pid:process.pid}),this.initializeBackground().catch(n=>{k.error("SYSTEM","Background initialization failed",{},n)})}async initializeBackground(){try{await CO();let{ModeManager:e}=await Promise.resolve().then(()=>(jr(),y4)),{SettingsDefaultsManager:r}=await Promise.resolve().then(()=>(Fr(),bO)),{USER_SETTINGS_PATH:n}=await Promise.resolve().then(()=>(cn(),Jz)),a=r.loadFromFile(n).CLAUDE_MEM_MODE;e.getInstance().loadMode(a),k.info("SYSTEM",`Mode loaded: ${a}`),await this.dbManager.initialize();let{PendingMessageStore:o}=await Promise.resolve().then(()=>(mo(),Xs)),s=new o(this.dbManager.getSessionStore().db,3),c=300*1e3,u=s.resetStuckMessages(c);u>0&&k.info("SYSTEM",`Recovered ${u} stuck messages from previous session`,{thresholdMinutes:5});let l=new pg,d=new fg,p=new dg(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getChromaSync(),l,d);this.searchRoutes=new Eg(p),this.server.registerRoutes(this.searchRoutes),k.info("WORKER","SearchManager initialized and search routes registered");let f=mq.default.join(__dirname,"mcp-server.cjs"),h=new bs({command:"node",args:[f],env:process.env}),_=3e5,g=this.mcpClient.connect(h),m=new Promise((y,v)=>setTimeout(()=>v(new Error("MCP connection timeout after 5 minutes")),_));await Promise.race([g,m]),this.mcpReady=!0,k.success("WORKER","Connected to MCP server"),this.initializationCompleteFlag=!0,this.resolveInitialization(),k.info("SYSTEM","Background initialization complete"),this.processPendingQueues(50).then(y=>{y.sessionsStarted>0&&k.info("SYSTEM",`Auto-recovered ${y.sessionsStarted} sessions with pending work`,{totalPending:y.totalPendingSessions,started:y.sessionsStarted,sessionIds:y.startedSessionIds})}).catch(y=>{k.warn("SYSTEM","Auto-recovery of pending queues failed",{},y)})}catch(e){throw k.error("SYSTEM","Background initialization failed",{},e),e}}startSessionProcessor(e,r){if(!e)return;let n=e.sessionDbId;k.info("SYSTEM",`Starting generator (${r})`,{sessionId:n}),e.generatorPromise=this.sdkAgent.startSession(e,this).catch(i=>{k.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project},i)}).finally(()=>{e.generatorPromise=null,this.broadcastProcessingStatus()})}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(mo(),Xs)),n=new r(this.dbManager.getSessionStore().db,3),i=n.getSessionsWithPendingMessages(),a={totalPendingSessions:i.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(i.length===0)return a;k.info("SYSTEM",`Processing up to ${e} of ${i.length} pending session queues`);for(let o of i){if(a.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(o)?.generatorPromise){a.sessionsSkipped++;continue}let c=this.sessionManager.initializeSession(o);k.info("SYSTEM",`Starting processor for session ${o}`,{project:c.project,pendingCount:n.getPendingCount(o)}),this.startSessionProcessor(c,"startup-recovery"),a.sessionsStarted++,a.startedSessionIds.push(o),await new Promise(u=>setTimeout(u,100))}catch(s){k.warn("SYSTEM",`Failed to process session ${o}`,{},s),a.sessionsSkipped++}}return a}async shutdown(){await DO({server:this.server.getHttpServer(),sessionManager:this.sessionManager,mcpClient:this.mcpClient,dbManager:this.dbManager})}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),r=this.sessionManager.getTotalActiveWork(),n=this.sessionManager.getActiveSessionCount();k.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:r,activeSessions:n}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:r})}};async function qfe(){let t=process.argv[2],e=_n();switch(t){case"start":{if(await vl(e,1e3)){let a=await MO(e);a.matches?(k.info("SYSTEM","Worker already running and healthy"),process.exit(0)):(k.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:a.pluginVersion,workerVersion:a.workerVersion}),await rm(e),await tm(e,Xa(15e3))||(k.error("SYSTEM","Port did not free up after shutdown for version mismatch restart",{port:e}),process.exit(1)),ji())}await em(e)&&(k.info("SYSTEM","Port in use, waiting for worker to become healthy"),await vl(e,Xa(15e3))&&(k.info("SYSTEM","Worker is now healthy"),process.exit(0)),k.error("SYSTEM","Port in use but worker not responding to health checks"),process.exit(1)),k.info("SYSTEM","Starting worker daemon");let n=z0(__filename,e);n===void 0&&(k.error("SYSTEM","Failed to spawn worker daemon"),process.exit(1)),D0({pid:n,port:e,startedAt:new Date().toISOString()}),await vl(e,Xa(3e4))||(ji(),k.error("SYSTEM","Worker failed to start (health check timeout)"),process.exit(1)),k.info("SYSTEM","Worker started successfully"),process.exit(0)}case"stop":await rm(e),await tm(e,Xa(15e3))||k.warn("SYSTEM","Port did not free up after shutdown",{port:e}),ji(),k.info("SYSTEM","Worker stopped successfully"),process.exit(0);case"restart":{k.info("SYSTEM","Restarting worker"),await rm(e),await tm(e,Xa(15e3))||(k.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:e}),process.exit(1)),ji();let n=z0(__filename,e);n===void 0&&(k.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(1)),D0({pid:n,port:e,startedAt:new Date().toISOString()}),await vl(e,Xa(3e4))||(ji(),k.error("SYSTEM","Worker failed to restart"),process.exit(1)),k.info("SYSTEM","Worker restarted successfully"),process.exit(0)}case"status":{let r=await em(e),n=IO();r&&n?(console.log("Worker is running"),console.log(` PID: ${n.pid}`),console.log(` Port: ${n.port}`),console.log(` Started: ${n.startedAt}`)):console.log("Worker is not running"),process.exit(0)}case"cursor":{let r=process.argv[3],n=await p4(r,process.argv.slice(4));process.exit(n)}default:new Rg().start().catch(n=>{k.failure("SYSTEM","Worker failed to start",{},n),ji(),process.exit(1)})}}var Lfe=typeof require<"u"&&typeof module<"u"?require.main===module||!module.parent:Zfe.url===`file://${process.argv[1]}`||process.argv[1]?.endsWith("worker-service");Lfe&&qfe();0&&(module.exports={WorkerService,updateCursorContextForProject}); /*! Bundled license information: depd/index.js: diff --git a/plugin/ui/CLAUDE.md b/plugin/ui/CLAUDE.md new file mode 100644 index 00000000..83663b40 --- /dev/null +++ b/plugin/ui/CLAUDE.md @@ -0,0 +1,62 @@ + +# Recent Activity + + + +### Nov 5, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #3910 | 8:28 PM | โœ… | Refined stats counter visual design | ~343 | +| #3909 | " | ๐ŸŸฃ | Added clarifying descriptions to settings UI | ~335 | +| #3812 | 6:08 PM | ๐ŸŸฃ | Enhanced card typography and centered content layout | ~358 | + +### Nov 8, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #5133 | 7:29 PM | โœ… | Version 5.2.3 Released with Build Process | ~487 | +| #4916 | 1:49 PM | โš–๏ธ | Claude Mem Pro Premium Offering Implementation Plan Finalized | ~946 | +| #4902 | 1:35 PM | ๐ŸŸฃ | Claude Mem Pro Premium Project Initialization | ~679 | +| #4901 | 1:31 PM | โš–๏ธ | Premium claude-mem Project Architecture and Planning | ~797 | + +### Dec 1, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #18480 | 3:39 PM | โœ… | Successfully Rebuilt Plugin After Merge Conflict Resolution | ~294 | + +### Dec 4, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #20052 | 3:23 PM | โœ… | Built and deployed version 6.5.2 to marketplace | ~321 | + +### Dec 9, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22557 | 1:08 AM | โœ… | Build completed for version 7.0.3 | ~342 | + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23444 | 2:25 PM | ๐ŸŸฃ | Build Pipeline Execution Successful | ~293 | + +### Dec 16, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27554 | 4:48 PM | โœ… | Project built successfully with version 7.3.1 | ~306 | + +### Dec 26, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32983 | 11:04 PM | ๐ŸŸฃ | Complete build and deployment pipeline executed | ~260 | +| #32965 | 10:53 PM | ๐Ÿ”ต | Found plugin/ui/viewer.html - potential styling source | ~201 | +| #32966 | " | ๐Ÿ”ต | viewer.html contains modal CSS including modal-header and modal-body | ~218 | +| #32967 | " | ๐Ÿ”ต | ContextSettingsModal.tsx uses CSS classes defined in viewer.html | ~218 | +| #32968 | " | ๐Ÿ”ต | Need to add CSS for footer to viewer.html | ~223 | + \ No newline at end of file diff --git a/plugin/ui/assets/fonts/CLAUDE.md b/plugin/ui/assets/fonts/CLAUDE.md new file mode 100644 index 00000000..34ec652a --- /dev/null +++ b/plugin/ui/assets/fonts/CLAUDE.md @@ -0,0 +1,99 @@ + +# Recent Activity + + + +### Nov 7, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #4722 | 8:25 PM | โœ… | Rebuilt and deployed claude-mem plugin version 5.2.0 | ~324 | +| #4675 | 7:37 PM | โœ… | Claude-mem plugin v5.2.0 build and deployment | ~346 | + +### Nov 9, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #6126 | 10:55 PM | โœ… | Deployed claude-mem plugin to marketplace and restarted worker | ~332 | + +### Nov 11, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #7207 | 8:02 PM | โœ… | Built and Deployed claude-mem v5.5.1 to Marketplace | ~318 | + +### Nov 19, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #11816 | 3:41 PM | โœ… | Build and deployment of claude-mem version 6.0.9 completed successfully | ~421 | +| #11786 | 3:13 PM | โœ… | Build, sync, and restart worker after UI changes | ~329 | + +### Nov 21, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #13523 | 5:13 PM | โœ… | Claude-mem v6.0.9 built and deployed to marketplace | ~332 | +| #13143 | 1:13 AM | โœ… | Build and Sync of claude-mem Plugin Version 6.0.9 | ~365 | +| #13093 | 12:54 AM | โœ… | Build, Sync, and Restart Worker Service Deployment | ~371 | + +### Dec 2, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #19569 | 11:01 PM | โœ… | Version 6.4.9 Build and Deployment | ~340 | +| #19566 | 10:59 PM | โœ… | Build and Deploy Complete for claude-mem 6.4.9 | ~328 | +| #19497 | 10:37 PM | โœ… | Synced UX improvements to marketplace and restarted worker | ~295 | +| #19464 | 10:04 PM | โœ… | Built and deployed claude-mem version 6.4.9 | ~284 | + +### Dec 5, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #20972 | 11:41 PM | โœ… | Built and synced claude-mem v6.5.3 to marketplace | ~436 | +| #20923 | 11:14 PM | ๐ŸŸฃ | Built and deployed claude-mem v6.5.3 to marketplace | ~359 | + +### Dec 7, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #21627 | 9:20 PM | โœ… | Claude-Mem v6.5.3 Built and Deployed to Marketplace | ~378 | +| #21424 | 7:27 PM | โœ… | Full build and deployment of claude-mem 6.5.3 completed | ~361 | +| #21174 | 4:58 PM | โœ… | Build and deployment of claude-mem v6.5.3 | ~359 | + +### Dec 8, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22365 | 11:52 PM | โœ… | Build and sync version 7.0.0 to marketplace | ~392 | + +### Dec 10, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23405 | 2:14 PM | โœ… | Claude-mem v7.0.7 Build, Sync, and Worker Restart Completed | ~380 | + +### Dec 25, 2025 + +***** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32643 | 8:46 PM | โœ… | Plugin Build and Marketplace Synchronization | ~336 | + +### Dec 26, 2025 + +**monaspace-radon-var.woff** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32975 | 11:04 PM | โœ… | Build and sync pipeline completed successfully | ~208 | + \ No newline at end of file diff --git a/private/POSTMORTEM-worker-debug-failure.md b/private/POSTMORTEM-worker-debug-failure.md deleted file mode 100644 index a5fc6847..00000000 --- a/private/POSTMORTEM-worker-debug-failure.md +++ /dev/null @@ -1,109 +0,0 @@ -# Postmortem: Worker Debug Failure - 2025-11-17 - -## Incident Summary -Attempted to fix broken worker service. Worker was in crash loop with 225 restarts, failing with "MCP error -32000: Connection closed". Debug attempt failed and changes were reverted. - -## What Went Wrong - -### 1. **Jumped to Symptoms, Not Root Cause** -- Saw "MCP connection failed" errors in logs -- Immediately focused on MCP/Chroma connection code -- Never asked: "Why is this suddenly broken when it worked before?" -- Classic symptom chasing instead of root cause analysis - -### 2. **Ignored the Build Pipeline** -- Worker file wasn't in the expected location (`plugin/worker-service.cjs` vs `plugin/scripts/worker-service.cjs`) -- Build output existed but search server was producing corrupted/error output -- Never investigated: "Is the build system broken?" -- Should have compared built artifacts between main and current branch - -### 3. **Tried to Fix by Disabling Instead of Understanding** -- Final approach: comment out Chroma, comment out search server -- This is the opposite of debugging - it's just making things "work" by removing functionality -- User called this out as "duct tape around 5 things unrelated to the problem" -- Violated YAGNI/KISS by adding defensive complexity instead of fixing the actual issue - -### 4. **Didn't Compare Working vs Broken State** -- User specifically said "we fixed this before" -- Should have immediately: `git diff main src/services/worker-service.ts` -- Did this eventually but didn't follow through on the findings -- The diff showed only search-everything additions - the core worker code was UNCHANGED -- This should have been a huge red flag: "If the code is the same, why is it broken?" - -### 5. **Overcomplicated the Investigation** -- Started reading through ChromaSync implementation -- Traced through MCP connection code -- Analyzed startup sequences -- All of this was unnecessary if the root cause was a build issue - -## What Should Have Happened - -### Correct Debug Sequence: -1. โœ… Check worker status (`pm2 list`) - DONE -2. โœ… Check error logs - DONE -3. โŒ **Compare current code to main branch** - SKIPPED INITIALLY -4. โŒ **Check if built files are correct** - SKIPPED -5. โŒ **Test the build pipeline** - NEVER DONE -6. โŒ **Verify dependencies are installed** - NEVER CHECKED - -### The Real Questions: -- Is this a code change or a build issue? -- What changed between working state and broken state? -- Are the built artifacts corrupted? -- Is the search server build actually valid? -- Are there missing dependencies in plugin/scripts/node_modules? - -## Likely Root Causes (Untested) - -Based on evidence: -1. **Build artifacts are corrupted** - search-server.mjs threw syntax errors when run -2. **Node modules missing/outdated** - plugin/scripts/node_modules may be stale -3. **ESM/CJS bundling issue** - esbuild may have produced invalid output -4. **search-everything branch has broken build config** - scripts/build-hooks.js may have issues - -## Key Lessons - -### KISS/DRY/YAGNI Violations -- Added complexity (disabling features) instead of removing it -- Tried to work around symptoms instead of fixing root cause -- Ignored the principle: "If it worked before and code is same, it's environment/build" - -### Debugging Anti-Patterns -1. **Symptom Chasing**: Following error messages down rabbit holes -2. **Defensive Coding**: Commenting out "broken" features instead of fixing them -3. **Ignoring History**: Not comparing working vs broken states -4. **Build Blindness**: Assuming built artifacts are correct without verification - -### What Good Debugging Looks Like -1. Compare working state (main) vs broken state (current branch) -2. Identify what actually changed (code? deps? build?) -3. Test the simplest hypothesis first (build issue vs code issue) -4. Never disable features to "fix" things - that's not fixing - -## Action Items for Next Attempt - -### Before Writing Any Code: -- [ ] `git diff main` for all modified files -- [ ] Check if `plugin/scripts/` artifacts are valid JavaScript -- [ ] Compare build process: `npm run build` output on main vs current branch -- [ ] Verify `plugin/scripts/node_modules` exists and is current -- [ ] Test search-server.mjs in isolation: `node plugin/scripts/search-server.mjs` - -### If Build is Broken: -- [ ] Check scripts/build-hooks.js for recent changes -- [ ] Verify esbuild configuration -- [ ] Test build on main branch, then on current branch -- [ ] Don't modify source code until build is proven working - -### If Code is Broken: -- [ ] Create minimal repro (which specific change broke it?) -- [ ] Fix the actual bug, don't add workarounds -- [ ] Test the fix in isolation - -## Conclusion - -This failure exemplifies "debugging by making changes" instead of "debugging by understanding". The instinct to fix symptoms (MCP errors) instead of investigating root cause (why is it broken now?) led to wasted effort and ultimately no solution. - -The user's frustration was justified - I was adding defensive duct tape instead of finding and fixing the real problem. This is exactly what KISS/DRY/YAGNI principles are meant to prevent. - -**Next time: Compare, verify, understand, THEN fix. Never disable features to make errors go away.** diff --git a/private/docs/context/search-plan-nov-17.md b/private/docs/context/search-plan-nov-17.md deleted file mode 100644 index facd6065..00000000 --- a/private/docs/context/search-plan-nov-17.md +++ /dev/null @@ -1,119 +0,0 @@ - Unified Search API Consolidation Plan - - Overview - - Consolidate 10 search endpoints into 6 powerful, semantic endpoints with intelligent aliasing for backward compatibility. - - New Endpoint Structure - - 1. /search - Unified Cross-Type Search - - - Searches all record types (observations + sessions + prompts) via Chroma multi-collection search - - Optional type filter to narrow down - - Replaces: search_observations, search_sessions, search_user_prompts - - Params: query, response=[index|full], type, project, dateRange, limit, offset, orderBy - - 2. /timeline - Unified Timeline Tool - - - Supports both anchor-based and query-based modes via params - - If anchor โ†’ direct timeline lookup (like get_context_timeline) - - If query โ†’ search-first then timeline (like get_timeline_by_query) - - Params: anchor OR query, depth_before, depth_after, response, mode, project - - 3. /decisions - Decision Observations - - - Metadata-first search for type=decision observations - - Uses specialized search logic for precision - - Params: response, project, dateRange, limit, offset, orderBy - - 4. /changes - Change Observations - - - Metadata-first search for type=change observations - - Same pattern as /decisions - - 5. /how-it-works - How-It-Works Concept - - - Metadata-first search for concept=how-it-works observations - - Same pattern as concept endpoints - - 6. /contextualize - Intelligent Context Builder - - - Complex hybrid endpoint: - a. Get 7 latest decisions + 7 latest changes + 3 latest how-it-works - b. Find newest date across all results - c. Get timeline (7 before + 7 after) around that date - d. Merge & re-sort into single timeline (newest โ†’ oldest) - e. Return timeline + narratives of each concept's latest result - - Params: query (for contextualization), project - - Implementation Phases - - Phase 1: Core Unified Search (search-server.ts) - - - Create search tool with Chroma multi-collection query - - Add type filtering support - - Alias old tools: search_observations โ†’ search(type=['observations']) - - Phase 2: Unified Timeline (search-server.ts) - - - Merge get_context_timeline + get_timeline_by_query logic - - Support both anchor and query params (mutually exclusive) - - Alias old timeline tools to new unified implementation - - Phase 3: Specialized Concept Endpoints (search-server.ts) - - - Create decisions, changes, how_it_works tools - - Use metadata-first search strategy - - Update find_by_type and find_by_concept to call these internally - - Phase 4: Contextualize Endpoint (search-server.ts) - - - Implement parallel fetching (7 decisions, 7 changes, 3 how-it-works) - - Find newest date, get timeline around it - - Merge, re-sort, extract narratives - - Return structured response with timeline + narratives - - Phase 5: HTTP API Routes (worker-service.ts) - - - Add 6 new routes: /api/search, /api/timeline, /api/decisions, /api/changes, /api/how-it-works, /api/contextualize - - Update old routes to alias new implementations - - Maintain backward compatibility - - Phase 6: Chroma Multi-Collection Search (ChromaSync.ts) - - - Add searchAll() method to query all collections in parallel - - Include source collection metadata in results - - Merge and rank by similarity score - - Phase 7: SQLite Fallback (SessionSearch.ts) - - - Add searchAll() for FTS5 fallback when Chroma unavailable - - Merge results from all three FTS5 tables - - Phase 8: Documentation & Skill Updates - - - Update mem-search skill with new endpoints - - Update CLAUDE.md and README.md - - Add examples and migration guide - - Phase 9: Testing & Deployment - - - Unit tests for all new tools - - Integration tests for aliasing - - Manual testing via mem-search skill - - Build โ†’ sync โ†’ worker restart - - Key Design Decisions - - โœ… Aliasing Strategy: Old endpoints call new implementations internally (zero breaking changes) - โœ… Unified Search: Chroma multi-collection search for true cross-type queries - โœ… Flexible Timeline: Single tool supports both direct and query-based modes - โœ… Specialized Shortcuts: /decisions, /changes, /how-it-works for common queries - โœ… Intelligent Context: /contextualize auto-builds rich context with narratives - - Migration Impact - - - Users: Zero breaking changes, old endpoints work via aliasing - - Codebase: Simplified from 10 conceptual endpoints to 6 - - Performance: Improved via Chroma multi-collection search - - Developer UX: Cleaner, more semantic API \ No newline at end of file diff --git a/ragtime/CLAUDE.md b/ragtime/CLAUDE.md new file mode 100644 index 00000000..85dde79e --- /dev/null +++ b/ragtime/CLAUDE.md @@ -0,0 +1,115 @@ + +# Recent Activity + + + +### Dec 18, 2025 + +**README.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29649 | 6:08 PM | ๐ŸŸฃ | Created ragtime README with dual-license documentation | ~304 | + +**LICENSE** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29648 | 6:08 PM | โœ… | Added PolyForm Non-commercial LICENSE to ragtime | ~172 | + +### Dec 19, 2025 + +**context-builder.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30238 | 8:44 PM | ๐Ÿ”ต | Context builder creates investigation-style prompts from observations and summaries | ~441 | +| #30215 | 8:38 PM | ๐ŸŸฃ | RAGTIME Agent SDK Plugin Loading Implementation | ~388 | +| #30194 | 8:34 PM | ๐ŸŸฃ | Progressive Context Builder for Email Analysis | ~400 | +| #30139 | 8:18 PM | ๐ŸŸฃ | RAGTIME Plugin Loading Implementation Committed | ~382 | +| #30138 | " | โœ… | RAGTIME Scripts Reorganized into Dedicated Directory | ~254 | + +**email-loader.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30235 | 8:43 PM | ๐Ÿ”ต | Email loader supports JSONL, index.json, and legacy JSON formats | ~393 | +| #30230 | 8:41 PM | ๐Ÿ”ต | Email Loader Multi-Format Parser Architecture | ~362 | +| #30193 | 8:33 PM | ๐ŸŸฃ | Multi-Format Email Corpus Loader | ~347 | + +**ragtime.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30234 | 8:43 PM | ๐Ÿ”ต | RAGTIME uses Agent SDK query API with plugin loading | ~359 | +| #30228 | 8:41 PM | ๐Ÿ”ต | Per-Session Mode System Integration Architecture Mapped | ~735 | +| #30227 | " | ๐ŸŸฃ | RAGTIME Email Processing with Temp File Strategy | ~463 | +| #30221 | 8:39 PM | ๐ŸŸฃ | Email Investigation Mode for RAGTIME | ~502 | +| #30214 | 8:38 PM | ๐Ÿ”ต | RAGTIME Plugin Configuration Pattern | ~303 | +| #30189 | 8:33 PM | ๐Ÿ”ต | RAGTIME Email Processor Core Implementation | ~420 | +| #30143 | 8:20 PM | โœ… | Modified RAGTIME to write emails to temp files for Read tool access | ~319 | +| #30141 | 8:19 PM | โš–๏ธ | Simplified RAGTIME Prompt to Minimal Recursive Form | ~443 | +| #30136 | 8:17 PM | ๐Ÿ”„ | Switched Email Processor from Session API to Query API | ~334 | +| #30134 | 8:16 PM | โœ… | Switched RAGTIME from V2 unstable_v2_createSession to V1 query API | ~377 | +| #30126 | 8:15 PM | ๐Ÿ”„ | RAGTIME Migrated from Agent SDK v1 query() to v2 createSession() API | ~413 | +| #30125 | " | ๐Ÿ”„ | Ragtime Scripts Moved to Dedicated Ragtime Directory | ~230 | + +**README.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30195 | 8:34 PM | ๐Ÿ”ต | RAGTIME Module Licensed Under PolyForm Noncommercial | ~232 | +| #30122 | 8:14 PM | ๐Ÿ”ต | RAGTIME README Content Defines Noncommercial License Boundaries | ~380 | + +**LICENSE** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30120 | 8:14 PM | ๐Ÿ”ต | Complete RAGTIME Dual-License Implementation Timeline | ~513 | +| #30119 | 8:13 PM | ๐Ÿ”ต | RAGTIME Dual-License Architecture with PolyForm Non-Commercial | ~345 | + +### Dec 20, 2025 + +**ragtime.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31289 | 9:40 PM | ๐Ÿ”ต | Memory System Contains 50 Architectural Decisions Across Multiple Initiatives | ~419 | +| #30377 | 4:04 PM | โœ… | Added debugging output to RAGTIME email processor | ~327 | +| #30376 | 4:03 PM | ๐Ÿ”ต | RAGTIME email investigation script architecture | ~437 | +| #30349 | 3:50 PM | ๐Ÿ”„ | ProcessEmail Function Simplified to Use File Path Prompt | ~304 | +| #30348 | " | ๐Ÿ”„ | Ragtime Script Refactored to Use Directory-Based Markdown Emails | ~298 | +| #30343 | 3:43 PM | โœ… | Removed Progress Logging from Email Processing Loop | ~233 | +| #32278 | 3:37 PM | โœ… | Project name configured for email investigation | ~197 | +| #30253 | 3:17 PM | ๐Ÿ”ต | Agent SDK Integration Throughout Codebase | ~402 | +| #32277 | 8:04 PM | ๐Ÿ”ต | Email Processing Pipeline in Ragtime | ~308 | + +**export-to-markdown.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30345 | 3:46 PM | ๐ŸŸฃ | Email to Markdown Export Script | ~182 | + +**email-loader.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30344 | 3:44 PM | ๐Ÿ”ต | Email Loader Supports Three Format Types | ~388 | +| #30246 | 3:12 PM | ๐Ÿ”ต | Email Corpus Loader With Multiple Format Support | ~502 | + +### Dec 22, 2025 + +**README.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31865 | 6:56 PM | โœ… | ้–‹็™บใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใฎใ‚ฏใƒชใƒผใƒณใ‚ขใƒƒใƒ—ใ‚’ใ‚ณใƒŸใƒƒใƒˆ | ~150 | +| #31864 | " | โœ… | ่จˆ็”ปใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใจๅˆ†ๆžใƒ•ใ‚กใ‚คใƒซใฎๅ‰Š้™ค | ~142 | +| #31863 | " | โœ… | Ragtime READMEใซๆœชๅฎŸ่ฃ…็Šถๆ…‹ใจๅ‰ๆๆกไปถใ‚’ๆ–‡ๆ›ธๅŒ– | ~181 | +| #31861 | 6:55 PM | ๐Ÿ”ต | ragtimeใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใฎใƒฉใ‚คใ‚ปใƒณใ‚นๆง‹้€ ใฎ็ขบ่ช | ~126 | +| #31858 | " | โœ… | ่จˆ็”ปใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใฎๅ‰Š้™คใจragtimeใ‚นใ‚ฟใƒ–ใฎๆ•ด็† | ~110 | + +### Dec 24, 2025 + +**ragtime.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32211 | 8:17 PM | ๐Ÿ”ต | RAGTIME batch processing script for sequential file analysis | ~421 | +| #32310 | 3:54 PM | ๐Ÿ”ด | Fixed email processing order in ragtime script | ~274 | + +### Dec 25, 2025 + +**ragtime.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32456 | 5:41 PM | โœ… | Completed merge of main branch into feature/titans-phase1-3 | ~354 | + \ No newline at end of file diff --git a/scripts/CLAUDE.md b/scripts/CLAUDE.md new file mode 100644 index 00000000..60fe84b2 --- /dev/null +++ b/scripts/CLAUDE.md @@ -0,0 +1,120 @@ + +# Recent Activity + + + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23818 | 10:52 PM | โœ… | Build Script Updated to Bundle Worker CLI with Bun Shebang | ~225 | +| #23817 | " | ๐Ÿ”ต | Build Script Handles Hook Bundling; Worker Shebang Currently Uses Node | ~323 | +| #23793 | 10:14 PM | ๐Ÿ”„ | Smart Install Script Simplified for Clarity | ~479 | +| #23667 | 8:35 PM | ๐Ÿ”ต | Export-Memories Script Structure and Database Query Pattern | ~287 | +| #23649 | 8:13 PM | ๐Ÿ”ด | Fixed Sessions Array Type in Export Script | ~189 | +| #23648 | " | ๐Ÿ”ด | Applied Type Annotations to Export Script Variables | ~305 | +| #23647 | 8:12 PM | ๐Ÿ”ด | Improved Type Safety in Export Script | ~352 | +| #23646 | " | ๐Ÿ”ด | Fixed Variable Shadowing in Export Script | ~234 | +| #23645 | " | ๐Ÿ”ต | Export Script Has Variable Shadowing Issue | ~234 | +| #23644 | 8:11 PM | ๐Ÿ”ด | Added Database Existence Check to Export Script | ~245 | +| #23643 | " | ๐Ÿ”ต | Export Script Opens Database Without Existence Check | ~238 | +| #23642 | " | ๐Ÿ”ด | Fixed Export Script Hardcoded Port - Now Reads from User Settings | ~244 | +| #23641 | " | โœ… | Added Settings Import to Export Script | ~189 | +| #23640 | " | ๐Ÿ”ต | Export Script Has Hardcoded Port Parameter | ~213 | +| #23639 | " | ๐Ÿ”ด | Fixed Import Script insertSession.run() Call Parameters | ~218 | + +### Dec 11, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24051 | 2:54 PM | ๐ŸŸฃ | Auto-Restart Worker After Marketplace Sync | ~384 | +| #24050 | " | โœ… | Build Worker Binary Script Made Executable | ~225 | +| #24049 | 2:53 PM | ๐ŸŸฃ | Windows Binary Build Script Created | ~362 | +| #24048 | " | โœ… | MCP Server Shebang Updated to Bun Runtime | ~342 | +| #24047 | " | โœ… | Hook Scripts Shebang Updated to Bun Runtime | ~305 | +| #24046 | " | โœ… | Worker Service Shebang Updated to Bun Runtime | ~306 | +| #24045 | 2:52 PM | ๐Ÿ”ต | Sync Marketplace Script Analysis for Auto-Restart Integration | ~366 | +| #24043 | " | ๐Ÿ”ต | Build Script Analysis for Phase 4 Updates | ~380 | +| #23922 | 1:34 PM | ๐Ÿ”ต | Three Node Shebangs Found in Build Configuration | ~349 | +| #23917 | 1:33 PM | ๐Ÿ”ต | Worker Service Build Configuration Current State | ~365 | + +### Dec 12, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24639 | 10:46 PM | ๐Ÿ”ด | Enhanced UV Detection to Support Fresh Installs Before PATH Reload | ~326 | +| #24638 | " | ๐Ÿ”ด | Enhanced Bun Detection to Support Fresh Installs Before PATH Reload | ~338 | +| #24637 | " | ๐Ÿ”ต | Bun Installation Detection Using spawnSync | ~288 | +| #24636 | " | ๐Ÿ”ต | Duplicate Smart Install Scripts in Project Structure | ~288 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26768 | 11:31 PM | ๐Ÿ”ต | Build Script Generates Empty plugin/package.json Without Postinstall Hook | ~492 | +| #26767 | " | ๐Ÿ”ต | Build Script Generates Empty Plugin Package.json Without Postinstall Hook | ~523 | +| #26766 | 11:30 PM | โš–๏ธ | Root Cause Identified: Missing Post-Install Worker Restart Trigger in Plugin Update Flow | ~604 | +| #26765 | " | ๐Ÿ”ต | Explore Agent Confirms Root Cause: No Proactive Worker Restart After Plugin Updates | ~613 | +| #25815 | 5:31 PM | ๐Ÿ”ต | Comprehensive MCP Server and SKILL.md Structure Analysis | ~575 | +| #25809 | 5:30 PM | ๐Ÿ”ต | Build System Architecture Using esbuild for Component Bundling | ~484 | + +### Dec 16, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27725 | 5:45 PM | ๐Ÿ”ต | Export script uses hybrid search API to export observations, sessions, summaries, and prompts | ~335 | +| #27705 | 5:38 PM | โœ… | Switched import-memories.ts from better-sqlite3 to bun:sqlite | ~212 | + +### Dec 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29052 | 10:02 PM | ๐Ÿ”ต | Sync Script Manages Multiple Plugin Installation Locations | ~394 | + +### Dec 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29565 | 5:28 PM | โœ… | Output File Changed from code.yaml to code.json | ~234 | +| #29564 | " | ๐Ÿ”„ | Script Refactored to Generate JSON Instead of YAML | ~332 | + +### Dec 19, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30109 | 8:11 PM | ๐Ÿ”ต | RAGTIME Script Uses Agent SDK Without Plugin Loading | ~490 | +| #30076 | 8:05 PM | ๐Ÿ”ต | RAGTIME Script Uses Agent SDK Query Function for Email Processing | ~389 | + +### Dec 20, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30340 | 3:42 PM | ๐Ÿ”„ | Relocated simple ragtime.ts to ragtime folder | ~219 | +| #30337 | 3:40 PM | ๐Ÿ”ต | Simplified Ragtime Runner in Scripts Directory | ~456 | +| #30256 | 3:18 PM | ๐Ÿ”ต | Plugin Path Resolution Strategy | ~386 | +| #30250 | 3:17 PM | ๐ŸŸฃ | RAGTIME Email Investigation Runner Implemented | ~503 | + +### Dec 26, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32983 | 11:04 PM | ๐ŸŸฃ | Complete build and deployment pipeline executed | ~260 | + +### Dec 28, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33261 | 2:58 PM | ๐Ÿ”„ | Build script cleanup removes obsolete worker-wrapper and worker-cli build steps | ~335 | + +### Dec 30, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34460 | 2:23 PM | ๐Ÿ”ต | Build System Architecture Using ESBuild | ~492 | + +### Jan 4, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36765 | 12:41 AM | ๐Ÿ”ต | Smart Install Script Path Detection Logic | ~405 | + \ No newline at end of file diff --git a/scripts/anti-pattern-test/CLAUDE.md b/scripts/anti-pattern-test/CLAUDE.md index d589e239..2427c134 100644 --- a/scripts/anti-pattern-test/CLAUDE.md +++ b/scripts/anti-pattern-test/CLAUDE.md @@ -135,3 +135,33 @@ These files are **NEVER** allowed to have catch-and-continue: - `worker-service.ts` - Core service errors must be visible On critical paths, prefer **NO TRY-CATCH** and let errors propagate naturally. + + + +# Recent Activity + + + +### Jan 2, 2026 + +**detect-error-handling-antipatterns.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36018 | 9:12 PM | ๐Ÿ”ต | Anti-pattern detection scan shows progress | ~301 | +| #36012 | 9:09 PM | ๐Ÿ”ต | Error Handling Anti-Pattern Detection Baseline | ~222 | +| #36011 | 8:55 PM | ๐Ÿ”„ | Simplified anti-pattern severity levels | ~238 | +| #35810 | 2:15 PM | ๐Ÿ”„ | Relocated Error Handling Detector Script | ~254 | + +**CLAUDE.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35901 | 2:49 PM | ๐Ÿ”ต | PR #525 File Changes Summary | ~376 | +| #35812 | 2:15 PM | โœ… | Updated test script path in CLAUDE.md after file relocation | ~298 | +| #35811 | " | โœ… | Created Error Handling Rules Documentation in Test Directory | ~315 | +| #35808 | " | โœ… | Moved CLAUDE.md into anti-pattern-test subfolder | ~140 | + +**claude.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35807 | 2:15 PM | โœ… | Reorganized anti-pattern test files into dedicated subfolder | ~265 | + \ No newline at end of file diff --git a/scripts/bug-report/CLAUDE.md b/scripts/bug-report/CLAUDE.md new file mode 100644 index 00000000..99046892 --- /dev/null +++ b/scripts/bug-report/CLAUDE.md @@ -0,0 +1,15 @@ + +# Recent Activity + + + +### Dec 30, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34517 | 2:34 PM | ๐Ÿ”ต | Bug Report Script Successfully Migrated to V2 Pattern | ~388 | +| #34513 | 2:33 PM | โœ… | Phase 4 Utility Scripts Migration Committed and Pushed | ~437 | +| #34512 | " | โœ… | Bug Report Script Migrated to V2 Prompt API | ~524 | +| #34509 | 2:32 PM | ๐Ÿ”ต | Bug Report Script Still Uses V1 SDK Pattern | ~499 | +| #34457 | 2:21 PM | ๐Ÿ”ต | Bug Report Script Using V2 Prompt API | ~325 | + \ No newline at end of file diff --git a/scripts/regenerate-claude-md.ts b/scripts/regenerate-claude-md.ts new file mode 100644 index 00000000..b032d65f --- /dev/null +++ b/scripts/regenerate-claude-md.ts @@ -0,0 +1,562 @@ +#!/usr/bin/env bun +/** + * Regenerate CLAUDE.md files for folders in the current project + * + * Usage: + * bun scripts/regenerate-claude-md.ts [--dry-run] [--clean] + * + * Options: + * --dry-run Show what would be done without writing files + * --clean Remove auto-generated CLAUDE.md files instead of regenerating + * + * Behavior: + * - Scopes to current working directory (not entire database history) + * - Uses git ls-files to respect .gitignore (skips node_modules, .git, etc.) + * - Only processes folders that exist within the current project + * - Filters database to current project observations only + */ + +import { Database } from 'bun:sqlite'; +import path from 'path'; +import os from 'os'; +import { existsSync, mkdirSync, writeFileSync, readFileSync, renameSync, unlinkSync, readdirSync } from 'fs'; +import { execSync } from 'child_process'; +import { SettingsDefaultsManager } from '../src/shared/SettingsDefaultsManager.js'; + +const DB_PATH = path.join(os.homedir(), '.claude-mem', 'claude-mem.db'); +const SETTINGS_PATH = path.join(os.homedir(), '.claude-mem', 'settings.json'); +const settings = SettingsDefaultsManager.loadFromFile(SETTINGS_PATH); +const OBSERVATION_LIMIT = parseInt(settings.CLAUDE_MEM_CONTEXT_OBSERVATIONS, 10) || 50; + +interface ObservationRow { + id: number; + title: string | null; + subtitle: string | null; + narrative: string | null; + facts: string | null; + type: string; + created_at: string; + created_at_epoch: number; + files_modified: string | null; + files_read: string | null; + project: string; + discovery_tokens: number | null; +} + +// Import shared formatting utilities +import { formatTime, groupByDate } from '../src/shared/timeline-formatting.js'; + +// Type icon map (matches ModeManager) +const TYPE_ICONS: Record = { + 'bugfix': '๐Ÿ”ด', + 'feature': '๐ŸŸฃ', + 'refactor': '๐Ÿ”„', + 'change': 'โœ…', + 'discovery': '๐Ÿ”ต', + 'decision': 'โš–๏ธ', + 'session': '๐ŸŽฏ', + 'prompt': '๐Ÿ’ฌ' +}; + +function getTypeIcon(type: string): string { + return TYPE_ICONS[type] || '๐Ÿ“'; +} + +function estimateTokens(obs: ObservationRow): number { + const size = (obs.title?.length || 0) + + (obs.subtitle?.length || 0) + + (obs.narrative?.length || 0) + + (obs.facts?.length || 0); + return Math.ceil(size / 4); +} + +/** + * Get tracked folders using git ls-files + * This respects .gitignore and only returns folders within the project + */ +function getTrackedFolders(workingDir: string): Set { + const folders = new Set(); + + try { + // Get all tracked files using git ls-files + const output = execSync('git ls-files', { + cwd: workingDir, + encoding: 'utf-8', + maxBuffer: 50 * 1024 * 1024 // 50MB buffer for large repos + }); + + const files = output.trim().split('\n').filter(f => f); + + for (const file of files) { + // Get the absolute path, then extract directory + const absPath = path.join(workingDir, file); + let dir = path.dirname(absPath); + + // Add all parent directories up to (but not including) the working dir + while (dir.length > workingDir.length && dir.startsWith(workingDir)) { + folders.add(dir); + dir = path.dirname(dir); + } + } + } catch (error) { + console.error('Warning: git ls-files failed, falling back to directory walk'); + // Fallback: walk directories but skip common ignored patterns + walkDirectoriesWithIgnore(workingDir, folders); + } + + return folders; +} + +/** + * Fallback directory walker that skips common ignored patterns + */ +function walkDirectoriesWithIgnore(dir: string, folders: Set, depth: number = 0): void { + if (depth > 10) return; // Prevent infinite recursion + + const ignorePatterns = [ + 'node_modules', '.git', '.next', 'dist', 'build', '.cache', + '__pycache__', '.venv', 'venv', '.idea', '.vscode', 'coverage', + '.claude-mem', '.open-next', '.turbo' + ]; + + try { + const entries = readdirSync(dir, { withFileTypes: true }); + for (const entry of entries) { + if (!entry.isDirectory()) continue; + if (ignorePatterns.includes(entry.name)) continue; + if (entry.name.startsWith('.') && entry.name !== '.claude') continue; + + const fullPath = path.join(dir, entry.name); + folders.add(fullPath); + walkDirectoriesWithIgnore(fullPath, folders, depth + 1); + } + } catch { + // Ignore permission errors + } +} + +/** + * Check if a file is a direct child of a folder (not in a subfolder) + * @param filePath - File path like "src/services/foo.ts" + * @param folderPath - Folder path like "src/services" + * @returns true if file is directly in folder, false if in a subfolder + */ +function isDirectChild(filePath: string, folderPath: string): boolean { + if (!filePath.startsWith(folderPath + '/')) return false; + const remainder = filePath.slice(folderPath.length + 1); + // If remainder contains a slash, it's in a subfolder + return !remainder.includes('/'); +} + +/** + * Check if an observation has any files that are direct children of the folder + */ +function hasDirectChildFile(obs: ObservationRow, folderPath: string): boolean { + const checkFiles = (filesJson: string | null): boolean => { + if (!filesJson) return false; + try { + const files = JSON.parse(filesJson); + if (Array.isArray(files)) { + return files.some(f => isDirectChild(f, folderPath)); + } + } catch {} + return false; + }; + + return checkFiles(obs.files_modified) || checkFiles(obs.files_read); +} + +/** + * Query observations for a specific folder + * folderPath is a relative path from the project root (e.g., "src/services") + * Only returns observations with files directly in the folder (not in subfolders) + */ +function findObservationsByFolder(db: Database, relativeFolderPath: string, project: string, limit: number): ObservationRow[] { + // Query more results than needed since we'll filter some out + const queryLimit = limit * 3; + + const sql = ` + 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 ? + `; + + // Files in DB are stored as relative paths like "src/services/foo.ts" + // Match any file that starts with this folder path (we'll filter to direct children below) + const likePattern = `%"${relativeFolderPath}/%`; + const allMatches = db.prepare(sql).all(project, likePattern, likePattern, queryLimit) as ObservationRow[]; + + // Filter to only observations with direct child files (not in subfolders) + return allMatches.filter(obs => hasDirectChildFile(obs, relativeFolderPath)).slice(0, limit); +} + +/** + * Extract relevant file from an observation for display + * Only returns files that are direct children of the folder (not in subfolders) + * @param obs - The observation row + * @param relativeFolder - Relative folder path (e.g., "src/services") + */ +function extractRelevantFile(obs: ObservationRow, relativeFolder: string): string { + // Try files_modified first - only direct children + if (obs.files_modified) { + try { + const modified = JSON.parse(obs.files_modified); + if (Array.isArray(modified) && modified.length > 0) { + for (const file of modified) { + if (isDirectChild(file, relativeFolder)) { + // Get just the filename (no path since it's a direct child) + return path.basename(file); + } + } + } + } catch {} + } + + // Fall back to files_read - only direct children + if (obs.files_read) { + try { + const read = JSON.parse(obs.files_read); + if (Array.isArray(read) && read.length > 0) { + for (const file of read) { + if (isDirectChild(file, relativeFolder)) { + return path.basename(file); + } + } + } + } catch {} + } + + return 'General'; +} + +/** + * Format observations for CLAUDE.md content + */ +function formatObservationsForClaudeMd(observations: ObservationRow[], folderPath: string): string { + const lines: string[] = []; + lines.push('# Recent Activity'); + lines.push(''); + lines.push(''); + lines.push(''); + + if (observations.length === 0) { + lines.push('*No recent activity*'); + return lines.join('\n'); + } + + const byDate = groupByDate(observations, obs => obs.created_at); + + for (const [day, dayObs] of byDate) { + lines.push(`### ${day}`); + lines.push(''); + + const byFile = new Map(); + for (const obs of dayObs) { + const file = extractRelevantFile(obs, folderPath); + if (!byFile.has(file)) byFile.set(file, []); + byFile.get(file)!.push(obs); + } + + for (const [file, fileObs] of byFile) { + lines.push(`**${file}**`); + lines.push('| ID | Time | T | Title | Read |'); + lines.push('|----|------|---|-------|------|'); + + let lastTime = ''; + for (const obs of fileObs) { + const time = formatTime(obs.created_at_epoch); + const timeDisplay = time === lastTime ? '"' : time; + lastTime = time; + + const icon = getTypeIcon(obs.type); + const title = obs.title || 'Untitled'; + const tokens = estimateTokens(obs); + + lines.push(`| #${obs.id} | ${timeDisplay} | ${icon} | ${title} | ~${tokens} |`); + } + + lines.push(''); + } + } + + return lines.join('\n').trim(); +} + + +/** + * Write CLAUDE.md file with tagged content preservation + */ +function writeClaudeMdToFolder(folderPath: string, newContent: string): void { + const claudeMdPath = path.join(folderPath, 'CLAUDE.md'); + const tempFile = `${claudeMdPath}.tmp`; + + mkdirSync(folderPath, { recursive: true }); + + let existingContent = ''; + if (existsSync(claudeMdPath)) { + existingContent = readFileSync(claudeMdPath, 'utf-8'); + } + + const startTag = ''; + const endTag = ''; + + let finalContent: string; + if (!existingContent) { + finalContent = `${startTag}\n${newContent}\n${endTag}`; + } else { + const startIdx = existingContent.indexOf(startTag); + const endIdx = existingContent.indexOf(endTag); + + if (startIdx !== -1 && endIdx !== -1) { + finalContent = existingContent.substring(0, startIdx) + + `${startTag}\n${newContent}\n${endTag}` + + existingContent.substring(endIdx + endTag.length); + } else { + finalContent = existingContent + `\n\n${startTag}\n${newContent}\n${endTag}`; + } + } + + writeFileSync(tempFile, finalContent); + renameSync(tempFile, claudeMdPath); +} + +/** + * Clean up auto-generated CLAUDE.md files + * + * For each file with tags: + * - Strip the tagged section + * - If empty after stripping โ†’ delete the file + * - If has remaining content โ†’ save the stripped version + */ +function cleanupAutoGeneratedFiles(workingDir: string, dryRun: boolean): void { + console.log('=== CLAUDE.md Cleanup Mode ===\n'); + console.log(`Scanning ${workingDir} for CLAUDE.md files with auto-generated content...\n`); + + const filesToProcess: string[] = []; + + // Walk directories to find CLAUDE.md files + function walkForClaudeMd(dir: string): void { + const ignorePatterns = ['node_modules', '.git', '.next', 'dist', 'build']; + + try { + const entries = readdirSync(dir, { withFileTypes: true }); + for (const entry of entries) { + const fullPath = path.join(dir, entry.name); + + if (entry.isDirectory()) { + if (!ignorePatterns.includes(entry.name)) { + walkForClaudeMd(fullPath); + } + } else if (entry.name === 'CLAUDE.md') { + // Check if file contains auto-generated content + try { + const content = readFileSync(fullPath, 'utf-8'); + if (content.includes('')) { + filesToProcess.push(fullPath); + } + } catch { + // Skip files we can't read + } + } + } + } catch { + // Ignore permission errors + } + } + + walkForClaudeMd(workingDir); + + if (filesToProcess.length === 0) { + console.log('No CLAUDE.md files with auto-generated content found.'); + return; + } + + console.log(`Found ${filesToProcess.length} CLAUDE.md files with auto-generated content:\n`); + + let deletedCount = 0; + let cleanedCount = 0; + let errorCount = 0; + + for (const file of filesToProcess) { + const relativePath = path.relative(workingDir, file); + + try { + const content = readFileSync(file, 'utf-8'); + + // Strip the claude-mem-context tagged section + const stripped = content.replace(/[\s\S]*?<\/claude-mem-context>/g, '').trim(); + + if (stripped === '') { + // Empty after stripping โ†’ delete + if (dryRun) { + console.log(` [DRY-RUN] Would delete (empty): ${relativePath}`); + } else { + unlinkSync(file); + console.log(` Deleted (empty): ${relativePath}`); + } + deletedCount++; + } else { + // Has content โ†’ write stripped version + if (dryRun) { + console.log(` [DRY-RUN] Would clean: ${relativePath}`); + } else { + writeFileSync(file, stripped); + console.log(` Cleaned: ${relativePath}`); + } + cleanedCount++; + } + } catch (error) { + console.error(` Error processing ${relativePath}: ${error}`); + errorCount++; + } + } + + console.log('\n=== Summary ==='); + console.log(`Deleted (empty): ${deletedCount}`); + console.log(`Cleaned: ${cleanedCount}`); + console.log(`Errors: ${errorCount}`); + + if (dryRun) { + console.log('\nRun without --dry-run to actually process files.'); + } +} + +/** + * Regenerate CLAUDE.md for a single folder + * @param absoluteFolder - Absolute path for writing files + * @param relativeFolder - Relative path for DB queries (matches storage format) + */ +function regenerateFolder( + db: Database, + absoluteFolder: string, + relativeFolder: string, + project: string, + dryRun: boolean +): { success: boolean; observationCount: number; error?: string } { + try { + // Query using relative path (matches DB storage format) + const observations = findObservationsByFolder(db, relativeFolder, project, OBSERVATION_LIMIT); + + if (observations.length === 0) { + return { success: false, observationCount: 0, error: 'No observations for folder' }; + } + + if (dryRun) { + return { success: true, observationCount: observations.length }; + } + + // Format using relative path for display, write to absolute path + const formatted = formatObservationsForClaudeMd(observations, relativeFolder); + writeClaudeMdToFolder(absoluteFolder, formatted); + + return { success: true, observationCount: observations.length }; + } catch (error) { + return { success: false, observationCount: 0, error: String(error) }; + } +} + +/** + * Main function + */ +async function main() { + const args = process.argv.slice(2); + const dryRun = args.includes('--dry-run'); + const cleanMode = args.includes('--clean'); + + const workingDir = process.cwd(); + + // Handle cleanup mode + if (cleanMode) { + cleanupAutoGeneratedFiles(workingDir, dryRun); + return; + } + + console.log('=== CLAUDE.md Regeneration Script ===\n'); + console.log(`Working directory: ${workingDir}`); + + // Determine project identifier (matches how hooks determine project - uses folder name) + const project = path.basename(workingDir); + console.log(`Project: ${project}\n`); + + // Get tracked folders using git ls-files + console.log('Discovering folders (using git ls-files to respect .gitignore)...'); + const trackedFolders = getTrackedFolders(workingDir); + + if (trackedFolders.size === 0) { + console.log('No folders found in project.'); + process.exit(0); + } + + console.log(`Found ${trackedFolders.size} folders in project.\n`); + + // Open database + if (!existsSync(DB_PATH)) { + console.log('Database not found. No observations to process.'); + process.exit(0); + } + + console.log('Opening database...'); + const db = new Database(DB_PATH, { readonly: true, create: false }); + + if (dryRun) { + console.log('[DRY RUN] Would regenerate the following folders:\n'); + } + + // Process each folder + let successCount = 0; + let skipCount = 0; + let errorCount = 0; + + const foldersArray = Array.from(trackedFolders).sort(); + + for (let i = 0; i < foldersArray.length; i++) { + const absoluteFolder = foldersArray[i]; + const progress = `[${i + 1}/${foldersArray.length}]`; + const relativeFolder = path.relative(workingDir, absoluteFolder); + + if (dryRun) { + // Query using relative path (matches DB storage format) + const observations = findObservationsByFolder(db, relativeFolder, project, OBSERVATION_LIMIT); + if (observations.length > 0) { + console.log(`${progress} ${relativeFolder} (${observations.length} obs)`); + successCount++; + } else { + skipCount++; + } + continue; + } + + const result = regenerateFolder(db, absoluteFolder, relativeFolder, project, dryRun); + + if (result.success) { + console.log(`${progress} ${relativeFolder} - ${result.observationCount} obs`); + successCount++; + } else if (result.error?.includes('No observations')) { + skipCount++; + } else { + console.log(`${progress} ${relativeFolder} - ERROR: ${result.error}`); + errorCount++; + } + } + + db.close(); + + // Summary + console.log('\n=== Summary ==='); + console.log(`Total folders scanned: ${foldersArray.length}`); + console.log(`With observations: ${successCount}`); + console.log(`No observations: ${skipCount}`); + console.log(`Errors: ${errorCount}`); + + if (dryRun) { + console.log('\nRun without --dry-run to actually regenerate files.'); + } +} + +main().catch(error => { + console.error('Fatal error:', error); + process.exit(1); +}); diff --git a/scripts/translate-readme/CLAUDE.md b/scripts/translate-readme/CLAUDE.md new file mode 100644 index 00000000..20135a3c --- /dev/null +++ b/scripts/translate-readme/CLAUDE.md @@ -0,0 +1,145 @@ + +# Recent Activity + + + +### Dec 12, 2025 + +**cli.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24246 | 2:43 AM | ๐ŸŸฃ | Comprehensive Translation System Added with 22 Language READMEs | ~386 | +| #24235 | 2:32 AM | ๐Ÿ”ต | Translation CLI Script Structure | ~267 | +| #24215 | 1:49 AM | ๐ŸŸฃ | Wired parallel argument to translateReadme function call | ~290 | +| #24214 | " | ๐ŸŸฃ | Implemented --parallel argument parsing with validation | ~271 | +| #24213 | " | ๐ŸŸฃ | Initialized parallel default value in parseArgs | ~212 | + +**index.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24236 | 2:33 AM | ๐Ÿ”ต | Translation Core Logic and Output Directory Handling | ~288 | +| #24219 | 1:50 AM | ๐ŸŸฃ | Implemented concurrent translation processing with parallelism control | ~461 | +| #24218 | " | ๐ŸŸฃ | Extracted parallel parameter in translateReadme function | ~259 | +| #24217 | " | ๐Ÿ”ต | Current translateReadme uses sequential for-loop processing | ~312 | +| #24216 | " | ๐ŸŸฃ | Added parallel option to TranslationOptions interface | ~262 | + +### Dec 13, 2025 + +**examples.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25321 | 9:12 PM | ๐Ÿ”ต | Console.error Usage Found in 29 Files | ~366 | + +### Dec 14, 2025 + +**cli.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25670 | 3:42 PM | ๐Ÿ”ต | Translation System Supports 38 Languages | ~259 | +| #25668 | 3:40 PM | ๐ŸŸฃ | Translation system enhancement with 226 net line addition | ~298 | +| #25667 | " | ๐Ÿ”ต | Translation script CLI interface and authentication | ~330 | +| #25664 | 3:39 PM | ๐Ÿ”ต | Modified files from PR-250 cherry-pick | ~238 | +| #25663 | " | ๐Ÿ”ต | Translation script structure with CLI and examples | ~277 | + +**translate-readme** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25660 | 3:38 PM | โœ… | Cherry-picked translation script from PR-250 branch | ~192 | + +### Dec 15, 2025 + +**index.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27161 | 8:08 PM | ๐Ÿ”ต | README Translation Script Architecture | ~420 | +| #27158 | " | ๐Ÿ”ต | Complete API Key Authentication Flow Traced Through System | ~460 | + +**examples.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27149 | 8:07 PM | ๐Ÿ”ต | API Key Management Implementation Details | ~302 | +| #27146 | " | ๐Ÿ”ต | ANTHROPIC_API_KEY Referenced Across Documentation and Scripts | ~254 | + +### Dec 18, 2025 + +**README.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29244 | 12:15 AM | ๐Ÿ”ต | Identified YAML configuration files in claude-mem project | ~164 | + +### Dec 20, 2025 + +**index.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30253 | 3:17 PM | ๐Ÿ”ต | Agent SDK Integration Throughout Codebase | ~402 | + +### Dec 21, 2025 + +**cli.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31753 | 11:01 PM | ๐Ÿ”ต | README Translation CLI Tool Verified Operational | ~349 | +| #31749 | 10:57 PM | ๐Ÿ”ต | CLI del traductor de README incluye opciรณn de paralelizaciรณn | ~317 | +| #31713 | 9:41 PM | ๐Ÿ”ต | Complete Multilingual Infrastructure Documented | ~545 | + +**index.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31752 | 10:59 PM | ๐Ÿ”ด | Fixed concurrency control bug in translation script | ~309 | +| #31751 | 10:58 PM | ๐Ÿ”ต | Concurrencia implementada con funciรณn runWithConcurrency personalizada | ~483 | +| #31748 | 10:57 PM | ๐Ÿ”ต | Ubicaciรณn del script traductor de README identificada | ~241 | +| #31601 | 8:19 PM | ๐Ÿ”ต | 215 console logging statements in TypeScript utility scripts | ~501 | + +**README.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31750 | 10:58 PM | ๐Ÿ”ต | Documentaciรณn del traductor de README no menciona concurrencia | ~292 | + +### Dec 22, 2025 + +**index.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31921 | 7:36 PM | โœ… | Updated Verbose Output to Always Show Parallel Count | ~233 | +| #31920 | " | ๐ŸŸฃ | Implemented Always-On Concurrent Translation with 10-Worker Limit | ~280 | +| #31919 | " | โœ… | Removed Parallel Parameter from TranslationOptions Interface | ~198 | +| #31918 | " | ๐Ÿ”ต | Translation Engine Uses Configurable Concurrency Control | ~322 | + +**cli.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31917 | 7:35 PM | ๐Ÿ”ต | Current CLI Implementation Uses Optional Parallel Flag | ~237 | + +### Dec 23, 2025 + +**cli.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32292 | 7:19 PM | โœ… | Removed parallel parameter from CLI arguments interface | ~189 | +| #32308 | " | โœ… | Removed parallel default value from argument parser initialization | ~181 | +| #32321 | " | โœ… | Removed --parallel flag parsing from CLI argument parser | ~225 | +| #32328 | " | โœ… | Removed parallel parameter from translateReadme function call | ~205 | +| #32335 | " | โœ… | Updated CLI help documentation to reflect automatic parallel execution | ~261 | + +### Dec 30, 2025 + +**index.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34507 | 2:32 PM | ๐ŸŸฃ | Completed V2 Migration of Translation Script | ~394 | +| #34501 | 2:30 PM | โœ… | Started V2 Migration of Translation Script Import | ~270 | +| #34498 | " | ๐Ÿ”ต | Translation Script Uses V1 SDK Query API | ~409 | +| #34445 | 2:19 PM | ๐Ÿ”ต | Translation Script Already Using V2 API | ~264 | +| #34405 | 1:54 PM | ๐Ÿ”ต | Translation Script Using V1 SDK API | ~367 | + +### Dec 31, 2025 + +**index.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34572 | 2:36 PM | โš–๏ธ | Comprehensive Post-Mortem Document Created | ~692 | +| #34571 | 2:35 PM | โš–๏ธ | Post-Mortem Analysis Identifies Scope Confusion as Root Failure Cause | ~599 | +| #34570 | " | ๐Ÿ”ต | Root Cause Identified: Utility Scripts Never Fixed Despite Phase 4 Review | ~513 | +| #34568 | " | ๐Ÿ”ต | Utility Script V2 Migration Used Incorrect systemPrompt Option | ~425 | + \ No newline at end of file diff --git a/scripts/types/CLAUDE.md b/scripts/types/CLAUDE.md new file mode 100644 index 00000000..7d9b04cd --- /dev/null +++ b/scripts/types/CLAUDE.md @@ -0,0 +1,16 @@ + +# Recent Activity + + + +### Jan 4, 2026 + +**export.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36924 | 2:25 AM | โœ… | Merged fix/pr-538-followups branch into main with comprehensive updates | ~481 | +| #36914 | 2:24 AM | ๐Ÿ”ต | Recent commit 4d0a10c fixed multiple GitHub issues | ~365 | +| #36844 | 1:44 AM | ๐Ÿ”ต | Shared Type Definitions for Export/Import Operations | ~502 | +| #36829 | 1:40 AM | ๐Ÿ”ต | PR #542 Review Analysis - Multi-Issue Fix Validation | ~562 | +| #36827 | 1:03 AM | โœ… | Branch diff shows 1,293 insertions and 98 deletions across 15 files | ~464 | + \ No newline at end of file diff --git a/src/CLAUDE.md b/src/CLAUDE.md new file mode 100644 index 00000000..2f12e8c2 --- /dev/null +++ b/src/CLAUDE.md @@ -0,0 +1,13 @@ + +# Recent Activity + + + +### Jan 5, 2026 + +**CLAUDE.md** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37391 | 12:48 AM | โœ… | Staged 23 CLAUDE.md files with mix of new and modified content | ~400 | +| #37390 | 12:47 AM | โœ… | Regenerated 23 CLAUDE.md files in budapest workspace | ~365 | + \ No newline at end of file diff --git a/src/bin/CLAUDE.md b/src/bin/CLAUDE.md new file mode 100644 index 00000000..6ac43565 --- /dev/null +++ b/src/bin/CLAUDE.md @@ -0,0 +1,187 @@ + +# Recent Activity + + + +### Nov 21, 2025 + +**cleanup-duplicates.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #13458 | 4:05 PM | ๐Ÿ”ต | Comments already document multiple observations per tool_use_id design | ~394 | + +**restore-endless-mode.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #13229 | 1:36 PM | ๐Ÿ”ต | Dead Code Analysis: Deferred Transformation Experiment | ~613 | +| #13228 | 1:33 PM | ๐Ÿ”ต | Endless Mode Restoration CLI Tool | ~601 | + +### Nov 22, 2025 + +**restore-endless-mode.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #14203 | 1:05 AM | ๐Ÿ”ต | Endless Mode Feature Branch Contains Major Additions | ~566 | + +### Dec 5, 2025 + +**run.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #20355 | 6:49 PM | ๐Ÿ”ต | Runtime launcher added for dynamic Bun/Node selection | ~260 | +| #20290 | 6:06 PM | ๐Ÿ”ต | Runtime Launcher Script for Dynamic Execution | ~269 | +| #20140 | 4:08 PM | ๐Ÿ”„ | Eliminated code duplication in run.ts by importing from runtime.ts | ~376 | +| #20135 | 4:03 PM | โš–๏ธ | Proposed Refactoring: 77% Code Reduction While Maintaining Functionality | ~411 | +| #20133 | 4:02 PM | โš–๏ธ | Runtime Implementation Analysis: Four Categories of Issues Identified | ~406 | +| #20130 | " | โš–๏ธ | Code Duplication Deemed Unnecessary Due to Bundling | ~359 | +| #20127 | 4:01 PM | ๐Ÿ”ต | Dual Purpose Runtime System Revealed | ~335 | +| #20126 | " | ๐Ÿ”ต | Invalid Justification for Duplication Analysis | ~295 | +| #20125 | " | ๐Ÿ”ต | Code Duplication Issue in Runtime Implementation | ~317 | +| #20123 | " | ๐Ÿ”ต | Source TypeScript Runtime Launcher Implementation | ~313 | +| #20120 | 3:58 PM | ๐Ÿ”ต | PR 169 Changes Overview | ~314 | +| #20110 | 3:55 PM | ๐Ÿ”ต | PR 169 adds Bun runtime support with automatic detection | ~461 | + +### Dec 8, 2025 + +**restore-endless-mode.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #21893 | 3:30 PM | ๐Ÿ”ต | Endless Mode Transcript Restoration CLI Tool | ~345 | + +### Dec 9, 2025 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22929 | 3:04 PM | โš–๏ธ | Silent Failure Pattern Conversion Strategy | ~471 | +| #22928 | 3:03 PM | ๐Ÿ”ต | Silent Failure Pattern Audit Results | ~372 | +| #22927 | 3:01 PM | ๐Ÿ”ต | Silent Failure Pattern Detection Across Codebase | ~352 | + +### Dec 10, 2025 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23755 | 9:05 PM | ๐Ÿ”ต | Import XML Observations Utility Uses SessionStore Directly | ~280 | + +**cleanup-duplicates.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23754 | 9:05 PM | ๐Ÿ”ต | Cleanup Duplicates Utility Uses SessionStore Directly | ~234 | + +### Dec 11, 2025 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23959 | 1:58 PM | ๐Ÿ”ต | TypeScript Codebase Architecture Mapped | ~337 | + +### Dec 13, 2025 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25321 | 9:12 PM | ๐Ÿ”ต | Console.error Usage Found in 29 Files | ~366 | + +### Dec 16, 2025 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27502 | 4:19 PM | ๐Ÿ”ต | Observation Storage Architecture Located | ~403 | + +### Dec 18, 2025 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29773 | 7:01 PM | ๐Ÿ”ต | Observation Type Definitions Across Codebase | ~362 | + +### Dec 19, 2025 + +**cleanup-duplicates.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29926 | 6:25 PM | ๐Ÿ”ต | cleanup-duplicates.ts Only Deletes From SQLite, Not Chroma | ~340 | + +### Dec 21, 2025 + +**cleanup-duplicates.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31603 | 8:21 PM | ๐Ÿ”ต | Complete Console.* Statement Audit Across Codebase | ~813 | +| #31599 | 8:19 PM | ๐Ÿ”ต | 136 console logging statements found in TypeScript source files | ~538 | + +### Dec 24, 2025 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32184 | 7:20 PM | ๐Ÿ”„ | Direct SQL replaced method call for SDK session ID update | ~259 | +| #32183 | " | ๐Ÿ”„ | Simplified database update in XML import script | ~254 | +| #32100 | 5:08 PM | ๐Ÿ”ต | storeObservation method usage spans three TypeScript files | ~237 | + +### Dec 25, 2025 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32558 | 8:18 PM | ๐Ÿ”ต | Identified files containing 'summary' or 'Summary' | ~167 | +| #32456 | 5:41 PM | โœ… | Completed merge of main branch into feature/titans-phase1-3 | ~354 | + +### Dec 27, 2025 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33082 | 6:45 PM | ๐Ÿ”ต | User directory path patterns in codebase | ~362 | + +### Dec 28, 2025 + +**cleanup-duplicates.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33636 | 11:35 PM | โœ… | Major Documentation and Code Cleanup Removed 4,929 Lines | ~381 | +| #33590 | 11:11 PM | ๐Ÿ”ต | Database Migration Renamed sdk_session_id to memory_session_id | ~387 | + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33439 | 10:15 PM | ๐Ÿ”„ | Extended Session ID Renaming to Additional Codebase Components | ~352 | + +### Dec 29, 2025 + +**cleanup-duplicates.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33675 | 12:02 AM | ๐Ÿ”„ | Major Documentation and Code Cleanup in MCP Clarity Branch | ~491 | + +### Jan 1, 2026 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35553 | 9:50 PM | ๐Ÿ”ต | storeObservation method usage across codebase | ~315 | +| #35515 | 9:14 PM | โœ… | Wave 1 Extended Fixes Committed: 5 Critical Error Handling Issues Resolved | ~409 | +| #35501 | 9:10 PM | ๐Ÿ”ต | Wave 1 Verification Issue: Anti-Pattern Detector Not Recognizing Fixes | ~497 | +| #35500 | 9:09 PM | ๐ŸŸฃ | Wave 1 Complete: All 4 Empty Catch Blocks Fixed | ~511 | +| #35493 | 9:08 PM | ๐Ÿ”ด | Wave 1 Fix 1/4: XML Importer Empty Catch Block Fixed | ~392 | +| #35492 | " | โœ… | Wave 1 Fix 1/4: Added Logger Import to XML Importer | ~248 | +| #35488 | 9:07 PM | ๐Ÿ”ต | Wave 1 Target File: XML Observation Importer Structure | ~424 | +| #35485 | 9:06 PM | โš–๏ธ | Comprehensive error handling remediation plan completed and submitted for approval | ~555 | +| #35465 | 9:01 PM | ๐Ÿ”ต | Empty catch block in XML observations import script | ~281 | + +### Jan 2, 2026 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35985 | 5:16 PM | ๐Ÿ”ต | Alignment logging implemented across session lifecycle touchpoints | ~377 | + +### Jan 3, 2026 + +**import-xml-observations.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36296 | 8:04 PM | ๐Ÿ”ต | TypeScript Compilation Check: Pre-Existing Errors Unrelated to Refactoring | ~621 | + \ No newline at end of file diff --git a/src/cli/CLAUDE.md b/src/cli/CLAUDE.md new file mode 100644 index 00000000..6d239a0b --- /dev/null +++ b/src/cli/CLAUDE.md @@ -0,0 +1,36 @@ + +# Recent Activity + + + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23825 | 11:12 PM | โœ… | Worker Port Set to 38888 for Migration Phase | ~283 | +| #23824 | " | ๐Ÿ”ต | Worker Port Sourced from getWorkerPort() Utility | ~247 | +| #23816 | 10:52 PM | ๐ŸŸฃ | Worker CLI Command Interface Created | ~325 | + +### Dec 11, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24060 | 2:58 PM | ๐Ÿ”ด | Worker CLI Start Command Exit Behavior Fixed | ~232 | + +### Dec 12, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24359 | 7:00 PM | ๐ŸŸฃ | Phase 1 Critical Code Fixes Completed via Agent Task | ~441 | +| #24358 | 6:59 PM | โœ… | Completed Phase 1 Code Fixes for better-sqlite3 Migration | ~385 | +| #24348 | 6:57 PM | ๐Ÿ”ด | Added Defensive Break Statement to worker-cli.ts Restart Case | ~269 | +| #24345 | " | ๐Ÿ”ต | worker-cli.ts Missing Break Statement in Switch Case | ~318 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26766 | 11:30 PM | โš–๏ธ | Root Cause Identified: Missing Post-Install Worker Restart Trigger in Plugin Update Flow | ~604 | +| #26722 | 11:23 PM | ๐Ÿ”ต | Worker CLI TypeScript Source Shows Simple ProcessManager Delegation | ~394 | +| #26721 | " | ๐Ÿ”ต | Worker CLI Source Code Shows Simple Restart Logic Without Delays | ~425 | + \ No newline at end of file diff --git a/src/constants/CLAUDE.md b/src/constants/CLAUDE.md new file mode 100644 index 00000000..fe44e505 --- /dev/null +++ b/src/constants/CLAUDE.md @@ -0,0 +1,71 @@ + +# Recent Activity + + + +### Nov 25, 2025 + +**api.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #15545 | 8:37 PM | ๐Ÿ”ต | API Constants File Contains Single Comment Reference | ~227 | + +### Dec 7, 2025 + +**observation-metadata.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #21685 | 9:48 PM | ๐Ÿ”ต | Configuration Defaults and Environment Variables | ~558 | + +### Dec 9, 2025 + +**observation-metadata.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22672 | 12:10 PM | ๐Ÿ”ต | Observation Type System with Six Types and Seven Concepts | ~505 | + +### Dec 11, 2025 + +**observation-metadata.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23959 | 1:58 PM | ๐Ÿ”ต | TypeScript Codebase Architecture Mapped | ~337 | + +### Dec 18, 2025 + +**observation-metadata.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29773 | 7:01 PM | ๐Ÿ”ต | Observation Type Definitions Across Codebase | ~362 | +| #29248 | 12:15 AM | โš–๏ธ | RAGTIME domain-agnostic architecture design for claude-mem | ~590 | +| #29229 | 12:08 AM | ๐Ÿ”ต | Claude-Mem Observation Type System Architecture Mapped | ~552 | +| #29220 | 12:04 AM | ๐Ÿ”ต | Observation Type and Concept Taxonomy | ~355 | + +### Dec 21, 2025 + +**observation-metadata.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31747 | 10:43 PM | ๐Ÿ”ต | PR #412 Code Review Identifies Two Critical Bugs in Mode System | ~545 | +| #31433 | 6:58 PM | ๐Ÿ”„ | Simplified observation-metadata.ts to use hardcoded defaults | ~330 | +| #31429 | 6:57 PM | ๐Ÿ”„ | Removed unused emoji mapping constants from observation metadata | ~245 | +| #31423 | 6:50 PM | ๐Ÿ”ต | Observation Metadata Constants File Structure | ~327 | +| #31329 | 5:45 PM | ๐Ÿ”ต | Observation Metadata Integration Across Services and UI | ~403 | +| #31328 | " | ๐Ÿ”ต | Settings Defaults Manager Uses Observation Metadata Constants | ~286 | +| #31327 | " | ๐Ÿ”ต | Observation Metadata Constants - Core Type and Concept Definitions | ~369 | + +### Dec 25, 2025 + +**observation-metadata.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32701 | 9:00 PM | ๐Ÿ”ต | Test Coverage Report Generated | ~471 | + +### Jan 2, 2026 + +**observation-metadata.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35875 | 2:39 PM | ๐Ÿ”ต | Logging UI Architecture Mapped | ~599 | +| #35836 | 2:30 PM | ๐Ÿ”ต | Observation metadata constants for types and concepts | ~280 | + \ No newline at end of file diff --git a/src/hooks/CLAUDE.md b/src/hooks/CLAUDE.md new file mode 100644 index 00000000..42f9db0e --- /dev/null +++ b/src/hooks/CLAUDE.md @@ -0,0 +1,95 @@ + +# Recent Activity + + + +### Dec 9, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23126 | 6:40 PM | โœ… | Removed SKIP_TOOLS Check from saveHook Function | ~288 | +| #23125 | " | ๐Ÿ”ต | SKIP_TOOLS Reference Still Present in saveHook Function | ~224 | +| #23124 | " | โœ… | Removed SKIP_TOOLS Constant from save-hook.ts | ~297 | +| #23123 | 6:39 PM | ๐Ÿ”ต | Current SKIP_TOOLS Implementation in save-hook.ts | ~397 | +| #23122 | " | ๐Ÿ”ด | Hardened Spinner Stop Mechanism with Timeout and Logging | ~361 | +| #23121 | " | ๐Ÿ”ต | Current Spinner Stop Implementation in summary-hook.ts | ~348 | +| #23118 | 6:38 PM | โœ… | Phase 6: StopInput Interface Type Safety Restored | ~248 | +| #23117 | 6:37 PM | โœ… | Phase 6: PostToolUseInput Interface Type Safety Restored | ~222 | +| #23116 | " | โœ… | Phase 6: UserPromptSubmitInput Interface Type Safety Restored | ~216 | +| #23115 | " | โœ… | Phase 6: SessionStartInput Interface Type Safety Restored | ~341 | +| #23114 | " | ๐Ÿ”ต | Current State of context-hook.ts Interface | ~409 | +| #23113 | " | ๐Ÿ”ต | Current State of summary-hook.ts Interface and Spinner Stop | ~397 | +| #23112 | " | ๐Ÿ”ต | Current State of save-hook.ts Interface and SKIP_TOOLS | ~395 | +| #23111 | " | ๐Ÿ”ต | Current State of new-hook.ts Interface | ~381 | +| #23076 | 6:27 PM | โœ… | Added Comment Explaining Exit Code 3 in user-message-hook.ts | ~245 | +| #23075 | 6:26 PM | โœ… | Deleted Expired Announcement Code from user-message-hook.ts | ~354 | +| #23074 | " | โœ… | Replaced Verbose Manual Mode Help with Error in cleanup-hook.ts | ~222 | +| #23073 | " | โœ… | Removed cwd from cleanup-hook Debug Logging | ~177 | +| #23072 | " | โœ… | Simplified SessionEndInput Interface in cleanup-hook.ts | ~236 | +| #23071 | 6:25 PM | ๐Ÿ”ต | cleanup-hook.ts Has Over-Engineered Manual Mode Help (lines 36-47) | ~399 | +| #23070 | " | ๐Ÿ”ต | user-message-hook.ts Contains Expired Announcement Code (lines 31-70) | ~370 | +| #23045 | 4:41 PM | ๐Ÿ”ต | "What's the Point?" Audit: Hook Code Contains 50% Dead/Duplicated Logic | ~1458 | +| #23044 | 4:37 PM | ๐Ÿ”ต | Hook Architecture Audit: Purpose and Design Patterns | ~1032 | +| #22856 | 2:27 PM | โœ… | Replaced node_modules Check with Marker File in user-message-hook | ~324 | +| #22855 | " | ๐Ÿ”ต | Identified node_modules First-Run Check in user-message-hook | ~319 | +| #22825 | 2:06 PM | ๐Ÿ”„ | Removed Duplicate Session Initialization Call from New Hook | ~346 | + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23407 | 2:14 PM | ๐Ÿ”ต | New Hook Implementation Structure | ~264 | + +### Dec 13, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25389 | 9:30 PM | ๐Ÿ”ด | Save Hook Error Logging Enhanced With Tool Context | ~361 | +| #25388 | " | ๐Ÿ”ด | New Hook Now Logs SDK Agent Start Errors | ~344 | +| #25387 | 9:29 PM | ๐Ÿ”ด | New Hook Now Logs Session Initialization Errors | ~350 | +| #25386 | " | ๐Ÿ”ด | Context Hook Now Logs Error Text Before Throwing | ~338 | +| #25385 | " | โœ… | Added Logger Import to New Hook | ~249 | +| #25384 | " | โœ… | Added Logger Import to Context Hook | ~223 | +| #25383 | " | ๐Ÿ”ต | New Hook Has Two Silent Failure Points | ~392 | +| #25382 | 9:28 PM | ๐Ÿ”ต | Save Hook Has Partial Error Logging | ~351 | +| #25381 | " | ๐Ÿ”ต | Summary Hook Has Partial Error Logging | ~345 | +| #25380 | " | ๐Ÿ”ต | Context Hook Silent Failure Pattern Confirmed | ~354 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26730 | 11:24 PM | ๐Ÿ”ต | Context Hook TypeScript Source Shows EnsureWorkerRunning as First Action | ~441 | +| #26729 | " | ๐Ÿ”ต | Context Hook TypeScript Source Calls ensureWorkerRunning Before API Requests | ~411 | +| #26260 | 8:32 PM | ๐Ÿ”ต | User Message Hook Calls Context Inject with colors=true Parameter | ~300 | +| #26244 | 8:29 PM | ๐Ÿ”ต | Context Hook Delegates to Worker API Context Endpoint | ~260 | +| #25692 | 4:24 PM | ๐Ÿ”ต | Summary hook extracts last user and assistant messages from transcript file before sending to worker | ~465 | + +### Dec 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #28449 | 4:23 PM | ๐Ÿ”ต | New Hook Session Initialization Flow | ~385 | + +### Dec 19, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30105 | 8:11 PM | ๐Ÿ”ต | Hook Response Utility Standardizes Hook Output Format | ~387 | +| #30103 | 8:10 PM | ๐Ÿ”ต | Context Hook Injects Mode-Based Memory Context During SessionStart | ~460 | + +### Dec 20, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31085 | 7:59 PM | ๐Ÿ”ต | Summary Hook Uses session_id from Hook Input | ~315 | + +### Dec 27, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33216 | 9:07 PM | ๐Ÿ”ต | UserPromptSubmit Hook (new-hook.ts) Initializes Session and Starts SDK Agent via Two HTTP Endpoints | ~735 | +| #33211 | 9:04 PM | ๐Ÿ”ต | User Message Hook Displays Context Info via stderr in Parallel with Context Injection | ~476 | +| #33210 | 9:03 PM | ๐Ÿ”ต | Summary Hook (summary-hook.ts) Extracts Messages and Triggers Summarization | ~479 | +| #33209 | " | ๐Ÿ”ต | SessionStart Hook (context-hook.ts) Fetches Context Injection via HTTP | ~520 | + \ No newline at end of file diff --git a/src/hooks/context-hook.ts b/src/hooks/context-hook.ts index 3dc6ca76..1d106419 100644 --- a/src/hooks/context-hook.ts +++ b/src/hooks/context-hook.ts @@ -9,7 +9,7 @@ import { stdin } from "process"; import { ensureWorkerRunning, getWorkerPort } from "../shared/worker-utils.js"; import { HOOK_TIMEOUTS } from "../shared/hook-constants.js"; -import { getProjectName } from "../utils/project-name.js"; +import { getProjectContext } from "../utils/project-name.js"; import { logger } from "../utils/logger.js"; export interface SessionStartInput { @@ -24,10 +24,12 @@ async function contextHook(input?: SessionStartInput): Promise { await ensureWorkerRunning(); const cwd = input?.cwd ?? process.cwd(); - const project = getProjectName(cwd); + const context = getProjectContext(cwd); const port = getWorkerPort(); - const url = `http://127.0.0.1:${port}/api/context/inject?project=${encodeURIComponent(project)}`; + // Pass all projects (parent + worktree if applicable) for unified timeline + const projectsParam = context.allProjects.join(','); + const url = `http://127.0.0.1:${port}/api/context/inject?projects=${encodeURIComponent(projectsParam)}`; // 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/hooks/new-hook.ts b/src/hooks/new-hook.ts index 51df8b8c..cf4dd419 100644 --- a/src/hooks/new-hook.ts +++ b/src/hooks/new-hook.ts @@ -24,12 +24,9 @@ async function newHook(input?: UserPromptSubmitInput): Promise { const { session_id, cwd, prompt } = input; const project = getProjectName(cwd); - - logger.info('HOOK', 'new-hook: Received hook input', { session_id, has_prompt: !!prompt, cwd }); - const port = getWorkerPort(); - logger.info('HOOK', 'new-hook: Calling /api/sessions/init', { contentSessionId: session_id, project, prompt_length: prompt?.length }); + logger.debug('HOOK', 'new-hook: Calling /api/sessions/init', { contentSessionId: session_id, project }); // Initialize session via HTTP - handles DB operations and privacy checks const initResponse = await fetch(`http://127.0.0.1:${port}/api/sessions/init`, { @@ -51,25 +48,25 @@ async function newHook(input?: UserPromptSubmitInput): Promise { const sessionDbId = initResult.sessionDbId; const promptNumber = initResult.promptNumber; - logger.info('HOOK', 'new-hook: Received from /api/sessions/init', { sessionDbId, promptNumber, skipped: initResult.skipped }); + logger.debug('HOOK', 'new-hook: Received from /api/sessions/init', { sessionDbId, promptNumber, skipped: initResult.skipped }); - // SESSION ALIGNMENT LOG: Entry point showing content session ID and prompt number - logger.info('HOOK', `[ALIGNMENT] Hook Entry | contentSessionId=${session_id} | prompt#=${promptNumber} | sessionDbId=${sessionDbId}`); + // Debug-level alignment log for detailed tracing + logger.debug('HOOK', `[ALIGNMENT] Hook Entry | contentSessionId=${session_id} | prompt#=${promptNumber} | sessionDbId=${sessionDbId}`); // Check if prompt was entirely private (worker performs privacy check) if (initResult.skipped && initResult.reason === 'private') { - logger.info('HOOK', `new-hook: Session ${sessionDbId}, prompt #${promptNumber} (fully private - skipped)`); + logger.info('HOOK', `INIT_COMPLETE | sessionDbId=${sessionDbId} | promptNumber=${promptNumber} | skipped=true | reason=private`, { + sessionId: sessionDbId + }); console.log(STANDARD_HOOK_RESPONSE); return; } - logger.info('HOOK', `new-hook: Session ${sessionDbId}, prompt #${promptNumber}`); - // Strip leading slash from commands for memory agent // /review 101 โ†’ review 101 (more semantic for observations) const cleanedPrompt = prompt.startsWith('/') ? prompt.substring(1) : prompt; - logger.info('HOOK', 'new-hook: Calling /sessions/{sessionDbId}/init', { sessionDbId, promptNumber, userPrompt_length: cleanedPrompt?.length }); + logger.debug('HOOK', 'new-hook: Calling /sessions/{sessionDbId}/init', { sessionDbId, promptNumber }); // Initialize SDK agent session via HTTP (starts the agent!) const response = await fetch(`http://127.0.0.1:${port}/sessions/${sessionDbId}/init`, { @@ -83,6 +80,10 @@ async function newHook(input?: UserPromptSubmitInput): Promise { throw new Error(`SDK agent start failed: ${response.status}`); } + logger.info('HOOK', `INIT_COMPLETE | sessionDbId=${sessionDbId} | promptNumber=${promptNumber} | project=${project}`, { + sessionId: sessionDbId + }); + console.log(STANDARD_HOOK_RESPONSE); } diff --git a/src/sdk/CLAUDE.md b/src/sdk/CLAUDE.md new file mode 100644 index 00000000..57a07dc6 --- /dev/null +++ b/src/sdk/CLAUDE.md @@ -0,0 +1,141 @@ + +# Recent Activity + + + +### Dec 22, 2025 + +**SDKAgent.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31951 | 8:17 PM | ๐ŸŸฃ | Mode System with Inheritance and Multilingual Support | ~776 | + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31891 | 7:17 PM | ๐Ÿ”ด | Migration des prompts de rรฉsumรฉ vers les fichiers de modes pour le support multilingue | ~474 | +| #31890 | " | ๐Ÿ”ต | Modifications en cours sur les fichiers de modes multilingues et le systรจme de prompts | ~325 | +| #31872 | 7:04 PM | ๐Ÿ”„ | Externalisation des prompts de rรฉsumรฉ codรฉs en dur | ~378 | +| #31868 | 7:03 PM | ๐Ÿ”ต | ใ‚ตใƒžใƒชใƒผใƒ—ใƒญใƒณใƒ—ใƒˆใฎใƒใƒผใƒ‰ใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐ็ฎ‡ๆ‰€ใฎ็‰นๅฎš | ~193 | +| #31829 | 6:28 PM | ๐Ÿ”„ | Removed languageNote usage from continuation observation XML template | ~90 | +| #31828 | " | ๐Ÿ”„ | Removed languageNote variable from buildContinuationPrompt | ~199 | +| #31827 | " | ๐Ÿ”„ | Removed languageNote usage from summary XML template | ~79 | +| #31826 | " | ๐Ÿ”„ | Removed unused languageNote variable from buildSummaryPrompt | ~198 | +| #31825 | 6:26 PM | ๐Ÿ”„ | Removed unused languageNote variable from buildInitPrompt | ~278 | +| #31820 | 6:20 PM | ๐Ÿ”ต | Prompts system architecture uses mode.prompts.format_examples field | ~305 | +| #31816 | 6:10 PM | ๐Ÿ”„ | Extracted memory continuation header to mode configuration | ~236 | +| #31815 | 6:09 PM | ๐Ÿ”„ | Extracted continuation instruction to mode configuration | ~252 | +| #31814 | " | ๐Ÿ”„ | Extracted continuation greeting to mode configuration | ~306 | +| #31813 | 6:08 PM | ๐Ÿ”„ | Removed hardcoded language instruction from buildSummaryPrompt | ~291 | +| #31812 | " | ๐Ÿ”„ | Replaced all XML placeholder text with mode configuration variables | ~459 | +| #31811 | " | ๐Ÿ”„ | Replaced hardcoded memory processing header with mode variable | ~252 | + +**parser.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31855 | 6:53 PM | โœ… | ใƒ†ใ‚นใƒˆใ‚นใ‚คใƒผใƒˆใฎๅคง่ฆๆจกๅ‰Š้™คใจใƒ†ใ‚นใƒˆๅˆ†ๆžใƒฌใƒใƒผใƒˆใฎ่ฟฝๅŠ  | ~197 | + +### Dec 23, 2025 + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32030 | 7:44 PM | ๐Ÿ”ต | SDK prompt building system uses mode configuration | ~330 | + +**parser.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32029 | 7:40 PM | ๐Ÿ”ต | Parser Layer Has No Skip Logic - Always Saves Observations | ~342 | + +### Dec 24, 2025 + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32213 | 8:17 PM | ๐Ÿ”ต | Prompt Generation System Architecture | ~402 | +| #32337 | 4:03 PM | โœ… | Enhanced observation prompt with granularity reminder | ~278 | + +### Dec 25, 2025 + +**parser.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32701 | 9:00 PM | ๐Ÿ”ต | Test Coverage Report Generated | ~471 | +| #32565 | 8:19 PM | ๐Ÿ”ต | Read parser.ts (first 150 lines) | ~146 | + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32558 | 8:18 PM | ๐Ÿ”ต | Identified files containing 'summary' or 'Summary' | ~167 | + +### Dec 27, 2025 + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33131 | 7:52 PM | ๐Ÿ”ต | Session ID Propagation Flow Analysis with Architectural Vulnerabilities Identified | ~577 | +| #33129 | " | ๐Ÿ”ต | Prompt Building Functions with Session ID Threading Documentation | ~483 | + +### Dec 28, 2025 + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33438 | 10:15 PM | ๐Ÿ”„ | Bulk Rename Session ID Fields Across Entire Codebase | ~384 | +| #33420 | 10:06 PM | ๐Ÿ”ต | Complete session ID flow analysis reveals missing SDK session capture mechanism | ~545 | +| #33415 | 10:05 PM | ๐Ÿ”ต | Prompt building functions receive sessionId but only use it for context display | ~372 | +| #33316 | 3:09 PM | ๐Ÿ”ด | Fixed Disconnected SDK Agent Sessions | ~350 | +| #33296 | 3:08 PM | ๐Ÿ”ต | Session ID Propagation Flow Architecture Traced Through Codebase | ~720 | + +### Dec 30, 2025 + +**parser.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34462 | 2:23 PM | ๐Ÿ”ต | Code Quality Review Identifies Critical V2 Migration Issues | ~418 | + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34398 | 1:53 PM | ๐Ÿ”ต | SDK Prompts Module Structure | ~361 | + +### Jan 1, 2026 + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35666 | 11:37 PM | โœ… | Staged error handling improvements across 10 files | ~261 | +| #35641 | 11:27 PM | โœ… | Added APPROVED OVERRIDE comments for JSON parse error handling in SDK prompts | ~336 | + +### Jan 2, 2026 + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35901 | 2:49 PM | ๐Ÿ”ต | PR #525 File Changes Summary | ~376 | +| #35770 | 1:23 PM | โœ… | Last User Message Field Removed Across 11 Files in Codebase | ~374 | +| #35763 | 1:22 PM | ๐Ÿ”„ | Removed last_user_message from SDKSession interface | ~241 | +| #35762 | 1:21 PM | ๐Ÿ”ต | SDKSession interface includes last_user_message field | ~221 | +| #35742 | 1:15 PM | ๐Ÿ”ต | SDKSession interface defines both user_prompt and last_user_message fields | ~289 | +| #35738 | 1:12 PM | ๐Ÿ”ต | Summary prompt uses last_assistant_message but not last_user_message | ~334 | +| #35737 | " | ๐Ÿ”ต | Summary Prompt Interface Defines Optional last_user_message | ~253 | +| #35736 | " | ๐Ÿ”ต | SDKSession Interface Defines Optional last_user_message Field | ~277 | +| #35733 | 1:11 PM | ๐Ÿ”ต | Located last_user_message usage across codebase | ~333 | + +### Jan 3, 2026 + +**parser.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36200 | 7:22 PM | ๐Ÿ”ต | Parser Module Analysis for Phase 2 Refactoring | ~562 | + +### Jan 5, 2026 + +**prompts.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37613 | 5:31 PM | ๐Ÿ”ต | PR #558 Review Feedback Analysis | ~544 | +| #37571 | 4:51 PM | โœ… | Phase 1 Anti-Pattern Check Complete - Clean Implementation | ~400 | +| #37557 | 4:49 PM | ๐Ÿ”ต | Issue #545 Bug Location and Fix Pattern Documented | ~462 | +| #37539 | 4:45 PM | ๐Ÿ”ต | SDK Defensive JSON Parsing Pattern Implementation | ~408 | + \ No newline at end of file diff --git a/src/servers/CLAUDE.md b/src/servers/CLAUDE.md new file mode 100644 index 00000000..2ce41fb6 --- /dev/null +++ b/src/servers/CLAUDE.md @@ -0,0 +1,100 @@ + +# Recent Activity + + + +### Nov 6, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #4185 | 10:25 PM | ๐Ÿ”ด | Prefixed unused id parameters with underscore in filter callbacks | ~299 | + +### Nov 8, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #5539 | 10:20 PM | ๐Ÿ”ต | Harsh critical audit of context-hook reveals systematic anti-patterns | ~3154 | +| #5497 | 9:29 PM | ๐Ÿ”ต | Harsh critical audit of context-hook reveals systematic anti-patterns | ~2815 | + +### Nov 9, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #5757 | 5:16 PM | ๐Ÿ”ต | MCP search server exposes 9 tools consuming ~2,000-3,000 tokens per session | ~421 | +| #5754 | 5:14 PM | ๐Ÿ”ต | MCP search server provides 9 search tools with hybrid semantic/FTS5 | ~402 | + +### Nov 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #6250 | 12:54 PM | ๐Ÿ”ต | MCP Search Server Connection Failure Reported | ~329 | + +### Nov 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #10744 | 11:47 PM | โœ… | Search Query Parameter Made Optional for Filter-Only Queries | ~373 | +| #10572 | 7:47 PM | ๐ŸŸฃ | Unified cross-type search with search_everything tool | ~501 | +| #10571 | 7:46 PM | ๐Ÿ”ต | Search server architecture and hybrid search implementation | ~553 | + +### Nov 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #11462 | 7:55 PM | ๐Ÿ”ต | Ready to Apply Fix to Contextualize Handler | ~261 | +| #11460 | " | ๐Ÿ”ด | Identified Root Cause of Contextualize Endpoint Bug | ~413 | +| #11454 | 7:54 PM | ๐Ÿ”ต | Unified Search Handler Shows Correct Pattern for Filter-Only Queries | ~334 | +| #11447 | " | ๐Ÿ”ต | Contextualize Handler Calls Search Methods with Query='*' | ~279 | +| #11432 | 7:52 PM | ๐Ÿ”ต | Contextualize Handler Formats Results with Sections | ~286 | +| #11431 | 7:51 PM | ๐Ÿ”ต | Confirmed Empty Results Trigger in Contextualize Handler | ~289 | +| #11430 | " | ๐Ÿ”ต | Contextualize Handler Implementation Uses Search Methods | ~424 | +| #11429 | " | ๐Ÿ”ต | Search Server Defines Six Main Search Tools | ~358 | +| #11428 | " | ๐Ÿ”ต | Contextualize Tool Definition Found in Search Server | ~357 | +| #11332 | 3:55 PM | ๐Ÿ”ต | Comprehensive FTS5 Removal Audit Completed for Architecture Migration | ~792 | +| #11206 | 3:01 PM | ๐Ÿ”ต | mem-search skill architecture and migration details retrieved in full format | ~538 | +| #11181 | 4:09 AM | ๐Ÿ”ต | Store methods for ID-based lookups exist but not exposed as MCP tools | ~495 | +| #11013 | 2:12 AM | ๐Ÿ”ต | Search Server Implements Three-Path Query Strategy with ChromaDB Primary and FTS5 Fallback | ~462 | + +### Nov 28, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #16711 | 4:34 PM | ๐ŸŸฃ | include_inactive Parameter Extracted in Search Handler | ~369 | +| #16710 | " | ๐Ÿ”ต | Search Tool Schema Definition with Type and Filter Parameters | ~527 | +| #16708 | " | ๐Ÿ”ต | Search Server MCP Tool Architecture and ChromaDB Integration | ~491 | +| #16682 | 4:10 PM | ๐Ÿ”ต | Comprehensive Exploration Task Completed on Observation System | ~601 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26238 | 8:28 PM | ๐Ÿ”ต | MCP Server Architecture Maps Tools to Worker API Endpoints | ~355 | +| #26138 | 7:55 PM | โœ… | Updated Comment to Reference progressive_description Tool | ~238 | +| #26137 | " | โœ… | Completed Tool Description Minimization - All 9 Tools Updated | ~335 | +| #26136 | " | โœ… | Minimized Get Session Tool Description | ~218 | +| #26135 | " | โœ… | Minimized Get Batch Observations Tool Description | ~258 | +| #26134 | " | โœ… | Minimized Get Observation Tool Description | ~228 | +| #26133 | " | โœ… | Minimized Get Context Timeline Tool Description | ~245 | +| #26132 | 7:54 PM | โœ… | Minimized Get Recent Context Tool Description | ~214 | +| #26131 | " | โœ… | Minimized Timeline Tool Description | ~232 | +| #26130 | " | โœ… | Minimized Search Tool Description | ~235 | +| #26129 | " | โœ… | Renamed progressive_ix Tool to progressive_description with Minimized Description | ~296 | +| #26128 | " | โœ… | Renamed Tool Endpoint Mapping from progressive_ix to progressive_description | ~229 | +| #26127 | " | โœ… | Completed Format Parameter Removal from All Four MCP Tools | ~318 | +| #26126 | 7:53 PM | โœ… | Removed Format Parameter from Get Recent Context Tool Schema | ~244 | +| #26125 | " | โœ… | Removed Format Parameter from Timeline Tool Schema | ~248 | +| #26124 | " | โœ… | Removed Format Parameter from Search Tool Schema | ~283 | +| #26123 | " | ๐Ÿ”ต | Current MCP Server Tool Schema Analysis | ~337 | +| #25815 | 5:31 PM | ๐Ÿ”ต | Comprehensive MCP Server and SKILL.md Structure Analysis | ~575 | +| #25807 | 5:30 PM | ๐Ÿ”ต | MCP Server Architecture with 14 HTTP-Delegating Tools | ~545 | +| #25788 | 5:15 PM | ๐Ÿ”ต | MCP Server Capabilities and Request Handlers | ~256 | + +### Dec 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29078 | 10:16 PM | โœ… | Updated get_recent_context tool schema to accept dynamic parameters | ~318 | +| #29077 | 10:15 PM | โœ… | Updated timeline tool schema to accept dynamic parameters | ~292 | +| #29076 | " | โœ… | Updated search tool schema to accept dynamic parameters | ~315 | +| #28923 | 7:28 PM | ๐Ÿ”ต | MCP Server Architecture: Thin HTTP Wrapper Pattern | ~402 | + \ No newline at end of file diff --git a/src/services/CLAUDE.md b/src/services/CLAUDE.md new file mode 100644 index 00000000..ca3ce969 --- /dev/null +++ b/src/services/CLAUDE.md @@ -0,0 +1,63 @@ + +# Recent Activity + + + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23832 | 11:15 PM | ๐Ÿ”ต | Current worker-service.ts Lacks Admin Endpoints | ~393 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26740 | 11:26 PM | ๐Ÿ”ต | Worker Service Refactored to Orchestrator with Background Initialization | ~421 | +| #26739 | 11:25 PM | ๐Ÿ”ต | Worker Service Architecture Uses Domain Services and Background Initialization | ~438 | +| #26255 | 8:31 PM | ๐Ÿ”ต | Context Generator Timeline Rendering Logic Details File Grouping Implementation | ~397 | +| #26251 | 8:30 PM | ๐Ÿ”ต | Worker Service Orchestrates Domain Services and Route Handlers | ~292 | +| #26246 | 8:29 PM | ๐Ÿ”ต | Context Generator Implements Rich Date-Grouped Timeline Format | ~468 | + +### Dec 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #28548 | 4:49 PM | ๐Ÿ”ต | Worker service cleanup method uses Unix-specific process management | ~323 | +| #28446 | 4:23 PM | ๐Ÿ”ต | Worker Service Refactored to Orchestrator Pattern | ~529 | + +### Dec 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29340 | 3:11 PM | โœ… | Constructor Initialization Comment Updated | ~267 | +| #29339 | " | โœ… | Class Member Comment Updated in WorkerService | ~267 | +| #29338 | " | โœ… | Service Import Comment Updated | ~222 | +| #29337 | 3:10 PM | โœ… | Terminology Update in Worker Service Documentation | ~268 | +| #29239 | 12:11 AM | ๐Ÿ”ต | Worker Service Refactored as Domain-Driven Orchestrator | ~477 | + +### Dec 20, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30808 | 6:05 PM | ๐Ÿ”ด | Fixed worker readiness check to fail on initialization errors | ~315 | +| #30800 | 6:03 PM | ๐Ÿ”ต | Dual Error Logging in Background Initialization | ~367 | +| #30799 | " | ๐Ÿ”ต | Background Initialization Invocation Pattern | ~365 | +| #30797 | " | ๐Ÿ”ต | Background Initialization Sequence and Error Handler Confirmed | ~450 | +| #30795 | 6:02 PM | ๐Ÿ”ต | Readiness Endpoint Returns 503 During Initialization | ~397 | +| #30793 | " | ๐Ÿ”ต | Dual Initialization State Tracking Pattern | ~388 | +| #30791 | " | ๐Ÿ”ต | Worker Service Constructor Defers SearchRoutes Initialization | ~387 | +| #30790 | " | ๐Ÿ”ต | Initialization Promise Resolver Pattern Located | ~321 | +| #30788 | " | ๐Ÿ”ต | Worker Service Initialization Resolves Promise Despite Errors | ~388 | + +### Jan 1, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35654 | 11:29 PM | โœ… | Added APPROVED OVERRIDE annotation for instruction loading HTTP route error handler | ~339 | +| #35651 | 11:28 PM | โœ… | Added APPROVED OVERRIDE annotation for shutdown error handler with process.exit | ~354 | +| #35649 | " | โœ… | Added APPROVED OVERRIDE annotation for readiness check retry loop error handling | ~374 | +| #35647 | " | โœ… | Added APPROVED OVERRIDE annotation for port availability probe error handling | ~327 | +| #35646 | " | โœ… | Added APPROVED OVERRIDE annotation for Cursor context file update error handling | ~342 | +| #35643 | 11:27 PM | โœ… | Added APPROVED OVERRIDE annotation for PID file cleanup error handling | ~320 | + \ No newline at end of file diff --git a/src/services/context/CLAUDE.md b/src/services/context/CLAUDE.md new file mode 100644 index 00000000..adfdcb11 --- /dev/null +++ b/src/services/context/CLAUDE.md @@ -0,0 +1,7 @@ + +# Recent Activity + + + +*No recent activity* + \ No newline at end of file diff --git a/src/services/context/ContextBuilder.ts b/src/services/context/ContextBuilder.ts index 52229dda..5a35a2be 100644 --- a/src/services/context/ContextBuilder.ts +++ b/src/services/context/ContextBuilder.ts @@ -17,7 +17,9 @@ import { loadContextConfig } from './ContextConfigLoader.js'; import { calculateTokenEconomics } from './TokenCalculator.js'; import { queryObservations, + queryObservationsMulti, querySummaries, + querySummariesMulti, getPriorSessionMessages, prepareSummariesForTimeline, buildTimeline, @@ -129,6 +131,9 @@ export async function generateContext( const cwd = input?.cwd ?? process.cwd(); const project = getProjectName(cwd); + // Use provided projects array (for worktree support) or fall back to single project + const projects = input?.projects || [project]; + // Initialize database const db = initializeDatabase(); if (!db) { @@ -136,9 +141,13 @@ export async function generateContext( } try { - // Query data - const observations = queryObservations(db, project, config); - const summaries = querySummaries(db, project, config); + // Query data for all projects (supports worktree: parent + worktree combined) + const observations = projects.length > 1 + ? queryObservationsMulti(db, projects, config) + : queryObservations(db, project, config); + const summaries = projects.length > 1 + ? querySummariesMulti(db, projects, config) + : querySummaries(db, project, config); // Handle empty state if (observations.length === 0 && summaries.length === 0) { diff --git a/src/services/context/ObservationCompiler.ts b/src/services/context/ObservationCompiler.ts index 6aa40cf6..76fad159 100644 --- a/src/services/context/ObservationCompiler.ts +++ b/src/services/context/ObservationCompiler.ts @@ -66,6 +66,65 @@ export function querySummaries( `).all(project, config.sessionCount + SUMMARY_LOOKAHEAD) as SessionSummary[]; } +/** + * Query observations from multiple projects (for worktree support) + * + * Returns observations from all specified projects, interleaved chronologically. + * Used when running in a worktree to show both parent repo and worktree observations. + */ +export function queryObservationsMulti( + db: SessionStore, + projects: string[], + config: ContextConfig +): Observation[] { + const typeArray = Array.from(config.observationTypes); + const typePlaceholders = typeArray.map(() => '?').join(','); + const conceptArray = Array.from(config.observationConcepts); + const conceptPlaceholders = conceptArray.map(() => '?').join(','); + + // Build IN clause for projects + const projectPlaceholders = projects.map(() => '?').join(','); + + return db.db.prepare(` + SELECT + id, memory_session_id, type, title, subtitle, narrative, + facts, concepts, files_read, files_modified, discovery_tokens, + created_at, created_at_epoch, project + FROM observations + WHERE project IN (${projectPlaceholders}) + AND type IN (${typePlaceholders}) + AND EXISTS ( + SELECT 1 FROM json_each(concepts) + WHERE value IN (${conceptPlaceholders}) + ) + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(...projects, ...typeArray, ...conceptArray, config.totalObservationCount) as Observation[]; +} + +/** + * Query session summaries from multiple projects (for worktree support) + * + * Returns summaries from all specified projects, interleaved chronologically. + * Used when running in a worktree to show both parent repo and worktree summaries. + */ +export function querySummariesMulti( + db: SessionStore, + projects: string[], + config: ContextConfig +): SessionSummary[] { + // Build IN clause for projects + const projectPlaceholders = projects.map(() => '?').join(','); + + return db.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 (${projectPlaceholders}) + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(...projects, config.sessionCount + SUMMARY_LOOKAHEAD) as SessionSummary[]; +} + /** * Convert cwd path to dashed format for transcript lookup */ diff --git a/src/services/context/formatters/CLAUDE.md b/src/services/context/formatters/CLAUDE.md new file mode 100644 index 00000000..adfdcb11 --- /dev/null +++ b/src/services/context/formatters/CLAUDE.md @@ -0,0 +1,7 @@ + +# Recent Activity + + + +*No recent activity* + \ No newline at end of file diff --git a/src/services/context/sections/CLAUDE.md b/src/services/context/sections/CLAUDE.md new file mode 100644 index 00000000..06df2919 --- /dev/null +++ b/src/services/context/sections/CLAUDE.md @@ -0,0 +1,26 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**FooterRenderer.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | +| #36283 | 8:02 PM | ๐Ÿ”„ | Phase 4: FooterRenderer Extracted with Conditional Display Logic | ~464 | + +**TimelineRenderer.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36292 | 8:04 PM | ๐Ÿ”„ | Phase 4 Module Inventory: 12 Files Created in Context Architecture | ~571 | +| #36281 | 8:01 PM | ๐Ÿ”„ | Phase 4: TimelineRenderer Extracted with Dual Format Support | ~531 | + +### Jan 5, 2026 + +**FooterRenderer.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37545 | 4:47 PM | โœ… | Issue #544 Analysis Report Created for mem-search Skill Messaging Problem | ~480 | + \ No newline at end of file diff --git a/src/services/context/sections/TimelineRenderer.ts b/src/services/context/sections/TimelineRenderer.ts index 5a493e27..2a26f507 100644 --- a/src/services/context/sections/TimelineRenderer.ts +++ b/src/services/context/sections/TimelineRenderer.ts @@ -93,7 +93,7 @@ export function renderDayTimeline( } } else { const obs = item.data as Observation; - const file = extractFirstFile(obs.files_modified, cwd); + const file = extractFirstFile(obs.files_modified, cwd, obs.files_read); const time = formatTime(obs.created_at); const showTime = time !== lastTime; const timeDisplay = showTime ? time : ''; diff --git a/src/services/context/types.ts b/src/services/context/types.ts index 5b785915..48bbb4e6 100644 --- a/src/services/context/types.ts +++ b/src/services/context/types.ts @@ -11,6 +11,8 @@ export interface ContextInput { cwd?: string; hook_event_name?: string; source?: "startup" | "resume" | "clear" | "compact"; + /** Array of projects to query (for worktree support: [parent, worktree]) */ + projects?: string[]; [key: string]: any; } @@ -56,6 +58,8 @@ export interface Observation { discovery_tokens: number | null; created_at: string; created_at_epoch: number; + /** Project this observation belongs to (for multi-project queries) */ + project?: string; } /** @@ -71,6 +75,8 @@ export interface SessionSummary { next_steps: string | null; created_at: string; created_at_epoch: number; + /** Project this summary belongs to (for multi-project queries) */ + project?: string; } /** diff --git a/src/services/domain/CLAUDE.md b/src/services/domain/CLAUDE.md new file mode 100644 index 00000000..81acaa17 --- /dev/null +++ b/src/services/domain/CLAUDE.md @@ -0,0 +1,127 @@ + +# Recent Activity + + + +### Dec 21, 2025 + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31766 | 11:11 PM | ๐ŸŸฃ | Expansiรณn de ModePrompts con campos de configuraciรณn granular | ~327 | +| #31765 | 11:10 PM | ๐Ÿ”ต | Sistema de configuraciรณn de modos con interfaces TypeScript | ~321 | +| #31764 | 11:09 PM | โš–๏ธ | Consulta arquitectรณnica con Gemini sobre reconstrucciรณn completa de prompts por modos | ~469 | +| #31704 | 9:37 PM | ๐Ÿ”ต | Mode system architecture discovered in claude-mem | ~457 | +| #31428 | 6:56 PM | ๐Ÿ”ต | Domain Types Define Observation System Interfaces | ~292 | + +**ModeManager.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31747 | 10:43 PM | ๐Ÿ”ต | PR #412 Code Review Identifies Two Critical Bugs in Mode System | ~545 | +| #31746 | 10:42 PM | ๐Ÿ”ต | PR #412 Documentation Audit Identifies Comment Quality Issues | ~535 | +| #31743 | 10:36 PM | ๐Ÿ”ต | PR #412 proposes mode system with inheritance and multilingual support | ~523 | +| #31739 | 10:28 PM | ๐ŸŸฃ | Mode Inheritance System with Parent-Override Pattern | ~373 | +| #31732 | 10:05 PM | ๐ŸŸฃ | Implemented mode inheritance system with parent-override pattern | ~430 | +| #31731 | " | ๐ŸŸฃ | Added deep merge infrastructure for mode inheritance | ~313 | +| #31729 | 9:55 PM | ๐ŸŸฃ | Mode Inheritance Parser Implementation | ~299 | +| #31728 | 9:54 PM | ๐Ÿ”ต | ModeManager System Architecture | ~314 | +| #31727 | " | โš–๏ธ | Mode Inheritance System for Multilingual Support | ~509 | +| #31725 | 9:51 PM | โš–๏ธ | Mode Inheritance System Architecture | ~509 | +| #31709 | 9:39 PM | ๐Ÿ”ต | Mode system architecture comprehensively documented | ~588 | +| #31697 | 9:24 PM | ๐Ÿ”ต | Root Cause Found: getPackageRoot() Returns Wrong Directory for ModeManager | ~399 | +| #31662 | 8:56 PM | ๐Ÿ”ต | ModeManager Path Resolution Dependency on getPackageRoot | ~361 | +| #31649 | 8:46 PM | ๐ŸŸฃ | ModeManager singleton implements dynamic mode profile loading | ~363 | +| #31446 | 7:22 PM | ๐Ÿ”ต | ModeManager Loading System Investigation | ~297 | +| #31445 | 7:21 PM | ๐Ÿ”ต | ModeManager Icon Resolution Methods | ~358 | +| #31427 | 6:56 PM | ๐Ÿ”ต | ModeManager Imports ObservationType and ObservationConcept Types | ~192 | +| #31422 | 6:50 PM | ๐Ÿ”ต | Observation Metadata Constants Usage Across Codebase | ~366 | +| #31407 | 6:26 PM | ๐Ÿ”ต | ModeManager provides observation type metadata access methods | ~283 | + +### Dec 22, 2025 + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31896 | 7:18 PM | โœ… | Commit amendรฉ avec les nouveaux types pour support multilingue des rรฉsumรฉs | ~290 | +| #31895 | " | ๐ŸŸฃ | Ajout de quatre champs de prompts de rรฉsumรฉ ร  l'interface ModePrompts | ~347 | +| #31894 | " | ๐Ÿ”ต | Interface ModePrompts contient les placeholders XML pour rรฉsumรฉs | ~354 | +| #31808 | 6:07 PM | ๐ŸŸฃ | Added customizable XML placeholder fields to ModePrompts interface | ~432 | +| #31804 | 4:53 PM | โš–๏ธ | Refined scope for prompt placeholder extraction to mode configuration | ~439 | +| #31803 | 4:52 PM | ๐Ÿ”ต | Explored prompt system architecture for placeholder customization | ~472 | +| #31800 | 4:51 PM | โš–๏ธ | Initiated design task to extract hardcoded placeholders into mode configuration | ~441 | +| #31797 | 4:49 PM | ๐Ÿ”ต | ModePrompts interface defines high-level prompt sections but not field placeholders | ~364 | +| #31793 | 4:41 PM | ๐Ÿ”ต | Completed comprehensive exploration of mode system architecture | ~525 | +| #31784 | 4:37 PM | ๐Ÿ”ต | Examined ModeConfig type definitions for prompt customization | ~317 | + +**ModeManager.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31790 | 4:39 PM | ๐Ÿ”ต | Identified files that interact with ModeManager and prompts | ~332 | +| #31785 | 4:37 PM | ๐Ÿ”ต | Examined ModeManager for mode loading and inheritance system | ~286 | + +### Dec 23, 2025 + +**ModeManager.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32033 | 7:50 PM | โš–๏ธ | Mode-to-Settings Auto-Sync Architecture Designed | ~583 | +| #32032 | 7:45 PM | ๐Ÿ”ต | Queue System Bug: Mode Loaded Once at Startup Prevents Processing | ~450 | +| #32026 | 7:39 PM | ๐Ÿ”ต | Email Investigation Mode Configuration Located | ~300 | +| #32025 | 7:35 PM | ๐Ÿ”ต | ModeManager Implementation with Inheritance System | ~474 | + +### Dec 24, 2025 + +**ModeManager.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32214 | 8:17 PM | ๐Ÿ”ต | ModeManager singleton handles mode profiles with inheritance support | ~483 | + +### Dec 25, 2025 + +**ModeManager.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32701 | 9:00 PM | ๐Ÿ”ต | Test Coverage Report Generated | ~471 | +| #32580 | 8:22 PM | ๐Ÿ”ต | Grep for resetStuckMessages and processing | ~242 | + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32558 | 8:18 PM | ๐Ÿ”ต | Identified files containing 'summary' or 'Summary' | ~167 | + +### Dec 31, 2025 + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34631 | 3:02 PM | ๐ŸŸฃ | Context-Preservation Workflow Design Documents Created | ~729 | +| #34610 | 2:58 PM | ๐Ÿ”ต | Mode Configuration System Architecture for Memory Agent Behavior | ~570 | + +### Jan 1, 2026 + +**ModeManager.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35433 | 8:43 PM | ๐Ÿ”ต | Try-Catch Block Distribution Across Services | ~372 | + +### Jan 2, 2026 + +**ModeManager.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35951 | 4:42 PM | ๐Ÿ”ต | Multi-Layer Service Architecture Discovery | ~395 | + +### Jan 3, 2026 + +**ModeManager.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36539 | 9:39 PM | ๐Ÿ”ต | ModeManager Singleton Pattern with Inheritance | ~343 | + +### Jan 5, 2026 + +**ModeManager.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37665 | 5:52 PM | ๐Ÿ”ต | Codebase uses dependency injection and lazy initialization patterns to avoid circular dependencies | ~548 | + \ No newline at end of file diff --git a/src/services/folder-index/CLAUDE.md b/src/services/folder-index/CLAUDE.md new file mode 100644 index 00000000..b895b718 --- /dev/null +++ b/src/services/folder-index/CLAUDE.md @@ -0,0 +1,37 @@ + +# Recent Activity + + + +### Jan 4, 2026 + +**FolderDiscovery.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37021 | 4:59 PM | โœ… | Deleted Redundant Folder Index Service Directory | ~299 | +| #37011 | 4:50 PM | ๐Ÿ”ต | FolderDiscovery extracts folders from observations and applies depth, exclusion, and activity filters | ~433 | + +**ClaudeMdGenerator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37012 | 4:51 PM | ๐Ÿ”ต | ClaudeMdGenerator writes tag-wrapped timeline markdown while preserving manual content | ~446 | +| #36981 | 4:25 PM | ๐Ÿ”ต | ClaudeMdGenerator creates and updates CLAUDE.md files with timeline content | ~336 | + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37010 | 4:50 PM | ๐Ÿ”ต | Type definitions specify folder-index configuration schema and timeline data structures | ~349 | + +**FolderTimelineCompiler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37009 | 4:50 PM | ๐Ÿ”ต | FolderTimelineCompiler queries database and groups activity chronologically by date | ~419 | +| #37002 | 4:45 PM | ๐Ÿ”ด | Fixed session file deduplication and summary selection in FolderTimelineCompiler | ~306 | +| #37001 | " | ๐Ÿ”ด | Fixed FolderTimelineCompiler to generate concise summaries and deduplicate files | ~284 | + +**FolderIndexOrchestrator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37008 | 4:50 PM | ๐Ÿ”ต | FolderIndexOrchestrator implements event-driven regeneration triggered by observation saves | ~418 | +| #36983 | 4:26 PM | ๐Ÿ”ต | FolderIndexOrchestrator coordinates automatic CLAUDE.md regeneration after observation saves | ~367 | + \ No newline at end of file diff --git a/src/services/infrastructure/CLAUDE.md b/src/services/infrastructure/CLAUDE.md new file mode 100644 index 00000000..4567860e --- /dev/null +++ b/src/services/infrastructure/CLAUDE.md @@ -0,0 +1,12 @@ + +# Recent Activity + + + +### Jan 4, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36864 | 1:52 AM | ๐Ÿ”ต | ProcessManager Module Imports Reviewed | ~245 | +| #36860 | 1:50 AM | ๐Ÿ”ต | ProcessManager Source Code Reviewed for WMIC Implementation | ~608 | + \ No newline at end of file diff --git a/src/services/integrations/CLAUDE.md b/src/services/integrations/CLAUDE.md new file mode 100644 index 00000000..adfdcb11 --- /dev/null +++ b/src/services/integrations/CLAUDE.md @@ -0,0 +1,7 @@ + +# Recent Activity + + + +*No recent activity* + \ No newline at end of file diff --git a/src/services/queue/CLAUDE.md b/src/services/queue/CLAUDE.md new file mode 100644 index 00000000..6e57ebe1 --- /dev/null +++ b/src/services/queue/CLAUDE.md @@ -0,0 +1,60 @@ + +# Recent Activity + + + +### Dec 28, 2025 + +**SessionQueueProcessor.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33396 | 9:53 PM | โœ… | Queue refactoring touched 12 files with net addition of 1021 lines | ~402 | +| #33395 | " | ๐ŸŸฃ | Queue system refactored with atomic message processing | ~487 | +| #33374 | 7:12 PM | ๐ŸŸฃ | Refactored Queue System with Atomic Message Claiming and In-Memory State Elimination | ~477 | +| #33384 | " | ๐Ÿ”ต | Confirmed `SessionQueueProcessor` Integration in `SessionManager` | ~289 | +| #33387 | " | โš–๏ธ | Formulated Plan to Address PR #470 Review Issues | ~441 | + +### Dec 30, 2025 + +**SessionQueueProcessor.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34409 | 1:55 PM | ๐Ÿ”ต | SessionQueueProcessor Event-Driven Message Iteration | ~433 | +| #34391 | 1:40 PM | ๐Ÿ”ต | SessionQueueProcessor Respects Abort Signal But Only Stops Iterator Loop | ~382 | + +### Jan 1, 2026 + +**SessionQueueProcessor.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35521 | 9:35 PM | ๐Ÿ”ต | Queue Processor Uses Database-Backed Message Store | ~316 | +| #35433 | 8:43 PM | ๐Ÿ”ต | Try-Catch Block Distribution Across Services | ~372 | +| #35432 | " | ๐Ÿ”ต | Services Directory Structure Mapped | ~268 | + +### Jan 2, 2026 + +**SessionQueueProcessor.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35951 | 4:42 PM | ๐Ÿ”ต | Multi-Layer Service Architecture Discovery | ~395 | +| #35887 | 2:47 PM | ๐Ÿ”ต | SessionQueueProcessor Has Error Recovery But Doesn't Mark Failed | ~353 | +| #35851 | 2:32 PM | ๐Ÿ”ต | Queue Processor Uses Atomic Claiming with Event-Driven Wake-Up | ~464 | + +### Jan 3, 2026 + +**SessionQueueProcessor.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36343 | 8:29 PM | ๐Ÿ”„ | SessionQueueProcessor Updated to Use claimAndDelete | ~299 | +| #36340 | 8:28 PM | ๐Ÿ”ต | Complete Duplicate Bug Analysis via Explore Agent | ~435 | +| #36323 | 8:25 PM | ๐Ÿ”ต | Message Queue Architecture Scope Expanded | ~302 | +| #36314 | " | ๐Ÿ”ต | Message Queue Processing Duplicate Bug Investigation | ~316 | + +### Jan 4, 2026 + +**SessionQueueProcessor.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36713 | 12:11 AM | ๐Ÿ”ต | Issue #520 Stuck Messages Already Resolved | ~569 | +| #36711 | " | ๐Ÿ”ต | Issue #520 Stuck Messages Analysis - Already Resolved | ~526 | + \ No newline at end of file diff --git a/src/services/server/CLAUDE.md b/src/services/server/CLAUDE.md new file mode 100644 index 00000000..98613b34 --- /dev/null +++ b/src/services/server/CLAUDE.md @@ -0,0 +1,34 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**Server.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36689 | 11:56 PM | ๐Ÿ”ต | PR #538 Review Findings - Modular Architecture Refactor | ~590 | +| #36583 | 9:57 PM | ๐ŸŸฃ | Server Test Suite Created | ~485 | +| #36427 | 8:59 PM | ๐Ÿ”ต | Server Class Architecture and Route Registration | ~447 | + +**ErrorHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36581 | 9:57 PM | ๐ŸŸฃ | ErrorHandler Test Suite Created for Phase 6 | ~444 | +| #36454 | 9:03 PM | ๐Ÿ”ต | Centralized Express Error Handling | ~446 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + +**index.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36575 | 9:55 PM | ๐Ÿ”ต | Server Layer API Documentation for Phase 6 | ~521 | + +### Jan 5, 2026 + +**Server.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37758 | 6:25 PM | โš–๏ธ | Integration Test Design for Four Critical Testing Gaps | ~729 | +| #37533 | 4:44 PM | ๐Ÿ”ต | Windows IPC Detection Logic and Managed Mode Handling | ~427 | + \ No newline at end of file diff --git a/src/services/sqlite/CLAUDE.md b/src/services/sqlite/CLAUDE.md new file mode 100644 index 00000000..e7fd81ea --- /dev/null +++ b/src/services/sqlite/CLAUDE.md @@ -0,0 +1,95 @@ + +# Recent Activity + + + +### Dec 8, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22310 | 9:46 PM | ๐ŸŸฃ | Complete Hook Lifecycle Documentation Generated | ~603 | +| #22305 | 9:45 PM | ๐Ÿ”ต | Session Summary Storage and Status Lifecycle | ~472 | +| #22304 | " | ๐Ÿ”ต | Session Creation Idempotency and Observation Storage | ~481 | +| #22303 | " | ๐Ÿ”ต | SessionStore CRUD Operations for Hook Integration | ~392 | +| #22300 | 9:44 PM | ๐Ÿ”ต | SessionStore Database Management and Schema Migrations | ~455 | +| #22299 | " | ๐Ÿ”ต | Database Schema and Entity Types | ~460 | +| #21976 | 5:24 PM | ๐ŸŸฃ | storeObservation Saves tool_use_id to Database | ~298 | + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23808 | 10:42 PM | ๐Ÿ”ต | migrations.ts Already Migrated to bun:sqlite | ~312 | +| #23807 | " | ๐Ÿ”ต | SessionSearch.ts Already Migrated to bun:sqlite | ~321 | +| #23805 | " | ๐Ÿ”ต | Database.ts Already Migrated to bun:sqlite | ~290 | +| #23784 | 9:59 PM | โœ… | SessionStore.ts db.pragma() Converted to db.query().all() Pattern | ~198 | +| #23783 | 9:58 PM | โœ… | SessionStore.ts Migration004 Multi-Statement db.exec() Converted to db.run() | ~220 | +| #23782 | " | โœ… | SessionStore.ts initializeSchema() db.exec() Converted to db.run() | ~197 | +| #23781 | " | โœ… | SessionStore.ts Constructor PRAGMA Calls Converted to db.run() | ~215 | +| #23780 | " | โœ… | SessionStore.ts Type Annotation Updated | ~183 | +| #23779 | " | โœ… | SessionStore.ts Import Updated to bun:sqlite | ~237 | +| #23778 | 9:57 PM | โœ… | Database.ts Import Updated to bun:sqlite | ~177 | +| #23777 | " | ๐Ÿ”ต | SessionStore.ts Current Implementation - better-sqlite3 Import and API Usage | ~415 | +| #23776 | " | ๐Ÿ”ต | migrations.ts Current Implementation - better-sqlite3 Import | ~285 | +| #23775 | " | ๐Ÿ”ต | Database.ts Current Implementation - better-sqlite3 Import | ~286 | +| #23774 | " | ๐Ÿ”ต | SessionSearch.ts Current Implementation - better-sqlite3 Import | ~309 | +| #23671 | 8:36 PM | ๐Ÿ”ต | getUserPromptsByIds Method Implementation with Filtering and Ordering | ~326 | +| #23670 | " | ๐Ÿ”ต | getUserPromptsByIds Method Location in SessionStore | ~145 | +| #23635 | 8:10 PM | ๐Ÿ”ด | Fixed SessionStore.ts Concepts Filter SQL Parameter Bug | ~297 | +| #23634 | " | ๐Ÿ”ต | SessionStore.ts Concepts Filter Bug Confirmed at Line 849 | ~356 | +| #23522 | 5:27 PM | ๐Ÿ”ต | Complete TypeScript Type Definitions for Database Entities | ~433 | +| #23521 | " | ๐Ÿ”ต | Database Schema Structure with 7 Migration Versions | ~461 | + +### Dec 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29868 | 8:19 PM | ๐Ÿ”ต | SessionStore Architecture Review for Mode Metadata Addition | ~350 | +| #29243 | 12:13 AM | ๐Ÿ”ต | Observations Table Schema Migration: Text Field Made Nullable | ~496 | +| #29241 | 12:12 AM | ๐Ÿ”ต | Migration001: Core Schema for Sessions, Memories, Overviews, Diagnostics, Transcripts | ~555 | +| #29238 | 12:11 AM | ๐Ÿ”ต | Observation Type Schema Evolution: Five to Six Types | ~331 | +| #29237 | " | ๐Ÿ”ต | SQLite SessionStore with Schema Migrations and WAL Mode | ~520 | + +### Dec 21, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31622 | 8:26 PM | ๐Ÿ”„ | Completed SessionStore logging standardization | ~270 | +| #31621 | " | ๐Ÿ”„ | Standardized error logging for boundary timestamps query | ~253 | +| #31620 | " | ๐Ÿ”„ | Standardized error logging in getTimelineAroundObservation | ~252 | +| #31619 | " | ๐Ÿ”„ | Replaced console.log with logger.debug in SessionStore | ~263 | + +### Dec 27, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33213 | 9:04 PM | ๐Ÿ”ต | SessionStore Implements KISS Session ID Threading via INSERT OR IGNORE Pattern | ~673 | + +### Dec 28, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33548 | 10:59 PM | โœ… | Reverted memory_session_id NULL Initialization to contentSessionId Placeholder | ~421 | +| #33546 | 10:57 PM | ๐Ÿ”ด | Fixed createSDKSession to Initialize memory_session_id as NULL | ~406 | +| #33545 | " | ๐Ÿ”ต | createSDKSession Sets memory_session_id Equal to content_session_id Initially | ~378 | +| #33544 | " | ๐Ÿ”ต | SessionStore Migration 17 Already Renamed Session ID Columns | ~451 | + +### Jan 2, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36028 | 9:20 PM | ๐Ÿ”„ | Try-Catch Block Removed from Database Migration | ~291 | + +### Jan 3, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36653 | 11:03 PM | ๐Ÿ”ต | storeObservation Method Signature Shows Parameter Named memorySessionId | ~474 | +| #36652 | " | ๐Ÿ”ต | createSDKSession Implementation Confirms NULL Initialization With Security Rationale | ~488 | +| #36650 | 11:02 PM | ๐Ÿ”ต | Phase 1 Analysis Reveals Implementation-Test Mismatch on NULL vs Placeholder Initialization | ~687 | +| #36649 | " | ๐Ÿ”ต | SessionStore Implementation Reveals NULL-Based Memory Session ID Initialization Pattern | ~770 | +| #36175 | 6:52 PM | โœ… | MigrationRunner Re-exported from Migrations.ts | ~405 | +| #36172 | " | ๐Ÿ”ต | Migrations.ts Contains Legacy Migration System | ~650 | +| #36163 | 6:48 PM | ๐Ÿ”ต | SessionStore Method Inventory and Extraction Boundaries | ~692 | +| #36162 | 6:47 PM | ๐Ÿ”ต | SessionStore Architecture and Migration History | ~593 | + \ No newline at end of file diff --git a/src/services/sqlite/PendingMessageStore.ts b/src/services/sqlite/PendingMessageStore.ts index a9011889..583b0847 100644 --- a/src/services/sqlite/PendingMessageStore.ts +++ b/src/services/sqlite/PendingMessageStore.ts @@ -96,6 +96,11 @@ export class PendingMessageStore { // Delete immediately - no "processing" state needed const deleteStmt = this.db.prepare('DELETE FROM pending_messages WHERE id = ?'); deleteStmt.run(msg.id); + + // Log claim with minimal info (avoid logging full payload) + logger.info('QUEUE', `CLAIMED | sessionDbId=${sessionId} | messageId=${msg.id} | type=${msg.message_type}`, { + sessionId: sessionId + }); } return msg; }); diff --git a/src/services/sqlite/SessionSearch.ts b/src/services/sqlite/SessionSearch.ts index cfd553c5..4c78845c 100644 --- a/src/services/sqlite/SessionSearch.ts +++ b/src/services/sqlite/SessionSearch.ts @@ -336,15 +336,64 @@ export class SessionSearch { return this.db.prepare(sql).all(...params) as ObservationSearchResult[]; } + /** + * Check if a file is a direct child of a folder (not in a subfolder) + */ + private isDirectChild(filePath: string, folderPath: string): boolean { + if (!filePath.startsWith(folderPath + '/')) return false; + const remainder = filePath.slice(folderPath.length + 1); + return !remainder.includes('/'); + } + + /** + * Check if an observation has any files that are direct children of the folder + */ + private hasDirectChildFile(obs: ObservationSearchResult, folderPath: string): boolean { + const checkFiles = (filesJson: string | null): boolean => { + if (!filesJson) return false; + try { + const files = JSON.parse(filesJson); + if (Array.isArray(files)) { + return files.some(f => this.isDirectChild(f, folderPath)); + } + } catch {} + return false; + }; + + return checkFiles(obs.files_modified) || checkFiles(obs.files_read); + } + + /** + * Check if a session has any files that are direct children of the folder + */ + private hasDirectChildFileSession(session: SessionSummarySearchResult, folderPath: string): boolean { + const checkFiles = (filesJson: string | null): boolean => { + if (!filesJson) return false; + try { + const files = JSON.parse(filesJson); + if (Array.isArray(files)) { + return files.some(f => this.isDirectChild(f, folderPath)); + } + } catch {} + return false; + }; + + return checkFiles(session.files_read) || checkFiles(session.files_edited); + } + /** * Find observations and summaries by file path + * When isFolder=true, only returns results with files directly in the folder (not subfolders) */ findByFile(filePath: string, options: SearchOptions = {}): { observations: ObservationSearchResult[]; sessions: SessionSummarySearchResult[]; } { const params: any[] = []; - const { limit = 50, offset = 0, orderBy = 'date_desc', ...filters } = options; + const { limit = 50, offset = 0, orderBy = 'date_desc', isFolder = false, ...filters } = options; + + // Query more results if we're filtering to direct children + const queryLimit = isFolder ? limit * 3 : limit; // Add file to filters const fileFilters = { ...filters, files: filePath }; @@ -359,9 +408,14 @@ export class SessionSearch { LIMIT ? OFFSET ? `; - params.push(limit, offset); + params.push(queryLimit, offset); - const observations = this.db.prepare(observationsSql).all(...params) as ObservationSearchResult[]; + let observations = this.db.prepare(observationsSql).all(...params) as ObservationSearchResult[]; + + // Post-filter to direct children if isFolder mode + if (isFolder) { + observations = observations.filter(obs => this.hasDirectChildFile(obs, filePath)).slice(0, limit); + } // For session summaries, search files_read and files_edited const sessionParams: any[] = []; @@ -403,9 +457,14 @@ export class SessionSearch { LIMIT ? OFFSET ? `; - sessionParams.push(limit, offset); + sessionParams.push(queryLimit, offset); - const sessions = this.db.prepare(sessionsSql).all(...sessionParams) as SessionSummarySearchResult[]; + let sessions = this.db.prepare(sessionsSql).all(...sessionParams) as SessionSummarySearchResult[]; + + // Post-filter to direct children if isFolder mode + if (isFolder) { + sessions = sessions.filter(s => this.hasDirectChildFileSession(s, filePath)).slice(0, limit); + } return { observations, sessions }; } diff --git a/src/services/sqlite/SessionStore.ts b/src/services/sqlite/SessionStore.ts index a5831b66..e536edec 100644 --- a/src/services/sqlite/SessionStore.ts +++ b/src/services/sqlite/SessionStore.ts @@ -152,7 +152,7 @@ export class SessionStore { if (!hasWorkerPort) { this.db.run('ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER'); - logger.info('DB', 'Added worker_port column to sdk_sessions table'); + logger.debug('DB', 'Added worker_port column to sdk_sessions table'); } // Record migration @@ -173,7 +173,7 @@ export class SessionStore { if (!hasPromptCounter) { this.db.run('ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0'); - logger.info('DB', 'Added prompt_counter column to sdk_sessions table'); + logger.debug('DB', 'Added prompt_counter column to sdk_sessions table'); } // Check observations for prompt_number @@ -182,7 +182,7 @@ export class SessionStore { if (!obsHasPromptNumber) { this.db.run('ALTER TABLE observations ADD COLUMN prompt_number INTEGER'); - logger.info('DB', 'Added prompt_number column to observations table'); + logger.debug('DB', 'Added prompt_number column to observations table'); } // Check session_summaries for prompt_number @@ -191,7 +191,7 @@ export class SessionStore { if (!sumHasPromptNumber) { this.db.run('ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER'); - logger.info('DB', 'Added prompt_number column to session_summaries table'); + logger.debug('DB', 'Added prompt_number column to session_summaries table'); } // Record migration @@ -216,7 +216,7 @@ export class SessionStore { return; } - logger.info('DB', 'Removing UNIQUE constraint from session_summaries.memory_session_id'); + logger.debug('DB', 'Removing UNIQUE constraint from session_summaries.memory_session_id'); // Begin transaction this.db.run('BEGIN TRANSACTION'); @@ -270,7 +270,7 @@ export class SessionStore { // Record migration this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(7, new Date().toISOString()); - logger.info('DB', 'Successfully removed UNIQUE constraint from session_summaries.memory_session_id'); + logger.debug('DB', 'Successfully removed UNIQUE constraint from session_summaries.memory_session_id'); } /** @@ -291,7 +291,7 @@ export class SessionStore { return; } - logger.info('DB', 'Adding hierarchical fields to observations table'); + logger.debug('DB', 'Adding hierarchical fields to observations table'); // Add new columns this.db.run(` @@ -307,7 +307,7 @@ export class SessionStore { // Record migration this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(8, new Date().toISOString()); - logger.info('DB', 'Successfully added hierarchical fields to observations table'); + logger.debug('DB', 'Successfully added hierarchical fields to observations table'); } /** @@ -329,7 +329,7 @@ export class SessionStore { return; } - logger.info('DB', 'Making observations.text nullable'); + logger.debug('DB', 'Making observations.text nullable'); // Begin transaction this.db.run('BEGIN TRANSACTION'); @@ -385,7 +385,7 @@ export class SessionStore { // Record migration this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(9, new Date().toISOString()); - logger.info('DB', 'Successfully made observations.text nullable'); + logger.debug('DB', 'Successfully made observations.text nullable'); } /** @@ -404,7 +404,7 @@ export class SessionStore { return; } - logger.info('DB', 'Creating user_prompts table with FTS5 support'); + logger.debug('DB', 'Creating user_prompts table with FTS5 support'); // Begin transaction this.db.run('BEGIN TRANSACTION'); @@ -462,7 +462,7 @@ export class SessionStore { // Record migration this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(10, new Date().toISOString()); - logger.info('DB', 'Successfully created user_prompts table with FTS5 support'); + logger.debug('DB', 'Successfully created user_prompts table with FTS5 support'); } /** @@ -481,7 +481,7 @@ export class SessionStore { if (!obsHasDiscoveryTokens) { this.db.run('ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0'); - logger.info('DB', 'Added discovery_tokens column to observations table'); + logger.debug('DB', 'Added discovery_tokens column to observations table'); } // Check if discovery_tokens column exists in session_summaries table @@ -490,7 +490,7 @@ export class SessionStore { if (!sumHasDiscoveryTokens) { this.db.run('ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0'); - logger.info('DB', 'Added discovery_tokens column to session_summaries table'); + logger.debug('DB', 'Added discovery_tokens column to session_summaries table'); } // Record migration only after successful column verification/addition @@ -514,7 +514,7 @@ export class SessionStore { return; } - logger.info('DB', 'Creating pending_messages table'); + logger.debug('DB', 'Creating pending_messages table'); this.db.run(` CREATE TABLE pending_messages ( @@ -544,7 +544,7 @@ export class SessionStore { this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(16, new Date().toISOString()); - logger.info('DB', 'pending_messages table created successfully'); + logger.debug('DB', 'pending_messages table created successfully'); } /** @@ -559,7 +559,7 @@ export class SessionStore { const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(17) as SchemaVersion | undefined; if (applied) return; - logger.info('DB', 'Checking session ID columns for semantic clarity rename'); + logger.debug('DB', 'Checking session ID columns for semantic clarity rename'); let renamesPerformed = 0; @@ -577,7 +577,7 @@ export class SessionStore { if (hasOldCol) { // SQLite 3.25+ supports ALTER TABLE RENAME COLUMN this.db.run(`ALTER TABLE ${table} RENAME COLUMN ${oldCol} TO ${newCol}`); - logger.info('DB', `Renamed ${table}.${oldCol} to ${newCol}`); + logger.debug('DB', `Renamed ${table}.${oldCol} to ${newCol}`); return true; } @@ -606,9 +606,9 @@ export class SessionStore { this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(17, new Date().toISOString()); if (renamesPerformed > 0) { - logger.info('DB', `Successfully renamed ${renamesPerformed} session ID columns`); + logger.debug('DB', `Successfully renamed ${renamesPerformed} session ID columns`); } else { - logger.info('DB', 'No session ID column renames needed (already up to date)'); + logger.debug('DB', 'No session ID column renames needed (already up to date)'); } } @@ -639,7 +639,7 @@ export class SessionStore { if (!hasColumn) { this.db.run('ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER'); - logger.info('DB', 'Added failed_at_epoch column to pending_messages table'); + logger.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()); diff --git a/src/services/sqlite/import/CLAUDE.md b/src/services/sqlite/import/CLAUDE.md new file mode 100644 index 00000000..8e898717 --- /dev/null +++ b/src/services/sqlite/import/CLAUDE.md @@ -0,0 +1,14 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**bulk.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36670 | 11:37 PM | โœ… | Resolved merge conflicts by accepting branch changes for 39 files | ~435 | +| #36469 | 9:04 PM | ๐Ÿ”ต | Bulk Import with Duplicate Detection | ~451 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + \ No newline at end of file diff --git a/src/services/sqlite/migrations/CLAUDE.md b/src/services/sqlite/migrations/CLAUDE.md new file mode 100644 index 00000000..ba5db153 --- /dev/null +++ b/src/services/sqlite/migrations/CLAUDE.md @@ -0,0 +1,15 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**runner.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36487 | 9:13 PM | ๐Ÿ”ด | Fixed Foreign Key Constraint Issues in Observations Test Suite | ~677 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | +| #36353 | 8:42 PM | ๐Ÿ”ต | Multiple observation table definitions found across codebase | ~280 | +| #36323 | 8:25 PM | ๐Ÿ”ต | Message Queue Architecture Scope Expanded | ~302 | + \ No newline at end of file diff --git a/src/services/sqlite/migrations/runner.ts b/src/services/sqlite/migrations/runner.ts index f48a59c9..1e4054bc 100644 --- a/src/services/sqlite/migrations/runner.ts +++ b/src/services/sqlite/migrations/runner.ts @@ -136,7 +136,7 @@ export class MigrationRunner { if (!hasWorkerPort) { this.db.run('ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER'); - logger.info('DB', 'Added worker_port column to sdk_sessions table'); + logger.debug('DB', 'Added worker_port column to sdk_sessions table'); } // Record migration @@ -157,7 +157,7 @@ export class MigrationRunner { if (!hasPromptCounter) { this.db.run('ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0'); - logger.info('DB', 'Added prompt_counter column to sdk_sessions table'); + logger.debug('DB', 'Added prompt_counter column to sdk_sessions table'); } // Check observations for prompt_number @@ -166,7 +166,7 @@ export class MigrationRunner { if (!obsHasPromptNumber) { this.db.run('ALTER TABLE observations ADD COLUMN prompt_number INTEGER'); - logger.info('DB', 'Added prompt_number column to observations table'); + logger.debug('DB', 'Added prompt_number column to observations table'); } // Check session_summaries for prompt_number @@ -175,7 +175,7 @@ export class MigrationRunner { if (!sumHasPromptNumber) { this.db.run('ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER'); - logger.info('DB', 'Added prompt_number column to session_summaries table'); + logger.debug('DB', 'Added prompt_number column to session_summaries table'); } // Record migration @@ -200,7 +200,7 @@ export class MigrationRunner { return; } - logger.info('DB', 'Removing UNIQUE constraint from session_summaries.memory_session_id'); + logger.debug('DB', 'Removing UNIQUE constraint from session_summaries.memory_session_id'); // Begin transaction this.db.run('BEGIN TRANSACTION'); @@ -254,7 +254,7 @@ export class MigrationRunner { // Record migration this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(7, new Date().toISOString()); - logger.info('DB', 'Successfully removed UNIQUE constraint from session_summaries.memory_session_id'); + logger.debug('DB', 'Successfully removed UNIQUE constraint from session_summaries.memory_session_id'); } /** @@ -275,7 +275,7 @@ export class MigrationRunner { return; } - logger.info('DB', 'Adding hierarchical fields to observations table'); + logger.debug('DB', 'Adding hierarchical fields to observations table'); // Add new columns this.db.run(` @@ -291,7 +291,7 @@ export class MigrationRunner { // Record migration this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(8, new Date().toISOString()); - logger.info('DB', 'Successfully added hierarchical fields to observations table'); + logger.debug('DB', 'Successfully added hierarchical fields to observations table'); } /** @@ -313,7 +313,7 @@ export class MigrationRunner { return; } - logger.info('DB', 'Making observations.text nullable'); + logger.debug('DB', 'Making observations.text nullable'); // Begin transaction this.db.run('BEGIN TRANSACTION'); @@ -369,7 +369,7 @@ export class MigrationRunner { // Record migration this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(9, new Date().toISOString()); - logger.info('DB', 'Successfully made observations.text nullable'); + logger.debug('DB', 'Successfully made observations.text nullable'); } /** @@ -388,7 +388,7 @@ export class MigrationRunner { return; } - logger.info('DB', 'Creating user_prompts table with FTS5 support'); + logger.debug('DB', 'Creating user_prompts table with FTS5 support'); // Begin transaction this.db.run('BEGIN TRANSACTION'); @@ -446,7 +446,7 @@ export class MigrationRunner { // Record migration this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(10, new Date().toISOString()); - logger.info('DB', 'Successfully created user_prompts table with FTS5 support'); + logger.debug('DB', 'Successfully created user_prompts table with FTS5 support'); } /** @@ -465,7 +465,7 @@ export class MigrationRunner { if (!obsHasDiscoveryTokens) { this.db.run('ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0'); - logger.info('DB', 'Added discovery_tokens column to observations table'); + logger.debug('DB', 'Added discovery_tokens column to observations table'); } // Check if discovery_tokens column exists in session_summaries table @@ -474,7 +474,7 @@ export class MigrationRunner { if (!sumHasDiscoveryTokens) { this.db.run('ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0'); - logger.info('DB', 'Added discovery_tokens column to session_summaries table'); + logger.debug('DB', 'Added discovery_tokens column to session_summaries table'); } // Record migration only after successful column verification/addition @@ -498,7 +498,7 @@ export class MigrationRunner { return; } - logger.info('DB', 'Creating pending_messages table'); + logger.debug('DB', 'Creating pending_messages table'); this.db.run(` CREATE TABLE pending_messages ( @@ -528,7 +528,7 @@ export class MigrationRunner { this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(16, new Date().toISOString()); - logger.info('DB', 'pending_messages table created successfully'); + logger.debug('DB', 'pending_messages table created successfully'); } /** @@ -543,7 +543,7 @@ export class MigrationRunner { const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(17) as SchemaVersion | undefined; if (applied) return; - logger.info('DB', 'Checking session ID columns for semantic clarity rename'); + logger.debug('DB', 'Checking session ID columns for semantic clarity rename'); let renamesPerformed = 0; @@ -561,7 +561,7 @@ export class MigrationRunner { if (hasOldCol) { // SQLite 3.25+ supports ALTER TABLE RENAME COLUMN this.db.run(`ALTER TABLE ${table} RENAME COLUMN ${oldCol} TO ${newCol}`); - logger.info('DB', `Renamed ${table}.${oldCol} to ${newCol}`); + logger.debug('DB', `Renamed ${table}.${oldCol} to ${newCol}`); return true; } @@ -590,9 +590,9 @@ export class MigrationRunner { this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(17, new Date().toISOString()); if (renamesPerformed > 0) { - logger.info('DB', `Successfully renamed ${renamesPerformed} session ID columns`); + logger.debug('DB', `Successfully renamed ${renamesPerformed} session ID columns`); } else { - logger.info('DB', 'No session ID column renames needed (already up to date)'); + logger.debug('DB', 'No session ID column renames needed (already up to date)'); } } @@ -623,7 +623,7 @@ export class MigrationRunner { if (!hasColumn) { this.db.run('ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER'); - logger.info('DB', 'Added failed_at_epoch column to pending_messages table'); + logger.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()); diff --git a/src/services/sqlite/observations/CLAUDE.md b/src/services/sqlite/observations/CLAUDE.md new file mode 100644 index 00000000..cb1c3be0 --- /dev/null +++ b/src/services/sqlite/observations/CLAUDE.md @@ -0,0 +1,33 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**files.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36670 | 11:37 PM | โœ… | Resolved merge conflicts by accepting branch changes for 39 files | ~435 | +| #36453 | 9:02 PM | ๐Ÿ”ต | Session File Aggregation | ~384 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + +**store.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36483 | 9:11 PM | ๐ŸŸฃ | Observations Module Test Suite Implemented | ~716 | +| #36445 | 9:01 PM | ๐Ÿ”ต | Observation Storage with Timestamp Override | ~444 | + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36470 | 9:06 PM | ๐Ÿ”ต | SQLite Module API Documentation Verified for Test Implementation | ~765 | +| #36447 | 9:02 PM | ๐Ÿ”ต | Observation Type Definitions | ~459 | + +### Jan 4, 2026 + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36770 | 12:42 AM | ๐Ÿ”ต | Export Script Type Duplication Analysis Complete | ~555 | + \ No newline at end of file diff --git a/src/services/sqlite/prompts/CLAUDE.md b/src/services/sqlite/prompts/CLAUDE.md new file mode 100644 index 00000000..947d6c14 --- /dev/null +++ b/src/services/sqlite/prompts/CLAUDE.md @@ -0,0 +1,32 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**get.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36670 | 11:37 PM | โœ… | Resolved merge conflicts by accepting branch changes for 39 files | ~435 | +| #36464 | 9:04 PM | ๐Ÿ”ต | User Prompt Retrieval Functions | ~471 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + +**store.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36485 | 9:12 PM | ๐ŸŸฃ | Prompts Module Test Suite Implemented | ~680 | +| #36466 | 9:04 PM | ๐Ÿ”ต | User Prompt Storage | ~363 | + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36470 | 9:06 PM | ๐Ÿ”ต | SQLite Module API Documentation Verified for Test Implementation | ~765 | + +### Jan 4, 2026 + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36770 | 12:42 AM | ๐Ÿ”ต | Export Script Type Duplication Analysis Complete | ~555 | + \ No newline at end of file diff --git a/src/services/sqlite/sessions/CLAUDE.md b/src/services/sqlite/sessions/CLAUDE.md new file mode 100644 index 00000000..1415fb01 --- /dev/null +++ b/src/services/sqlite/sessions/CLAUDE.md @@ -0,0 +1,32 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**create.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36670 | 11:37 PM | โœ… | Resolved merge conflicts by accepting branch changes for 39 files | ~435 | +| #36482 | 9:10 PM | ๐ŸŸฃ | Sessions Module Test Suite Implemented | ~627 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36470 | 9:06 PM | ๐Ÿ”ต | SQLite Module API Documentation Verified for Test Implementation | ~765 | +| #36439 | 9:01 PM | ๐Ÿ”ต | Session Type Hierarchy | ~420 | + +**get.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36438 | 9:01 PM | ๐Ÿ”ต | Session Retrieval Functions with Database-First Pattern | ~479 | + +### Jan 4, 2026 + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36770 | 12:42 AM | ๐Ÿ”ต | Export Script Type Duplication Analysis Complete | ~555 | + \ No newline at end of file diff --git a/src/services/sqlite/summaries/CLAUDE.md b/src/services/sqlite/summaries/CLAUDE.md new file mode 100644 index 00000000..5f0c064b --- /dev/null +++ b/src/services/sqlite/summaries/CLAUDE.md @@ -0,0 +1,32 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**get.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36670 | 11:37 PM | โœ… | Resolved merge conflicts by accepting branch changes for 39 files | ~435 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + +**store.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36484 | 9:11 PM | ๐ŸŸฃ | Summaries Module Test Suite Implemented | ~708 | +| #36461 | 9:03 PM | ๐Ÿ”ต | Summary Storage with Timestamp Override | ~439 | + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36470 | 9:06 PM | ๐Ÿ”ต | SQLite Module API Documentation Verified for Test Implementation | ~765 | +| #36457 | 9:03 PM | ๐Ÿ”ต | Summary Type Hierarchy | ~426 | + +### Jan 4, 2026 + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36770 | 12:42 AM | ๐Ÿ”ต | Export Script Type Duplication Analysis Complete | ~555 | + \ No newline at end of file diff --git a/src/services/sqlite/timeline/CLAUDE.md b/src/services/sqlite/timeline/CLAUDE.md new file mode 100644 index 00000000..4f93d793 --- /dev/null +++ b/src/services/sqlite/timeline/CLAUDE.md @@ -0,0 +1,12 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**queries.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + \ No newline at end of file diff --git a/src/services/sqlite/types.ts b/src/services/sqlite/types.ts index 6786c7f9..deee68a6 100644 --- a/src/services/sqlite/types.ts +++ b/src/services/sqlite/types.ts @@ -267,6 +267,8 @@ export interface SearchOptions extends SearchFilters { limit?: number; offset?: number; orderBy?: 'relevance' | 'date_desc' | 'date_asc'; + /** When true, treats filePath as a folder and only matches direct children (not descendants) */ + isFolder?: boolean; } export interface ObservationSearchResult extends ObservationRow { diff --git a/src/services/sync/CLAUDE.md b/src/services/sync/CLAUDE.md new file mode 100644 index 00000000..3ea221d0 --- /dev/null +++ b/src/services/sync/CLAUDE.md @@ -0,0 +1,133 @@ + +# Recent Activity + + + +### Dec 21, 2025 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31745 | 10:42 PM | ๐Ÿ”ต | PR #412 Error Handling Audit Reveals Seven Silent Failure Patterns | ~529 | +| #31741 | 10:29 PM | ๐ŸŸฃ | Configurable Local Embedding Models with Multilingual Support | ~461 | +| #31738 | 10:26 PM | ๐Ÿ”ต | Configurable Embedding Models Already Implemented in Feature Branch | ~622 | +| #31737 | 10:23 PM | ๐Ÿ”ต | ChromaSync Embedding Architecture Investigation | ~582 | +| #31715 | 9:42 PM | ๐Ÿ”ต | Multilingual Embeddings Feature Branch Found | ~371 | +| #31591 | 8:11 PM | ๐Ÿ”„ | Phase 4 completed - Removed error hiding from utility files | ~441 | + +### Dec 22, 2025 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31790 | 4:39 PM | ๐Ÿ”ต | Identified files that interact with ModeManager and prompts | ~332 | + +### Dec 24, 2025 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32154 | 6:41 PM | ๐Ÿ”ต | ChromaSync Vector Database Architecture | ~558 | +| #32153 | 6:40 PM | ๐Ÿ”ต | Session Identifier Architecture Across Codebase | ~529 | + +### Dec 25, 2025 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32558 | 8:18 PM | ๐Ÿ”ต | Identified files containing 'summary' or 'Summary' | ~167 | + +### Dec 26, 2025 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32912 | 10:02 PM | ๐Ÿ”ต | Error handling uses consistent logger.error and logger.failure patterns throughout codebase | ~508 | + +### Dec 27, 2025 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33245 | 9:53 PM | ๐Ÿ”ต | Chroma Collection Creation Fails Silently in Fire-and-Forget Backfill | ~355 | +| #33244 | " | ๐Ÿ”ต | Commit 63fd158 Removed Double JSON Serialization from SDKAgent | ~304 | +| #33242 | 9:52 PM | ๐Ÿ”ต | ChromaSync Double-JSON Pattern Intact - Regression Not From Code Changes | ~367 | +| #33241 | " | ๐Ÿ”ต | mem-search Regression Root Cause: Silent ChromaSync Initialization Failures | ~568 | +| #33240 | 9:51 PM | ๐Ÿ”ต | mem-search Regression Root Cause: Silent ChromaSync Initialization Failures | ~478 | +| #33239 | 9:50 PM | ๐Ÿ”ต | mem-search Regression Root Cause: Silent ChromaSync Initialization Failures | ~460 | +| #33238 | 9:49 PM | ๐Ÿ”ต | Chroma Vector Search Initialization Failure in DatabaseManager | ~446 | +| #33233 | 9:44 PM | ๐Ÿ”ต | Vector Search Unavailable in mem-search - Chroma Not Initialized | ~335 | +| #33225 | 9:37 PM | ๐Ÿ”ต | Worker Performance Barriers Analysis | ~415 | +| #33224 | 9:35 PM | ๐Ÿ”ต | Worker Performance Barriers: Timeouts and Rate Limiting | ~491 | +| #33082 | 6:45 PM | ๐Ÿ”ต | User directory path patterns in codebase | ~362 | + +### Dec 28, 2025 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33439 | 10:15 PM | ๐Ÿ”„ | Extended Session ID Renaming to Additional Codebase Components | ~352 | +| #33322 | 3:09 PM | ๐Ÿ”ต | Worker Performance Bottlenecks Identified Across Multiple Subsystems | ~399 | +| #33299 | 3:08 PM | ๐Ÿ”ต | mem-search Regression Caused by Logger Error Serialization Bug | ~417 | +| #33292 | " | ๐Ÿ”„ | ChromaSync Lazy Initialization Replaces Startup Backfill | ~398 | + +### Dec 29, 2025 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33860 | 4:35 PM | ๐Ÿ”ต | Comprehensive Bun integration architecture and platform-specific implementation details | ~619 | +| #33791 | 3:48 PM | ๐Ÿ”ต | ChromaSync.close() terminates subprocess via transport.close() | ~302 | +| #33786 | 3:47 PM | ๐Ÿ”ต | ChromaDB vector database synchronization architecture | ~535 | +| #33778 | 3:36 PM | ๐Ÿ”ต | ChromaSync spawns chroma-mcp subprocess via StdioClientTransport | ~419 | + +### Dec 30, 2025 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34440 | 2:16 PM | ๐Ÿ”ต | TypeScript type errors identified across multiple components | ~328 | + +### Jan 1, 2026 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35434 | 8:45 PM | ๐Ÿ”ต | Comprehensive Try-Catch Audit of Worker Service Error Handling | ~792 | +| #35433 | 8:43 PM | ๐Ÿ”ต | Try-Catch Block Distribution Across Services | ~372 | +| #35432 | " | ๐Ÿ”ต | Services Directory Structure Mapped | ~268 | + +### Jan 2, 2026 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35951 | 4:42 PM | ๐Ÿ”ต | Multi-Layer Service Architecture Discovery | ~395 | +| #35902 | 2:49 PM | ๐Ÿ”ด | Improved ChromaSync Error Logging | ~280 | +| #35901 | " | ๐Ÿ”ต | PR #525 File Changes Summary | ~376 | +| #35864 | 2:35 PM | ๐Ÿ”ต | Chroma Sync Methods Block on addDocuments Completion | ~441 | +| #35861 | 2:34 PM | ๐Ÿ”ต | ChromaSync Provides Vector Database Integration with Fail-Fast Design | ~476 | +| #35789 | 1:53 PM | โš–๏ธ | Error Logging Anti-Pattern Identified: Incomplete Error Information | ~404 | +| #35785 | 1:46 PM | ๐Ÿ”ต | Incomplete Error Logging Pattern in ChromaSync Collection Check | ~349 | +| #35783 | 1:45 PM | โš–๏ธ | Error Logging Anti-Pattern Identification Task | ~399 | +| #35775 | 1:24 PM | ๐Ÿ”ต | ensureConnection Call Sites in ChromaSync | ~309 | +| #35774 | " | ๐Ÿ”ด | Added Connection Error Detection in ensureCollection | ~342 | +| #35773 | " | ๐Ÿ”ต | ChromaSync Service Architecture and Connection Flow | ~420 | +| #35726 | 1:09 PM | โœ… | ChromaDB Error Handling Fix Committed to Bugfix Branch | ~314 | +| #35725 | " | ๐Ÿ”ด | ChromaDB Connection Error Handling Fixed | ~335 | +| #35724 | " | โœ… | Bugfix Branch Created with ChromaDB Connection Changes | ~303 | + +### Jan 3, 2026 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36296 | 8:04 PM | ๐Ÿ”ต | TypeScript Compilation Check: Pre-Existing Errors Unrelated to Refactoring | ~621 | + +### Jan 5, 2026 + +**ChromaSync.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37758 | 6:25 PM | โš–๏ธ | Integration Test Design for Four Critical Testing Gaps | ~729 | + \ No newline at end of file diff --git a/src/services/sync/ChromaSync.ts b/src/services/sync/ChromaSync.ts index 01eb9a0b..53bda769 100644 --- a/src/services/sync/ChromaSync.ts +++ b/src/services/sync/ChromaSync.ts @@ -165,10 +165,24 @@ export class ChromaSync { logger.debug('CHROMA_SYNC', 'Collection exists', { collection: this.collectionName }); } catch (error) { - // Log the FULL error - don't try to guess what type it is - logger.warn('CHROMA_SYNC', 'Collection check failed, attempting to create', { collection: this.collectionName }, error as Error); + // Check if this is a connection error - don't try to create collection + const errorMessage = error instanceof Error ? error.message : String(error); + const isConnectionError = + errorMessage.includes('Not connected') || + errorMessage.includes('Connection closed') || + errorMessage.includes('MCP error -32000'); - // Try to create collection - if this also fails, we'll see that error too + if (isConnectionError) { + // Reset connection state so next call attempts reconnect + this.connected = false; + this.client = null; + logger.error('CHROMA_SYNC', 'Connection lost during collection check', + { collection: this.collectionName }, error as Error); + throw new Error(`Chroma connection lost: ${errorMessage}`); + } + + // Only attempt creation if it's genuinely a "collection not found" error + logger.warn('CHROMA_SYNC', 'Collection check failed, attempting to create', { collection: this.collectionName }, error as Error); logger.info('CHROMA_SYNC', 'Creating collection', { collection: this.collectionName }); try { @@ -642,7 +656,7 @@ export class ChromaSync { const batch = allDocs.slice(i, i + this.BATCH_SIZE); await this.addDocuments(batch); - logger.info('CHROMA_SYNC', 'Backfill progress', { + logger.debug('CHROMA_SYNC', 'Backfill progress', { project: this.project, progress: `${Math.min(i + this.BATCH_SIZE, allDocs.length)}/${allDocs.length}` }); @@ -683,7 +697,7 @@ export class ChromaSync { const batch = summaryDocs.slice(i, i + this.BATCH_SIZE); await this.addDocuments(batch); - logger.info('CHROMA_SYNC', 'Backfill progress', { + logger.debug('CHROMA_SYNC', 'Backfill progress', { project: this.project, progress: `${Math.min(i + this.BATCH_SIZE, summaryDocs.length)}/${summaryDocs.length}` }); @@ -732,7 +746,7 @@ export class ChromaSync { const batch = promptDocs.slice(i, i + this.BATCH_SIZE); await this.addDocuments(batch); - logger.info('CHROMA_SYNC', 'Backfill progress', { + logger.debug('CHROMA_SYNC', 'Backfill progress', { project: this.project, progress: `${Math.min(i + this.BATCH_SIZE, promptDocs.length)}/${promptDocs.length}` }); @@ -788,10 +802,29 @@ export class ChromaSync { where: whereStringified }; - const result = await this.client.callTool({ - name: 'chroma_query_documents', - arguments: arguments_obj - }); + let result; + try { + result = await this.client.callTool({ + name: 'chroma_query_documents', + arguments: arguments_obj + }); + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error); + const isConnectionError = + errorMessage.includes('Not connected') || + errorMessage.includes('Connection closed') || + errorMessage.includes('MCP error -32000'); + + if (isConnectionError) { + // Reset connection state so next call attempts reconnect + this.connected = false; + this.client = null; + logger.error('CHROMA_SYNC', 'Connection lost during query', + { project: this.project, query }, error as Error); + throw new Error(`Chroma query failed - connection lost: ${errorMessage}`); + } + throw error; + } const resultText = logger.happyPathError( 'CHROMA', diff --git a/src/services/worker/CLAUDE.md b/src/services/worker/CLAUDE.md new file mode 100644 index 00000000..0fcdd838 --- /dev/null +++ b/src/services/worker/CLAUDE.md @@ -0,0 +1,125 @@ + +# Recent Activity + + + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23673 | 8:36 PM | โœ… | Add Project Filter Parameter to Session and Prompt Hydration in Search | ~306 | +| #23596 | 5:54 PM | โš–๏ธ | Import/Export Bug Fix Priority and Scope | ~415 | +| #23595 | 5:53 PM | ๐Ÿ”ด | SearchManager Returns Wrong Format for Empty Results | ~320 | +| #23594 | " | ๐Ÿ”ต | SearchManager Search Method Control Flow | ~313 | +| #23591 | 5:51 PM | ๐Ÿ”ต | SearchManager JSON Response Structure | ~231 | +| #23590 | " | ๐Ÿ”ต | Import/Export Feature Status Review | ~490 | +| #23583 | 5:50 PM | ๐Ÿ”ต | SearchManager Hybrid Search Architecture | ~495 | + +### Dec 13, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25191 | 8:04 PM | ๐Ÿ”ต | ChromaSync Instantiated in DatabaseManager Constructor | ~315 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26263 | 8:32 PM | ๐Ÿ”ต | SearchManager Timeline Methods Use Rich Formatting, Search Method Uses Flat Tables | ~464 | +| #26243 | 8:29 PM | ๐Ÿ”ต | FormattingService Provides Basic Table Format Without Dates or File Grouping | ~390 | +| #26240 | " | ๐Ÿ”ต | SearchManager Formats Results as Tables, Timeline Uses Rich Date-Grouped Format | ~416 | +| #26108 | 7:43 PM | โœ… | changes() Method Format Logic Removed | ~401 | +| #26107 | " | โœ… | changes() Method Format Parameter Removed | ~317 | +| #26106 | 7:42 PM | โœ… | decisions() Method Format Logic Removed | ~405 | +| #26105 | " | โœ… | decisions() Method Format Parameter Removed | ~310 | +| #26104 | " | โœ… | Main search() Method Format Handling Removed | ~430 | +| #26103 | 7:41 PM | โœ… | FormattingService.ts Rewritten to Table Format | ~457 | +| #26102 | " | ๐Ÿ”ต | SearchManager.ts Format Parameter Removal Status | ~478 | + +### Dec 15, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27043 | 6:04 PM | ๐Ÿ”ต | Subagent confirms no version switcher UI exists, only orphaned backend infrastructure | ~539 | +| #27041 | 6:03 PM | ๐Ÿ”ต | Branch switching code isolated to two backend files, no frontend UI components | ~473 | +| #27037 | 6:02 PM | ๐Ÿ”ต | Branch switching functionality exists in SettingsRoutes with UI switcher removal intent | ~463 | + +### Dec 16, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27727 | 5:45 PM | ๐Ÿ”ต | SearchManager returns raw data arrays when format=json is specified | ~349 | + +### Dec 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #28473 | 4:25 PM | ๐Ÿ”ต | PaginationHelper LIMIT+1 Trick and Project Path Sanitization | ~499 | +| #28458 | 4:24 PM | ๐Ÿ”ต | SDK Agent Observer-Only Event-Driven Query Loop | ~513 | +| #28455 | " | ๐Ÿ”ต | Event-Driven Session Manager with Zero-Latency Queuing | ~566 | + +### Dec 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29240 | 12:12 AM | ๐Ÿ”ต | SDK Agent Event-Driven Query Loop with Tool Restrictions | ~507 | + +### Dec 20, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31100 | 8:01 PM | ๐Ÿ”ต | Summary and Memory Message Generation in SDK Agent | ~324 | + +### Dec 25, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32616 | 8:43 PM | ๐Ÿ”ต | Comprehensive analysis of "enable billing" setting and its impact on rate limiting | ~533 | +| #32599 | 8:40 PM | ๐Ÿ”„ | Added validation and explicit default for Gemini model configuration | ~393 | +| #32598 | " | ๐Ÿ”ต | Gemini configuration loaded from settings or environment variables | ~363 | +| #32591 | 8:38 PM | ๐Ÿ”ด | Removed Unsupported Gemini Model from Agent | ~282 | +| #32583 | " | ๐Ÿ”ต | Gemini Agent Implementation Details | ~434 | +| #32543 | 7:29 PM | ๐Ÿ”„ | Rate limiting applied conditionally based on billing status | ~164 | +| #32542 | " | ๐Ÿ”„ | Query Gemini now accepts billing status | ~163 | +| #32541 | " | ๐Ÿ”„ | Gemini config now includes billing status | ~182 | +| #32540 | " | ๐Ÿ”„ | Rate limiting logic refactored for Gemini billing | ~164 | + +### Dec 26, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32949 | 10:55 PM | ๐Ÿ”ต | Complete settings persistence flow for Xiaomi MIMO v2 Flash model | ~320 | +| #32948 | 10:53 PM | ๐Ÿ”ต | OpenRouterAgent uses CLAUDE_MEM_OPENROUTER_MODEL setting with Xiaomi as default | ~183 | + +### Dec 27, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33215 | 9:06 PM | ๐Ÿ”ต | SessionManager Implements Event-Driven Lifecycle with Database-First Persistence and Auto-Initialization | ~853 | +| #33214 | " | ๐Ÿ”ต | SDKAgent Implements Event-Driven Query Loop with Init/Continuation Prompt Selection | ~769 | + +### Dec 28, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33551 | 11:00 PM | ๐Ÿ”ต | GeminiAgent Does Not Implement Resume Functionality | ~307 | +| #33550 | " | ๐Ÿ”ต | OpenRouterAgent Does Not Implement Resume Functionality | ~294 | +| #33549 | 10:59 PM | ๐Ÿ”ด | SDKAgent Now Checks memorySessionId Differs From contentSessionId Before Resume | ~419 | +| #33547 | " | ๐Ÿ”ต | All Agents Call storeObservation with contentSessionId Instead of memorySessionId | ~407 | +| #33543 | 10:56 PM | ๐Ÿ”ต | SDKAgent Already Implements Memory Session ID Capture and Resume Logic | ~467 | +| #33542 | " | ๐Ÿ”ต | SessionManager Already Uses Renamed Session ID Fields | ~390 | + +### Dec 30, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34504 | 2:31 PM | ๐Ÿ”ต | SDKAgent V2 Message Handling and Processing Flow Detailed | ~583 | +| #34459 | 2:23 PM | ๐Ÿ”ต | Complete SDKAgent V2 Architecture with Comprehensive Message Processing | ~619 | +| #34453 | 2:21 PM | ๐Ÿ”ต | Memory Agent Configured as Observer-Only | ~379 | + +### Jan 4, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36853 | 1:49 AM | ๐Ÿ”ต | GeminiAgent Implementation Reviewed for Model Support | ~555 | + \ No newline at end of file diff --git a/src/services/worker/GeminiAgent.ts b/src/services/worker/GeminiAgent.ts index 6cab4272..53ff2627 100644 --- a/src/services/worker/GeminiAgent.ts +++ b/src/services/worker/GeminiAgent.ts @@ -173,7 +173,14 @@ export class GeminiAgent { } // Process pending messages + // Track cwd from messages for CLAUDE.md generation + let lastCwd: string | undefined; + for await (const message of this.sessionManager.getMessageIterator(session.sessionDbId)) { + // Capture cwd from each message for worktree support + if (message.cwd) { + lastCwd = message.cwd; + } // Capture earliest timestamp BEFORE processing (will be cleared after) // This ensures backlog messages get their original timestamps, not current time const originalTimestamp = session.earliestPendingTimestamp; @@ -217,7 +224,8 @@ export class GeminiAgent { worker, tokensUsed, originalTimestamp, - 'Gemini' + 'Gemini', + lastCwd ); } else if (message.type === 'summarize') { @@ -253,7 +261,8 @@ export class GeminiAgent { worker, tokensUsed, originalTimestamp, - 'Gemini' + 'Gemini', + lastCwd ); } } diff --git a/src/services/worker/OpenRouterAgent.ts b/src/services/worker/OpenRouterAgent.ts index b7ded622..cf536958 100644 --- a/src/services/worker/OpenRouterAgent.ts +++ b/src/services/worker/OpenRouterAgent.ts @@ -121,7 +121,8 @@ export class OpenRouterAgent { worker, tokensUsed, null, - 'OpenRouter' + 'OpenRouter', + undefined // No lastCwd yet - before message processing ); } else { logger.warn('SDK', 'Empty OpenRouter init response - session may lack context', { @@ -130,8 +131,15 @@ export class OpenRouterAgent { }); } + // Track lastCwd from messages for CLAUDE.md generation + let lastCwd: string | undefined; + // Process pending messages for await (const message of this.sessionManager.getMessageIterator(session.sessionDbId)) { + // Capture cwd from messages for proper worktree support + if (message.cwd) { + lastCwd = message.cwd; + } // Capture earliest timestamp BEFORE processing (will be cleared after) const originalTimestamp = session.earliestPendingTimestamp; @@ -174,7 +182,8 @@ export class OpenRouterAgent { worker, tokensUsed, originalTimestamp, - 'OpenRouter' + 'OpenRouter', + lastCwd ); } else if (message.type === 'summarize') { @@ -210,7 +219,8 @@ export class OpenRouterAgent { worker, tokensUsed, originalTimestamp, - 'OpenRouter' + 'OpenRouter', + lastCwd ); } } diff --git a/src/services/worker/SDKAgent.ts b/src/services/worker/SDKAgent.ts index 72ddcaf1..48c0918c 100644 --- a/src/services/worker/SDKAgent.ts +++ b/src/services/worker/SDKAgent.ts @@ -39,6 +39,10 @@ export class SDKAgent { * @param worker WorkerService reference for spinner control (optional) */ async startSession(session: ActiveSession, worker?: WorkerRef): Promise { + // Track cwd from messages for CLAUDE.md generation (worktree support) + // Uses mutable object so generator updates are visible in response processing + const cwdTracker = { lastCwd: undefined as string | undefined }; + // Find Claude executable const claudePath = this.findClaudeExecutable(); @@ -61,10 +65,13 @@ export class SDKAgent { ]; // Create message generator (event-driven) - const messageGenerator = this.createMessageGenerator(session); + const messageGenerator = this.createMessageGenerator(session, cwdTracker); - // CRITICAL: Only resume if memorySessionId exists (was captured from a previous SDK response). - // memorySessionId starts as NULL and is captured on first SDK message. + // CRITICAL: Only resume if: + // 1. memorySessionId exists (was captured from a previous SDK response) + // 2. lastPromptNumber > 1 (this is a continuation within the same SDK session) + // On worker restart or crash recovery, memorySessionId may exist from a previous + // SDK session but we must NOT resume because the SDK context was lost. // NEVER use contentSessionId for resume - that would inject messages into the user's transcript! const hasRealMemorySessionId = !!session.memorySessionId; @@ -77,11 +84,17 @@ export class SDKAgent { lastPromptNumber: session.lastPromptNumber }); - // SESSION ALIGNMENT LOG: Resume decision proof - show if we're resuming with correct memorySessionId + // Debug-level alignment logs for detailed tracing if (session.lastPromptNumber > 1) { - logger.info('SDK', `[ALIGNMENT] Resume Decision | contentSessionId=${session.contentSessionId} | memorySessionId=${session.memorySessionId} | prompt#=${session.lastPromptNumber} | hasRealMemorySessionId=${hasRealMemorySessionId} | resumeWith=${hasRealMemorySessionId ? session.memorySessionId : 'NONE (fresh SDK session)'}`); + const willResume = hasRealMemorySessionId; + logger.debug('SDK', `[ALIGNMENT] Resume Decision | contentSessionId=${session.contentSessionId} | memorySessionId=${session.memorySessionId} | prompt#=${session.lastPromptNumber} | hasRealMemorySessionId=${hasRealMemorySessionId} | willResume=${willResume} | resumeWith=${willResume ? session.memorySessionId : 'NONE'}`); } else { - logger.info('SDK', `[ALIGNMENT] First Prompt | contentSessionId=${session.contentSessionId} | prompt#=${session.lastPromptNumber} | Will capture memorySessionId from first SDK response`); + // INIT prompt - never resume even if memorySessionId exists (stale from previous session) + const hasStaleMemoryId = hasRealMemorySessionId; + logger.debug('SDK', `[ALIGNMENT] First Prompt (INIT) | contentSessionId=${session.contentSessionId} | prompt#=${session.lastPromptNumber} | hasStaleMemoryId=${hasStaleMemoryId} | action=START_FRESH | Will capture new memorySessionId from SDK response`); + if (hasStaleMemoryId) { + logger.warn('SDK', `Skipping resume for INIT prompt despite existing memorySessionId=${session.memorySessionId} - SDK context was lost (worker restart or crash recovery)`); + } } // Run Agent SDK query loop @@ -90,8 +103,10 @@ export class SDKAgent { prompt: messageGenerator, options: { model: modelId, - // Resume with captured memorySessionId (null on first prompt, real ID on subsequent) - ...(hasRealMemorySessionId && { resume: session.memorySessionId }), + // Only resume if BOTH: (1) we have a memorySessionId AND (2) this isn't the first prompt + // On worker restart, memorySessionId may exist from a previous SDK session but we + // need to start fresh since the SDK context was lost + ...(hasRealMemorySessionId && session.lastPromptNumber > 1 && { resume: session.memorySessionId }), disallowedTools, abortController: session.abortController, pathToClaudeCodeExecutable: claudePath @@ -109,12 +124,20 @@ export class SDKAgent { session.sessionDbId, message.session_id ); - logger.info('SDK', 'Captured memory session ID', { - sessionDbId: session.sessionDbId, + // Verify the update by reading back from DB + const verification = this.dbManager.getSessionStore().getSessionById(session.sessionDbId); + const dbVerified = verification?.memory_session_id === message.session_id; + logger.info('SESSION', `MEMORY_ID_CAPTURED | sessionDbId=${session.sessionDbId} | memorySessionId=${message.session_id} | dbVerified=${dbVerified}`, { + sessionId: session.sessionDbId, memorySessionId: message.session_id }); - // SESSION ALIGNMENT LOG: Memory session ID captured - now contentSessionIdโ†’memorySessionId mapping is complete - logger.info('SDK', `[ALIGNMENT] Captured | contentSessionId=${session.contentSessionId} โ†’ memorySessionId=${message.session_id} | Future prompts will resume with this ID`); + if (!dbVerified) { + logger.error('SESSION', `MEMORY_ID_MISMATCH | sessionDbId=${session.sessionDbId} | expected=${message.session_id} | got=${verification?.memory_session_id}`, { + sessionId: session.sessionDbId + }); + } + // Debug-level alignment log for detailed tracing + logger.debug('SDK', `[ALIGNMENT] Captured | contentSessionId=${session.contentSessionId} โ†’ memorySessionId=${message.session_id} | Future prompts will resume with this ID`); } // Handle assistant messages @@ -177,7 +200,8 @@ export class SDKAgent { worker, discoveryTokens, originalTimestamp, - 'SDK' + 'SDK', + cwdTracker.lastCwd ); } @@ -224,8 +248,16 @@ export class SDKAgent { * - Each user message is added to session.conversationHistory * - This allows provider switching (Claudeโ†’Gemini) with full context * - SDK manages its own internal state, but we mirror it for interop + * + * CWD TRACKING: + * - cwdTracker is a mutable object shared with startSession + * - As messages with cwd are processed, cwdTracker.lastCwd is updated + * - This enables processAgentResponse to use the correct cwd for CLAUDE.md */ - private async *createMessageGenerator(session: ActiveSession): AsyncIterableIterator { + private async *createMessageGenerator( + session: ActiveSession, + cwdTracker: { lastCwd: string | undefined } + ): AsyncIterableIterator { // Load active mode const mode = ModeManager.getInstance().getActiveMode(); @@ -261,6 +293,11 @@ export class SDKAgent { // Consume pending messages from SessionManager (event-driven, no polling) for await (const message of this.sessionManager.getMessageIterator(session.sessionDbId)) { + // Capture cwd from each message for worktree support + if (message.cwd) { + cwdTracker.lastCwd = message.cwd; + } + if (message.type === 'observation') { // Update last prompt number if (message.prompt_number !== undefined) { diff --git a/src/services/worker/SearchManager.ts b/src/services/worker/SearchManager.ts index f88d2b21..e52cea8d 100644 --- a/src/services/worker/SearchManager.ts +++ b/src/services/worker/SearchManager.ts @@ -71,6 +71,12 @@ export class SearchManager { private normalizeParams(args: any): any { const normalized: any = { ...args }; + // Map filePath to files (API uses filePath, internal uses files) + if (normalized.filePath && !normalized.files) { + normalized.files = normalized.filePath; + delete normalized.filePath; + } + // Parse comma-separated concepts into array if (normalized.concepts && typeof normalized.concepts === 'string') { normalized.concepts = normalized.concepts.split(',').map((s: string) => s.trim()).filter(Boolean); @@ -101,6 +107,13 @@ export class SearchManager { delete normalized.dateEnd; } + // Parse isFolder boolean from string + if (normalized.isFolder === 'true') { + normalized.isFolder = true; + } else if (normalized.isFolder === 'false') { + normalized.isFolder = false; + } + return normalized; } @@ -301,7 +314,7 @@ export class SearchManager { for (const result of dayResults) { let file = 'General'; if (result.type === 'observation') { - file = extractFirstFile(result.data.files_modified, cwd); + file = extractFirstFile(result.data.files_modified, cwd, result.data.files_read); } if (!resultsByFile.has(file)) { resultsByFile.set(file, []); @@ -577,7 +590,7 @@ export class SearchManager { lines.push(''); } else if (item.type === 'observation') { const obs = item.data as ObservationSearchResult; - const file = extractFirstFile(obs.files_modified, cwd); + const file = extractFirstFile(obs.files_modified, cwd, obs.files_read); if (file !== currentFile) { if (tableOpen) { @@ -1079,7 +1092,9 @@ export class SearchManager { */ async findByFile(args: any): Promise { const normalized = this.normalizeParams(args); - const { files: filePath, ...filters } = normalized; + const { files: rawFilePath, ...filters } = normalized; + // Handle both string and array (normalizeParams may split on comma) + const filePath = Array.isArray(rawFilePath) ? rawFilePath[0] : rawFilePath; let observations: ObservationSearchResult[] = []; let sessions: SessionSummarySearchResult[] = []; @@ -1138,24 +1153,57 @@ export class SearchManager { }; } - // Format as table - const header = `Found ${totalResults} result(s) for file "${filePath}"\n\n${this.formatter.formatTableHeader()}`; - const formattedResults: string[] = []; + // Combine observations and sessions with timestamps for date grouping + const combined: Array<{ + type: 'observation' | 'session'; + data: ObservationSearchResult | SessionSummarySearchResult; + epoch: number; + created_at: string; + }> = [ + ...observations.map(obs => ({ + type: 'observation' as const, + data: obs, + epoch: obs.created_at_epoch, + created_at: obs.created_at + })), + ...sessions.map(sess => ({ + type: 'session' as const, + data: sess, + epoch: sess.created_at_epoch, + created_at: sess.created_at + })) + ]; - // Add observations - observations.forEach((obs, i) => { - formattedResults.push(this.formatter.formatObservationIndex(obs, i)); - }); + // Sort by date (most recent first) + combined.sort((a, b) => b.epoch - a.epoch); - // Add sessions - sessions.forEach((session, i) => { - formattedResults.push(this.formatter.formatSessionIndex(session, i + observations.length)); - }); + // Group by date for proper timeline rendering + const resultsByDate = groupByDate(combined, item => item.created_at); + + // Format with date headers for proper date parsing by folder CLAUDE.md generator + const lines: string[] = []; + lines.push(`Found ${totalResults} result(s) for file "${filePath}"`); + lines.push(''); + + for (const [day, dayResults] of resultsByDate) { + lines.push(`### ${day}`); + lines.push(''); + lines.push(this.formatter.formatTableHeader()); + + for (const result of dayResults) { + if (result.type === 'observation') { + lines.push(this.formatter.formatObservationIndex(result.data as ObservationSearchResult, 0)); + } else { + lines.push(this.formatter.formatSessionIndex(result.data as SessionSummarySearchResult, 0)); + } + } + lines.push(''); + } return { content: [{ type: 'text' as const, - text: header + '\n' + formattedResults.join('\n') + text: lines.join('\n') }] }; } @@ -1519,7 +1567,7 @@ export class SearchManager { } else if (item.type === 'observation') { // Render observation in table const obs = item.data as ObservationSearchResult; - const file = extractFirstFile(obs.files_modified, cwd); + const file = extractFirstFile(obs.files_modified, cwd, obs.files_read); // Check if we need a new file section if (file !== currentFile) { @@ -1749,7 +1797,7 @@ export class SearchManager { } else if (item.type === 'observation') { // Render observation in table const obs = item.data as ObservationSearchResult; - const file = extractFirstFile(obs.files_modified, cwd); + const file = extractFirstFile(obs.files_modified, cwd, obs.files_read); // Check if we need a new file section if (file !== currentFile) { diff --git a/src/services/worker/SessionManager.ts b/src/services/worker/SessionManager.ts index f3f732b9..0c200710 100644 --- a/src/services/worker/SessionManager.ts +++ b/src/services/worker/SessionManager.ts @@ -48,7 +48,7 @@ export class SessionManager { * Initialize a new session or return existing one */ initializeSession(sessionDbId: number, currentUserPrompt?: string, promptNumber?: number): ActiveSession { - logger.info('SESSION', 'initializeSession called', { + logger.debug('SESSION', 'initializeSession called', { sessionDbId, promptNumber, has_currentUserPrompt: !!currentUserPrompt @@ -57,7 +57,7 @@ export class SessionManager { // Check if already active let session = this.sessions.get(sessionDbId); if (session) { - logger.info('SESSION', 'Returning cached session', { + logger.debug('SESSION', 'Returning cached session', { sessionDbId, contentSessionId: session.contentSessionId, lastPromptNumber: session.lastPromptNumber @@ -99,7 +99,7 @@ export class SessionManager { // Fetch from database const dbSession = this.dbManager.getSessionById(sessionDbId); - logger.info('SESSION', 'Fetched session from database', { + logger.debug('SESSION', 'Fetched session from database', { sessionDbId, content_session_id: dbSession.content_session_id, memory_session_id: dbSession.memory_session_id @@ -142,7 +142,7 @@ export class SessionManager { currentProvider: null // Will be set when generator starts }; - logger.info('SESSION', 'Creating new session object', { + logger.debug('SESSION', 'Creating new session object', { sessionDbId, contentSessionId: dbSession.content_session_id, memorySessionId: dbSession.memory_session_id || '(none - fresh session)', @@ -199,10 +199,10 @@ export class SessionManager { try { const messageId = this.getPendingStore().enqueue(sessionDbId, session.contentSessionId, message); - logger.debug('SESSION', `Observation persisted to DB`, { - sessionId: sessionDbId, - messageId, - tool: data.tool_name + const queueDepth = this.getPendingStore().getPendingCount(sessionDbId); + const toolSummary = logger.formatTool(data.tool_name, data.tool_input); + logger.info('QUEUE', `ENQUEUED | sessionDbId=${sessionDbId} | messageId=${messageId} | type=observation | tool=${toolSummary} | depth=${queueDepth}`, { + sessionId: sessionDbId }); } catch (error) { logger.error('SESSION', 'Failed to persist observation to DB', { @@ -215,15 +215,6 @@ export class SessionManager { // Notify generator immediately (zero latency) const emitter = this.sessionQueues.get(sessionDbId); emitter?.emit('message'); - - // Format tool name for logging - const toolSummary = logger.formatTool(data.tool_name, data.tool_input); - - logger.info('SESSION', `Observation queued`, { - sessionId: sessionDbId, - tool: toolSummary, - hasGenerator: !!session.generatorPromise - }); } /** @@ -248,9 +239,9 @@ export class SessionManager { try { const messageId = this.getPendingStore().enqueue(sessionDbId, session.contentSessionId, message); - logger.debug('SESSION', `Summarize persisted to DB`, { - sessionId: sessionDbId, - messageId + const queueDepth = this.getPendingStore().getPendingCount(sessionDbId); + logger.info('QUEUE', `ENQUEUED | sessionDbId=${sessionDbId} | messageId=${messageId} | type=summarize | depth=${queueDepth}`, { + sessionId: sessionDbId }); } catch (error) { logger.error('SESSION', 'Failed to persist summarize to DB', { @@ -261,11 +252,6 @@ export class SessionManager { const emitter = this.sessionQueues.get(sessionDbId); emitter?.emit('message'); - - logger.info('SESSION', `Summarize queued`, { - sessionId: sessionDbId, - hasGenerator: !!session.generatorPromise - }); } /** diff --git a/src/services/worker/agents/CLAUDE.md b/src/services/worker/agents/CLAUDE.md new file mode 100644 index 00000000..adfdcb11 --- /dev/null +++ b/src/services/worker/agents/CLAUDE.md @@ -0,0 +1,7 @@ + +# Recent Activity + + + +*No recent activity* + \ No newline at end of file diff --git a/src/services/worker/agents/ResponseProcessor.ts b/src/services/worker/agents/ResponseProcessor.ts index 4fdd6d7b..5aa0c7fd 100644 --- a/src/services/worker/agents/ResponseProcessor.ts +++ b/src/services/worker/agents/ResponseProcessor.ts @@ -14,6 +14,7 @@ import { logger } from '../../../utils/logger.js'; import { parseObservations, parseSummary, type ParsedObservation, type ParsedSummary } from '../../../sdk/parser.js'; import { updateCursorContextForProject } from '../../worker-service.js'; +import { updateFolderClaudeMdFiles } from '../../../utils/claude-md-utils.js'; import { getWorkerPort } from '../../../shared/worker-utils.js'; import type { ActiveSession } from '../../worker-types.js'; import type { DatabaseManager } from '../DatabaseManager.js'; @@ -50,7 +51,8 @@ export async function processAgentResponse( worker: WorkerRef | undefined, discoveryTokens: number, originalTimestamp: number | null, - agentName: string + agentName: string, + projectRoot?: string ): Promise { // Add assistant response to shared conversation history for provider interop if (text) { @@ -72,6 +74,12 @@ export async function processAgentResponse( throw new Error('Cannot store observations: memorySessionId not yet captured'); } + // Log pre-storage with session ID chain for verification + logger.info('DB', `STORING | sessionDbId=${session.sessionDbId} | memorySessionId=${session.memorySessionId} | obsCount=${observations.length} | hasSummary=${!!summaryForStore}`, { + sessionId: session.sessionDbId, + memorySessionId: session.memorySessionId + }); + // ATOMIC TRANSACTION: Store observations + summary ONCE // Messages are already deleted from queue on claim, so no completion tracking needed const result = sessionStore.storeObservations( @@ -84,12 +92,10 @@ export async function processAgentResponse( originalTimestamp ?? undefined ); - // Log what was saved - logger.info('SDK', `${agentName} observations and summary saved atomically`, { + // Log storage result with IDs for end-to-end traceability + logger.info('DB', `STORED | sessionDbId=${session.sessionDbId} | memorySessionId=${session.memorySessionId} | obsCount=${result.observationIds.length} | obsIds=[${result.observationIds.join(',')}] | summaryId=${result.summaryId || 'none'}`, { sessionId: session.sessionDbId, - observationCount: result.observationIds.length, - hasSummary: !!result.summaryId, - atomicTransaction: true + memorySessionId: session.memorySessionId }); // AFTER transaction commits - async operations (can fail safely without data loss) @@ -100,7 +106,8 @@ export async function processAgentResponse( dbManager, worker, discoveryTokens, - agentName + agentName, + projectRoot ); // Sync and broadcast summary if present @@ -152,7 +159,8 @@ async function syncAndBroadcastObservations( dbManager: DatabaseManager, worker: WorkerRef | undefined, discoveryTokens: number, - agentName: string + agentName: string, + projectRoot?: string ): Promise { for (let i = 0; i < observations.length; i++) { const obsId = result.observationIds[i]; @@ -204,6 +212,25 @@ async function syncAndBroadcastObservations( created_at_epoch: result.createdAtEpoch }); } + + // Update folder CLAUDE.md files for touched folders (fire-and-forget) + // This runs per-observation batch to ensure folders are updated as work happens + const allFilePaths: string[] = []; + for (const obs of observations) { + allFilePaths.push(...(obs.files_modified || [])); + allFilePaths.push(...(obs.files_read || [])); + } + + if (allFilePaths.length > 0) { + updateFolderClaudeMdFiles( + allFilePaths, + session.project, + getWorkerPort(), + projectRoot + ).catch(error => { + logger.warn('FOLDER_INDEX', 'CLAUDE.md update failed (non-critical)', { project: session.project }, error as Error); + }); + } } /** diff --git a/src/services/worker/events/CLAUDE.md b/src/services/worker/events/CLAUDE.md new file mode 100644 index 00000000..733bac04 --- /dev/null +++ b/src/services/worker/events/CLAUDE.md @@ -0,0 +1,87 @@ + +# Recent Activity + + + +### Dec 7, 2025 + +**SessionEventBroadcaster.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #21829 | 11:05 PM | ๐Ÿ”„ | Massive refactor adds 8,671 lines and removes 5,585 lines across 60 files | ~619 | +| #21824 | 10:59 PM | ๐Ÿ”ต | SessionEventBroadcaster methods called 7 times across SessionRoutes and SessionCompletionHandler | ~398 | +| #21822 | " | ๐Ÿ”ต | SessionEventBroadcaster instantiated in WorkerService and injected into routes and handlers | ~372 | +| #21816 | 10:58 PM | ๐Ÿ”ต | SessionEventBroadcaster provides semantic SSE event broadcasting | ~398 | +| #21807 | 10:49 PM | โš–๏ธ | KISS Audit Identified 587 Lines of Ceremonial Complexity | ~699 | +| #21796 | 10:46 PM | ๐Ÿ”ต | SessionEventBroadcaster Duplicates Processing Status Updates | ~388 | +| #21743 | 10:16 PM | ๐ŸŸฃ | Created SessionEventBroadcaster for Semantic Session Event Broadcasting | ~514 | + +### Dec 8, 2025 + +**SessionEventBroadcaster.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22107 | 6:47 PM | ๐Ÿ”ต | SessionEventBroadcaster Has observation_queued But No observation_completed Event | ~429 | +| #22049 | 6:04 PM | ๐Ÿ”ต | broadcastProcessingStatus method synchronizes queue state across six system components | ~477 | +| #22043 | 6:02 PM | ๐Ÿ”ต | SessionEventBroadcaster provides semantic event broadcasting with SSE and processing status updates | ~449 | +| #22036 | 6:00 PM | ๐Ÿ”ต | Found processing_status tracking across UI, hooks, and event systems | ~312 | + +### Dec 11, 2025 + +**SessionEventBroadcaster.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23962 | 1:59 PM | ๐Ÿ”ต | Services Layer Implements Full Backend Architecture | ~490 | + +### Dec 20, 2025 + +**session-events.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30609 | 5:01 PM | ๐Ÿ”„ | Phase 4: Eliminated Over-Engineering in Hook/Worker System | ~504 | +| #30567 | 4:56 PM | ๐ŸŸฃ | Session Event Broadcasting Utilities | ~313 | + +**SessionEventBroadcaster.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30593 | 4:59 PM | ๐Ÿ”„ | Deleted SessionEventBroadcaster Class File | ~298 | +| #30548 | 4:53 PM | ๐Ÿ”ต | SessionEventBroadcaster SSE Notification Layer | ~338 | + +### Dec 25, 2025 + +**SessionEventBroadcaster.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32597 | 8:40 PM | ๐Ÿ”ต | Identified session completion mechanism and potential method discrepancy | ~470 | +| #32580 | 8:22 PM | ๐Ÿ”ต | Grep for resetStuckMessages and processing | ~242 | + +### Dec 28, 2025 + +**SessionEventBroadcaster.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33439 | 10:15 PM | ๐Ÿ”„ | Extended Session ID Renaming to Additional Codebase Components | ~352 | +| #33328 | 3:10 PM | ๐ŸŸฃ | Merged centralized logger and session continuity diagnostics to main | ~397 | +| #33280 | 3:07 PM | ๐Ÿ”„ | Logger coverage refactor for background services | ~428 | + +### Dec 30, 2025 + +**SessionEventBroadcaster.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34550 | 4:53 PM | ๐Ÿ”ต | Phase 2 Review Reveals Critical Incomplete Error Handling | ~577 | + +### Dec 31, 2025 + +**SessionEventBroadcaster.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34558 | 2:32 PM | ๐Ÿ”ต | Code Quality Fix Plan Created for Seven Identified Issues | ~629 | + +### Jan 2, 2026 + +**SessionEventBroadcaster.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35951 | 4:42 PM | ๐Ÿ”ต | Multi-Layer Service Architecture Discovery | ~395 | + \ No newline at end of file diff --git a/src/services/worker/http/CLAUDE.md b/src/services/worker/http/CLAUDE.md new file mode 100644 index 00000000..b80ac5e2 --- /dev/null +++ b/src/services/worker/http/CLAUDE.md @@ -0,0 +1,58 @@ + +# Recent Activity + + + +### Dec 28, 2025 + +**BaseRouteHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33396 | 9:53 PM | โœ… | Queue refactoring touched 12 files with net addition of 1021 lines | ~402 | +| #33336 | 3:36 PM | ๐Ÿ”ด | Fixed Windows Worker Crashes and Headers Already Sent Errors | ~351 | +| #33259 | 2:46 PM | ๐Ÿ”ด | Windows Worker Stability Pull Request Created | ~386 | +| #33258 | 2:38 PM | ๐Ÿ”ด | Added headersSent Guard to Error Handler | ~338 | +| #33256 | 2:36 PM | โš–๏ธ | Implementation Plan for Windows Worker Issues | ~471 | + +### Jan 1, 2026 + +**middleware.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35614 | 10:57 PM | ๐Ÿ”ด | Suppressed /api/logs endpoint logging to reduce noise | ~252 | +| #35612 | " | โœ… | HTTP logging middleware excludes /api/logs polling endpoint | ~262 | +| #35611 | " | ๐Ÿ”ต | HTTP Middleware Architecture in Worker Service | ~360 | + +**BaseRouteHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35433 | 8:43 PM | ๐Ÿ”ต | Try-Catch Block Distribution Across Services | ~372 | + +### Jan 2, 2026 + +**middleware.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35951 | 4:42 PM | ๐Ÿ”ต | Multi-Layer Service Architecture Discovery | ~395 | + +### Jan 3, 2026 + +**middleware.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36689 | 11:56 PM | ๐Ÿ”ต | PR #538 Review Findings - Modular Architecture Refactor | ~590 | + +### Jan 5, 2026 + +**BaseRouteHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37665 | 5:52 PM | ๐Ÿ”ต | Codebase uses dependency injection and lazy initialization patterns to avoid circular dependencies | ~548 | +| #37662 | " | ๐Ÿ”ต | BaseRouteHandler imports logger demonstrating HTTP layer dependency on logger | ~367 | + +**middleware.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37626 | 5:35 PM | ๐Ÿ”ต | FormatTool Function Usage Across Codebase | ~493 | +| #37537 | 4:45 PM | ๐Ÿ”ต | Middleware formatTool Call Confirmed as Critical Crash Point | ~361 | + \ No newline at end of file diff --git a/src/services/worker/http/routes/CLAUDE.md b/src/services/worker/http/routes/CLAUDE.md new file mode 100644 index 00000000..f1fb8907 --- /dev/null +++ b/src/services/worker/http/routes/CLAUDE.md @@ -0,0 +1,97 @@ + +# Recent Activity + + + +### Dec 5, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #20734 | 9:08 PM | ๐Ÿ”ต | SearchRoutes Context Injection Endpoint with Dynamic Import | ~614 | +| #20548 | 8:21 PM | ๐Ÿ”ต | Context generator imported from services directory in worker | ~334 | +| #20547 | " | ๐Ÿ”ต | Context injection route implementation in SearchRoutes.ts | ~289 | + +### Dec 7, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #21742 | 10:16 PM | ๐Ÿ”ต | SessionRoutes Analysis: Identified 10+ Scattered Broadcast Calls | ~540 | + +### Dec 8, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22301 | 9:44 PM | ๐Ÿ”ต | Privacy Validation in Observation Processing | ~399 | +| #22296 | 9:43 PM | ๐Ÿ”ต | SessionRoutes HTTP Endpoints and SDK Agent Lifecycle | ~442 | +| #22222 | 8:29 PM | ๐Ÿ”ต | Found waiting logic in SessionRoutes but it may not be working correctly | ~359 | +| #22005 | 5:40 PM | ๐Ÿ”ต | handleObservationsByClaudeId Current Implementation | ~443 | +| #22004 | " | ๐Ÿ”ต | Legacy Observation Handling Pattern Identified | ~337 | +| #22003 | " | ๐Ÿ”ต | SessionRoutes Architecture Confirmed | ~354 | +| #21969 | 5:22 PM | ๐ŸŸฃ | Worker Routes Pass tool_use_id to SessionManager Queue | ~290 | +| #21968 | " | โœ… | Worker Endpoint Extracts toolUseId from Observation Request | ~243 | +| #21962 | 5:21 PM | ๐ŸŸฃ | Implemented handleGetObservationsForToolUse Endpoint Handler | ~325 | +| #21961 | " | ๐ŸŸฃ | Added GET Endpoint for Fetching Observations by Tool Use ID | ~272 | +| #21951 | 5:18 PM | ๐Ÿ”ต | Worker SessionRoutes Architecture and Endpoints Reviewed | ~418 | +| #21948 | 5:09 PM | ๐ŸŸฃ | Implemented PreToolUse Endpoint Handler | ~334 | +| #21947 | 5:07 PM | ๐ŸŸฃ | Added PreToolUse Route Registration | ~287 | + +### Dec 9, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23143 | 6:42 PM | โœ… | Updated Skip Tools Logic to Use USER_SETTINGS_PATH Constant | ~150 | +| #23142 | " | โœ… | Fixed Settings Path Import in SessionRoutes | ~148 | +| #23140 | 6:41 PM | ๐ŸŸฃ | Implemented Skip Tools Filtering in Observations Endpoint | ~386 | +| #23138 | " | โœ… | Added SettingsDefaultsManager and Paths Imports to SessionRoutes | ~222 | +| #23136 | " | ๐Ÿ”ต | SessionRoutes handleObservationsByClaudeId Handler Structure | ~329 | +| #23007 | 4:02 PM | ๐Ÿ”ต | Settings Write Implementation Using Nested Schema | ~398 | +| #22859 | 2:28 PM | ๐Ÿ”ด | Fixed Python Version Validation to Support 3.10+ | ~322 | +| #22854 | 2:27 PM | ๐Ÿ”ต | Located Python Version Validation Regex in SettingsRoutes | ~316 | + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23593 | 5:52 PM | ๐Ÿ”ต | SearchRoutes Handler Pattern | ~268 | +| #23588 | 5:51 PM | ๐Ÿ”ต | Search Routes HTTP API Integration | ~281 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26253 | 8:31 PM | ๐Ÿ”ต | SearchRoutes Confirms Context Endpoints Use generateContext, Search Uses SearchManager | ~397 | +| #25689 | 4:23 PM | ๐Ÿ”ต | SessionRoutes queueSummarize receives messages but doesn't persist them to database | ~496 | + +### Dec 15, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27043 | 6:04 PM | ๐Ÿ”ต | Subagent confirms no version switcher UI exists, only orphaned backend infrastructure | ~539 | +| #27041 | 6:03 PM | ๐Ÿ”ต | Branch switching code isolated to two backend files, no frontend UI components | ~473 | +| #27037 | 6:02 PM | ๐Ÿ”ต | Branch switching functionality exists in SettingsRoutes with UI switcher removal intent | ~463 | + +### Dec 16, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #27414 | 3:25 PM | ๐Ÿ”ต | Batch Observations Endpoint Already Implemented | ~330 | + +### Dec 19, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30077 | 8:05 PM | ๐Ÿ”ต | SessionRoutes HTTP API Manages SDK Agent Lifecycle and Message Queue | ~516 | + +### Dec 26, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32949 | 10:55 PM | ๐Ÿ”ต | Complete settings persistence flow for Xiaomi MIMO v2 Flash model | ~320 | +| #32939 | 10:53 PM | ๐Ÿ”ต | Settings API routes handle model configuration persistence | ~288 | + +### Dec 30, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34491 | 2:28 PM | ๐Ÿ”ต | SessionRoutes Implements Multi-Provider Agent Management | ~635 | + \ No newline at end of file diff --git a/src/services/worker/http/routes/SearchRoutes.ts b/src/services/worker/http/routes/SearchRoutes.ts index 7e11cd22..091da965 100644 --- a/src/services/worker/http/routes/SearchRoutes.ts +++ b/src/services/worker/http/routes/SearchRoutes.ts @@ -195,31 +195,46 @@ export class SearchRoutes extends BaseRouteHandler { /** * Context injection endpoint for hooks - * GET /api/context/inject?project=...&colors=true + * GET /api/context/inject?projects=...&colors=true + * GET /api/context/inject?project=...&colors=true (legacy, single project) * * Returns pre-formatted context string ready for display. * Use colors=true for ANSI-colored terminal output. + * + * For worktrees, pass comma-separated projects (e.g., "main,worktree-branch") + * to get a unified timeline from both parent and worktree. */ private handleContextInject = this.wrapHandler(async (req: Request, res: Response): Promise => { - const projectName = req.query.project as string; + // Support both legacy `project` and new `projects` parameter + const projectsParam = (req.query.projects as string) || (req.query.project as string); const useColors = req.query.colors === 'true'; - if (!projectName) { - this.badRequest(res, 'Project parameter is required'); + if (!projectsParam) { + this.badRequest(res, 'Project(s) parameter is required'); + return; + } + + // Parse comma-separated projects list + const projects = projectsParam.split(',').map(p => p.trim()).filter(Boolean); + + if (projects.length === 0) { + this.badRequest(res, 'At least one project is required'); return; } // Import context generator (runs in worker, has access to database) const { generateContext } = await import('../../../context-generator.js'); - // Use project name as CWD (generateContext uses path.basename to get project) - const cwd = `/context/${projectName}`; + // Use first project name as CWD (for display purposes) + const primaryProject = projects[projects.length - 1]; // Last is the current/primary project + const cwd = `/context/${primaryProject}`; - // Generate context + // Generate context with all projects const contextText = await generateContext( { session_id: 'context-inject-' + Date.now(), - cwd: cwd + cwd: cwd, + projects: projects }, useColors ); diff --git a/src/services/worker/http/routes/SessionRoutes.ts b/src/services/worker/http/routes/SessionRoutes.ts index b314df97..f9a49ee8 100644 --- a/src/services/worker/http/routes/SessionRoutes.ts +++ b/src/services/worker/http/routes/SessionRoutes.ts @@ -560,31 +560,23 @@ export class SessionRoutes extends BaseRouteHandler { // Step 1: Create/get SDK session (idempotent INSERT OR IGNORE) const sessionDbId = store.createSDKSession(contentSessionId, project, prompt); - logger.info('HTTP', 'SessionRoutes: createSDKSession returned', { - sessionDbId, - contentSessionId - }); - - // SESSION ALIGNMENT LOG: DB lookup proof - show contentโ†’memory mapping + // Verify session creation with DB lookup const dbSession = store.getSessionById(sessionDbId); - const memorySessionId = dbSession?.memory_session_id || null; - const hasCapturedMemoryId = !!memorySessionId; + const isNewSession = !dbSession?.memory_session_id; + logger.info('SESSION', `CREATED | contentSessionId=${contentSessionId} โ†’ sessionDbId=${sessionDbId} | isNew=${isNewSession} | project=${project}`, { + sessionId: sessionDbId + }); // Step 2: Get next prompt number from user_prompts count const currentCount = store.getPromptNumberFromUserPrompts(contentSessionId); const promptNumber = currentCount + 1; - logger.info('HTTP', 'SessionRoutes: Calculated promptNumber', { - sessionDbId, - promptNumber, - currentCount - }); - - // SESSION ALIGNMENT LOG: For prompt > 1, prove we looked up memorySessionId from contentSessionId + // Debug-level alignment logs for detailed tracing + const memorySessionId = dbSession?.memory_session_id || null; if (promptNumber > 1) { - logger.info('HTTP', `[ALIGNMENT] DB Lookup Proof | contentSessionId=${contentSessionId} โ†’ memorySessionId=${memorySessionId || '(not yet captured)'} | prompt#=${promptNumber} | hasCapturedMemoryId=${hasCapturedMemoryId}`); + logger.debug('HTTP', `[ALIGNMENT] DB Lookup Proof | contentSessionId=${contentSessionId} โ†’ memorySessionId=${memorySessionId || '(not yet captured)'} | prompt#=${promptNumber}`); } else { - logger.info('HTTP', `[ALIGNMENT] New Session | contentSessionId=${contentSessionId} | prompt#=${promptNumber} | memorySessionId will be captured on first SDK response`); + logger.debug('HTTP', `[ALIGNMENT] New Session | contentSessionId=${contentSessionId} | prompt#=${promptNumber} | memorySessionId will be captured on first SDK response`); } // Step 3: Strip privacy tags from prompt @@ -610,10 +602,10 @@ export class SessionRoutes extends BaseRouteHandler { // Step 5: Save cleaned user prompt store.saveUserPrompt(contentSessionId, promptNumber, cleanedPrompt); - logger.info('SESSION', 'Session initialized via HTTP', { + // Debug-level log since CREATED already logged the key info + logger.debug('SESSION', 'User prompt saved', { sessionId: sessionDbId, - promptNumber, - project + promptNumber }); res.json({ diff --git a/src/services/worker/search/CLAUDE.md b/src/services/worker/search/CLAUDE.md new file mode 100644 index 00000000..1e6d4eb1 --- /dev/null +++ b/src/services/worker/search/CLAUDE.md @@ -0,0 +1,48 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**ResultFormatter.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36670 | 11:37 PM | โœ… | Resolved merge conflicts by accepting branch changes for 39 files | ~435 | +| #36540 | 9:39 PM | ๐ŸŸฃ | ResultFormatter Test Suite Created | ~424 | +| #36533 | 9:35 PM | ๐Ÿ”ต | ResultFormatter for Unified Search Result Display | ~598 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + +**SearchOrchestrator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36545 | 9:41 PM | ๐ŸŸฃ | Phase 3 Search Strategy Test Suite Completion | ~564 | +| #36544 | 9:40 PM | ๐ŸŸฃ | Phase 3 Search Strategy Test Suite Complete | ~449 | +| #36543 | " | ๐ŸŸฃ | Phase 3 Search Strategy Tests Completed | ~458 | +| #36541 | 9:39 PM | ๐ŸŸฃ | SearchOrchestrator Test Suite Implementation | ~588 | +| #36531 | 9:34 PM | ๐Ÿ”ต | SearchOrchestrator Strategy Selection Logic | ~334 | +| #36529 | " | ๐Ÿ”ต | Search Module Architecture Discovery | ~302 | + +**types.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36538 | 9:38 PM | ๐ŸŸฃ | SQLiteSearchStrategy Test Suite Created | ~527 | +| #36537 | " | ๐ŸŸฃ | HybridSearchStrategy Test Suite Created | ~435 | +| #36536 | " | ๐ŸŸฃ | ChromaSearchStrategy Test Suite Created | ~430 | +| #36523 | 9:34 PM | ๐Ÿ”ด | Fixed TypeScript Type Import Issues in Worker Services | ~386 | +| #36519 | " | ๐Ÿ”ด | Fixed Type Import Issues Preventing Worker Tests | ~308 | +| #36516 | 9:33 PM | ๐Ÿ”ด | Fixed TypeScript Type Import Issues in Worker Search Modules | ~377 | + +**index.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36527 | 9:34 PM | ๐Ÿ”ต | Search Strategy Architecture Analysis for Phase 3 Testing | ~486 | +| #36421 | 8:58 PM | ๐Ÿ”„ | Search Module Public API Organization | ~393 | + +### Jan 5, 2026 + +**ResultFormatter.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37968 | 8:22 PM | ๐Ÿ”ต | ResultFormatter Uses Epoch Timestamps from Database | ~364 | + \ No newline at end of file diff --git a/src/services/worker/search/ResultFormatter.ts b/src/services/worker/search/ResultFormatter.ts index d39ebf14..fa81c43b 100644 --- a/src/services/worker/search/ResultFormatter.ts +++ b/src/services/worker/search/ResultFormatter.ts @@ -62,10 +62,8 @@ export class ResultFormatter { for (const result of dayResults) { let file = 'General'; if (result.type === 'observation') { - file = extractFirstFile( - (result.data as ObservationSearchResult).files_modified, - cwd - ); + const obs = result.data as ObservationSearchResult; + file = extractFirstFile(obs.files_modified, cwd, obs.files_read); } if (!resultsByFile.has(file)) { resultsByFile.set(file, []); diff --git a/src/services/worker/search/TimelineBuilder.ts b/src/services/worker/search/TimelineBuilder.ts index 7d933f97..717c1a92 100644 --- a/src/services/worker/search/TimelineBuilder.ts +++ b/src/services/worker/search/TimelineBuilder.ts @@ -216,7 +216,7 @@ export class TimelineBuilder { } else if (item.type === 'observation') { const obs = item.data as ObservationSearchResult; - const file = extractFirstFile(obs.files_modified, cwd); + const file = extractFirstFile(obs.files_modified, cwd, obs.files_read); if (file !== currentFile) { if (tableOpen) { diff --git a/src/services/worker/search/filters/CLAUDE.md b/src/services/worker/search/filters/CLAUDE.md new file mode 100644 index 00000000..5df560bd --- /dev/null +++ b/src/services/worker/search/filters/CLAUDE.md @@ -0,0 +1,21 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**DateFilter.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36670 | 11:37 PM | โœ… | Resolved merge conflicts by accepting branch changes for 39 files | ~435 | +| #36523 | 9:34 PM | ๐Ÿ”ด | Fixed TypeScript Type Import Issues in Worker Services | ~386 | +| #36519 | " | ๐Ÿ”ด | Fixed Type Import Issues Preventing Worker Tests | ~308 | +| #36516 | 9:33 PM | ๐Ÿ”ด | Fixed TypeScript Type Import Issues in Worker Search Modules | ~377 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + +**ProjectFilter.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36529 | 9:34 PM | ๐Ÿ”ต | Search Module Architecture Discovery | ~302 | + \ No newline at end of file diff --git a/src/services/worker/search/strategies/CLAUDE.md b/src/services/worker/search/strategies/CLAUDE.md new file mode 100644 index 00000000..1cfb9be0 --- /dev/null +++ b/src/services/worker/search/strategies/CLAUDE.md @@ -0,0 +1,45 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**SearchStrategy.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36670 | 11:37 PM | โœ… | Resolved merge conflicts by accepting branch changes for 39 files | ~435 | +| #36534 | 9:35 PM | ๐Ÿ”ต | SearchStrategy Interface Pattern | ~341 | +| #36523 | 9:34 PM | ๐Ÿ”ด | Fixed TypeScript Type Import Issues in Worker Services | ~386 | +| #36519 | " | ๐Ÿ”ด | Fixed Type Import Issues Preventing Worker Tests | ~308 | +| #36516 | 9:33 PM | ๐Ÿ”ด | Fixed TypeScript Type Import Issues in Worker Search Modules | ~377 | +| #36449 | 9:02 PM | ๐Ÿ”ต | Search Strategy Base Implementation | ~410 | +| #36419 | 8:57 PM | ๐Ÿ”ต | Search Strategy Interface Pattern | ~380 | + +**SQLiteSearchStrategy.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36545 | 9:41 PM | ๐ŸŸฃ | Phase 3 Search Strategy Test Suite Completion | ~564 | +| #36544 | 9:40 PM | ๐ŸŸฃ | Phase 3 Search Strategy Test Suite Complete | ~449 | +| #36538 | 9:38 PM | ๐ŸŸฃ | SQLiteSearchStrategy Test Suite Created | ~527 | +| #36527 | 9:34 PM | ๐Ÿ”ต | Search Strategy Architecture Analysis for Phase 3 Testing | ~486 | +| #36526 | " | ๐Ÿ”ต | SQLite Search Strategy Architecture | ~439 | +| #36451 | 9:02 PM | ๐Ÿ”ต | SQLite Search Strategy Implementation | ~453 | + +**ChromaSearchStrategy.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36543 | 9:40 PM | ๐ŸŸฃ | Phase 3 Search Strategy Tests Completed | ~458 | +| #36536 | 9:38 PM | ๐ŸŸฃ | ChromaSearchStrategy Test Suite Created | ~430 | +| #36530 | 9:34 PM | ๐Ÿ”ต | Chroma Vector Search Strategy Architecture | ~508 | +| #36529 | " | ๐Ÿ”ต | Search Module Architecture Discovery | ~302 | +| #36390 | 8:50 PM | ๐Ÿ”„ | Comprehensive Monolith Refactor with Modular Architecture | ~724 | + +**HybridSearchStrategy.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36537 | 9:38 PM | ๐ŸŸฃ | HybridSearchStrategy Test Suite Created | ~435 | +| #36532 | 9:34 PM | ๐Ÿ”ต | HybridSearchStrategy Four-Step Pattern | ~333 | +| #36528 | " | ๐Ÿ”ต | Hybrid Search Strategy Combining Metadata Filtering with Semantic Ranking | ~525 | +| #36459 | 9:03 PM | ๐Ÿ”ต | Hybrid Search Strategy with Four-Step Algorithm | ~530 | + \ No newline at end of file diff --git a/src/services/worker/session/CLAUDE.md b/src/services/worker/session/CLAUDE.md new file mode 100644 index 00000000..b6e11776 --- /dev/null +++ b/src/services/worker/session/CLAUDE.md @@ -0,0 +1,103 @@ + +# Recent Activity + + + +### Dec 7, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #21829 | 11:05 PM | ๐Ÿ”„ | Massive refactor adds 8,671 lines and removes 5,585 lines across 60 files | ~619 | +| #21825 | 11:00 PM | ๐Ÿ”ต | SessionCompletionHandler methods called 3 times in SessionRoutes | ~342 | +| #21824 | 10:59 PM | ๐Ÿ”ต | SessionEventBroadcaster methods called 7 times across SessionRoutes and SessionCompletionHandler | ~398 | +| #21822 | " | ๐Ÿ”ต | SessionEventBroadcaster instantiated in WorkerService and injected into routes and handlers | ~372 | +| #21818 | 10:58 PM | ๐Ÿ”ต | SessionCompletionHandler is instantiated in SessionRoutes | ~282 | +| #21817 | " | ๐Ÿ”ต | SessionCompletionHandler consolidates session completion logic | ~414 | +| #21807 | 10:49 PM | โš–๏ธ | KISS Audit Identified 587 Lines of Ceremonial Complexity | ~699 | +| #21794 | 10:46 PM | ๐Ÿ”ต | SessionCompletionHandler Consolidates Duplicate Completion Logic | ~341 | +| #21764 | 10:23 PM | โœ… | Phase 4 Build and Deployment Successful | ~376 | +| #21759 | 10:21 PM | ๐ŸŸฃ | SessionCompletionHandler Service Created | ~426 | + +### Dec 11, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23962 | 1:59 PM | ๐Ÿ”ต | Services Layer Implements Full Backend Architecture | ~490 | + +### Dec 14, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26088 | 7:32 PM | ๐Ÿ”ต | API Endpoint Architecture Discovery | ~416 | + +### Dec 20, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30725 | 5:12 PM | ๐Ÿ”ต | Revealed extensive work-in-progress changes across hook and worker systems | ~479 | +| #30569 | 4:56 PM | ๐Ÿ”„ | SessionCompletionHandler Broadcasting Implementation | ~264 | +| #30568 | " | ๐Ÿ”„ | SessionCompletionHandler Event Broadcasting Refactor | ~282 | +| #30566 | " | ๐Ÿ”ต | Session Completion Handler Consolidation | ~323 | + +### Dec 24, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32350 | 8:42 PM | ๐Ÿ”ต | Detailed Cleanup Hook Evolution Documentation Retrieved | ~597 | +| #32316 | 8:41 PM | ๐Ÿ”„ | Removed markSessionComplete method from DatabaseManager | ~251 | +| #32194 | 7:42 PM | ๐Ÿ”ต | Session completion handler implementation analysis | ~329 | +| #32193 | " | ๐Ÿ”ต | Session completion endpoint usage across codebase | ~278 | +| #32182 | 7:15 PM | ๐Ÿ”„ | Removed markSessionComplete database call from session completion flow | ~316 | +| #32179 | 7:11 PM | ๐Ÿ”„ | SessionCompletionHandler switched to direct SQL query | ~273 | +| #32153 | 6:40 PM | ๐Ÿ”ต | Session Identifier Architecture Across Codebase | ~529 | + +### Dec 25, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32597 | 8:40 PM | ๐Ÿ”ต | Identified session completion mechanism and potential method discrepancy | ~470 | +| #32456 | 5:41 PM | โœ… | Completed merge of main branch into feature/titans-phase1-3 | ~354 | +| #32198 | 7:41 PM | ๐Ÿ”„ | Removed redundant SessionEnd cleanup hook | ~317 | + +### Dec 27, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33099 | 7:10 PM | ๐Ÿ”ต | SessionCompletionHandler Manual Session Termination Flow | ~348 | + +### Dec 28, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33328 | 3:10 PM | ๐ŸŸฃ | Merged centralized logger and session continuity diagnostics to main | ~397 | +| #33280 | 3:07 PM | ๐Ÿ”„ | Logger coverage refactor for background services | ~428 | + +### Dec 30, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34388 | 1:40 PM | ๐Ÿ”ต | SessionCompletionHandler Relies on SessionManager Abort Without Process Cleanup | ~309 | + +### Dec 31, 2025 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34707 | 4:45 PM | ๐Ÿ”ต | SessionCompletionHandler Aborts SDK Agent During Cleanup | ~291 | + +### Jan 2, 2026 + +**SessionCompletionHandler.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35951 | 4:42 PM | ๐Ÿ”ต | Multi-Layer Service Architecture Discovery | ~395 | + \ No newline at end of file diff --git a/src/services/worker/validation/CLAUDE.md b/src/services/worker/validation/CLAUDE.md new file mode 100644 index 00000000..9b62fe97 --- /dev/null +++ b/src/services/worker/validation/CLAUDE.md @@ -0,0 +1,77 @@ + +# Recent Activity + + + +### Dec 7, 2025 + +**PrivacyCheckValidator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #21829 | 11:05 PM | ๐Ÿ”„ | Massive refactor adds 8,671 lines and removes 5,585 lines across 60 files | ~619 | +| #21820 | 10:59 PM | ๐Ÿ”ต | PrivacyCheckValidator used twice in SessionRoutes for observation and summarize endpoints | ~303 | +| #21814 | 10:58 PM | ๐Ÿ”ต | PrivacyCheckValidator centralizes user prompt privacy validation | ~359 | +| #21807 | 10:49 PM | โš–๏ธ | KISS Audit Identified 587 Lines of Ceremonial Complexity | ~699 | +| #21797 | 10:46 PM | ๐Ÿ”ต | PrivacyCheckValidator Implements Single Validation Method | ~349 | +| #21770 | 10:36 PM | ๐ŸŸฃ | Implemented PrivacyCheckValidator for Centralized Privacy Validation | ~318 | + +### Dec 8, 2025 + +**PrivacyCheckValidator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22274 | 9:22 PM | ๐Ÿ”ต | Event-Driven Architecture for SDK Response Coordination Fully Mapped | ~1136 | +| #22270 | 9:12 PM | ๐Ÿ”ต | DRY violations identified in endless-mode-v7.1 branch | ~553 | + +### Dec 9, 2025 + +**PrivacyCheckValidator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22808 | 2:01 PM | ๐Ÿ”ต | Logger Utility Pattern Identified | ~300 | +| #22750 | 1:27 PM | ๐Ÿ”ต | PrivacyCheckValidator Centralizes Privacy Logic | ~450 | + +### Dec 11, 2025 + +**PrivacyCheckValidator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23962 | 1:59 PM | ๐Ÿ”ต | Services Layer Implements Full Backend Architecture | ~490 | + +### Dec 20, 2025 + +**PrivacyCheckValidator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30609 | 5:01 PM | ๐Ÿ”„ | Phase 4: Eliminated Over-Engineering in Hook/Worker System | ~504 | +| #30598 | 5:00 PM | ๐Ÿ”„ | Removed PrivacyCheckValidator module | ~201 | +| #30549 | 4:53 PM | ๐Ÿ”ต | PrivacyCheckValidator for User Prompt Filtering | ~325 | + +### Dec 24, 2025 + +**PrivacyCheckValidator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32153 | 6:40 PM | ๐Ÿ”ต | Session Identifier Architecture Across Codebase | ~529 | + +### Dec 25, 2025 + +**PrivacyCheckValidator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32580 | 8:22 PM | ๐Ÿ”ต | Grep for resetStuckMessages and processing | ~242 | + +### Dec 28, 2025 + +**PrivacyCheckValidator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33439 | 10:15 PM | ๐Ÿ”„ | Extended Session ID Renaming to Additional Codebase Components | ~352 | + +### Jan 2, 2026 + +**PrivacyCheckValidator.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35951 | 4:42 PM | ๐Ÿ”ต | Multi-Layer Service Architecture Discovery | ~395 | + \ No newline at end of file diff --git a/src/shared/CLAUDE.md b/src/shared/CLAUDE.md index b9ef9d0a..4e7686bc 100644 --- a/src/shared/CLAUDE.md +++ b/src/shared/CLAUDE.md @@ -3,20 +3,65 @@ -### Jan 5, 2026 +### Nov 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #6295 | 1:18 PM | ๐Ÿ”ต | Path Configuration Structure for claude-mem | ~305 | +| #6268 | 12:56 PM | ๐Ÿ”ต | Package Root Resolution Uses Relative Path from Bundle Location | ~379 | + +### Dec 5, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #20730 | 9:06 PM | ๐Ÿ”ต | Path Configuration Module with ESM/CJS Compatibility | ~578 | +| #20718 | 9:00 PM | ๐Ÿ”ต | Worker Service Auto-Start and Health Check System | ~448 | +| #20410 | 7:21 PM | ๐Ÿ”ต | Path utilities provide cross-runtime directory management with Claude integration support | ~478 | +| #20409 | 7:20 PM | ๐Ÿ”ต | Worker utilities provide automatic PM2 startup with health checking and port configuration | ~479 | + +### Dec 9, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23141 | 6:42 PM | ๐Ÿ”ต | Located getSettingsPath Function in paths.ts | ~261 | +| #23134 | 6:41 PM | โœ… | Set CLAUDE_MEM_SKIP_TOOLS Default Value in SettingsDefaultsManager | ~261 | +| #23133 | " | โœ… | Added CLAUDE_MEM_SKIP_TOOLS to SettingsDefaults Interface | ~231 | +| #23131 | 6:40 PM | ๐Ÿ”ต | SettingsDefaultsManager Structure and Configuration Schema | ~363 | +| #22858 | 2:28 PM | ๐Ÿ”„ | Removed Brittle save.md Validation from paths.ts | ~305 | +| #22852 | 2:26 PM | ๐Ÿ”ต | Located save.md Validation Logic in paths.ts | ~255 | +| #22805 | 2:01 PM | ๐Ÿ”ต | Early Settings Silent Failure Point Identified | ~363 | +| #22803 | " | ๐Ÿ”ต | Worker Utilities Current Implementation Review | ~390 | +| #22518 | 12:59 AM | ๐Ÿ”ต | Worker Utils StartWorker Implementation Uses Plugin Root for PM2 | ~311 | + +### Dec 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23831 | 11:15 PM | ๐Ÿ”ต | Current hook-error-handler.ts References PM2 | ~277 | +| #23830 | " | ๐Ÿ”ต | Current worker-utils.ts Implementation Uses PM2 | ~431 | +| #23812 | 10:49 PM | ๐Ÿ”ต | Current Worker Startup Uses PM2 and PowerShell; Phase 2 Will Replace | ~428 | +| #23811 | " | ๐Ÿ”ต | Existing Paths Configuration for Phase 2 Reference | ~297 | + +### Dec 12, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24405 | 8:12 PM | ๐Ÿ”ต | PM2 Legacy Cleanup Migration in Worker Startup | ~303 | +| #24400 | 8:10 PM | ๐Ÿ”ต | Retrieved PM2 Cleanup Implementation Details from Memory | ~355 | +| #24362 | 7:00 PM | ๐ŸŸฃ | Implemented PM2 Cleanup One-Time Marker in worker-utils.ts | ~376 | +| #24361 | " | โœ… | Added File System Imports to worker-utils.ts for PM2 Marker | ~263 | +| #24360 | " | ๐Ÿ”ต | worker-utils.ts Contains PM2 Cleanup Logic Without One-Time Marker | ~390 | + +### Dec 13, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25088 | 7:18 PM | ๐ŸŸฃ | Added CLAUDE_MEM_EMBEDDING_FUNCTION to Settings Interface | ~269 | + +### Dec 14, 2025 | ID | Time | T | Title | Read | |----|------|---|-------|------| -| #32616 | 8:43 PM | ๐Ÿ”ต | Comprehensive analysis of "enable billing" setting and its impact on rate limiting | ~533 | -| #32538 | 7:28 PM | โœ… | Set default Gemini billing to disabled | ~164 | -| #31086 | 7:59 PM | ๐Ÿ”ต | Transcript Parser Extracts Messages from JSONL Hook Files | ~327 | -| #30939 | 6:57 PM | ๐Ÿ”ต | Worker Utils File Examined for Error Handling Inconsistency | ~393 | -| #30855 | 6:22 PM | ๐Ÿ”ต | Transcript Parser Content Format Handling Examined | ~406 | -| #29797 | 7:09 PM | ๐Ÿ”ต | Settings System Uses CLAUDE_MEM_MODE for Mode Selection | ~353 | -| #29234 | 12:10 AM | ๐Ÿ”ต | Centralized Settings Management with Environment Defaults | ~394 | -| #28464 | 4:25 PM | ๐Ÿ”ต | Platform-Adjusted Hook Timeout Configuration | ~468 | -| #28461 | " | ๐Ÿ”ต | Dual ESM/CJS Path Resolution System | ~479 | -| #28452 | 4:23 PM | ๐Ÿ”ต | Worker Version Matching and Auto-Restart System | ~510 | | #26790 | 11:38 PM | ๐Ÿ”ด | Fixed Undefined Port Variable in Error Logger | ~340 | | #26789 | " | ๐Ÿ”ด | Fixed Undefined Port Variable in Error Logging | ~316 | | #26788 | " | ๐Ÿ”ต | Worker Utils Already Imports Required Dependencies for Implementation | ~283 | @@ -32,29 +77,34 @@ | #26731 | 11:24 PM | ๐Ÿ”ต | ensureWorkerRunning Implementation Shows 2.5 Second Startup Wait With Version Check | ~522 | | #25695 | 4:27 PM | ๐ŸŸฃ | Added comprehensive error logging to transcript parser for debugging message extraction failures | ~473 | | #25693 | 4:24 PM | ๐Ÿ”ต | Transcript parser extracts messages from JSONL file by scanning backwards for role-specific entries | ~491 | -| #25088 | 7:18 PM | ๐ŸŸฃ | Added CLAUDE_MEM_EMBEDDING_FUNCTION to Settings Interface | ~269 | -| #24405 | 8:12 PM | ๐Ÿ”ต | PM2 Legacy Cleanup Migration in Worker Startup | ~303 | -| #24400 | 8:10 PM | ๐Ÿ”ต | Retrieved PM2 Cleanup Implementation Details from Memory | ~355 | -| #24362 | 7:00 PM | ๐ŸŸฃ | Implemented PM2 Cleanup One-Time Marker in worker-utils.ts | ~376 | -| #24361 | " | โœ… | Added File System Imports to worker-utils.ts for PM2 Marker | ~263 | -| #24360 | " | ๐Ÿ”ต | worker-utils.ts Contains PM2 Cleanup Logic Without One-Time Marker | ~390 | -| #23831 | 11:15 PM | ๐Ÿ”ต | Current hook-error-handler.ts References PM2 | ~277 | -| #23830 | " | ๐Ÿ”ต | Current worker-utils.ts Implementation Uses PM2 | ~431 | -| #23812 | 10:49 PM | ๐Ÿ”ต | Current Worker Startup Uses PM2 and PowerShell; Phase 2 Will Replace | ~428 | -| #23811 | " | ๐Ÿ”ต | Existing Paths Configuration for Phase 2 Reference | ~297 | -| #23141 | 6:42 PM | ๐Ÿ”ต | Located getSettingsPath Function in paths.ts | ~261 | -| #23134 | 6:41 PM | โœ… | Set CLAUDE_MEM_SKIP_TOOLS Default Value in SettingsDefaultsManager | ~261 | -| #23133 | " | โœ… | Added CLAUDE_MEM_SKIP_TOOLS to SettingsDefaults Interface | ~231 | -| #23131 | 6:40 PM | ๐Ÿ”ต | SettingsDefaultsManager Structure and Configuration Schema | ~363 | -| #22858 | 2:28 PM | ๐Ÿ”„ | Removed Brittle save.md Validation from paths.ts | ~305 | -| #22852 | 2:26 PM | ๐Ÿ”ต | Located save.md Validation Logic in paths.ts | ~255 | -| #22805 | 2:01 PM | ๐Ÿ”ต | Early Settings Silent Failure Point Identified | ~363 | -| #22803 | " | ๐Ÿ”ต | Worker Utilities Current Implementation Review | ~390 | -| #22518 | 12:59 AM | ๐Ÿ”ต | Worker Utils StartWorker Implementation Uses Plugin Root for PM2 | ~311 | -| #20730 | 9:06 PM | ๐Ÿ”ต | Path Configuration Module with ESM/CJS Compatibility | ~578 | -| #20718 | 9:00 PM | ๐Ÿ”ต | Worker Service Auto-Start and Health Check System | ~448 | -| #20410 | 7:21 PM | ๐Ÿ”ต | Path utilities provide cross-runtime directory management with Claude integration support | ~478 | -| #20409 | 7:20 PM | ๐Ÿ”ต | Worker utilities provide automatic PM2 startup with health checking and port configuration | ~479 | -| #6295 | 1:18 PM | ๐Ÿ”ต | Path Configuration Structure for claude-mem | ~305 | -| #6268 | 12:56 PM | ๐Ÿ”ต | Package Root Resolution Uses Relative Path from Bundle Location | ~379 | + +### Dec 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #28464 | 4:25 PM | ๐Ÿ”ต | Platform-Adjusted Hook Timeout Configuration | ~468 | +| #28461 | " | ๐Ÿ”ต | Dual ESM/CJS Path Resolution System | ~479 | +| #28452 | 4:23 PM | ๐Ÿ”ต | Worker Version Matching and Auto-Restart System | ~510 | + +### Dec 18, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29797 | 7:09 PM | ๐Ÿ”ต | Settings System Uses CLAUDE_MEM_MODE for Mode Selection | ~353 | +| #29234 | 12:10 AM | ๐Ÿ”ต | Centralized Settings Management with Environment Defaults | ~394 | + +### Dec 20, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31086 | 7:59 PM | ๐Ÿ”ต | Transcript Parser Extracts Messages from JSONL Hook Files | ~327 | +| #30939 | 6:57 PM | ๐Ÿ”ต | Worker Utils File Examined for Error Handling Inconsistency | ~393 | +| #30855 | 6:22 PM | ๐Ÿ”ต | Transcript Parser Content Format Handling Examined | ~406 | + +### Dec 25, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32616 | 8:43 PM | ๐Ÿ”ต | Comprehensive analysis of "enable billing" setting and its impact on rate limiting | ~533 | +| #32538 | 7:28 PM | โœ… | Set default Gemini billing to disabled | ~164 | \ No newline at end of file diff --git a/src/shared/timeline-formatting.ts b/src/shared/timeline-formatting.ts index 39f25ea8..781dba0e 100644 --- a/src/shared/timeline-formatting.ts +++ b/src/shared/timeline-formatting.ts @@ -76,11 +76,30 @@ export function toRelativePath(filePath: string, cwd: string): string { } /** - * Extract first file from files_modified JSON array, or return 'General' + * Extract first relevant file from files_modified OR files_read JSON arrays. + * Prefers files_modified, falls back to files_read. + * Returns 'General' only if both are empty. */ -export function extractFirstFile(filesModified: string | null, cwd: string): string { - const files = parseJsonArray(filesModified); - return files.length > 0 ? toRelativePath(files[0], cwd) : 'General'; +export function extractFirstFile( + filesModified: string | null, + cwd: string, + filesRead?: string | null +): string { + // Try files_modified first + const modified = parseJsonArray(filesModified); + if (modified.length > 0) { + return toRelativePath(modified[0], cwd); + } + + // Fall back to files_read + if (filesRead) { + const read = parseJsonArray(filesRead); + if (read.length > 0) { + return toRelativePath(read[0], cwd); + } + } + + return 'General'; } /** diff --git a/src/types/CLAUDE.md b/src/types/CLAUDE.md new file mode 100644 index 00000000..f822d956 --- /dev/null +++ b/src/types/CLAUDE.md @@ -0,0 +1,169 @@ + +# Recent Activity + + + +### Nov 21, 2025 + +**transcript.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #13598 | 5:39 PM | ๐Ÿ”ต | Full transcript schema structure with all content type definitions revealed | ~493 | +| #13593 | 5:38 PM | ๐Ÿ”ต | Transcript schema defines five transcript entry types with comprehensive structures | ~610 | + +### Nov 23, 2025 + +**transcript.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #14665 | 7:25 PM | ๐Ÿ”ต | Tool Use ID Now Available in Hook Input Schema | ~395 | +| #14613 | 6:07 PM | ๐Ÿ”ต | Transcript Transformation System Analyzed for Test Creation | ~632 | +| #14580 | 5:37 PM | ๐Ÿ”ต | AssistantMessage type definition includes all required schema fields | ~395 | + +### Nov 25, 2025 + +**transcript.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #15387 | 5:35 PM | ๐Ÿ”ต | Existing Transcript Processing Infrastructure with TypeScript Parser | ~430 | +| #15022 | 2:37 PM | โœ… | README.md Updated with Empirically Validated 50-60% Token Reduction | ~336 | +| #15003 | 2:28 PM | ๐Ÿ”ต | Comprehensive Transcript Processing Infrastructure | ~309 | + +### Dec 7, 2025 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #21829 | 11:05 PM | ๐Ÿ”„ | Massive refactor adds 8,671 lines and removes 5,585 lines across 60 files | ~619 | +| #21659 | 9:35 PM | ๐ŸŸฃ | Database Type Definitions Created for Type Safety | ~355 | + +### Dec 8, 2025 + +**transcript.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22273 | 9:22 PM | ๐Ÿ”ต | Transcript Modification Flow in Endless Mode Fully Traced | ~1061 | +| #22035 | 6:00 PM | ๐Ÿ”ต | Identified tool_use_id tracking across 13 TypeScript modules | ~329 | + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22047 | 6:03 PM | ๐Ÿ”ต | Database types define schema interfaces for SQLite query results with better-sqlite3 type safety | ~620 | +| #21925 | 4:55 PM | ๐Ÿ”ต | Database Schema Types Review | ~350 | + +### Dec 10, 2025 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23734 | 9:03 PM | ๐Ÿ”ต | Database Type Definitions Identified | ~290 | + +### Dec 11, 2025 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23959 | 1:58 PM | ๐Ÿ”ต | TypeScript Codebase Architecture Mapped | ~337 | + +### Dec 12, 2025 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #24394 | 7:24 PM | ๐ŸŸฃ | Phase 6 Agent Completed Git Commit and PR Update | ~444 | +| #24391 | " | โœ… | Committed Complete Migration from better-sqlite3 to bun:sqlite | ~436 | +| #24390 | 7:23 PM | โœ… | Staged All 19 Modified Files for Git Commit | ~301 | +| #24389 | " | ๐ŸŸฃ | Phase 5 Agent Completed Full System Verification | ~726 | +| #24388 | 7:22 PM | ๐ŸŸฃ | Phase 5 Complete - All Verification Passed for Production Deployment | ~600 | +| #24387 | " | ๐Ÿ”ต | Uncommitted Changes Identified Across Documentation and Core Services | ~368 | + +### Dec 14, 2025 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #26543 | 10:21 PM | ๐Ÿ”ต | Comprehensive Schema Migration from Legacy to SDK Architecture | ~902 | +| #26527 | 10:18 PM | ๐Ÿ”ต | Database Type Definitions with Schema and Record Interfaces | ~564 | +| #26523 | 10:17 PM | ๐Ÿ”ต | Shared Database Type Definitions | ~399 | +| #25904 | 6:21 PM | ๐Ÿ”ต | Database Type Definitions for SQLite Records | ~396 | + +### Dec 16, 2025 + +**transcript.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #28038 | 8:05 PM | ๐Ÿ”ต | Transcript Type Definitions | ~412 | +| #28027 | 8:04 PM | ๐Ÿ”ต | Transcript Type Definitions | ~395 | + +### Dec 18, 2025 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #29773 | 7:01 PM | ๐Ÿ”ต | Observation Type Definitions Across Codebase | ~362 | + +### Dec 20, 2025 + +**transcript.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30785 | 6:01 PM | ๐Ÿ”ต | Transcript Type System Models Claude Code JSONL Structure | ~563 | + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30784 | 6:01 PM | ๐Ÿ”ต | Database Type System Defines SQLite Schema Contracts | ~538 | +| #30272 | 3:23 PM | ๐ŸŸฃ | Added UserPromptWithContext TypeScript interface | ~230 | + +**bun-sqlite.d.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #30332 | 3:39 PM | ๐ŸŸฃ | Created PR #399 for TypeScript Compilation Fixes | ~293 | +| #30330 | 3:38 PM | ๐Ÿ”ด | TypeScript errors fixed across 21 files with type definitions added | ~378 | +| #30321 | 3:34 PM | โœ… | Removed Ragtime Script and Staged Bun-SQLite Types | ~229 | +| #30315 | 3:33 PM | ๐Ÿ”ด | Comprehensive TypeScript Error Resolution | ~560 | +| #30302 | 3:30 PM | ๐Ÿ”ด | Corrected Bun SQLite Transaction Method Signature | ~333 | +| #30294 | 3:27 PM | ๐Ÿ”ด | Fixed bun:sqlite type declarations to match actual runtime API | ~313 | +| #30268 | 3:22 PM | ๐Ÿ”ด | Added TypeScript declarations for bun:sqlite module | ~276 | + +### Dec 22, 2025 + +**mode-config.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #31951 | 8:17 PM | ๐ŸŸฃ | Mode System with Inheritance and Multilingual Support | ~776 | + +### Dec 24, 2025 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32158 | 6:42 PM | ๐Ÿ”ต | Database Type Definitions and Identifier Patterns | ~479 | +| #32157 | 6:41 PM | ๐Ÿ”ต | Shared Type Definitions Use SDK Session ID | ~300 | + +### Dec 25, 2025 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32558 | 8:18 PM | ๐Ÿ”ต | Identified files containing 'summary' or 'Summary' | ~167 | + +### Dec 28, 2025 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33438 | 10:15 PM | ๐Ÿ”„ | Bulk Rename Session ID Fields Across Entire Codebase | ~384 | + +### Jan 4, 2026 + +**database.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36824 | 1:00 AM | ๐Ÿ”ต | Database Types Define Canonical Record Interfaces | ~654 | +| #36775 | 12:43 AM | ๐Ÿ”ต | Database Record Type Definitions | ~542 | +| #36770 | 12:42 AM | ๐Ÿ”ต | Export Script Type Duplication Analysis Complete | ~555 | +| #36761 | 12:36 AM | โœ… | Created Implementation Plans for Four GitHub Issues | ~507 | +| #36760 | 12:34 AM | โœ… | Created Issue #531 Report: Export Script Type Duplication | ~430 | +| #36758 | " | ๐Ÿ”ต | Issue #531 Root Cause - 73 Lines of Duplicated Export Type Definitions | ~529 | + \ No newline at end of file diff --git a/src/ui/CLAUDE.md b/src/ui/CLAUDE.md new file mode 100644 index 00000000..c0a49740 --- /dev/null +++ b/src/ui/CLAUDE.md @@ -0,0 +1,39 @@ + +# Recent Activity + + + +### Dec 25, 2025 + +**viewer-template.html** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32516 | 6:58 PM | ๐ŸŸฃ | Spinning favicon animation during processing | ~347 | + +### Dec 26, 2025 + +**viewer-template.html** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32977 | 11:13 PM | ๐Ÿ”ต | User questions Save button placement in settings modal | ~172 | +| #32976 | 11:12 PM | ๐Ÿ”ต | UI button placement questioned in settings modal | ~166 | + +### Jan 1, 2026 + +**viewer-template.html** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35609 | 10:53 PM | โœ… | Removed logs-btn from Mobile Responsive Styles | ~221 | +| #35608 | " | โœ… | Removed logs-icon Class from Icon Sizing Styles | ~173 | +| #35607 | " | โœ… | Removed Legacy Logs Button Styles from CSS | ~217 | +| #35606 | " | ๐ŸŸฃ | Complete CSS Implementation for Chrome DevTools-Style Console Drawer | ~650 | + +### Jan 2, 2026 + +**viewer-template.html** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35901 | 2:49 PM | ๐Ÿ”ต | PR #525 File Changes Summary | ~376 | +| #35878 | 2:40 PM | ๐Ÿ”ต | Console Drawer Styling and Structure in HTML Template | ~531 | +| #35814 | 2:25 PM | ๐ŸŸฃ | Console Filter Bar and Log Line Styling Added | ~328 | + \ No newline at end of file diff --git a/src/ui/viewer/CLAUDE.md b/src/ui/viewer/CLAUDE.md new file mode 100644 index 00000000..90be49de --- /dev/null +++ b/src/ui/viewer/CLAUDE.md @@ -0,0 +1,11 @@ + +# Recent Activity + + + +### Nov 30, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #17551 | 4:34 PM | ๐Ÿ”ด | Added missing props to Sidebar component instantiation | ~356 | + \ No newline at end of file diff --git a/src/ui/viewer/components/CLAUDE.md b/src/ui/viewer/components/CLAUDE.md new file mode 100644 index 00000000..cbd866ac --- /dev/null +++ b/src/ui/viewer/components/CLAUDE.md @@ -0,0 +1,117 @@ + +# Recent Activity + + + +### Dec 25, 2025 + +**ContextSettingsModal.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32789 | 9:49 PM | ๐ŸŸฃ | Gemini AI Provider Integration Merged to Main | ~409 | +| #32640 | 8:46 PM | ๐ŸŸฃ | Renamed "Billing Enabled" setting to "Rate Limiting" with inverted logic | ~546 | +| #32630 | 8:45 PM | โœ… | Updated UI toggle for rate limiting in `ContextSettingsModal` | ~345 | +| #32622 | 8:44 PM | โœ… | Updated UI toggle for rate limiting in `ContextSettingsModal` | ~375 | +| #32615 | 8:43 PM | ๐Ÿ”ต | Confirmed UI text for "Billing Enabled" toggle | ~244 | +| #32613 | " | ๐Ÿ”ต | Comprehensive identification of `CLAUDE_MEM_GEMINI_BILLING_ENABLED` usage | ~407 | +| #32608 | 8:42 PM | ๐Ÿ”ต | Identified UI component for "Billing Enabled" toggle | ~348 | +| #32604 | " | ๐Ÿ”ต | Identified "billing" setting and its direct link to rate limiting | ~405 | +| #32603 | " | ๐Ÿ”ต | Identified widespread use of "Gemini" across application components | ~312 | +| #32559 | 8:18 PM | ๐Ÿ”ต | Listed files changed in the current branch | ~169 | +| #32550 | 7:31 PM | ๐ŸŸฃ | Added Gemini Billing Enabled toggle in UI | ~189 | + +### Dec 26, 2025 + +**ContextSettingsModal.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32977 | 11:13 PM | ๐Ÿ”ต | User questions Save button placement in settings modal | ~172 | +| #32976 | 11:12 PM | ๐Ÿ”ต | UI button placement questioned in settings modal | ~166 | +| #32978 | 11:04 PM | ๐Ÿ”ต | ContextSettingsModal component structure examined | ~199 | +| #32979 | " | ๐Ÿ”ต | Save button implemented in modal footer section | ~195 | +| #32980 | " | ๐Ÿ”„ | Save button moved inside modal body structure | ~182 | +| #32925 | 10:26 PM | ๐Ÿ”ต | OpenRouter Provider Integration Proposed in PR 448 | ~543 | +| #32923 | 10:18 PM | ๐Ÿ”ต | OpenRouter Integration Architecture in claude-mem | ~610 | +| #32922 | 10:17 PM | ๐Ÿ”ต | OpenRouter Integration in Settings UI | ~362 | +| #32913 | 10:05 PM | ๐Ÿ”ต | PR #448 Code Review: OpenRouter Provider Integration | ~523 | +| #32909 | 10:01 PM | ๐Ÿ”ต | ContextSettingsModal provides rich UI for settings with live preview and provider configuration | ~611 | + +### Dec 28, 2025 + +**ContextSettingsModal.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #33279 | 3:07 PM | โœ… | Changed Default OpenRouter Model to Free Tier Option | ~285 | + +### Dec 30, 2025 + +**ContextSettingsModal.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34384 | 1:39 PM | ๐Ÿ”ต | UI Provides "haiku" as Model Selection Option | ~296 | + +### Jan 1, 2026 + +**LogsModal.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35668 | 11:40 PM | โœ… | Main branch updated with major feature additions | ~377 | +| #35598 | 10:51 PM | ๐Ÿ”„ | Logs UI Refactored from Modal to Bottom Drawer | ~505 | +| #35597 | 10:29 PM | ๐ŸŸฃ | Logs Viewer Modal Component Created | ~299 | + +**Header.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35603 | 10:52 PM | ๐ŸŸฃ | Removed Logs Button from Header UI | ~274 | +| #35602 | " | โœ… | Removed onLogsToggle from Header Destructuring | ~215 | +| #35601 | " | ๐Ÿ”„ | Removed onLogsToggle Prop from Header Interface | ~191 | + +### Jan 2, 2026 + +**LogsModal.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35999 | 5:32 PM | ๐ŸŸฃ | Alignment Quick Filter Added to Console Logs UI | ~308 | +| #35982 | 5:09 PM | โœ… | Built and deployed claude-mem version 8.5.4 with LogsModal UI component | ~295 | +| #35981 | 5:08 PM | ๐ŸŸฃ | Implemented alignment quick filter UI in LogsModal | ~281 | +| #35980 | " | ๐ŸŸฃ | Alignment-only filter added to LogsModal | ~323 | +| #35979 | " | ๐ŸŸฃ | Added alignment filter state to LogsModal component | ~219 | +| #35978 | " | ๐Ÿ”ต | LogsModal viewer component with filtering and parsing capabilities | ~447 | +| #35904 | 2:49 PM | ๐ŸŸฃ | Implemented Structured Log Parsing in LogsModal | ~400 | +| #35901 | " | ๐Ÿ”ต | PR #525 File Changes Summary | ~376 | +| #35879 | 2:41 PM | ๐ŸŸฃ | Enhanced LogsModal with Parsing, Filtering, Colors, Icons, and Auto-Scroll | ~726 | +| #35877 | 2:40 PM | ๐Ÿ”ต | LogsDrawer Component Current Implementation | ~426 | +| #35820 | 2:28 PM | ๐Ÿ”ต | Current LogsDrawer implementation analyzed | ~289 | + +**Header.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35875 | 2:39 PM | ๐Ÿ”ต | Logging UI Architecture Mapped | ~599 | +| #35839 | 2:30 PM | ๐Ÿ”ต | Header component with project filter dropdown | ~245 | + +**SummaryCard.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35834 | 2:30 PM | ๐Ÿ”ต | SummaryCard demonstrates icon usage pattern | ~281 | + +**Feed.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35832 | 2:29 PM | ๐Ÿ”ต | Feed component with intersection observer for infinite scroll | ~300 | + +**ObservationCard.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #35828 | 2:29 PM | ๐Ÿ”ต | ObservationCard styling and interaction patterns | ~275 | + +### Jan 4, 2026 + +**ContextSettingsModal.tsx** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36781 | 12:45 AM | ๐Ÿ”ต | Complete GeminiAgent Model Configuration Gap Analysis | ~552 | +| #36773 | 12:43 AM | ๐Ÿ”ต | Gemini Model Options in Settings UI | ~490 | +| #36757 | 12:33 AM | ๐Ÿ”ต | Issue #511 Root Cause Identified - Gemini-3-Flash Configuration Mismatch | ~416 | +| #36756 | " | ๐Ÿ”ต | UI Component Also Lists gemini-3-flash | ~339 | +| #36754 | " | ๐Ÿ”ต | Gemini-3-Flash Model Already Supported | ~301 | + \ No newline at end of file diff --git a/src/ui/viewer/constants/CLAUDE.md b/src/ui/viewer/constants/CLAUDE.md new file mode 100644 index 00000000..591ec41c --- /dev/null +++ b/src/ui/viewer/constants/CLAUDE.md @@ -0,0 +1,11 @@ + +# Recent Activity + + + +### Dec 26, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32982 | 11:04 PM | ๐Ÿ”ต | Read default settings configuration file | ~233 | + \ No newline at end of file diff --git a/src/ui/viewer/hooks/CLAUDE.md b/src/ui/viewer/hooks/CLAUDE.md new file mode 100644 index 00000000..3dc8b60c --- /dev/null +++ b/src/ui/viewer/hooks/CLAUDE.md @@ -0,0 +1,63 @@ + +# Recent Activity + + + +### Nov 5, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #3944 | 9:06 PM | ๐Ÿ”ต | UI Codebase Technical Debt Analysis | ~562 | +| #3926 | 8:57 PM | โœ… | Built viewer with SSE processing fix | ~149 | +| #3925 | " | ๐Ÿ”ด | Removed premature session processing flag on prompt arrival | ~240 | +| #3901 | 8:10 PM | ๐Ÿ”ด | Fixed Temporal Dead Zone Error in Viewer App | ~292 | +| #3900 | " | ๐Ÿ”ต | Pagination Hook Examined for Fix Implementation | ~202 | +| #3890 | 7:50 PM | ๐Ÿ”„ | Refactored project filtering to use database queries instead of client-side filtering | ~515 | +| #3880 | 7:35 PM | โš–๏ธ | Deployed Focused Diagnosis Agent for Filter Bug Root Cause | ~343 | +| #3879 | 7:32 PM | โš–๏ธ | Deployed Investigation Agent for Project Filtering Bug | ~296 | +| #3848 | 6:49 PM | ๐ŸŸฃ | Created usePagination Hook for Infinite Scroll | ~372 | +| #3835 | 6:34 PM | ๐Ÿ”ต | SSE hook for viewer UI exploration | ~278 | +| #3796 | 5:50 PM | ๐ŸŸฃ | Migrated viewer UI from static HTML to React with TypeScript | ~797 | + +### Nov 7, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #4705 | 8:02 PM | ๐Ÿ”„ | Removed Redundant stateRef Update Effect | ~302 | +| #4696 | 7:58 PM | ๐Ÿ”ต | PR Review Feedback Analysis Completed | ~382 | +| #4680 | 7:40 PM | ๐Ÿ”ด | Fixed Pagination Filter Change Race Condition | ~329 | +| #4678 | 7:39 PM | ๐Ÿ”ต | Pagination Hook Implementation in Claude-Mem Viewer | ~402 | +| #4674 | 7:36 PM | ๐Ÿ”ต | React Pagination Hook with Concurrent Request Prevention | ~421 | +| #4668 | 7:32 PM | ๐Ÿ”ต | Pagination hook manages filter-aware data loading with concurrent request prevention | ~430 | +| #4636 | 7:12 PM | ๐Ÿ”ด | Added Missing 'investigated' Field to Summary Type Definitions and UI Display | ~521 | +| #4375 | 1:23 PM | ๐Ÿ”ต | Pagination Hook for Historical Data Loading | ~351 | +| #4373 | 1:22 PM | ๐Ÿ”ต | React SSE Hook for Real-time UI Updates | ~342 | + +### Nov 8, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #4916 | 1:49 PM | โš–๏ธ | Claude Mem Pro Premium Offering Implementation Plan Finalized | ~946 | +| #4902 | 1:35 PM | ๐ŸŸฃ | Claude Mem Pro Premium Project Initialization | ~679 | +| #4901 | 1:31 PM | โš–๏ธ | Premium claude-mem Project Architecture and Planning | ~797 | + +### Nov 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #6210 | 12:32 PM | โœ… | Updated useSettings Hook to Load MCP Setting from API | ~289 | + +### Nov 23, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #14565 | 5:23 PM | ๐Ÿ”ต | SSE Hook Handles new_summary Events | ~305 | + +### Dec 26, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #32949 | 10:55 PM | ๐Ÿ”ต | Complete settings persistence flow for Xiaomi MIMO v2 Flash model | ~320 | +| #32944 | 10:53 PM | ๐Ÿ”ต | useSettings hook provides complete settings persistence lifecycle | ~289 | +| #32974 | " | ๐ŸŸฃ | Added OpenRouter and Gemini rate limiting configuration support | ~215 | + \ No newline at end of file diff --git a/src/ui/viewer/utils/CLAUDE.md b/src/ui/viewer/utils/CLAUDE.md new file mode 100644 index 00000000..9aa860c1 --- /dev/null +++ b/src/ui/viewer/utils/CLAUDE.md @@ -0,0 +1,58 @@ + +# Recent Activity + + + +### Nov 5, 2025 + +**data.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #4057 | 10:48 PM | ๐ŸŸฃ | Web-Based Viewer UI for Real-Time Memory Stream | ~610 | +| #3956 | 9:10 PM | ๐Ÿ”„ | Extracted mergeAndDeduplicateByProject helper function to eliminate duplicate filtering logic | ~404 | + +**formatters.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #3960 | 9:11 PM | ๐ŸŸฃ | Added formatDate utility function to formatters.ts | ~268 | +| #3865 | 7:17 PM | ๐Ÿ”„ | Extracted formatting utilities into shared module | ~337 | + +### Nov 7, 2025 + +**data.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #4726 | 8:28 PM | โœ… | Merged PR #70 with project filter improvements to main branch | ~382 | +| #4715 | 8:04 PM | โœ… | Committed PR feedback fixes to bugfix/project-filter branch | ~337 | +| #4712 | " | ๐Ÿ”„ | Simplified validation in data.ts mergeAndDeduplicateByProject | ~249 | +| #4692 | 7:44 PM | ๐Ÿ”ด | Fixed Critical Project Filter Synchronization Issues in Viewer UI | ~435 | +| #4690 | " | ๐ŸŸฃ | Enhanced Session and Summary Handling with Filtering and Pagination | ~420 | +| #4667 | 7:32 PM | ๐Ÿ”ต | Examined Data Utility for Merging SSE and Paginated Items | ~422 | +| #4660 | 7:29 PM | ๐Ÿ”ด | Fixed project filtering in UI header | ~328 | + +### Dec 2, 2025 + +**formatNumber.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #19683 | 11:53 PM | ๐Ÿ”ต | PR Diff Shows 3,140 Insertions Across 17 Files | ~331 | +| #19220 | 6:06 PM | โœ… | GitHub Stars Button Component Deployed to Production | ~256 | +| #19214 | 6:03 PM | ๐ŸŸฃ | Number Formatting Utility Created | ~402 | + +**textDiff.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #19556 | 10:54 PM | ๐ŸŸฃ | Implemented prefix/suffix token diff algorithm | ~364 | + +**ansiTokenizer.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #19555 | 10:54 PM | ๐ŸŸฃ | ANSI Tokenizer Utility Created | ~447 | + +### Dec 11, 2025 + +**data.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #23959 | 1:58 PM | ๐Ÿ”ต | TypeScript Codebase Architecture Mapped | ~337 | + \ No newline at end of file diff --git a/src/utils/CLAUDE.md b/src/utils/CLAUDE.md index bf42a2b0..bff0a14e 100644 --- a/src/utils/CLAUDE.md +++ b/src/utils/CLAUDE.md @@ -3,18 +3,58 @@ -### Jan 5, 2026 +### Nov 5, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #4035 | 10:24 PM | ๐Ÿ”ต | logger.ts file exists but is empty | ~220 | + +### Nov 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #6521 | 5:43 PM | ๐Ÿ”ต | Code Review: Enhanced HTTP Logging and Double Entries Bug Fix | ~482 | + +### Nov 17, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #10019 | 12:14 AM | ๐Ÿ”ต | TranscriptParser Utility: JSONL Parsing with Type-Safe Entry Filtering | ~569 | + +### Nov 23, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #14626 | 6:25 PM | ๐Ÿ”ต | Stop Hook Summary Not in Transcript Validator Schema | ~359 | + +### Nov 28, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #17238 | 11:34 PM | ๐Ÿ”ต | Existing TranscriptParser TypeScript implementation handles nested message structure | ~493 | + +### Dec 5, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #20407 | 7:20 PM | ๐Ÿ”ต | Tag stripping utilities implement dual-tag privacy system with ReDoS protection | ~415 | + +### Dec 8, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #22310 | 9:46 PM | ๐ŸŸฃ | Complete Hook Lifecycle Documentation Generated | ~603 | +| #22306 | 9:45 PM | ๐Ÿ”ต | Dual-Tag Privacy System with ReDoS Protection | ~461 | + +### Dec 14, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #25691 | 4:24 PM | ๐Ÿ”ต | happy_path_error__with_fallback utility logs errors to silent.log and returns fallback values | ~460 | + +### Dec 20, 2025 | ID | Time | T | Title | Read | |----|------|---|-------|------| | #30883 | 6:38 PM | ๐Ÿ”ต | Tag-Stripping DRY Violation Analysis | ~152 | -| #25691 | 4:24 PM | ๐Ÿ”ต | happy_path_error__with_fallback utility logs errors to silent.log and returns fallback values | ~460 | -| #22310 | 9:46 PM | ๐ŸŸฃ | Complete Hook Lifecycle Documentation Generated | ~603 | -| #22306 | 9:45 PM | ๐Ÿ”ต | Dual-Tag Privacy System with ReDoS Protection | ~461 | -| #20407 | 7:20 PM | ๐Ÿ”ต | Tag stripping utilities implement dual-tag privacy system with ReDoS protection | ~415 | -| #17238 | 11:34 PM | ๐Ÿ”ต | Existing TranscriptParser TypeScript implementation handles nested message structure | ~493 | -| #14626 | 6:25 PM | ๐Ÿ”ต | Stop Hook Summary Not in Transcript Validator Schema | ~359 | -| #10019 | 12:14 AM | ๐Ÿ”ต | TranscriptParser Utility: JSONL Parsing with Type-Safe Entry Filtering | ~569 | -| #6521 | 5:43 PM | ๐Ÿ”ต | Code Review: Enhanced HTTP Logging and Double Entries Bug Fix | ~482 | -| #4035 | 10:24 PM | ๐Ÿ”ต | logger.ts file exists but is empty | ~220 | \ No newline at end of file diff --git a/src/utils/claude-md-utils.ts b/src/utils/claude-md-utils.ts new file mode 100644 index 00000000..92fb30f4 --- /dev/null +++ b/src/utils/claude-md-utils.ts @@ -0,0 +1,291 @@ +/** + * CLAUDE.md File Utilities + * + * Shared utilities for writing folder-level CLAUDE.md files with + * auto-generated context sections. Preserves user content outside + * tags. + */ + +import { existsSync, readFileSync, writeFileSync, renameSync, mkdirSync } from 'fs'; +import path from 'path'; +import os from 'os'; +import { logger } from './logger.js'; +import { formatDate, groupByDate } from '../shared/timeline-formatting.js'; +import { SettingsDefaultsManager } from '../shared/SettingsDefaultsManager.js'; +import { getWorkerHost } from '../shared/worker-utils.js'; + +const SETTINGS_PATH = path.join(os.homedir(), '.claude-mem', 'settings.json'); + +/** + * Replace tagged content in existing file, preserving content outside tags. + * + * Handles three cases: + * 1. No existing content โ†’ wraps new content in tags + * 2. Has existing tags โ†’ replaces only tagged section + * 3. No tags in existing content โ†’ appends tagged content at end + */ +export function replaceTaggedContent(existingContent: string, newContent: string): string { + const startTag = ''; + const endTag = ''; + + // If no existing content, wrap new content in tags + if (!existingContent) { + return `${startTag}\n${newContent}\n${endTag}`; + } + + // If existing has tags, replace only tagged section + const startIdx = existingContent.indexOf(startTag); + const endIdx = existingContent.indexOf(endTag); + + if (startIdx !== -1 && endIdx !== -1) { + return existingContent.substring(0, startIdx) + + `${startTag}\n${newContent}\n${endTag}` + + existingContent.substring(endIdx + endTag.length); + } + + // If no tags exist, append tagged content at end + return existingContent + `\n\n${startTag}\n${newContent}\n${endTag}`; +} + +/** + * Write CLAUDE.md file to folder with atomic writes. + * Creates directory structure if needed. + * + * @param folderPath - Absolute path to the folder + * @param newContent - Content to write inside tags + */ +export function writeClaudeMdToFolder(folderPath: string, newContent: string): void { + const claudeMdPath = path.join(folderPath, 'CLAUDE.md'); + const tempFile = `${claudeMdPath}.tmp`; + + // Ensure directory exists + mkdirSync(folderPath, { recursive: true }); + + // Read existing content if file exists + let existingContent = ''; + if (existsSync(claudeMdPath)) { + existingContent = readFileSync(claudeMdPath, 'utf-8'); + } + + // Replace only tagged content, preserve user content + const finalContent = replaceTaggedContent(existingContent, newContent); + + // Atomic write: temp file + rename + writeFileSync(tempFile, finalContent); + renameSync(tempFile, claudeMdPath); +} + +/** + * Parsed observation from API response text + */ +interface ParsedObservation { + id: string; + time: string; + typeEmoji: string; + title: string; + tokens: string; + epoch: number; // For date grouping +} + +/** + * Format timeline text from API response to timeline format. + * + * Uses the same format as search results: + * - Grouped by date (### Jan 4, 2026) + * - Grouped by file within each date (**filename**) + * - Table with columns: ID, Time, T (type emoji), Title, Read (tokens) + * - Ditto marks for repeated times + * + * @param timelineText - Raw API response text + * @returns Formatted markdown with date/file grouping + */ +export function formatTimelineForClaudeMd(timelineText: string): string { + const lines: string[] = []; + lines.push('# Recent Activity'); + lines.push(''); + lines.push(''); + lines.push(''); + + // Parse the API response to extract observation rows + const apiLines = timelineText.split('\n'); + + // Note: We skip file grouping since we're querying by folder - all results are from the same folder + + // Parse observations: | #123 | 4:30 PM | ๐Ÿ”ง | Title | ~250 | ... | + const observations: ParsedObservation[] = []; + let lastTimeStr = ''; + let currentDate: Date | null = null; + + for (const line of apiLines) { + // Check for date headers: ### Jan 4, 2026 + const dateMatch = line.match(/^###\s+(.+)$/); + if (dateMatch) { + const dateStr = dateMatch[1].trim(); + const parsedDate = new Date(dateStr); + // Validate the parsed date + if (!isNaN(parsedDate.getTime())) { + currentDate = parsedDate; + } + continue; + } + + // Match table rows: | #123 | 4:30 PM | ๐Ÿ”ง | Title | ~250 | ... | + // Also handles ditto marks and session IDs (#S123) + const match = line.match(/^\|\s*(#[S]?\d+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|/); + if (match) { + const [, id, timeStr, typeEmoji, title, tokens] = match; + + // Handle ditto mark (โ€ณ) - use last time + let time: string; + if (timeStr.trim() === 'โ€ณ' || timeStr.trim() === '"') { + time = lastTimeStr; + } else { + time = timeStr.trim(); + lastTimeStr = time; + } + + // Parse time and combine with current date header (or fallback to today) + const baseDate = currentDate ? new Date(currentDate) : new Date(); + const timeParts = time.match(/(\d+):(\d+)\s*(AM|PM)/i); + let epoch = baseDate.getTime(); + if (timeParts) { + let hours = parseInt(timeParts[1], 10); + const minutes = parseInt(timeParts[2], 10); + const isPM = timeParts[3].toUpperCase() === 'PM'; + if (isPM && hours !== 12) hours += 12; + if (!isPM && hours === 12) hours = 0; + baseDate.setHours(hours, minutes, 0, 0); + epoch = baseDate.getTime(); + } + + observations.push({ + id: id.trim(), + time, + typeEmoji: typeEmoji.trim(), + title: title.trim(), + tokens: tokens.trim(), + epoch + }); + } + } + + if (observations.length === 0) { + lines.push('*No recent activity*'); + return lines.join('\n'); + } + + // Group by date + const byDate = groupByDate(observations, obs => new Date(obs.epoch).toISOString()); + + // Render each date group + for (const [day, dayObs] of byDate) { + lines.push(`### ${day}`); + lines.push(''); + lines.push('| ID | Time | T | Title | Read |'); + lines.push('|----|------|---|-------|------|'); + + let lastTime = ''; + for (const obs of dayObs) { + const timeDisplay = obs.time === lastTime ? '"' : obs.time; + lastTime = obs.time; + lines.push(`| ${obs.id} | ${timeDisplay} | ${obs.typeEmoji} | ${obs.title} | ${obs.tokens} |`); + } + + lines.push(''); + } + + return lines.join('\n').trim(); +} + +/** + * Check if a folder is a project root (contains .git directory). + * Project root CLAUDE.md files should remain user-managed, not auto-updated. + */ +function isProjectRoot(folderPath: string): boolean { + const gitPath = path.join(folderPath, '.git'); + return existsSync(gitPath); +} + +/** + * Update CLAUDE.md files for folders containing the given files. + * Fetches timeline from worker API and writes formatted content. + * + * NOTE: Project root folders (containing .git) are excluded to preserve + * user-managed root CLAUDE.md files. Only subfolder CLAUDE.md files are auto-updated. + * + * @param filePaths - Array of absolute file paths (modified or read) + * @param project - Project identifier for API query + * @param port - Worker API port + */ +export async function updateFolderClaudeMdFiles( + filePaths: string[], + project: string, + port: number, + projectRoot?: string +): Promise { + // Load settings to get configurable observation limit + const settings = SettingsDefaultsManager.loadFromFile(SETTINGS_PATH); + const limit = parseInt(settings.CLAUDE_MEM_CONTEXT_OBSERVATIONS, 10) || 50; + + // Extract unique folder paths from file paths + const folderPaths = new Set(); + for (const filePath of filePaths) { + if (!filePath || filePath === '') continue; + // Resolve relative paths to absolute using projectRoot + let absoluteFilePath = filePath; + if (projectRoot && !path.isAbsolute(filePath)) { + absoluteFilePath = path.join(projectRoot, filePath); + } + const folderPath = path.dirname(absoluteFilePath); + if (folderPath && folderPath !== '.' && folderPath !== '/') { + // Skip project root - root CLAUDE.md should remain user-managed + if (isProjectRoot(folderPath)) { + logger.debug('FOLDER_INDEX', 'Skipping project root CLAUDE.md', { folderPath }); + continue; + } + folderPaths.add(folderPath); + } + } + + if (folderPaths.size === 0) return; + + logger.debug('FOLDER_INDEX', 'Updating CLAUDE.md files', { + project, + folderCount: folderPaths.size + }); + + // Process each folder + for (const folderPath of folderPaths) { + try { + // Fetch timeline via existing API + const host = getWorkerHost(); + const response = await fetch( + `http://${host}:${port}/api/search/by-file?filePath=${encodeURIComponent(folderPath)}&limit=${limit}&project=${encodeURIComponent(project)}&isFolder=true` + ); + + if (!response.ok) { + logger.warn('FOLDER_INDEX', 'Failed to fetch timeline', { folderPath, status: response.status }); + continue; + } + + const result = await response.json(); + if (!result.content?.[0]?.text) { + logger.debug('FOLDER_INDEX', 'No content for folder', { folderPath }); + continue; + } + + const formatted = formatTimelineForClaudeMd(result.content[0].text); + writeClaudeMdToFolder(folderPath, formatted); + + logger.debug('FOLDER_INDEX', 'Updated CLAUDE.md', { folderPath }); + } catch (error) { + // Fire-and-forget: log warning but don't fail + const err = error as Error; + logger.warn('FOLDER_INDEX', 'Failed to update CLAUDE.md', { + folderPath, + errorMessage: err.message, + errorStack: err.stack + }); + } + } +} diff --git a/src/utils/logger.ts b/src/utils/logger.ts index c9e6c454..9c0990eb 100644 --- a/src/utils/logger.ts +++ b/src/utils/logger.ts @@ -15,7 +15,7 @@ export enum LogLevel { SILENT = 4 } -export type Component = 'HOOK' | 'WORKER' | 'SDK' | 'PARSER' | 'DB' | 'SYSTEM' | 'HTTP' | 'SESSION' | 'CHROMA'; +export type Component = 'HOOK' | 'WORKER' | 'SDK' | 'PARSER' | 'DB' | 'SYSTEM' | 'HTTP' | 'SESSION' | 'CHROMA' | 'FOLDER_INDEX'; interface LogContext { sessionId?: number; diff --git a/src/utils/project-name.ts b/src/utils/project-name.ts index e604896a..287f4272 100644 --- a/src/utils/project-name.ts +++ b/src/utils/project-name.ts @@ -1,5 +1,6 @@ import path from 'path'; import { logger } from './logger.js'; +import { detectWorktree } from './worktree.js'; /** * Extract project name from working directory path @@ -37,3 +38,48 @@ export function getProjectName(cwd: string | null | undefined): string { return basename; } + +/** + * Project context with worktree awareness + */ +export interface ProjectContext { + /** The current project name (worktree or main repo) */ + primary: string; + /** Parent project name if in a worktree, null otherwise */ + parent: string | null; + /** True if currently in a worktree */ + isWorktree: boolean; + /** All projects to query: [primary] for main repo, [parent, primary] for worktree */ + allProjects: string[]; +} + +/** + * Get project context with worktree detection. + * + * When in a worktree, returns both the worktree project name and parent project name + * for unified timeline queries. + * + * @param cwd - Current working directory (absolute path) + * @returns ProjectContext with worktree info + */ +export function getProjectContext(cwd: string | null | undefined): ProjectContext { + const primary = getProjectName(cwd); + + if (!cwd) { + return { primary, parent: null, isWorktree: false, allProjects: [primary] }; + } + + const worktreeInfo = detectWorktree(cwd); + + if (worktreeInfo.isWorktree && worktreeInfo.parentProjectName) { + // In a worktree: include parent first for chronological ordering + return { + primary, + parent: worktreeInfo.parentProjectName, + isWorktree: true, + allProjects: [worktreeInfo.parentProjectName, primary] + }; + } + + return { primary, parent: null, isWorktree: false, allProjects: [primary] }; +} diff --git a/src/utils/worktree.ts b/src/utils/worktree.ts new file mode 100644 index 00000000..5fa197d5 --- /dev/null +++ b/src/utils/worktree.ts @@ -0,0 +1,84 @@ +/** + * Worktree Detection Utility + * + * Detects if the current working directory is a git worktree and extracts + * information about the parent repository. + * + * Git worktrees have a `.git` file (not directory) containing: + * gitdir: /path/to/parent/.git/worktrees/ + */ + +import { statSync, readFileSync } from 'fs'; +import path from 'path'; + +export interface WorktreeInfo { + isWorktree: boolean; + worktreeName: string | null; // e.g., "yokohama" + parentRepoPath: string | null; // e.g., "/Users/alex/main" + parentProjectName: string | null; // e.g., "main" +} + +const NOT_A_WORKTREE: WorktreeInfo = { + isWorktree: false, + worktreeName: null, + parentRepoPath: null, + parentProjectName: null +}; + +/** + * Detect if a directory is a git worktree and extract parent info. + * + * @param cwd - Current working directory (absolute path) + * @returns WorktreeInfo with parent details if worktree, otherwise isWorktree=false + */ +export function detectWorktree(cwd: string): WorktreeInfo { + const gitPath = path.join(cwd, '.git'); + + // Check if .git is a file (worktree) or directory (main repo) + let stat; + try { + stat = statSync(gitPath); + } catch { + // No .git at all - not a git repo + return NOT_A_WORKTREE; + } + + if (!stat.isFile()) { + // .git is a directory = main repo, not a worktree + return NOT_A_WORKTREE; + } + + // Parse .git file to find parent repo + let content: string; + try { + content = readFileSync(gitPath, 'utf-8').trim(); + } catch { + return NOT_A_WORKTREE; + } + + // Format: gitdir: /path/to/parent/.git/worktrees/ + const match = content.match(/^gitdir:\s*(.+)$/); + if (!match) { + return NOT_A_WORKTREE; + } + + const gitdirPath = match[1]; + + // Extract: /path/to/parent from /path/to/parent/.git/worktrees/name + // Handle both Unix and Windows paths + const worktreesMatch = gitdirPath.match(/^(.+)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)$/); + if (!worktreesMatch) { + return NOT_A_WORKTREE; + } + + const parentRepoPath = worktreesMatch[1]; + const worktreeName = path.basename(cwd); + const parentProjectName = path.basename(parentRepoPath); + + return { + isWorktree: true, + worktreeName, + parentRepoPath, + parentProjectName + }; +} diff --git a/tests/CLAUDE.md b/tests/CLAUDE.md index a06401c8..e53fef6c 100644 --- a/tests/CLAUDE.md +++ b/tests/CLAUDE.md @@ -3,13 +3,38 @@ -### Jan 5, 2026 +### Nov 10, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #6358 | 3:14 PM | ๐Ÿ”ต | SDK Agent Spatial Awareness Implementation | ~309 | + +### Nov 21, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #13289 | 2:20 PM | ๐ŸŸฃ | Comprehensive Test Suite for Transcript Transformation | ~320 | + +### Nov 23, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #14617 | 6:15 PM | ๐ŸŸฃ | Test Suite Successfully Passing - All 8 Tests Green | ~498 | +| #14615 | 6:14 PM | ๐ŸŸฃ | YAGNI-Focused Test Suite for Transcript Transformation | ~457 | + +### Dec 5, 2025 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #20732 | 9:07 PM | ๐Ÿ”ต | Smart Install Version Marker Tests for Upgrade Detection | ~452 | +| #20399 | 7:17 PM | ๐Ÿ”ต | Smart install tests validate version tracking with backward compatibility | ~311 | +| #20392 | 7:15 PM | ๐Ÿ”ต | Memory tag stripping tests validate dual-tag system for JSON context filtering | ~404 | +| #20391 | " | ๐Ÿ”ต | User prompt tag stripping tests validate privacy controls for memory exclusion | ~182 | + +### Jan 3, 2026 | ID | Time | T | Title | Read | |----|------|---|-------|------| -| #36858 | 1:50 AM | ๐ŸŸฃ | Phase 1 Implementation Completed via Subagent | ~499 | -| #36854 | 1:49 AM | ๐ŸŸฃ | gemini-3-flash Model Tests Added to GeminiAgent Test Suite | ~470 | -| #36851 | " | ๐Ÿ”ต | GeminiAgent Test Structure Analyzed | ~565 | | #36663 | 11:06 PM | โœ… | Third Validation Test Updated: Resume Safety Check Now Uses NULL Comparison | ~417 | | #36662 | " | โœ… | Second Validation Test Updated: Post-Capture Check Now Uses NULL Comparison | ~418 | | #36661 | 11:05 PM | โœ… | First Validation Test Updated: Placeholder Detection Now Checks for NULL | ~482 | @@ -24,12 +49,12 @@ | #36648 | " | ๐Ÿ”ต | Session ID Refactor Test Suite Documents Database Migration 17 and Dual ID System | ~651 | | #36647 | 11:01 PM | ๐Ÿ”ต | SessionStore Test Suite Validates Prompt Counting and Timestamp Override Features | ~506 | | #36646 | " | ๐Ÿ”ต | Session ID Architecture Revealed Through Test File Analysis | ~611 | -| #20732 | 9:07 PM | ๐Ÿ”ต | Smart Install Version Marker Tests for Upgrade Detection | ~452 | -| #20399 | 7:17 PM | ๐Ÿ”ต | Smart install tests validate version tracking with backward compatibility | ~311 | -| #20392 | 7:15 PM | ๐Ÿ”ต | Memory tag stripping tests validate dual-tag system for JSON context filtering | ~404 | -| #20391 | " | ๐Ÿ”ต | User prompt tag stripping tests validate privacy controls for memory exclusion | ~182 | -| #14617 | 6:15 PM | ๐ŸŸฃ | Test Suite Successfully Passing - All 8 Tests Green | ~498 | -| #14615 | 6:14 PM | ๐ŸŸฃ | YAGNI-Focused Test Suite for Transcript Transformation | ~457 | -| #13289 | 2:20 PM | ๐ŸŸฃ | Comprehensive Test Suite for Transcript Transformation | ~320 | -| #6358 | 3:14 PM | ๐Ÿ”ต | SDK Agent Spatial Awareness Implementation | ~309 | + +### Jan 4, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36858 | 1:50 AM | ๐ŸŸฃ | Phase 1 Implementation Completed via Subagent | ~499 | +| #36854 | 1:49 AM | ๐ŸŸฃ | gemini-3-flash Model Tests Added to GeminiAgent Test Suite | ~470 | +| #36851 | " | ๐Ÿ”ต | GeminiAgent Test Structure Analyzed | ~565 | \ No newline at end of file diff --git a/tests/context/formatters/CLAUDE.md b/tests/context/formatters/CLAUDE.md new file mode 100644 index 00000000..7de963e3 --- /dev/null +++ b/tests/context/formatters/CLAUDE.md @@ -0,0 +1,31 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**markdown-formatter.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36565 | 9:51 PM | ๐ŸŸฃ | Phase 4 Context Generation Tests Committed | ~575 | +| #36564 | 9:50 PM | ๐ŸŸฃ | Phase 4 Context Generation Tests Committed | ~406 | +| #36562 | 9:49 PM | ๐ŸŸฃ | Phase 4 Context Generation Tests Completed | ~524 | +| #36561 | " | ๐ŸŸฃ | Phase 4 Context Generation Test Suite Completion | ~606 | +| #36557 | 9:47 PM | ๐ŸŸฃ | MarkdownFormatter Test Suite Created | ~520 | + +### Jan 5, 2026 + +**markdown-formatter.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37642 | 5:41 PM | ๐ŸŸฃ | Second Task Agent Independently Created and Verified FormatTool Tests | ~544 | +| #37641 | " | ๐Ÿ”ด | Task Agent Confirmed Terminology Test Fixes Complete | ~465 | +| #37639 | 5:40 PM | ๐Ÿ”ด | Markdown Formatter Tests Now Pass After Terminology Updates | ~461 | +| #37637 | " | ๐Ÿ”ด | Fixed Second Failing Test for MCP Tools Terminology Update | ~424 | +| #37634 | 5:39 PM | ๐Ÿ”ด | Fixed First Failing Test for MCP Tools Terminology Update | ~378 | +| #37631 | 5:37 PM | ๐Ÿ”ต | Failing Tests Identified at Lines 176 and 495 | ~508 | +| #37630 | 5:36 PM | ๐Ÿ”ด | Test Suite Execution Reveals Two Failing Tests for Terminology Update | ~607 | +| #37629 | " | ๐Ÿ”ต | Comprehensive Testing Patterns Documentation Generated | ~629 | +| #37621 | 5:34 PM | ๐Ÿ”ต | Existing Bun Test Pattern for Formatter Functions | ~590 | + \ No newline at end of file diff --git a/tests/folder-index/CLAUDE.md b/tests/folder-index/CLAUDE.md new file mode 100644 index 00000000..694e7767 --- /dev/null +++ b/tests/folder-index/CLAUDE.md @@ -0,0 +1,37 @@ + +# Recent Activity + + + +### Jan 4, 2026 + +**folder-timeline-compiler.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37022 | 4:59 PM | โœ… | Deleted Redundant Folder Index Test Directory | ~235 | + +**folder-discovery.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37005 | 4:48 PM | โœ… | Verified folder-discovery and claude-md-generator tests pass successfully | ~238 | +| #37003 | 4:46 PM | ๐Ÿ”„ | Simplified FolderDiscovery tests to use production imports instead of duplicated logic | ~380 | +| #36999 | 4:36 PM | ๐Ÿ”„ | Simplified FolderDiscovery tests to use local algorithm implementations without production imports | ~401 | + +**claude-md-generator.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37004 | 4:48 PM | ๐Ÿ”„ | Reverted ClaudeMdGenerator tests to use actual production code instead of local copies | ~406 | +| #36998 | 4:33 PM | ๐ŸŸฃ | Added unit tests for formatTimelineToMarkdown and replaceTaggedContent helper functions | ~435 | +| #36997 | 4:32 PM | ๐Ÿ”„ | Refactored ClaudeMdGenerator tests to use local implementation instead of importing production code | ~386 | + +**folder-index-routes.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36996 | 4:31 PM | ๐Ÿ”„ | Refactored FolderIndexRoutes tests to focus on unit testing logic instead of HTTP integration | ~405 | +| #36995 | 4:30 PM | ๐ŸŸฃ | Created FolderIndexRoutes test suite with 13 HTTP endpoint tests | ~479 | + +**folder-index-orchestrator.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36994 | 4:29 PM | ๐ŸŸฃ | Created FolderIndexOrchestrator test suite with 13 test cases validating orchestration logic | ~461 | + \ No newline at end of file diff --git a/tests/infrastructure/CLAUDE.md b/tests/infrastructure/CLAUDE.md new file mode 100644 index 00000000..d6e4984d --- /dev/null +++ b/tests/infrastructure/CLAUDE.md @@ -0,0 +1,53 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**graceful-shutdown.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36574 | 9:55 PM | ๐ŸŸฃ | Phase 5 Infrastructure Tests Committed | ~357 | +| #36569 | 9:54 PM | ๐ŸŸฃ | GracefulShutdown Test Suite Created | ~457 | + +**process-manager.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36571 | 9:54 PM | ๐ŸŸฃ | Phase 5 Infrastructure Tests Completed | ~504 | +| #36570 | " | ๐ŸŸฃ | ProcessManager Infrastructure Test Suite Created | ~535 | + +**health-monitor.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36568 | 9:53 PM | ๐ŸŸฃ | HealthMonitor Test Suite Created for Phase 5 | ~437 | + +### Jan 4, 2026 + +**wmic-parsing.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36924 | 2:25 AM | โœ… | Merged fix/pr-538-followups branch into main with comprehensive updates | ~481 | +| #36908 | 2:01 AM | โœ… | Regression Tests Committed Successfully | ~418 | +| #36907 | " | โœ… | Regression Test Files Staged for Commit | ~317 | + +**process-manager.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36842 | 1:43 AM | ๐Ÿ”ต | Complete Test Framework and Pattern Documentation | ~670 | +| #36837 | 1:42 AM | ๐Ÿ”ต | ProcessManager Test Patterns with File System Operations | ~466 | +| #36779 | 12:44 AM | ๐Ÿ”ต | ProcessManager Windows PowerShell Functions Complete Analysis | ~550 | + +### Jan 5, 2026 + +**wmic-parsing.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37735 | 6:16 PM | โœ… | Test Suite Audit Report Generated: 41 Tests Scored and Analyzed | ~634 | + +**process-manager.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37629 | 5:36 PM | ๐Ÿ”ต | Comprehensive Testing Patterns Documentation Generated | ~629 | +| #37622 | 5:34 PM | ๐Ÿ”ต | Bun Test Pattern for File I/O and State Management | ~571 | + \ No newline at end of file diff --git a/tests/scripts/CLAUDE.md b/tests/scripts/CLAUDE.md index b57a5886..ec936e46 100644 --- a/tests/scripts/CLAUDE.md +++ b/tests/scripts/CLAUDE.md @@ -3,7 +3,7 @@ -### Jan 5, 2026 +### Jan 4, 2026 | ID | Time | T | Title | Read | |----|------|---|-------|------| diff --git a/tests/sdk-agent-resume.test.ts b/tests/sdk-agent-resume.test.ts new file mode 100644 index 00000000..17e8bd65 --- /dev/null +++ b/tests/sdk-agent-resume.test.ts @@ -0,0 +1,161 @@ +import { describe, it, expect } from 'bun:test'; + +/** + * Tests for SDKAgent resume parameter logic + * + * The resume parameter should ONLY be passed when: + * 1. memorySessionId exists (was captured from a previous SDK response) + * 2. lastPromptNumber > 1 (this is a continuation within the same SDK session) + * + * On worker restart or crash recovery, memorySessionId may exist from a previous + * SDK session but we must NOT resume because the SDK context was lost. + */ +describe('SDKAgent Resume Parameter Logic', () => { + /** + * Helper function that mirrors the logic in SDKAgent.startSession() + * This is the exact condition used at SDKAgent.ts line 99 + */ + function shouldPassResumeParameter(session: { + memorySessionId: string | null; + lastPromptNumber: number; + }): boolean { + const hasRealMemorySessionId = !!session.memorySessionId; + return hasRealMemorySessionId && session.lastPromptNumber > 1; + } + + describe('INIT prompt scenarios (lastPromptNumber === 1)', () => { + it('should NOT pass resume parameter when lastPromptNumber === 1 even if memorySessionId exists', () => { + // Scenario: Worker restart with stale memorySessionId from previous session + const session = { + memorySessionId: 'stale-session-id-from-previous-run', + lastPromptNumber: 1, // INIT prompt + }; + + const hasRealMemorySessionId = !!session.memorySessionId; + const shouldResume = shouldPassResumeParameter(session); + + expect(hasRealMemorySessionId).toBe(true); // memorySessionId exists + expect(shouldResume).toBe(false); // but should NOT resume because it's INIT + }); + + it('should NOT pass resume parameter when memorySessionId is null and lastPromptNumber === 1', () => { + // Scenario: Fresh session, first prompt ever + const session = { + memorySessionId: null, + lastPromptNumber: 1, + }; + + const hasRealMemorySessionId = !!session.memorySessionId; + const shouldResume = shouldPassResumeParameter(session); + + expect(hasRealMemorySessionId).toBe(false); + expect(shouldResume).toBe(false); + }); + }); + + describe('CONTINUATION prompt scenarios (lastPromptNumber > 1)', () => { + it('should pass resume parameter when lastPromptNumber > 1 AND memorySessionId exists', () => { + // Scenario: Normal continuation within same SDK session + const session = { + memorySessionId: 'valid-session-id', + lastPromptNumber: 2, // CONTINUATION prompt + }; + + const hasRealMemorySessionId = !!session.memorySessionId; + const shouldResume = shouldPassResumeParameter(session); + + expect(hasRealMemorySessionId).toBe(true); + expect(shouldResume).toBe(true); + }); + + it('should pass resume parameter for higher prompt numbers', () => { + // Scenario: Later in a multi-turn conversation + const session = { + memorySessionId: 'valid-session-id', + lastPromptNumber: 5, // 5th prompt in session + }; + + const shouldResume = shouldPassResumeParameter(session); + expect(shouldResume).toBe(true); + }); + + it('should NOT pass resume parameter when memorySessionId is null even for lastPromptNumber > 1', () => { + // Scenario: Bug case - somehow got to prompt 2 without capturing memorySessionId + // This shouldn't happen in practice but we should handle it safely + const session = { + memorySessionId: null, + lastPromptNumber: 2, + }; + + const hasRealMemorySessionId = !!session.memorySessionId; + const shouldResume = shouldPassResumeParameter(session); + + expect(hasRealMemorySessionId).toBe(false); + expect(shouldResume).toBe(false); + }); + }); + + describe('Edge cases', () => { + it('should handle empty string memorySessionId as falsy', () => { + // Empty string should be treated as "no session ID" + const session = { + memorySessionId: '' as unknown as null, + lastPromptNumber: 2, + }; + + const hasRealMemorySessionId = !!session.memorySessionId; + const shouldResume = shouldPassResumeParameter(session); + + expect(hasRealMemorySessionId).toBe(false); + expect(shouldResume).toBe(false); + }); + + it('should handle undefined memorySessionId as falsy', () => { + const session = { + memorySessionId: undefined as unknown as null, + lastPromptNumber: 2, + }; + + const hasRealMemorySessionId = !!session.memorySessionId; + const shouldResume = shouldPassResumeParameter(session); + + expect(hasRealMemorySessionId).toBe(false); + expect(shouldResume).toBe(false); + }); + }); + + describe('Bug reproduction: stale session resume crash', () => { + it('should NOT resume when worker restarts with stale memorySessionId', () => { + // This is the exact bug scenario from the logs: + // [17:30:21.773] Starting SDK query { + // hasRealMemorySessionId=true, + // resume_parameter=5439891b-..., + // lastPromptNumber=1 โ† NEW SDK session! + // } + // [17:30:24.450] Generator failed {error=Claude Code process exited with code 1} + + const session = { + memorySessionId: '5439891b-7d4b-4ee3-8662-c000f66bc199', // Stale from previous session + lastPromptNumber: 1, // But this is a NEW session after restart + }; + + const shouldResume = shouldPassResumeParameter(session); + + // The fix: should NOT try to resume, should start fresh + expect(shouldResume).toBe(false); + }); + + it('should resume correctly for normal continuation (not after restart)', () => { + // Normal case: same SDK session, continuing conversation + const session = { + memorySessionId: '5439891b-7d4b-4ee3-8662-c000f66bc199', + lastPromptNumber: 2, // Second prompt in SAME session + }; + + const shouldResume = shouldPassResumeParameter(session); + + // Should resume - same session, valid memorySessionId + expect(shouldResume).toBe(true); + }); + }); +}); diff --git a/tests/server/CLAUDE.md b/tests/server/CLAUDE.md new file mode 100644 index 00000000..adfdcb11 --- /dev/null +++ b/tests/server/CLAUDE.md @@ -0,0 +1,7 @@ + +# Recent Activity + + + +*No recent activity* + \ No newline at end of file diff --git a/tests/shared/timeline-formatting.test.ts b/tests/shared/timeline-formatting.test.ts new file mode 100644 index 00000000..0eca81d9 --- /dev/null +++ b/tests/shared/timeline-formatting.test.ts @@ -0,0 +1,197 @@ +import { describe, it, expect, mock, afterEach } from 'bun:test'; + +// Mock logger BEFORE imports (required pattern) +mock.module('../../src/utils/logger.js', () => ({ + logger: { + info: () => {}, + debug: () => {}, + warn: () => {}, + error: () => {}, + }, +})); + +// Import after mocks +import { extractFirstFile, groupByDate } from '../../src/shared/timeline-formatting.js'; + +afterEach(() => { + mock.restore(); +}); + +describe('extractFirstFile', () => { + const cwd = '/Users/test/project'; + + it('should return first modified file as relative path', () => { + const filesModified = JSON.stringify(['/Users/test/project/src/app.ts', '/Users/test/project/src/utils.ts']); + + const result = extractFirstFile(filesModified, cwd); + + expect(result).toBe('src/app.ts'); + }); + + it('should fall back to files_read when modified is empty', () => { + const filesModified = JSON.stringify([]); + const filesRead = JSON.stringify(['/Users/test/project/README.md']); + + const result = extractFirstFile(filesModified, cwd, filesRead); + + expect(result).toBe('README.md'); + }); + + it('should return General when both are empty arrays', () => { + const filesModified = JSON.stringify([]); + const filesRead = JSON.stringify([]); + + const result = extractFirstFile(filesModified, cwd, filesRead); + + expect(result).toBe('General'); + }); + + it('should return General when both are null', () => { + const result = extractFirstFile(null, cwd, null); + + expect(result).toBe('General'); + }); + + it('should handle invalid JSON in modified and fall back to read', () => { + const filesModified = 'invalid json {]'; + const filesRead = JSON.stringify(['/Users/test/project/config.json']); + + const result = extractFirstFile(filesModified, cwd, filesRead); + + expect(result).toBe('config.json'); + }); + + it('should return relative path (not absolute) for files inside cwd', () => { + const filesModified = JSON.stringify(['/Users/test/project/deeply/nested/file.ts']); + + const result = extractFirstFile(filesModified, cwd); + + expect(result).toBe('deeply/nested/file.ts'); + expect(result).not.toContain('/Users/test/project'); + }); + + it('should handle files that are already relative paths', () => { + const filesModified = JSON.stringify(['src/component.tsx']); + + const result = extractFirstFile(filesModified, cwd); + + expect(result).toBe('src/component.tsx'); + }); +}); + +describe('groupByDate', () => { + interface TestItem { + id: number; + date: string; + } + + it('should return empty map for empty array', () => { + const items: TestItem[] = []; + + const result = groupByDate(items, (item) => item.date); + + expect(result.size).toBe(0); + }); + + it('should group items by formatted date', () => { + const items: TestItem[] = [ + { id: 1, date: '2025-01-04T10:00:00Z' }, + { id: 2, date: '2025-01-04T14:00:00Z' }, + ]; + + const result = groupByDate(items, (item) => item.date); + + expect(result.size).toBe(1); + const dayItems = Array.from(result.values())[0]; + expect(dayItems).toHaveLength(2); + expect(dayItems[0].id).toBe(1); + expect(dayItems[1].id).toBe(2); + }); + + it('should sort dates chronologically', () => { + const items: TestItem[] = [ + { id: 1, date: '2025-01-06T10:00:00Z' }, + { id: 2, date: '2025-01-04T10:00:00Z' }, + { id: 3, date: '2025-01-05T10:00:00Z' }, + ]; + + const result = groupByDate(items, (item) => item.date); + + const dates = Array.from(result.keys()); + expect(dates).toHaveLength(3); + // Dates should be in chronological order (oldest first) + expect(dates[0]).toContain('Jan 4'); + expect(dates[1]).toContain('Jan 5'); + expect(dates[2]).toContain('Jan 6'); + }); + + it('should group multiple items on same date together', () => { + const items: TestItem[] = [ + { id: 1, date: '2025-01-04T08:00:00Z' }, + { id: 2, date: '2025-01-04T12:00:00Z' }, + { id: 3, date: '2025-01-04T18:00:00Z' }, + ]; + + const result = groupByDate(items, (item) => item.date); + + expect(result.size).toBe(1); + const dayItems = Array.from(result.values())[0]; + expect(dayItems).toHaveLength(3); + expect(dayItems.map(i => i.id)).toEqual([1, 2, 3]); + }); + + it('should handle items from different days correctly', () => { + const items: TestItem[] = [ + { id: 1, date: '2025-01-04T10:00:00Z' }, + { id: 2, date: '2025-01-05T10:00:00Z' }, + { id: 3, date: '2025-01-04T15:00:00Z' }, + { id: 4, date: '2025-01-05T20:00:00Z' }, + ]; + + const result = groupByDate(items, (item) => item.date); + + expect(result.size).toBe(2); + + const dates = Array.from(result.keys()); + expect(dates[0]).toContain('Jan 4'); + expect(dates[1]).toContain('Jan 5'); + + const jan4Items = result.get(dates[0])!; + const jan5Items = result.get(dates[1])!; + + expect(jan4Items).toHaveLength(2); + expect(jan5Items).toHaveLength(2); + expect(jan4Items.map(i => i.id)).toEqual([1, 3]); + expect(jan5Items.map(i => i.id)).toEqual([2, 4]); + }); + + it('should handle numeric timestamps as date input', () => { + // Use clearly different dates (24+ hours apart to avoid timezone issues) + const items = [ + { id: 1, date: '2025-01-04T00:00:00Z' }, + { id: 2, date: '2025-01-06T00:00:00Z' }, // 2 days later + ]; + + const result = groupByDate(items, (item) => item.date); + + expect(result.size).toBe(2); + const dates = Array.from(result.keys()); + expect(dates).toHaveLength(2); + expect(dates[0]).toContain('Jan 4'); + expect(dates[1]).toContain('Jan 6'); + }); + + it('should preserve item order within each date group', () => { + const items: TestItem[] = [ + { id: 3, date: '2025-01-04T08:00:00Z' }, + { id: 1, date: '2025-01-04T09:00:00Z' }, + { id: 2, date: '2025-01-04T10:00:00Z' }, + ]; + + const result = groupByDate(items, (item) => item.date); + + const dayItems = Array.from(result.values())[0]; + // Items should maintain their insertion order + expect(dayItems.map(i => i.id)).toEqual([3, 1, 2]); + }); +}); diff --git a/tests/sqlite/CLAUDE.md b/tests/sqlite/CLAUDE.md new file mode 100644 index 00000000..dc692542 --- /dev/null +++ b/tests/sqlite/CLAUDE.md @@ -0,0 +1,59 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**transactions.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36494 | 9:16 PM | ๐Ÿ”ด | Removed Non-Existent 'project' Column from Third pending_messages INSERT | ~540 | +| #36493 | 9:15 PM | ๐Ÿ”ด | Removed Non-Existent 'project' Column from Second pending_messages INSERT | ~423 | +| #36492 | " | ๐Ÿ”ด | Removed Non-Existent 'project' Column from First pending_messages INSERT | ~449 | +| #36490 | 9:14 PM | ๐Ÿ”ด | Fixed Foreign Key Constraints and Schema Updates in Transactions Test Suite | ~746 | +| #36486 | 9:12 PM | ๐ŸŸฃ | Transactions Module Test Suite Implemented | ~833 | + +**prompts.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36489 | 9:14 PM | ๐Ÿ”ด | Fixed Foreign Key Constraint Issues in Prompts Test Suite | ~733 | +| #36485 | 9:12 PM | ๐ŸŸฃ | Prompts Module Test Suite Implemented | ~680 | + +**summaries.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36488 | 9:13 PM | ๐Ÿ”ด | Fixed Foreign Key Constraint Issues in Summaries Test Suite | ~691 | +| #36484 | 9:11 PM | ๐ŸŸฃ | Summaries Module Test Suite Implemented | ~708 | + +**observations.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36487 | 9:13 PM | ๐Ÿ”ด | Fixed Foreign Key Constraint Issues in Observations Test Suite | ~677 | +| #36483 | 9:11 PM | ๐ŸŸฃ | Observations Module Test Suite Implemented | ~716 | + +**sessions.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36482 | 9:10 PM | ๐ŸŸฃ | Sessions Module Test Suite Implemented | ~627 | + +### Jan 4, 2026 + +**observations.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36842 | 1:43 AM | ๐Ÿ”ต | Complete Test Framework and Pattern Documentation | ~670 | +| #36835 | 1:41 AM | ๐Ÿ”ต | SQLite Test Pattern with In-Memory Database | ~466 | + +### Jan 5, 2026 + +**observations.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37758 | 6:25 PM | โš–๏ธ | Integration Test Design for Four Critical Testing Gaps | ~729 | + +**summaries.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37735 | 6:16 PM | โœ… | Test Suite Audit Report Generated: 41 Tests Scored and Analyzed | ~634 | + \ No newline at end of file diff --git a/tests/utils/claude-md-utils.test.ts b/tests/utils/claude-md-utils.test.ts new file mode 100644 index 00000000..e8ad98a6 --- /dev/null +++ b/tests/utils/claude-md-utils.test.ts @@ -0,0 +1,487 @@ +import { describe, it, expect, mock, afterEach, beforeEach } from 'bun:test'; +import { mkdirSync, writeFileSync, readFileSync, existsSync, rmSync } from 'fs'; +import { join } from 'path'; +import { tmpdir } from 'os'; + +// Mock logger BEFORE imports (required pattern) +mock.module('../../src/utils/logger.js', () => ({ + logger: { + info: () => {}, + debug: () => {}, + warn: () => {}, + error: () => {}, + }, +})); + +// Import after mocks +import { + replaceTaggedContent, + formatTimelineForClaudeMd, + writeClaudeMdToFolder, + updateFolderClaudeMdFiles +} from '../../src/utils/claude-md-utils.js'; + +let tempDir: string; +const originalFetch = global.fetch; + +beforeEach(() => { + tempDir = join(tmpdir(), `test-${Date.now()}-${Math.random().toString(36).slice(2)}`); + mkdirSync(tempDir, { recursive: true }); +}); + +afterEach(() => { + mock.restore(); + global.fetch = originalFetch; + try { + rmSync(tempDir, { recursive: true, force: true }); + } catch { + // Ignore cleanup errors + } +}); + +describe('replaceTaggedContent', () => { + it('should wrap new content in tags when existing content is empty', () => { + const result = replaceTaggedContent('', 'New content here'); + + expect(result).toBe('\nNew content here\n'); + }); + + it('should replace only tagged section when existing content has tags', () => { + const existingContent = 'User content before\n\nOld generated content\n\nUser content after'; + const newContent = 'New generated content'; + + const result = replaceTaggedContent(existingContent, newContent); + + expect(result).toBe('User content before\n\nNew generated content\n\nUser content after'); + }); + + it('should append tagged content with separator when no tags exist in existing content', () => { + const existingContent = 'User written documentation'; + const newContent = 'Generated timeline'; + + const result = replaceTaggedContent(existingContent, newContent); + + expect(result).toBe('User written documentation\n\n\nGenerated timeline\n'); + }); + + it('should append when only opening tag exists (no matching end tag)', () => { + const existingContent = 'Some content\n\nIncomplete tag section'; + const newContent = 'New content'; + + const result = replaceTaggedContent(existingContent, newContent); + + expect(result).toBe('Some content\n\nIncomplete tag section\n\n\nNew content\n'); + }); + + it('should append when only closing tag exists (no matching start tag)', () => { + const existingContent = 'Some content\n\nMore content'; + const newContent = 'New content'; + + const result = replaceTaggedContent(existingContent, newContent); + + expect(result).toBe('Some content\n\nMore content\n\n\nNew content\n'); + }); + + it('should preserve newlines in new content', () => { + const existingContent = '\nOld content\n'; + const newContent = 'Line 1\nLine 2\nLine 3'; + + const result = replaceTaggedContent(existingContent, newContent); + + expect(result).toBe('\nLine 1\nLine 2\nLine 3\n'); + }); +}); + +describe('formatTimelineForClaudeMd', () => { + it('should return "No recent activity" for empty input', () => { + const result = formatTimelineForClaudeMd(''); + + expect(result).toContain('# Recent Activity'); + expect(result).toContain('*No recent activity*'); + }); + + it('should return "No recent activity" when no table rows exist', () => { + const input = 'Just some plain text without table rows'; + + const result = formatTimelineForClaudeMd(input); + + expect(result).toContain('*No recent activity*'); + }); + + it('should parse single observation row correctly', () => { + const input = '| #123 | 4:30 PM | ๐Ÿ”ต | User logged in | ~100 |'; + + const result = formatTimelineForClaudeMd(input); + + expect(result).toContain('#123'); + expect(result).toContain('4:30 PM'); + expect(result).toContain('๐Ÿ”ต'); + expect(result).toContain('User logged in'); + expect(result).toContain('~100'); + }); + + it('should parse ditto mark for repeated time correctly', () => { + const input = `| #123 | 4:30 PM | ๐Ÿ”ต | First action | ~100 | +| #124 | โ€ณ | ๐Ÿ”ต | Second action | ~150 |`; + + const result = formatTimelineForClaudeMd(input); + + expect(result).toContain('#123'); + expect(result).toContain('#124'); + // First occurrence should show time + expect(result).toContain('4:30 PM'); + // Second occurrence should show ditto mark + expect(result).toContain('"'); + }); + + it('should parse session ID format (#S123) correctly', () => { + const input = '| #S123 | 4:30 PM | ๐ŸŸฃ | Session started | ~200 |'; + + const result = formatTimelineForClaudeMd(input); + + expect(result).toContain('#S123'); + expect(result).toContain('4:30 PM'); + expect(result).toContain('๐ŸŸฃ'); + expect(result).toContain('Session started'); + }); +}); + +describe('writeClaudeMdToFolder', () => { + it('should create CLAUDE.md in new folder', () => { + const folderPath = join(tempDir, 'new-folder'); + const content = '# Recent Activity\n\nTest content'; + + writeClaudeMdToFolder(folderPath, content); + + const claudeMdPath = join(folderPath, 'CLAUDE.md'); + expect(existsSync(claudeMdPath)).toBe(true); + + const fileContent = readFileSync(claudeMdPath, 'utf-8'); + expect(fileContent).toContain(''); + expect(fileContent).toContain('Test content'); + expect(fileContent).toContain(''); + }); + + it('should preserve user content outside tags', () => { + const folderPath = join(tempDir, 'preserve-test'); + mkdirSync(folderPath, { recursive: true }); + + const claudeMdPath = join(folderPath, 'CLAUDE.md'); + const userContent = 'User-written docs\n\nOld content\n\nMore user docs'; + writeFileSync(claudeMdPath, userContent); + + const newContent = 'New generated content'; + writeClaudeMdToFolder(folderPath, newContent); + + const fileContent = readFileSync(claudeMdPath, 'utf-8'); + expect(fileContent).toContain('User-written docs'); + expect(fileContent).toContain('New generated content'); + expect(fileContent).toContain('More user docs'); + expect(fileContent).not.toContain('Old content'); + }); + + it('should create nested directories', () => { + const folderPath = join(tempDir, 'deep', 'nested', 'folder'); + const content = 'Nested content'; + + writeClaudeMdToFolder(folderPath, content); + + const claudeMdPath = join(folderPath, 'CLAUDE.md'); + expect(existsSync(claudeMdPath)).toBe(true); + expect(existsSync(join(tempDir, 'deep'))).toBe(true); + expect(existsSync(join(tempDir, 'deep', 'nested'))).toBe(true); + }); + + it('should not leave .tmp file after write (atomic write)', () => { + const folderPath = join(tempDir, 'atomic-test'); + const content = 'Atomic write test'; + + writeClaudeMdToFolder(folderPath, content); + + const claudeMdPath = join(folderPath, 'CLAUDE.md'); + const tempFilePath = `${claudeMdPath}.tmp`; + + expect(existsSync(claudeMdPath)).toBe(true); + expect(existsSync(tempFilePath)).toBe(false); + }); +}); + +describe('updateFolderClaudeMdFiles', () => { + it('should skip when filePaths is empty', async () => { + const fetchMock = mock(() => Promise.resolve({ ok: true } as Response)); + global.fetch = fetchMock; + + await updateFolderClaudeMdFiles([], 'test-project', 37777); + + expect(fetchMock).not.toHaveBeenCalled(); + }); + + it('should fetch timeline and write CLAUDE.md', async () => { + const folderPath = join(tempDir, 'api-test'); + const filePath = join(folderPath, 'test.ts'); + + const apiResponse = { + content: [{ + text: '| #123 | 4:30 PM | ๐Ÿ”ต | Test observation | ~100 |' + }] + }; + + global.fetch = mock(() => Promise.resolve({ + ok: true, + json: () => Promise.resolve(apiResponse) + } as Response)); + + await updateFolderClaudeMdFiles([filePath], 'test-project', 37777); + + const claudeMdPath = join(folderPath, 'CLAUDE.md'); + expect(existsSync(claudeMdPath)).toBe(true); + + const content = readFileSync(claudeMdPath, 'utf-8'); + expect(content).toContain('Recent Activity'); + expect(content).toContain('#123'); + expect(content).toContain('Test observation'); + }); + + it('should deduplicate folders from multiple files', async () => { + const folderPath = join(tempDir, 'dedup-test'); + const file1 = join(folderPath, 'file1.ts'); + const file2 = join(folderPath, 'file2.ts'); + + const apiResponse = { + content: [{ + text: '| #123 | 4:30 PM | ๐Ÿ”ต | Test | ~100 |' + }] + }; + + const fetchMock = mock(() => Promise.resolve({ + ok: true, + json: () => Promise.resolve(apiResponse) + } as Response)); + global.fetch = fetchMock; + + await updateFolderClaudeMdFiles([file1, file2], 'test-project', 37777); + + // Should only fetch once for the shared folder + expect(fetchMock).toHaveBeenCalledTimes(1); + }); + + it('should handle API errors gracefully (404 response)', async () => { + const folderPath = join(tempDir, 'error-test'); + const filePath = join(folderPath, 'test.ts'); + + global.fetch = mock(() => Promise.resolve({ + ok: false, + status: 404 + } as Response)); + + // Should not throw + await expect(updateFolderClaudeMdFiles([filePath], 'test-project', 37777)).resolves.toBeUndefined(); + + // CLAUDE.md should not be created + const claudeMdPath = join(folderPath, 'CLAUDE.md'); + expect(existsSync(claudeMdPath)).toBe(false); + }); + + it('should handle network errors gracefully (fetch throws)', async () => { + const folderPath = join(tempDir, 'network-error-test'); + const filePath = join(folderPath, 'test.ts'); + + global.fetch = mock(() => Promise.reject(new Error('Network error'))); + + // Should not throw + await expect(updateFolderClaudeMdFiles([filePath], 'test-project', 37777)).resolves.toBeUndefined(); + + // CLAUDE.md should not be created + const claudeMdPath = join(folderPath, 'CLAUDE.md'); + expect(existsSync(claudeMdPath)).toBe(false); + }); + + it('should resolve relative paths using projectRoot', async () => { + const apiResponse = { + content: [{ + text: '| #123 | 4:30 PM | ๐Ÿ”ต | Test observation | ~100 |' + }] + }; + + const fetchMock = mock(() => Promise.resolve({ + ok: true, + json: () => Promise.resolve(apiResponse) + } as Response)); + global.fetch = fetchMock; + + await updateFolderClaudeMdFiles( + ['src/utils/file.ts'], // relative path + 'test-project', + 37777, + '/home/user/my-project' // projectRoot + ); + + // Should call API with absolute path /home/user/my-project/src/utils + expect(fetchMock).toHaveBeenCalledTimes(1); + const callUrl = (fetchMock.mock.calls[0] as unknown[])[0] as string; + expect(callUrl).toContain(encodeURIComponent('/home/user/my-project/src/utils')); + }); + + it('should not modify absolute paths even with projectRoot', async () => { + const folderPath = join(tempDir, 'absolute-path-test'); + const filePath = join(folderPath, 'file.ts'); + + const apiResponse = { + content: [{ + text: '| #123 | 4:30 PM | ๐Ÿ”ต | Test observation | ~100 |' + }] + }; + + const fetchMock = mock(() => Promise.resolve({ + ok: true, + json: () => Promise.resolve(apiResponse) + } as Response)); + global.fetch = fetchMock; + + await updateFolderClaudeMdFiles( + [filePath], // absolute path + 'test-project', + 37777, + '/home/user/my-project' // projectRoot should be ignored + ); + + // Should call API with the original absolute path's folder + expect(fetchMock).toHaveBeenCalledTimes(1); + const callUrl = (fetchMock.mock.calls[0] as unknown[])[0] as string; + expect(callUrl).toContain(encodeURIComponent(folderPath)); + }); + + it('should work without projectRoot for backward compatibility', async () => { + const folderPath = join(tempDir, 'backward-compat-test'); + const filePath = join(folderPath, 'file.ts'); + + const apiResponse = { + content: [{ + text: '| #123 | 4:30 PM | ๐Ÿ”ต | Test observation | ~100 |' + }] + }; + + const fetchMock = mock(() => Promise.resolve({ + ok: true, + json: () => Promise.resolve(apiResponse) + } as Response)); + global.fetch = fetchMock; + + await updateFolderClaudeMdFiles( + [filePath], // absolute path + 'test-project', + 37777 + // No projectRoot - backward compatibility + ); + + // Should still make API call with the folder path + expect(fetchMock).toHaveBeenCalledTimes(1); + const callUrl = (fetchMock.mock.calls[0] as unknown[])[0] as string; + expect(callUrl).toContain(encodeURIComponent(folderPath)); + }); + + it('should handle projectRoot with trailing slash correctly', async () => { + const apiResponse = { + content: [{ + text: '| #123 | 4:30 PM | ๐Ÿ”ต | Test observation | ~100 |' + }] + }; + + const fetchMock = mock(() => Promise.resolve({ + ok: true, + json: () => Promise.resolve(apiResponse) + } as Response)); + global.fetch = fetchMock; + + // projectRoot WITH trailing slash + await updateFolderClaudeMdFiles( + ['src/utils/file.ts'], + 'test-project', + 37777, + '/home/user/my-project/' // trailing slash + ); + + // Should call API with normalized path (no double slashes) + expect(fetchMock).toHaveBeenCalledTimes(1); + const callUrl = (fetchMock.mock.calls[0] as unknown[])[0] as string; + // path.join normalizes the path, so /home/user/my-project/ + src/utils becomes /home/user/my-project/src/utils + expect(callUrl).toContain(encodeURIComponent('/home/user/my-project/src/utils')); + // Should NOT contain double slashes (except in http://) + expect(callUrl.replace('http://', '')).not.toContain('//'); + }); + + it('should write CLAUDE.md to resolved projectRoot path', async () => { + const subfolderPath = join(tempDir, 'project-root-write-test', 'src', 'utils'); + + const apiResponse = { + content: [{ + text: '| #456 | 5:00 PM | ๐Ÿ”ต | Written to correct path | ~200 |' + }] + }; + + global.fetch = mock(() => Promise.resolve({ + ok: true, + json: () => Promise.resolve(apiResponse) + } as Response)); + + // Use tempDir as projectRoot with relative path src/utils/file.ts + await updateFolderClaudeMdFiles( + ['src/utils/file.ts'], + 'test-project', + 37777, + join(tempDir, 'project-root-write-test') + ); + + // Verify CLAUDE.md was written at the resolved absolute path + const claudeMdPath = join(subfolderPath, 'CLAUDE.md'); + expect(existsSync(claudeMdPath)).toBe(true); + + const content = readFileSync(claudeMdPath, 'utf-8'); + expect(content).toContain('Written to correct path'); + expect(content).toContain('#456'); + }); + + it('should deduplicate relative paths from same folder with projectRoot', async () => { + const apiResponse = { + content: [{ + text: '| #123 | 4:30 PM | ๐Ÿ”ต | Test | ~100 |' + }] + }; + + const fetchMock = mock(() => Promise.resolve({ + ok: true, + json: () => Promise.resolve(apiResponse) + } as Response)); + global.fetch = fetchMock; + + // Multiple files in same folder (relative paths) + await updateFolderClaudeMdFiles( + ['src/utils/file1.ts', 'src/utils/file2.ts', 'src/utils/file3.ts'], + 'test-project', + 37777, + '/home/user/project' + ); + + // Should only fetch once for the shared folder + expect(fetchMock).toHaveBeenCalledTimes(1); + const callUrl = (fetchMock.mock.calls[0] as unknown[])[0] as string; + expect(callUrl).toContain(encodeURIComponent('/home/user/project/src/utils')); + }); + + it('should handle empty string paths gracefully with projectRoot', async () => { + const fetchMock = mock(() => Promise.resolve({ ok: true } as Response)); + global.fetch = fetchMock; + + await updateFolderClaudeMdFiles( + ['', 'src/file.ts', ''], // includes empty strings + 'test-project', + 37777, + '/home/user/project' + ); + + // Should skip empty strings and only process valid path + expect(fetchMock).toHaveBeenCalledTimes(1); + const callUrl = (fetchMock.mock.calls[0] as unknown[])[0] as string; + expect(callUrl).toContain(encodeURIComponent('/home/user/project/src')); + }); +}); diff --git a/tests/worker/search/CLAUDE.md b/tests/worker/search/CLAUDE.md new file mode 100644 index 00000000..9df2c1e5 --- /dev/null +++ b/tests/worker/search/CLAUDE.md @@ -0,0 +1,38 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**result-formatter.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36548 | 9:41 PM | ๐ŸŸฃ | Phase 3 Search Strategy Tests Committed | ~554 | +| #36547 | " | ๐ŸŸฃ | Phase 3 Search Test Suite Committed | ~310 | +| #36543 | 9:40 PM | ๐ŸŸฃ | Phase 3 Search Strategy Tests Completed | ~458 | +| #36540 | 9:39 PM | ๐ŸŸฃ | ResultFormatter Test Suite Created | ~424 | + +**search-orchestrator.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36545 | 9:41 PM | ๐ŸŸฃ | Phase 3 Search Strategy Test Suite Completion | ~564 | +| #36544 | 9:40 PM | ๐ŸŸฃ | Phase 3 Search Strategy Test Suite Complete | ~449 | +| #36542 | 9:39 PM | ๐Ÿ”ด | Fixed Empty String Filter Test Expectations | ~260 | +| #36541 | " | ๐ŸŸฃ | SearchOrchestrator Test Suite Implementation | ~588 | + +### Jan 4, 2026 + +**search-orchestrator.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36838 | 1:42 AM | ๐Ÿ”ต | Module-Level Mocking Pattern for Singleton Dependencies | ~420 | + +### Jan 5, 2026 + +**result-formatter.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37629 | 5:36 PM | ๐Ÿ”ต | Comprehensive Testing Patterns Documentation Generated | ~629 | +| #37623 | 5:34 PM | ๐Ÿ”ต | Bun Test Pattern for Class Methods with Mock Data | ~603 | + \ No newline at end of file diff --git a/tests/worker/search/strategies/CLAUDE.md b/tests/worker/search/strategies/CLAUDE.md new file mode 100644 index 00000000..a5c1052c --- /dev/null +++ b/tests/worker/search/strategies/CLAUDE.md @@ -0,0 +1,34 @@ + +# Recent Activity + + + +### Jan 3, 2026 + +**chroma-search-strategy.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36548 | 9:41 PM | ๐ŸŸฃ | Phase 3 Search Strategy Tests Committed | ~554 | +| #36547 | " | ๐ŸŸฃ | Phase 3 Search Test Suite Committed | ~310 | +| #36543 | 9:40 PM | ๐ŸŸฃ | Phase 3 Search Strategy Tests Completed | ~458 | +| #36536 | 9:38 PM | ๐ŸŸฃ | ChromaSearchStrategy Test Suite Created | ~430 | + +**sqlite-search-strategy.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36545 | 9:41 PM | ๐ŸŸฃ | Phase 3 Search Strategy Test Suite Completion | ~564 | +| #36544 | 9:40 PM | ๐ŸŸฃ | Phase 3 Search Strategy Test Suite Complete | ~449 | +| #36538 | 9:38 PM | ๐ŸŸฃ | SQLiteSearchStrategy Test Suite Created | ~527 | + +**hybrid-search-strategy.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #36537 | 9:38 PM | ๐ŸŸฃ | HybridSearchStrategy Test Suite Created | ~435 | + +### Jan 5, 2026 + +**chroma-search-strategy.test.ts** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #37735 | 6:16 PM | โœ… | Test Suite Audit Report Generated: 41 Tests Scored and Analyzed | ~634 | + \ No newline at end of file diff --git a/~/.claude/CLAUDE.md b/~/.claude/CLAUDE.md new file mode 100644 index 00000000..cf16779d --- /dev/null +++ b/~/.claude/CLAUDE.md @@ -0,0 +1,26 @@ + +# Recent Activity + + + +### Dec 3, 2025 + +**settings.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #19956 | 10:13 PM | ๐Ÿ”ต | No MCP Servers Currently Configured | ~230 | + +### Dec 5, 2025 + +**settings.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #20295 | 6:07 PM | ๐Ÿ”ต | Claude Settings Configuration with Plugin Enablement | ~319 | + +### Dec 31, 2025 + +**settings.json** +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #34618 | 2:59 PM | ๐Ÿ”ต | Make-Plan and Do Skills Already Configured in Claude Settings | ~373 | + \ No newline at end of file diff --git a/~/.claude/plans/CLAUDE.md b/~/.claude/plans/CLAUDE.md new file mode 100644 index 00000000..adfdcb11 --- /dev/null +++ b/~/.claude/plans/CLAUDE.md @@ -0,0 +1,7 @@ + +# Recent Activity + + + +*No recent activity* + \ No newline at end of file