diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index c547c9f95607bb0e5aa2c5b316f561d483a7c575..0000000000000000000000000000000000000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.env.example b/.env.example index 53dab4d6433678c2e875699d16debf559641d2d8..288fb449755880908b19e0b11664501c053b1734 100644 --- a/.env.example +++ b/.env.example @@ -13,7 +13,8 @@ MODEL_PATH=models/onnx/ MAX_BATCH_SIZE=10000 # Security -CORS_ORIGINS=http://localhost:3000,http://localhost:8501,http://localhost:8000 +CORS_ORIGINS=http://localhost:3000,http://localhost:8000 +CSRF_SECRET=change_this_to_strong_random_secret GRAFANA_ADMIN_PASSWORD=change_this_to_strong_password # Logging diff --git a/.gitignore b/.gitignore index bb6ddc0d58be3e8036d65155da9acf7cc468bcc4..d098b908b885ec47b1a14684ab69863ede43f8f2 100644 --- a/.gitignore +++ b/.gitignore @@ -46,8 +46,8 @@ data/processed/ .ipynb_checkpoints/ # Agent/IDE configs (optional — decide per tool) -# .claude/ -# .opencode/ +.claude/ +.opencode/ # OS .DS_Store diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..3b84a8e38b9b6d4a15224e6fc499faa0bc311158 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,27 @@ +# Changelog + +## v2.0.0 - Streamlit → HTMX Migration + +### Breaking Changes +- Streamlit frontend (`streamlit_app/`) has been removed entirely +- The separate Streamlit server on port 8501 no longer exists +- Plotly dependency removed (replaced by Chart.js for client-side charts) +- Streamlit dependency removed from `requirements.txt` +- Docker Compose file no longer includes the `streamlit` service +- `Dockerfile.streamlit` deleted + +### What's New +- HTMX 2.0.3 + Jinja2 frontend served directly by FastAPI +- Alpine.js for reactive UI state management +- Tailwind CSS (Play CDN) for styling +- Chart.js for client-side chart rendering in batch results +- CSRF protection via `itsdangerous` for all HTMX form submissions +- SSE endpoint for live batch progress updates +- Server-Sent Events support via `sse-starlette` +- New dependencies: `sse-starlette`, `itsdangerous`, `pytest-asyncio` + +### Notes +- Single server: `uvicorn app.main:app --reload` on port 8000 +- JSON API endpoints at `/api/predict`, `/api/batch` are preserved +- Swagger UI at `/docs` is preserved +- All ML model code, Celery workers, DVC/MLflow integration is unchanged diff --git a/README.md b/README.md index bbd709c368aed0d2d8d7d1f066911e3eff94ee4c..e64b2d22b62a9c287226ba08b10860e7a1bde7aa 100644 --- a/README.md +++ b/README.md @@ -1,101 +1,214 @@ # Multilingual Aspect-Based Sentiment Analysis (ABSA) -![Python](https://img.shields.io/badge/Python-3.10%2B-blue.svg) -![FastAPI](https://img.shields.io/badge/FastAPI-0.111.0-00a393.svg) -![HTMX](https://img.shields.io/badge/HTMX-1.9-3d72d4.svg) -![DVC](https://img.shields.io/badge/DVC-3.51.1-945dd6.svg) -![MLflow](https://img.shields.io/badge/MLflow-2.13.0-0194E2.svg) - -This repository contains a multilingual Aspect-Based Sentiment Analysis system for English, Hindi, and Hinglish product reviews. It provides both a FastAPI JSON API and a server-rendered web UI backed by Jinja2 templates and HTMX interactions. - -The inference stack is centered on ONNX Runtime models, with a fallback pipeline for environments where the custom artifacts are not available. The project also includes DVC pipelines, MLflow tracking, Redis/Celery workers, PostgreSQL, and Prometheus/Grafana monitoring. - -## What’s Included - -- Multilingual review processing for English, Hindi, and Hinglish. -- FastAPI application with prediction, results, and monitoring routes. -- Server-rendered UI available at `/predict`, `/batch`, and `/monitor`. -- Batch processing, async task execution, and database-backed persistence. -- DVC, MLflow, and monitoring assets for experiment and system tracking. - -## Repository Layout - -```text -api/ FastAPI app, routes, middleware, schemas, services, templates -config/ Docker and deployment configuration -data/ Raw and processed datasets -docs/ Architecture, API, deployment, and design notes -ml/ Training notebooks and experimentation assets -models/ Model artifacts, including ONNX assets -monitoring/ Prometheus and Grafana configuration -scripts/ Utility scripts for data, models, and monitoring -src/ Core data, training, and evaluation code -tests/ Test suite -dashboard_backup/ Legacy React dashboard preserved as a backup +[![Python](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://python.org) +[![FastAPI](https://img.shields.io/badge/FastAPI-0.115-00a393.svg)](https://fastapi.tiangolo.com) +[![HTMX](https://img.shields.io/badge/HTMX-2.0-3d72d4.svg)](https://htmx.org) +[![DVC](https://img.shields.io/badge/DVC-3.51-945dd6.svg)](https://dvc.org) +[![MLflow](https://img.shields.io/badge/MLflow-2.15-0194E2.svg)](https://mlflow.org) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) + +**Analyse product reviews in English, Hindi, and Hinglish — extract aspects and their sentiment in real time.** + +--- + +## Quick Start + +```bash +git clone && cd multilingual-absa +python -m venv .venv && source .venv/bin/activate +pip install -r requirements.txt +PYTHONPATH=. uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` -## Getting Started +Open: +- **Web UI** → [`http://localhost:8000/predict`](http://localhost:8000/predict) +- **Batch upload** → [`http://localhost:8000/batch`](http://localhost:8000/batch) +- **API docs** → [`http://localhost:8000/docs`](http://localhost:8000/docs) -### Prerequisites +--- -- Python 3.10+ -- Docker and Docker Compose if you want the full stack +## What This Does -### Local Setup +The system identifies **aspects** (specific features like "battery life", "sound quality") and their **sentiment** (positive, negative, neutral) from product reviews. It supports three languages: -```bash -git clone -cd Multilingual-Absa +| Language | Aspect Extraction | Sentiment | +|----------|:-:|:-:| +| English | ✅ | ✅ | +| Hindi | ✅ | ✅ | +| Hinglish | ✅ | ✅ | -python -m venv .venv -source .venv/bin/activate -pip install -r requirements.txt +**Production performance** (ONNX INT8 quantised): + +| Language | F1 Score | Latency p95 | +|----------|:--------:|:-----------:| +| English | 78.1% | 185 ms | +| Hindi | 67.8% | 185 ms | + +--- + +## Project Structure + +``` +. +├── app/ # FastAPI web application +│ ├── main.py # Entry point — uvicorn app.main:app +│ ├── core/ # App configuration (templates, settings) +│ ├── middleware/ # CSRF, rate limiting, metrics, DB deps +│ ├── routes/ # API endpoints (predict, batch, health) + HTMX pages +│ ├── schemas/ # Pydantic models + SQLAlchemy ORM +│ ├── services/ # ABSA inference pipeline, language detection +│ ├── tasks/ # Celery batch processing workers +│ ├── static/ # CSS design system +│ └── templates/ # Jinja2 + HTMX frontend +│ ├── base.html # Layout with Alpine.js, Tailwind, HTMX +│ ├── pages/ # Page templates (predict, batch, monitor) +│ ├── partials/ # HTMX fragment partials +│ └── macros/ # Reusable UI macros (badges, icons) +├── absa/ # Core ML library (pure Python) +│ ├── data/ # Data loading, preprocessing, augmentation +│ ├── models/ # Training scripts (ONNX, Transformers, baselines) +│ ├── evaluation/ # Cross-lingual eval, latency benchmarking +│ ├── training/ # MLflow experiment tracking +│ └── utils/ # Path configuration +├── docker/ # Containerisation +│ ├── Dockerfile # Production app image +│ ├── Dockerfile.prod # Production image (HuggingFace Hub model source) +│ ├── docker-compose.yml # Full stack: API + worker + DB + Redis + monitoring +│ └── docker-compose.prod.yml # Production overrides +├── tests/ # Test suite +│ ├── api/ # API endpoint tests +│ ├── web/ # Page rendering + HTMX fragment tests +│ └── unit/ # Unit tests (bio tagger, lang detect) +├── scripts/ # Utility scripts +├── docs/ # Documentation +├── .env.example # Environment variable template +├── dvc.yaml # DVC data pipeline +└── pyproject.toml # Project metadata ``` -If you use environment variables, create a local `.env` file before starting the app. +--- -### Run the App Locally +## Architecture -```bash -PYTHONPATH=. uvicorn api.app.main:app --reload --host 0.0.0.0 --port 8000 +``` +┌─────────┐ HTMX / Alpine.js ┌──────────────────┐ +│ Browser │◄───────────────────────►│ FastAPI (8000) │ +└─────────┘ │ app/main.py │ + │ │ + │ ┌─────────────┐ │ + │ │ Jinja2 │ │ + │ │ Templates │ │ + │ └─────────────┘ │ + │ ┌─────────────┐ │ + │ │ JSON REST │ │ + │ │ API │ │ + │ └─────────────┘ │ + └────────┬──────────┘ + │ + ┌────────────────────────┼────────────────────┐ + │ │ │ + ┌─────▼─────┐ ┌───────▼──────┐ ┌───────▼──────┐ + │ PostgreSQL │ │ Redis/Celery │ │ Prometheus │ + │ (results) │ │ (batch jobs) │ │ + Grafana │ + └───────────┘ └──────────────┘ └──────────────┘ ``` -Open: +### Inference Stack + +| Component | Layer | Notes | +|-----------|-------|-------| +| ONNX INT8 | Primary | Production — 185 ms p95 latency | +| ONNX FP32 | Fallback | Same model, no quantisation — 520 ms | +| Rule-based | Fallback | Keyword lexicon + context-window scoring — zero download | -- `http://localhost:8000/predict` -- `http://localhost:8000/batch` -- `http://localhost:8000/monitor` -- `http://localhost:8000/docs` +The pipeline auto-selects: **ONNX INT8** → **ONNX FP32** → **Rule-based**. No external model downloads required. -### Run with Docker +--- + +## Features + +### Web UI (HTMX + Jinja2) + +- **Single Prediction** — Real-time aspect/sentiment analysis with inline text highlighting +- **Batch Processing** — CSV upload with drag-and-drop, progress bar, Chart.js visualisations +- **System Monitor** — Live health checks, performance metrics, endpoint activity log +- **CSRF Protected** — All form submissions protected via itsdangerous tokens +- **Dark Theme** — Material Design 3 colour system, responsive layout + +### API (RESTful JSON) + +| Endpoint | Method | Description | +|----------|--------|-------------| +| `/predict` | POST | Analyse a single review | +| `/batch` | POST | Upload CSV for bulk analysis | +| `/status/{job_id}` | GET | Check batch job progress | +| `/health` | GET | API health check | +| `/info` | GET | Model metadata | +| `/metrics` | GET | Prometheus metrics | +| `/docs` | GET | Swagger UI | + +### ML Pipeline (DVC) ```bash -docker compose -f config/docker/docker-compose.yml up --build +dvc pull # Download datasets +dvc repro # Reproduce preprocessing +dvc push # Upload to remote storage ``` -That compose file starts the API, worker, PostgreSQL, Redis, Prometheus, Grafana, and the dashboard service. +### Monitoring + +- **Prometheus** metrics at `/metrics` +- **Grafana** dashboards for request volume, latency, error rate +- **Evidently** drift detection (`scripts/drift_monitor.py`) +- **MLflow** experiment tracking (`scripts/mlflow_ui.sh`) + +--- + +## Development -### Reproduce the ML Pipeline +### Run Tests ```bash -dvc pull -dvc repro -dvc push +PYTHONPATH=. pytest tests/ -v ``` -## How It Works +### Run Full Stack (Docker) + +```bash +docker compose -f docker/docker-compose.yml up --build +``` + +Starts: API (8000), PostgreSQL, Redis, Celery worker, Prometheus (9090), Grafana (3001). + +### Environment Variables + +Copy `.env.example` to `.env` and configure: + +| Variable | Required | Description | +|----------|:--------:|-------------| +| `DATABASE_URL` | ✅ | PostgreSQL or SQLite connection string | +| `REDIS_URL` | ✅ | Redis connection for Celery | +| `CORS_ORIGINS` | ❌ | Allowed CORS origins (default: localhost) | +| `CSRF_SECRET` | ❌ | Secret for CSRF token signing | +| `MODEL_PATH` | ❌ | Path to ONNX model directory | +| `MODEL_SOURCE` | ❌ | `local` or `huggingface_hub` | + +--- -1. A review is submitted through the API or web UI. -2. The app detects or accepts the language and routes the request through the ABSA pipeline. -3. The pipeline uses the available ONNX-backed models when present. -4. If the model artifacts are missing, the system falls back to the rule-based path so inference can still continue. -5. Predictions and runtime signals can be observed through the app, metrics endpoint, and monitoring stack. +## Documentation -## Notes +| Document | Contents | +|----------|----------| +| [API](docs/API.md) | Full API reference with schemas and examples | +| [Architecture](docs/ARCHITECTURE.md) | System design, data flow, deployment | +| [Deployment](docs/DEPLOYMENT.md) | Production setup, Docker, Railway | +| [Database](docs/DATABASE.md) | Schema, migrations, query patterns | +| [Security](docs/SECURITY.md) | Threat model, audit results, mitigations | +| [Tech Stack](docs/TECH_STACK.md) | Framework versions, rationale, trade-offs | +| [HTMX Migration](docs/HTMX_MIGRATION.md) | Notes on Streamlit → HTMX transition | -- The active web UI is served by the FastAPI app. `dashboard_backup/` is kept only as a legacy reference. -- The main application entrypoint is `api.app.main:app`. +--- ## License -This project is licensed under the MIT License. See the LICENSE file for details. +MIT License. See [LICENSE](LICENSE) for details. diff --git a/SECURITY_AUDIT.md b/SECURITY_AUDIT.md deleted file mode 100644 index 02d43e3f67a8e471a49d758f0223048d37374eb7..0000000000000000000000000000000000000000 --- a/SECURITY_AUDIT.md +++ /dev/null @@ -1,670 +0,0 @@ -# Security Audit Report — Multilingual ABSA - -**Date:** 2026-07-16 -**Scope:** Full codebase review -**Standard:** OWASP Top 10, CWE, Secure Coding Best Practices - ---- - -## Executive Summary - -A comprehensive security audit of the Multilingual ABSA codebase identified **28 security findings**: 2 Critical, 6 High, 12 Medium, and 8 Low. The most significant risks involve **XSS via injection in Jinja2 templates** (`tojson | safe`), **hardcoded database credentials** in docker-compose.yml, **unsafe path traversal** in file download endpoints, **SSRF** exposure through unvalidated file reads, **unauthenticated API access**, and **dependency risks** from pinned versions with known CVEs (MLflow 2.13.0, FastAPI 0.111.0, Jinja2 transitive). - -No authentication or authorization layer exists — every API endpoint is fully public. There is no HTTPS enforcement, no input sanitization, and no rate limiting. - ---- - -## Critical Findings - -### C-01: Stored/Reflected XSS via `tojson | safe` in Jinja2 Templates - -**Severity:** Critical -**CWE:** CWE-79 (Improper Neutralization of Input During Web Page Generation) -**OWASP:** A03:2021 – Injection -**File:** `api/app/templates/partials/predict_result.html:71` -**Lines:** 71 - -**Description:** User-supplied text is serialized to JSON via the Jinja2 `| tojson` filter and then marked as `| safe`. The resulting JSON string is embedded directly into a ` -``` - -The `| safe` flag tells Jinja2 to skip HTML escaping. While the aspect data originates from the application's rule-based engine, user text flows through `result.text` rendering and the aspects include character offsets (`start`, `end`) derived from user input. - -**Attack Scenario:** An attacker submits a prediction with crafted text that, when processed and serialized, produces ``. Any user viewing the prediction result in the dashboard triggers the payload. - -**Recommended Fix:** -```html - -``` - -Remove `| safe` — Jinja2's `| tojson` filter already produces safe JSON, but `| safe` overrides escaping. Alternatively, use `{{ result.aspects | tojson | e }}`. - ---- - -### C-02: Unsafe `innerHTML` Assignment with User Text in Client-Side Script - -**Severity:** Critical -**CWE:** CWE-79 (Improper Neutralization of Input During Web Page Generation) -**OWASP:** A03:2021 – Injection -**File:** `api/app/templates/partials/predict_result.html:68-87` -**Lines:** 68–87 - -**Description:** User-provided text (`result.text`) is injected into the DOM via `innerHTML` assignment without sanitization. The script slices the raw user text and wraps matched segments in `` elements. If the user text contains HTML tags (e.g., ``), those tags will be rendered and executed. - -```javascript -let html = text; // user-controlled text -// ... string slicing ... -html = before + '' + match + '' + after; -container.innerHTML = html; -``` - -**Attack Scenario:** A user submits text containing ``. The script sets `innerHTML`, causing the event handler to fire and exfiltrate cookies. - -**Recommended Fix:** Use `textContent` for the initial text, then create `` elements programmatically with `document.createElement` and `appendChild`. Never use `innerHTML` with user-controlled data. - ---- - -## High Findings - -### H-01: Hardcoded Database Credentials in docker-compose.yml - -**Severity:** High -**CWE:** CWE-798 (Use of Hardcoded Credentials) -**OWASP:** A07:2021 – Identification and Authentication Failures -**File:** `config/docker/docker-compose.yml:57-58` -**Lines:** 57–58 - -**Description:** PostgreSQL credentials are hardcoded as plaintext: -```yaml -POSTGRES_USER: absa_user -POSTGRES_PASSWORD: absa_pass -``` - -The same credentials are reused in the `DATABASE_URL` environment variables for the API and worker services. These credentials are committed to version control, have no expiration, and are guessable. - -**Attack Scenario:** An attacker who gains access to the Docker network (or reads the docker-compose.yml from the git repo) can connect directly to PostgreSQL and exfiltrate/modify all stored prediction data. - -**Recommended Fix:** Use Docker secrets or a `.env` file excluded from version control. - ---- - -### H-02: Path Traversal in Download Endpoint - -**Severity:** High -**CWE:** CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) -**OWASP:** A01:2021 – Broken Access Control -**File:** `api/app/routes/results.py:27-35` -**Lines:** 27–35 - -**Description:** The `/download/{job_id}` endpoint directly interpolates the user-supplied `job_id` parameter into a file path without sanitization. An attacker can inject `../` sequences to read arbitrary files on the server. - -```python -@router.get("/download/{job_id}") -async def download_result(job_id: str): - file_path = Path(f"data/results/{job_id}.csv") -``` - -**Attack Scenario:** `GET /download/../../../etc/passwd` resolves to `data/results/../../../etc/passwd.csv` → reads `/etc/passwd`. Also possible: `GET /download/../../.env` to read environment variables. - -**Recommended Fix:** Validate `job_id` format (UUID regex), use `os.path.realpath` and verify it stays within the allowed base directory. - ---- - -### H-03: Hardcoded Grafana Admin Password - -**Severity:** High -**CWE:** CWE-798 (Use of Hardcoded Credentials) -**OWASP:** A07:2021 – Identification and Authentication Failures -**File:** `config/docker/docker-compose.yml:87` -**Line:** 87 - -**Description:** Grafana admin password is hardcoded as `admin`: -```yaml -GF_SECURITY_ADMIN_PASSWORD: admin -``` - -**Attack Scenario:** Anyone with network access to Grafana (port 3001) can log in as admin with password `admin` and gain full access to dashboards, data sources, and potential server-side request forgery via Prometheus queries. - -**Recommended Fix:** Remove or use a strong password loaded from a secret. - ---- - -### H-04: Information Disclosure — Verbose Error Messages - -**Severity:** High -**CWE:** CWE-209 (Generation of Error Message Containing Sensitive Information) -**OWASP:** A04:2021 – Insecure Design -**Files:** `api/app/routes/predict.py:50`, `batch_charts.html:3`, `pages.py:280` -**Lines:** 50, 3, 280 - -**Description:** Exception messages are returned directly in HTTP responses and rendered in HTML: -```python -raise HTTPException(status_code=500, detail=f"Model inference failed: {str(e)}") -``` - -And in templates, `{{ error }}` is rendered directly without sanitization, where error comes from: -```python -return templates.TemplateResponse("partials/batch_charts.html", {"request": request, "error": str(e)}) -``` - -In `predict_result.html:6`: `{{ error }}` — This renders user-influenced error text. - -**Attack Scenario:** A malformed request triggers a detailed traceback revealing internal paths, Python versions, or database schema details. - -**Recommended Fix:** Log the full exception server-side and return a generic error message to the client. Use structured error logging. - ---- - -### H-05: SQL Injection via F-String in Raw SQL Query - -**Severity:** High -**CWE:** CWE-89 (Improper Neutralization of Special Elements used in an SQL Command) -**OWASP:** A03:2021 – Injection -**File:** `scripts/drift_monitor.py:32` -**Line:** 32 - -**Description:** An f-string is used to construct a SQL query without parameterization: -```python -query = f"SELECT text, language FROM reviews WHERE created_at >= '{seven_days_ago.isoformat()}'" -curr_df = pd.read_sql(query, engine) -``` - -While `seven_days_ago` is not user-controlled in the current code, this pattern is dangerous and could be exploited if the script is later modified or the date is sourced from user input. Using `pd.read_sql` with a query built via f-string is a SQL injection risk. - -**Attack Scenario:** If `seven_days_ago` becomes user-controllable, an attacker could inject SQL commands via the datetime string. - -**Recommended Fix:** Use parameterized queries with `params=` argument in `pd.read_sql`. - ---- - -### H-06: Unauthenticated Sensitive API Endpoints - -**Severity:** High -**CWE:** CWE-306 (Missing Authentication for Critical Function) -**OWASP:** A01:2021 – Broken Access Control -**Files:** `api/app/routes/predict.py`, `api/app/routes/results.py`, `api/app/routes/pages.py` -**Lines:** All - -**Description:** Every API endpoint (predict, batch upload, health, info, download, HTMX fragments) is fully unauthenticated. There is no authentication middleware, no API keys, no JWT tokens, no session management of any kind. - -Exposed endpoints: -- `POST /predict` — Model inference -- `POST /batch` — Batch file upload and processing -- `GET /status/{job_id}` — Batch status polling -- `GET /download/{job_id}` — Result file download -- `GET /health` — Health info -- `GET /info` — System information -- `GET /metrics` — Prometheus metrics - -**Attack Scenario:** Anyone on the network can submit unlimited predictions, upload arbitrary CSV files, download results, and read system information. This enables resource exhaustion, data theft, and reconnaissance. - -**Recommended Fix:** Implement authentication middleware (API key or JWT). At minimum, protect the `/batch`, `/download`, and `/metrics` endpoints. - ---- - -## Medium Findings - -### M-01: No Rate Limiting on API Endpoints - -**Severity:** Medium -**CWE:** CWE-770 (Allocation of Resources Without Limits or Throttling) -**OWASP:** A04:2021 – Insecure Design -**Files:** `api/app/routes/predict.py`, `api/app/main.py` -**Lines:** All - -**Description:** There is no rate limiting on any endpoint. The predict endpoint accepts arbitrarily large text inputs (only limited by request size), and the batch endpoint accepts CSV files up to 10,000 rows. - -**Attack Scenario:** An attacker sends 1,000,000+ predict requests per minute, causing CPU exhaustion on the inference pipeline and DoS for legitimate users. - -**Recommended Fix:** Implement `slowapi` middleware for FastAPI with per-IP rate limiting (e.g., 60 requests/minute for `/predict`, 10 requests/minute for `/batch`). - ---- - -### M-02: No Input Size Validation on Predict Endpoint - -**Severity:** Medium -**CWE:** CWE-770 (Allocation of Resources Without Limits or Throttling) -**OWASP:** A04:2021 – Insecure Design -**File:** `api/app/schemas/schemas.py:6-8`, `api/app/routes/predict.py:24` -**Lines:** 6–8, 24 - -**Description:** The `ReviewInput` schema accepts a `text` field of type `str` with no `max_length` constraint. While the dashboard imposes a 512-char limit client-side, the API has no server-side enforcement, allowing arbitrarily large text to be submitted. - -**Attack Scenario:** An attacker sends a 100MB text string, exhausting server memory during tokenization and inference. - -**Recommended Fix:** Add `max_length=10000` (or reasonable value) to the Pydantic model field. - ---- - -### M-03: Unvalidated File Upload — No Content-Type Validation - -**Severity:** Medium -**CWE:** CWE-434 (Unrestricted Upload of File with Dangerous Type) -**OWASP:** A05:2021 – Security Misconfiguration -**File:** `api/app/routes/predict.py:54-56` -**Lines:** 54–56 - -**Description:** File upload validation only checks the filename extension (`.csv`). The actual file content is not validated: -```python -if not file.filename.endswith(".csv"): - raise HTTPException(status_code=422, detail="Only CSV files are allowed.") -``` - -An attacker can upload a `.csv` file that is actually an executable, zip bomb, or symlink. - -**Attack Scenario:** An attacker uploads a compressed CSV with "text" column that contains script payloads. The file is saved to a temp directory and processed by Celery. - -**Recommended Fix:** Validate MIME type server-side, limit file size at the upload handler, and validate CSV content structure before processing. - ---- - -### M-04: Hardcoded MLflow Tracking URI and Secrets in Source Code - -**Severity:** Medium -**CWE:** CWE-798 (Use of Hardcoded Credentials) -**OWASP:** A05:2021 – Security Misconfiguration -**Files:** Various training scripts - -**Description:** MLflow tracking URI is hardcoded as `sqlite:///mlflow.db` in multiple files, and Hugging Face credentials are hardcoded as `YOUR_HF_USERNAME`: -- `src/models/train_joint_absa.py:195` — `mlflow.set_tracking_uri("sqlite:///mlflow.db")` -- `src/training/mlflow_utils.py:6` — `MLFLOW_TRACKING_URI = "sqlite:///mlflow/mlflow.db"` -- `scripts/upload_models.py:7` — `username = os.environ.get("HF_USERNAME", "YOUR_HF_USERNAME")` - -**Attack Scenario:** In production, these would connect to the wrong tracking server or expose repository information. - -**Recommended Fix:** Load MLflow URI and all credentials from environment variables. - ---- - -### M-05: Prometheus Metrics Expose Sensitive Information - -**Severity:** Medium -**CWE:** CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) -**OWASP:** A01:2021 – Broken Access Control -**File:** `api/app/main.py:44` -**Line:** 44 - -**Description:** Prometheus metrics endpoint `/metrics` is publicly exposed without authentication: -```python -instrumentator.instrument(app).expose(app, endpoint="/metrics") -``` - -The metrics include request counts, latencies, in-progress requests, and potentially internal system information. - -**Attack Scenario:** An attacker can monitor system performance and request patterns, identifying slow endpoints or determining when batch processing jobs run. - -**Recommended Fix:** Add authentication to the `/metrics` endpoint or restrict it to internal network access. - ---- - -### M-06: Unrestricted File Write via Batch Results - -**Severity:** Medium -**CWE:** CWE-73 (External Control of File Name or Path) -**OWASP:** A01:2021 – Broken Access Control -**File:** `api/app/tasks/batch_tasks.py:31-32` -**Lines:** 31–32 - -**Description:** Batch results are written to `data/results/{job_id}.csv` where `job_id` is a UUID, but the job_id validation is insufficient at earlier stages. The results directory is wide-open for file writes. - -**Attack Scenario:** Combined with path traversal in the download endpoint, an attacker could craft a job_id to write files outside the intended directory. - -**Recommended Fix:** Ensure job_id is validated as a UUID before file operations. - ---- - -### M-07: No HTTPS/TLS Termination - -**Severity:** Medium -**CWE:** CWE-319 (Cleartext Transmission of Sensitive Information) -**OWASP:** A02:2021 – Cryptographic Failures -**Files:** `config/docker/nginx.dashboard.conf`, `docker-compose.yml` - -**Description:** All services communicate over plain HTTP. The Nginx config listens on port 80 with no TLS. The FastAPI server binds to `0.0.0.0:8000` over HTTP. The dashboard config (`VITE_API_URL=http://localhost:8000`) defaults to HTTP. - -**Attack Scenario:** On a non-local network, an attacker can MITM all API traffic, reading prediction text and response data. - -**Recommended Fix:** Add TLS termination at the Nginx level. Use environment-specific URLs. - ---- - -### M-08: Hardcoded Redis Configuration - -**Severity:** Medium -**CWE:** CWE-798 (Use of Hardcoded Credentials) -**OWASP:** A05:2021 – Security Misconfiguration -**File:** `config/docker/docker-compose.yml:68-69` - -**Description:** Redis is deployed without authentication (`redis:7-alpine` with no `requirepass`). This is the production docker-compose. - -**Attack Scenario:** Anyone on the Docker network can connect to Redis, read/write cache data, and potentially trigger Celery task manipulation. - -**Recommended Fix:** Add `--requirepass` to Redis or use a password from environment. - ---- - -### M-09: CORS Not Configured Limitingly - -**Severity:** Medium -**CWE:** CWE-942 (Permissive Cross-domain Policy with Untrusted Domains) -**OWASP:** A05:2021 – Security Misconfiguration -**File:** `api/app/main.py` - -**Description:** FastAPI has no CORS middleware configured. The default behavior allows no CORS headers, but when deployed behind Nginx, the proxy may inadvertently allow permissive CORS. In some configurations, this can lead to CSRF-like attacks. - -**Attack Scenario:** If the API is accessed by browser-based clients without proper CORS configuration, a malicious site could attempt to trick logged-in users. - -**Recommended Fix:** Explicitly configure CORS middleware with allowed origins, methods, and headers. - ---- - -## Low Findings - -### L-01: Temp File Not Deleted After Batch Processing - -**Severity:** Low -**CWE:** CWE-377 (Insecure Temporary File) -**OWASP:** A04:2021 – Insecure Design -**File:** `api/app/routes/predict.py:60-61` -**Lines:** 60–61 - -**Description:** Uploaded CSV files are written to `tempfile.NamedTemporaryFile(delete=False)` but are never explicitly deleted after processing. The garbage collector may not clean them promptly. - -**Attack Scenario:** Over time, disk space on the server is exhausted by accumulated temp files. Additionally, the temp files may contain sensitive review data. - -**Recommended Fix:** Ensure temp file is deleted in a `finally` block after the Celery task completes, or use `delete=True` (which is default). - ---- - -### L-02: `load_dotenv()` Called Multiple Times - -**Severity:** Low -**CWE:** CWE-200 (Exposure of Sensitive Information) -**OWASP:** A05:2021 – Security Misconfiguration -**Files:** `api/app/main.py:8`, `api/app/middleware/dependencies.py:6`, `scripts/init_db.py:11` - -**Description:** `load_dotenv()` is called in multiple files, meaning environment variables are loaded from disk in multiple locations. While not directly harmful, it indicates a lack of centralized configuration management. - -**Attack Scenario:** None directly, but inconsistent env loading could lead to different services using different configurations. - -**Recommended Fix:** Call `load_dotenv()` only in the main application entry point. - ---- - -### L-03: Debug/Verbose Logging Enabled - -**Severity:** Low -**CWE:** CWE-489 (Active Debug Code) -**OWASP:** A05:2021 – Security Misconfiguration -**File:** `config/docker/docker-compose.yml` -**Line:** 12 - -**Description:** The production compose file sets `LOG_LEVEL=WARNING`, but the dev compose sets `LOG_LEVEL=INFO` which may expose verbose information. - -**Also:** Multiple `print()` statements are used instead of proper logging throughout the codebase: -- `api/app/main.py:21,24` — `print("Initializing Database...")`, `print("Loading Models...")` -- `print()` in many training scripts - -**Attack Scenario:** Verbose logging may expose sensitive information in log files. - -**Recommended Fix:** Use structured logging (`loguru` or standard `logging`) instead of print, and configure log levels via environment variables. - ---- - -### L-04: SQLite Used in Production Configuration - -**Severity:** Low -**CWE:** CWE-1053 (Missing Documentation for Security Controls) -**OWASP:** A05:2021 – Security Misconfiguration -**File:** `.env` -**Line:** 1 - -**Description:** The active `.env` file uses SQLite: `sqlite:////Users/theogengineer/Projects/Multilingual-Absa/absa.db`. SQLite is unsuitable for production workloads — no concurrent write support, no access controls. - -**Attack Scenario:** SQLite file accessible to anyone with filesystem access. - -**Recommended Fix:** Use PostgreSQL (already configured in docker-compose.yml). - ---- - -### L-05: No Session Timeout or Management - -**Severity:** Low -**CWE:** CWE-613 (Insufficient Session Expiration) -**OWASP:** A07:2021 – Identification and Authentication Failures -**Files:** All - -**Description:** There is no session management at all. The Streamlit app makes stateless API calls, and the React dashboard has no auth. - -**Attack Scenario:** None directly (no sessions), but users may assume their "session" is secure. - -**Recommended Fix:** Implement token-based auth for any future session requirements. - ---- - -### L-06: Hardcoded Seed Values for Randomness - -**Severity:** Low -**CWE:** CWE-335 (Incorrect Usage of Seeds in Pseudo-Random Number Generator) -**OWASP:** A02:2021 – Cryptographic Failures -**Files:** Multiple training scripts - -**Description:** `set_seed(42)` is hardcoded in every training script. This is standard for reproducibility but means the random seed is predictable. - -**Attack Scenario:** An attacker who understands the model training pipeline could predict train/test splits. - -**Recommended Fix:** Make seed configurable via config/env while keeping a default. - ---- - -### L-07: Unnecessary Console Output in Production - -**Severity:** Low -**CWE:** CWE-532 (Information Exposure Through Query Strings in GET Request) -**OWASP:** A04:2021 – Insecure Design -**Files:** `api/app/main.py:21,24,29` - -**Description:** The application prints messages to stdout at startup, including database initialization status and model loading information. In production, this should use proper logging. - -**Attack Scenario:** Startup logs in container environments may expose internal paths and configuration. - -**Recommended Fix:** Replace `print()` with `logging.info()`. - ---- - -### L-08: Missing Security Headers - -**Severity:** Low -**CWE:** CWE-693 (Protection Mechanism Failure) -**OWASP:** A05:2021 – Security Misconfiguration -**File:** `config/docker/nginx.dashboard.conf` - -**Description:** The Nginx configuration does not include security headers. Missing headers include: -- `X-Content-Type-Options: nosniff` -- `X-Frame-Options: DENY` -- `Content-Security-Policy` -- `Strict-Transport-Security` -- `X-XSS-Protection` - -**Attack Scenario:** Missing headers weaken browser security protections, making XSS and other attacks easier. - -**Recommended Fix:** Add security headers to the Nginx configuration. - ---- - -## Dependency Risks - -### D-01: Pandas Version — CVE-2024-42992 -- **Installed:** `pandas==2.2.2` -- **Risk:** Medium — Deserialization of untrusted data via `pd.read_pickle()`. -- **Impact:** If `pd.read_pickle()` is used with untrusted data, code execution is possible. -- **Current usage:** `pd.read_csv()` is used — low risk in current code, but should be patched. -- **Recommendation:** Upgrade to `pandas>=2.2.3`. - -### D-02: MLflow — Security Issue Tracking -- **Installed:** `mlflow==2.13.0` -- **Risk:** Medium — MLflow 2.x has known issues with authenticated access control. -- **Impact:** MLflow tracking server runs without authentication by default. -- **Recommendation:** Upgrade to latest `mlflow>=2.15.0` and add authentication. - -### D-03: FastAPI — CVE-2024-24762 -- **Installed:** `fastapi==0.111.0` -- **Risk:** Medium — Path traversal in `StaticFiles` when mounted. -- **Impact:** Potential arbitrary file reads via static file mounting. -- **Recommendation:** Upgrade to `fastapi>=0.115.0`. - -### D-04: Jinja2 — CVE-2024-56326 -- **Installed:** `jinja2>=3.1.4` -- **Risk:** High — Sandbox escape vulnerability leading to arbitrary code execution. -- **Impact:** Template injection allowing remote code execution. -- **Recommendation:** Upgrade to `jinja2>=3.1.5`. - -### D-05: Transformers — Dependency Tree Risks -- **Installed:** `transformers==4.39.3` -- **Risk:** Low — Large dependency footprint with many transitive dependencies. -- **Impact:** Supply-chain risk from numerous dependencies. -- **Recommendation:** Pin with hash checking in production. - -### D-06: psycopg2-binary — Best Practice -- **Installed:** `psycopg2-binary==2.9.9` -- **Risk:** Low — The `-binary` wheel is not recommended for production. -- **Recommendation:** Use `psycopg2` (source build) in production. - -### D-07: httpx — Version Risk -- **Installed:** `httpx==0.27.0` -- **Risk:** Low -- **Recommendation:** Upgrade to `httpx>=0.28.0` for security fixes. - ---- - -## Infrastructure Risks - -### I-01: Docker Containers Run Services as Non-Root (Good) -- Dockerfiles correctly add a non-root user. - -### I-02: `latest` Image Tags for Prometheus and Grafana -- **Risk:** Medium — Using `prom/prometheus:latest` and `grafana/grafana:latest` means unpredictable version updates could introduce breaking changes or vulnerabilities. -- **Recommendation:** Pin to specific version tags. - -### I-03: No Container Resource Limits (Dev Compose) -- **Risk:** Medium — No CPU/memory limits in the dev compose, enabling resource exhaustion. - -### I-04: Exposed Ports Without Firewall -- **Risk:** Medium — Multiple ports exposed (8000, 8501, 5432, 6379, 9090, 3001) without network isolation. - -### I-05: No Docker Network Segmentation -- **Risk:** Low — All services in the same Docker network with no ingress restrictions. - ---- - -## Authentication Review - -| Aspect | Status | Risk | -|--------|--------|------| -| API Authentication | ❌ Not implemented | Critical | -| Streamlit Auth | ❌ Not implemented | Critical | -| Dashboard Auth | ❌ Not implemented | High | -| Database Auth | ⚠️ Hardcoded in compose | High | -| Grafana Auth | ⚠️ Hardcoded `admin` password | High | -| Redis Auth | ❌ No password | Medium | -| Celery Backend Auth | ❌ Depends on Redis | Medium | -| JWT / Token Auth | ❌ Not implemented | High | -| OAuth / SSO | ❌ Not implemented | Low | -| API Key Middleware | ❌ Not implemented | High | - ---- - -## Authorization Review - -| Aspect | Status | Risk | -|--------|--------|------| -| RBAC | ❌ Not implemented | High | -| Endpoint-level auth | ❌ Not implemented | High | -| File access control | ❌ Path traversal possible | High | -| Admin/Mgmt endpoints | ❌ `/metrics` public | Medium | -| Data isolation | ❌ No user scoping | Medium | - ---- - -## API Security Review - -| Category | Status | Risk | -|----------|--------|------| -| Input Validation | ⚠️ Partial (Pydantic) | High | -| Rate Limiting | ❌ Not implemented | High | -| CORS | ❌ Not configured | Medium | -| CSRF Protection | ❌ Not implemented | Medium | -| HTTPS/TLS | ❌ Not configured | High | -| Security Headers | ❌ Not configured | Med | -| Content-Type Validation | ❌ Extension-only check | Medium | -| Request Size Limits | ⚠️ Client-side only | High | -| Error Handling | ⚠️ Verbose errors | High | -| Logging | ❌ Inconsistent (print) | Low | - ---- - -## Secure Coding Recommendations - -### Immediate (Critical) -1. Remove `| safe` from Jinja2 template in `predict_result.html:71` -2. Replace `innerHTML` with DOM API methods in `predict_result.html:86` -3. Fix path traversal in `/download/{job_id}` endpoint - -### Short-term (High) -4. Add authentication middleware (API key or JWT) -5. Remove hardcoded credentials from docker-compose.yml (use Docker secrets) -6. Add SQL parameterization in `drift_monitor.py:32` -7. Add `max_length` constraint to Pydantic schemas -8. Implement rate limiting with `slowapi` -9. Validate MIME type on file upload -10. Add TLS termination at Nginx - -### Medium-term -11. Replace all `print()` with structured logging -12. Add CORS middleware configuration -13. Add security headers to Nginx -14. Upvote dependencies (Jinja2 >=3.1.5, pandas >=2.2.3) -15. Pin Docker image versions -16. Add `Content-Security-Policy` header -17. Configure logging properly (structured, levels) - ---- - -## Prioritized Remediation Plan - -### Phase 1 — Critical (24 hours) -1. Patch `predict_result.html` — remove `| safe`, replace `innerHTML` -2. Patch `results.py` — add path traversal protection -3. Patch `predict.py` — add `max_length` to schema, file size validation - -### Phase 2 — High (1 week) -4. Add API authentication middleware -5. Remove hardcoded credentials from docker-compose -6. Fix SQL injection in `drift_monitor.py` -7. Add rate limiting -8. Add TLS termination -9. Add MIME type validation on uploads - -### Phase 3 — Medium (2 weeks) -10. Add CORS middleware -11. Add security headers to Nginx -12. Pin Docker image versions -13. Update dependencies -14. Replace `print()` with logging - -### Phase 4 — Low (Monthly) -15. Add session management -16. Implement RBAC -17. Configure CSRF protection -18. Add audit logging -19. Add security scanning to CI/CD pipeline - ---- - -*Audit performed by Automated Security Review. All findings should be verified manually before remediation.* diff --git a/api/__init__.py b/absa/__init__.py similarity index 100% rename from api/__init__.py rename to absa/__init__.py diff --git a/api/app/__init__.py b/absa/data/__init__.py similarity index 100% rename from api/app/__init__.py rename to absa/data/__init__.py diff --git a/src/data/augmentation.py b/absa/data/augmentation.py similarity index 100% rename from src/data/augmentation.py rename to absa/data/augmentation.py diff --git a/src/data/bio_tagger.py b/absa/data/bio_tagger.py similarity index 100% rename from src/data/bio_tagger.py rename to absa/data/bio_tagger.py diff --git a/src/data/dataset.py b/absa/data/dataset.py similarity index 93% rename from src/data/dataset.py rename to absa/data/dataset.py index 85d538a51b2d15d8894f22f43cdbc492f670ff49..eb6705eb99791f5fbba5ba829f1308bf4c211a57 100644 --- a/src/data/dataset.py +++ b/absa/data/dataset.py @@ -1,9 +1,9 @@ import json from datasets import load_from_disk from collections import defaultdict -from src.utils.config import RAW_DIR, SEMEVAL_TRAIN_PATH, SEMEVAL_TEST_PATH -from src.data.preprocess import clean -from src.data.lang_detect import detect_language +from absa.utils.config import RAW_DIR, SEMEVAL_TRAIN_PATH, SEMEVAL_TEST_PATH +from absa.data.preprocess import clean +from absa.data.lang_detect import detect_language def process_semeval(): diff --git a/src/data/hf_dataset.py b/absa/data/hf_dataset.py similarity index 99% rename from src/data/hf_dataset.py rename to absa/data/hf_dataset.py index 9180fd05debe74b432a00c72625dd20953ed200d..2dfff61161517a351623932ddfdb478529ed3375 100644 --- a/src/data/hf_dataset.py +++ b/absa/data/hf_dataset.py @@ -6,7 +6,7 @@ from typing import List, Dict, Any from datasets import Dataset, DatasetDict from transformers import AutoTokenizer from sklearn.model_selection import train_test_split -from src.data.bio_tagger import convert_to_bio +from absa.data.bio_tagger import convert_to_bio np.random.seed(42) diff --git a/src/data/hindi_loader.py b/absa/data/hindi_loader.py similarity index 91% rename from src/data/hindi_loader.py rename to absa/data/hindi_loader.py index 2d26b7cce492c2653749a1cdd99407bbf56bf531..1606ccc9a4497bf2f66da34e793926c73458d68a 100644 --- a/src/data/hindi_loader.py +++ b/absa/data/hindi_loader.py @@ -1,7 +1,7 @@ import json -from src.utils.config import RAW_DIR, AMAZON_HINDI_PATH -from src.data.preprocess import clean -from src.data.lang_detect import detect_language +from absa.utils.config import RAW_DIR, AMAZON_HINDI_PATH +from absa.data.preprocess import clean +from absa.data.lang_detect import detect_language def process_hindi(): diff --git a/src/data/lang_detect.py b/absa/data/lang_detect.py similarity index 95% rename from src/data/lang_detect.py rename to absa/data/lang_detect.py index 9ccb8d901fc44d3ba543de2086cafa608c3044db..1f03ee1d26e2537a991c4ca734f1a473e1740002 100644 --- a/src/data/lang_detect.py +++ b/absa/data/lang_detect.py @@ -1,6 +1,6 @@ import re import fasttext -from src.utils.config import FASTTEXT_MODEL_PATH +from absa.utils.config import FASTTEXT_MODEL_PATH _model = None diff --git a/src/data/preprocess.py b/absa/data/preprocess.py similarity index 93% rename from src/data/preprocess.py rename to absa/data/preprocess.py index 738ac001f12adb2f356325ad6524ad4f0bd44a0c..ac297fa116bdfce645316c112b76e04d0527aa78 100644 --- a/src/data/preprocess.py +++ b/absa/data/preprocess.py @@ -1,6 +1,6 @@ import re import unicodedata -from src.data.transliterate import transliterate +from absa.data.transliterate import transliterate def clean(text: str, language: str) -> str: diff --git a/src/data/transliterate.py b/absa/data/transliterate.py similarity index 100% rename from src/data/transliterate.py rename to absa/data/transliterate.py diff --git a/api/app/core/__init__.py b/absa/evaluation/__init__.py similarity index 100% rename from api/app/core/__init__.py rename to absa/evaluation/__init__.py diff --git a/src/evaluation/benchmark_latency.py b/absa/evaluation/benchmark_latency.py similarity index 100% rename from src/evaluation/benchmark_latency.py rename to absa/evaluation/benchmark_latency.py diff --git a/src/evaluation/cross_lingual_eval.py b/absa/evaluation/cross_lingual_eval.py similarity index 98% rename from src/evaluation/cross_lingual_eval.py rename to absa/evaluation/cross_lingual_eval.py index ff4cf63f7af001da02426d420ce997b9cdb66bcd..204dc4d083319699853f3f2fd382a5e19e6059c6 100644 --- a/src/evaluation/cross_lingual_eval.py +++ b/absa/evaluation/cross_lingual_eval.py @@ -10,7 +10,7 @@ from transformers import ( from sklearn.metrics import f1_score import mlflow -from src.training.mlflow_utils import setup_mlflow +from absa.training.mlflow_utils import setup_mlflow def load_data(file_path: Path): diff --git a/src/evaluation/final_eval.py b/absa/evaluation/final_eval.py similarity index 100% rename from src/evaluation/final_eval.py rename to absa/evaluation/final_eval.py diff --git a/api/app/middleware/__init__.py b/absa/models/__init__.py similarity index 100% rename from api/app/middleware/__init__.py rename to absa/models/__init__.py diff --git a/src/models/baseline.py b/absa/models/baseline.py similarity index 98% rename from src/models/baseline.py rename to absa/models/baseline.py index c2ec8ea10121b9ce43ae7786c55a928263655ee2..0c41667aab05df77ec3fd63a4b615491ff361216 100644 --- a/src/models/baseline.py +++ b/absa/models/baseline.py @@ -8,7 +8,7 @@ from sklearn.linear_model import LogisticRegression from sklearn.metrics import f1_score, confusion_matrix, classification_report from sklearn.model_selection import train_test_split import mlflow -from src.training.mlflow_utils import log_training_run +from absa.training.mlflow_utils import log_training_run def load_data(file_paths: List[Path]) -> pd.DataFrame: diff --git a/src/models/export_onnx.py b/absa/models/export_onnx.py similarity index 100% rename from src/models/export_onnx.py rename to absa/models/export_onnx.py diff --git a/src/models/train_aspect_extraction.py b/absa/models/train_aspect_extraction.py similarity index 98% rename from src/models/train_aspect_extraction.py rename to absa/models/train_aspect_extraction.py index bc6b28294c477122cc60ff9eb772ebddc1753ac0..fb79be013b7d87a7611f5780a8c48d24b71f2249 100644 --- a/src/models/train_aspect_extraction.py +++ b/absa/models/train_aspect_extraction.py @@ -12,7 +12,7 @@ from transformers import ( from seqeval.metrics import f1_score as seqeval_f1_score import mlflow -from src.training.mlflow_utils import setup_mlflow +from absa.training.mlflow_utils import setup_mlflow def compute_metrics(p): diff --git a/src/models/train_joint_absa.py b/absa/models/train_joint_absa.py similarity index 100% rename from src/models/train_joint_absa.py rename to absa/models/train_joint_absa.py diff --git a/src/models/train_multilingual.py b/absa/models/train_multilingual.py similarity index 100% rename from src/models/train_multilingual.py rename to absa/models/train_multilingual.py diff --git a/src/models/train_qlora.py b/absa/models/train_qlora.py similarity index 100% rename from src/models/train_qlora.py rename to absa/models/train_qlora.py diff --git a/src/models/train_sentiment.py b/absa/models/train_sentiment.py similarity index 99% rename from src/models/train_sentiment.py rename to absa/models/train_sentiment.py index 2abcd3940a414342db4ebe9a022c52ff89037b2b..2c220177916ee22ee1ddc5e02a21ab6159078985 100644 --- a/src/models/train_sentiment.py +++ b/absa/models/train_sentiment.py @@ -13,7 +13,7 @@ from transformers import ( from sklearn.metrics import f1_score, confusion_matrix import mlflow -from src.training.mlflow_utils import setup_mlflow +from absa.training.mlflow_utils import setup_mlflow def compute_metrics(p): diff --git a/api/app/routes/__init__.py b/absa/training/__init__.py similarity index 100% rename from api/app/routes/__init__.py rename to absa/training/__init__.py diff --git a/src/training/mlflow_utils.py b/absa/training/mlflow_utils.py similarity index 100% rename from src/training/mlflow_utils.py rename to absa/training/mlflow_utils.py diff --git a/api/app/schemas/__init__.py b/absa/utils/__init__.py similarity index 100% rename from api/app/schemas/__init__.py rename to absa/utils/__init__.py diff --git a/src/utils/config.py b/absa/utils/config.py similarity index 100% rename from src/utils/config.py rename to absa/utils/config.py diff --git a/api/app/services/__init__.py b/app/__init__.py similarity index 100% rename from api/app/services/__init__.py rename to app/__init__.py diff --git a/src/__init__.py b/app/core/__init__.py similarity index 100% rename from src/__init__.py rename to app/core/__init__.py diff --git a/api/app/core/templates.py b/app/core/templates.py similarity index 56% rename from api/app/core/templates.py rename to app/core/templates.py index 598a896183b79d884823fd99fb1442921901c5b5..35a412593be9328ad178c90e9e31dd8cedc21115 100644 --- a/api/app/core/templates.py +++ b/app/core/templates.py @@ -14,6 +14,7 @@ from __future__ import annotations from pathlib import Path +from fastapi import Request from fastapi.templating import Jinja2Templates # Resolve relative to this file: @@ -21,3 +22,15 @@ from fastapi.templating import Jinja2Templates _TEMPLATE_DIR: Path = Path(__file__).parent.parent / "templates" templates = Jinja2Templates(directory=str(_TEMPLATE_DIR)) + + +# ── Global template context processor ───────────────────────────────────────── +# Ensures every template rendered via this instance always has access to +# csrf_token — even partial/fragment templates that don't go through _base_ctx. + +def _csrf_processor(request: Request) -> dict: # type: ignore[no-redef] + from app.middleware.csrf import generate_csrf_token + return {"csrf_token": generate_csrf_token()} + + +templates.context_processors.append(_csrf_processor) # type: ignore[arg-type] diff --git a/api/app/main.py b/app/main.py similarity index 76% rename from api/app/main.py rename to app/main.py index 615fcccdc5651661fbda9889fa3b19c332babc1b..02edaa1bb68ab1a754b4721d4a1929589fb8bd2b 100644 --- a/api/app/main.py +++ b/app/main.py @@ -6,17 +6,18 @@ from slowapi import Limiter, _rate_limit_exceeded_handler from slowapi.util import get_remote_address from slowapi.errors import RateLimitExceeded +import os from fastapi.staticfiles import StaticFiles from pathlib import Path load_dotenv() -from api.app.routes import predict, results # noqa: E402 -from api.app.routes import pages # noqa: E402 Phase 2: Jinja2 page routes -from api.app.middleware.metrics import instrumentator # noqa: E402 -from api.app.services.absa_pipeline import pipeline # noqa: E402 -from api.app.schemas.db_models import Base # noqa: E402 -from api.app.middleware.dependencies import engine # noqa: E402 +from app.routes import predict, results # noqa: E402 +from app.routes import pages # noqa: E402 Phase 2: Jinja2 page routes +from app.middleware.metrics import instrumentator # noqa: E402 +from app.services.absa_pipeline import pipeline # noqa: E402 +from app.schemas.db_models import Base # noqa: E402 +from app.middleware.dependencies import engine # noqa: E402 @asynccontextmanager @@ -45,13 +46,16 @@ app = FastAPI( app.state.limiter = limiter app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler) +from app.middleware.csrf import CSRFMiddleware # noqa: E402 + app.add_middleware( CORSMiddleware, - allow_origins=os.getenv("CORS_ORIGINS", "http://localhost:3000,http://localhost:8501,http://localhost:8000").split(","), + allow_origins=os.getenv("CORS_ORIGINS", "http://localhost:3000,http://localhost:8000").split(","), allow_credentials=True, allow_methods=["GET", "POST"], allow_headers=["*"], ) +app.add_middleware(CSRFMiddleware) # Skips /api/* routes; protects HTMX form endpoints app.include_router(predict.router, tags=["Predict"]) app.include_router(results.router, tags=["System"]) diff --git a/src/absa/__init__.py b/app/middleware/__init__.py similarity index 100% rename from src/absa/__init__.py rename to app/middleware/__init__.py diff --git a/app/middleware/csrf.py b/app/middleware/csrf.py new file mode 100644 index 0000000000000000000000000000000000000000..bcd3066a6193ffdcd2471b342d8e05532a139b19 --- /dev/null +++ b/app/middleware/csrf.py @@ -0,0 +1,59 @@ +import os +import re +from typing import Optional +from itsdangerous import URLSafeTimedSerializer, BadSignature, SignatureExpired +from starlette.middleware.base import BaseHTTPMiddleware +from starlette.requests import Request +from starlette.responses import Response + +_CSRF_SECRET = os.getenv("CSRF_SECRET", "unsafe-default-change-in-production") +_CSRF_SALT = "csrf-token" +_SAFE_METHODS = {"GET", "HEAD", "OPTIONS", "TRACE"} +_EXEMPT_PATHS = {"/metrics", "/health", "/info", "/docs", "/openapi.json"} + +_serializer = URLSafeTimedSerializer(_CSRF_SECRET, salt=_CSRF_SALT) + + +def generate_csrf_token() -> str: + return _serializer.dumps("csrf") + + +def validate_csrf_token(token: str, max_age: int = 3600) -> bool: + try: + _serializer.loads(token, max_age=max_age) + return True + except (BadSignature, SignatureExpired): + return False + + +class CSRFMiddleware(BaseHTTPMiddleware): + async def dispatch(self, request: Request, call_next): + path = request.url.path + needs_csrf = request.method in {"POST"} and path.endswith("/fragment") + is_html_page = request.method in _SAFE_METHODS and not path.startswith("/api/") and not path.startswith("/static/") and path not in _EXEMPT_PATHS + + if needs_csrf: + csrf_cookie = request.cookies.get("csrf_token", "") + csrf_header = request.headers.get("X-CSRF-Token", "") + token = csrf_header or csrf_cookie + + if token and not validate_csrf_token(str(token)): + from fastapi.responses import HTMLResponse + return HTMLResponse( + content="

403: CSRF validation failed

Invalid or expired token. Please refresh the page.

", + status_code=403, + ) + + response: Response = await call_next(request) + + if is_html_page: + response.set_cookie( + key="csrf_token", + value=generate_csrf_token(), + max_age=3600, + secure=False, + httponly=True, + samesite="lax", + ) + + return response diff --git a/api/app/middleware/dependencies.py b/app/middleware/dependencies.py similarity index 100% rename from api/app/middleware/dependencies.py rename to app/middleware/dependencies.py diff --git a/api/app/middleware/metrics.py b/app/middleware/metrics.py similarity index 100% rename from api/app/middleware/metrics.py rename to app/middleware/metrics.py diff --git a/src/data/__init__.py b/app/routes/__init__.py similarity index 100% rename from src/data/__init__.py rename to app/routes/__init__.py diff --git a/api/app/routes/pages.py b/app/routes/pages.py similarity index 83% rename from api/app/routes/pages.py rename to app/routes/pages.py index fcdd5cbe083275c7fe58581286f38587a6dc8618..7c0a33cc29706eb7de1056beea707caffe9d3bbe 100644 --- a/api/app/routes/pages.py +++ b/app/routes/pages.py @@ -27,10 +27,13 @@ GET /monitor/health-partial) will be added in Phases 3-5. """ from __future__ import annotations -from fastapi import APIRouter, Request +from fastapi import APIRouter, Request, Depends, Form from fastapi.responses import HTMLResponse +from sqlalchemy.orm import Session -from api.app.core.templates import templates +from app.core.templates import templates +from app.middleware.csrf import generate_csrf_token +from app.middleware.dependencies import get_db # include_in_schema=False keeps these HTML routes out of the OpenAPI / Swagger UI. router = APIRouter(include_in_schema=False) @@ -51,12 +54,15 @@ def _base_ctx(request: Request, page_title: str, **extra: object) -> dict: Every page renderer calls this so the sidebar and header always receive the nav items and the current path (for active-link highlighting). + Also includes CSRF token for HTMX form submissions. """ + from app.middleware.csrf import generate_csrf_token return { "request": request, # required by Jinja2Templates "page_title": page_title, "nav_items": _NAV_ITEMS, "current_path": request.url.path, + "csrf_token": generate_csrf_token(), **extra, } @@ -98,7 +104,7 @@ async def batch_page(request: Request) -> HTMLResponse: ) -from api.app.routes.results import health_check +from app.routes.results import health_check @router.get("/monitor", response_class=HTMLResponse) async def monitor_page(request: Request) -> HTMLResponse: @@ -113,13 +119,50 @@ async def monitor_page(request: Request) -> HTMLResponse: ctx = _base_ctx(request, "System Monitor", health=None, error="Service temporarily unavailable") return templates.TemplateResponse("pages/monitor.html", ctx) +# ── SSE Endpoint for batch progress ────────────────────────────────────────── + +import asyncio +import json +from sse_starlette.sse import EventSourceResponse + +@router.get("/api/batch/progress/{job_id}") +async def batch_progress_sse(job_id: str, db: Session = Depends(get_db)): + """ + SSE endpoint for live batch progress updates. + Clients connect via EventSource and receive progress events every 2 seconds. + """ + async def event_generator(): + try: + import re + if not re.match(r'^[a-fA-F0-9\-]{36}$', job_id): + yield {"event": "error", "data": json.dumps({"detail": "Invalid job ID"})} + return + + while True: + job = await get_batch_status(job_id, db) + data = { + "job_id": job.job_id, + "status": job.status, + "total_reviews": job.total_reviews, + "processed": job.processed, + "result_url": job.result_url, + } + yield {"event": "progress", "data": json.dumps(data)} + + if job.status in ("completed", "failed"): + yield {"event": job.status, "data": json.dumps(data)} + break + + await asyncio.sleep(2) + except Exception: + yield {"event": "error", "data": json.dumps({"detail": "Failed to fetch job progress"})} + + return EventSourceResponse(event_generator()) + # ── Phase 3 HTMX Endpoints ─────────────────────────────────────────────────── -from fastapi import Depends, Form -from sqlalchemy.orm import Session -from api.app.middleware.dependencies import get_db -from api.app.schemas.schemas import ReviewInput -from api.app.routes.predict import predict as predict_json +from app.schemas.schemas import ReviewInput +from app.routes.predict import predict as predict_json @router.post("/predict/fragment", response_class=HTMLResponse) async def predict_fragment( @@ -150,7 +193,7 @@ async def predict_fragment( # ── Phase 4 HTMX Endpoints ─────────────────────────────────────────────────── from fastapi import UploadFile, File -from api.app.routes.predict import predict_batch, get_batch_status +from app.routes.predict import predict_batch, get_batch_status @router.post("/batch/fragment", response_class=HTMLResponse) async def batch_fragment( diff --git a/api/app/routes/predict.py b/app/routes/predict.py similarity index 88% rename from api/app/routes/predict.py rename to app/routes/predict.py index 00d3a0ff541eef52a0d53880806f476fc14bdb02..23141061df2de678104eee7855fc909ba5d284d1 100644 --- a/api/app/routes/predict.py +++ b/app/routes/predict.py @@ -7,11 +7,11 @@ import tempfile import time import re -from api.app.schemas.schemas import ReviewInput, PredictionResponse, BatchJobResponse -from api.app.schemas.db_models import Review, AspectResult, BatchJob -from api.app.middleware.dependencies import get_db -from api.app.services.absa_pipeline import pipeline -from api.app.tasks.batch_tasks import process_batch +from app.schemas.schemas import ReviewInput, PredictionResponse, BatchJobResponse +from app.schemas.db_models import Review, AspectResult, BatchJob +from app.middleware.dependencies import get_db +from app.services.absa_pipeline import pipeline +from app.tasks.batch_tasks import process_batch router = APIRouter() @@ -114,7 +114,11 @@ async def predict_batch(file: UploadFile = File(...), db: Session = Depends(get_ async def get_batch_status(job_id: str, db: Session = Depends(get_db)): if not re.match(r'^[a-fA-F0-9\-]{36}$', job_id): raise HTTPException(status_code=400, detail="Invalid job ID format") - job = db.query(BatchJob).filter(BatchJob.id == job_id).first() + try: + job_id_uuid = uuid.UUID(job_id) + except ValueError: + raise HTTPException(status_code=400, detail="Invalid job ID format") + job = db.query(BatchJob).filter(BatchJob.id == job_id_uuid).first() if not job: raise HTTPException(status_code=404, detail="Job not found") diff --git a/api/app/routes/results.py b/app/routes/results.py similarity index 100% rename from api/app/routes/results.py rename to app/routes/results.py diff --git a/src/evaluation/__init__.py b/app/schemas/__init__.py similarity index 100% rename from src/evaluation/__init__.py rename to app/schemas/__init__.py diff --git a/api/app/schemas/db_models.py b/app/schemas/db_models.py similarity index 100% rename from api/app/schemas/db_models.py rename to app/schemas/db_models.py diff --git a/api/app/schemas/schemas.py b/app/schemas/schemas.py similarity index 100% rename from api/app/schemas/schemas.py rename to app/schemas/schemas.py diff --git a/src/languages/__init__.py b/app/services/__init__.py similarity index 100% rename from src/languages/__init__.py rename to app/services/__init__.py diff --git a/api/app/services/absa_pipeline.py b/app/services/absa_pipeline.py similarity index 99% rename from api/app/services/absa_pipeline.py rename to app/services/absa_pipeline.py index 377a3b26c4402cc082392eebea9d730dcdd0006c..769ee531a72ab2b5c67a578645502b9acca166d0 100644 --- a/api/app/services/absa_pipeline.py +++ b/app/services/absa_pipeline.py @@ -18,8 +18,8 @@ from pathlib import Path from typing import List, Tuple import numpy as np -from api.app.schemas.schemas import PredictionResponse, AspectSentiment -from api.app.services.lang_service import lang_service +from app.schemas.schemas import PredictionResponse, AspectSentiment +from app.services.lang_service import lang_service # ── Optional heavy imports (ONNX custom models) ─────────────────────────────── try: diff --git a/api/app/services/lang_service.py b/app/services/lang_service.py similarity index 100% rename from api/app/services/lang_service.py rename to app/services/lang_service.py diff --git a/api/app/static/css/app.css b/app/static/css/app.css similarity index 100% rename from api/app/static/css/app.css rename to app/static/css/app.css diff --git a/api/app/tasks/__init__.py b/app/tasks/__init__.py similarity index 100% rename from api/app/tasks/__init__.py rename to app/tasks/__init__.py diff --git a/api/app/tasks/batch_tasks.py b/app/tasks/batch_tasks.py similarity index 95% rename from api/app/tasks/batch_tasks.py rename to app/tasks/batch_tasks.py index 982c183301a916c6cc074623e480053f95bc18e4..7582716e99c37a0f3b3c4e6ef796063d6e4b02a5 100644 --- a/api/app/tasks/batch_tasks.py +++ b/app/tasks/batch_tasks.py @@ -1,7 +1,7 @@ -from api.app.tasks import celery_app -from api.app.services.absa_pipeline import pipeline -from api.app.middleware.dependencies import SessionLocal -from api.app.schemas.db_models import BatchJob, AspectResult, Review +from app.tasks import celery_app +from app.services.absa_pipeline import pipeline +from app.middleware.dependencies import SessionLocal +from app.schemas.db_models import BatchJob, AspectResult, Review import pandas as pd import os import csv diff --git a/api/app/templates/base.html b/app/templates/base.html similarity index 96% rename from api/app/templates/base.html rename to app/templates/base.html index bad316e2075edd3aa3ed426a839550dc2f01a166..e0550d157d530aab97d2579ab1c722a5809cf495 100644 --- a/api/app/templates/base.html +++ b/app/templates/base.html @@ -5,6 +5,7 @@ {% block title %}{{ page_title }}{% endblock %} — SentimentAI + {# ── Fonts ────────────────────────────────────────────────────────────────── #} {# Inter replaces Geist (same design language, available on Google Fonts CDN). #} @@ -423,10 +424,20 @@ detail: { msg: 'Network error — check your connection.', type: 'error' } })); }); + + // ── CSRF token injection for HTMX ───────────────────────────────────────── + // Reads csrf_token from and attaches it as + // X-CSRF-Token header on every non-GET HTMX request. + document.addEventListener('htmx:configRequest', function (e) { + const meta = document.querySelector('meta[name="csrf-token"]'); + if (meta) { + e.detail.headers['X-CSRF-Token'] = meta.getAttribute('content'); + } + }); {# HTMX — loaded deferred so it does not block rendering #} - + {# Alpine.js v3 — loaded deferred; appState() above is already in global scope #} diff --git a/api/app/templates/macros/ui.html b/app/templates/macros/ui.html similarity index 100% rename from api/app/templates/macros/ui.html rename to app/templates/macros/ui.html diff --git a/api/app/templates/pages/batch.html b/app/templates/pages/batch.html similarity index 100% rename from api/app/templates/pages/batch.html rename to app/templates/pages/batch.html diff --git a/api/app/templates/pages/monitor.html b/app/templates/pages/monitor.html similarity index 100% rename from api/app/templates/pages/monitor.html rename to app/templates/pages/monitor.html diff --git a/api/app/templates/pages/predict.html b/app/templates/pages/predict.html similarity index 100% rename from api/app/templates/pages/predict.html rename to app/templates/pages/predict.html diff --git a/api/app/templates/partials/batch_charts.html b/app/templates/partials/batch_charts.html similarity index 100% rename from api/app/templates/partials/batch_charts.html rename to app/templates/partials/batch_charts.html diff --git a/api/app/templates/partials/batch_progress.html b/app/templates/partials/batch_progress.html similarity index 100% rename from api/app/templates/partials/batch_progress.html rename to app/templates/partials/batch_progress.html diff --git a/api/app/templates/partials/monitor_health.html b/app/templates/partials/monitor_health.html similarity index 100% rename from api/app/templates/partials/monitor_health.html rename to app/templates/partials/monitor_health.html diff --git a/api/app/templates/partials/predict_result.html b/app/templates/partials/predict_result.html similarity index 100% rename from api/app/templates/partials/predict_result.html rename to app/templates/partials/predict_result.html diff --git a/config/docker/Dockerfile.dashboard b/config/docker/Dockerfile.dashboard deleted file mode 100644 index 2f1d2fd3a993444030e1aa348b25012ff702778b..0000000000000000000000000000000000000000 --- a/config/docker/Dockerfile.dashboard +++ /dev/null @@ -1,26 +0,0 @@ -# Stage 1: Build -FROM node:20-alpine AS builder - -WORKDIR /app - -# Install dependencies (only copy package files first) -COPY dashboard/package.json ./ -RUN npm install - -# Copy source and build -COPY dashboard/ ./ -RUN npm run build - -# Stage 2: Serve -FROM nginx:alpine - -# Copy built assets -COPY --from=builder /app/dist /usr/share/nginx/html - -# Add custom Nginx configuration -RUN rm /etc/nginx/conf.d/default.conf -COPY config/docker/nginx.dashboard.conf /etc/nginx/conf.d/default.conf - -EXPOSE 80 - -CMD ["nginx", "-g", "daemon off;"] diff --git a/config/docker/Dockerfile.streamlit b/config/docker/Dockerfile.streamlit deleted file mode 100644 index edd1f0533d215372bbd3b1636b9ef95fdcabb54f..0000000000000000000000000000000000000000 --- a/config/docker/Dockerfile.streamlit +++ /dev/null @@ -1,12 +0,0 @@ -FROM python:3.10-slim - -WORKDIR /app - -COPY requirements.txt . -RUN pip install --no-cache-dir -r requirements.txt - -COPY streamlit_app/ ./streamlit_app/ - -EXPOSE 8501 - -CMD ["streamlit", "run", "streamlit_app/Home.py", "--server.port=8501", "--server.address=0.0.0.0"] diff --git a/config/railway.json b/config/railway.json deleted file mode 100644 index 1e11e9ec0d6f89b5c000a2075c633152f7498738..0000000000000000000000000000000000000000 --- a/config/railway.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://railway.app/railway.schema.json", - "build": { - "builder": "DOCKERFILE", - "dockerfilePath": "docker/Dockerfile.api.prod" - }, - "deploy": { - "startCommand": "uvicorn api.main:app --host 0.0.0.0 --port $PORT", - "healthcheckPath": "/health", - "healthcheckTimeout": 30, - "restartPolicyType": "ON_FAILURE", - "restartPolicyMaxRetries": 3 - } -} diff --git a/dashboard_backup/.env.example b/dashboard_backup/.env.example deleted file mode 100644 index 5934e2e7d2d17fde2f262dd89007afdc2e7fb9c1..0000000000000000000000000000000000000000 --- a/dashboard_backup/.env.example +++ /dev/null @@ -1 +0,0 @@ -VITE_API_URL=http://localhost:8000 diff --git a/dashboard_backup/dist/_redirects b/dashboard_backup/dist/_redirects deleted file mode 100644 index 7797f7c6a7356b0d451d11a49925df854c22e978..0000000000000000000000000000000000000000 --- a/dashboard_backup/dist/_redirects +++ /dev/null @@ -1 +0,0 @@ -/* /index.html 200 diff --git a/dashboard_backup/dist/assets/index-DGl1EjcM.css b/dashboard_backup/dist/assets/index-DGl1EjcM.css deleted file mode 100644 index 042faaefa895970a73c75f2c51bbd581bcafbd74..0000000000000000000000000000000000000000 --- a/dashboard_backup/dist/assets/index-DGl1EjcM.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.glass-panel{border-width:1px;border-color:#ffffff0f;background-color:#171f33bf;--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.nav-item{display:flex;cursor:pointer;align-items:center;gap:.75rem;border-radius:12px;padding:.625rem .75rem;font-size:14px;line-height:20px;font-weight:500;--tw-text-opacity: 1;color:rgb(199 196 215 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.nav-item:hover{background-color:#ffffff0d;--tw-text-opacity: 1;color:rgb(218 226 253 / var(--tw-text-opacity, 1))}.nav-item-active{display:flex;cursor:pointer;align-items:center;gap:.75rem;border-radius:12px;padding:.625rem .75rem;font-size:14px;line-height:20px;font-weight:500;--tw-text-opacity: 1;color:rgb(199 196 215 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.nav-item-active:hover{background-color:#ffffff0d;--tw-text-opacity: 1;color:rgb(218 226 253 / var(--tw-text-opacity, 1))}.nav-item-active{border-right-width:2px;--tw-border-opacity: 1;border-color:rgb(192 193 255 / var(--tw-border-opacity, 1));background-color:#ffffff12;font-weight:600;--tw-text-opacity: 1;color:rgb(192 193 255 / var(--tw-text-opacity, 1))}.badge-positive{display:inline-flex;align-items:center;gap:.375rem;border-radius:9999px;border-width:1px;border-color:#4edea340;background-color:#4edea31a;padding:.125rem .5rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;line-height:16px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(78 222 163 / var(--tw-text-opacity, 1))}.badge-negative{display:inline-flex;align-items:center;gap:.375rem;border-radius:9999px;border-width:1px;border-color:#ffb4ab40;background-color:#ffb4ab1a;padding:.125rem .5rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;line-height:16px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(255 180 171 / var(--tw-text-opacity, 1))}.badge-neutral{display:inline-flex;align-items:center;gap:.375rem;border-radius:9999px;border-width:1px;border-color:#908fa040;background-color:#908fa01a;padding:.125rem .5rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;line-height:16px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(199 196 215 / var(--tw-text-opacity, 1))}.badge-processing{display:inline-flex}.badge-processing{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;align-items:center;gap:.375rem;border-radius:9999px;border-width:1px;border-color:#c0c1ff40;background-color:#c0c1ff1a;padding:.125rem .5rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;line-height:16px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(192 193 255 / var(--tw-text-opacity, 1))}.badge-error{display:inline-flex;align-items:center;gap:.375rem;border-radius:9999px;border-width:1px;border-color:#ffb4ab40;background-color:#ffb4ab1a;padding:.125rem .5rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;line-height:16px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(255 180 171 / var(--tw-text-opacity, 1))}.highlight-positive{margin-left:.125rem;margin-right:.125rem;border-radius:6px;border-width:1px;border-color:#4edea34d;background-color:#4edea326;padding-left:.25rem;padding-right:.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(78 222 163 / var(--tw-text-opacity, 1))}.highlight-negative{margin-left:.125rem;margin-right:.125rem;border-radius:6px;border-width:1px;border-color:#ffb4ab4d;background-color:#ffb4ab26;padding-left:.25rem;padding-right:.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 180 171 / var(--tw-text-opacity, 1))}.highlight-neutral{margin-left:.125rem;margin-right:.125rem;border-radius:6px;border-width:1px;border-color:#908fa040;background-color:#908fa026;padding-left:.25rem;padding-right:.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(199 196 215 / var(--tw-text-opacity, 1))}.card{border-radius:16px;border-width:1px;border-color:#ffffff14;--tw-bg-opacity: 1;background-color:rgb(23 31 51 / var(--tw-bg-opacity, 1));padding:24px}.card-low{border-radius:16px;border-width:1px;border-color:#ffffff0f;--tw-bg-opacity: 1;background-color:rgb(19 27 46 / var(--tw-bg-opacity, 1));padding:24px}.input-base{border-radius:12px;border-width:1px;border-color:#ffffff1f;--tw-bg-opacity: 1;background-color:rgb(11 19 38 / var(--tw-bg-opacity, 1));padding:.5rem .75rem;font-size:14px;line-height:20px;font-weight:400;--tw-text-opacity: 1;color:rgb(218 226 253 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-base::-moz-placeholder{color:#c7c4d799}.input-base::placeholder{color:#c7c4d799}.input-base:focus{--tw-border-opacity: 1;border-color:rgb(192 193 255 / var(--tw-border-opacity, 1));outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(192 193 255 / .4)}.btn-primary{display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:12px;--tw-bg-opacity: 1;background-color:rgb(192 193 255 / var(--tw-bg-opacity, 1));padding:.625rem 1.25rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;line-height:16px;font-weight:500;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(16 0 169 / var(--tw-text-opacity, 1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-primary:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.btn-primary:active{--tw-scale-x: .98;--tw-scale-y: .98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-primary:disabled{cursor:not-allowed;opacity:.5}.btn-primary:active:disabled{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.drag-active{border-color:#c0c1ffb3;background-color:#c0c1ff0a}.stat-card{border-radius:16px;border-width:1px;border-color:#ffffff14;--tw-bg-opacity: 1;background-color:rgb(23 31 51 / var(--tw-bg-opacity, 1));padding:24px;position:relative;overflow:hidden}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-lg{margin-bottom:16px}.mb-xl{margin-bottom:24px}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.mt-lg{margin-top:16px}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-8{height:2rem}.h-96{height:24rem}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[260px\]{min-height:260px}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-64{width:16rem}.w-8{width:2rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-\[1280px\]{max-width:1280px}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .2s ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse-slow{animation:pulse 3s cubic-bezier(.4,0,.6,1) infinite}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-slide-in{animation:slideIn .25s ease-out}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-lg{gap:16px}.gap-md{gap:12px}.gap-xl{gap:24px}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-xl>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(24px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(24px * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-white\/\[0\.05\]>:not([hidden])~:not([hidden]){border-color:#ffffff0d}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:6px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:12px}.rounded-xl{border-radius:16px}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-primary\/60{border-color:#c0c1ff99}.border-white\/\[0\.05\]{border-color:#ffffff0d}.border-white\/\[0\.06\]{border-color:#ffffff0f}.border-white\/\[0\.07\]{border-color:#ffffff12}.border-white\/\[0\.08\]{border-color:#ffffff14}.border-white\/\[0\.12\]{border-color:#ffffff1f}.border-white\/\[0\.14\]{border-color:#ffffff24}.bg-background{--tw-bg-opacity: 1;background-color:rgb(11 19 38 / var(--tw-bg-opacity, 1))}.bg-black\/60{background-color:#0009}.bg-error{--tw-bg-opacity: 1;background-color:rgb(255 180 171 / var(--tw-bg-opacity, 1))}.bg-error\/10{background-color:#ffb4ab1a}.bg-outline{--tw-bg-opacity: 1;background-color:rgb(144 143 160 / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(192 193 255 / var(--tw-bg-opacity, 1))}.bg-primary\/10{background-color:#c0c1ff1a}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(11 19 38 / var(--tw-bg-opacity, 1))}.bg-surface-container{--tw-bg-opacity: 1;background-color:rgb(23 31 51 / var(--tw-bg-opacity, 1))}.bg-surface-container-high{--tw-bg-opacity: 1;background-color:rgb(34 42 61 / var(--tw-bg-opacity, 1))}.bg-surface-container-high\/50{background-color:#222a3d80}.bg-surface-container-highest{--tw-bg-opacity: 1;background-color:rgb(45 52 73 / var(--tw-bg-opacity, 1))}.bg-surface-container-low{--tw-bg-opacity: 1;background-color:rgb(19 27 46 / var(--tw-bg-opacity, 1))}.bg-surface\/80{background-color:#0b1326cc}.bg-tertiary{--tw-bg-opacity: 1;background-color:rgb(78 222 163 / var(--tw-bg-opacity, 1))}.bg-tertiary\/10{background-color:#4edea31a}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-6{padding:1.5rem}.p-lg{padding:16px}.p-md{padding:12px}.p-xl{padding:24px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-lg{padding-left:16px;padding-right:16px}.px-md{padding-left:12px;padding-right:12px}.px-sm{padding-left:8px;padding-right:8px}.px-xl{padding-left:24px;padding-right:24px}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-xl{padding-top:24px;padding-bottom:24px}.pb-md{padding-bottom:12px}.pb-xl{padding-bottom:24px}.pr-1{padding-right:.25rem}.pt-16{padding-top:4rem}.pt-lg{padding-top:16px}.pt-sm{padding-top:8px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,ui-monospace,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-\[16px\]{font-size:16px}.text-body-md{font-size:14px;line-height:20px;font-weight:400}.text-body-sm{font-size:12px;line-height:16px;font-weight:400}.text-display{font-size:36px;line-height:44px;letter-spacing:-.025em;font-weight:600}.text-headline-md{font-size:24px;line-height:32px;letter-spacing:-.01em;font-weight:600}.text-headline-sm{font-size:20px;line-height:28px;font-weight:500}.text-label-md{font-size:12px;line-height:16px;letter-spacing:.05em;font-weight:500}.text-label-sm{font-size:11px;line-height:16px;letter-spacing:.06em;font-weight:500}.text-sm{font-size:.875rem;line-height:1.25rem}.text-title-lg{font-size:16px;line-height:24px;font-weight:600}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-loose{line-height:2}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-wider{letter-spacing:.05em}.text-error{--tw-text-opacity: 1;color:rgb(255 180 171 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-on-surface{--tw-text-opacity: 1;color:rgb(218 226 253 / var(--tw-text-opacity, 1))}.text-on-surface-variant{--tw-text-opacity: 1;color:rgb(199 196 215 / var(--tw-text-opacity, 1))}.text-on-surface-variant\/50{color:#c7c4d780}.text-primary{--tw-text-opacity: 1;color:rgb(192 193 255 / var(--tw-text-opacity, 1))}.text-tertiary{--tw-text-opacity: 1;color:rgb(78 222 163 / var(--tw-text-opacity, 1))}.text-warning{--tw-text-opacity: 1;color:rgb(245 197 66 / var(--tw-text-opacity, 1))}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.shadow-glow-negative{--tw-shadow: 0 0 12px rgba(255,180,171,.2);--tw-shadow-colored: 0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-glow-positive{--tw-shadow: 0 0 12px rgba(78,222,163,.2);--tw-shadow-colored: 0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.backdrop-blur-glass{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#0b1326;color:#dae2fd;font-family:Geist,ui-sans-serif,system-ui,sans-serif;min-height:100vh}html{color-scheme:dark}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:20px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff38}:focus-visible{outline:2px solid #c0c1ff;outline-offset:2px}.hover\:border-primary\/40:hover{border-color:#c0c1ff66}.hover\:border-white\/25:hover{border-color:#ffffff40}.hover\:border-white\/\[0\.12\]:hover{border-color:#ffffff1f}.hover\:bg-primary\/\[0\.02\]:hover{background-color:#c0c1ff05}.hover\:bg-white\/\[0\.03\]:hover{background-color:#ffffff08}.hover\:bg-white\/\[0\.05\]:hover{background-color:#ffffff0d}.hover\:text-on-surface:hover{--tw-text-opacity: 1;color:rgb(218 226 253 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-70{opacity:.7}.dark\:border-slate-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 768px){.md\:left-64{left:16rem}.md\:ml-64{margin-left:16rem}.md\:block{display:block}.md\:hidden{display:none}.md\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:px-3xl{padding-left:48px;padding-right:48px}.md\:py-2xl{padding-top:32px;padding-bottom:32px}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:col-span-4{grid-column:span 4 / span 4}.lg\:col-span-5{grid-column:span 5 / span 5}.lg\:col-span-7{grid-column:span 7 / span 7}.lg\:col-span-8{grid-column:span 8 / span 8}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:col-span-2{grid-column:span 2 / span 2}.xl\:col-span-3{grid-column:span 3 / span 3}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}} diff --git a/dashboard_backup/dist/assets/index-w96O4ZPi.js b/dashboard_backup/dist/assets/index-w96O4ZPi.js deleted file mode 100644 index 5b598f8dc2bdf6369fc2cfe4f62323ca40a58c1b..0000000000000000000000000000000000000000 --- a/dashboard_backup/dist/assets/index-w96O4ZPi.js +++ /dev/null @@ -1,348 +0,0 @@ -var Xb=e=>{throw TypeError(e)};var gh=(e,t,n)=>t.has(e)||Xb("Cannot "+n);var j=(e,t,n)=>(gh(e,t,"read from private field"),n?n.call(e):t.get(e)),ne=(e,t,n)=>t.has(e)?Xb("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Y=(e,t,n,r)=>(gh(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),de=(e,t,n)=>(gh(e,t,"access private method"),n);var pc=(e,t,n,r)=>({set _(i){Y(e,t,i,n)},get _(){return j(e,t,r)}});function AC(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();var dc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function je(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var p_={exports:{}},Qp={},d_={exports:{}},ve={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var qu=Symbol.for("react.element"),EC=Symbol.for("react.portal"),jC=Symbol.for("react.fragment"),TC=Symbol.for("react.strict_mode"),kC=Symbol.for("react.profiler"),$C=Symbol.for("react.provider"),CC=Symbol.for("react.context"),NC=Symbol.for("react.forward_ref"),MC=Symbol.for("react.suspense"),RC=Symbol.for("react.memo"),DC=Symbol.for("react.lazy"),Qb=Symbol.iterator;function IC(e){return e===null||typeof e!="object"?null:(e=Qb&&e[Qb]||e["@@iterator"],typeof e=="function"?e:null)}var h_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m_=Object.assign,v_={};function Ss(e,t,n){this.props=e,this.context=t,this.refs=v_,this.updater=n||h_}Ss.prototype.isReactComponent={};Ss.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Ss.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function y_(){}y_.prototype=Ss.prototype;function Ag(e,t,n){this.props=e,this.context=t,this.refs=v_,this.updater=n||h_}var Eg=Ag.prototype=new y_;Eg.constructor=Ag;m_(Eg,Ss.prototype);Eg.isPureReactComponent=!0;var Yb=Array.isArray,g_=Object.prototype.hasOwnProperty,jg={current:null},b_={key:!0,ref:!0,__self:!0,__source:!0};function x_(e,t,n){var r,i={},a=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(a=""+t.key),t)g_.call(t,r)&&!b_.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1>>1,H=R[K];if(0>>1;Ki(ye,z))iei(be,ye)?(R[K]=be,R[ie]=z,K=ie):(R[K]=ye,R[ce]=z,K=ce);else if(iei(be,z))R[K]=be,R[ie]=z,K=ie;else break e}}return I}function i(R,I){var z=R.sortIndex-I.sortIndex;return z!==0?z:R.id-I.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var l=[],u=[],f=1,c=null,p=3,d=!1,g=!1,m=!1,y=typeof setTimeout=="function"?setTimeout:null,h=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(R){for(var I=n(u);I!==null;){if(I.callback===null)r(u);else if(I.startTime<=R)r(u),I.sortIndex=I.expirationTime,t(l,I);else break;I=n(u)}}function w(R){if(m=!1,b(R),!g)if(n(l)!==null)g=!0,B(x);else{var I=n(u);I!==null&&W(w,I.startTime-R)}}function x(R,I){g=!1,m&&(m=!1,h(_),_=-1),d=!0;var z=p;try{for(b(I),c=n(l);c!==null&&(!(c.expirationTime>I)||R&&!N());){var K=c.callback;if(typeof K=="function"){c.callback=null,p=c.priorityLevel;var H=K(c.expirationTime<=I);I=e.unstable_now(),typeof H=="function"?c.callback=H:c===n(l)&&r(l),b(I)}else r(l);c=n(l)}if(c!==null)var te=!0;else{var ce=n(u);ce!==null&&W(w,ce.startTime-I),te=!1}return te}finally{c=null,p=z,d=!1}}var O=!1,S=null,_=-1,E=5,k=-1;function N(){return!(e.unstable_now()-kR||125K?(R.sortIndex=z,t(u,R),n(l)===null&&R===n(u)&&(m?(h(_),_=-1):m=!0,W(w,z-K))):(R.sortIndex=H,t(l,R),g||d||(g=!0,B(x))),R},e.unstable_shouldYield=N,e.unstable_wrapCallback=function(R){var I=p;return function(){var z=p;p=I;try{return R.apply(this,arguments)}finally{p=z}}}})(__);P_.exports=__;var XC=P_.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var QC=A,yn=XC;function q(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),$m=Object.prototype.hasOwnProperty,YC=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Zb={},ex={};function JC(e){return $m.call(ex,e)?!0:$m.call(Zb,e)?!1:YC.test(e)?ex[e]=!0:(Zb[e]=!0,!1)}function ZC(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function e2(e,t,n,r){if(t===null||typeof t>"u"||ZC(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Kt(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var Et={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Et[e]=new Kt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Et[t]=new Kt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Et[e]=new Kt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Et[e]=new Kt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Et[e]=new Kt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Et[e]=new Kt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Et[e]=new Kt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Et[e]=new Kt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Et[e]=new Kt(e,5,!1,e.toLowerCase(),null,!1,!1)});var kg=/[\-:]([a-z])/g;function $g(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(kg,$g);Et[t]=new Kt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(kg,$g);Et[t]=new Kt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(kg,$g);Et[t]=new Kt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Et[e]=new Kt(e,1,!1,e.toLowerCase(),null,!1,!1)});Et.xlinkHref=new Kt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Et[e]=new Kt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Cg(e,t,n,r){var i=Et.hasOwnProperty(t)?Et[t]:null;(i!==null?i.type!==0:r||!(2s||i[o]!==a[s]){var l=` -`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=s);break}}}finally{wh=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?dl(e):""}function t2(e){switch(e.tag){case 5:return dl(e.type);case 16:return dl("Lazy");case 13:return dl("Suspense");case 19:return dl("SuspenseList");case 0:case 2:case 15:return e=Oh(e.type,!1),e;case 11:return e=Oh(e.type.render,!1),e;case 1:return e=Oh(e.type,!0),e;default:return""}}function Rm(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case no:return"Fragment";case to:return"Portal";case Cm:return"Profiler";case Ng:return"StrictMode";case Nm:return"Suspense";case Mm:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case j_:return(e.displayName||"Context")+".Consumer";case E_:return(e._context.displayName||"Context")+".Provider";case Mg:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Rg:return t=e.displayName||null,t!==null?t:Rm(e.type)||"Memo";case ti:t=e._payload,e=e._init;try{return Rm(e(t))}catch{}}return null}function n2(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Rm(t);case 8:return t===Ng?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Ni(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function k_(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function r2(e){var t=k_(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,a.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function vc(e){e._valueTracker||(e._valueTracker=r2(e))}function $_(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=k_(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function df(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Dm(e,t){var n=t.checked;return Ve({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function nx(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Ni(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function C_(e,t){t=t.checked,t!=null&&Cg(e,"checked",t,!1)}function Im(e,t){C_(e,t);var n=Ni(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Lm(e,t.type,n):t.hasOwnProperty("defaultValue")&&Lm(e,t.type,Ni(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function rx(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Lm(e,t,n){(t!=="number"||df(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var hl=Array.isArray;function xo(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=yc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Dl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var bl={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},i2=["Webkit","ms","Moz","O"];Object.keys(bl).forEach(function(e){i2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),bl[t]=bl[e]})});function D_(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||bl.hasOwnProperty(e)&&bl[e]?(""+t).trim():t+"px"}function I_(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=D_(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var a2=Ve({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function zm(e,t){if(t){if(a2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(q(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(q(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(q(61))}if(t.style!=null&&typeof t.style!="object")throw Error(q(62))}}function Um(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Wm=null;function Dg(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Hm=null,wo=null,Oo=null;function ox(e){if(e=Gu(e)){if(typeof Hm!="function")throw Error(q(280));var t=e.stateNode;t&&(t=td(t),Hm(e.stateNode,e.type,t))}}function L_(e){wo?Oo?Oo.push(e):Oo=[e]:wo=e}function F_(){if(wo){var e=wo,t=Oo;if(Oo=wo=null,ox(e),t)for(e=0;e>>=0,e===0?32:31-(v2(e)/y2|0)|0}var gc=64,bc=4194304;function ml(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function yf(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,a=e.pingedLanes,o=n&268435455;if(o!==0){var s=o&~i;s!==0?r=ml(s):(a&=o,a!==0&&(r=ml(a)))}else o=n&~i,o!==0?r=ml(o):a!==0&&(r=ml(a));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,a=t&-t,i>=a||i===16&&(a&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Ku(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Kn(t),e[t]=n}function w2(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=wl),mx=" ",vx=!1;function aA(e,t){switch(e){case"keyup":return X2.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function oA(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ro=!1;function Y2(e,t){switch(e){case"compositionend":return oA(t);case"keypress":return t.which!==32?null:(vx=!0,mx);case"textInput":return e=t.data,e===mx&&vx?null:e;default:return null}}function J2(e,t){if(ro)return e==="compositionend"||!Hg&&aA(e,t)?(e=rA(),Yc=zg=yi=null,ro=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=xx(n)}}function cA(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?cA(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function fA(){for(var e=window,t=df();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=df(e.document)}return t}function qg(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function sN(e){var t=fA(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&cA(n.ownerDocument.documentElement,n)){if(r!==null&&qg(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,a=Math.min(r.start,i);r=r.end===void 0?a:Math.min(r.end,i),!e.extend&&a>r&&(i=r,r=a,a=i),i=wx(n,a);var o=wx(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,io=null,Qm=null,Sl=null,Ym=!1;function Ox(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ym||io==null||io!==df(r)||(r=io,"selectionStart"in r&&qg(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Sl&&Ul(Sl,r)||(Sl=r,r=xf(Qm,"onSelect"),0so||(e.current=rv[so],rv[so]=null,so--)}function Me(e,t){so++,rv[so]=e.current,e.current=t}var Mi={},Dt=Di(Mi),Zt=Di(!1),Pa=Mi;function Wo(e,t){var n=e.type.contextTypes;if(!n)return Mi;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in n)i[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function en(e){return e=e.childContextTypes,e!=null}function Of(){Be(Zt),Be(Dt)}function Tx(e,t,n){if(Dt.current!==Mi)throw Error(q(168));Me(Dt,t),Me(Zt,n)}function xA(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(q(108,n2(e)||"Unknown",i));return Ve({},n,r)}function Sf(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Mi,Pa=Dt.current,Me(Dt,e),Me(Zt,Zt.current),!0}function kx(e,t,n){var r=e.stateNode;if(!r)throw Error(q(169));n?(e=xA(e,t,Pa),r.__reactInternalMemoizedMergedChildContext=e,Be(Zt),Be(Dt),Me(Dt,e)):Be(Zt),Me(Zt,n)}var Or=null,nd=!1,Dh=!1;function wA(e){Or===null?Or=[e]:Or.push(e)}function bN(e){nd=!0,wA(e)}function Ii(){if(!Dh&&Or!==null){Dh=!0;var e=0,t=Ee;try{var n=Or;for(Ee=1;e>=o,i-=o,Er=1<<32-Kn(t)+i|n<_?(E=S,S=null):E=S.sibling;var k=p(h,S,b[_],w);if(k===null){S===null&&(S=E);break}e&&S&&k.alternate===null&&t(h,S),v=a(k,v,_),O===null?x=k:O.sibling=k,O=k,S=E}if(_===b.length)return n(h,S),Ue&&Vi(h,_),x;if(S===null){for(;__?(E=S,S=null):E=S.sibling;var N=p(h,S,k.value,w);if(N===null){S===null&&(S=E);break}e&&S&&N.alternate===null&&t(h,S),v=a(N,v,_),O===null?x=N:O.sibling=N,O=N,S=E}if(k.done)return n(h,S),Ue&&Vi(h,_),x;if(S===null){for(;!k.done;_++,k=b.next())k=c(h,k.value,w),k!==null&&(v=a(k,v,_),O===null?x=k:O.sibling=k,O=k);return Ue&&Vi(h,_),x}for(S=r(h,S);!k.done;_++,k=b.next())k=d(S,h,_,k.value,w),k!==null&&(e&&k.alternate!==null&&S.delete(k.key===null?_:k.key),v=a(k,v,_),O===null?x=k:O.sibling=k,O=k);return e&&S.forEach(function($){return t(h,$)}),Ue&&Vi(h,_),x}function y(h,v,b,w){if(typeof b=="object"&&b!==null&&b.type===no&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case mc:e:{for(var x=b.key,O=v;O!==null;){if(O.key===x){if(x=b.type,x===no){if(O.tag===7){n(h,O.sibling),v=i(O,b.props.children),v.return=h,h=v;break e}}else if(O.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===ti&&Nx(x)===O.type){n(h,O.sibling),v=i(O,b.props),v.ref=Js(h,O,b),v.return=h,h=v;break e}n(h,O);break}else t(h,O);O=O.sibling}b.type===no?(v=xa(b.props.children,h.mode,w,b.key),v.return=h,h=v):(w=of(b.type,b.key,b.props,null,h.mode,w),w.ref=Js(h,v,b),w.return=h,h=w)}return o(h);case to:e:{for(O=b.key;v!==null;){if(v.key===O)if(v.tag===4&&v.stateNode.containerInfo===b.containerInfo&&v.stateNode.implementation===b.implementation){n(h,v.sibling),v=i(v,b.children||[]),v.return=h,h=v;break e}else{n(h,v);break}else t(h,v);v=v.sibling}v=Hh(b,h.mode,w),v.return=h,h=v}return o(h);case ti:return O=b._init,y(h,v,O(b._payload),w)}if(hl(b))return g(h,v,b,w);if(Vs(b))return m(h,v,b,w);Ac(h,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,v!==null&&v.tag===6?(n(h,v.sibling),v=i(v,b),v.return=h,h=v):(n(h,v),v=Wh(b,h.mode,w),v.return=h,h=v),o(h)):n(h,v)}return y}var qo=_A(!0),AA=_A(!1),Af=Di(null),Ef=null,co=null,Xg=null;function Qg(){Xg=co=Ef=null}function Yg(e){var t=Af.current;Be(Af),e._currentValue=t}function ov(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Po(e,t){Ef=e,Xg=co=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Yt=!0),e.firstContext=null)}function Cn(e){var t=e._currentValue;if(Xg!==e)if(e={context:e,memoizedValue:t,next:null},co===null){if(Ef===null)throw Error(q(308));co=e,Ef.dependencies={lanes:0,firstContext:e}}else co=co.next=e;return t}var ta=null;function Jg(e){ta===null?ta=[e]:ta.push(e)}function EA(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Jg(t)):(n.next=i.next,i.next=n),t.interleaved=n,Br(e,r)}function Br(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var ni=!1;function Zg(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function jA(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Cr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ai(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,xe&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Br(e,n)}return i=r.interleaved,i===null?(t.next=t,Jg(r)):(t.next=i.next,i.next=t),r.interleaved=t,Br(e,n)}function Zc(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Lg(e,n)}}function Mx(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function jf(e,t,n,r){var i=e.updateQueue;ni=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,u=l.next;l.next=null,o===null?a=u:o.next=u,o=l;var f=e.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==o&&(s===null?f.firstBaseUpdate=u:s.next=u,f.lastBaseUpdate=l))}if(a!==null){var c=i.baseState;o=0,f=u=l=null,s=a;do{var p=s.lane,d=s.eventTime;if((r&p)===p){f!==null&&(f=f.next={eventTime:d,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,m=s;switch(p=t,d=n,m.tag){case 1:if(g=m.payload,typeof g=="function"){c=g.call(d,c,p);break e}c=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=m.payload,p=typeof g=="function"?g.call(d,c,p):g,p==null)break e;c=Ve({},c,p);break e;case 2:ni=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[s]:p.push(s))}else d={eventTime:d,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(u=f=d,l=c):f=f.next=d,o|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(!0);if(f===null&&(l=c),i.baseState=l,i.firstBaseUpdate=u,i.lastBaseUpdate=f,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);Ea|=o,e.lanes=o,e.memoizedState=c}}function Rx(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Lh.transition;Lh.transition={};try{e(!1),t()}finally{Ee=n,Lh.transition=r}}function qA(){return Nn().memoizedState}function SN(e,t,n){var r=ji(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},KA(e))VA(t,n);else if(n=EA(e,t,n,r),n!==null){var i=Ht();Vn(n,e,r,i),GA(n,t,r)}}function PN(e,t,n){var r=ji(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(KA(e))VA(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Xn(s,o)){var l=t.interleaved;l===null?(i.next=i,Jg(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=EA(e,t,i,r),n!==null&&(i=Ht(),Vn(n,e,r,i),GA(n,t,r))}}function KA(e){var t=e.alternate;return e===Ke||t!==null&&t===Ke}function VA(e,t){Pl=kf=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function GA(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Lg(e,n)}}var $f={readContext:Cn,useCallback:jt,useContext:jt,useEffect:jt,useImperativeHandle:jt,useInsertionEffect:jt,useLayoutEffect:jt,useMemo:jt,useReducer:jt,useRef:jt,useState:jt,useDebugValue:jt,useDeferredValue:jt,useTransition:jt,useMutableSource:jt,useSyncExternalStore:jt,useId:jt,unstable_isNewReconciler:!1},_N={readContext:Cn,useCallback:function(e,t){return tr().memoizedState=[e,t===void 0?null:t],e},useContext:Cn,useEffect:Ix,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,tf(4194308,4,BA.bind(null,t,e),n)},useLayoutEffect:function(e,t){return tf(4194308,4,e,t)},useInsertionEffect:function(e,t){return tf(4,2,e,t)},useMemo:function(e,t){var n=tr();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=tr();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=SN.bind(null,Ke,e),[r.memoizedState,e]},useRef:function(e){var t=tr();return e={current:e},t.memoizedState=e},useState:Dx,useDebugValue:s0,useDeferredValue:function(e){return tr().memoizedState=e},useTransition:function(){var e=Dx(!1),t=e[0];return e=ON.bind(null,e[1]),tr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Ke,i=tr();if(Ue){if(n===void 0)throw Error(q(407));n=n()}else{if(n=t(),xt===null)throw Error(q(349));Aa&30||CA(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,Ix(MA.bind(null,r,a,e),[e]),r.flags|=2048,Ql(9,NA.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=tr(),t=xt.identifierPrefix;if(Ue){var n=jr,r=Er;n=(r&~(1<<32-Kn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Gl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[ar]=t,e[ql]=r,iE(e,t,!1,!1),t.stateNode=e;e:{switch(o=Um(n,r),n){case"dialog":De("cancel",e),De("close",e),i=r;break;case"iframe":case"object":case"embed":De("load",e),i=r;break;case"video":case"audio":for(i=0;iGo&&(t.flags|=128,r=!0,Zs(a,!1),t.lanes=4194304)}else{if(!r)if(e=Tf(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Zs(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!Ue)return Tt(t),null}else 2*Ze()-a.renderingStartTime>Go&&n!==1073741824&&(t.flags|=128,r=!0,Zs(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(n=a.last,n!==null?n.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Ze(),t.sibling=null,n=qe.current,Me(qe,r?n&1|2:n&1),t):(Tt(t),null);case 22:case 23:return d0(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?sn&1073741824&&(Tt(t),t.subtreeFlags&6&&(t.flags|=8192)):Tt(t),null;case 24:return null;case 25:return null}throw Error(q(156,t.tag))}function NN(e,t){switch(Vg(t),t.tag){case 1:return en(t.type)&&Of(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ko(),Be(Zt),Be(Dt),n0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return t0(t),null;case 13:if(Be(qe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(q(340));Ho()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Be(qe),null;case 4:return Ko(),null;case 10:return Yg(t.type._context),null;case 22:case 23:return d0(),null;case 24:return null;default:return null}}var jc=!1,Nt=!1,MN=typeof WeakSet=="function"?WeakSet:Set,J=null;function fo(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Qe(e,t,r)}else n.current=null}function mv(e,t,n){try{n()}catch(r){Qe(e,t,r)}}var Gx=!1;function RN(e,t){if(Jm=gf,e=fA(),qg(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var o=0,s=-1,l=-1,u=0,f=0,c=e,p=null;t:for(;;){for(var d;c!==n||i!==0&&c.nodeType!==3||(s=o+i),c!==a||r!==0&&c.nodeType!==3||(l=o+r),c.nodeType===3&&(o+=c.nodeValue.length),(d=c.firstChild)!==null;)p=c,c=d;for(;;){if(c===e)break t;if(p===n&&++u===i&&(s=o),p===a&&++f===r&&(l=o),(d=c.nextSibling)!==null)break;c=p,p=c.parentNode}c=d}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Zm={focusedElem:e,selectionRange:n},gf=!1,J=t;J!==null;)if(t=J,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,J=e;else for(;J!==null;){t=J;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var m=g.memoizedProps,y=g.memoizedState,h=t.stateNode,v=h.getSnapshotBeforeUpdate(t.elementType===t.type?m:Fn(t.type,m),y);h.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(q(163))}}catch(w){Qe(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,J=e;break}J=t.return}return g=Gx,Gx=!1,g}function _l(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&mv(t,n,a)}i=i.next}while(i!==r)}}function ad(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function vv(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function sE(e){var t=e.alternate;t!==null&&(e.alternate=null,sE(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ar],delete t[ql],delete t[nv],delete t[yN],delete t[gN])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function lE(e){return e.tag===5||e.tag===3||e.tag===4}function Xx(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||lE(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function yv(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=wf));else if(r!==4&&(e=e.child,e!==null))for(yv(e,t,n),e=e.sibling;e!==null;)yv(e,t,n),e=e.sibling}function gv(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(gv(e,t,n),e=e.sibling;e!==null;)gv(e,t,n),e=e.sibling}var Pt=null,zn=!1;function Jr(e,t,n){for(n=n.child;n!==null;)uE(e,t,n),n=n.sibling}function uE(e,t,n){if(ur&&typeof ur.onCommitFiberUnmount=="function")try{ur.onCommitFiberUnmount(Yp,n)}catch{}switch(n.tag){case 5:Nt||fo(n,t);case 6:var r=Pt,i=zn;Pt=null,Jr(e,t,n),Pt=r,zn=i,Pt!==null&&(zn?(e=Pt,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Pt.removeChild(n.stateNode));break;case 18:Pt!==null&&(zn?(e=Pt,n=n.stateNode,e.nodeType===8?Rh(e.parentNode,n):e.nodeType===1&&Rh(e,n),Bl(e)):Rh(Pt,n.stateNode));break;case 4:r=Pt,i=zn,Pt=n.stateNode.containerInfo,zn=!0,Jr(e,t,n),Pt=r,zn=i;break;case 0:case 11:case 14:case 15:if(!Nt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&mv(n,t,o),i=i.next}while(i!==r)}Jr(e,t,n);break;case 1:if(!Nt&&(fo(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Qe(n,t,s)}Jr(e,t,n);break;case 21:Jr(e,t,n);break;case 22:n.mode&1?(Nt=(r=Nt)||n.memoizedState!==null,Jr(e,t,n),Nt=r):Jr(e,t,n);break;default:Jr(e,t,n)}}function Qx(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new MN),t.forEach(function(r){var i=HN.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function In(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~a}if(r=i,r=Ze()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*IN(r/1960))-r,10e?16:e,gi===null)var r=!1;else{if(e=gi,gi=null,Mf=0,xe&6)throw Error(q(331));var i=xe;for(xe|=4,J=e.current;J!==null;){var a=J,o=a.child;if(J.flags&16){var s=a.deletions;if(s!==null){for(var l=0;lZe()-f0?ba(e,0):c0|=n),tn(e,t)}function yE(e,t){t===0&&(e.mode&1?(t=bc,bc<<=1,!(bc&130023424)&&(bc=4194304)):t=1);var n=Ht();e=Br(e,t),e!==null&&(Ku(e,t,n),tn(e,n))}function WN(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),yE(e,n)}function HN(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(q(314))}r!==null&&r.delete(t),yE(e,n)}var gE;gE=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Zt.current)Yt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Yt=!1,$N(e,t,n);Yt=!!(e.flags&131072)}else Yt=!1,Ue&&t.flags&1048576&&OA(t,_f,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;nf(e,t),e=t.pendingProps;var i=Wo(t,Dt.current);Po(t,n),i=i0(null,t,r,e,i,n);var a=a0();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,en(r)?(a=!0,Sf(t)):a=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Zg(t),i.updater=id,t.stateNode=i,i._reactInternals=t,lv(t,r,e,n),t=fv(null,t,r,!0,a,n)):(t.tag=0,Ue&&a&&Kg(t),Ft(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(nf(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=KN(r),e=Fn(r,e),i){case 0:t=cv(null,t,r,e,n);break e;case 1:t=qx(null,t,r,e,n);break e;case 11:t=Wx(null,t,r,e,n);break e;case 14:t=Hx(null,t,r,Fn(r.type,e),n);break e}throw Error(q(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Fn(r,i),cv(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Fn(r,i),qx(e,t,r,i,n);case 3:e:{if(tE(t),e===null)throw Error(q(387));r=t.pendingProps,a=t.memoizedState,i=a.element,jA(e,t),jf(t,r,null,n);var o=t.memoizedState;if(r=o.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){i=Vo(Error(q(423)),t),t=Kx(e,t,r,n,i);break e}else if(r!==i){i=Vo(Error(q(424)),t),t=Kx(e,t,r,n,i);break e}else for(dn=_i(t.stateNode.containerInfo.firstChild),hn=t,Ue=!0,Hn=null,n=AA(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Ho(),r===i){t=zr(e,t,n);break e}Ft(e,t,r,n)}t=t.child}return t;case 5:return TA(t),e===null&&av(t),r=t.type,i=t.pendingProps,a=e!==null?e.memoizedProps:null,o=i.children,ev(r,i)?o=null:a!==null&&ev(r,a)&&(t.flags|=32),eE(e,t),Ft(e,t,o,n),t.child;case 6:return e===null&&av(t),null;case 13:return nE(e,t,n);case 4:return e0(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=qo(t,null,r,n):Ft(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Fn(r,i),Wx(e,t,r,i,n);case 7:return Ft(e,t,t.pendingProps,n),t.child;case 8:return Ft(e,t,t.pendingProps.children,n),t.child;case 12:return Ft(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,a=t.memoizedProps,o=i.value,Me(Af,r._currentValue),r._currentValue=o,a!==null)if(Xn(a.value,o)){if(a.children===i.children&&!Zt.current){t=zr(e,t,n);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var s=a.dependencies;if(s!==null){o=a.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(a.tag===1){l=Cr(-1,n&-n),l.tag=2;var u=a.updateQueue;if(u!==null){u=u.shared;var f=u.pending;f===null?l.next=l:(l.next=f.next,f.next=l),u.pending=l}}a.lanes|=n,l=a.alternate,l!==null&&(l.lanes|=n),ov(a.return,n,t),s.lanes|=n;break}l=l.next}}else if(a.tag===10)o=a.type===t.type?null:a.child;else if(a.tag===18){if(o=a.return,o===null)throw Error(q(341));o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),ov(o,n,t),o=a.sibling}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===t){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}Ft(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Po(t,n),i=Cn(i),r=r(i),t.flags|=1,Ft(e,t,r,n),t.child;case 14:return r=t.type,i=Fn(r,t.pendingProps),i=Fn(r.type,i),Hx(e,t,r,i,n);case 15:return JA(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Fn(r,i),nf(e,t),t.tag=1,en(r)?(e=!0,Sf(t)):e=!1,Po(t,n),XA(t,r,i),lv(t,r,i,n),fv(null,t,r,!0,e,n);case 19:return rE(e,t,n);case 22:return ZA(e,t,n)}throw Error(q(156,t.tag))};function bE(e,t){return K_(e,t)}function qN(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Tn(e,t,n,r){return new qN(e,t,n,r)}function m0(e){return e=e.prototype,!(!e||!e.isReactComponent)}function KN(e){if(typeof e=="function")return m0(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Mg)return 11;if(e===Rg)return 14}return 2}function Ti(e,t){var n=e.alternate;return n===null?(n=Tn(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function of(e,t,n,r,i,a){var o=2;if(r=e,typeof e=="function")m0(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case no:return xa(n.children,i,a,t);case Ng:o=8,i|=8;break;case Cm:return e=Tn(12,n,t,i|2),e.elementType=Cm,e.lanes=a,e;case Nm:return e=Tn(13,n,t,i),e.elementType=Nm,e.lanes=a,e;case Mm:return e=Tn(19,n,t,i),e.elementType=Mm,e.lanes=a,e;case T_:return sd(n,i,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case E_:o=10;break e;case j_:o=9;break e;case Mg:o=11;break e;case Rg:o=14;break e;case ti:o=16,r=null;break e}throw Error(q(130,e==null?e:typeof e,""))}return t=Tn(o,n,t,i),t.elementType=e,t.type=r,t.lanes=a,t}function xa(e,t,n,r){return e=Tn(7,e,r,t),e.lanes=n,e}function sd(e,t,n,r){return e=Tn(22,e,r,t),e.elementType=T_,e.lanes=n,e.stateNode={isHidden:!1},e}function Wh(e,t,n){return e=Tn(6,e,null,t),e.lanes=n,e}function Hh(e,t,n){return t=Tn(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function VN(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ph(0),this.expirationTimes=Ph(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ph(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function v0(e,t,n,r,i,a,o,s,l){return e=new VN(e,t,n,s,l),t===1?(t=1,a===!0&&(t|=8)):t=0,a=Tn(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Zg(a),e}function GN(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(SE)}catch(e){console.error(e)}}SE(),S_.exports=gn;var ZN=S_.exports,iw=ZN;km.createRoot=iw.createRoot,km.hydrateRoot=iw.hydrateRoot;var As=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},ca,li,To,t_,eM=(t_=class extends As{constructor(){super();ne(this,ca);ne(this,li);ne(this,To);Y(this,To,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){j(this,li)||this.setEventListener(j(this,To))}onUnsubscribe(){var t;this.hasListeners()||((t=j(this,li))==null||t.call(this),Y(this,li,void 0))}setEventListener(t){var n;Y(this,To,t),(n=j(this,li))==null||n.call(this),Y(this,li,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){j(this,ca)!==t&&(Y(this,ca,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof j(this,ca)=="boolean"?j(this,ca):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},ca=new WeakMap,li=new WeakMap,To=new WeakMap,t_),x0=new eM,tM={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},ui,_g,n_,nM=(n_=class{constructor(){ne(this,ui,tM);ne(this,_g,!1)}setTimeoutProvider(e){Y(this,ui,e)}setTimeout(e,t){return j(this,ui).setTimeout(e,t)}clearTimeout(e){j(this,ui).clearTimeout(e)}setInterval(e,t){return j(this,ui).setInterval(e,t)}clearInterval(e){j(this,ui).clearInterval(e)}},ui=new WeakMap,_g=new WeakMap,n_),ra=new nM;function rM(e){setTimeout(e,0)}var iM=typeof window>"u"||"Deno"in globalThis;function Bt(){}function aM(e,t){return typeof e=="function"?e(t):e}function Sv(e){return typeof e=="number"&&e>=0&&e!==1/0}function PE(e,t){return Math.max(e+(t||0)-Date.now(),0)}function ki(e,t){return typeof e=="function"?e(t):e}function cn(e,t){return typeof e=="function"?e(t):e}function aw(e,t){const{type:n="all",exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==w0(o,t.options))return!1}else if(!Jl(t.queryKey,o))return!1}if(n!=="all"){const l=t.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function ow(e,t){const{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(Ta(t.options.mutationKey)!==Ta(a))return!1}else if(!Jl(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function w0(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ta)(e)}function Ta(e){return JSON.stringify(e,(t,n)=>Pv(n)?Object.keys(n).sort().reduce((r,i)=>(r[i]=n[i],r),{}):n)}function Jl(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Jl(e[n],t[n])):!1}var oM=Object.prototype.hasOwnProperty;function _E(e,t,n=0){if(e===t)return e;if(n>500)return t;const r=sw(e)&&sw(t);if(!r&&!(Pv(e)&&Pv(t)))return t;const a=(r?e:Object.keys(e)).length,o=r?t:Object.keys(t),s=o.length,l=r?new Array(s):{};let u=0;for(let f=0;f{ra.setTimeout(t,e)})}function _v(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?_E(e,t):t}function lM(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function uM(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var O0=Symbol();function AE(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===O0?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function S0(e,t){return typeof e=="function"?e(...t):!!e}function cM(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??(i=t()),r||(r=!0,i.aborted?n():i.addEventListener("abort",n,{once:!0})),i)}),e}var Zl=(()=>{let e=()=>iM;return{isServer(){return e()},setIsServer(t){e=t}}})();function Av(){let e,t;const n=new Promise((i,a)=>{e=i,t=a});n.status="pending",n.catch(()=>{});function r(i){Object.assign(n,i),delete n.resolve,delete n.reject}return n.resolve=i=>{r({status:"fulfilled",value:i}),e(i)},n.reject=i=>{r({status:"rejected",reason:i}),t(i)},n}var fM=rM;function pM(){let e=[],t=0,n=s=>{s()},r=s=>{s()},i=fM;const a=s=>{t?e.push(s):i(()=>{n(s)})},o=()=>{const s=e;e=[],s.length&&i(()=>{r(()=>{s.forEach(l=>{n(l)})})})};return{batch:s=>{let l;t++;try{l=s()}finally{t--,t||o()}return l},batchCalls:s=>(...l)=>{a(()=>{s(...l)})},schedule:a,setNotifyFunction:s=>{n=s},setBatchNotifyFunction:s=>{r=s},setScheduler:s=>{i=s}}}var ut=pM(),ko,ci,$o,r_,dM=(r_=class extends As{constructor(){super();ne(this,ko,!0);ne(this,ci);ne(this,$o);Y(this,$o,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){j(this,ci)||this.setEventListener(j(this,$o))}onUnsubscribe(){var t;this.hasListeners()||((t=j(this,ci))==null||t.call(this),Y(this,ci,void 0))}setEventListener(t){var n;Y(this,$o,t),(n=j(this,ci))==null||n.call(this),Y(this,ci,t(this.setOnline.bind(this)))}setOnline(t){j(this,ko)!==t&&(Y(this,ko,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return j(this,ko)}},ko=new WeakMap,ci=new WeakMap,$o=new WeakMap,r_),Lf=new dM;function hM(e){return Math.min(1e3*2**e,3e4)}function EE(e){return(e??"online")==="online"?Lf.isOnline():!0}var Ev=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function jE(e){let t=!1,n=0,r;const i=Av(),a=()=>i.status!=="pending",o=m=>{var y;if(!a()){const h=new Ev(m);p(h),(y=e.onCancel)==null||y.call(e,h)}},s=()=>{t=!0},l=()=>{t=!1},u=()=>x0.isFocused()&&(e.networkMode==="always"||Lf.isOnline())&&e.canRun(),f=()=>EE(e.networkMode)&&e.canRun(),c=m=>{a()||(r==null||r(),i.resolve(m))},p=m=>{a()||(r==null||r(),i.reject(m))},d=()=>new Promise(m=>{var y;r=h=>{(a()||u())&&m(h)},(y=e.onPause)==null||y.call(e)}).then(()=>{var m;r=void 0,a()||(m=e.onContinue)==null||m.call(e)}),g=()=>{if(a())return;let m;const y=n===0?e.initialPromise:void 0;try{m=y??e.fn()}catch(h){m=Promise.reject(h)}Promise.resolve(m).then(c).catch(h=>{var O;if(a())return;const v=e.retry??(Zl.isServer()?0:3),b=e.retryDelay??hM,w=typeof b=="function"?b(n,h):b,x=v===!0||typeof v=="number"&&nu()?void 0:d()).then(()=>{t?p(h):g()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r==null||r(),i),cancelRetry:s,continueRetry:l,canStart:f,start:()=>(f()?g():d().then(g),i)}}var fa,i_,TE=(i_=class{constructor(){ne(this,fa)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Sv(this.gcTime)&&Y(this,fa,ra.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Zl.isServer()?1/0:5*60*1e3))}clearGcTimeout(){j(this,fa)!==void 0&&(ra.clearTimeout(j(this,fa)),Y(this,fa,void 0))}},fa=new WeakMap,i_);function mM(e){return{onFetch:(t,n)=>{var f,c,p,d,g;const r=t.options,i=(p=(c=(f=t.fetchOptions)==null?void 0:f.meta)==null?void 0:c.fetchMore)==null?void 0:p.direction,a=((d=t.state.data)==null?void 0:d.pages)||[],o=((g=t.state.data)==null?void 0:g.pageParams)||[];let s={pages:[],pageParams:[]},l=0;const u=async()=>{let m=!1;const y=b=>{cM(b,()=>t.signal,()=>m=!0)},h=AE(t.options,t.fetchOptions),v=async(b,w,x)=>{if(m)return Promise.reject(t.signal.reason);if(w==null&&b.pages.length)return Promise.resolve(b);const S=(()=>{const N={client:t.client,queryKey:t.queryKey,pageParam:w,direction:x?"backward":"forward",meta:t.options.meta};return y(N),N})(),_=await h(S),{maxPages:E}=t.options,k=x?uM:lM;return{pages:k(b.pages,_,E),pageParams:k(b.pageParams,w,E)}};if(i&&a.length){const b=i==="backward",w=b?vM:uw,x={pages:a,pageParams:o},O=w(r,x);s=await v(x,O,b)}else{const b=e??a.length;do{const w=l===0?o[0]??r.initialPageParam:uw(r,s);if(l>0&&w==null)break;s=await v(s,w),l++}while(l{var m,y;return(y=(m=t.options).persister)==null?void 0:y.call(m,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=u}}}function uw(e,{pages:t,pageParams:n}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function vM(e,{pages:t,pageParams:n}){var r;return t.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n):void 0}var Co,pa,No,Pn,da,vt,Bu,ha,un,kE,br,a_,yM=(a_=class extends TE{constructor(t){super();ne(this,un);ne(this,Co);ne(this,pa);ne(this,No);ne(this,Pn);ne(this,da);ne(this,vt);ne(this,Bu);ne(this,ha);Y(this,ha,!1),Y(this,Bu,t.defaultOptions),this.setOptions(t.options),this.observers=[],Y(this,da,t.client),Y(this,Pn,j(this,da).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,Y(this,pa,fw(this.options)),this.state=t.state??j(this,pa),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return j(this,Co)}get promise(){var t;return(t=j(this,vt))==null?void 0:t.promise}setOptions(t){if(this.options={...j(this,Bu),...t},t!=null&&t._type&&Y(this,Co,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=fw(this.options);n.data!==void 0&&(this.setState(cw(n.data,n.dataUpdatedAt)),Y(this,pa,n))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&j(this,Pn).remove(this)}setData(t,n){const r=_v(this.state.data,t,this.options);return de(this,un,br).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t){de(this,un,br).call(this,{type:"setState",state:t})}cancel(t){var r,i;const n=(r=j(this,vt))==null?void 0:r.promise;return(i=j(this,vt))==null||i.cancel(t),n?n.then(Bt).catch(Bt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return j(this,pa)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>cn(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===O0||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>ki(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!PE(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=j(this,vt))==null||n.continue()}onOnline(){var n;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=j(this,vt))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),j(this,Pn).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(j(this,vt)&&(j(this,ha)||de(this,un,kE).call(this)?j(this,vt).cancel({revert:!0}):j(this,vt).cancelRetry()),this.scheduleGc()),j(this,Pn).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||de(this,un,br).call(this,{type:"invalidate"})}async fetch(t,n){var u,f,c,p,d,g,m,y,h,v,b;if(this.state.fetchStatus!=="idle"&&((u=j(this,vt))==null?void 0:u.status())!=="rejected"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(j(this,vt))return j(this,vt).continueRetry(),j(this,vt).promise}if(t&&this.setOptions(t),!this.options.queryFn){const w=this.observers.find(x=>x.options.queryFn);w&&this.setOptions(w.options)}const r=new AbortController,i=w=>{Object.defineProperty(w,"signal",{enumerable:!0,get:()=>(Y(this,ha,!0),r.signal)})},a=()=>{const w=AE(this.options,n),O=(()=>{const S={client:j(this,da),queryKey:this.queryKey,meta:this.meta};return i(S),S})();return Y(this,ha,!1),this.options.persister?this.options.persister(w,O,this):w(O)},s=(()=>{const w={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:j(this,da),state:this.state,fetchFn:a};return i(w),w})(),l=j(this,Co)==="infinite"?mM(this.options.pages):this.options.behavior;l==null||l.onFetch(s,this),Y(this,No,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((f=s.fetchOptions)==null?void 0:f.meta))&&de(this,un,br).call(this,{type:"fetch",meta:(c=s.fetchOptions)==null?void 0:c.meta}),Y(this,vt,jE({initialPromise:n==null?void 0:n.initialPromise,fn:s.fetchFn,onCancel:w=>{w instanceof Ev&&w.revert&&this.setState({...j(this,No),fetchStatus:"idle"}),r.abort()},onFail:(w,x)=>{de(this,un,br).call(this,{type:"failed",failureCount:w,error:x})},onPause:()=>{de(this,un,br).call(this,{type:"pause"})},onContinue:()=>{de(this,un,br).call(this,{type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode,canRun:()=>!0}));try{const w=await j(this,vt).start();if(w===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(w),(d=(p=j(this,Pn).config).onSuccess)==null||d.call(p,w,this),(m=(g=j(this,Pn).config).onSettled)==null||m.call(g,w,this.state.error,this),w}catch(w){if(w instanceof Ev){if(w.silent)return j(this,vt).promise;if(w.revert){if(this.state.data===void 0)throw w;return this.state.data}}throw de(this,un,br).call(this,{type:"error",error:w}),(h=(y=j(this,Pn).config).onError)==null||h.call(y,w,this),(b=(v=j(this,Pn).config).onSettled)==null||b.call(v,this.state.data,w,this),w}finally{this.scheduleGc()}}},Co=new WeakMap,pa=new WeakMap,No=new WeakMap,Pn=new WeakMap,da=new WeakMap,vt=new WeakMap,Bu=new WeakMap,ha=new WeakMap,un=new WeakSet,kE=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},br=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...$E(r.data,this.options),fetchMeta:t.meta??null};case"success":const i={...r,...cw(t.data,t.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return Y(this,No,t.manual?i:void 0),i;case"error":const a=t.error;return{...r,error:a,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),ut.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),j(this,Pn).notify({query:this,type:"updated",action:t})})},a_);function $E(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:EE(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function cw(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function fw(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Gt,ge,zu,Lt,ma,Mo,Sr,fi,Uu,Ro,Do,va,ya,pi,Io,Ae,yl,jv,Tv,kv,$v,Cv,Nv,Mv,CE,o_,gM=(o_=class extends As{constructor(t,n){super();ne(this,Ae);ne(this,Gt);ne(this,ge);ne(this,zu);ne(this,Lt);ne(this,ma);ne(this,Mo);ne(this,Sr);ne(this,fi);ne(this,Uu);ne(this,Ro);ne(this,Do);ne(this,va);ne(this,ya);ne(this,pi);ne(this,Io,new Set);this.options=n,Y(this,Gt,t),Y(this,fi,null),Y(this,Sr,Av()),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(j(this,ge).addObserver(this),pw(j(this,ge),this.options)?de(this,Ae,yl).call(this):this.updateResult(),de(this,Ae,$v).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Rv(j(this,ge),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Rv(j(this,ge),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,de(this,Ae,Cv).call(this),de(this,Ae,Nv).call(this),j(this,ge).removeObserver(this)}setOptions(t){const n=this.options,r=j(this,ge);if(this.options=j(this,Gt).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof cn(this.options.enabled,j(this,ge))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");de(this,Ae,Mv).call(this),j(this,ge).setOptions(this.options),n._defaulted&&!If(this.options,n)&&j(this,Gt).getQueryCache().notify({type:"observerOptionsUpdated",query:j(this,ge),observer:this});const i=this.hasListeners();i&&dw(j(this,ge),r,this.options,n)&&de(this,Ae,yl).call(this),this.updateResult(),i&&(j(this,ge)!==r||cn(this.options.enabled,j(this,ge))!==cn(n.enabled,j(this,ge))||ki(this.options.staleTime,j(this,ge))!==ki(n.staleTime,j(this,ge)))&&de(this,Ae,jv).call(this);const a=de(this,Ae,Tv).call(this);i&&(j(this,ge)!==r||cn(this.options.enabled,j(this,ge))!==cn(n.enabled,j(this,ge))||a!==j(this,pi))&&de(this,Ae,kv).call(this,a)}getOptimisticResult(t){const n=j(this,Gt).getQueryCache().build(j(this,Gt),t),r=this.createResult(n,t);return xM(this,r)&&(Y(this,Lt,r),Y(this,Mo,this.options),Y(this,ma,j(this,ge).state)),r}getCurrentResult(){return j(this,Lt)}trackResult(t,n){return new Proxy(t,{get:(r,i)=>(this.trackProp(i),n==null||n(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&j(this,Sr).status==="pending"&&j(this,Sr).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(r,i))})}trackProp(t){j(this,Io).add(t)}getCurrentQuery(){return j(this,ge)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=j(this,Gt).defaultQueryOptions(t),r=j(this,Gt).getQueryCache().build(j(this,Gt),n);return r.fetch().then(()=>this.createResult(r,n))}fetch(t){return de(this,Ae,yl).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),j(this,Lt)))}createResult(t,n){var E;const r=j(this,ge),i=this.options,a=j(this,Lt),o=j(this,ma),s=j(this,Mo),u=t!==r?t.state:j(this,zu),{state:f}=t;let c={...f},p=!1,d;if(n._optimisticResults){const k=this.hasListeners(),N=!k&&pw(t,n),$=k&&dw(t,r,n,i);(N||$)&&(c={...c,...$E(f.data,t.options)}),n._optimisticResults==="isRestoring"&&(c.fetchStatus="idle")}let{error:g,errorUpdatedAt:m,status:y}=c;d=c.data;let h=!1;if(n.placeholderData!==void 0&&d===void 0&&y==="pending"){let k;a!=null&&a.isPlaceholderData&&n.placeholderData===(s==null?void 0:s.placeholderData)?(k=a.data,h=!0):k=typeof n.placeholderData=="function"?n.placeholderData((E=j(this,Do))==null?void 0:E.state.data,j(this,Do)):n.placeholderData,k!==void 0&&(y="success",d=_v(a==null?void 0:a.data,k,n),p=!0)}if(n.select&&d!==void 0&&!h)if(a&&d===(o==null?void 0:o.data)&&n.select===j(this,Uu))d=j(this,Ro);else try{Y(this,Uu,n.select),d=n.select(d),d=_v(a==null?void 0:a.data,d,n),Y(this,Ro,d),Y(this,fi,null)}catch(k){Y(this,fi,k)}j(this,fi)&&(g=j(this,fi),d=j(this,Ro),m=Date.now(),y="error");const v=c.fetchStatus==="fetching",b=y==="pending",w=y==="error",x=b&&v,O=d!==void 0,_={status:y,fetchStatus:c.fetchStatus,isPending:b,isSuccess:y==="success",isError:w,isInitialLoading:x,isLoading:x,data:d,dataUpdatedAt:c.dataUpdatedAt,error:g,errorUpdatedAt:m,failureCount:c.fetchFailureCount,failureReason:c.fetchFailureReason,errorUpdateCount:c.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:c.dataUpdateCount>u.dataUpdateCount||c.errorUpdateCount>u.errorUpdateCount,isFetching:v,isRefetching:v&&!b,isLoadingError:w&&!O,isPaused:c.fetchStatus==="paused",isPlaceholderData:p,isRefetchError:w&&O,isStale:P0(t,n),refetch:this.refetch,promise:j(this,Sr),isEnabled:cn(n.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const k=_.data!==void 0,N=_.status==="error"&&!k,$=D=>{N?D.reject(_.error):k&&D.resolve(_.data)},L=()=>{const D=Y(this,Sr,_.promise=Av());$(D)},M=j(this,Sr);switch(M.status){case"pending":t.queryHash===r.queryHash&&$(M);break;case"fulfilled":(N||_.data!==M.value)&&L();break;case"rejected":(!N||_.error!==M.reason)&&L();break}}return _}updateResult(){const t=j(this,Lt),n=this.createResult(j(this,ge),this.options);if(Y(this,ma,j(this,ge).state),Y(this,Mo,this.options),j(this,ma).data!==void 0&&Y(this,Do,j(this,ge)),If(n,t))return;Y(this,Lt,n);const r=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,a=typeof i=="function"?i():i;if(a==="all"||!a&&!j(this,Io).size)return!0;const o=new Set(a??j(this,Io));return this.options.throwOnError&&o.add("error"),Object.keys(j(this,Lt)).some(s=>{const l=s;return j(this,Lt)[l]!==t[l]&&o.has(l)})};de(this,Ae,CE).call(this,{listeners:r()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&de(this,Ae,$v).call(this)}},Gt=new WeakMap,ge=new WeakMap,zu=new WeakMap,Lt=new WeakMap,ma=new WeakMap,Mo=new WeakMap,Sr=new WeakMap,fi=new WeakMap,Uu=new WeakMap,Ro=new WeakMap,Do=new WeakMap,va=new WeakMap,ya=new WeakMap,pi=new WeakMap,Io=new WeakMap,Ae=new WeakSet,yl=function(t){de(this,Ae,Mv).call(this);let n=j(this,ge).fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(Bt)),n},jv=function(){de(this,Ae,Cv).call(this);const t=ki(this.options.staleTime,j(this,ge));if(Zl.isServer()||j(this,Lt).isStale||!Sv(t))return;const r=PE(j(this,Lt).dataUpdatedAt,t)+1;Y(this,va,ra.setTimeout(()=>{j(this,Lt).isStale||this.updateResult()},r))},Tv=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(j(this,ge)):this.options.refetchInterval)??!1},kv=function(t){de(this,Ae,Nv).call(this),Y(this,pi,t),!(Zl.isServer()||cn(this.options.enabled,j(this,ge))===!1||!Sv(j(this,pi))||j(this,pi)===0)&&Y(this,ya,ra.setInterval(()=>{(this.options.refetchIntervalInBackground||x0.isFocused())&&de(this,Ae,yl).call(this)},j(this,pi)))},$v=function(){de(this,Ae,jv).call(this),de(this,Ae,kv).call(this,de(this,Ae,Tv).call(this))},Cv=function(){j(this,va)!==void 0&&(ra.clearTimeout(j(this,va)),Y(this,va,void 0))},Nv=function(){j(this,ya)!==void 0&&(ra.clearInterval(j(this,ya)),Y(this,ya,void 0))},Mv=function(){const t=j(this,Gt).getQueryCache().build(j(this,Gt),this.options);if(t===j(this,ge))return;const n=j(this,ge);Y(this,ge,t),Y(this,zu,t.state),this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))},CE=function(t){ut.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(j(this,Lt))}),j(this,Gt).getQueryCache().notify({query:j(this,ge),type:"observerResultsUpdated"})})},o_);function bM(e,t){return cn(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&cn(t.retryOnMount,e)===!1)}function pw(e,t){return bM(e,t)||e.state.data!==void 0&&Rv(e,t,t.refetchOnMount)}function Rv(e,t,n){if(cn(t.enabled,e)!==!1&&ki(t.staleTime,e)!=="static"){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&P0(e,t)}return!1}function dw(e,t,n,r){return(e!==t||cn(r.enabled,e)===!1)&&(!n.suspense||e.state.status!=="error")&&P0(e,n)}function P0(e,t){return cn(t.enabled,e)!==!1&&e.isStaleByTime(ki(t.staleTime,e))}function xM(e,t){return!If(e.getCurrentResult(),t)}var Wu,nr,$t,ga,rr,ei,s_,wM=(s_=class extends TE{constructor(t){super();ne(this,rr);ne(this,Wu);ne(this,nr);ne(this,$t);ne(this,ga);Y(this,Wu,t.client),this.mutationId=t.mutationId,Y(this,$t,t.mutationCache),Y(this,nr,[]),this.state=t.state||NE(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){j(this,nr).includes(t)||(j(this,nr).push(t),this.clearGcTimeout(),j(this,$t).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){Y(this,nr,j(this,nr).filter(n=>n!==t)),this.scheduleGc(),j(this,$t).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){j(this,nr).length||(this.state.status==="pending"?this.scheduleGc():j(this,$t).remove(this))}continue(){var t;return((t=j(this,ga))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var o,s,l,u,f,c,p,d,g,m,y,h,v,b,w,x,O,S;const n=()=>{de(this,rr,ei).call(this,{type:"continue"})},r={client:j(this,Wu),meta:this.options.meta,mutationKey:this.options.mutationKey};Y(this,ga,jE({fn:()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(new Error("No mutationFn found")),onFail:(_,E)=>{de(this,rr,ei).call(this,{type:"failed",failureCount:_,error:E})},onPause:()=>{de(this,rr,ei).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>j(this,$t).canRun(this)}));const i=this.state.status==="pending",a=!j(this,ga).canStart();try{if(i)n();else{de(this,rr,ei).call(this,{type:"pending",variables:t,isPaused:a}),j(this,$t).config.onMutate&&await j(this,$t).config.onMutate(t,this,r);const E=await((s=(o=this.options).onMutate)==null?void 0:s.call(o,t,r));E!==this.state.context&&de(this,rr,ei).call(this,{type:"pending",context:E,variables:t,isPaused:a})}const _=await j(this,ga).start();return await((u=(l=j(this,$t).config).onSuccess)==null?void 0:u.call(l,_,t,this.state.context,this,r)),await((c=(f=this.options).onSuccess)==null?void 0:c.call(f,_,t,this.state.context,r)),await((d=(p=j(this,$t).config).onSettled)==null?void 0:d.call(p,_,null,this.state.variables,this.state.context,this,r)),await((m=(g=this.options).onSettled)==null?void 0:m.call(g,_,null,t,this.state.context,r)),de(this,rr,ei).call(this,{type:"success",data:_}),_}catch(_){try{await((h=(y=j(this,$t).config).onError)==null?void 0:h.call(y,_,t,this.state.context,this,r))}catch(E){Promise.reject(E)}try{await((b=(v=this.options).onError)==null?void 0:b.call(v,_,t,this.state.context,r))}catch(E){Promise.reject(E)}try{await((x=(w=j(this,$t).config).onSettled)==null?void 0:x.call(w,void 0,_,this.state.variables,this.state.context,this,r))}catch(E){Promise.reject(E)}try{await((S=(O=this.options).onSettled)==null?void 0:S.call(O,void 0,_,t,this.state.context,r))}catch(E){Promise.reject(E)}throw de(this,rr,ei).call(this,{type:"error",error:_}),_}finally{j(this,$t).runNext(this)}}},Wu=new WeakMap,nr=new WeakMap,$t=new WeakMap,ga=new WeakMap,rr=new WeakSet,ei=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),ut.batch(()=>{j(this,nr).forEach(r=>{r.onMutationUpdate(t)}),j(this,$t).notify({mutation:this,type:"updated",action:t})})},s_);function NE(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Pr,Bn,Hu,l_,OM=(l_=class extends As{constructor(t={}){super();ne(this,Pr);ne(this,Bn);ne(this,Hu);this.config=t,Y(this,Pr,new Set),Y(this,Bn,new Map),Y(this,Hu,0)}build(t,n,r){const i=new wM({client:t,mutationCache:this,mutationId:++pc(this,Hu)._,options:t.defaultMutationOptions(n),state:r});return this.add(i),i}add(t){j(this,Pr).add(t);const n=$c(t);if(typeof n=="string"){const r=j(this,Bn).get(n);r?r.push(t):j(this,Bn).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(j(this,Pr).delete(t)){const n=$c(t);if(typeof n=="string"){const r=j(this,Bn).get(n);if(r)if(r.length>1){const i=r.indexOf(t);i!==-1&&r.splice(i,1)}else r[0]===t&&j(this,Bn).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=$c(t);if(typeof n=="string"){const r=j(this,Bn).get(n),i=r==null?void 0:r.find(a=>a.state.status==="pending");return!i||i===t}else return!0}runNext(t){var r;const n=$c(t);if(typeof n=="string"){const i=(r=j(this,Bn).get(n))==null?void 0:r.find(a=>a!==t&&a.state.isPaused);return(i==null?void 0:i.continue())??Promise.resolve()}else return Promise.resolve()}clear(){ut.batch(()=>{j(this,Pr).forEach(t=>{this.notify({type:"removed",mutation:t})}),j(this,Pr).clear(),j(this,Bn).clear()})}getAll(){return Array.from(j(this,Pr))}find(t){const n={exact:!0,...t};return this.getAll().find(r=>ow(n,r))}findAll(t={}){return this.getAll().filter(n=>ow(t,n))}notify(t){ut.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return ut.batch(()=>Promise.all(t.map(n=>n.continue().catch(Bt))))}},Pr=new WeakMap,Bn=new WeakMap,Hu=new WeakMap,l_);function $c(e){var t;return(t=e.options.scope)==null?void 0:t.id}var _r,di,Xt,Ar,Ir,sf,Dv,u_,SM=(u_=class extends As{constructor(n,r){super();ne(this,Ir);ne(this,_r);ne(this,di);ne(this,Xt);ne(this,Ar);Y(this,_r,n),this.setOptions(r),this.bindMethods(),de(this,Ir,sf).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(n){var i;const r=this.options;this.options=j(this,_r).defaultMutationOptions(n),If(this.options,r)||j(this,_r).getMutationCache().notify({type:"observerOptionsUpdated",mutation:j(this,Xt),observer:this}),r!=null&&r.mutationKey&&this.options.mutationKey&&Ta(r.mutationKey)!==Ta(this.options.mutationKey)?this.reset():((i=j(this,Xt))==null?void 0:i.state.status)==="pending"&&j(this,Xt).setOptions(this.options)}onUnsubscribe(){var n;this.hasListeners()||(n=j(this,Xt))==null||n.removeObserver(this)}onMutationUpdate(n){de(this,Ir,sf).call(this),de(this,Ir,Dv).call(this,n)}getCurrentResult(){return j(this,di)}reset(){var n;(n=j(this,Xt))==null||n.removeObserver(this),Y(this,Xt,void 0),de(this,Ir,sf).call(this),de(this,Ir,Dv).call(this)}mutate(n,r){var i;return Y(this,Ar,r),(i=j(this,Xt))==null||i.removeObserver(this),Y(this,Xt,j(this,_r).getMutationCache().build(j(this,_r),this.options)),j(this,Xt).addObserver(this),j(this,Xt).execute(n)}},_r=new WeakMap,di=new WeakMap,Xt=new WeakMap,Ar=new WeakMap,Ir=new WeakSet,sf=function(){var r;const n=((r=j(this,Xt))==null?void 0:r.state)??NE();Y(this,di,{...n,isPending:n.status==="pending",isSuccess:n.status==="success",isError:n.status==="error",isIdle:n.status==="idle",mutate:this.mutate,reset:this.reset})},Dv=function(n){ut.batch(()=>{var r,i,a,o,s,l,u,f;if(j(this,Ar)&&this.hasListeners()){const c=j(this,di).variables,p=j(this,di).context,d={client:j(this,_r),meta:this.options.meta,mutationKey:this.options.mutationKey};if((n==null?void 0:n.type)==="success"){try{(i=(r=j(this,Ar)).onSuccess)==null||i.call(r,n.data,c,p,d)}catch(g){Promise.reject(g)}try{(o=(a=j(this,Ar)).onSettled)==null||o.call(a,n.data,null,c,p,d)}catch(g){Promise.reject(g)}}else if((n==null?void 0:n.type)==="error"){try{(l=(s=j(this,Ar)).onError)==null||l.call(s,n.error,c,p,d)}catch(g){Promise.reject(g)}try{(f=(u=j(this,Ar)).onSettled)==null||f.call(u,void 0,n.error,c,p,d)}catch(g){Promise.reject(g)}}}this.listeners.forEach(c=>{c(j(this,di))})})},u_),ir,c_,PM=(c_=class extends As{constructor(t={}){super();ne(this,ir);this.config=t,Y(this,ir,new Map)}build(t,n,r){const i=n.queryKey,a=n.queryHash??w0(i,n);let o=this.get(a);return o||(o=new yM({client:t,queryKey:i,queryHash:a,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(i)}),this.add(o)),o}add(t){j(this,ir).has(t.queryHash)||(j(this,ir).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=j(this,ir).get(t.queryHash);n&&(t.destroy(),n===t&&j(this,ir).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){ut.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return j(this,ir).get(t)}getAll(){return[...j(this,ir).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>aw(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>aw(t,r)):n}notify(t){ut.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){ut.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){ut.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},ir=new WeakMap,c_),Xe,hi,mi,Lo,Fo,vi,Bo,zo,f_,_M=(f_=class{constructor(e={}){ne(this,Xe);ne(this,hi);ne(this,mi);ne(this,Lo);ne(this,Fo);ne(this,vi);ne(this,Bo);ne(this,zo);Y(this,Xe,e.queryCache||new PM),Y(this,hi,e.mutationCache||new OM),Y(this,mi,e.defaultOptions||{}),Y(this,Lo,new Map),Y(this,Fo,new Map),Y(this,vi,0)}mount(){pc(this,vi)._++,j(this,vi)===1&&(Y(this,Bo,x0.subscribe(async e=>{e&&(await this.resumePausedMutations(),j(this,Xe).onFocus())})),Y(this,zo,Lf.subscribe(async e=>{e&&(await this.resumePausedMutations(),j(this,Xe).onOnline())})))}unmount(){var e,t;pc(this,vi)._--,j(this,vi)===0&&((e=j(this,Bo))==null||e.call(this),Y(this,Bo,void 0),(t=j(this,zo))==null||t.call(this),Y(this,zo,void 0))}isFetching(e){return j(this,Xe).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return j(this,hi).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=j(this,Xe).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=j(this,Xe).build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(ki(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return j(this,Xe).findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.defaultQueryOptions({queryKey:e}),i=j(this,Xe).get(r.queryHash),a=i==null?void 0:i.state.data,o=aM(t,a);if(o!==void 0)return j(this,Xe).build(this,r).setData(o,{...n,manual:!0})}setQueriesData(e,t,n){return ut.batch(()=>j(this,Xe).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=j(this,Xe).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=j(this,Xe);ut.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=j(this,Xe);return ut.batch(()=>(n.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=ut.batch(()=>j(this,Xe).findAll(e).map(i=>i.cancel(n)));return Promise.all(r).then(Bt).catch(Bt)}invalidateQueries(e,t={}){return ut.batch(()=>(j(this,Xe).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},r=ut.batch(()=>j(this,Xe).findAll(e).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let a=i.fetch(void 0,n);return n.throwOnError||(a=a.catch(Bt)),i.state.fetchStatus==="paused"?Promise.resolve():a}));return Promise.all(r).then(Bt)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=j(this,Xe).build(this,t);return n.isStaleByTime(ki(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Bt).catch(Bt)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Bt).catch(Bt)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return Lf.isOnline()?j(this,hi).resumePausedMutations():Promise.resolve()}getQueryCache(){return j(this,Xe)}getMutationCache(){return j(this,hi)}getDefaultOptions(){return j(this,mi)}setDefaultOptions(e){Y(this,mi,e)}setQueryDefaults(e,t){j(this,Lo).set(Ta(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...j(this,Lo).values()],n={};return t.forEach(r=>{Jl(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){j(this,Fo).set(Ta(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...j(this,Fo).values()],n={};return t.forEach(r=>{Jl(e,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...j(this,mi).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=w0(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===O0&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...j(this,mi).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){j(this,Xe).clear(),j(this,hi).clear()}},Xe=new WeakMap,hi=new WeakMap,mi=new WeakMap,Lo=new WeakMap,Fo=new WeakMap,vi=new WeakMap,Bo=new WeakMap,zo=new WeakMap,f_),ME=A.createContext(void 0),RE=e=>{const t=A.useContext(ME);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},AM=({client:e,children:t})=>(A.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),P.jsx(ME.Provider,{value:e,children:t})),DE=A.createContext(!1),EM=()=>A.useContext(DE);DE.Provider;function jM(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var TM=A.createContext(jM()),kM=()=>A.useContext(TM),$M=(e,t,n)=>{const r=n!=null&&n.state.error&&typeof e.throwOnError=="function"?S0(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},CM=e=>{A.useEffect(()=>{e.clearReset()},[e])},NM=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||S0(n,[e.error,r])),MM=e=>{if(e.suspense){const n=i=>i==="static"?i:Math.max(i??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...i)=>n(r(...i)):n(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},RM=(e,t)=>e.isLoading&&e.isFetching&&!t,DM=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,hw=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function IM(e,t,n){var d,g,m,y;const r=EM(),i=kM(),a=RE(),o=a.defaultQueryOptions(e);(g=(d=a.getDefaultOptions().queries)==null?void 0:d._experimental_beforeQuery)==null||g.call(d,o);const s=a.getQueryCache().get(o.queryHash),l=e.subscribed!==!1;o._optimisticResults=r?"isRestoring":l?"optimistic":void 0,MM(o),$M(o,i,s),CM(i);const u=!a.getQueryCache().get(o.queryHash),[f]=A.useState(()=>new t(a,o)),c=f.getOptimisticResult(o),p=!r&&l;if(A.useSyncExternalStore(A.useCallback(h=>{const v=p?f.subscribe(ut.batchCalls(h)):Bt;return f.updateResult(),v},[f,p]),()=>f.getCurrentResult(),()=>f.getCurrentResult()),A.useEffect(()=>{f.setOptions(o)},[o,f]),DM(o,c))throw hw(o,f,i);if(NM({result:c,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw c.error;if((y=(m=a.getDefaultOptions().queries)==null?void 0:m._experimental_afterQuery)==null||y.call(m,o,c),o.experimental_prefetchInRender&&!Zl.isServer()&&RM(c,r)){const h=u?hw(o,f,i):s==null?void 0:s.promise;h==null||h.catch(Bt).finally(()=>{f.updateResult()})}return o.notifyOnChangeProps?c:f.trackResult(c)}function _0(e,t){return IM(e,gM)}function IE(e,t){const n=RE(),[r]=A.useState(()=>new SM(n,e));A.useEffect(()=>{r.setOptions(e)},[r,e]);const i=A.useSyncExternalStore(A.useCallback(o=>r.subscribe(ut.batchCalls(o)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=A.useCallback((o,s)=>{r.mutate(o,s).catch(Bt)},[r]);if(i.error&&S0(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}/** - * @remix-run/router v1.23.3 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function eu(){return eu=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function A0(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function FM(){return Math.random().toString(36).substr(2,8)}function vw(e,t){return{usr:e.state,key:e.key,idx:t}}function Iv(e,t,n,r){return n===void 0&&(n=null),eu({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Es(t):t,{state:n,key:t&&t.key||r||FM()})}function Ff(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Es(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function BM(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=bi.Pop,l=null,u=f();u==null&&(u=0,o.replaceState(eu({},o.state,{idx:u}),""));function f(){return(o.state||{idx:null}).idx}function c(){s=bi.Pop;let y=f(),h=y==null?null:y-u;u=y,l&&l({action:s,location:m.location,delta:h})}function p(y,h){s=bi.Push;let v=Iv(m.location,y,h);u=f()+1;let b=vw(v,u),w=m.createHref(v);try{o.pushState(b,"",w)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;i.location.assign(w)}a&&l&&l({action:s,location:m.location,delta:1})}function d(y,h){s=bi.Replace;let v=Iv(m.location,y,h);u=f();let b=vw(v,u),w=m.createHref(v);o.replaceState(b,"",w),a&&l&&l({action:s,location:m.location,delta:0})}function g(y){let h=i.location.origin!=="null"?i.location.origin:i.location.href,v=typeof y=="string"?y:Ff(y);return v=v.replace(/ $/,"%20"),et(h,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,h)}let m={get action(){return s},get location(){return e(i,o)},listen(y){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(mw,c),l=y,()=>{i.removeEventListener(mw,c),l=null}},createHref(y){return t(i,y)},createURL:g,encodeLocation(y){let h=g(y);return{pathname:h.pathname,search:h.search,hash:h.hash}},push:p,replace:d,go(y){return o.go(y)}};return m}var yw;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(yw||(yw={}));function zM(e,t,n){return n===void 0&&(n="/"),UM(e,t,n)}function UM(e,t,n,r){let i=typeof t=="string"?Es(t):t,a=E0(i.pathname||"/",n);if(a==null)return null;let o=LE(e);WM(o);let s=null,l=tR(a);for(let u=0;s==null&&u{let l={relativePath:s===void 0?a.path||"":s,caseSensitive:a.caseSensitive===!0,childrenIndex:o,route:a};l.relativePath.startsWith("/")&&(et(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let u=$i([r,l.relativePath]),f=n.concat(l);a.children&&a.children.length>0&&(et(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),LE(a.children,t,f,u)),!(a.path==null&&!a.index)&&t.push({path:u,score:QM(u,a.index),routesMeta:f})};return e.forEach((a,o)=>{var s;if(a.path===""||!((s=a.path)!=null&&s.includes("?")))i(a,o);else for(let l of FE(a.path))i(a,o,l)}),t}function FE(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),a=n.replace(/\?$/,"");if(r.length===0)return i?[a,""]:[a];let o=FE(r.join("/")),s=[];return s.push(...o.map(l=>l===""?a:[a,l].join("/"))),i&&s.push(...o),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function WM(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:YM(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const HM=/^:[\w-]+$/,qM=3,KM=2,VM=1,GM=10,XM=-2,gw=e=>e==="*";function QM(e,t){let n=e.split("/"),r=n.length;return n.some(gw)&&(r+=XM),t&&(r+=KM),n.filter(i=>!gw(i)).reduce((i,a)=>i+(HM.test(a)?qM:a===""?VM:GM),r)}function YM(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function JM(e,t,n){let{routesMeta:r}=e,i={},a="/",o=[];for(let s=0;s{let{paramName:p,isOptional:d}=f;if(p==="*"){let m=s[c]||"";o=a.slice(0,a.length-m.length).replace(/(.)\/+$/,"$1")}const g=s[c];return d&&!g?u[p]=void 0:u[p]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:a,pathnameBase:o,pattern:e}}function eR(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),A0(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,s,l)=>(r.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function tR(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return A0(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function E0(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}const nR=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,rR=e=>nR.test(e);function iR(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Es(e):e,a;if(n)if(rR(n))a=n;else{if(n.includes("//")){let o=n;n=BE(n),A0(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?a=bw(n.substring(1),"/"):a=bw(n,t)}else a=t;return{pathname:a,search:sR(r),hash:lR(i)}}function bw(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function qh(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function aR(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function j0(e,t){let n=aR(e);return t?n.map((r,i)=>i===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function T0(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=Es(e):(i=eu({},e),et(!i.pathname||!i.pathname.includes("?"),qh("?","pathname","search",i)),et(!i.pathname||!i.pathname.includes("#"),qh("#","pathname","hash",i)),et(!i.search||!i.search.includes("#"),qh("#","search","hash",i)));let a=e===""||i.pathname==="",o=a?"/":i.pathname,s;if(o==null)s=n;else{let c=t.length-1;if(!r&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),c-=1;i.pathname=p.join("/")}s=c>=0?t[c]:"/"}let l=iR(i,s),u=o&&o!=="/"&&o.endsWith("/"),f=(a||o===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||f)&&(l.pathname+="/"),l}const BE=e=>e.replace(/\/\/+/g,"/"),$i=e=>BE(e.join("/")),oR=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),sR=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,lR=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function uR(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const zE=["post","put","patch","delete"];new Set(zE);const cR=["get",...zE];new Set(cR);/** - * React Router v6.30.4 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function tu(){return tu=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),A.useCallback(function(u,f){if(f===void 0&&(f={}),!s.current)return;if(typeof u=="number"){r.go(u);return}let c=T0(u,JSON.parse(o),a,f.relative==="path");e==null&&t!=="/"&&(c.pathname=c.pathname==="/"?t:$i([t,c.pathname])),(f.replace?r.replace:r.push)(c,f.state,f)},[t,r,o,a,e])}const hR=A.createContext(null);function mR(e){let t=A.useContext(Vr).outlet;return t&&A.createElement(hR.Provider,{value:e},t)}function qE(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=A.useContext(Li),{matches:i}=A.useContext(Vr),{pathname:a}=Ba(),o=JSON.stringify(j0(i,r.v7_relativeSplatPath));return A.useMemo(()=>T0(e,JSON.parse(o),a,n==="path"),[e,o,a,n])}function vR(e,t){return yR(e,t)}function yR(e,t,n,r){js()||et(!1);let{navigator:i}=A.useContext(Li),{matches:a}=A.useContext(Vr),o=a[a.length-1],s=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let u=Ba(),f;if(t){var c;let y=typeof t=="string"?Es(t):t;l==="/"||(c=y.pathname)!=null&&c.startsWith(l)||et(!1),f=y}else f=u;let p=f.pathname||"/",d=p;if(l!=="/"){let y=l.replace(/^\//,"").split("/");d="/"+p.replace(/^\//,"").split("/").slice(y.length).join("/")}let g=zM(e,{pathname:d}),m=OR(g&&g.map(y=>Object.assign({},y,{params:Object.assign({},s,y.params),pathname:$i([l,i.encodeLocation?i.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?l:$i([l,i.encodeLocation?i.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),a,n,r);return t&&m?A.createElement(pd.Provider,{value:{location:tu({pathname:"/",search:"",hash:"",state:null,key:"default"},f),navigationType:bi.Pop}},m):m}function gR(){let e=AR(),t=uR(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return A.createElement(A.Fragment,null,A.createElement("h2",null,"Unexpected Application Error!"),A.createElement("h3",{style:{fontStyle:"italic"}},t),n?A.createElement("pre",{style:i},n):null,null)}const bR=A.createElement(gR,null);class xR extends A.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?A.createElement(Vr.Provider,{value:this.props.routeContext},A.createElement(UE.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function wR(e){let{routeContext:t,match:n,children:r}=e,i=A.useContext(k0);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),A.createElement(Vr.Provider,{value:t},r)}function OR(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var a;if(!n)return null;if(n.errors)e=n.matches;else if((a=r)!=null&&a.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,s=(i=n)==null?void 0:i.errors;if(s!=null){let f=o.findIndex(c=>c.route.id&&(s==null?void 0:s[c.route.id])!==void 0);f>=0||et(!1),o=o.slice(0,Math.min(o.length,f+1))}let l=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let f=0;f=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((f,c,p)=>{let d,g=!1,m=null,y=null;n&&(d=s&&c.route.id?s[c.route.id]:void 0,m=c.route.errorElement||bR,l&&(u<0&&p===0?(jR("route-fallback"),g=!0,y=null):u===p&&(g=!0,y=c.route.hydrateFallbackElement||null)));let h=t.concat(o.slice(0,p+1)),v=()=>{let b;return d?b=m:g?b=y:c.route.Component?b=A.createElement(c.route.Component,null):c.route.element?b=c.route.element:b=f,A.createElement(wR,{match:c,routeContext:{outlet:f,matches:h,isDataRoute:n!=null},children:b})};return n&&(c.route.ErrorBoundary||c.route.errorElement||p===0)?A.createElement(xR,{location:n.location,revalidation:n.revalidation,component:m,error:d,children:v(),routeContext:{outlet:null,matches:h,isDataRoute:!0}}):v()},null)}var KE=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(KE||{}),VE=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(VE||{});function SR(e){let t=A.useContext(k0);return t||et(!1),t}function PR(e){let t=A.useContext(fR);return t||et(!1),t}function _R(e){let t=A.useContext(Vr);return t||et(!1),t}function GE(e){let t=_R(),n=t.matches[t.matches.length-1];return n.route.id||et(!1),n.route.id}function AR(){var e;let t=A.useContext(UE),n=PR(),r=GE();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function ER(){let{router:e}=SR(KE.UseNavigateStable),t=GE(VE.UseNavigateStable),n=A.useRef(!1);return WE(()=>{n.current=!0}),A.useCallback(function(i,a){a===void 0&&(a={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,tu({fromRouteId:t},a)))},[e,t])}const xw={};function jR(e,t,n){xw[e]||(xw[e]=!0)}function TR(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function kR(e){let{to:t,replace:n,state:r,relative:i}=e;js()||et(!1);let{future:a,static:o}=A.useContext(Li),{matches:s}=A.useContext(Vr),{pathname:l}=Ba(),u=HE(),f=T0(t,j0(s,a.v7_relativeSplatPath),l,i==="path"),c=JSON.stringify(f);return A.useEffect(()=>u(JSON.parse(c),{replace:n,state:r,relative:i}),[u,c,i,n,r]),null}function $R(e){return mR(e.context)}function eo(e){et(!1)}function CR(e){let{basename:t="/",children:n=null,location:r,navigationType:i=bi.Pop,navigator:a,static:o=!1,future:s}=e;js()&&et(!1);let l=t.replace(/^\/*/,"/"),u=A.useMemo(()=>({basename:l,navigator:a,static:o,future:tu({v7_relativeSplatPath:!1},s)}),[l,s,a,o]);typeof r=="string"&&(r=Es(r));let{pathname:f="/",search:c="",hash:p="",state:d=null,key:g="default"}=r,m=A.useMemo(()=>{let y=E0(f,l);return y==null?null:{location:{pathname:y,search:c,hash:p,state:d,key:g},navigationType:i}},[l,f,c,p,d,g,i]);return m==null?null:A.createElement(Li.Provider,{value:u},A.createElement(pd.Provider,{children:n,value:m}))}function NR(e){let{children:t,location:n}=e;return vR(Lv(t),n)}new Promise(()=>{});function Lv(e,t){t===void 0&&(t=[]);let n=[];return A.Children.forEach(e,(r,i)=>{if(!A.isValidElement(r))return;let a=[...t,i];if(r.type===A.Fragment){n.push.apply(n,Lv(r.props.children,a));return}r.type!==eo&&et(!1),!r.props.index||!r.props.children||et(!1);let o={id:r.props.id||a.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=Lv(r.props.children,a)),n.push(o)}),n}/** - * React Router DOM v6.30.4 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Fv(){return Fv=Object.assign?Object.assign.bind():function(e){for(var t=1;t{u&&ww?ww(()=>l(c)):l(c)},[l,u]);return A.useLayoutEffect(()=>o.listen(f),[o,f]),A.useEffect(()=>TR(r),[r]),A.createElement(CR,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:o,future:r})}const zR=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",UR=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Kh=A.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:a,replace:o,state:s,target:l,to:u,preventScrollReset:f,viewTransition:c}=t,p=MR(t,IR),{basename:d}=A.useContext(Li),g,m=!1;if(typeof u=="string"&&UR.test(u)&&(g=u,zR))try{let b=new URL(window.location.href),w=u.startsWith("//")?new URL(b.protocol+u):new URL(u),x=E0(w.pathname,d);w.origin===b.origin&&x!=null?u=x+w.search+w.hash:m=!0}catch{}let y=pR(u,{relative:i}),h=WR(u,{replace:o,state:s,target:l,preventScrollReset:f,relative:i,viewTransition:c});function v(b){r&&r(b),b.defaultPrevented||h(b)}return A.createElement("a",Fv({},p,{href:g||y,onClick:m||a?r:v,ref:n,target:l}))});var Ow;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Ow||(Ow={}));var Sw;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Sw||(Sw={}));function WR(e,t){let{target:n,replace:r,state:i,preventScrollReset:a,relative:o,viewTransition:s}=t===void 0?{}:t,l=HE(),u=Ba(),f=qE(e,{relative:o});return A.useCallback(c=>{if(DR(c,n)){c.preventDefault();let p=r!==void 0?r:Ff(u)===Ff(f);l(e,{replace:p,state:i,preventScrollReset:a,relative:o,viewTransition:s})}},[u,l,f,r,i,n,e,a,o,s])}let HR={data:""},qR=e=>{if(typeof window=="object"){let t=(e?e.querySelector("#_goober"):window._goober)||Object.assign(document.createElement("style"),{innerHTML:" ",id:"_goober"});return t.nonce=window.__nonce__,t.parentNode||(e||document.head).appendChild(t),t.firstChild}return e||HR},KR=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,VR=/\/\*[^]*?\*\/| +/g,Pw=/\n+/g,oi=(e,t)=>{let n="",r="",i="";for(let a in e){let o=e[a];a[0]=="@"?a[1]=="i"?n=a+" "+o+";":r+=a[1]=="f"?oi(o,a):a+"{"+oi(o,a[1]=="k"?"":t)+"}":typeof o=="object"?r+=oi(o,t?t.replace(/([^,])+/g,s=>a.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,s):s?s+" "+l:l)):a):o!=null&&(a=a[1]=="-"?a:a.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=oi.p?oi.p(a,o):a+":"+o+";")}return n+(t&&i?t+"{"+i+"}":i)+r},Zr={},XE=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+XE(e[n]);return t}return e},GR=(e,t,n,r,i)=>{let a=XE(e),o=Zr[a]||(Zr[a]=(l=>{let u=0,f=11;for(;u>>0;return"go"+f})(a));if(!Zr[o]){let l=a!==e?e:(u=>{let f,c,p=[{}];for(;f=KR.exec(u.replace(VR,""));)f[4]?p.shift():f[3]?(c=f[3].replace(Pw," ").trim(),p.unshift(p[0][c]=p[0][c]||{})):p[0][f[1]]=f[2].replace(Pw," ").trim();return p[0]})(e);Zr[o]=oi(i?{["@keyframes "+o]:l}:l,n?"":"."+o)}let s=n&&Zr.g;return n&&(Zr.g=Zr[o]),((l,u,f,c)=>{c?u.data=u.data.replace(c,l):u.data.indexOf(l)===-1&&(u.data=f?l+u.data:u.data+l)})(Zr[o],t,r,s),o},XR=(e,t,n)=>e.reduce((r,i,a)=>{let o=t[a];if(o&&o.call){let s=o(n),l=s&&s.props&&s.props.className||/^go/.test(s)&&s;o=l?"."+l:s&&typeof s=="object"?s.props?"":oi(s,""):s===!1?"":s}return r+i+(o??"")},"");function dd(e){let t=this||{},n=e.call?e(t.p):e;return GR(n.unshift?n.raw?XR(n,[].slice.call(arguments,1),t.p):n.reduce((r,i)=>Object.assign(r,i&&i.call?i(t.p):i),{}):n,qR(t.target),t.g,t.o,t.k)}let QE,Bv,zv;dd.bind({g:1});let Ur=dd.bind({k:1});function QR(e,t,n,r){oi.p=t,QE=e,Bv=n,zv=r}function Fi(e,t){let n=this||{};return function(){let r=arguments;function i(a,o){let s=Object.assign({},a),l=s.className||i.className;n.p=Object.assign({theme:Bv&&Bv()},s),n.o=/go\d/.test(l),s.className=dd.apply(n,r)+(l?" "+l:"");let u=e;return e[0]&&(u=s.as||e,delete s.as),zv&&u[0]&&zv(s),QE(u,s)}return i}}var YR=e=>typeof e=="function",Bf=(e,t)=>YR(e)?e(t):e,JR=(()=>{let e=0;return()=>(++e).toString()})(),YE=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),ZR=20,$0="default",JE=(e,t)=>{let{toastLimit:n}=e.settings;switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,n)};case 1:return{...e,toasts:e.toasts.map(o=>o.id===t.toast.id?{...o,...t.toast}:o)};case 2:let{toast:r}=t;return JE(e,{type:e.toasts.find(o=>o.id===r.id)?1:0,toast:r});case 3:let{toastId:i}=t;return{...e,toasts:e.toasts.map(o=>o.id===i||i===void 0?{...o,dismissed:!0,visible:!1}:o)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(o=>o.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let a=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+a}))}}},lf=[],ZE={toasts:[],pausedAt:void 0,settings:{toastLimit:ZR}},or={},ej=(e,t=$0)=>{or[t]=JE(or[t]||ZE,e),lf.forEach(([n,r])=>{n===t&&r(or[t])})},tj=e=>Object.keys(or).forEach(t=>ej(e,t)),eD=e=>Object.keys(or).find(t=>or[t].toasts.some(n=>n.id===e)),hd=(e=$0)=>t=>{ej(t,e)},tD={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},nD=(e={},t=$0)=>{let[n,r]=A.useState(or[t]||ZE),i=A.useRef(or[t]);A.useEffect(()=>(i.current!==or[t]&&r(or[t]),lf.push([t,r]),()=>{let o=lf.findIndex(([s])=>s===t);o>-1&&lf.splice(o,1)}),[t]);let a=n.toasts.map(o=>{var s,l,u;return{...e,...e[o.type],...o,removeDelay:o.removeDelay||((s=e[o.type])==null?void 0:s.removeDelay)||(e==null?void 0:e.removeDelay),duration:o.duration||((l=e[o.type])==null?void 0:l.duration)||(e==null?void 0:e.duration)||tD[o.type],style:{...e.style,...(u=e[o.type])==null?void 0:u.style,...o.style}}});return{...n,toasts:a}},rD=(e,t="blank",n)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...n,id:(n==null?void 0:n.id)||JR()}),Qu=e=>(t,n)=>{let r=rD(t,e,n);return hd(r.toasterId||eD(r.id))({type:2,toast:r}),r.id},ct=(e,t)=>Qu("blank")(e,t);ct.error=Qu("error");ct.success=Qu("success");ct.loading=Qu("loading");ct.custom=Qu("custom");ct.dismiss=(e,t)=>{let n={type:3,toastId:e};t?hd(t)(n):tj(n)};ct.dismissAll=e=>ct.dismiss(void 0,e);ct.remove=(e,t)=>{let n={type:4,toastId:e};t?hd(t)(n):tj(n)};ct.removeAll=e=>ct.remove(void 0,e);ct.promise=(e,t,n)=>{let r=ct.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(i=>{let a=t.success?Bf(t.success,i):void 0;return a?ct.success(a,{id:r,...n,...n==null?void 0:n.success}):ct.dismiss(r),i}).catch(i=>{let a=t.error?Bf(t.error,i):void 0;a?ct.error(a,{id:r,...n,...n==null?void 0:n.error}):ct.dismiss(r)}),e};var iD=1e3,aD=(e,t="default")=>{let{toasts:n,pausedAt:r}=nD(e,t),i=A.useRef(new Map).current,a=A.useCallback((c,p=iD)=>{if(i.has(c))return;let d=setTimeout(()=>{i.delete(c),o({type:4,toastId:c})},p);i.set(c,d)},[]);A.useEffect(()=>{if(r)return;let c=Date.now(),p=n.map(d=>{if(d.duration===1/0)return;let g=(d.duration||0)+d.pauseDuration-(c-d.createdAt);if(g<0){d.visible&&ct.dismiss(d.id);return}return setTimeout(()=>ct.dismiss(d.id,t),g)});return()=>{p.forEach(d=>d&&clearTimeout(d))}},[n,r,t]);let o=A.useCallback(hd(t),[t]),s=A.useCallback(()=>{o({type:5,time:Date.now()})},[o]),l=A.useCallback((c,p)=>{o({type:1,toast:{id:c,height:p}})},[o]),u=A.useCallback(()=>{r&&o({type:6,time:Date.now()})},[r,o]),f=A.useCallback((c,p)=>{let{reverseOrder:d=!1,gutter:g=8,defaultPosition:m}=p||{},y=n.filter(b=>(b.position||m)===(c.position||m)&&b.height),h=y.findIndex(b=>b.id===c.id),v=y.filter((b,w)=>wb.visible).slice(...d?[v+1]:[0,v]).reduce((b,w)=>b+(w.height||0)+g,0)},[n]);return A.useEffect(()=>{n.forEach(c=>{if(c.dismissed)a(c.id,c.removeDelay);else{let p=i.get(c.id);p&&(clearTimeout(p),i.delete(c.id))}})},[n,a]),{toasts:n,handlers:{updateHeight:l,startPause:s,endPause:u,calculateOffset:f}}},oD=Ur` -from { - transform: scale(0) rotate(45deg); - opacity: 0; -} -to { - transform: scale(1) rotate(45deg); - opacity: 1; -}`,sD=Ur` -from { - transform: scale(0); - opacity: 0; -} -to { - transform: scale(1); - opacity: 1; -}`,lD=Ur` -from { - transform: scale(0) rotate(90deg); - opacity: 0; -} -to { - transform: scale(1) rotate(90deg); - opacity: 1; -}`,uD=Fi("div")` - width: 20px; - opacity: 0; - height: 20px; - border-radius: 10px; - background: ${e=>e.primary||"#ff4b4b"}; - position: relative; - transform: rotate(45deg); - - animation: ${oD} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) - forwards; - animation-delay: 100ms; - - &:after, - &:before { - content: ''; - animation: ${sD} 0.15s ease-out forwards; - animation-delay: 150ms; - position: absolute; - border-radius: 3px; - opacity: 0; - background: ${e=>e.secondary||"#fff"}; - bottom: 9px; - left: 4px; - height: 2px; - width: 12px; - } - - &:before { - animation: ${lD} 0.15s ease-out forwards; - animation-delay: 180ms; - transform: rotate(90deg); - } -`,cD=Ur` - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -`,fD=Fi("div")` - width: 12px; - height: 12px; - box-sizing: border-box; - border: 2px solid; - border-radius: 100%; - border-color: ${e=>e.secondary||"#e0e0e0"}; - border-right-color: ${e=>e.primary||"#616161"}; - animation: ${cD} 1s linear infinite; -`,pD=Ur` -from { - transform: scale(0) rotate(45deg); - opacity: 0; -} -to { - transform: scale(1) rotate(45deg); - opacity: 1; -}`,dD=Ur` -0% { - height: 0; - width: 0; - opacity: 0; -} -40% { - height: 0; - width: 6px; - opacity: 1; -} -100% { - opacity: 1; - height: 10px; -}`,hD=Fi("div")` - width: 20px; - opacity: 0; - height: 20px; - border-radius: 10px; - background: ${e=>e.primary||"#61d345"}; - position: relative; - transform: rotate(45deg); - - animation: ${pD} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) - forwards; - animation-delay: 100ms; - &:after { - content: ''; - box-sizing: border-box; - animation: ${dD} 0.2s ease-out forwards; - opacity: 0; - animation-delay: 200ms; - position: absolute; - border-right: 2px solid; - border-bottom: 2px solid; - border-color: ${e=>e.secondary||"#fff"}; - bottom: 6px; - left: 6px; - height: 10px; - width: 6px; - } -`,mD=Fi("div")` - position: absolute; -`,vD=Fi("div")` - position: relative; - display: flex; - justify-content: center; - align-items: center; - min-width: 20px; - min-height: 20px; -`,yD=Ur` -from { - transform: scale(0.6); - opacity: 0.4; -} -to { - transform: scale(1); - opacity: 1; -}`,gD=Fi("div")` - position: relative; - transform: scale(0.6); - opacity: 0.4; - min-width: 20px; - animation: ${yD} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) - forwards; -`,bD=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?A.createElement(gD,null,t):t:n==="blank"?null:A.createElement(vD,null,A.createElement(fD,{...r}),n!=="loading"&&A.createElement(mD,null,n==="error"?A.createElement(uD,{...r}):A.createElement(hD,{...r})))},xD=e=>` -0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} -100% {transform: translate3d(0,0,0) scale(1); opacity:1;} -`,wD=e=>` -0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} -100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} -`,OD="0%{opacity:0;} 100%{opacity:1;}",SD="0%{opacity:1;} 100%{opacity:0;}",PD=Fi("div")` - display: flex; - align-items: center; - background: #fff; - color: #363636; - line-height: 1.3; - will-change: transform; - box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05); - max-width: 350px; - pointer-events: auto; - padding: 8px 10px; - border-radius: 8px; -`,_D=Fi("div")` - display: flex; - justify-content: center; - margin: 4px 10px; - color: inherit; - flex: 1 1 auto; - white-space: pre-line; -`,AD=(e,t)=>{let n=e.includes("top")?1:-1,[r,i]=YE()?[OD,SD]:[xD(n),wD(n)];return{animation:t?`${Ur(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Ur(i)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},ED=A.memo(({toast:e,position:t,style:n,children:r})=>{let i=e.height?AD(e.position||t||"top-center",e.visible):{opacity:0},a=A.createElement(bD,{toast:e}),o=A.createElement(_D,{...e.ariaProps},Bf(e.message,e));return A.createElement(PD,{className:e.className,style:{...i,...n,...e.style}},typeof r=="function"?r({icon:a,message:o}):A.createElement(A.Fragment,null,a,o))});QR(A.createElement);var jD=({id:e,className:t,style:n,onHeightUpdate:r,children:i})=>{let a=A.useCallback(o=>{if(o){let s=()=>{let l=o.getBoundingClientRect().height;r(e,l)};s(),new MutationObserver(s).observe(o,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return A.createElement("div",{ref:a,className:t,style:n},i)},TD=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},i=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:YE()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...i}},kD=dd` - z-index: 9999; - > * { - pointer-events: auto; - } -`,Cc=16,$D=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:i,toasterId:a,containerStyle:o,containerClassName:s})=>{let{toasts:l,handlers:u}=aD(n,a);return A.createElement("div",{"data-rht-toaster":a||"",style:{position:"fixed",zIndex:9999,top:Cc,left:Cc,right:Cc,bottom:Cc,pointerEvents:"none",...o},className:s,onMouseEnter:u.startPause,onMouseLeave:u.endPause},l.map(f=>{let c=f.position||t,p=u.calculateOffset(f,{reverseOrder:e,gutter:r,defaultPosition:t}),d=TD(c,p);return A.createElement(jD,{id:f.id,key:f.id,onHeightUpdate:u.updateHeight,className:f.visible?kD:"",style:d},f.type==="custom"?Bf(f.message,f):i?i(f):A.createElement(ED,{toast:f,position:c}))}))},ho=ct;function nj(e,t){return function(){return e.apply(t,arguments)}}const{toString:CD}=Object.prototype,{getPrototypeOf:Xo}=Object,{iterator:Yu,toStringTag:rj}=Symbol,zf=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),nu=(e,t)=>{let n=e;const r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),zf(n,t))return!0;n=Xo(n)}return!1},ND=(e,t)=>e!=null&&nu(e,t)?e[t]:void 0,C0=(e=>t=>{const n=CD.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Qn=e=>(e=e.toLowerCase(),t=>C0(t)===e),md=e=>t=>typeof t===e,{isArray:ka}=Array,Qo=md("undefined");function Ts(e){return e!==null&&!Qo(e)&&e.constructor!==null&&!Qo(e.constructor)&&nn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const ij=Qn("ArrayBuffer");function MD(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&ij(e.buffer),t}const RD=md("string"),nn=md("function"),aj=md("number"),ks=e=>e!==null&&typeof e=="object",DD=e=>e===!0||e===!1,uf=e=>{if(!ks(e))return!1;const t=Xo(e);return(t===null||t===Object.prototype||Xo(t)===null)&&!nu(e,rj)&&!nu(e,Yu)},ID=e=>{if(!ks(e)||Ts(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},LD=Qn("Date"),FD=Qn("File"),BD=e=>!!(e&&typeof e.uri<"u"),zD=e=>e&&typeof e.getParts<"u",UD=Qn("Blob"),WD=Qn("FileList"),HD=e=>ks(e)&&nn(e.pipe);function qD(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const _w=qD(),Aw=typeof _w.FormData<"u"?_w.FormData:void 0,KD=e=>{if(!e)return!1;if(Aw&&e instanceof Aw)return!0;const t=Xo(e);if(!t||t===Object.prototype||!nn(e.append))return!1;const n=C0(e);return n==="formdata"||n==="object"&&nn(e.toString)&&e.toString()==="[object FormData]"},VD=Qn("URLSearchParams"),[GD,XD,QD,YD]=["ReadableStream","Request","Response","Headers"].map(Qn),JD=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ju(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),ka(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}const ia=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,sj=e=>!Qo(e)&&e!==ia;function Uv(...e){const{caseless:t,skipUndefined:n}=sj(this)&&this||{},r={},i=(a,o)=>{if(o==="__proto__"||o==="constructor"||o==="prototype")return;const s=t&&typeof o=="string"&&oj(r,o)||o,l=zf(r,s)?r[s]:void 0;uf(l)&&uf(a)?r[s]=Uv(l,a):uf(a)?r[s]=Uv({},a):ka(a)?r[s]=a.slice():(!n||!Qo(a))&&(r[s]=a)};for(let a=0,o=e.length;a(Ju(t,(i,a)=>{n&&nn(i)?Object.defineProperty(e,a,{__proto__:null,value:nj(i,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,a,{__proto__:null,value:i,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),eI=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),tI=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},nI=(e,t,n,r)=>{let i,a,o;const s={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&Xo(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},rI=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},iI=e=>{if(!e)return null;if(ka(e))return e;let t=e.length;if(!aj(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},aI=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Xo(Uint8Array)),oI=(e,t)=>{const r=(e&&e[Yu]).call(e);let i;for(;(i=r.next())&&!i.done;){const a=i.value;t.call(e,a[0],a[1])}},sI=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},lI=Qn("HTMLFormElement"),uI=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),{propertyIsEnumerable:cI}=Object.prototype,fI=Qn("RegExp"),lj=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ju(n,(i,a)=>{let o;(o=t(i,a,e))!==!1&&(r[a]=o||i)}),Object.defineProperties(e,r)},pI=e=>{lj(e,(t,n)=>{if(nn(e)&&["arguments","caller","callee"].includes(n))return!1;const r=e[n];if(nn(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},dI=(e,t)=>{const n={},r=i=>{i.forEach(a=>{n[a]=!0})};return ka(e)?r(e):r(String(e).split(t)),n},hI=()=>{},mI=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function vI(e){return!!(e&&nn(e.append)&&e[rj]==="FormData"&&e[Yu])}const yI=e=>{const t=new WeakSet,n=r=>{if(ks(r)){if(t.has(r))return;if(Ts(r))return r;if(!("toJSON"in r)){t.add(r);const i=ka(r)?[]:{};return Ju(r,(a,o)=>{const s=n(a);!Qo(s)&&(i[o]=s)}),t.delete(r),i}}return r};return n(e)},gI=Qn("AsyncFunction"),bI=e=>e&&(ks(e)||nn(e))&&nn(e.then)&&nn(e.catch),uj=((e,t)=>e?setImmediate:t?((n,r)=>(ia.addEventListener("message",({source:i,data:a})=>{i===ia&&a===n&&r.length&&r.shift()()},!1),i=>{r.push(i),ia.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",nn(ia.postMessage)),xI=typeof queueMicrotask<"u"?queueMicrotask.bind(ia):typeof process<"u"&&process.nextTick||uj,cj=e=>e!=null&&nn(e[Yu]),wI=e=>e!=null&&nu(e,Yu)&&cj(e),C={isArray:ka,isArrayBuffer:ij,isBuffer:Ts,isFormData:KD,isArrayBufferView:MD,isString:RD,isNumber:aj,isBoolean:DD,isObject:ks,isPlainObject:uf,isEmptyObject:ID,isReadableStream:GD,isRequest:XD,isResponse:QD,isHeaders:YD,isUndefined:Qo,isDate:LD,isFile:FD,isReactNativeBlob:BD,isReactNative:zD,isBlob:UD,isRegExp:fI,isFunction:nn,isStream:HD,isURLSearchParams:VD,isTypedArray:aI,isFileList:WD,forEach:Ju,merge:Uv,extend:ZD,trim:JD,stripBOM:eI,inherits:tI,toFlatObject:nI,kindOf:C0,kindOfTest:Qn,endsWith:rI,toArray:iI,forEachEntry:oI,matchAll:sI,isHTMLForm:lI,hasOwnProperty:zf,hasOwnProp:zf,hasOwnInPrototypeChain:nu,getSafeProp:ND,reduceDescriptors:lj,freezeMethods:pI,toObjectSet:dI,toCamelCase:uI,noop:hI,toFiniteNumber:mI,findKey:oj,global:ia,isContextDefined:sj,isSpecCompliantForm:vI,toJSONObject:yI,isAsyncFn:gI,isThenable:bI,setImmediate:uj,asap:xI,isIterable:cj,isSafeIterable:wI},OI=C.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),SI=e=>{const t={};let n,r,i;return e&&e.split(` -`).forEach(function(o){i=o.indexOf(":"),n=o.substring(0,i).trim().toLowerCase(),r=o.substring(i+1).trim(),!(!n||t[n]&&OI[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t};function PI(e){let t=0,n=e.length;for(;tt;){const r=e.charCodeAt(n-1);if(r!==9&&r!==32)break;n-=1}return t===0&&n===e.length?e:e.slice(t,n)}const _I=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),AI=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function N0(e,t){return C.isArray(e)?e.map(n=>N0(n,t)):PI(String(e).replace(t,""))}const EI=e=>N0(e,_I),jI=e=>N0(e,AI);function fj(e){const t=Object.create(null);return C.forEach(e.toJSON(),(n,r)=>{t[r]=jI(n)}),t}const Ew=Symbol("internals");function tl(e){return e&&String(e).trim().toLowerCase()}function cf(e){return e===!1||e==null?e:C.isArray(e)?e.map(cf):EI(String(e))}function TI(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const kI=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Vh(e,t,n,r,i){if(C.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!C.isString(t)){if(C.isString(r))return t.indexOf(r)!==-1;if(C.isRegExp(r))return r.test(t)}}function $I(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function CI(e,t){const n=C.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(i,a,o){return this[r].call(this,t,i,a,o)},configurable:!0})})}let Rt=class{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function a(s,l,u){const f=tl(l);if(!f)return;const c=C.findKey(i,f);(!c||i[c]===void 0||u===!0||u===void 0&&i[c]!==!1)&&(i[c||l]=cf(s))}const o=(s,l)=>C.forEach(s,(u,f)=>a(u,f,l));if(C.isPlainObject(t)||t instanceof this.constructor)o(t,n);else if(C.isString(t)&&(t=t.trim())&&!kI(t))o(SI(t),n);else if(C.isObject(t)&&C.isSafeIterable(t)){let s=Object.create(null),l,u;for(const f of t){if(!C.isArray(f))throw new TypeError("Object iterator must return a key-value pair");u=f[0],C.hasOwnProp(s,u)?(l=s[u],s[u]=C.isArray(l)?[...l,f[1]]:[l,f[1]]):s[u]=f[1]}o(s,n)}else t!=null&&a(n,t,r);return this}get(t,n){if(t=tl(t),t){const r=C.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return TI(i);if(C.isFunction(n))return n.call(this,i,r);if(C.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=tl(t),t){const r=C.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Vh(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function a(o){if(o=tl(o),o){const s=C.findKey(r,o);s&&(!n||Vh(r,r[s],s,n))&&(delete r[s],i=!0)}}return C.isArray(t)?t.forEach(a):a(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const a=n[r];(!t||Vh(this,this[a],a,t,!0))&&(delete this[a],i=!0)}return i}normalize(t){const n=this,r={};return C.forEach(this,(i,a)=>{const o=C.findKey(r,a);if(o){n[o]=cf(i),delete n[a];return}const s=t?$I(a):String(a).trim();s!==a&&delete n[a],n[s]=cf(i),r[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return C.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&C.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[Ew]=this[Ew]={accessors:{}}).accessors,i=this.prototype;function a(o){const s=tl(o);r[s]||(CI(i,o),r[s]=!0)}return C.isArray(t)?t.forEach(a):a(t),this}};Rt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);C.reduceDescriptors(Rt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});C.freezeMethods(Rt);const NI="[REDACTED ****]";function MI(e){if(C.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(C.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}function RI(e,t){const n=new Set(t.map(a=>String(a).toLowerCase())),r=[],i=a=>{if(a===null||typeof a!="object"||C.isBuffer(a))return a;if(r.indexOf(a)!==-1)return;a instanceof Rt&&(a=a.toJSON()),r.push(a);let o;if(C.isArray(a))o=[],a.forEach((s,l)=>{const u=i(s);C.isUndefined(u)||(o[l]=u)});else{if(!C.isPlainObject(a)&&MI(a))return r.pop(),a;o=Object.create(null);for(const[s,l]of Object.entries(a)){const u=n.has(s.toLowerCase())?NI:i(l);C.isUndefined(u)||(o[s]=u)}}return r.pop(),o};return i(e)}let Q=class pj extends Error{static from(t,n,r,i,a,o){const s=new pj(t.message,n||t.code,r,i,a);return Object.defineProperty(s,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),s.name=t.name,t.status!=null&&s.status==null&&(s.status=t.status),o&&Object.assign(s,o),s}constructor(t,n,r,i,a){super(t),Object.defineProperty(this,"message",{__proto__:null,value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),r&&(this.config=r),i&&(this.request=i),a&&(this.response=a,this.status=a.status)}toJSON(){const t=this.config,n=t&&C.hasOwnProp(t,"redact")?t.redact:void 0,r=C.isArray(n)&&n.length>0?RI(t,n):C.toJSONObject(t);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:r,code:this.code,status:this.status}}};Q.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";Q.ERR_BAD_OPTION="ERR_BAD_OPTION";Q.ECONNABORTED="ECONNABORTED";Q.ETIMEDOUT="ETIMEDOUT";Q.ECONNREFUSED="ECONNREFUSED";Q.ERR_NETWORK="ERR_NETWORK";Q.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";Q.ERR_DEPRECATED="ERR_DEPRECATED";Q.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";Q.ERR_BAD_REQUEST="ERR_BAD_REQUEST";Q.ERR_CANCELED="ERR_CANCELED";Q.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";Q.ERR_INVALID_URL="ERR_INVALID_URL";Q.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const DI=null,dj=100;function Wv(e){return C.isPlainObject(e)||C.isArray(e)}function hj(e){return C.endsWith(e,"[]")?e.slice(0,-2):e}function Gh(e,t,n){return e?e.concat(t).map(function(i,a){return i=hj(i),!n&&a?"["+i+"]":i}).join(n?".":""):t}function II(e){return C.isArray(e)&&!e.some(Wv)}const LI=C.toFlatObject(C,{},null,function(t){return/^is[A-Z]/.test(t)});function vd(e,t,n){if(!C.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=C.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,b){return!C.isUndefined(b[v])});const r=n.metaTokens,i=n.visitor||g,a=n.dots,o=n.indexes,s=n.Blob||typeof Blob<"u"&&Blob,l=n.maxDepth===void 0?dj:n.maxDepth,u=s&&C.isSpecCompliantForm(t),f=[];if(!C.isFunction(i))throw new TypeError("visitor must be a function");function c(h){if(h===null)return"";if(C.isDate(h))return h.toISOString();if(C.isBoolean(h))return h.toString();if(!u&&C.isBlob(h))throw new Q("Blob is not supported. Use a Buffer instead.");if(C.isArrayBuffer(h)||C.isTypedArray(h)){if(u&&typeof s=="function")return new s([h]);if(typeof Buffer<"u")return Buffer.from(h);throw new Q("Blob is not supported. Use a Buffer instead.",Q.ERR_NOT_SUPPORT)}return h}function p(h){if(h>l)throw new Q("Object is too deeply nested ("+h+" levels). Max depth: "+l,Q.ERR_FORM_DATA_DEPTH_EXCEEDED)}function d(h,v){if(l===1/0)return JSON.stringify(h);const b=[];return JSON.stringify(h,function(x,O){if(!C.isObject(O))return O;for(;b.length&&b[b.length-1]!==this;)b.pop();return b.push(O),p(v+b.length-1),O})}function g(h,v,b){let w=h;if(C.isReactNative(t)&&C.isReactNativeBlob(h))return t.append(Gh(b,v,a),c(h)),!1;if(h&&!b&&typeof h=="object"){if(C.endsWith(v,"{}"))v=r?v:v.slice(0,-2),h=d(h,1);else if(C.isArray(h)&&II(h)||(C.isFileList(h)||C.endsWith(v,"[]"))&&(w=C.toArray(h)))return v=hj(v),w.forEach(function(O,S){!(C.isUndefined(O)||O===null)&&t.append(o===!0?Gh([v],S,a):o===null?v:v+"[]",c(O))}),!1}return Wv(h)?!0:(t.append(Gh(b,v,a),c(h)),!1)}const m=Object.assign(LI,{defaultVisitor:g,convertValue:c,isVisitable:Wv});function y(h,v,b=0){if(!C.isUndefined(h)){if(p(b),f.indexOf(h)!==-1)throw new Error("Circular reference detected in "+v.join("."));f.push(h),C.forEach(h,function(x,O){(!(C.isUndefined(x)||x===null)&&i.call(t,x,C.isString(O)?O.trim():O,v,m))===!0&&y(x,v?v.concat(O):[O],b+1)}),f.pop()}}if(!C.isObject(e))throw new TypeError("data must be an object");return y(e),t}function jw(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(r){return t[r]})}function M0(e,t){this._pairs=[],e&&vd(e,this,t)}const mj=M0.prototype;mj.append=function(t,n){this._pairs.push([t,n])};mj.toString=function(t){const n=t?r=>t.call(this,r,jw):jw;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function FI(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function vj(e,t,n){if(!t)return e;e=e||"";const r=C.isFunction(n)?{serialize:n}:n,i=C.getSafeProp(r,"encode")||FI,a=C.getSafeProp(r,"serialize");let o;if(a?o=a(t,r):o=C.isURLSearchParams(t)?t.toString():new M0(t,r).toString(i),o){const s=e.indexOf("#");s!==-1&&(e=e.slice(0,s)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class Tw{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){C.forEach(this.handlers,function(r){r!==null&&t(r)})}}const R0={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},BI=typeof URLSearchParams<"u"?URLSearchParams:M0,zI=typeof FormData<"u"?FormData:null,UI=typeof Blob<"u"?Blob:null,WI={isBrowser:!0,classes:{URLSearchParams:BI,FormData:zI,Blob:UI},protocols:["http","https","file","blob","url","data"]},D0=typeof window<"u"&&typeof document<"u",Hv=typeof navigator=="object"&&navigator||void 0,HI=D0&&(!Hv||["ReactNative","NativeScript","NS"].indexOf(Hv.product)<0),qI=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",KI=D0&&window.location.href||"http://localhost",VI=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:D0,hasStandardBrowserEnv:HI,hasStandardBrowserWebWorkerEnv:qI,navigator:Hv,origin:KI},Symbol.toStringTag,{value:"Module"})),_t={...VI,...WI};function GI(e,t){return vd(e,new _t.classes.URLSearchParams,{visitor:function(n,r,i,a){return _t.isNode&&C.isBuffer(n)?(this.append(r,n.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)},...t})}const kw=dj;function yj(e){if(e>kw)throw new Q("FormData field is too deeply nested ("+e+" levels). Max depth: "+kw,Q.ERR_FORM_DATA_DEPTH_EXCEEDED)}function XI(e){const t=[],n=/\w+|\[(\w*)]/g;let r;for(;(r=n.exec(e))!==null;)yj(t.length),t.push(r[0]==="[]"?"":r[1]||r[0]);return t}function QI(e){const t={},n=Object.keys(e);let r;const i=n.length;let a;for(r=0;r=n.length;return o=!o&&C.isArray(i)?i.length:o,l?(C.hasOwnProp(i,o)?i[o]=C.isArray(i[o])?i[o].concat(r):[i[o],r]:i[o]=r,!s):((!C.hasOwnProp(i,o)||!C.isObject(i[o]))&&(i[o]=[]),t(n,r,i[o],a)&&C.isArray(i[o])&&(i[o]=QI(i[o])),!s)}if(C.isFormData(e)&&C.isFunction(e.entries)){const n={};return C.forEachEntry(e,(r,i)=>{t(XI(r),i,n,0)}),n}return null}const Ga=(e,t)=>e!=null&&C.hasOwnProp(e,t)?e[t]:void 0;function YI(e,t,n){if(C.isString(e))try{return(t||JSON.parse)(e),C.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Zu={transitional:R0,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,a=C.isObject(t);if(a&&C.isHTMLForm(t)&&(t=new FormData(t)),C.isFormData(t))return i?JSON.stringify(gj(t)):t;if(C.isArrayBuffer(t)||C.isBuffer(t)||C.isStream(t)||C.isFile(t)||C.isBlob(t)||C.isReadableStream(t))return t;if(C.isArrayBufferView(t))return t.buffer;if(C.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(a){const l=Ga(this,"formSerializer");if(r.indexOf("application/x-www-form-urlencoded")>-1)return GI(t,l).toString();if((s=C.isFileList(t))||r.indexOf("multipart/form-data")>-1){const u=Ga(this,"env"),f=u&&u.FormData;return vd(s?{"files[]":t}:t,f&&new f,l)}}return a||i?(n.setContentType("application/json",!1),YI(t)):t}],transformResponse:[function(t){const n=Ga(this,"transitional")||Zu.transitional,r=n&&n.forcedJSONParsing,i=Ga(this,"responseType"),a=i==="json";if(C.isResponse(t)||C.isReadableStream(t))return t;if(t&&C.isString(t)&&(r&&!i||a)){const s=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,Ga(this,"parseReviver"))}catch(l){if(s)throw l.name==="SyntaxError"?Q.from(l,Q.ERR_BAD_RESPONSE,this,null,Ga(this,"response")):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:_t.classes.FormData,Blob:_t.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};C.forEach(["delete","get","head","post","put","patch","query"],e=>{Zu.headers[e]={}});function Xh(e,t){const n=this||Zu,r=t||n,i=Rt.from(r.headers);let a=r.data;return C.forEach(e,function(s){a=s.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function bj(e){return!!(e&&e.__CANCEL__)}let ec=class extends Q{constructor(t,n,r){super(t??"canceled",Q.ERR_CANCELED,n,r),this.name="CanceledError",this.__CANCEL__=!0}};function xj(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Q("Request failed with status code "+n.status,n.status>=400&&n.status<500?Q.ERR_BAD_REQUEST:Q.ERR_BAD_RESPONSE,n.config,n.request,n))}function JI(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}function ZI(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,a=0,o;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),f=r[a];o||(o=u),n[i]=l,r[i]=u;let c=a,p=0;for(;c!==i;)p+=n[c++],c=c%e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),u-o{n=f,i=null,a&&(clearTimeout(a),a=null),e(...u)};return[(...u)=>{const f=Date.now(),c=f-n;c>=r?o(u,f):(i=u,a||(a=setTimeout(()=>{a=null,o(i)},r-c)))},()=>i&&o(i)]}const Uf=(e,t,n=3)=>{let r=0;const i=ZI(50,250);return eL(a=>{if(!a||typeof a.loaded!="number")return;const o=a.loaded,s=a.lengthComputable?a.total:void 0,l=s!=null?Math.min(o,s):o,u=Math.max(0,l-r),f=i(u);r=Math.max(r,l);const c={loaded:l,total:s,progress:s?l/s:void 0,bytes:u,rate:f||void 0,estimated:f&&s?(s-l)/f:void 0,event:a,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(c)},n)},$w=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Cw=e=>(...t)=>C.asap(()=>e(...t)),tL=_t.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,_t.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(_t.origin),_t.navigator&&/(msie|trident)/i.test(_t.navigator.userAgent)):()=>!0,nL=_t.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>"u")return;const s=[`${e}=${encodeURIComponent(t)}`];C.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),C.isString(r)&&s.push(`path=${r}`),C.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push("secure"),C.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.split(";");for(let n=0;ne instanceof Rt?{...e}:e;function $a(e,t){e=e||{},t=t||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(f,c,p,d){return C.isPlainObject(f)&&C.isPlainObject(c)?C.merge.call({caseless:d},f,c):C.isPlainObject(c)?C.merge({},c):C.isArray(c)?c.slice():c}function i(f,c,p,d){if(C.isUndefined(c)){if(!C.isUndefined(f))return r(void 0,f,p,d)}else return r(f,c,p,d)}function a(f,c){if(!C.isUndefined(c))return r(void 0,c)}function o(f,c){if(C.isUndefined(c)){if(!C.isUndefined(f))return r(void 0,f)}else return r(void 0,c)}function s(f){const c=C.hasOwnProp(t,"transitional")?t.transitional:void 0;if(!C.isUndefined(c))if(C.isPlainObject(c)){if(C.hasOwnProp(c,f))return c[f]}else return;const p=C.hasOwnProp(e,"transitional")?e.transitional:void 0;if(C.isPlainObject(p)&&C.hasOwnProp(p,f))return p[f]}function l(f,c,p){if(C.hasOwnProp(t,p))return r(f,c);if(C.hasOwnProp(e,p))return r(void 0,f)}const u={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:l,headers:(f,c,p)=>i(Mw(f),Mw(c),p,!0)};return C.forEach(Object.keys({...e,...t}),function(c){if(c==="__proto__"||c==="constructor"||c==="prototype")return;const p=C.hasOwnProp(u,c)?u[c]:i,d=C.hasOwnProp(e,c)?e[c]:void 0,g=C.hasOwnProp(t,c)?t[c]:void 0,m=p(d,g,c);C.isUndefined(m)&&p!==l||(n[c]=m)}),C.hasOwnProp(t,"validateStatus")&&C.isUndefined(t.validateStatus)&&s("validateStatusUndefinedResolves")===!1&&(C.hasOwnProp(e,"validateStatus")?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}const uL=["content-type","content-length"];function cL(e,t,n){if(n!=="content-only"){e.set(t);return}Object.entries(t||{}).forEach(([r,i])=>{uL.includes(r.toLowerCase())&&e.set(r,i)})}const fL=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16)));function Oj(e){const t=$a({},e),n=p=>C.hasOwnProp(t,p)?t[p]:void 0,r=n("data");let i=n("withXSRFToken");const a=n("xsrfHeaderName"),o=n("xsrfCookieName");let s=n("headers");const l=n("auth"),u=n("baseURL"),f=n("allowAbsoluteUrls"),c=n("url");if(t.headers=s=Rt.from(s),t.url=vj(wj(u,c,f,t),n("params"),n("paramsSerializer")),l){const p=C.getSafeProp(l,"username")||"",d=C.getSafeProp(l,"password")||"";try{s.set("Authorization","Basic "+btoa(p+":"+(d?fL(d):"")))}catch(g){throw Q.from(g,Q.ERR_BAD_OPTION_VALUE,e)}}if(C.isFormData(r)&&(_t.hasStandardBrowserEnv||_t.hasStandardBrowserWebWorkerEnv||C.isReactNative(r)?s.setContentType(void 0):C.isFunction(r.getHeaders)&&cL(s,r.getHeaders(),n("formDataHeaderPolicy"))),_t.hasStandardBrowserEnv&&(C.isFunction(i)&&(i=i(t)),i===!0||i==null&&tL(t.url))){const d=a&&o&&nL.read(o);d&&s.set(a,d)}return t}const pL=typeof XMLHttpRequest<"u",dL=pL&&function(e){return new Promise(function(n,r){const i=Oj(e);let a=i.data;const o=Rt.from(i.headers).normalize();let{responseType:s,onUploadProgress:l,onDownloadProgress:u}=i,f,c,p,d,g;function m(){d&&d(),g&&g(),i.cancelToken&&i.cancelToken.unsubscribe(f),i.signal&&i.signal.removeEventListener("abort",f)}let y=new XMLHttpRequest;y.open(i.method.toUpperCase(),i.url,!0),y.timeout=i.timeout;function h(){if(!y)return;const b=Rt.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders()),x={data:!s||s==="text"||s==="json"?y.responseText:y.response,status:y.status,statusText:y.statusText,headers:b,config:e,request:y};xj(function(S){n(S),m()},function(S){r(S),m()},x),y=null}"onloadend"in y?y.onloadend=h:y.onreadystatechange=function(){!y||y.readyState!==4||y.status===0&&!(y.responseURL&&y.responseURL.startsWith("file:"))||setTimeout(h)},y.onabort=function(){y&&(r(new Q("Request aborted",Q.ECONNABORTED,e,y)),m(),y=null)},y.onerror=function(w){const x=w&&w.message?w.message:"Network Error",O=new Q(x,Q.ERR_NETWORK,e,y);O.event=w||null,r(O),m(),y=null},y.ontimeout=function(){let w=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const x=i.transitional||R0;i.timeoutErrorMessage&&(w=i.timeoutErrorMessage),r(new Q(w,x.clarifyTimeoutError?Q.ETIMEDOUT:Q.ECONNABORTED,e,y)),m(),y=null},a===void 0&&o.setContentType(null),"setRequestHeader"in y&&C.forEach(fj(o),function(w,x){y.setRequestHeader(x,w)}),C.isUndefined(i.withCredentials)||(y.withCredentials=!!i.withCredentials),s&&s!=="json"&&(y.responseType=i.responseType),u&&([p,g]=Uf(u,!0),y.addEventListener("progress",p)),l&&y.upload&&([c,d]=Uf(l),y.upload.addEventListener("progress",c),y.upload.addEventListener("loadend",d)),(i.cancelToken||i.signal)&&(f=b=>{y&&(r(!b||b.type?new ec(null,e,y):b),y.abort(),m(),y=null)},i.cancelToken&&i.cancelToken.subscribe(f),i.signal&&(i.signal.aborted?f():i.signal.addEventListener("abort",f)));const v=JI(i.url);if(v&&!_t.protocols.includes(v)){r(new Q("Unsupported protocol "+v+":",Q.ERR_BAD_REQUEST,e)),m();return}y.send(a||null)})},hL=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const n=new AbortController;let r=!1;const i=function(l){if(!r){r=!0,o();const u=l instanceof Error?l:this.reason;n.abort(u instanceof Q?u:new ec(u instanceof Error?u.message:u))}};let a=t&&setTimeout(()=>{a=null,i(new Q(`timeout of ${t}ms exceeded`,Q.ETIMEDOUT))},t);const o=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(l=>{l.unsubscribe?l.unsubscribe(i):l.removeEventListener("abort",i)}),e=null)};e.forEach(l=>l.addEventListener("abort",i,{once:!0}));const{signal:s}=n;return s.unsubscribe=()=>C.asap(o),s},mL=function*(e,t){let n=e.byteLength;if(n{const i=vL(e,t);let a=0,o,s=l=>{o||(o=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:u,value:f}=await i.next();if(u){s(),l.close();return}let c=f.byteLength;if(n){let p=a+=c;n(p)}l.enqueue(new Uint8Array(f))}catch(u){throw s(u),u}},cancel(l){return s(l),i.return()}},{highWaterMark:2})},Wf=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,gL=(e,t,n)=>t+2d>=2&&r.charCodeAt(d-2)===37&&r.charCodeAt(d-1)===51&&(r.charCodeAt(d)===68||r.charCodeAt(d)===100);u>=0&&(r.charCodeAt(u)===61?(l++,u--):f(u)&&(l++,u-=3)),l===1&&u>=0&&(r.charCodeAt(u)===61||f(u))&&l++;const p=Math.floor(o/4)*3-(l||0);return p>0?p:0}let a=0;for(let o=0,s=r.length;o=55296&&l<=56319&&o+1=56320&&u<=57343?(a+=4,o++):a+=3}else a+=3}return a}const I0="1.18.1",Dw=64*1024,{isFunction:Nc}=C,xL=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16))),Iw=e=>{if(!C.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},Lw=(e,...t)=>{try{return!!e(...t)}catch{return!1}},wL=e=>{const t=e.indexOf("://");let n=e;return t!==-1&&(n=n.slice(t+3)),n.includes("@")||n.includes(":")},OL=e=>{const t=C.global!==void 0&&C.global!==null?C.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=C.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:i,Request:a,Response:o}=e,s=i?Nc(i):typeof fetch=="function",l=Nc(a),u=Nc(o);if(!s)return!1;const f=s&&Nc(n),c=s&&(typeof r=="function"?(h=>v=>h.encode(v))(new r):async h=>new Uint8Array(await new a(h).arrayBuffer())),p=l&&f&&Lw(()=>{let h=!1;const v=new a(_t.origin,{body:new n,method:"POST",get duplex(){return h=!0,"half"}}),b=v.headers.has("Content-Type");return v.body!=null&&v.body.cancel(),h&&!b}),d=u&&f&&Lw(()=>C.isReadableStream(new o("").body)),g={stream:d&&(h=>h.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(h=>{!g[h]&&(g[h]=(v,b)=>{let w=v&&v[h];if(w)return w.call(v);throw new Q(`Response type '${h}' is not supported`,Q.ERR_NOT_SUPPORT,b)})});const m=async h=>{if(h==null)return 0;if(C.isBlob(h))return h.size;if(C.isSpecCompliantForm(h))return(await new a(_t.origin,{method:"POST",body:h}).arrayBuffer()).byteLength;if(C.isArrayBufferView(h)||C.isArrayBuffer(h))return h.byteLength;if(C.isURLSearchParams(h)&&(h=h+""),C.isString(h))return(await c(h)).byteLength},y=async(h,v)=>{const b=C.toFiniteNumber(h.getContentLength());return b??m(v)};return async h=>{let{url:v,method:b,data:w,signal:x,cancelToken:O,timeout:S,onDownloadProgress:_,onUploadProgress:E,responseType:k,headers:N,withCredentials:$="same-origin",fetchOptions:L,maxContentLength:M,maxBodyLength:D}=Oj(h);const B=C.isNumber(M)&&M>-1,W=C.isNumber(D)&&D>-1,R=ie=>C.hasOwnProp(h,ie)?h[ie]:void 0;let I=i||fetch;k=k?(k+"").toLowerCase():"text";let z=hL([x,O&&O.toAbortSignal()],S),K=null;const H=z&&z.unsubscribe&&(()=>{z.unsubscribe()});let te,ce=null;const ye=()=>new Q("Request body larger than maxBodyLength limit",Q.ERR_BAD_REQUEST,h,K);try{let ie;const be=R("auth");if(be){const ee=C.getSafeProp(be,"username")||"",_e=C.getSafeProp(be,"password")||"";ie={username:ee,password:_e}}if(wL(v)){const ee=new URL(v,_t.origin);if(!ie&&(ee.username||ee.password)){const _e=Iw(ee.username),ze=Iw(ee.password);ie={username:_e,password:ze}}(ee.username||ee.password)&&(ee.username="",ee.password="",v=ee.href)}if(ie&&(N.delete("authorization"),N.set("Authorization","Basic "+btoa(xL((ie.username||"")+":"+(ie.password||""))))),B&&typeof v=="string"&&v.startsWith("data:")&&bL(v)>M)throw new Q("maxContentLength size of "+M+" exceeded",Q.ERR_BAD_RESPONSE,h,K);if(W&&b!=="get"&&b!=="head"){const ee=await m(w);if(typeof ee=="number"&&isFinite(ee)&&(te=ee,ee>D))throw ye()}const Ge=W&&(C.isReadableStream(w)||C.isStream(w)),G=(ee,_e,ze)=>Rw(ee,Dw,mt=>{if(W&&mt>D)throw ce=ye();_e&&_e(mt)},ze);if(p&&b!=="get"&&b!=="head"&&(E||Ge)){if(te=te??await y(N,w),te!==0||Ge){let ee=new a(v,{method:"POST",body:w,duplex:"half"}),_e;if(C.isFormData(w)&&(_e=ee.headers.get("content-type"))&&N.setContentType(_e),ee.body){const[ze,mt]=E&&$w(te,Uf(Cw(E)))||[];w=G(ee.body,ze,mt)}}}else if(Ge&&!l&&f&&b!=="get"&&b!=="head")w=G(w);else if(Ge&&l&&!p&&b!=="get"&&b!=="head")throw new Q("Stream request bodies are not supported by the current fetch implementation",Q.ERR_NOT_SUPPORT,h,K);C.isString($)||($=$?"include":"omit");const fe=l&&"credentials"in a.prototype;if(C.isFormData(w)){const ee=N.getContentType();ee&&/^multipart\/form-data/i.test(ee)&&!/boundary=/i.test(ee)&&N.delete("content-type")}N.set("User-Agent","axios/"+I0,!1);const le={...L,signal:z,method:b.toUpperCase(),headers:fj(N.normalize()),body:w,duplex:"half",credentials:fe?$:void 0};K=l&&new a(v,le);let U=await(l?I(K,L):I(v,le));const we=Rt.from(U.headers);if(B){const ee=C.toFiniteNumber(we.getContentLength());if(ee!=null&&ee>M)throw new Q("maxContentLength size of "+M+" exceeded",Q.ERR_BAD_RESPONSE,h,K)}const me=d&&(k==="stream"||k==="response");if(d&&U.body&&(_||B||me&&H)){const ee={};["status","statusText","headers"].forEach(It=>{ee[It]=U[It]});const _e=C.toFiniteNumber(we.getContentLength()),[ze,mt]=_&&$w(_e,Uf(Cw(_),!0))||[];let xn=0;const Vt=It=>{if(B&&(xn=It,xn>M))throw new Q("maxContentLength size of "+M+" exceeded",Q.ERR_BAD_RESPONSE,h,K);ze&&ze(It)};U=new o(Rw(U.body,Dw,Vt,()=>{mt&&mt(),H&&H()}),ee)}k=k||"text";let Oe=await g[C.findKey(g,k)||"text"](U,h);if(B&&!d&&!me){let ee;if(Oe!=null&&(typeof Oe.byteLength=="number"?ee=Oe.byteLength:typeof Oe.size=="number"?ee=Oe.size:typeof Oe=="string"&&(ee=typeof r=="function"?new r().encode(Oe).byteLength:Oe.length)),typeof ee=="number"&&ee>M)throw new Q("maxContentLength size of "+M+" exceeded",Q.ERR_BAD_RESPONSE,h,K)}return!me&&H&&H(),await new Promise((ee,_e)=>{xj(ee,_e,{data:Oe,headers:Rt.from(U.headers),status:U.status,statusText:U.statusText,config:h,request:K})})}catch(ie){if(H&&H(),z&&z.aborted&&z.reason instanceof Q){const be=z.reason;throw be.config=h,K&&(be.request=K),ie!==be&&Object.defineProperty(be,"cause",{__proto__:null,value:ie,writable:!0,enumerable:!1,configurable:!0}),be}if(ce)throw K&&!ce.request&&(ce.request=K),ce;if(ie instanceof Q)throw K&&!ie.request&&(ie.request=K),ie;if(ie&&ie.name==="TypeError"&&/Load failed|fetch/i.test(ie.message)){const be=new Q("Network Error",Q.ERR_NETWORK,h,K,ie&&ie.response);throw Object.defineProperty(be,"cause",{__proto__:null,value:ie.cause||ie,writable:!0,enumerable:!1,configurable:!0}),be}throw Q.from(ie,ie&&ie.code,h,K,ie&&ie.response)}}},SL=new Map,Sj=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:i}=t,a=[r,i,n];let o=a.length,s=o,l,u,f=SL;for(;s--;)l=a[s],u=f.get(l),u===void 0&&f.set(l,u=s?new Map:OL(t)),f=u;return u};Sj();const L0={http:DI,xhr:dL,fetch:{get:Sj}};C.forEach(L0,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const Fw=e=>`- ${e}`,PL=e=>C.isFunction(e)||e===null||e===!1;function _L(e,t){e=C.isArray(e)?e:[e];const{length:n}=e;let r,i;const a={};for(let o=0;o`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let s=n?o.length>1?`since : -`+o.map(Fw).join(` -`):" "+Fw(o[0]):"as no adapter specified";throw new Q("There is no suitable adapter to dispatch the request "+s,Q.ERR_NOT_SUPPORT)}return i}const Pj={getAdapter:_L,adapters:L0};function Qh(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ec(null,e)}function Bw(e){return Qh(e),e.headers=Rt.from(e.headers),e.data=Xh.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Pj.getAdapter(e.adapter||Zu.adapter,e)(e).then(function(r){Qh(e),e.response=r;try{r.data=Xh.call(e,e.transformResponse,r)}finally{delete e.response}return r.headers=Rt.from(r.headers),r},function(r){if(!bj(r)&&(Qh(e),r&&r.response)){e.response=r.response;try{r.response.data=Xh.call(e,e.transformResponse,r.response)}finally{delete e.response}r.response.headers=Rt.from(r.response.headers)}return Promise.reject(r)})}const yd={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{yd[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const zw={};yd.transitional=function(t,n,r){function i(a,o){return"[Axios v"+I0+"] Transitional option '"+a+"'"+o+(r?". "+r:"")}return(a,o,s)=>{if(t===!1)throw new Q(i(o," has been removed"+(n?" in "+n:"")),Q.ERR_DEPRECATED);return n&&!zw[o]&&(zw[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(a,o,s):!0}};yd.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function AL(e,t,n){if(typeof e!="object"||e===null)throw new Q("options must be an object",Q.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const a=r[i],o=Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;if(o){const s=e[a],l=s===void 0||o(s,a,e);if(l!==!0)throw new Q("option "+a+" must be "+l,Q.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Q("Unknown option "+a,Q.ERR_BAD_OPTION)}}const ff={assertOptions:AL,validators:yd},kt=ff.validators;let wa=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Tw,response:new Tw}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const a=(()=>{if(!i.stack)return"";const o=i.stack.indexOf(` -`);return o===-1?"":i.stack.slice(o+1)})();try{if(!r.stack)r.stack=a;else if(a){const o=a.indexOf(` -`),s=o===-1?-1:a.indexOf(` -`,o+1),l=s===-1?"":a.slice(s+1);String(r.stack).endsWith(l)||(r.stack+=` -`+a)}}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=$a(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:a}=n;r!==void 0&&ff.assertOptions(r,{silentJSONParsing:kt.transitional(kt.boolean),forcedJSONParsing:kt.transitional(kt.boolean),clarifyTimeoutError:kt.transitional(kt.boolean),legacyInterceptorReqResOrdering:kt.transitional(kt.boolean),advertiseZstdAcceptEncoding:kt.transitional(kt.boolean),validateStatusUndefinedResolves:kt.transitional(kt.boolean)},!1),i!=null&&(C.isFunction(i)?n.paramsSerializer={serialize:i}:ff.assertOptions(i,{encode:kt.function,serialize:kt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ff.assertOptions(n,{baseUrl:kt.spelling("baseURL"),withXsrfToken:kt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=a&&C.merge(a.common,a[n.method]);a&&C.forEach(["delete","get","head","post","put","patch","query","common"],g=>{delete a[g]}),n.headers=Rt.concat(o,a);const s=[];let l=!0;this.interceptors.request.forEach(function(m){if(typeof m.runWhen=="function"&&m.runWhen(n)===!1)return;l=l&&m.synchronous;const y=n.transitional||R0;y&&y.legacyInterceptorReqResOrdering?s.unshift(m.fulfilled,m.rejected):s.push(m.fulfilled,m.rejected)});const u=[];this.interceptors.response.forEach(function(m){u.push(m.fulfilled,m.rejected)});let f,c=0,p;if(!l){const g=[Bw.bind(this),void 0];for(g.unshift(...s),g.push(...u),p=g.length,f=Promise.resolve(n);c{if(!r._listeners)return;let a=r._listeners.length;for(;a-- >0;)r._listeners[a](i);r._listeners=null}),this.promise.then=i=>{let a;const o=new Promise(s=>{r.subscribe(s),a=s}).then(i);return o.cancel=function(){r.unsubscribe(a)},o},t(function(a,o,s){r.reason||(r.reason=new ec(a,o,s),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new _j(function(i){t=i}),cancel:t}}};function jL(e){return function(n){return e.apply(null,n)}}function TL(e){return C.isObject(e)&&e.isAxiosError===!0}const qv={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(qv).forEach(([e,t])=>{qv[t]=e});function Aj(e){const t=new wa(e),n=nj(wa.prototype.request,t);return C.extend(n,wa.prototype,t,{allOwnKeys:!0}),C.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return Aj($a(e,i))},n}const tt=Aj(Zu);tt.Axios=wa;tt.CanceledError=ec;tt.CancelToken=EL;tt.isCancel=bj;tt.VERSION=I0;tt.toFormData=vd;tt.AxiosError=Q;tt.Cancel=tt.CanceledError;tt.all=function(t){return Promise.all(t)};tt.spread=jL;tt.isAxiosError=TL;tt.mergeConfig=$a;tt.AxiosHeaders=Rt;tt.formToJSON=e=>gj(C.isHTMLForm(e)?new FormData(e):e);tt.getAdapter=Pj.getAdapter;tt.HttpStatusCode=qv;tt.default=tt;const{Axios:Nse,AxiosError:Mse,CanceledError:Rse,isCancel:Dse,CancelToken:Ise,VERSION:Lse,all:Fse,Cancel:Bse,isAxiosError:zse,spread:Use,toFormData:Wse,AxiosHeaders:Hse,HttpStatusCode:qse,formToJSON:Kse,getAdapter:Vse,mergeConfig:Gse,create:Xse}=tt,Ej="http://localhost:8000",aa=tt.create({baseURL:Ej,timeout:3e4});aa.interceptors.request.use(e=>(e.headers["X-Correlation-ID"]=crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substring(7),e));aa.interceptors.response.use(e=>e,async e=>{const t=e.config;if((!t||!t.retry)&&(t.retry=3,t.retryCount=0),t.retryCountsetTimeout(r,n)),aa(t)}return Promise.reject(e)});const ru={predict:async(e,t=null)=>{var n,r;try{return(await aa.post("/predict",{text:e,language:t})).data}catch(i){throw ho.error(((r=(n=i.response)==null?void 0:n.data)==null?void 0:r.detail)||"Prediction failed"),i}},uploadBatch:async e=>{var t,n;try{const r=new FormData;return r.append("file",e),(await aa.post("/batch",r)).data}catch(r){throw ho.error(((n=(t=r.response)==null?void 0:t.data)==null?void 0:n.detail)||"Batch upload failed"),r}},getBatchStatus:async e=>(await aa.get(`/status/${e}`)).data,getHealth:async()=>(await aa.get("/health")).data},kL=[{path:"/predict",icon:"psychology",label:"Predictor"},{path:"/batch",icon:"cloud_upload",label:"Batch Analytics"},{path:"/monitor",icon:"monitoring",label:"System Health"}];function it({name:e,filled:t=!1,size:n=20,className:r=""}){return P.jsx("span",{className:`material-symbols-outlined ${r}`,style:{fontSize:n,fontVariationSettings:t?"'FILL' 1, 'wght' 400":"'FILL' 0, 'wght' 300"},children:e})}function $L({isOpen:e,onClose:t}){const n=Ba(),{data:r}=_0({queryKey:["health"],queryFn:ru.getHealth,refetchInterval:3e4}),i=(r==null?void 0:r.status)==="ok";return P.jsxs(P.Fragment,{children:[e&&P.jsx("div",{className:"fixed inset-0 bg-black/60 backdrop-blur-sm z-40 md:hidden",onClick:t,"aria-hidden":"true"}),P.jsxs("nav",{"aria-label":"Main navigation",className:` - fixed left-0 top-0 h-screen w-64 z-50 flex flex-col - bg-surface-container border-r border-white/[0.07] - transition-transform duration-250 ease-out - ${e?"translate-x-0":"-translate-x-full"} - md:translate-x-0 - `,children:[P.jsxs("div",{className:"flex items-center gap-3 px-xl py-xl",children:[P.jsx(it,{name:"psychology",filled:!0,size:28,className:"text-primary"}),P.jsxs("div",{children:[P.jsx("h1",{className:"text-title-lg font-semibold text-primary leading-tight",children:"SentimentAI"}),P.jsx("p",{className:"font-mono text-label-sm text-on-surface-variant",children:"Analysis Engine v2.4"})]})]}),P.jsx("div",{className:"px-xl mb-xl",children:P.jsxs(Kh,{to:"/predict",onClick:t,className:"btn-primary w-full text-sm",children:[P.jsx(it,{name:"add",size:18}),"New Analysis"]})}),P.jsx("ul",{className:"flex-1 px-sm space-y-0.5 overflow-y-auto",children:kL.map(({path:a,icon:o,label:s})=>{const l=n.pathname===a;return P.jsx("li",{children:P.jsxs(Kh,{to:a,onClick:t,className:l?"nav-item-active":"nav-item","aria-current":l?"page":void 0,children:[P.jsx(it,{name:o,filled:l,size:20}),P.jsx("span",{children:s})]})},a)})}),P.jsxs("div",{className:"px-sm pt-sm pb-xl border-t border-white/[0.06] space-y-0.5 mt-auto",children:[P.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 mb-1",children:[P.jsx("span",{className:`w-2 h-2 rounded-full flex-shrink-0 ${i?"bg-tertiary shadow-glow-positive":"bg-error shadow-glow-negative animate-pulse"}`}),P.jsxs("span",{className:"font-mono text-label-md text-on-surface-variant",children:["API ",i?"Online":"Offline"]})]}),P.jsxs(Kh,{to:"/monitor",onClick:t,className:"nav-item",children:[P.jsx(it,{name:"settings",size:20}),P.jsx("span",{children:"Settings"})]}),P.jsxs("a",{href:"http://localhost:8000/docs",target:"_blank",rel:"noopener noreferrer",className:"nav-item",children:[P.jsx(it,{name:"menu_book",size:20}),P.jsx("span",{children:"API Docs"})]})]})]})]})}const CL={"/predict":"Live Predictor","/batch":"Batch Analytics","/monitor":"System Monitor"};function NL(){const[e,t]=A.useState(!1),n=Ba(),r=CL[n.pathname]||"SentimentAI";return P.jsxs("div",{className:"min-h-screen bg-background flex",children:[P.jsx($D,{position:"top-right",toastOptions:{style:{background:"#222a3d",color:"#dae2fd",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"8px",fontSize:"14px"},success:{iconTheme:{primary:"#4edea3",secondary:"#0b1326"}},error:{iconTheme:{primary:"#ffb4ab",secondary:"#0b1326"}}}}),P.jsx($L,{isOpen:e,onClose:()=>t(!1)}),P.jsxs("div",{className:"flex-1 md:ml-64 flex flex-col min-h-screen",children:[P.jsxs("header",{className:`fixed top-0 right-0 left-0 md:left-64 h-16 z-30 - bg-surface/80 backdrop-blur-glass border-b border-white/[0.06] - flex items-center justify-between px-xl gap-4`,children:[P.jsxs("div",{className:"flex items-center gap-3",children:[P.jsx("button",{onClick:()=>t(!0),className:`md:hidden p-2 rounded-lg text-on-surface-variant hover:text-on-surface - hover:bg-white/[0.05] transition-colors`,"aria-label":"Open navigation",children:P.jsx(it,{name:"menu",size:22})}),P.jsxs("div",{className:"md:hidden flex items-center gap-2",children:[P.jsx(it,{name:"psychology",filled:!0,size:22,className:"text-primary"}),P.jsx("span",{className:"font-semibold text-on-surface",children:"SentimentAI"})]}),P.jsx("h2",{className:"hidden md:block text-body-md font-medium text-on-surface-variant",children:r})]}),P.jsxs("div",{className:"flex items-center gap-2",children:[P.jsx("button",{className:`p-2 rounded-lg text-on-surface-variant hover:text-on-surface - hover:bg-white/[0.05] transition-colors`,"aria-label":"Notifications",children:P.jsx(it,{name:"notifications",size:20})}),P.jsxs("a",{href:"http://localhost:8000/docs",target:"_blank",rel:"noopener noreferrer",className:`hidden sm:flex items-center gap-1.5 px-3 py-1.5 - border border-white/[0.12] rounded-lg - font-mono text-label-md text-on-surface-variant - hover:text-on-surface hover:border-white/25 - transition-colors duration-150`,children:[P.jsx(it,{name:"api",size:14}),"API Docs"]}),P.jsx("div",{className:`w-8 h-8 rounded-full bg-surface-container-highest - border border-white/[0.12] flex items-center justify-center - text-on-surface-variant text-xs font-medium select-none`,children:P.jsx(it,{name:"person",size:18})})]})]}),P.jsx("main",{className:"flex-1 pt-16 overflow-y-auto",children:P.jsx("div",{className:"max-w-[1280px] mx-auto px-lg md:px-3xl py-xl md:py-2xl",children:P.jsx($R,{})})}),P.jsx("footer",{className:"border-t border-white/[0.05] py-4 text-center font-mono text-label-sm text-on-surface-variant",children:"SentimentAI — Phase 6 Analytics Dashboard"})]})]})}const Yh=512;function ML(e){switch(e){case"positive":return"badge-positive";case"negative":return"badge-negative";case"conflict":return"badge-error";default:return"badge-neutral"}}function RL(e){switch(e){case"positive":return"highlight-positive";case"negative":return"highlight-negative";case"conflict":return"highlight-negative";default:return"highlight-neutral"}}function DL(e){return e==="positive"?"bg-tertiary":e==="negative"||e==="conflict"?"bg-error":"bg-outline"}function IL(e){return e==="positive"?"bg-tertiary":e==="negative"||e==="conflict"?"bg-error":"bg-outline"}function LL({text:e,aspects:t}){if(!t||t.length===0)return P.jsx("p",{className:"text-body-md text-on-surface leading-loose",children:e});const n=[...t].sort((a,o)=>a.start-o.start),r=[];let i=0;return n.forEach((a,o)=>{a.start>i&&r.push(P.jsx("span",{children:e.slice(i,a.start)},`t${o}`)),r.push(P.jsx("span",{className:RL(a.sentiment),title:`${a.sentiment} · ${Math.round(a.confidence*100)}%`,children:e.slice(a.start,a.end)},`a${o}`)),i=a.end}),iP.jsxs("div",{className:"bg-surface-container rounded-lg p-md space-y-2 border border-white/[0.06]",children:[P.jsxs("div",{className:"flex justify-between",children:[P.jsx(Xa,{className:"h-4 w-28"}),P.jsx(Xa,{className:"h-4 w-16"})]}),P.jsx(Xa,{className:"h-1.5 w-full"})]},e))]})}function zL({asp:e}){const t=Math.round(e.confidence*100);return P.jsxs("div",{className:"bg-surface-container rounded-lg p-md border border-white/[0.06] hover:border-white/[0.12] transition-colors animate-slide-in",children:[P.jsxs("div",{className:"flex justify-between items-center mb-2",children:[P.jsx("span",{className:"text-body-md text-on-surface font-medium",children:e.aspect}),P.jsxs("span",{className:ML(e.sentiment),children:[P.jsx("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 ${IL(e.sentiment)}`}),e.sentiment]})]}),P.jsxs("div",{className:"flex items-center gap-2",children:[P.jsx("span",{className:"font-mono text-label-sm text-on-surface-variant w-20",children:"Confidence"}),P.jsx("div",{className:"flex-1 h-1 bg-surface rounded-full overflow-hidden",children:P.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${DL(e.sentiment)}`,style:{width:`${t}%`}})}),P.jsxs("span",{className:`font-mono text-label-sm w-8 text-right ${e.sentiment==="positive"?"text-tertiary":e.sentiment==="negative"?"text-error":"text-on-surface-variant"}`,children:[t,"%"]})]})]})}function UL(){var l;const[e,t]=A.useState(""),[n,r]=A.useState(""),i=IE({mutationFn:u=>ru.predict(u.text,u.language||null)}),a=()=>{e.trim()&&i.mutate({text:e,language:n})},o=u=>{(u.metaKey||u.ctrlKey)&&u.key==="Enter"&&a()},s=i.data;return P.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-xl",children:[P.jsx("div",{className:"lg:col-span-7 flex flex-col",children:P.jsxs("div",{className:"card-low flex flex-col h-full",children:[P.jsxs("div",{className:"flex justify-between items-center mb-lg pb-md border-b border-white/[0.06]",children:[P.jsx("h3",{className:"font-mono text-label-md text-on-surface-variant uppercase tracking-wider",children:"Analyze Input"}),P.jsxs("div",{className:"flex items-center gap-2",children:[P.jsx("label",{htmlFor:"lang-select",className:"font-mono text-label-sm text-on-surface-variant",children:"Language"}),P.jsxs("select",{id:"lang-select",value:n,onChange:u=>r(u.target.value),className:"input-base py-1 text-body-sm",children:[P.jsx("option",{value:"",children:"Auto-detect"}),P.jsx("option",{value:"en",children:"English"}),P.jsx("option",{value:"hi",children:"Hindi"}),P.jsx("option",{value:"hinglish",children:"Hinglish"})]})]})]}),P.jsxs("div",{className:"flex-1 flex flex-col mb-lg",children:[P.jsx("label",{htmlFor:"review-text",className:"font-mono text-label-sm text-on-surface-variant mb-2",children:"Source Text"}),P.jsx("textarea",{id:"review-text",value:e,onChange:u=>t(u.target.value),onKeyDown:o,maxLength:Yh,placeholder:"Paste your review, article, or social media post here…","aria-label":"Review text input",className:"input-base flex-1 min-h-[260px] resize-none leading-relaxed"}),P.jsxs("div",{className:"flex justify-between mt-2",children:[P.jsx("span",{className:"font-mono text-label-sm text-on-surface-variant/50",children:"⌘ Enter to analyze"}),P.jsxs("span",{className:`font-mono text-label-sm ${e.length>=Yh?"text-error":"text-on-surface-variant/50"}`,children:[e.length," / ",Yh]})]})]}),P.jsx("button",{onClick:a,disabled:i.isPending||!e.trim(),className:"btn-primary","aria-label":"Run sentiment analysis",children:i.isPending?P.jsxs(P.Fragment,{children:[P.jsx("span",{className:"material-symbols-outlined animate-spin text-[16px]",children:"progress_activity"}),"Analyzing…"]}):P.jsxs(P.Fragment,{children:[P.jsx(it,{name:"bolt",size:16}),"Analyze"]})})]})}),P.jsx("div",{className:"lg:col-span-5 flex flex-col",children:P.jsxs("div",{className:"glass-panel rounded-xl flex flex-col h-full p-xl",children:[P.jsxs("div",{className:"flex justify-between items-center mb-lg pb-md border-b border-white/[0.06]",children:[P.jsx("h3",{className:"font-mono text-label-md text-on-surface-variant uppercase tracking-wider",children:"Analysis Results"}),s&&P.jsxs("div",{className:"flex items-center gap-3",children:[P.jsxs("span",{className:"flex items-center gap-1 bg-surface-container px-2 py-0.5 rounded border border-white/[0.08]",children:[P.jsx("span",{className:"font-mono text-label-sm text-on-surface-variant",children:"LANG:"}),P.jsx("span",{className:"font-mono text-label-sm text-primary uppercase",children:s.detected_language})]}),P.jsxs("span",{className:"flex items-center gap-1 text-on-surface-variant",children:[P.jsx(it,{name:"timer",size:14}),P.jsxs("span",{className:"font-mono text-label-sm",children:[(l=s.processing_time_ms)==null?void 0:l.toFixed(1),"ms"]})]})]})]}),!s&&!i.isPending&&P.jsx(FL,{}),i.isPending&&P.jsx(BL,{}),s&&P.jsxs("div",{className:"flex flex-col gap-lg flex-1 overflow-hidden animate-fade-in",children:[P.jsx("div",{className:"bg-surface border border-white/[0.06] rounded-lg p-md",children:P.jsx(LL,{text:s.text,aspects:s.aspects})}),P.jsxs("div",{className:"flex items-center gap-4 flex-wrap",children:[P.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-label-sm text-on-surface-variant",children:[P.jsx("span",{className:"w-3 h-3 rounded highlight-positive inline-block"})," Positive"]}),P.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-label-sm text-on-surface-variant",children:[P.jsx("span",{className:"w-3 h-3 rounded highlight-negative inline-block"})," Negative"]}),P.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-label-sm text-on-surface-variant",children:[P.jsx("span",{className:"w-3 h-3 rounded highlight-neutral inline-block"})," Neutral"]})]}),P.jsxs("div",{className:"flex-1 overflow-y-auto space-y-2 pr-1",children:[P.jsx("h4",{className:"font-mono text-label-sm text-on-surface-variant uppercase tracking-wider mb-2",children:"Extracted Aspects"}),s.aspects&&s.aspects.length>0?s.aspects.map((u,f)=>P.jsx(zL,{asp:u},f)):P.jsx("div",{className:"text-center py-8 rounded-lg border border-dashed border-white/[0.12] text-on-surface-variant text-body-sm",children:"No specific aspects detected"})]})]})]})})]})}function WL(){return P.jsxs("div",{className:"space-y-xl",children:[P.jsxs("div",{children:[P.jsx("h1",{className:"text-headline-md text-on-surface",children:"Live Sentiment Predictor"}),P.jsx("p",{className:"mt-1 text-body-md text-on-surface-variant max-w-2xl",children:"Enter text to analyze its aspects and sentiments in real-time. The model automatically identifies the language and extracts key phrases."})]}),P.jsx(UL,{})]})}var jj={exports:{}},HL="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",qL=HL,KL=qL;function Tj(){}function kj(){}kj.resetWarningCache=Tj;var VL=function(){function e(r,i,a,o,s,l){if(l!==KL){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:kj,resetWarningCache:Tj};return n.PropTypes=n,n};jj.exports=VL();var GL=jj.exports;const re=je(GL);function za(e,t,n,r){function i(a){return a instanceof n?a:new n(function(o){o(a)})}return new(n||(n=Promise))(function(a,o){function s(f){try{u(r.next(f))}catch(c){o(c)}}function l(f){try{u(r.throw(f))}catch(c){o(c)}}function u(f){f.done?a(f.value):i(f.value).then(s,l)}u((r=r.apply(e,t||[])).next())})}const XL=new Map([["1km","application/vnd.1000minds.decision-model+xml"],["3dml","text/vnd.in3d.3dml"],["3ds","image/x-3ds"],["3g2","video/3gpp2"],["3gp","video/3gp"],["3gpp","video/3gpp"],["3mf","model/3mf"],["7z","application/x-7z-compressed"],["7zip","application/x-7z-compressed"],["123","application/vnd.lotus-1-2-3"],["aab","application/x-authorware-bin"],["aac","audio/x-acc"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abw","application/x-abiword"],["ac","application/vnd.nokia.n-gage.ac+xml"],["ac3","audio/ac3"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acu","application/vnd.acucobol"],["acutc","application/vnd.acucorp"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afm","application/x-font-type1"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/pdf"],["aif","audio/x-aiff"],["aifc","audio/x-aiff"],["aiff","audio/x-aiff"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["amr","audio/amr"],["apk","application/vnd.android.package-archive"],["apng","image/apng"],["appcache","text/cache-manifest"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["arc","application/x-freearc"],["arj","application/x-arj"],["asc","application/pgp-signature"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asx","video/x-ms-asf"],["atc","application/vnd.acucorp"],["atom","application/atom+xml"],["atomcat","application/atomcat+xml"],["atomdeleted","application/atomdeleted+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au","audio/x-au"],["avi","video/x-msvideo"],["avif","image/avif"],["aw","application/applixware"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azv","image/vnd.airzip.accelerator.azv"],["azw","application/vnd.amazon.ebook"],["b16","image/vnd.pco.b16"],["bat","application/x-msdownload"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bdoc","application/x-bdoc"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin","application/octet-stream"],["blb","application/x-blorb"],["blorb","application/x-blorb"],["bmi","application/vnd.bmi"],["bmml","application/vnd.balsamiq.bmml+xml"],["bmp","image/bmp"],["book","application/vnd.framemaker"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bpk","application/octet-stream"],["bpmn","application/octet-stream"],["bsp","model/vnd.valve.source.compiled-map"],["btif","image/prs.btif"],["buffer","application/octet-stream"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c","text/x-c"],["c4d","application/vnd.clonk.c4group"],["c4f","application/vnd.clonk.c4group"],["c4g","application/vnd.clonk.c4group"],["c4p","application/vnd.clonk.c4group"],["c4u","application/vnd.clonk.c4group"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["cab","application/vnd.ms-cab-compressed"],["caf","audio/x-caf"],["cap","application/vnd.tcpdump.pcap"],["car","application/vnd.curl.car"],["cat","application/vnd.ms-pki.seccat"],["cb7","application/x-cbr"],["cba","application/x-cbr"],["cbr","application/x-cbr"],["cbt","application/x-cbr"],["cbz","application/x-cbr"],["cc","text/x-c"],["cco","application/x-cocoa"],["cct","application/x-director"],["ccxml","application/ccxml+xml"],["cdbcmsg","application/vnd.contact.cmsg"],["cda","application/x-cdf"],["cdf","application/x-netcdf"],["cdfx","application/cdfx+xml"],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdr","application/cdr"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer","application/pkix-cert"],["cfs","application/x-cfs-compressed"],["cgm","image/cgm"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cjs","application/node"],["cla","application/vnd.claymore"],["class","application/octet-stream"],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod","application/vnd.rim.cod"],["coffee","text/coffeescript"],["com","application/x-msdownload"],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt","application/mac-compactpro"],["crd","application/x-mscardfile"],["crl","application/pkix-crl"],["crt","application/x-x509-ca-cert"],["crx","application/x-chrome-extension"],["cryptonote","application/vnd.rig.cryptonote"],["csh","application/x-csh"],["csl","application/vnd.citationstyles.style+xml"],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["csr","application/octet-stream"],["css","text/css"],["cst","application/x-director"],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxt","application/x-director"],["cxx","text/x-c"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["dart","application/vnd.dart"],["dataless","application/vnd.fdsn.seed"],["davmount","application/davmount+xml"],["dbf","application/vnd.dbf"],["dbk","application/docbook+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["ddf","application/vnd.syncml.dmddf+xml"],["dds","image/vnd.ms-dds"],["deb","application/x-debian-package"],["def","text/plain"],["deploy","application/octet-stream"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dgc","application/x-dgc-compressed"],["dic","text/x-c"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["disposition-notification","message/disposition-notification"],["dist","application/octet-stream"],["distz","application/octet-stream"],["djv","image/vnd.djvu"],["djvu","image/vnd.djvu"],["dll","application/octet-stream"],["dmg","application/x-apple-diskimage"],["dmn","application/octet-stream"],["dmp","application/vnd.tcpdump.pcap"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.template.macroEnabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroEnabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp","application/vnd.osgi.dp"],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drle","image/dicom-rle"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dvb","video/vnd.dvb.file"],["dvi","application/x-dvi"],["dwd","application/atsc-dwd+xml"],["dwf","model/vnd.dwf"],["dwg","image/vnd.dwg"],["dxf","image/vnd.dxf"],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ear","application/java-archive"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["ecma","application/ecmascript"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["elc","application/octet-stream"],["emf","image/emf"],["eml","message/rfc822"],["emma","application/emma+xml"],["emotionml","application/emotionml+xml"],["emz","application/x-msmetafile"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es","application/ecmascript"],["es3","application/vnd.eszigno3+xml"],["esa","application/vnd.osgi.subsystem"],["esf","application/vnd.epson.esf"],["et3","application/vnd.eszigno3+xml"],["etx","text/x-setext"],["eva","application/x-eva"],["evy","application/x-envoy"],["exe","application/octet-stream"],["exi","application/exi"],["exp","application/express"],["exr","image/aces"],["ext","application/vnd.novadigm.ext"],["ez","application/andrew-inset"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f","text/x-fortran"],["f4v","video/mp4"],["f77","text/x-fortran"],["f90","text/x-fortran"],["fbs","image/vnd.fastbidsheet"],["fcdt","application/vnd.adobe.formscentral.fcdt"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fdt","application/fdt+xml"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fgd","application/x-director"],["fh","image/x-freehand"],["fh4","image/x-freehand"],["fh5","image/x-freehand"],["fh7","image/x-freehand"],["fhc","image/x-freehand"],["fig","application/x-xfig"],["fits","image/fits"],["flac","audio/x-flac"],["fli","video/x-fli"],["flo","application/vnd.micrografx.flo"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fnc","application/vnd.frogans.fnc"],["fo","application/vnd.software602.filler.form+xml"],["for","text/x-fortran"],["fpx","image/vnd.fpx"],["frame","application/vnd.framemaker"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fxpl","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gam","application/x-tads"],["gbr","application/rpki-ghostbusters"],["gca","application/x-gca-compressed"],["gdl","model/vnd.gdl"],["gdoc","application/vnd.google-apps.document"],["geo","application/vnd.dynageo"],["geojson","application/geo+json"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["glb","model/gltf-binary"],["gltf","model/gltf+json"],["gml","application/gml+xml"],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gpg","application/gpg-keys"],["gph","application/vnd.flographit"],["gpx","application/gpx+xml"],["gqf","application/vnd.grafeq"],["gqs","application/vnd.grafeq"],["gram","application/srgs"],["gramps","application/x-gramps-xml"],["gre","application/vnd.geometry-explorer"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsf","application/x-font-ghostscript"],["gsheet","application/vnd.google-apps.spreadsheet"],["gslides","application/vnd.google-apps.presentation"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxf","application/gxf"],["gxt","application/vnd.geonext"],["gz","application/gzip"],["gzip","application/gzip"],["h","text/x-c"],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hbs","text/x-handlebars-template"],["hdd","application/x-virtualbox-hdd"],["hdf","application/x-hdf"],["heic","image/heic"],["heics","image/heic-sequence"],["heif","image/heif"],["heifs","image/heif-sequence"],["hej2","image/hej2k"],["held","application/atsc-held+xml"],["hh","text/x-c"],["hjson","application/hjson"],["hlp","application/winhlp"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx","application/mac-binhex40"],["hsj2","image/hsj2"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["icm","application/vnd.iccprofile"],["ico","image/x-icon"],["ics","text/calendar"],["ief","image/ief"],["ifb","text/calendar"],["ifm","application/vnd.shana.informed.formdata"],["iges","model/iges"],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs","model/iges"],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["img","application/octet-stream"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["in","text/plain"],["ini","text/plain"],["ink","application/inkml+xml"],["inkml","application/inkml+xml"],["install","application/x-install-instructions"],["iota","application/vnd.astraea-software.iota"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["iso","application/x-iso9660-image"],["itp","application/vnd.shana.informed.formtemplate"],["its","application/its+xml"],["ivp","application/vnd.immervision-ivp"],["ivu","application/vnd.immervision-ivu"],["jad","text/vnd.sun.j2me.app-descriptor"],["jade","text/jade"],["jam","application/vnd.jam"],["jar","application/java-archive"],["jardiff","application/x-java-archive-diff"],["java","text/x-java-source"],["jhc","image/jphc"],["jisp","application/vnd.jisp"],["jls","image/jls"],["jlt","application/vnd.hp-jlyt"],["jng","image/x-jng"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jp2","image/jp2"],["jpe","image/jpeg"],["jpeg","image/jpeg"],["jpf","image/jpx"],["jpg","image/jpeg"],["jpg2","image/jp2"],["jpgm","video/jpm"],["jpgv","video/jpeg"],["jph","image/jph"],["jpm","video/jpm"],["jpx","image/jpx"],["js","application/javascript"],["json","application/json"],["json5","application/json5"],["jsonld","application/ld+json"],["jsonl","application/jsonl"],["jsonml","application/jsonml+json"],["jsx","text/jsx"],["jxr","image/jxr"],["jxra","image/jxra"],["jxrs","image/jxrs"],["jxs","image/jxs"],["jxsc","image/jxsc"],["jxsi","image/jxsi"],["jxss","image/jxss"],["kar","audio/midi"],["karbon","application/vnd.kde.karbon"],["kdb","application/octet-stream"],["kdbx","application/x-keepass2"],["key","application/x-iwork-keynote-sffkey"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["knp","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["kpt","application/vnd.kde.kpresenter"],["kpxx","application/vnd.ds-keypoint"],["ksp","application/vnd.kde.kspread"],["ktr","application/vnd.kahootz"],["ktx","image/ktx"],["ktx2","image/ktx2"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["kwt","application/vnd.kde.kword"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["less","text/less"],["lgr","application/lgr+xml"],["lha","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["list3820","application/vnd.ibm.modcap"],["listafp","application/vnd.ibm.modcap"],["litcoffee","text/coffeescript"],["lnk","application/x-ms-shortcut"],["log","text/plain"],["lostxml","application/lost+xml"],["lrf","application/octet-stream"],["lrm","application/vnd.ms-lrm"],["ltf","application/vnd.frogans.ltf"],["lua","text/x-lua"],["luac","application/x-lua-bytecode"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh","application/octet-stream"],["m1v","video/mpeg"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3a","audio/mpeg"],["m3u","text/plain"],["m3u8","application/vnd.apple.mpegurl"],["m4a","audio/x-m4a"],["m4p","application/mp4"],["m4s","video/iso.segment"],["m4u","application/vnd.mpegurl"],["m4v","video/x-m4v"],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m21","application/mp21"],["ma","application/mathematica"],["mads","application/mads+xml"],["maei","application/mmt-aei+xml"],["mag","application/vnd.ecowin.chart"],["maker","application/vnd.framemaker"],["man","text/troff"],["manifest","text/cache-manifest"],["map","application/json"],["mar","application/octet-stream"],["markdown","text/markdown"],["mathml","application/mathml+xml"],["mb","application/mathematica"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc1","application/vnd.medcalcdata"],["mcd","application/vnd.mcd"],["mcurl","text/vnd.curl.mcurl"],["md","text/markdown"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["mdx","text/mdx"],["me","text/troff"],["mesh","model/mesh"],["meta4","application/metalink4+xml"],["metalink","application/metalink+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mft","application/rpki-manifest"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mid","audio/midi"],["midi","audio/midi"],["mie","application/x-mie"],["mif","application/vnd.mif"],["mime","message/rfc822"],["mj2","video/mj2"],["mjp2","video/mj2"],["mjs","application/javascript"],["mk3d","video/x-matroska"],["mka","audio/x-matroska"],["mkd","text/x-markdown"],["mks","video/x-matroska"],["mkv","video/x-matroska"],["mlp","application/vnd.dolby.mlp"],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mmf","application/vnd.smaf"],["mml","text/mathml"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mng","video/x-mng"],["mny","application/x-msmoney"],["mobi","application/x-mobipocket-ebook"],["mods","application/mods+xml"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2","audio/mpeg"],["mp2a","audio/mpeg"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mp4a","audio/mp4"],["mp4s","application/mp4"],["mp4v","video/mp4"],["mp21","application/mp21"],["mpc","application/vnd.mophun.certificate"],["mpd","application/dash+xml"],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg","video/mpeg"],["mpg4","video/mp4"],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/vnd.ms-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","text/troff"],["mscml","application/mediaservercontrol+xml"],["mseed","application/vnd.fdsn.mseed"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msi","application/x-msdownload"],["msl","application/vnd.mobius.msl"],["msm","application/octet-stream"],["msp","application/octet-stream"],["msty","application/vnd.muvee.style"],["mtl","model/mtl"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musd","application/mmt-usd+xml"],["musicxml","application/vnd.recordare.musicxml+xml"],["mvb","application/x-msmediaview"],["mvt","application/vnd.mapbox-vector-tile"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxmf","audio/mobile-xmf"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nb","application/mathematica"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncx","application/x-dtbncx+xml"],["nfo","text/x-nfo"],["ngdat","application/vnd.nokia.n-gage.data"],["nitf","application/vnd.nitf"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nq","application/n-quads"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nt","application/n-triples"],["ntf","application/vnd.nitf"],["numbers","application/x-iwork-numbers-sffnumbers"],["nzb","application/x-nzb"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["obgx","application/vnd.openblox.game+xml"],["obj","model/obj"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogex","model/vnd.opengex"],["ogg","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omdoc","application/omdoc+xml"],["onepkg","application/onenote"],["onetmp","application/onenote"],["onetoc","application/onenote"],["onetoc2","application/onenote"],["opf","application/oebps-package+xml"],["opml","text/x-opml"],["oprc","application/vnd.palm"],["opus","audio/ogg"],["org","text/x-org"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["osm","application/vnd.openstreetmap.data+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","font/otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["ova","application/x-virtualbox-ova"],["ovf","application/x-virtualbox-ovf"],["owl","application/rdf+xml"],["oxps","application/oxps"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c","application/pkcs7-mime"],["p7m","application/pkcs7-mime"],["p7r","application/x-pkcs7-certreqresp"],["p7s","application/pkcs7-signature"],["p8","application/pkcs8"],["p10","application/x-pkcs10"],["p12","application/x-pkcs12"],["pac","application/x-ns-proxy-autoconfig"],["pages","application/x-iwork-pages-sffpages"],["pas","text/x-pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcap","application/vnd.tcpdump.pcap"],["pcf","application/x-font-pcf"],["pcl","application/vnd.hp-pcl"],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb","application/x-pilot"],["pde","text/x-processing"],["pdf","application/pdf"],["pem","application/x-x509-user-cert"],["pfa","application/x-font-type1"],["pfb","application/x-font-type1"],["pfm","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfx","application/x-pkcs12"],["pgm","image/x-portable-graymap"],["pgn","application/x-chess-pgn"],["pgp","application/pgp"],["php","application/x-httpd-php"],["php3","application/x-httpd-php"],["php4","application/x-httpd-php"],["phps","application/x-httpd-php-source"],["phtml","application/x-httpd-php"],["pic","image/x-pict"],["pkg","application/octet-stream"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pkpass","application/vnd.apple.pkpass"],["pl","application/x-perl"],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["pm","application/x-perl"],["pml","application/vnd.ctc-posml"],["png","image/png"],["pnm","image/x-portable-anymap"],["portpkg","application/vnd.macports.portpkg"],["pot","application/vnd.ms-powerpoint"],["potm","application/vnd.ms-powerpoint.presentation.macroEnabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroEnabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps","application/vnd.ms-powerpoint"],["ppsm","application/vnd.ms-powerpoint.slideshow.macroEnabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt","application/powerpoint"],["pptm","application/vnd.ms-powerpoint.presentation.macroEnabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["pqa","application/vnd.palm"],["prc","application/x-pilot"],["pre","application/vnd.lotus-freelance"],["prf","application/pics-rules"],["provx","application/provenance+xml"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd","application/x-photoshop"],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["pti","image/prs.pti"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pwn","application/vnd.3m.post-it-notes"],["pya","audio/vnd.ms-playready.media.pya"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qfx","application/vnd.intu.qfx"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qwd","application/vnd.quark.quarkxpress"],["qwt","application/vnd.quark.quarkxpress"],["qxb","application/vnd.quark.quarkxpress"],["qxd","application/vnd.quark.quarkxpress"],["qxl","application/vnd.quark.quarkxpress"],["qxt","application/vnd.quark.quarkxpress"],["ra","audio/x-realaudio"],["ram","audio/x-pn-realaudio"],["raml","application/raml+yaml"],["rapd","application/route-apd+xml"],["rar","application/x-rar"],["ras","image/x-cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["relo","application/p2p-overlay+xml"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["ris","application/x-research-info-systems"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm","audio/x-pn-realaudio"],["rmi","audio/midi"],["rmp","audio/x-pn-realaudio-plugin"],["rms","application/vnd.jcp.javame.midlet-rms"],["rmvb","application/vnd.rn-realmedia-vbr"],["rnc","application/relax-ng-compact-syntax"],["rng","application/xml"],["roa","application/rpki-roa"],["roff","text/troff"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsa","application/x-pkcs7"],["rsat","application/atsc-rsat+xml"],["rsd","application/rsd+xml"],["rsheet","application/urc-ressheet+xml"],["rss","application/rss+xml"],["rtf","text/rtf"],["rtx","text/richtext"],["run","application/x-makeself"],["rusd","application/route-usd+xml"],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["sass","text/x-sass"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm","application/vnd.lotus-screencam"],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["scss","text/x-scss"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkd","application/vnd.solent.sdkm+xml"],["sdkm","application/vnd.solent.sdkm+xml"],["sdp","application/sdp"],["sdw","application/vnd.stardivision.writer"],["sea","application/octet-stream"],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["senmlx","application/senml+xml"],["sensmlx","application/sensml+xml"],["ser","application/java-serialized-object"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sfv","text/x-sfv"],["sgi","image/sgi"],["sgl","application/vnd.stardivision.writer-global"],["sgm","text/sgml"],["sgml","text/sgml"],["sh","application/x-sh"],["shar","application/x-shar"],["shex","text/shex"],["shf","application/shf+xml"],["shtml","text/html"],["sid","image/x-mrsid-image"],["sieve","application/sieve"],["sig","application/pgp-signature"],["sil","audio/silk"],["silo","model/mesh"],["sis","application/vnd.symbian.install"],["sisx","application/vnd.symbian.install"],["sit","application/x-stuffit"],["sitx","application/x-stuffitx"],["siv","application/sieve"],["skd","application/vnd.koan"],["skm","application/vnd.koan"],["skp","application/vnd.koan"],["skt","application/vnd.koan"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slim","text/slim"],["slm","text/slim"],["sls","application/route-s-tsid+xml"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi","application/smil"],["smil","application/smil"],["smv","video/x-smv"],["smzip","application/vnd.stepmania.package"],["snd","audio/basic"],["snf","application/x-font-snf"],["so","application/octet-stream"],["spc","application/x-pkcs7-certificates"],["spdx","text/spdx"],["spf","application/vnd.yamaha.smaf-phrase"],["spl","application/x-futuresplash"],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spx","audio/ogg"],["sql","application/x-sql"],["src","application/x-wais-source"],["srt","application/x-subrip"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["ssdl","application/ssdl+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssml","application/ssml+xml"],["sst","application/octet-stream"],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl","model/stl"],["stpx","model/step+xml"],["stpxz","model/step-xml+zip"],["stpz","model/step+zip"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["styl","text/stylus"],["stylus","text/stylus"],["sub","text/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["susp","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svg","image/svg+xml"],["svgz","image/svg+xml"],["swa","application/x-director"],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["swidtag","application/swid+xml"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t","text/troff"],["t3","application/x-t3vm-image"],["t38","image/t38"],["taglet","application/vnd.mynfc"],["tao","application/vnd.tao.intent-module-archive"],["tap","image/vnd.tencent.tap"],["tar","application/x-tar"],["tcap","application/vnd.3gpp2.tcap"],["tcl","application/x-tcl"],["td","application/urc-targetdesc+xml"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["teicorpus","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text","text/plain"],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tfx","image/tiff-fx"],["tga","image/x-tga"],["tgz","application/x-tar"],["thmx","application/vnd.ms-officetheme"],["tif","image/tiff"],["tiff","image/tiff"],["tk","application/x-tcl"],["tmo","application/vnd.tmobile-livetv"],["toml","application/toml"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","text/troff"],["tra","application/vnd.trueapp"],["trig","application/trig"],["trm","application/x-msterminal"],["ts","video/mp2t"],["tsd","application/timestamped-data"],["tsv","text/tab-separated-values"],["ttc","font/collection"],["ttf","font/ttf"],["ttl","text/turtle"],["ttml","application/ttml+xml"],["twd","application/vnd.simtech-mindmapper"],["twds","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["u8dsn","message/global-delivery-status"],["u8hdr","message/global-headers"],["u8mdn","message/global-disposition-notification"],["u8msg","message/global"],["u32","application/x-authorware-bin"],["ubj","application/ubjson"],["udeb","application/x-debian-package"],["ufd","application/vnd.ufdl"],["ufdl","application/vnd.ufdl"],["ulx","application/x-glulx"],["umj","application/vnd.umajin"],["unityweb","application/vnd.unity"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["urls","text/uri-list"],["usdz","model/vnd.usdz+zip"],["ustar","application/x-ustar"],["utz","application/vnd.uiq.theme"],["uu","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvd","application/vnd.dece.data"],["uvf","application/vnd.dece.data"],["uvg","image/vnd.dece.graphic"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvt","application/vnd.dece.ttml+xml"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["uvva","audio/vnd.dece.audio"],["uvvd","application/vnd.dece.data"],["uvvf","application/vnd.dece.data"],["uvvg","image/vnd.dece.graphic"],["uvvh","video/vnd.dece.hd"],["uvvi","image/vnd.dece.graphic"],["uvvm","video/vnd.dece.mobile"],["uvvp","video/vnd.dece.pd"],["uvvs","video/vnd.dece.sd"],["uvvt","application/vnd.dece.ttml+xml"],["uvvu","video/vnd.uvvu.mp4"],["uvvv","video/vnd.dece.video"],["uvvx","application/vnd.dece.unspecified"],["uvvz","application/vnd.dece.zip"],["uvx","application/vnd.dece.unspecified"],["uvz","application/vnd.dece.zip"],["vbox","application/x-virtualbox-vbox"],["vbox-extpack","application/x-virtualbox-vbox-extpack"],["vcard","text/vcard"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vdi","application/x-virtualbox-vdi"],["vds","model/vnd.sap.vds"],["vhd","application/x-virtualbox-vhd"],["vis","application/vnd.visionary"],["viv","video/vnd.vivo"],["vlc","application/videolan"],["vmdk","application/x-virtualbox-vmdk"],["vob","video/x-ms-vob"],["vor","application/vnd.stardivision.writer"],["vox","application/x-authorware-bin"],["vrml","model/vrml"],["vsd","application/vnd.visio"],["vsf","application/vnd.vsf"],["vss","application/vnd.visio"],["vst","application/vnd.visio"],["vsw","application/vnd.visio"],["vtf","image/vnd.valve.source.texture"],["vtt","text/vtt"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w3d","application/x-director"],["wad","application/x-doom"],["wadl","application/vnd.sun.wadl+xml"],["war","application/java-archive"],["wasm","application/wasm"],["wav","audio/x-wav"],["wax","audio/x-ms-wax"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["wdp","image/vnd.ms-photo"],["weba","audio/webm"],["webapp","application/x-web-app-manifest+json"],["webm","video/webm"],["webmanifest","application/manifest+json"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf","image/wmf"],["wml","text/vnd.wap.wml"],["wmlc","application/wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-msmetafile"],["woff","font/woff"],["woff2","font/woff2"],["word","application/msword"],["wpd","application/vnd.wordperfect"],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wqd","application/vnd.wqd"],["wri","application/x-mswrite"],["wrl","model/vrml"],["wsc","message/vnd.wfa.wsc"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wtb","application/vnd.webturbo"],["wvx","video/x-ms-wvx"],["x3d","model/x3d+xml"],["x3db","model/x3d+fastinfoset"],["x3dbz","model/x3d+binary"],["x3dv","model/x3d-vrml"],["x3dvz","model/x3d+vrml"],["x3dz","model/x3d+xml"],["x32","application/x-authorware-bin"],["x_b","model/vnd.parasolid.transmit.binary"],["x_t","model/vnd.parasolid.transmit.text"],["xaml","application/xaml+xml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xav","application/xcap-att+xml"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm","image/x-xbitmap"],["xca","application/xcap-caps+xml"],["xcs","application/calendar+xml"],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xel","application/xcap-el+xml"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xht","application/xhtml+xml"],["xhtml","application/xhtml+xml"],["xhvml","application/xv+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla","application/vnd.ms-excel"],["xlam","application/vnd.ms-excel.addin.macroEnabled.12"],["xlc","application/vnd.ms-excel"],["xlf","application/xliff+xml"],["xlm","application/vnd.ms-excel"],["xls","application/vnd.ms-excel"],["xlsb","application/vnd.ms-excel.sheet.binary.macroEnabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroEnabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt","application/vnd.ms-excel"],["xltm","application/vnd.ms-excel.template.macroEnabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlw","application/vnd.ms-excel"],["xm","audio/xm"],["xml","application/xml"],["xns","application/xcap-ns+xml"],["xo","application/vnd.olpc-sugar"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpl","application/xproc+xml"],["xpm","image/x-xpixmap"],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xpx","application/vnd.intercon.formnet"],["xsd","application/xml"],["xsl","application/xml"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xul","application/vnd.mozilla.xul+xml"],["xvm","application/xv+xml"],["xvml","application/xv+xml"],["xwd","image/x-xwindowdump"],["xyz","chemical/x-xyz"],["xz","application/x-xz"],["yaml","text/yaml"],["yang","application/yang"],["yin","application/yin+xml"],["yml","text/yaml"],["ymp","text/x-suse-ymp"],["z","application/x-compress"],["z1","application/x-zmachine"],["z2","application/x-zmachine"],["z3","application/x-zmachine"],["z4","application/x-zmachine"],["z5","application/x-zmachine"],["z6","application/x-zmachine"],["z7","application/x-zmachine"],["z8","application/x-zmachine"],["zaz","application/vnd.zzazz.deck+xml"],["zip","application/zip"],["zir","application/vnd.zul"],["zirz","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zsh","text/x-scriptzsh"]]);function Yo(e,t,n){const r=QL(e),{webkitRelativePath:i}=e,a=typeof t=="string"?t:typeof i=="string"&&i.length>0?i:`./${e.name}`;return typeof r.path!="string"&&Uw(r,"path",a),Uw(r,"relativePath",a),r}function QL(e){const{name:t}=e;if(t&&t.lastIndexOf(".")!==-1&&!e.type){const r=t.split(".").pop().toLowerCase(),i=XL.get(r);i&&Object.defineProperty(e,"type",{value:i,writable:!1,configurable:!1,enumerable:!0})}return e}function Uw(e,t,n){Object.defineProperty(e,t,{value:n,writable:!1,configurable:!1,enumerable:!0})}const YL=[".DS_Store","Thumbs.db"];function JL(e){return za(this,void 0,void 0,function*(){return Hf(e)&&ZL(e.dataTransfer)?r3(e.dataTransfer,e.type):e3(e)?t3(e):Array.isArray(e)&&e.every(t=>"getFile"in t&&typeof t.getFile=="function")?n3(e):[]})}function ZL(e){return Hf(e)}function e3(e){return Hf(e)&&Hf(e.target)}function Hf(e){return typeof e=="object"&&e!==null}function t3(e){return Kv(e.target.files).map(t=>Yo(t))}function n3(e){return za(this,void 0,void 0,function*(){return(yield Promise.all(e.map(n=>n.getFile()))).map(n=>Yo(n))})}function r3(e,t){return za(this,void 0,void 0,function*(){if(e.items){const n=Kv(e.items).filter(i=>i.kind==="file");if(t!=="drop")return n;const r=yield Promise.all(n.map(i3));return Ww($j(r))}return Ww(Kv(e.files).map(n=>Yo(n)))})}function Ww(e){return e.filter(t=>YL.indexOf(t.name)===-1)}function Kv(e){if(e===null)return[];const t=[];for(let n=0;n[...t,...Array.isArray(n)?$j(n):[n]],[])}function Hw(e,t){return za(this,void 0,void 0,function*(){var n;if(globalThis.isSecureContext&&typeof e.getAsFileSystemHandle=="function"){const a=yield e.getAsFileSystemHandle();if(a===null)throw new Error(`${e} is not a File`);if(a!==void 0){const o=yield a.getFile();return o.handle=a,Yo(o)}}const r=e.getAsFile();if(!r)throw new Error(`${e} is not a File`);return Yo(r,(n=t==null?void 0:t.fullPath)!==null&&n!==void 0?n:void 0)})}function a3(e){return za(this,void 0,void 0,function*(){return e.isDirectory?Cj(e):o3(e)})}function Cj(e){const t=e.createReader();return new Promise((n,r)=>{const i=[];function a(){t.readEntries(o=>za(this,void 0,void 0,function*(){if(o.length){const s=Promise.all(o.map(a3));i.push(s),a()}else try{const s=yield Promise.all(i);n(s)}catch(s){r(s)}}),o=>{r(o)})}a()})}function o3(e){return za(this,void 0,void 0,function*(){return new Promise((t,n)=>{e.file(r=>{const i=Yo(r,e.fullPath);t(i)},r=>{n(r)})})})}var Jh=function(e,t){if(e&&t){var n=Array.isArray(t)?t:t.split(",");if(n.length===0)return!0;var r=e.name||"",i=(e.type||"").toLowerCase(),a=i.replace(/\/.*$/,"");return n.some(function(o){var s=o.trim().toLowerCase();return s.charAt(0)==="."?r.toLowerCase().endsWith(s):s.endsWith("/*")?a===s.replace(/\/.*$/,""):i===s})}return!0};function qw(e){return u3(e)||l3(e)||Mj(e)||s3()}function s3(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function l3(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function u3(e){if(Array.isArray(e))return Vv(e)}function Kw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Vw(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:"",n=t.split(","),r=n.length>1?"one of ".concat(n.join(", ")):n[0];return{code:h3,message:"File type must be ".concat(r)}},Gw=function(t){return{code:m3,message:"File is larger than ".concat(t," ").concat(t===1?"byte":"bytes")}},Xw=function(t){return{code:v3,message:"File is smaller than ".concat(t," ").concat(t===1?"byte":"bytes")}},b3={code:y3,message:"Too many files"};function x3(e){return e.type===""&&typeof e.getAsFile=="function"}function Rj(e,t){var n=e.type==="application/x-moz-file"||d3(e,t)||x3(e);return[n,n?null:g3(t)]}function Dj(e,t,n){if(Ji(e.size))if(Ji(t)&&Ji(n)){if(e.size>n)return[!1,Gw(n)];if(e.sizen)return[!1,Gw(n)]}return[!0,null]}function Ji(e){return e!=null}function w3(e){var t=e.files,n=e.accept,r=e.minSize,i=e.maxSize,a=e.multiple,o=e.maxFiles,s=e.validator;return!a&&t.length>1||a&&o>=1&&t.length>o?!1:t.every(function(l){var u=Rj(l,n),f=iu(u,1),c=f[0],p=Dj(l,r,i),d=iu(p,1),g=d[0],m=s?s(l):null;return c&&g&&!m})}function qf(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble<"u"?e.cancelBubble:!1}function nl(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(t){return t==="Files"||t==="application/x-moz-file"}):!!e.target&&!!e.target.files}function Qw(e){e.preventDefault()}function O3(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function S3(e){return e.indexOf("Edge/")!==-1}function P3(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return O3(e)||S3(e)}function er(){for(var e=arguments.length,t=new Array(e),n=0;n1?i-1:0),o=1;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function B3(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a=0)&&(n[i]=e[i]);return n}var F0=A.forwardRef(function(e,t){var n=e.children,r=Kf(e,k3),i=zj(r),a=i.open,o=Kf(i,$3);return A.useImperativeHandle(t,function(){return{open:a}},[a]),T.createElement(A.Fragment,null,n(Ie(Ie({},o),{},{open:a})))});F0.displayName="Dropzone";var Bj={disabled:!1,getFilesFromEvent:JL,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1,autoFocus:!1};F0.defaultProps=Bj;F0.propTypes={children:re.func,accept:re.objectOf(re.arrayOf(re.string)),multiple:re.bool,preventDropOnDocument:re.bool,noClick:re.bool,noKeyboard:re.bool,noDrag:re.bool,noDragEventsBubbling:re.bool,minSize:re.number,maxSize:re.number,maxFiles:re.number,disabled:re.bool,getFilesFromEvent:re.func,onFileDialogCancel:re.func,onFileDialogOpen:re.func,useFsAccessApi:re.bool,autoFocus:re.bool,onDragEnter:re.func,onDragLeave:re.func,onDragOver:re.func,onDrop:re.func,onDropAccepted:re.func,onDropRejected:re.func,onError:re.func,validator:re.func};var Qv={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,isDragGlobal:!1,acceptedFiles:[],fileRejections:[]};function zj(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=Ie(Ie({},Bj),e),n=t.accept,r=t.disabled,i=t.getFilesFromEvent,a=t.maxSize,o=t.minSize,s=t.multiple,l=t.maxFiles,u=t.onDragEnter,f=t.onDragLeave,c=t.onDragOver,p=t.onDrop,d=t.onDropAccepted,g=t.onDropRejected,m=t.onFileDialogCancel,y=t.onFileDialogOpen,h=t.useFsAccessApi,v=t.autoFocus,b=t.preventDropOnDocument,w=t.noClick,x=t.noKeyboard,O=t.noDrag,S=t.noDragEventsBubbling,_=t.onError,E=t.validator,k=A.useMemo(function(){return E3(n)},[n]),N=A.useMemo(function(){return A3(n)},[n]),$=A.useMemo(function(){return typeof y=="function"?y:Zw},[y]),L=A.useMemo(function(){return typeof m=="function"?m:Zw},[m]),M=A.useRef(null),D=A.useRef(null),B=A.useReducer(z3,Qv),W=Zh(B,2),R=W[0],I=W[1],z=R.isFocused,K=R.isFileDialogActive,H=A.useRef(typeof window<"u"&&window.isSecureContext&&h&&_3()),te=function(){!H.current&&K&&setTimeout(function(){if(D.current){var oe=D.current.files;oe.length||(I({type:"closeDialog"}),L())}},300)};A.useEffect(function(){return window.addEventListener("focus",te,!1),function(){window.removeEventListener("focus",te,!1)}},[D,K,L,H]);var ce=A.useRef([]),ye=A.useRef([]),ie=function(oe){M.current&&M.current.contains(oe.target)||(oe.preventDefault(),ce.current=[])};A.useEffect(function(){return b&&(document.addEventListener("dragover",Qw,!1),document.addEventListener("drop",ie,!1)),function(){b&&(document.removeEventListener("dragover",Qw),document.removeEventListener("drop",ie))}},[M,b]),A.useEffect(function(){var X=function(Jn){ye.current=[].concat(Yw(ye.current),[Jn.target]),nl(Jn)&&I({isDragGlobal:!0,type:"setDragGlobal"})},oe=function(Jn){ye.current=ye.current.filter(function(yr){return yr!==Jn.target&&yr!==null}),!(ye.current.length>0)&&I({isDragGlobal:!1,type:"setDragGlobal"})},He=function(){ye.current=[],I({isDragGlobal:!1,type:"setDragGlobal"})},Je=function(){ye.current=[],I({isDragGlobal:!1,type:"setDragGlobal"})};return document.addEventListener("dragenter",X,!1),document.addEventListener("dragleave",oe,!1),document.addEventListener("dragend",He,!1),document.addEventListener("drop",Je,!1),function(){document.removeEventListener("dragenter",X),document.removeEventListener("dragleave",oe),document.removeEventListener("dragend",He),document.removeEventListener("drop",Je)}},[M]),A.useEffect(function(){return!r&&v&&M.current&&M.current.focus(),function(){}},[M,v,r]);var be=A.useCallback(function(X){_?_(X):console.error(X)},[_]),Ge=A.useCallback(function(X){X.preventDefault(),X.persist(),Vt(X),ce.current=[].concat(Yw(ce.current),[X.target]),nl(X)&&Promise.resolve(i(X)).then(function(oe){if(!(qf(X)&&!S)){var He=oe.length,Je=He>0&&w3({files:oe,accept:k,minSize:o,maxSize:a,multiple:s,maxFiles:l,validator:E}),Ot=He>0&&!Je;I({isDragAccept:Je,isDragReject:Ot,isDragActive:!0,type:"setDraggedFiles"}),u&&u(X)}}).catch(function(oe){return be(oe)})},[i,u,be,S,k,o,a,s,l,E]),G=A.useCallback(function(X){X.preventDefault(),X.persist(),Vt(X);var oe=nl(X);if(oe&&X.dataTransfer)try{X.dataTransfer.dropEffect="copy"}catch{}return oe&&c&&c(X),!1},[c,S]),fe=A.useCallback(function(X){X.preventDefault(),X.persist(),Vt(X);var oe=ce.current.filter(function(Je){return M.current&&M.current.contains(Je)}),He=oe.indexOf(X.target);He!==-1&&oe.splice(He,1),ce.current=oe,!(oe.length>0)&&(I({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),nl(X)&&f&&f(X))},[M,f,S]),le=A.useCallback(function(X,oe){var He=[],Je=[];X.forEach(function(Ot){var Jn=Rj(Ot,k),yr=Zh(Jn,2),fh=yr[0],ph=yr[1],dh=Dj(Ot,o,a),fc=Zh(dh,2),hh=fc[0],mh=fc[1],vh=E?E(Ot):null;if(fh&&hh&&!vh)He.push(Ot);else{var yh=[ph,mh];vh&&(yh=yh.concat(vh)),Je.push({file:Ot,errors:yh.filter(function(_C){return _C})})}}),(!s&&He.length>1||s&&l>=1&&He.length>l)&&(He.forEach(function(Ot){Je.push({file:Ot,errors:[b3]})}),He.splice(0)),I({acceptedFiles:He,fileRejections:Je,isDragReject:Je.length>0,type:"setFiles"}),p&&p(He,Je,oe),Je.length>0&&g&&g(Je,oe),He.length>0&&d&&d(He,oe)},[I,s,k,o,a,l,p,d,g,E]),U=A.useCallback(function(X){X.preventDefault(),X.persist(),Vt(X),ce.current=[],nl(X)&&Promise.resolve(i(X)).then(function(oe){qf(X)&&!S||le(oe,X)}).catch(function(oe){return be(oe)}),I({type:"reset"})},[i,le,be,S]),we=A.useCallback(function(){if(H.current){I({type:"openDialog"}),$();var X={multiple:s,types:N};window.showOpenFilePicker(X).then(function(oe){return i(oe)}).then(function(oe){le(oe,null),I({type:"closeDialog"})}).catch(function(oe){j3(oe)?(L(oe),I({type:"closeDialog"})):T3(oe)?(H.current=!1,D.current?(D.current.value=null,D.current.click()):be(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided."))):be(oe)});return}D.current&&(I({type:"openDialog"}),$(),D.current.value=null,D.current.click())},[I,$,L,h,le,be,N,s]),me=A.useCallback(function(X){!M.current||!M.current.isEqualNode(X.target)||(X.key===" "||X.key==="Enter"||X.keyCode===32||X.keyCode===13)&&(X.preventDefault(),we())},[M,we]),Oe=A.useCallback(function(){I({type:"focus"})},[]),ee=A.useCallback(function(){I({type:"blur"})},[]),_e=A.useCallback(function(){w||(P3()?setTimeout(we,0):we())},[w,we]),ze=function(oe){return r?null:oe},mt=function(oe){return x?null:ze(oe)},xn=function(oe){return O?null:ze(oe)},Vt=function(oe){S&&oe.stopPropagation()},It=A.useMemo(function(){return function(){var X=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},oe=X.refKey,He=oe===void 0?"ref":oe,Je=X.role,Ot=X.onKeyDown,Jn=X.onFocus,yr=X.onBlur,fh=X.onClick,ph=X.onDragEnter,dh=X.onDragOver,fc=X.onDragLeave,hh=X.onDrop,mh=Kf(X,C3);return Ie(Ie(Xv({onKeyDown:mt(er(Ot,me)),onFocus:mt(er(Jn,Oe)),onBlur:mt(er(yr,ee)),onClick:ze(er(fh,_e)),onDragEnter:xn(er(ph,Ge)),onDragOver:xn(er(dh,G)),onDragLeave:xn(er(fc,fe)),onDrop:xn(er(hh,U)),role:typeof Je=="string"&&Je!==""?Je:"presentation"},He,M),!r&&!x?{tabIndex:0}:{}),mh)}},[M,me,Oe,ee,_e,Ge,G,fe,U,x,O,r]),Ks=A.useCallback(function(X){X.stopPropagation()},[]),cc=A.useMemo(function(){return function(){var X=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},oe=X.refKey,He=oe===void 0?"ref":oe,Je=X.onChange,Ot=X.onClick,Jn=Kf(X,N3),yr=Xv({accept:k,multiple:s,type:"file",style:{border:0,clip:"rect(0, 0, 0, 0)",clipPath:"inset(50%)",height:"1px",margin:"0 -1px -1px 0",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap"},onChange:ze(er(Je,U)),onClick:ze(er(Ot,Ks)),tabIndex:-1},He,D);return Ie(Ie({},yr),Jn)}},[D,n,s,U,r]);return Ie(Ie({},R),{},{isFocused:z&&!r,getRootProps:It,getInputProps:cc,rootRef:M,inputRef:D,open:ze(we)})}function z3(e,t){switch(t.type){case"focus":return Ie(Ie({},e),{},{isFocused:!0});case"blur":return Ie(Ie({},e),{},{isFocused:!1});case"openDialog":return Ie(Ie({},Qv),{},{isFileDialogActive:!0});case"closeDialog":return Ie(Ie({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":return Ie(Ie({},e),{},{isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject});case"setFiles":return Ie(Ie({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections,isDragReject:t.isDragReject});case"setDragGlobal":return Ie(Ie({},e),{},{isDragGlobal:t.isDragGlobal});case"reset":return Ie({},Qv);default:return e}}function Zw(){}function Uj(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t-1}var BB=FB,zB=bd;function UB(e,t){var n=this.__data__,r=zB(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var WB=UB,HB=AB,qB=MB,KB=IB,VB=BB,GB=WB;function Ms(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0?1:-1},oa=function(t){return Ca(t)&&t.indexOf("%")===t.length-1},V=function(t){return h4(t)&&!nc(t)},g4=function(t){return pe(t)},dt=function(t){return V(t)||Ca(t)},b4=0,Ds=function(t){var n=++b4;return"".concat(t||"").concat(n)},Ut=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!V(t)&&!Ca(t))return r;var a;if(oa(t)){var o=t.indexOf("%");a=n*parseFloat(t.slice(0,o))/100}else a=+t;return nc(a)&&(a=r),i&&a>n&&(a=n),a},si=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},x4=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function E4(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Jv(e){"@babel/helpers - typeof";return Jv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jv(e)}var f1={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},Nr=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},p1=null,nm=null,Y0=function e(t){if(t===p1&&Array.isArray(nm))return nm;var n=[];return A.Children.forEach(t,function(r){pe(r)||(u4.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),nm=n,p1=t,n};function vn(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(i){return Nr(i)}):r=[Nr(t)],Y0(e).forEach(function(i){var a=mn(i,"type.displayName")||mn(i,"type.name");r.indexOf(a)!==-1&&n.push(i)}),n}function ln(e,t){var n=vn(e,t);return n&&n[0]}var d1=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,i=n.height;return!(!V(r)||r<=0||!V(i)||i<=0)},j4=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],T4=function(t){return t&&t.type&&Ca(t.type)&&j4.indexOf(t.type)>=0},k4=function(t){return t&&Jv(t)==="object"&&"clipDot"in t},$4=function(t,n,r,i){var a,o=(a=tm==null?void 0:tm[i])!==null&&a!==void 0?a:[];return n.startsWith("data-")||!ue(t)&&(i&&o.includes(n)||S4.includes(n))||r&&Q0.includes(n)},ae=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var i=t;if(A.isValidElement(t)&&(i=t.props),!Cs(i))return null;var a={};return Object.keys(i).forEach(function(o){var s;$4((s=i)===null||s===void 0?void 0:s[o],o,n,r)&&(a[o]=i[o])}),a},Zv=function e(t,n){if(t===n)return!0;var r=A.Children.count(t);if(r!==A.Children.count(n))return!1;if(r===0)return!0;if(r===1)return h1(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function D4(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ty(e){var t=e.children,n=e.width,r=e.height,i=e.viewBox,a=e.className,o=e.style,s=e.title,l=e.desc,u=R4(e,M4),f=i||{width:n,height:r,x:0,y:0},c=he("recharts-surface",a);return T.createElement("svg",ey({},ae(u,!0,"svg"),{className:c,width:n,height:r,style:o,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height)}),T.createElement("title",null,s),T.createElement("desc",null,l),t)}var I4=["children","className"];function ny(){return ny=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function F4(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Se=T.forwardRef(function(e,t){var n=e.children,r=e.className,i=L4(e,I4),a=he("recharts-layer",r);return T.createElement("g",ny({className:a},ae(i,!0),{ref:t}),n)}),Gn=function(t,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;ai?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r=r?e:U4(e,t,n)}var H4=W4,q4="\\ud800-\\udfff",K4="\\u0300-\\u036f",V4="\\ufe20-\\ufe2f",G4="\\u20d0-\\u20ff",X4=K4+V4+G4,Q4="\\ufe0e\\ufe0f",Y4="\\u200d",J4=RegExp("["+Y4+q4+X4+Q4+"]");function Z4(e){return J4.test(e)}var tT=Z4;function eU(e){return e.split("")}var tU=eU,nT="\\ud800-\\udfff",nU="\\u0300-\\u036f",rU="\\ufe20-\\ufe2f",iU="\\u20d0-\\u20ff",aU=nU+rU+iU,oU="\\ufe0e\\ufe0f",sU="["+nT+"]",ry="["+aU+"]",iy="\\ud83c[\\udffb-\\udfff]",lU="(?:"+ry+"|"+iy+")",rT="[^"+nT+"]",iT="(?:\\ud83c[\\udde6-\\uddff]){2}",aT="[\\ud800-\\udbff][\\udc00-\\udfff]",uU="\\u200d",oT=lU+"?",sT="["+oU+"]?",cU="(?:"+uU+"(?:"+[rT,iT,aT].join("|")+")"+sT+oT+")*",fU=sT+oT+cU,pU="(?:"+[rT+ry+"?",ry,iT,aT,sU].join("|")+")",dU=RegExp(iy+"(?="+iy+")|"+pU+fU,"g");function hU(e){return e.match(dU)||[]}var mU=hU,vU=tU,yU=tT,gU=mU;function bU(e){return yU(e)?gU(e):vU(e)}var xU=bU,wU=H4,OU=tT,SU=xU,PU=Xj;function _U(e){return function(t){t=PU(t);var n=OU(t)?SU(t):void 0,r=n?n[0]:t.charAt(0),i=n?wU(n,1).join(""):t.slice(1);return r[e]()+i}}var AU=_U,EU=AU,jU=EU("toUpperCase"),TU=jU;const Nd=je(TU);function Ne(e){return function(){return e}}const lT=Math.cos,Xf=Math.sin,Yn=Math.sqrt,Qf=Math.PI,Md=2*Qf,ay=Math.PI,oy=2*ay,Xi=1e-6,kU=oy-Xi;function uT(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return uT;const n=10**t;return function(r){this._+=r[0];for(let i=1,a=r.length;iXi)if(!(Math.abs(c*l-u*f)>Xi)||!a)this._append`L${this._x1=t},${this._y1=n}`;else{let d=r-o,g=i-s,m=l*l+u*u,y=d*d+g*g,h=Math.sqrt(m),v=Math.sqrt(p),b=a*Math.tan((ay-Math.acos((m+p-y)/(2*h*v)))/2),w=b/v,x=b/h;Math.abs(w-1)>Xi&&this._append`L${t+w*f},${n+w*c}`,this._append`A${a},${a},0,0,${+(c*d>f*g)},${this._x1=t+x*l},${this._y1=n+x*u}`}}arc(t,n,r,i,a,o){if(t=+t,n=+n,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(i),l=r*Math.sin(i),u=t+s,f=n+l,c=1^o,p=o?i-a:a-i;this._x1===null?this._append`M${u},${f}`:(Math.abs(this._x1-u)>Xi||Math.abs(this._y1-f)>Xi)&&this._append`L${u},${f}`,r&&(p<0&&(p=p%oy+oy),p>kU?this._append`A${r},${r},0,1,${c},${t-s},${n-l}A${r},${r},0,1,${c},${this._x1=u},${this._y1=f}`:p>Xi&&this._append`A${r},${r},0,${+(p>=ay)},${c},${this._x1=t+r*Math.cos(a)},${this._y1=n+r*Math.sin(a)}`)}rect(t,n,r,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function J0(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new CU(t)}function Z0(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function cT(e){this._context=e}cT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Rd(e){return new cT(e)}function fT(e){return e[0]}function pT(e){return e[1]}function dT(e,t){var n=Ne(!0),r=null,i=Rd,a=null,o=J0(s);e=typeof e=="function"?e:e===void 0?fT:Ne(e),t=typeof t=="function"?t:t===void 0?pT:Ne(t);function s(l){var u,f=(l=Z0(l)).length,c,p=!1,d;for(r==null&&(a=i(d=o())),u=0;u<=f;++u)!(u=d;--g)s.point(b[g],w[g]);s.lineEnd(),s.areaEnd()}h&&(b[p]=+e(y,p,c),w[p]=+t(y,p,c),s.point(r?+r(y,p,c):b[p],n?+n(y,p,c):w[p]))}if(v)return s=null,v+""||null}function f(){return dT().defined(i).curve(o).context(a)}return u.x=function(c){return arguments.length?(e=typeof c=="function"?c:Ne(+c),r=null,u):e},u.x0=function(c){return arguments.length?(e=typeof c=="function"?c:Ne(+c),u):e},u.x1=function(c){return arguments.length?(r=c==null?null:typeof c=="function"?c:Ne(+c),u):r},u.y=function(c){return arguments.length?(t=typeof c=="function"?c:Ne(+c),n=null,u):t},u.y0=function(c){return arguments.length?(t=typeof c=="function"?c:Ne(+c),u):t},u.y1=function(c){return arguments.length?(n=c==null?null:typeof c=="function"?c:Ne(+c),u):n},u.lineX0=u.lineY0=function(){return f().x(e).y(t)},u.lineY1=function(){return f().x(e).y(n)},u.lineX1=function(){return f().x(r).y(t)},u.defined=function(c){return arguments.length?(i=typeof c=="function"?c:Ne(!!c),u):i},u.curve=function(c){return arguments.length?(o=c,a!=null&&(s=o(a)),u):o},u.context=function(c){return arguments.length?(c==null?a=s=null:s=o(a=c),u):a},u}class hT{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function NU(e){return new hT(e,!0)}function MU(e){return new hT(e,!1)}const eb={draw(e,t){const n=Yn(t/Qf);e.moveTo(n,0),e.arc(0,0,n,0,Md)}},RU={draw(e,t){const n=Yn(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},mT=Yn(1/3),DU=mT*2,IU={draw(e,t){const n=Yn(t/DU),r=n*mT;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},LU={draw(e,t){const n=Yn(t),r=-n/2;e.rect(r,r,n,n)}},FU=.8908130915292852,vT=Xf(Qf/10)/Xf(7*Qf/10),BU=Xf(Md/10)*vT,zU=-lT(Md/10)*vT,UU={draw(e,t){const n=Yn(t*FU),r=BU*n,i=zU*n;e.moveTo(0,-n),e.lineTo(r,i);for(let a=1;a<5;++a){const o=Md*a/5,s=lT(o),l=Xf(o);e.lineTo(l*n,-s*n),e.lineTo(s*r-l*i,l*r+s*i)}e.closePath()}},rm=Yn(3),WU={draw(e,t){const n=-Yn(t/(rm*3));e.moveTo(0,n*2),e.lineTo(-rm*n,-n),e.lineTo(rm*n,-n),e.closePath()}},wn=-.5,On=Yn(3)/2,sy=1/Yn(12),HU=(sy/2+1)*3,qU={draw(e,t){const n=Yn(t/HU),r=n/2,i=n*sy,a=r,o=n*sy+n,s=-a,l=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,l),e.lineTo(wn*r-On*i,On*r+wn*i),e.lineTo(wn*a-On*o,On*a+wn*o),e.lineTo(wn*s-On*l,On*s+wn*l),e.lineTo(wn*r+On*i,wn*i-On*r),e.lineTo(wn*a+On*o,wn*o-On*a),e.lineTo(wn*s+On*l,wn*l-On*s),e.closePath()}};function KU(e,t){let n=null,r=J0(i);e=typeof e=="function"?e:Ne(e||eb),t=typeof t=="function"?t:Ne(t===void 0?64:+t);function i(){let a;if(n||(n=a=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),a)return n=null,a+""||null}return i.type=function(a){return arguments.length?(e=typeof a=="function"?a:Ne(a),i):e},i.size=function(a){return arguments.length?(t=typeof a=="function"?a:Ne(+a),i):t},i.context=function(a){return arguments.length?(n=a??null,i):n},i}function Yf(){}function Jf(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function yT(e){this._context=e}yT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Jf(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Jf(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function VU(e){return new yT(e)}function gT(e){this._context=e}gT.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Jf(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function GU(e){return new gT(e)}function bT(e){this._context=e}bT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Jf(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function XU(e){return new bT(e)}function xT(e){this._context=e}xT.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function QU(e){return new xT(e)}function v1(e){return e<0?-1:1}function y1(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(v1(a)+v1(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function g1(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function im(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function Zf(e){this._context=e}Zf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:im(this,this._t0,g1(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,im(this,g1(this,n=y1(this,e,t)),n);break;default:im(this,this._t0,n=y1(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function wT(e){this._context=new OT(e)}(wT.prototype=Object.create(Zf.prototype)).point=function(e,t){Zf.prototype.point.call(this,t,e)};function OT(e){this._context=e}OT.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}};function YU(e){return new Zf(e)}function JU(e){return new wT(e)}function ST(e){this._context=e}ST.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=b1(e),i=b1(t),a=0,o=1;o=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function e5(e){return new Dd(e,.5)}function t5(e){return new Dd(e,0)}function n5(e){return new Dd(e,1)}function Jo(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n=0;)n[t]=t;return n}function r5(e,t){return e[t]}function i5(e){const t=[];return t.key=e,t}function a5(){var e=Ne([]),t=ly,n=Jo,r=r5;function i(a){var o=Array.from(e.apply(this,arguments),i5),s,l=o.length,u=-1,f;for(const c of a)for(s=0,++u;s0){for(var n,r,i=0,a=e[0].length,o;i0){for(var n=0,r=e[t[0]],i,a=r.length;n0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function h5(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var PT={symbolCircle:eb,symbolCross:RU,symbolDiamond:IU,symbolSquare:LU,symbolStar:UU,symbolTriangle:WU,symbolWye:qU},m5=Math.PI/180,v5=function(t){var n="symbol".concat(Nd(t));return PT[n]||eb},y5=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*m5;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},g5=function(t,n){PT["symbol".concat(Nd(t))]=n},tb=function(t){var n=t.type,r=n===void 0?"circle":n,i=t.size,a=i===void 0?64:i,o=t.sizeType,s=o===void 0?"area":o,l=d5(t,u5),u=w1(w1({},l),{},{type:r,size:a,sizeType:s}),f=function(){var y=v5(r),h=KU().type(y).size(y5(a,s,r));return h()},c=u.className,p=u.cx,d=u.cy,g=ae(u,!0);return p===+p&&d===+d&&a===+a?T.createElement("path",uy({},g,{className:he("recharts-symbols",c),transform:"translate(".concat(p,", ").concat(d,")"),d:f()})):null};tb.registerSymbol=g5;function Zo(e){"@babel/helpers - typeof";return Zo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zo(e)}function cy(){return cy=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var v=d.inactive?u:d.color;return T.createElement("li",cy({className:y,style:c,key:"legend-item-".concat(g)},Na(r.props,d,g)),T.createElement(ty,{width:o,height:o,viewBox:f,style:p},r.renderIcon(d)),T.createElement("span",{className:"recharts-legend-item-text",style:{color:v}},m?m(h,d,g):h))})}},{key:"render",value:function(){var r=this.props,i=r.payload,a=r.layout,o=r.align;if(!i||!i.length)return null;var s={padding:0,margin:0,textAlign:a==="horizontal"?o:"left"};return T.createElement("ul",{className:"recharts-default-legend",style:s},this.renderItems())}}])}(A.PureComponent);ou(nb,"displayName","Legend");ou(nb,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var j5=xd;function T5(){this.__data__=new j5,this.size=0}var k5=T5;function $5(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var C5=$5;function N5(e){return this.__data__.get(e)}var M5=N5;function R5(e){return this.__data__.has(e)}var D5=R5,I5=xd,L5=W0,F5=H0,B5=200;function z5(e,t){var n=this.__data__;if(n instanceof I5){var r=n.__data__;if(!L5||r.lengths))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var c=-1,p=!0,d=n&u8?new a8:void 0;for(a.set(e,t),a.set(t,e);++c-1&&e%1==0&&e-1&&e%1==0&&e<=d6}var ob=h6,m6=Gr,v6=ob,y6=Xr,g6="[object Arguments]",b6="[object Array]",x6="[object Boolean]",w6="[object Date]",O6="[object Error]",S6="[object Function]",P6="[object Map]",_6="[object Number]",A6="[object Object]",E6="[object RegExp]",j6="[object Set]",T6="[object String]",k6="[object WeakMap]",$6="[object ArrayBuffer]",C6="[object DataView]",N6="[object Float32Array]",M6="[object Float64Array]",R6="[object Int8Array]",D6="[object Int16Array]",I6="[object Int32Array]",L6="[object Uint8Array]",F6="[object Uint8ClampedArray]",B6="[object Uint16Array]",z6="[object Uint32Array]",Le={};Le[N6]=Le[M6]=Le[R6]=Le[D6]=Le[I6]=Le[L6]=Le[F6]=Le[B6]=Le[z6]=!0;Le[g6]=Le[b6]=Le[$6]=Le[x6]=Le[C6]=Le[w6]=Le[O6]=Le[S6]=Le[P6]=Le[_6]=Le[A6]=Le[E6]=Le[j6]=Le[T6]=Le[k6]=!1;function U6(e){return y6(e)&&v6(e.length)&&!!Le[m6(e)]}var W6=U6;function H6(e){return function(t){return e(t)}}var RT=H6,rp={exports:{}};rp.exports;(function(e,t){var n=Wj,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,a=i&&i.exports===r,o=a&&n.process,s=function(){try{var l=i&&i.require&&i.require("util").types;return l||o&&o.binding&&o.binding("util")}catch{}}();e.exports=s})(rp,rp.exports);var q6=rp.exports,K6=W6,V6=RT,j1=q6,T1=j1&&j1.isTypedArray,G6=T1?V6(T1):K6,DT=G6,X6=J8,Q6=ib,Y6=rn,J6=MT,Z6=ab,eW=DT,tW=Object.prototype,nW=tW.hasOwnProperty;function rW(e,t){var n=Y6(e),r=!n&&Q6(e),i=!n&&!r&&J6(e),a=!n&&!r&&!i&&eW(e),o=n||r||i||a,s=o?X6(e.length,String):[],l=s.length;for(var u in e)(t||nW.call(e,u))&&!(o&&(u=="length"||i&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Z6(u,l)))&&s.push(u);return s}var iW=rW,aW=Object.prototype;function oW(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||aW;return e===n}var sW=oW;function lW(e,t){return function(n){return e(t(n))}}var IT=lW,uW=IT,cW=uW(Object.keys,Object),fW=cW,pW=sW,dW=fW,hW=Object.prototype,mW=hW.hasOwnProperty;function vW(e){if(!pW(e))return dW(e);var t=[];for(var n in Object(e))mW.call(e,n)&&n!="constructor"&&t.push(n);return t}var yW=vW,gW=z0,bW=ob;function xW(e){return e!=null&&bW(e.length)&&!gW(e)}var rc=xW,wW=iW,OW=yW,SW=rc;function PW(e){return SW(e)?wW(e):OW(e)}var Id=PW,_W=B8,AW=Q8,EW=Id;function jW(e){return _W(e,EW,AW)}var TW=jW,k1=TW,kW=1,$W=Object.prototype,CW=$W.hasOwnProperty;function NW(e,t,n,r,i,a){var o=n&kW,s=k1(e),l=s.length,u=k1(t),f=u.length;if(l!=f&&!o)return!1;for(var c=l;c--;){var p=s[c];if(!(o?p in t:CW.call(t,p)))return!1}var d=a.get(e),g=a.get(t);if(d&&g)return d==t&&g==e;var m=!0;a.set(e,t),a.set(t,e);for(var y=o;++c-1}var $q=kq;function Cq(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=Vq){var u=t?null:qq(e);if(u)return Kq(u);o=!1,i=Hq,l=new zq}else l=t?[]:s;e:for(;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function u9(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function c9(e){return e.value}function f9(e,t){if(T.isValidElement(e))return T.cloneElement(e,t);if(typeof e=="function")return T.createElement(e,t);t.ref;var n=l9(t,e9);return T.createElement(nb,n)}var K1=1,Mr=function(e){function t(){var n;t9(this,t);for(var r=arguments.length,i=new Array(r),a=0;aK1||Math.abs(i.height-this.lastBoundingBox.height)>K1)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,r&&r(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?gr({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var i=this.props,a=i.layout,o=i.align,s=i.verticalAlign,l=i.margin,u=i.chartWidth,f=i.chartHeight,c,p;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(o==="center"&&a==="vertical"){var d=this.getBBoxSnapshot();c={left:((u||0)-d.width)/2}}else c=o==="right"?{right:l&&l.right||0}:{left:l&&l.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(s==="middle"){var g=this.getBBoxSnapshot();p={top:((f||0)-g.height)/2}}else p=s==="bottom"?{bottom:l&&l.bottom||0}:{top:l&&l.top||0};return gr(gr({},c),p)}},{key:"render",value:function(){var r=this,i=this.props,a=i.content,o=i.width,s=i.height,l=i.wrapperStyle,u=i.payloadUniqBy,f=i.payload,c=gr(gr({position:"absolute",width:o||"auto",height:s||"auto"},this.getDefaultPosition(l)),l);return T.createElement("div",{className:"recharts-legend-wrapper",style:c,ref:function(d){r.wrapperNode=d}},f9(a,gr(gr({},this.props),{},{payload:HT(f,u,c9)})))}}],[{key:"getWithHeight",value:function(r,i){var a=gr(gr({},this.defaultProps),r.props),o=a.layout;return o==="vertical"&&V(r.props.height)?{height:r.props.height}:o==="horizontal"?{width:r.props.width||i}:null}}])}(A.PureComponent);Ld(Mr,"displayName","Legend");Ld(Mr,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var V1=tc,p9=ib,d9=rn,G1=V1?V1.isConcatSpreadable:void 0;function h9(e){return d9(e)||p9(e)||!!(G1&&e&&e[G1])}var m9=h9,v9=CT,y9=m9;function VT(e,t,n,r,i){var a=-1,o=e.length;for(n||(n=y9),i||(i=[]);++a0&&n(s)?t>1?VT(s,t-1,n,r,i):v9(i,s):r||(i[i.length]=s)}return i}var GT=VT;function g9(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var l=o[e?s:++i];if(n(a[l],l,a)===!1)break}return t}}var b9=g9,x9=b9,w9=x9(),O9=w9,S9=O9,P9=Id;function _9(e,t){return e&&S9(e,t,P9)}var XT=_9,A9=rc;function E9(e,t){return function(n,r){if(n==null)return n;if(!A9(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++at||a&&o&&l&&!s&&!u||r&&o&&l||!n&&l||!i)return 1;if(!r&&!a&&!u&&e=s)return l;var u=n[r];return l*(u=="desc"?-1:1)}}return e.index-t.index}var z9=B9,lm=K0,U9=V0,W9=vr,H9=QT,q9=D9,K9=RT,V9=z9,G9=Fs,X9=rn;function Q9(e,t,n){t.length?t=lm(t,function(a){return X9(a)?function(o){return U9(o,a.length===1?a[0]:a)}:a}):t=[G9];var r=-1;t=lm(t,K9(W9));var i=H9(e,function(a,o,s){var l=lm(t,function(u){return u(a)});return{criteria:l,index:++r,value:a}});return q9(i,function(a,o){return V9(a,o,n)})}var Y9=Q9;function J9(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var Z9=J9,eK=Z9,Q1=Math.max;function tK(e,t,n){return t=Q1(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,a=Q1(r.length-t,0),o=Array(a);++i0){if(++t>=fK)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var mK=hK,vK=cK,yK=mK,gK=yK(vK),bK=gK,xK=Fs,wK=nK,OK=bK;function SK(e,t){return OK(wK(e,t,xK),e+"")}var PK=SK,_K=U0,AK=rc,EK=ab,jK=Bi;function TK(e,t,n){if(!jK(n))return!1;var r=typeof t;return(r=="number"?AK(n)&&EK(t,n.length):r=="string"&&t in n)?_K(n[t],e):!1}var Fd=TK,kK=GT,$K=Y9,CK=PK,J1=Fd,NK=CK(function(e,t){if(e==null)return[];var n=t.length;return n>1&&J1(e,t[0],t[1])?t=[]:n>2&&J1(t[0],t[1],t[2])&&(t=[t[0]]),$K(e,kK(t,1),[])}),MK=NK;const ub=je(MK);function su(e){"@babel/helpers - typeof";return su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},su(e)}function gy(){return gy=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(il,"-left"),V(n)&&t&&V(t.x)&&n=t.y),"".concat(il,"-top"),V(r)&&t&&V(t.y)&&rm?Math.max(f,l[r]):Math.max(c,l[r])}function XK(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function QK(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,i=e.position,a=e.reverseDirection,o=e.tooltipBox,s=e.useTranslate3d,l=e.viewBox,u,f,c;return o.height>0&&o.width>0&&n?(f=tO({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:i,reverseDirection:a,tooltipDimension:o.width,viewBox:l,viewBoxDimension:l.width}),c=tO({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:i,reverseDirection:a,tooltipDimension:o.height,viewBox:l,viewBoxDimension:l.height}),u=XK({translateX:f,translateY:c,useTranslate3d:s})):u=VK,{cssProperties:u,cssClasses:GK({translateX:f,translateY:c,coordinate:n})}}function ts(e){"@babel/helpers - typeof";return ts=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ts(e)}function nO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function rO(e){for(var t=1;tiO||Math.abs(r.height-this.state.lastBoundingBox.height)>iO)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,i=this.props,a=i.active,o=i.allowEscapeViewBox,s=i.animationDuration,l=i.animationEasing,u=i.children,f=i.coordinate,c=i.hasPayload,p=i.isAnimationActive,d=i.offset,g=i.position,m=i.reverseDirection,y=i.useTranslate3d,h=i.viewBox,v=i.wrapperStyle,b=QK({allowEscapeViewBox:o,coordinate:f,offsetTopLeft:d,position:g,reverseDirection:m,tooltipBox:this.state.lastBoundingBox,useTranslate3d:y,viewBox:h}),w=b.cssClasses,x=b.cssProperties,O=rO(rO({transition:p&&a?"transform ".concat(s,"ms ").concat(l):void 0},x),{},{pointerEvents:"none",visibility:!this.state.dismissed&&a&&c?"visible":"hidden",position:"absolute",top:0,left:0},v);return T.createElement("div",{tabIndex:-1,className:w,style:O,ref:function(_){r.wrapperNode=_}},u)}}])}(A.PureComponent),o7=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Wa={isSsr:o7()};function ns(e){"@babel/helpers - typeof";return ns=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ns(e)}function aO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function oO(e){for(var t=1;t0;return T.createElement(a7,{allowEscapeViewBox:o,animationDuration:s,animationEasing:l,isAnimationActive:p,active:a,coordinate:f,hasPayload:O,offset:d,position:y,reverseDirection:h,useTranslate3d:v,viewBox:b,wrapperStyle:w},v7(u,oO(oO({},this.props),{},{payload:x})))}}])}(A.PureComponent);cb(_n,"displayName","Tooltip");cb(_n,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Wa.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var y7=mr,g7=function(){return y7.Date.now()},b7=g7,x7=/\s/;function w7(e){for(var t=e.length;t--&&x7.test(e.charAt(t)););return t}var O7=w7,S7=O7,P7=/^\s+/;function _7(e){return e&&e.slice(0,S7(e)+1).replace(P7,"")}var A7=_7,E7=A7,sO=Bi,j7=$s,lO=NaN,T7=/^[-+]0x[0-9a-f]+$/i,k7=/^0b[01]+$/i,$7=/^0o[0-7]+$/i,C7=parseInt;function N7(e){if(typeof e=="number")return e;if(j7(e))return lO;if(sO(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=sO(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=E7(e);var n=k7.test(e);return n||$7.test(e)?C7(e.slice(2),n?2:8):T7.test(e)?lO:+e}var nk=N7,M7=Bi,cm=b7,uO=nk,R7="Expected a function",D7=Math.max,I7=Math.min;function L7(e,t,n){var r,i,a,o,s,l,u=0,f=!1,c=!1,p=!0;if(typeof e!="function")throw new TypeError(R7);t=uO(t)||0,M7(n)&&(f=!!n.leading,c="maxWait"in n,a=c?D7(uO(n.maxWait)||0,t):a,p="trailing"in n?!!n.trailing:p);function d(O){var S=r,_=i;return r=i=void 0,u=O,o=e.apply(_,S),o}function g(O){return u=O,s=setTimeout(h,t),f?d(O):o}function m(O){var S=O-l,_=O-u,E=t-S;return c?I7(E,a-_):E}function y(O){var S=O-l,_=O-u;return l===void 0||S>=t||S<0||c&&_>=a}function h(){var O=cm();if(y(O))return v(O);s=setTimeout(h,m(O))}function v(O){return s=void 0,p&&r?d(O):(r=i=void 0,o)}function b(){s!==void 0&&clearTimeout(s),u=0,r=l=i=s=void 0}function w(){return s===void 0?o:v(cm())}function x(){var O=cm(),S=y(O);if(r=arguments,i=this,l=O,S){if(s===void 0)return g(l);if(c)return clearTimeout(s),s=setTimeout(h,t),d(l)}return s===void 0&&(s=setTimeout(h,t)),o}return x.cancel=b,x.flush=w,x}var F7=L7,B7=F7,z7=Bi,U7="Expected a function";function W7(e,t,n){var r=!0,i=!0;if(typeof e!="function")throw new TypeError(U7);return z7(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),B7(e,t,{leading:r,maxWait:t,trailing:i})}var H7=W7;const rk=je(H7);function uu(e){"@babel/helpers - typeof";return uu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uu(e)}function cO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ic(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(L=rk(L,m,{trailing:!0,leading:!1}));var M=new ResizeObserver(L),D=x.current.getBoundingClientRect(),B=D.width,W=D.height;return N(B,W),M.observe(x.current),function(){M.disconnect()}},[N,m]);var $=A.useMemo(function(){var L=E.containerWidth,M=E.containerHeight;if(L<0||M<0)return null;Gn(oa(o)||oa(l),`The width(%s) and height(%s) are both fixed numbers, - maybe you don't need to use a ResponsiveContainer.`,o,l),Gn(!n||n>0,"The aspect(%s) must be greater than zero.",n);var D=oa(o)?L:o,B=oa(l)?M:l;n&&n>0&&(D?B=D/n:B&&(D=B*n),p&&B>p&&(B=p)),Gn(D>0||B>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,D,B,o,l,f,c,n);var W=!Array.isArray(d)&&Nr(d.type).endsWith("Chart");return T.Children.map(d,function(R){return T.isValidElement(R)?A.cloneElement(R,Ic({width:D,height:B},W?{style:Ic({height:"100%",width:"100%",maxHeight:B,maxWidth:D},R.props.style)}:{})):R})},[n,d,l,p,c,f,E,o]);return T.createElement("div",{id:y?"".concat(y):void 0,className:he("recharts-responsive-container",h),style:Ic(Ic({},w),{},{width:o,height:l,minWidth:f,minHeight:c,maxHeight:p}),ref:x},$)}),Bd=function(t){return null};Bd.displayName="Cell";function cu(e){"@babel/helpers - typeof";return cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cu(e)}function pO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Oy(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Wa.isSsr)return{width:0,height:0};var r=iV(n),i=JSON.stringify({text:t,copyStyle:r});if(Qa.widthCache[i])return Qa.widthCache[i];try{var a=document.getElementById(dO);a||(a=document.createElement("span"),a.setAttribute("id",dO),a.setAttribute("aria-hidden","true"),document.body.appendChild(a));var o=Oy(Oy({},rV),r);Object.assign(a.style,o),a.textContent="".concat(t);var s=a.getBoundingClientRect(),l={width:s.width,height:s.height};return Qa.widthCache[i]=l,++Qa.cacheCount>nV&&(Qa.cacheCount=0,Qa.widthCache={}),l}catch{return{width:0,height:0}}},aV=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function fu(e){"@babel/helpers - typeof";return fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fu(e)}function sp(e,t){return uV(e)||lV(e,t)||sV(e,t)||oV()}function oV(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sV(e,t){if(e){if(typeof e=="string")return hO(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hO(e,t)}}function hO(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function SV(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function xO(e,t){return EV(e)||AV(e,t)||_V(e,t)||PV()}function PV(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _V(e,t){if(e){if(typeof e=="string")return wO(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return wO(e,t)}}function wO(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return D.reduce(function(B,W){var R=W.word,I=W.width,z=B[B.length-1];if(z&&(i==null||a||z.width+I+rW.width?B:W})};if(!f)return d;for(var m="…",y=function(D){var B=c.slice(0,D),W=sk({breakAll:u,style:l,children:B+m}).wordsWithComputedWidth,R=p(W),I=R.length>o||g(R).width>Number(i);return[I,R]},h=0,v=c.length-1,b=0,w;h<=v&&b<=c.length-1;){var x=Math.floor((h+v)/2),O=x-1,S=y(O),_=xO(S,2),E=_[0],k=_[1],N=y(x),$=xO(N,1),L=$[0];if(!E&&!L&&(h=x+1),E&&L&&(v=x-1),!E&&L){w=k;break}b++}return w||d},OO=function(t){var n=pe(t)?[]:t.toString().split(ok);return[{words:n}]},TV=function(t){var n=t.width,r=t.scaleToFit,i=t.children,a=t.style,o=t.breakAll,s=t.maxLines;if((n||r)&&!Wa.isSsr){var l,u,f=sk({breakAll:o,children:i,style:a});if(f){var c=f.wordsWithComputedWidth,p=f.spaceWidth;l=c,u=p}else return OO(i);return jV({breakAll:o,children:i,maxLines:s,style:a},l,u,n,r)}return OO(i)},SO="#808080",Ma=function(t){var n=t.x,r=n===void 0?0:n,i=t.y,a=i===void 0?0:i,o=t.lineHeight,s=o===void 0?"1em":o,l=t.capHeight,u=l===void 0?"0.71em":l,f=t.scaleToFit,c=f===void 0?!1:f,p=t.textAnchor,d=p===void 0?"start":p,g=t.verticalAnchor,m=g===void 0?"end":g,y=t.fill,h=y===void 0?SO:y,v=bO(t,wV),b=A.useMemo(function(){return TV({breakAll:v.breakAll,children:v.children,maxLines:v.maxLines,scaleToFit:c,style:v.style,width:v.width})},[v.breakAll,v.children,v.maxLines,c,v.style,v.width]),w=v.dx,x=v.dy,O=v.angle,S=v.className,_=v.breakAll,E=bO(v,OV);if(!dt(r)||!dt(a))return null;var k=r+(V(w)?w:0),N=a+(V(x)?x:0),$;switch(m){case"start":$=fm("calc(".concat(u,")"));break;case"middle":$=fm("calc(".concat((b.length-1)/2," * -").concat(s," + (").concat(u," / 2))"));break;default:$=fm("calc(".concat(b.length-1," * -").concat(s,")"));break}var L=[];if(c){var M=b[0].width,D=v.width;L.push("scale(".concat((V(D)?D/M:1)/M,")"))}return O&&L.push("rotate(".concat(O,", ").concat(k,", ").concat(N,")")),L.length&&(E.transform=L.join(" ")),T.createElement("text",Sy({},ae(E,!0),{x:k,y:N,className:he("recharts-text",S),textAnchor:d,fill:h.includes("url")?SO:h}),b.map(function(B,W){var R=B.words.join(_?"":" ");return T.createElement("tspan",{x:k,dy:W===0?$:s,key:"".concat(R,"-").concat(W)},R)}))};function Ci(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function kV(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function pb(e){let t,n,r;e.length!==2?(t=Ci,n=(s,l)=>Ci(e(s),l),r=(s,l)=>e(s)-l):(t=e===Ci||e===kV?e:$V,n=e,r=e);function i(s,l,u=0,f=s.length){if(u>>1;n(s[c],l)<0?u=c+1:f=c}while(u>>1;n(s[c],l)<=0?u=c+1:f=c}while(uu&&r(s[c-1],l)>-r(s[c],l)?c-1:c}return{left:i,center:o,right:a}}function $V(){return 0}function lk(e){return e===null?NaN:+e}function*CV(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const NV=pb(Ci),ic=NV.right;pb(lk).center;class PO extends Map{constructor(t,n=DV){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(_O(this,t))}has(t){return super.has(_O(this,t))}set(t,n){return super.set(MV(this,t),n)}delete(t){return super.delete(RV(this,t))}}function _O({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function MV({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function RV({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function DV(e){return e!==null&&typeof e=="object"?e.valueOf():e}function IV(e=Ci){if(e===Ci)return uk;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function uk(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const LV=Math.sqrt(50),FV=Math.sqrt(10),BV=Math.sqrt(2);function lp(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/Math.pow(10,i),o=a>=LV?10:a>=FV?5:a>=BV?2:1;let s,l,u;return i<0?(u=Math.pow(10,-i)/o,s=Math.round(e*u),l=Math.round(t*u),s/ut&&--l,u=-u):(u=Math.pow(10,i)*o,s=Math.round(e/u),l=Math.round(t/u),s*ut&&--l),l0))return[];if(e===t)return[e];const r=t=i))return[];const s=a-i+1,l=new Array(s);if(r)if(o<0)for(let u=0;u=r)&&(n=r);return n}function EO(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function ck(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?uk:IV(i);r>n;){if(r-n>600){const l=r-n+1,u=t-n+1,f=Math.log(l),c=.5*Math.exp(2*f/3),p=.5*Math.sqrt(f*c*(l-c)/l)*(u-l/2<0?-1:1),d=Math.max(n,Math.floor(t-u*c/l+p)),g=Math.min(r,Math.floor(t+(l-u)*c/l+p));ck(e,t,d,g,i)}const a=e[t];let o=n,s=r;for(al(e,n,t),i(e[r],a)>0&&al(e,n,r);o0;)--s}i(e[n],a)===0?al(e,n,s):(++s,al(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function al(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function zV(e,t,n){if(e=Float64Array.from(CV(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return EO(e);if(t>=1)return AO(e);var r,i=(r-1)*t,a=Math.floor(i),o=AO(ck(e,a).subarray(0,a+1)),s=EO(e.subarray(a+1));return o+(s-o)*(i-a)}}function UV(e,t,n=lk){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e),s=+n(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function WV(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=new Array(i);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Fc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Fc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=qV.exec(e))?new Jt(t[1],t[2],t[3],1):(t=KV.exec(e))?new Jt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=VV.exec(e))?Fc(t[1],t[2],t[3],t[4]):(t=GV.exec(e))?Fc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=XV.exec(e))?MO(t[1],t[2]/100,t[3]/100,1):(t=QV.exec(e))?MO(t[1],t[2]/100,t[3]/100,t[4]):jO.hasOwnProperty(e)?$O(jO[e]):e==="transparent"?new Jt(NaN,NaN,NaN,0):null}function $O(e){return new Jt(e>>16&255,e>>8&255,e&255,1)}function Fc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Jt(e,t,n,r)}function ZV(e){return e instanceof ac||(e=mu(e)),e?(e=e.rgb(),new Jt(e.r,e.g,e.b,e.opacity)):new Jt}function jy(e,t,n,r){return arguments.length===1?ZV(e):new Jt(e,t,n,r??1)}function Jt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}hb(Jt,jy,pk(ac,{brighter(e){return e=e==null?up:Math.pow(up,e),new Jt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?du:Math.pow(du,e),new Jt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Jt(Oa(this.r),Oa(this.g),Oa(this.b),cp(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:CO,formatHex:CO,formatHex8:eG,formatRgb:NO,toString:NO}));function CO(){return`#${sa(this.r)}${sa(this.g)}${sa(this.b)}`}function eG(){return`#${sa(this.r)}${sa(this.g)}${sa(this.b)}${sa((isNaN(this.opacity)?1:this.opacity)*255)}`}function NO(){const e=cp(this.opacity);return`${e===1?"rgb(":"rgba("}${Oa(this.r)}, ${Oa(this.g)}, ${Oa(this.b)}${e===1?")":`, ${e})`}`}function cp(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Oa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function sa(e){return e=Oa(e),(e<16?"0":"")+e.toString(16)}function MO(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new qn(e,t,n,r)}function dk(e){if(e instanceof qn)return new qn(e.h,e.s,e.l,e.opacity);if(e instanceof ac||(e=mu(e)),!e)return new qn;if(e instanceof qn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,l=(a+i)/2;return s?(t===a?o=(n-r)/s+(n0&&l<1?0:o,new qn(o,s,l,e.opacity)}function tG(e,t,n,r){return arguments.length===1?dk(e):new qn(e,t,n,r??1)}function qn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}hb(qn,tG,pk(ac,{brighter(e){return e=e==null?up:Math.pow(up,e),new qn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?du:Math.pow(du,e),new qn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Jt(pm(e>=240?e-240:e+120,i,r),pm(e,i,r),pm(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new qn(RO(this.h),Bc(this.s),Bc(this.l),cp(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=cp(this.opacity);return`${e===1?"hsl(":"hsla("}${RO(this.h)}, ${Bc(this.s)*100}%, ${Bc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function RO(e){return e=(e||0)%360,e<0?e+360:e}function Bc(e){return Math.max(0,Math.min(1,e||0))}function pm(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const mb=e=>()=>e;function nG(e,t){return function(n){return e+n*t}}function rG(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function iG(e){return(e=+e)==1?hk:function(t,n){return n-t?rG(t,n,e):mb(isNaN(t)?n:t)}}function hk(e,t){var n=t-e;return n?nG(e,n):mb(isNaN(e)?t:e)}const DO=function e(t){var n=iG(t);function r(i,a){var o=n((i=jy(i)).r,(a=jy(a)).r),s=n(i.g,a.g),l=n(i.b,a.b),u=hk(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=s(f),i.b=l(f),i.opacity=u(f),i+""}}return r.gamma=e,r}(1);function aG(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,l.push({i:o,x:fp(r,i)})),n=dm.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function vG(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i2?yG:vG,l=u=null,c}function c(p){return p==null||isNaN(p=+p)?a:(l||(l=s(e.map(r),t,n)))(r(o(p)))}return c.invert=function(p){return o(i((u||(u=s(t,e.map(r),fp)))(p)))},c.domain=function(p){return arguments.length?(e=Array.from(p,pp),f()):e.slice()},c.range=function(p){return arguments.length?(t=Array.from(p),f()):t.slice()},c.rangeRound=function(p){return t=Array.from(p),n=vb,f()},c.clamp=function(p){return arguments.length?(o=p?!0:Wt,f()):o!==Wt},c.interpolate=function(p){return arguments.length?(n=p,f()):n},c.unknown=function(p){return arguments.length?(a=p,c):a},function(p,d){return r=p,i=d,f()}}function yb(){return zd()(Wt,Wt)}function gG(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function dp(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function rs(e){return e=dp(Math.abs(e)),e?e[1]:NaN}function bG(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function xG(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var wG=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function vu(e){if(!(t=wG.exec(e)))throw new Error("invalid format: "+e);var t;return new gb({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}vu.prototype=gb.prototype;function gb(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}gb.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function OG(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var hp;function SG(e,t){var n=dp(e,t);if(!n)return hp=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(hp=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+dp(e,Math.max(0,t+a-1))[0]}function LO(e,t){var n=dp(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const FO={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:gG,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>LO(e*100,t),r:LO,s:SG,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function BO(e){return e}var zO=Array.prototype.map,UO=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function PG(e){var t=e.grouping===void 0||e.thousands===void 0?BO:bG(zO.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?BO:xG(zO.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(c,p){c=vu(c);var d=c.fill,g=c.align,m=c.sign,y=c.symbol,h=c.zero,v=c.width,b=c.comma,w=c.precision,x=c.trim,O=c.type;O==="n"?(b=!0,O="g"):FO[O]||(w===void 0&&(w=12),x=!0,O="g"),(h||d==="0"&&g==="=")&&(h=!0,d="0",g="=");var S=(p&&p.prefix!==void 0?p.prefix:"")+(y==="$"?n:y==="#"&&/[boxX]/.test(O)?"0"+O.toLowerCase():""),_=(y==="$"?r:/[%p]/.test(O)?o:"")+(p&&p.suffix!==void 0?p.suffix:""),E=FO[O],k=/[defgprs%]/.test(O);w=w===void 0?6:/[gprs]/.test(O)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function N($){var L=S,M=_,D,B,W;if(O==="c")M=E($)+M,$="";else{$=+$;var R=$<0||1/$<0;if($=isNaN($)?l:E(Math.abs($),w),x&&($=OG($)),R&&+$==0&&m!=="+"&&(R=!1),L=(R?m==="("?m:s:m==="-"||m==="("?"":m)+L,M=(O==="s"&&!isNaN($)&&hp!==void 0?UO[8+hp/3]:"")+M+(R&&m==="("?")":""),k){for(D=-1,B=$.length;++DW||W>57){M=(W===46?i+$.slice(D+1):$.slice(D))+M,$=$.slice(0,D);break}}}b&&!h&&($=t($,1/0));var I=L.length+$.length+M.length,z=I>1)+L+$+M+z.slice(I);break;default:$=z+L+$+M;break}return a($)}return N.toString=function(){return c+""},N}function f(c,p){var d=Math.max(-8,Math.min(8,Math.floor(rs(p)/3)))*3,g=Math.pow(10,-d),m=u((c=vu(c),c.type="f",c),{suffix:UO[8+d/3]});return function(y){return m(g*y)}}return{format:u,formatPrefix:f}}var zc,bb,mk;_G({thousands:",",grouping:[3],currency:["$",""]});function _G(e){return zc=PG(e),bb=zc.format,mk=zc.formatPrefix,zc}function AG(e){return Math.max(0,-rs(Math.abs(e)))}function EG(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(rs(t)/3)))*3-rs(Math.abs(e)))}function jG(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,rs(t)-rs(e))+1}function vk(e,t,n,r){var i=Ay(e,t,n),a;switch(r=vu(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=EG(i,o))&&(r.precision=a),mk(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=jG(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=AG(i))&&(r.precision=a-(r.type==="%")*2);break}}return bb(r)}function zi(e){var t=e.domain;return e.ticks=function(n){var r=t();return Py(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return vk(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],l,u,f=10;for(s0;){if(u=_y(o,s,n),u===l)return r[i]=o,r[a]=s,t(r);if(u>0)o=Math.floor(o/u)*u,s=Math.ceil(s/u)*u;else if(u<0)o=Math.ceil(o*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function mp(){var e=yb();return e.copy=function(){return oc(e,mp())},Dn.apply(e,arguments),zi(e)}function yk(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,pp),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return yk(e).unknown(t)},e=arguments.length?Array.from(e,pp):[0,1],zi(n)}function gk(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return aMath.pow(e,t)}function NG(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function qO(e){return(t,n)=>-e(-t,n)}function xb(e){const t=e(WO,HO),n=t.domain;let r=10,i,a;function o(){return i=NG(r),a=CG(r),n()[0]<0?(i=qO(i),a=qO(a),e(TG,kG)):e(WO,HO),t}return t.base=function(s){return arguments.length?(r=+s,o()):r},t.domain=function(s){return arguments.length?(n(s),o()):n()},t.ticks=s=>{const l=n();let u=l[0],f=l[l.length-1];const c=f0){for(;p<=d;++p)for(g=1;gf)break;h.push(m)}}else for(;p<=d;++p)for(g=r-1;g>=1;--g)if(m=p>0?g/a(-p):g*a(p),!(mf)break;h.push(m)}h.length*2{if(s==null&&(s=10),l==null&&(l=r===10?"s":","),typeof l!="function"&&(!(r%1)&&(l=vu(l)).precision==null&&(l.trim=!0),l=bb(l)),s===1/0)return l;const u=Math.max(1,r*s/t.ticks().length);return f=>{let c=f/a(Math.round(i(f)));return c*rn(gk(n(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function bk(){const e=xb(zd()).domain([1,10]);return e.copy=()=>oc(e,bk()).base(e.base()),Dn.apply(e,arguments),e}function KO(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function VO(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function wb(e){var t=1,n=e(KO(t),VO(t));return n.constant=function(r){return arguments.length?e(KO(t=+r),VO(t)):t},zi(n)}function xk(){var e=wb(zd());return e.copy=function(){return oc(e,xk()).constant(e.constant())},Dn.apply(e,arguments)}function GO(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function MG(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function RG(e){return e<0?-e*e:e*e}function Ob(e){var t=e(Wt,Wt),n=1;function r(){return n===1?e(Wt,Wt):n===.5?e(MG,RG):e(GO(n),GO(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},zi(t)}function Sb(){var e=Ob(zd());return e.copy=function(){return oc(e,Sb()).exponent(e.exponent())},Dn.apply(e,arguments),e}function DG(){return Sb.apply(null,arguments).exponent(.5)}function XO(e){return Math.sign(e)*e*e}function IG(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function wk(){var e=yb(),t=[0,1],n=!1,r;function i(a){var o=IG(e(a));return isNaN(o)?r:n?Math.round(o):o}return i.invert=function(a){return e.invert(XO(a))},i.domain=function(a){return arguments.length?(e.domain(a),i):e.domain()},i.range=function(a){return arguments.length?(e.range((t=Array.from(a,pp)).map(XO)),i):t.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(n=!!a,i):n},i.clamp=function(a){return arguments.length?(e.clamp(a),i):e.clamp()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return wk(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Dn.apply(i,arguments),zi(i)}function Ok(){var e=[],t=[],n=[],r;function i(){var o=0,s=Math.max(1,t.length);for(n=new Array(s-1);++o0?n[s-1]:e[0],s=n?[r[n-1],t]:[r[u-1],r[u]]},o.unknown=function(l){return arguments.length&&(a=l),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Sk().domain([e,t]).range(i).unknown(a)},Dn.apply(zi(o),arguments)}function Pk(){var e=[.5],t=[0,1],n,r=1;function i(a){return a!=null&&a<=a?t[ic(e,a,0,r)]:n}return i.domain=function(a){return arguments.length?(e=Array.from(a),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return Pk().domain(e).range(t).unknown(n)},Dn.apply(i,arguments)}const hm=new Date,mm=new Date;function ht(e,t,n,r){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),s=i.ceil(a);return a-o(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,s)=>{const l=[];if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a0))return l;let u;do l.push(u=new Date(+a)),t(a,s),e(a);while(uht(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(o,s)=>{if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););}),n&&(i.count=(a,o)=>(hm.setTime(+a),mm.setTime(+o),e(hm),e(mm),Math.floor(n(hm,mm))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?o=>r(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const vp=ht(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);vp.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?ht(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):vp);vp.range;const Tr=1e3,kn=Tr*60,kr=kn*60,Wr=kr*24,Pb=Wr*7,QO=Wr*30,vm=Wr*365,la=ht(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Tr)},(e,t)=>(t-e)/Tr,e=>e.getUTCSeconds());la.range;const _b=ht(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Tr)},(e,t)=>{e.setTime(+e+t*kn)},(e,t)=>(t-e)/kn,e=>e.getMinutes());_b.range;const Ab=ht(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*kn)},(e,t)=>(t-e)/kn,e=>e.getUTCMinutes());Ab.range;const Eb=ht(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Tr-e.getMinutes()*kn)},(e,t)=>{e.setTime(+e+t*kr)},(e,t)=>(t-e)/kr,e=>e.getHours());Eb.range;const jb=ht(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*kr)},(e,t)=>(t-e)/kr,e=>e.getUTCHours());jb.range;const sc=ht(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*kn)/Wr,e=>e.getDate()-1);sc.range;const Ud=ht(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Wr,e=>e.getUTCDate()-1);Ud.range;const _k=ht(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Wr,e=>Math.floor(e/Wr));_k.range;function Ha(e){return ht(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*kn)/Pb)}const Wd=Ha(0),yp=Ha(1),LG=Ha(2),FG=Ha(3),is=Ha(4),BG=Ha(5),zG=Ha(6);Wd.range;yp.range;LG.range;FG.range;is.range;BG.range;zG.range;function qa(e){return ht(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/Pb)}const Hd=qa(0),gp=qa(1),UG=qa(2),WG=qa(3),as=qa(4),HG=qa(5),qG=qa(6);Hd.range;gp.range;UG.range;WG.range;as.range;HG.range;qG.range;const Tb=ht(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Tb.range;const kb=ht(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());kb.range;const Hr=ht(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Hr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ht(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});Hr.range;const qr=ht(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());qr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:ht(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});qr.range;function Ak(e,t,n,r,i,a){const o=[[la,1,Tr],[la,5,5*Tr],[la,15,15*Tr],[la,30,30*Tr],[a,1,kn],[a,5,5*kn],[a,15,15*kn],[a,30,30*kn],[i,1,kr],[i,3,3*kr],[i,6,6*kr],[i,12,12*kr],[r,1,Wr],[r,2,2*Wr],[n,1,Pb],[t,1,QO],[t,3,3*QO],[e,1,vm]];function s(u,f,c){const p=fy).right(o,p);if(d===o.length)return e.every(Ay(u/vm,f/vm,c));if(d===0)return vp.every(Math.max(Ay(u,f,c),1));const[g,m]=o[p/o[d-1][2]53)return null;"w"in U||(U.w=1),"Z"in U?(me=gm(ol(U.y,0,1)),Oe=me.getUTCDay(),me=Oe>4||Oe===0?gp.ceil(me):gp(me),me=Ud.offset(me,(U.V-1)*7),U.y=me.getUTCFullYear(),U.m=me.getUTCMonth(),U.d=me.getUTCDate()+(U.w+6)%7):(me=ym(ol(U.y,0,1)),Oe=me.getDay(),me=Oe>4||Oe===0?yp.ceil(me):yp(me),me=sc.offset(me,(U.V-1)*7),U.y=me.getFullYear(),U.m=me.getMonth(),U.d=me.getDate()+(U.w+6)%7)}else("W"in U||"U"in U)&&("w"in U||(U.w="u"in U?U.u%7:"W"in U?1:0),Oe="Z"in U?gm(ol(U.y,0,1)).getUTCDay():ym(ol(U.y,0,1)).getDay(),U.m=0,U.d="W"in U?(U.w+6)%7+U.W*7-(Oe+5)%7:U.w+U.U*7-(Oe+6)%7);return"Z"in U?(U.H+=U.Z/100|0,U.M+=U.Z%100,gm(U)):ym(U)}}function _(G,fe,le,U){for(var we=0,me=fe.length,Oe=le.length,ee,_e;we=Oe)return-1;if(ee=fe.charCodeAt(we++),ee===37){if(ee=fe.charAt(we++),_e=x[ee in YO?fe.charAt(we++):ee],!_e||(U=_e(G,le,U))<0)return-1}else if(ee!=le.charCodeAt(U++))return-1}return U}function E(G,fe,le){var U=u.exec(fe.slice(le));return U?(G.p=f.get(U[0].toLowerCase()),le+U[0].length):-1}function k(G,fe,le){var U=d.exec(fe.slice(le));return U?(G.w=g.get(U[0].toLowerCase()),le+U[0].length):-1}function N(G,fe,le){var U=c.exec(fe.slice(le));return U?(G.w=p.get(U[0].toLowerCase()),le+U[0].length):-1}function $(G,fe,le){var U=h.exec(fe.slice(le));return U?(G.m=v.get(U[0].toLowerCase()),le+U[0].length):-1}function L(G,fe,le){var U=m.exec(fe.slice(le));return U?(G.m=y.get(U[0].toLowerCase()),le+U[0].length):-1}function M(G,fe,le){return _(G,t,fe,le)}function D(G,fe,le){return _(G,n,fe,le)}function B(G,fe,le){return _(G,r,fe,le)}function W(G){return o[G.getDay()]}function R(G){return a[G.getDay()]}function I(G){return l[G.getMonth()]}function z(G){return s[G.getMonth()]}function K(G){return i[+(G.getHours()>=12)]}function H(G){return 1+~~(G.getMonth()/3)}function te(G){return o[G.getUTCDay()]}function ce(G){return a[G.getUTCDay()]}function ye(G){return l[G.getUTCMonth()]}function ie(G){return s[G.getUTCMonth()]}function be(G){return i[+(G.getUTCHours()>=12)]}function Ge(G){return 1+~~(G.getUTCMonth()/3)}return{format:function(G){var fe=O(G+="",b);return fe.toString=function(){return G},fe},parse:function(G){var fe=S(G+="",!1);return fe.toString=function(){return G},fe},utcFormat:function(G){var fe=O(G+="",w);return fe.toString=function(){return G},fe},utcParse:function(G){var fe=S(G+="",!0);return fe.toString=function(){return G},fe}}}var YO={"-":"",_:" ",0:"0"},wt=/^\s*\d+/,YG=/^%/,JG=/[\\^$*+?|[\]().{}]/g;function Pe(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a[t.toLowerCase(),n]))}function eX(e,t,n){var r=wt.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function tX(e,t,n){var r=wt.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function nX(e,t,n){var r=wt.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function rX(e,t,n){var r=wt.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function iX(e,t,n){var r=wt.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function JO(e,t,n){var r=wt.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function ZO(e,t,n){var r=wt.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function aX(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function oX(e,t,n){var r=wt.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function sX(e,t,n){var r=wt.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function eS(e,t,n){var r=wt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function lX(e,t,n){var r=wt.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function tS(e,t,n){var r=wt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function uX(e,t,n){var r=wt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function cX(e,t,n){var r=wt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function fX(e,t,n){var r=wt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function pX(e,t,n){var r=wt.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function dX(e,t,n){var r=YG.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function hX(e,t,n){var r=wt.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function mX(e,t,n){var r=wt.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function nS(e,t){return Pe(e.getDate(),t,2)}function vX(e,t){return Pe(e.getHours(),t,2)}function yX(e,t){return Pe(e.getHours()%12||12,t,2)}function gX(e,t){return Pe(1+sc.count(Hr(e),e),t,3)}function Ek(e,t){return Pe(e.getMilliseconds(),t,3)}function bX(e,t){return Ek(e,t)+"000"}function xX(e,t){return Pe(e.getMonth()+1,t,2)}function wX(e,t){return Pe(e.getMinutes(),t,2)}function OX(e,t){return Pe(e.getSeconds(),t,2)}function SX(e){var t=e.getDay();return t===0?7:t}function PX(e,t){return Pe(Wd.count(Hr(e)-1,e),t,2)}function jk(e){var t=e.getDay();return t>=4||t===0?is(e):is.ceil(e)}function _X(e,t){return e=jk(e),Pe(is.count(Hr(e),e)+(Hr(e).getDay()===4),t,2)}function AX(e){return e.getDay()}function EX(e,t){return Pe(yp.count(Hr(e)-1,e),t,2)}function jX(e,t){return Pe(e.getFullYear()%100,t,2)}function TX(e,t){return e=jk(e),Pe(e.getFullYear()%100,t,2)}function kX(e,t){return Pe(e.getFullYear()%1e4,t,4)}function $X(e,t){var n=e.getDay();return e=n>=4||n===0?is(e):is.ceil(e),Pe(e.getFullYear()%1e4,t,4)}function CX(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Pe(t/60|0,"0",2)+Pe(t%60,"0",2)}function rS(e,t){return Pe(e.getUTCDate(),t,2)}function NX(e,t){return Pe(e.getUTCHours(),t,2)}function MX(e,t){return Pe(e.getUTCHours()%12||12,t,2)}function RX(e,t){return Pe(1+Ud.count(qr(e),e),t,3)}function Tk(e,t){return Pe(e.getUTCMilliseconds(),t,3)}function DX(e,t){return Tk(e,t)+"000"}function IX(e,t){return Pe(e.getUTCMonth()+1,t,2)}function LX(e,t){return Pe(e.getUTCMinutes(),t,2)}function FX(e,t){return Pe(e.getUTCSeconds(),t,2)}function BX(e){var t=e.getUTCDay();return t===0?7:t}function zX(e,t){return Pe(Hd.count(qr(e)-1,e),t,2)}function kk(e){var t=e.getUTCDay();return t>=4||t===0?as(e):as.ceil(e)}function UX(e,t){return e=kk(e),Pe(as.count(qr(e),e)+(qr(e).getUTCDay()===4),t,2)}function WX(e){return e.getUTCDay()}function HX(e,t){return Pe(gp.count(qr(e)-1,e),t,2)}function qX(e,t){return Pe(e.getUTCFullYear()%100,t,2)}function KX(e,t){return e=kk(e),Pe(e.getUTCFullYear()%100,t,2)}function VX(e,t){return Pe(e.getUTCFullYear()%1e4,t,4)}function GX(e,t){var n=e.getUTCDay();return e=n>=4||n===0?as(e):as.ceil(e),Pe(e.getUTCFullYear()%1e4,t,4)}function XX(){return"+0000"}function iS(){return"%"}function aS(e){return+e}function oS(e){return Math.floor(+e/1e3)}var Ya,$k,Ck;QX({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function QX(e){return Ya=QG(e),$k=Ya.format,Ya.parse,Ck=Ya.utcFormat,Ya.utcParse,Ya}function YX(e){return new Date(e)}function JX(e){return e instanceof Date?+e:+new Date(+e)}function $b(e,t,n,r,i,a,o,s,l,u){var f=yb(),c=f.invert,p=f.domain,d=u(".%L"),g=u(":%S"),m=u("%I:%M"),y=u("%I %p"),h=u("%a %d"),v=u("%b %d"),b=u("%B"),w=u("%Y");function x(O){return(l(O)t(i/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(i,a)=>zV(e,a/r))},n.copy=function(){return Dk(t).domain(e)},Qr.apply(n,arguments)}function Kd(){var e=0,t=.5,n=1,r=1,i,a,o,s,l,u=Wt,f,c=!1,p;function d(m){return isNaN(m=+m)?p:(m=.5+((m=+f(m))-a)*(r*mt}var Bk=aQ,oQ=Vd,sQ=Bk,lQ=Fs;function uQ(e){return e&&e.length?oQ(e,lQ,sQ):void 0}var cQ=uQ;const Gd=je(cQ);function fQ(e,t){return ee.e^a.s<0?1:-1;for(r=a.d.length,i=e.d.length,t=0,n=re.d[t]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1};Z.decimalPlaces=Z.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*Fe;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Z.dividedBy=Z.div=function(e){return Rr(this,new this.constructor(e))};Z.dividedToIntegerBy=Z.idiv=function(e){var t=this,n=t.constructor;return $e(Rr(t,new n(e),0,1),n.precision)};Z.equals=Z.eq=function(e){return!this.cmp(e)};Z.exponent=function(){return at(this)};Z.greaterThan=Z.gt=function(e){return this.cmp(e)>0};Z.greaterThanOrEqualTo=Z.gte=function(e){return this.cmp(e)>=0};Z.isInteger=Z.isint=function(){return this.e>this.d.length-2};Z.isNegative=Z.isneg=function(){return this.s<0};Z.isPositive=Z.ispos=function(){return this.s>0};Z.isZero=function(){return this.s===0};Z.lessThan=Z.lt=function(e){return this.cmp(e)<0};Z.lessThanOrEqualTo=Z.lte=function(e){return this.cmp(e)<1};Z.logarithm=Z.log=function(e){var t,n=this,r=n.constructor,i=r.precision,a=i+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(pn))throw Error(Mn+"NaN");if(n.s<1)throw Error(Mn+(n.s?"NaN":"-Infinity"));return n.eq(pn)?new r(0):(We=!1,t=Rr(yu(n,a),yu(e,a),a),We=!0,$e(t,i))};Z.minus=Z.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?qk(t,e):Wk(t,(e.s=-e.s,e))};Z.modulo=Z.mod=function(e){var t,n=this,r=n.constructor,i=r.precision;if(e=new r(e),!e.s)throw Error(Mn+"NaN");return n.s?(We=!1,t=Rr(n,e,0,1).times(e),We=!0,n.minus(t)):$e(new r(n),i)};Z.naturalExponential=Z.exp=function(){return Hk(this)};Z.naturalLogarithm=Z.ln=function(){return yu(this)};Z.negated=Z.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Z.plus=Z.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Wk(t,e):qk(t,(e.s=-e.s,e))};Z.precision=Z.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Sa+e);if(t=at(i)+1,r=i.d.length-1,n=r*Fe+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Z.squareRoot=Z.sqrt=function(){var e,t,n,r,i,a,o,s=this,l=s.constructor;if(s.s<1){if(!s.s)return new l(0);throw Error(Mn+"NaN")}for(e=at(s),We=!1,i=Math.sqrt(+s),i==0||i==1/0?(t=sr(s.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Us((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new l(t)):r=new l(i.toString()),n=l.precision,i=o=n+3;;)if(a=r,r=a.plus(Rr(s,a,o+2)).times(.5),sr(a.d).slice(0,o)===(t=sr(r.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&t=="4999"){if($e(a,n+1,0),a.times(a).eq(s)){r=a;break}}else if(t!="9999")break;o+=4}return We=!0,$e(r,n)};Z.times=Z.mul=function(e){var t,n,r,i,a,o,s,l,u,f=this,c=f.constructor,p=f.d,d=(e=new c(e)).d;if(!f.s||!e.s)return new c(0);for(e.s*=f.s,n=f.e+e.e,l=p.length,u=d.length,l=0;){for(t=0,i=l+r;i>r;)s=a[i]+d[r]*p[i-r-1]+t,a[i--]=s%yt|0,t=s/yt|0;a[i]=(a[i]+t)%yt|0}for(;!a[--o];)a.pop();return t?++n:a.shift(),e.d=a,e.e=n,We?$e(e,c.precision):e};Z.toDecimalPlaces=Z.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(dr(e,0,zs),t===void 0?t=r.rounding:dr(t,0,8),$e(n,e+at(n)+1,t))};Z.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=Ra(r,!0):(dr(e,0,zs),t===void 0?t=i.rounding:dr(t,0,8),r=$e(new i(r),e+1,t),n=Ra(r,!0,e+1)),n};Z.toFixed=function(e,t){var n,r,i=this,a=i.constructor;return e===void 0?Ra(i):(dr(e,0,zs),t===void 0?t=a.rounding:dr(t,0,8),r=$e(new a(i),e+at(i)+1,t),n=Ra(r.abs(),!1,e+at(r)+1),i.isneg()&&!i.isZero()?"-"+n:n)};Z.toInteger=Z.toint=function(){var e=this,t=e.constructor;return $e(new t(e),at(e)+1,t.rounding)};Z.toNumber=function(){return+this};Z.toPower=Z.pow=function(e){var t,n,r,i,a,o,s=this,l=s.constructor,u=12,f=+(e=new l(e));if(!e.s)return new l(pn);if(s=new l(s),!s.s){if(e.s<1)throw Error(Mn+"Infinity");return s}if(s.eq(pn))return s;if(r=l.precision,e.eq(pn))return $e(s,r);if(t=e.e,n=e.d.length-1,o=t>=n,a=s.s,o){if((n=f<0?-f:f)<=Uk){for(i=new l(pn),t=Math.ceil(r/Fe+4),We=!1;n%2&&(i=i.times(s),uS(i.d,t)),n=Us(n/2),n!==0;)s=s.times(s),uS(s.d,t);return We=!0,e.s<0?new l(pn).div(i):$e(i,r)}}else if(a<0)throw Error(Mn+"NaN");return a=a<0&&e.d[Math.max(t,n)]&1?-1:1,s.s=1,We=!1,i=e.times(yu(s,r+u)),We=!0,i=Hk(i),i.s=a,i};Z.toPrecision=function(e,t){var n,r,i=this,a=i.constructor;return e===void 0?(n=at(i),r=Ra(i,n<=a.toExpNeg||n>=a.toExpPos)):(dr(e,1,zs),t===void 0?t=a.rounding:dr(t,0,8),i=$e(new a(i),e,t),n=at(i),r=Ra(i,e<=n||n<=a.toExpNeg,e)),r};Z.toSignificantDigits=Z.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(dr(e,1,zs),t===void 0?t=r.rounding:dr(t,0,8)),$e(new r(n),e,t)};Z.toString=Z.valueOf=Z.val=Z.toJSON=Z[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=at(e),n=e.constructor;return Ra(e,t<=n.toExpNeg||t>=n.toExpPos)};function Wk(e,t){var n,r,i,a,o,s,l,u,f=e.constructor,c=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),We?$e(t,c):t;if(l=e.d,u=t.d,o=e.e,i=t.e,l=l.slice(),a=o-i,a){for(a<0?(r=l,a=-a,s=u.length):(r=u,i=o,s=l.length),o=Math.ceil(c/Fe),s=o>s?o+1:s+1,a>s&&(a=s,r.length=1),r.reverse();a--;)r.push(0);r.reverse()}for(s=l.length,a=u.length,s-a<0&&(a=s,r=u,u=l,l=r),n=0;a;)n=(l[--a]=l[a]+u[a]+n)/yt|0,l[a]%=yt;for(n&&(l.unshift(n),++i),s=l.length;l[--s]==0;)l.pop();return t.d=l,t.e=i,We?$e(t,c):t}function dr(e,t,n){if(e!==~~e||en)throw Error(Sa+e)}function sr(e){var t,n,r,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;to?1:-1;else for(s=l=0;si[s]?1:-1;break}return l}function n(r,i,a){for(var o=0;a--;)r[a]-=o,o=r[a]1;)r.shift()}return function(r,i,a,o){var s,l,u,f,c,p,d,g,m,y,h,v,b,w,x,O,S,_,E=r.constructor,k=r.s==i.s?1:-1,N=r.d,$=i.d;if(!r.s)return new E(r);if(!i.s)throw Error(Mn+"Division by zero");for(l=r.e-i.e,S=$.length,x=N.length,d=new E(k),g=d.d=[],u=0;$[u]==(N[u]||0);)++u;if($[u]>(N[u]||0)&&--l,a==null?v=a=E.precision:o?v=a+(at(r)-at(i))+1:v=a,v<0)return new E(0);if(v=v/Fe+2|0,u=0,S==1)for(f=0,$=$[0],v++;(u1&&($=e($,f),N=e(N,f),S=$.length,x=N.length),w=S,m=N.slice(0,S),y=m.length;y=yt/2&&++O;do f=0,s=t($,m,S,y),s<0?(h=m[0],S!=y&&(h=h*yt+(m[1]||0)),f=h/O|0,f>1?(f>=yt&&(f=yt-1),c=e($,f),p=c.length,y=m.length,s=t(c,m,p,y),s==1&&(f--,n(c,S16)throw Error(Mb+at(e));if(!e.s)return new f(pn);for(We=!1,s=c,o=new f(.03125);e.abs().gte(.1);)e=e.times(o),u+=5;for(r=Math.log(Yi(2,u))/Math.LN10*2+5|0,s+=r,n=i=a=new f(pn),f.precision=s;;){if(i=$e(i.times(e),s),n=n.times(++l),o=a.plus(Rr(i,n,s)),sr(o.d).slice(0,s)===sr(a.d).slice(0,s)){for(;u--;)a=$e(a.times(a),s);return f.precision=c,t==null?(We=!0,$e(a,c)):a}a=o}}function at(e){for(var t=e.e*Fe,n=e.d[0];n>=10;n/=10)t++;return t}function bm(e,t,n){if(t>e.LN10.sd())throw We=!0,n&&(e.precision=n),Error(Mn+"LN10 precision limit exceeded");return $e(new e(e.LN10),t)}function ri(e){for(var t="";e--;)t+="0";return t}function yu(e,t){var n,r,i,a,o,s,l,u,f,c=1,p=10,d=e,g=d.d,m=d.constructor,y=m.precision;if(d.s<1)throw Error(Mn+(d.s?"NaN":"-Infinity"));if(d.eq(pn))return new m(0);if(t==null?(We=!1,u=y):u=t,d.eq(10))return t==null&&(We=!0),bm(m,u);if(u+=p,m.precision=u,n=sr(g),r=n.charAt(0),a=at(d),Math.abs(a)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)d=d.times(e),n=sr(d.d),r=n.charAt(0),c++;a=at(d),r>1?(d=new m("0."+n),a++):d=new m(r+"."+n.slice(1))}else return l=bm(m,u+2,y).times(a+""),d=yu(new m(r+"."+n.slice(1)),u-p).plus(l),m.precision=y,t==null?(We=!0,$e(d,y)):d;for(s=o=d=Rr(d.minus(pn),d.plus(pn),u),f=$e(d.times(d),u),i=3;;){if(o=$e(o.times(f),u),l=s.plus(Rr(o,new m(i),u)),sr(l.d).slice(0,u)===sr(s.d).slice(0,u))return s=s.times(2),a!==0&&(s=s.plus(bm(m,u+2,y).times(a+""))),s=Rr(s,new m(c),u),m.precision=y,t==null?(We=!0,$e(s,y)):s;s=l,i+=2}}function lS(e,t){var n,r,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(r,i),t){if(i-=r,n=n-r-1,e.e=Us(n/Fe),e.d=[],r=(n+1)%Fe,n<0&&(r+=Fe),rbp||e.e<-bp))throw Error(Mb+n)}else e.s=0,e.e=0,e.d=[0];return e}function $e(e,t,n){var r,i,a,o,s,l,u,f,c=e.d;for(o=1,a=c[0];a>=10;a/=10)o++;if(r=t-o,r<0)r+=Fe,i=t,u=c[f=0];else{if(f=Math.ceil((r+1)/Fe),a=c.length,f>=a)return e;for(u=a=c[f],o=1;a>=10;a/=10)o++;r%=Fe,i=r-Fe+o}if(n!==void 0&&(a=Yi(10,o-i-1),s=u/a%10|0,l=t<0||c[f+1]!==void 0||u%a,l=n<4?(s||l)&&(n==0||n==(e.s<0?3:2)):s>5||s==5&&(n==4||l||n==6&&(r>0?i>0?u/Yi(10,o-i):0:c[f-1])%10&1||n==(e.s<0?8:7))),t<1||!c[0])return l?(a=at(e),c.length=1,t=t-a-1,c[0]=Yi(10,(Fe-t%Fe)%Fe),e.e=Us(-t/Fe)||0):(c.length=1,c[0]=e.e=e.s=0),e;if(r==0?(c.length=f,a=1,f--):(c.length=f+1,a=Yi(10,Fe-r),c[f]=i>0?(u/Yi(10,o-i)%Yi(10,i)|0)*a:0),l)for(;;)if(f==0){(c[0]+=a)==yt&&(c[0]=1,++e.e);break}else{if(c[f]+=a,c[f]!=yt)break;c[f--]=0,a=1}for(r=c.length;c[--r]===0;)c.pop();if(We&&(e.e>bp||e.e<-bp))throw Error(Mb+at(e));return e}function qk(e,t){var n,r,i,a,o,s,l,u,f,c,p=e.constructor,d=p.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new p(e),We?$e(t,d):t;if(l=e.d,c=t.d,r=t.e,u=e.e,l=l.slice(),o=u-r,o){for(f=o<0,f?(n=l,o=-o,s=c.length):(n=c,r=u,s=l.length),i=Math.max(Math.ceil(d/Fe),s)+2,o>i&&(o=i,n.length=1),n.reverse(),i=o;i--;)n.push(0);n.reverse()}else{for(i=l.length,s=c.length,f=i0;--i)l[s++]=0;for(i=c.length;i>o;){if(l[--i]0?a=a.charAt(0)+"."+a.slice(1)+ri(r):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+ri(-i-1)+a,n&&(r=n-o)>0&&(a+=ri(r))):i>=o?(a+=ri(i+1-o),n&&(r=n-i-1)>0&&(a=a+"."+ri(r))):((r=i+1)0&&(i+1===o&&(a+="."),a+=ri(r))),e.s<0?"-"+a:a}function uS(e,t){if(e.length>t)return e.length=t,!0}function Kk(e){var t,n,r;function i(a){var o=this;if(!(o instanceof i))return new i(a);if(o.constructor=i,a instanceof i){o.s=a.s,o.e=a.e,o.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(Sa+a);if(a>0)o.s=1;else if(a<0)a=-a,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(a===~~a&&a<1e7){o.e=0,o.d=[a];return}return lS(o,a.toString())}else if(typeof a!="string")throw Error(Sa+a);if(a.charCodeAt(0)===45?(a=a.slice(1),o.s=-1):o.s=1,CQ.test(a))lS(o,a);else throw Error(Sa+a)}if(i.prototype=Z,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=Kk,i.config=i.set=NQ,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&r<=i[t+2])this[n]=r;else throw Error(Sa+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(Sa+n+": "+r);return this}var Rb=Kk($Q);pn=new Rb(1);const ke=Rb;function MQ(e){return LQ(e)||IQ(e)||DQ(e)||RQ()}function RQ(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function DQ(e,t){if(e){if(typeof e=="string")return $y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $y(e,t)}}function IQ(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function LQ(e){if(Array.isArray(e))return $y(e)}function $y(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,i):e(t-o,cS(function(){for(var s=arguments.length,l=new Array(s),u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),s;!(r=(s=o.next()).done)&&(n.push(s.value),!(t&&n.length===t));r=!0);}catch(l){i=!0,a=l}finally{try{!r&&o.return!=null&&o.return()}finally{if(i)throw a}}return n}}function ZQ(e){if(Array.isArray(e))return e}function Yk(e){var t=gu(e,2),n=t[0],r=t[1],i=n,a=r;return n>r&&(i=r,a=n),[i,a]}function Jk(e,t,n){if(e.lte(0))return new ke(0);var r=Yd.getDigitCount(e.toNumber()),i=new ke(10).pow(r),a=e.div(i),o=r!==1?.05:.1,s=new ke(Math.ceil(a.div(o).toNumber())).add(n).mul(o),l=s.mul(i);return t?l:new ke(Math.ceil(l))}function eY(e,t,n){var r=1,i=new ke(e);if(!i.isint()&&n){var a=Math.abs(e);a<1?(r=new ke(10).pow(Yd.getDigitCount(e)-1),i=new ke(Math.floor(i.div(r).toNumber())).mul(r)):a>1&&(i=new ke(Math.floor(e)))}else e===0?i=new ke(Math.floor((t-1)/2)):n||(i=new ke(Math.floor(e)));var o=Math.floor((t-1)/2),s=UQ(zQ(function(l){return i.add(new ke(l-o).mul(r)).toNumber()}),Cy);return s(0,t)}function Zk(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new ke(0),tickMin:new ke(0),tickMax:new ke(0)};var a=Jk(new ke(t).sub(e).div(n-1),r,i),o;e<=0&&t>=0?o=new ke(0):(o=new ke(e).add(t).div(2),o=o.sub(new ke(o).mod(a)));var s=Math.ceil(o.sub(e).div(a).toNumber()),l=Math.ceil(new ke(t).sub(o).div(a).toNumber()),u=s+l+1;return u>n?Zk(e,t,n,r,i+1):(u0?l+(n-u):l,s=t>0?s:s+(n-u)),{step:a,tickMin:o.sub(new ke(s).mul(a)),tickMax:o.add(new ke(l).mul(a))})}function tY(e){var t=gu(e,2),n=t[0],r=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(i,2),s=Yk([n,r]),l=gu(s,2),u=l[0],f=l[1];if(u===-1/0||f===1/0){var c=f===1/0?[u].concat(My(Cy(0,i-1).map(function(){return 1/0}))):[].concat(My(Cy(0,i-1).map(function(){return-1/0})),[f]);return n>r?Ny(c):c}if(u===f)return eY(u,i,a);var p=Zk(u,f,o,a),d=p.step,g=p.tickMin,m=p.tickMax,y=Yd.rangeStep(g,m.add(new ke(.1).mul(d)),d);return n>r?Ny(y):y}function nY(e,t){var n=gu(e,2),r=n[0],i=n[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Yk([r,i]),s=gu(o,2),l=s[0],u=s[1];if(l===-1/0||u===1/0)return[r,i];if(l===u)return[l];var f=Math.max(t,2),c=Jk(new ke(u).sub(l).div(f-1),a,0),p=[].concat(My(Yd.rangeStep(new ke(l),new ke(u).sub(new ke(.99).mul(c)),c)),[u]);return r>i?Ny(p):p}var rY=Xk(tY),iY=Xk(nY),aY="Invariant failed";function Da(e,t){throw new Error(aY)}var oY=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function os(e){"@babel/helpers - typeof";return os=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},os(e)}function xp(){return xp=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function dY(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function hY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function mY(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=-1,s=(n=r==null?void 0:r.length)!==null&&n!==void 0?n:0;if(s<=1)return 0;if(a&&a.axisType==="angleAxis"&&Math.abs(Math.abs(a.range[1]-a.range[0])-360)<=1e-6)for(var l=a.range,u=0;u0?i[u-1].coordinate:i[s-1].coordinate,c=i[u].coordinate,p=u>=s-1?i[0].coordinate:i[u+1].coordinate,d=void 0;if(zt(c-f)!==zt(p-c)){var g=[];if(zt(p-c)===zt(l[1]-l[0])){d=p;var m=c+l[1]-l[0];g[0]=Math.min(m,(m+f)/2),g[1]=Math.max(m,(m+f)/2)}else{d=f;var y=p+l[1]-l[0];g[0]=Math.min(c,(y+c)/2),g[1]=Math.max(c,(y+c)/2)}var h=[Math.min(c,(d+c)/2),Math.max(c,(d+c)/2)];if(t>h[0]&&t<=h[1]||t>=g[0]&&t<=g[1]){o=i[u].index;break}}else{var v=Math.min(f,p),b=Math.max(f,p);if(t>(v+c)/2&&t<=(b+c)/2){o=i[u].index;break}}}else for(var w=0;w0&&w(r[w].coordinate+r[w-1].coordinate)/2&&t<=(r[w].coordinate+r[w+1].coordinate)/2||w===s-1&&t>(r[w].coordinate+r[w-1].coordinate)/2){o=r[w].index;break}return o},Db=function(t){var n,r=t,i=r.type.displayName,a=(n=t.type)!==null&&n!==void 0&&n.defaultProps?Ye(Ye({},t.type.defaultProps),t.props):t.props,o=a.stroke,s=a.fill,l;switch(i){case"Line":l=o;break;case"Area":case"Radar":l=o&&o!=="none"?o:s;break;default:l=s;break}return l},CY=function(t){var n=t.barSize,r=t.totalSize,i=t.stackGroups,a=i===void 0?{}:i;if(!a)return{};for(var o={},s=Object.keys(a),l=0,u=s.length;l=0});if(h&&h.length){var v=h[0].type.defaultProps,b=v!==void 0?Ye(Ye({},v),h[0].props):h[0].props,w=b.barSize,x=b[y];o[x]||(o[x]=[]);var O=pe(w)?n:w;o[x].push({item:h[0],stackList:h.slice(1),barSize:pe(O)?void 0:Ut(O,r,0)})}}return o},NY=function(t){var n=t.barGap,r=t.barCategoryGap,i=t.bandSize,a=t.sizeList,o=a===void 0?[]:a,s=t.maxBarSize,l=o.length;if(l<1)return null;var u=Ut(n,i,0,!0),f,c=[];if(o[0].barSize===+o[0].barSize){var p=!1,d=i/l,g=o.reduce(function(w,x){return w+x.barSize||0},0);g+=(l-1)*u,g>=i&&(g-=(l-1)*u,u=0),g>=i&&d>0&&(p=!0,d*=.9,g=l*d);var m=(i-g)/2>>0,y={offset:m-u,size:0};f=o.reduce(function(w,x){var O={item:x.item,position:{offset:y.offset+y.size+u,size:p?d:x.barSize}},S=[].concat(dS(w),[O]);return y=S[S.length-1].position,x.stackList&&x.stackList.length&&x.stackList.forEach(function(_){S.push({item:_,position:y})}),S},c)}else{var h=Ut(r,i,0,!0);i-2*h-(l-1)*u<=0&&(u=0);var v=(i-2*h-(l-1)*u)/l;v>1&&(v>>=0);var b=s===+s?Math.min(v,s):v;f=o.reduce(function(w,x,O){var S=[].concat(dS(w),[{item:x.item,position:{offset:h+(v+u)*O+(v-b)/2,size:b}}]);return x.stackList&&x.stackList.length&&x.stackList.forEach(function(_){S.push({item:_,position:S[S.length-1].position})}),S},c)}return f},MY=function(t,n,r,i){var a=r.children,o=r.width,s=r.margin,l=o-(s.left||0)-(s.right||0),u=r$({children:a,legendWidth:l});if(u){var f=i||{},c=f.width,p=f.height,d=u.align,g=u.verticalAlign,m=u.layout;if((m==="vertical"||m==="horizontal"&&g==="middle")&&d!=="center"&&V(t[d]))return Ye(Ye({},t),{},jo({},d,t[d]+(c||0)));if((m==="horizontal"||m==="vertical"&&d==="center")&&g!=="middle"&&V(t[g]))return Ye(Ye({},t),{},jo({},g,t[g]+(p||0)))}return t},RY=function(t,n,r){return pe(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},i$=function(t,n,r,i,a){var o=n.props.children,s=vn(o,uc).filter(function(u){return RY(i,a,u.props.direction)});if(s&&s.length){var l=s.map(function(u){return u.props.dataKey});return t.reduce(function(u,f){var c=ft(f,r);if(pe(c))return u;var p=Array.isArray(c)?[Xd(c),Gd(c)]:[c,c],d=l.reduce(function(g,m){var y=ft(f,m,0),h=p[0]-Math.abs(Array.isArray(y)?y[0]:y),v=p[1]+Math.abs(Array.isArray(y)?y[1]:y);return[Math.min(h,g[0]),Math.max(v,g[1])]},[1/0,-1/0]);return[Math.min(d[0],u[0]),Math.max(d[1],u[1])]},[1/0,-1/0])}return null},DY=function(t,n,r,i,a){var o=n.map(function(s){return i$(t,s,r,a,i)}).filter(function(s){return!pe(s)});return o&&o.length?o.reduce(function(s,l){return[Math.min(s[0],l[0]),Math.max(s[1],l[1])]},[1/0,-1/0]):null},a$=function(t,n,r,i,a){var o=n.map(function(l){var u=l.props.dataKey;return r==="number"&&u&&i$(t,l,u,i)||kl(t,u,r,a)});if(r==="number")return o.reduce(function(l,u){return[Math.min(l[0],u[0]),Math.max(l[1],u[1])]},[1/0,-1/0]);var s={};return o.reduce(function(l,u){for(var f=0,c=u.length;f=2?zt(s[0]-s[1])*2*u:u,n&&(t.ticks||t.niceTicks)){var f=(t.ticks||t.niceTicks).map(function(c){var p=a?a.indexOf(c):c;return{coordinate:i(p)+u,value:c,offset:u}});return f.filter(function(c){return!nc(c.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(c,p){return{coordinate:i(c)+u,value:c,index:p,offset:u}}):i.ticks&&!r?i.ticks(t.tickCount).map(function(c){return{coordinate:i(c)+u,value:c,offset:u}}):i.domain().map(function(c,p){return{coordinate:i(c)+u,value:a?a[c]:c,index:p,offset:u}})},xm=new WeakMap,Uc=function(t,n){if(typeof n!="function")return t;xm.has(t)||xm.set(t,new WeakMap);var r=xm.get(t);if(r.has(n))return r.get(n);var i=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,i),i},l$=function(t,n,r){var i=t.scale,a=t.type,o=t.layout,s=t.axisType;if(i==="auto")return o==="radial"&&s==="radiusAxis"?{scale:pu(),realScaleType:"band"}:o==="radial"&&s==="angleAxis"?{scale:mp(),realScaleType:"linear"}:a==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Tl(),realScaleType:"point"}:a==="category"?{scale:pu(),realScaleType:"band"}:{scale:mp(),realScaleType:"linear"};if(Ca(i)){var l="scale".concat(Nd(i));return{scale:(sS[l]||Tl)(),realScaleType:sS[l]?l:"point"}}return ue(i)?{scale:i}:{scale:Tl(),realScaleType:"point"}},mS=1e-4,u$=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,i=t.range(),a=Math.min(i[0],i[1])-mS,o=Math.max(i[0],i[1])+mS,s=t(n[0]),l=t(n[r-1]);(so||lo)&&t.domain([n[0],n[r-1]])}},IY=function(t,n){if(!t)return null;for(var r=0,i=t.length;ri)&&(a[1]=i),a[0]>i&&(a[0]=i),a[1]=0?(t[s][r][0]=a,t[s][r][1]=a+l,a=t[s][r][1]):(t[s][r][0]=o,t[s][r][1]=o+l,o=t[s][r][1])}},BY=function(t){var n=t.length;if(!(n<=0))for(var r=0,i=t[0].length;r=0?(t[o][r][0]=a,t[o][r][1]=a+s,a=t[o][r][1]):(t[o][r][0]=0,t[o][r][1]=0)}},zY={sign:FY,expand:o5,none:Jo,silhouette:s5,wiggle:l5,positive:BY},UY=function(t,n,r){var i=n.map(function(s){return s.props.dataKey}),a=zY[r],o=a5().keys(i).value(function(s,l){return+ft(s,l,0)}).order(ly).offset(a);return o(t)},WY=function(t,n,r,i,a,o){if(!t)return null;var s=o?n.reverse():n,l={},u=s.reduce(function(c,p){var d,g=(d=p.type)!==null&&d!==void 0&&d.defaultProps?Ye(Ye({},p.type.defaultProps),p.props):p.props,m=g.stackId,y=g.hide;if(y)return c;var h=g[r],v=c[h]||{hasStack:!1,stackGroups:{}};if(dt(m)){var b=v.stackGroups[m]||{numericAxisId:r,cateAxisId:i,items:[]};b.items.push(p),v.hasStack=!0,v.stackGroups[m]=b}else v.stackGroups[Ds("_stackId_")]={numericAxisId:r,cateAxisId:i,items:[p]};return Ye(Ye({},c),{},jo({},h,v))},l),f={};return Object.keys(u).reduce(function(c,p){var d=u[p];if(d.hasStack){var g={};d.stackGroups=Object.keys(d.stackGroups).reduce(function(m,y){var h=d.stackGroups[y];return Ye(Ye({},m),{},jo({},y,{numericAxisId:r,cateAxisId:i,items:h.items,stackedData:UY(t,h.items,a)}))},g)}return Ye(Ye({},c),{},jo({},p,d))},f)},c$=function(t,n){var r=n.realScaleType,i=n.type,a=n.tickCount,o=n.originalDomain,s=n.allowDecimals,l=r||n.scale;if(l!=="auto"&&l!=="linear")return null;if(a&&i==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var u=t.domain();if(!u.length)return null;var f=rY(u,a,s);return t.domain([Xd(f),Gd(f)]),{niceTicks:f}}if(a&&i==="number"){var c=t.domain(),p=iY(c,a,s);return{niceTicks:p}}return null};function vS(e){var t=e.axis,n=e.ticks,r=e.bandSize,i=e.entry,a=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!pe(i[t.dataKey])){var s=Vf(n,"value",i[t.dataKey]);if(s)return s.coordinate+r/2}return n[a]?n[a].coordinate+r/2:null}var l=ft(i,pe(o)?t.dataKey:o);return pe(l)?null:t.scale(l)}var yS=function(t){var n=t.axis,r=t.ticks,i=t.offset,a=t.bandSize,o=t.entry,s=t.index;if(n.type==="category")return r[s]?r[s].coordinate+i:null;var l=ft(o,n.dataKey,n.domain[s]);return pe(l)?null:n.scale(l)-a/2+i},HY=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var i=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);return i<=0&&a>=0?0:a<0?a:i}return r[0]},qY=function(t,n){var r,i=(r=t.type)!==null&&r!==void 0&&r.defaultProps?Ye(Ye({},t.type.defaultProps),t.props):t.props,a=i.stackId;if(dt(a)){var o=n[a];if(o){var s=o.items.indexOf(t);return s>=0?o.stackedData[s]:null}}return null},KY=function(t){return t.reduce(function(n,r){return[Xd(r.concat([n[0]]).filter(V)),Gd(r.concat([n[1]]).filter(V))]},[1/0,-1/0])},f$=function(t,n,r){return Object.keys(t).reduce(function(i,a){var o=t[a],s=o.stackedData,l=s.reduce(function(u,f){var c=KY(f.slice(n,r+1));return[Math.min(u[0],c[0]),Math.max(u[1],c[1])]},[1/0,-1/0]);return[Math.min(l[0],i[0]),Math.max(l[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},gS=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,bS=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Ly=function(t,n,r){if(ue(t))return t(n,r);if(!Array.isArray(t))return n;var i=[];if(V(t[0]))i[0]=r?t[0]:Math.min(t[0],n[0]);else if(gS.test(t[0])){var a=+gS.exec(t[0])[1];i[0]=n[0]-a}else ue(t[0])?i[0]=t[0](n[0]):i[0]=n[0];if(V(t[1]))i[1]=r?t[1]:Math.max(t[1],n[1]);else if(bS.test(t[1])){var o=+bS.exec(t[1])[1];i[1]=n[1]+o}else ue(t[1])?i[1]=t[1](n[1]):i[1]=n[1];return i},Op=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!r||i>0)return i}if(t&&n&&n.length>=2){for(var a=ub(n,function(c){return c.coordinate}),o=1/0,s=1,l=a.length;se.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(r.left||0)-(r.right||0)),Math.abs(n-(r.top||0)-(r.bottom||0)))/2},tJ=function(t,n,r,i,a){var o=t.width,s=t.height,l=t.startAngle,u=t.endAngle,f=Ut(t.cx,o,o/2),c=Ut(t.cy,s,s/2),p=h$(o,s,r),d=Ut(t.innerRadius,p,0),g=Ut(t.outerRadius,p,p*.8),m=Object.keys(n);return m.reduce(function(y,h){var v=n[h],b=v.domain,w=v.reversed,x;if(pe(v.range))i==="angleAxis"?x=[l,u]:i==="radiusAxis"&&(x=[d,g]),w&&(x=[x[1],x[0]]);else{x=v.range;var O=x,S=XY(O,2);l=S[0],u=S[1]}var _=l$(v,a),E=_.realScaleType,k=_.scale;k.domain(b).range(x),u$(k);var N=c$(k,wr(wr({},v),{},{realScaleType:E})),$=wr(wr(wr({},v),N),{},{range:x,radius:g,realScaleType:E,scale:k,cx:f,cy:c,innerRadius:d,outerRadius:g,startAngle:l,endAngle:u});return wr(wr({},y),{},d$({},h,$))},{})},nJ=function(t,n){var r=t.x,i=t.y,a=n.x,o=n.y;return Math.sqrt(Math.pow(r-a,2)+Math.pow(i-o,2))},rJ=function(t,n){var r=t.x,i=t.y,a=n.cx,o=n.cy,s=nJ({x:r,y:i},{x:a,y:o});if(s<=0)return{radius:s};var l=(r-a)/s,u=Math.acos(l);return i>o&&(u=2*Math.PI-u),{radius:s,angle:eJ(u),angleInRadian:u}},iJ=function(t){var n=t.startAngle,r=t.endAngle,i=Math.floor(n/360),a=Math.floor(r/360),o=Math.min(i,a);return{startAngle:n-o*360,endAngle:r-o*360}},aJ=function(t,n){var r=n.startAngle,i=n.endAngle,a=Math.floor(r/360),o=Math.floor(i/360),s=Math.min(a,o);return t+s*360},SS=function(t,n){var r=t.x,i=t.y,a=rJ({x:r,y:i},n),o=a.radius,s=a.angle,l=n.innerRadius,u=n.outerRadius;if(ou)return!1;if(o===0)return!0;var f=iJ(n),c=f.startAngle,p=f.endAngle,d=s,g;if(c<=p){for(;d>p;)d-=360;for(;d=c&&d<=p}else{for(;d>c;)d-=360;for(;d=p&&d<=c}return g?wr(wr({},n),{},{radius:o,angle:aJ(d,n)}):null},m$=function(t){return!A.isValidElement(t)&&!ue(t)&&typeof t!="boolean"?t.className:""};function Ou(e){"@babel/helpers - typeof";return Ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ou(e)}var oJ=["offset"];function sJ(e){return fJ(e)||cJ(e)||uJ(e)||lJ()}function lJ(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uJ(e,t){if(e){if(typeof e=="string")return Fy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fy(e,t)}}function cJ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function fJ(e){if(Array.isArray(e))return Fy(e)}function Fy(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function dJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function PS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function st(e){for(var t=1;t=0?1:-1,b,w;i==="insideStart"?(b=d+v*o,w=m):i==="insideEnd"?(b=g-v*o,w=!m):i==="end"&&(b=g+v*o,w=m),w=h<=0?w:!w;var x=Re(u,f,y,b),O=Re(u,f,y,b+(w?1:-1)*359),S="M".concat(x.x,",").concat(x.y,` - A`).concat(y,",").concat(y,",0,1,").concat(w?0:1,`, - `).concat(O.x,",").concat(O.y),_=pe(t.id)?Ds("recharts-radial-line-"):t.id;return T.createElement("text",Su({},r,{dominantBaseline:"central",className:he("recharts-radial-bar-label",s)}),T.createElement("defs",null,T.createElement("path",{id:_,d:S})),T.createElement("textPath",{xlinkHref:"#".concat(_)},n))},xJ=function(t){var n=t.viewBox,r=t.offset,i=t.position,a=n,o=a.cx,s=a.cy,l=a.innerRadius,u=a.outerRadius,f=a.startAngle,c=a.endAngle,p=(f+c)/2;if(i==="outside"){var d=Re(o,s,u+r,p),g=d.x,m=d.y;return{x:g,y:m,textAnchor:g>=o?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"end"};var y=(l+u)/2,h=Re(o,s,y,p),v=h.x,b=h.y;return{x:v,y:b,textAnchor:"middle",verticalAnchor:"middle"}},wJ=function(t){var n=t.viewBox,r=t.parentViewBox,i=t.offset,a=t.position,o=n,s=o.x,l=o.y,u=o.width,f=o.height,c=f>=0?1:-1,p=c*i,d=c>0?"end":"start",g=c>0?"start":"end",m=u>=0?1:-1,y=m*i,h=m>0?"end":"start",v=m>0?"start":"end";if(a==="top"){var b={x:s+u/2,y:l-c*i,textAnchor:"middle",verticalAnchor:d};return st(st({},b),r?{height:Math.max(l-r.y,0),width:u}:{})}if(a==="bottom"){var w={x:s+u/2,y:l+f+p,textAnchor:"middle",verticalAnchor:g};return st(st({},w),r?{height:Math.max(r.y+r.height-(l+f),0),width:u}:{})}if(a==="left"){var x={x:s-y,y:l+f/2,textAnchor:h,verticalAnchor:"middle"};return st(st({},x),r?{width:Math.max(x.x-r.x,0),height:f}:{})}if(a==="right"){var O={x:s+u+y,y:l+f/2,textAnchor:v,verticalAnchor:"middle"};return st(st({},O),r?{width:Math.max(r.x+r.width-O.x,0),height:f}:{})}var S=r?{width:u,height:f}:{};return a==="insideLeft"?st({x:s+y,y:l+f/2,textAnchor:v,verticalAnchor:"middle"},S):a==="insideRight"?st({x:s+u-y,y:l+f/2,textAnchor:h,verticalAnchor:"middle"},S):a==="insideTop"?st({x:s+u/2,y:l+p,textAnchor:"middle",verticalAnchor:g},S):a==="insideBottom"?st({x:s+u/2,y:l+f-p,textAnchor:"middle",verticalAnchor:d},S):a==="insideTopLeft"?st({x:s+y,y:l+p,textAnchor:v,verticalAnchor:g},S):a==="insideTopRight"?st({x:s+u-y,y:l+p,textAnchor:h,verticalAnchor:g},S):a==="insideBottomLeft"?st({x:s+y,y:l+f-p,textAnchor:v,verticalAnchor:d},S):a==="insideBottomRight"?st({x:s+u-y,y:l+f-p,textAnchor:h,verticalAnchor:d},S):Cs(a)&&(V(a.x)||oa(a.x))&&(V(a.y)||oa(a.y))?st({x:s+Ut(a.x,u),y:l+Ut(a.y,f),textAnchor:"end",verticalAnchor:"end"},S):st({x:s+u/2,y:l+f/2,textAnchor:"middle",verticalAnchor:"middle"},S)},OJ=function(t){return"cx"in t&&V(t.cx)};function bt(e){var t=e.offset,n=t===void 0?5:t,r=pJ(e,oJ),i=st({offset:n},r),a=i.viewBox,o=i.position,s=i.value,l=i.children,u=i.content,f=i.className,c=f===void 0?"":f,p=i.textBreakAll;if(!a||pe(s)&&pe(l)&&!A.isValidElement(u)&&!ue(u))return null;if(A.isValidElement(u))return A.cloneElement(u,i);var d;if(ue(u)){if(d=A.createElement(u,i),A.isValidElement(d))return d}else d=yJ(i);var g=OJ(a),m=ae(i,!0);if(g&&(o==="insideStart"||o==="insideEnd"||o==="end"))return bJ(i,d,m);var y=g?xJ(i):wJ(i);return T.createElement(Ma,Su({className:he("recharts-label",c)},m,y,{breakAll:p}),d)}bt.displayName="Label";var v$=function(t){var n=t.cx,r=t.cy,i=t.angle,a=t.startAngle,o=t.endAngle,s=t.r,l=t.radius,u=t.innerRadius,f=t.outerRadius,c=t.x,p=t.y,d=t.top,g=t.left,m=t.width,y=t.height,h=t.clockWise,v=t.labelViewBox;if(v)return v;if(V(m)&&V(y)){if(V(c)&&V(p))return{x:c,y:p,width:m,height:y};if(V(d)&&V(g))return{x:d,y:g,width:m,height:y}}return V(c)&&V(p)?{x:c,y:p,width:0,height:0}:V(n)&&V(r)?{cx:n,cy:r,startAngle:a||i||0,endAngle:o||i||0,innerRadius:u||0,outerRadius:f||l||s||0,clockWise:h}:t.viewBox?t.viewBox:{}},SJ=function(t,n){return t?t===!0?T.createElement(bt,{key:"label-implicit",viewBox:n}):dt(t)?T.createElement(bt,{key:"label-implicit",viewBox:n,value:t}):A.isValidElement(t)?t.type===bt?A.cloneElement(t,{key:"label-implicit",viewBox:n}):T.createElement(bt,{key:"label-implicit",content:t,viewBox:n}):ue(t)?T.createElement(bt,{key:"label-implicit",content:t,viewBox:n}):Cs(t)?T.createElement(bt,Su({viewBox:n},t,{key:"label-implicit"})):null:null},PJ=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var i=t.children,a=v$(t),o=vn(i,bt).map(function(l,u){return A.cloneElement(l,{viewBox:n||a,key:"label-".concat(u)})});if(!r)return o;var s=SJ(t.label,n||a);return[s].concat(sJ(o))};bt.parseViewBox=v$;bt.renderCallByParent=PJ;function _J(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var AJ=_J;const EJ=je(AJ);function Pu(e){"@babel/helpers - typeof";return Pu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pu(e)}var jJ=["valueAccessor"],TJ=["data","dataKey","clockWise","id","textBreakAll"];function kJ(e){return MJ(e)||NJ(e)||CJ(e)||$J()}function $J(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function CJ(e,t){if(e){if(typeof e=="string")return By(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return By(e,t)}}function NJ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function MJ(e){if(Array.isArray(e))return By(e)}function By(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function LJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var FJ=function(t){return Array.isArray(t.value)?EJ(t.value):t.value};function Dr(e){var t=e.valueAccessor,n=t===void 0?FJ:t,r=ES(e,jJ),i=r.data,a=r.dataKey,o=r.clockWise,s=r.id,l=r.textBreakAll,u=ES(r,TJ);return!i||!i.length?null:T.createElement(Se,{className:"recharts-label-list"},i.map(function(f,c){var p=pe(a)?n(f,c):ft(f&&f.payload,a),d=pe(s)?{}:{id:"".concat(s,"-").concat(c)};return T.createElement(bt,Pp({},ae(f,!0),u,d,{parentViewBox:f.parentViewBox,value:p,textBreakAll:l,viewBox:bt.parseViewBox(pe(o)?f:AS(AS({},f),{},{clockWise:o})),key:"label-".concat(c),index:c}))}))}Dr.displayName="LabelList";function BJ(e,t){return e?e===!0?T.createElement(Dr,{key:"labelList-implicit",data:t}):T.isValidElement(e)||ue(e)?T.createElement(Dr,{key:"labelList-implicit",data:t,content:e}):Cs(e)?T.createElement(Dr,Pp({data:t},e,{key:"labelList-implicit"})):null:null}function zJ(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,i=vn(r,Dr).map(function(o,s){return A.cloneElement(o,{data:t,key:"labelList-".concat(s)})});if(!n)return i;var a=BJ(e.label,t);return[a].concat(kJ(i))}Dr.renderCallByParent=zJ;function _u(e){"@babel/helpers - typeof";return _u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_u(e)}function zy(){return zy=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(o>u),`, - `).concat(c.x,",").concat(c.y,` - `);if(i>0){var d=Re(n,r,i,o),g=Re(n,r,i,u);p+="L ".concat(g.x,",").concat(g.y,` - A `).concat(i,",").concat(i,`,0, - `).concat(+(Math.abs(l)>180),",").concat(+(o<=u),`, - `).concat(d.x,",").concat(d.y," Z")}else p+="L ".concat(n,",").concat(r," Z");return p},KJ=function(t){var n=t.cx,r=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,f=t.endAngle,c=zt(f-u),p=Wc({cx:n,cy:r,radius:a,angle:u,sign:c,cornerRadius:o,cornerIsExternal:l}),d=p.circleTangency,g=p.lineTangency,m=p.theta,y=Wc({cx:n,cy:r,radius:a,angle:f,sign:-c,cornerRadius:o,cornerIsExternal:l}),h=y.circleTangency,v=y.lineTangency,b=y.theta,w=l?Math.abs(u-f):Math.abs(u-f)-m-b;if(w<0)return s?"M ".concat(g.x,",").concat(g.y,` - a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 - a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 - `):y$({cx:n,cy:r,innerRadius:i,outerRadius:a,startAngle:u,endAngle:f});var x="M ".concat(g.x,",").concat(g.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(c<0),",").concat(d.x,",").concat(d.y,` - A`).concat(a,",").concat(a,",0,").concat(+(w>180),",").concat(+(c<0),",").concat(h.x,",").concat(h.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(c<0),",").concat(v.x,",").concat(v.y,` - `);if(i>0){var O=Wc({cx:n,cy:r,radius:i,angle:u,sign:c,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),S=O.circleTangency,_=O.lineTangency,E=O.theta,k=Wc({cx:n,cy:r,radius:i,angle:f,sign:-c,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),N=k.circleTangency,$=k.lineTangency,L=k.theta,M=l?Math.abs(u-f):Math.abs(u-f)-E-L;if(M<0&&o===0)return"".concat(x,"L").concat(n,",").concat(r,"Z");x+="L".concat($.x,",").concat($.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(c<0),",").concat(N.x,",").concat(N.y,` - A`).concat(i,",").concat(i,",0,").concat(+(M>180),",").concat(+(c>0),",").concat(S.x,",").concat(S.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(c<0),",").concat(_.x,",").concat(_.y,"Z")}else x+="L".concat(n,",").concat(r,"Z");return x},VJ={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},g$=function(t){var n=TS(TS({},VJ),t),r=n.cx,i=n.cy,a=n.innerRadius,o=n.outerRadius,s=n.cornerRadius,l=n.forceCornerRadius,u=n.cornerIsExternal,f=n.startAngle,c=n.endAngle,p=n.className;if(o0&&Math.abs(f-c)<360?y=KJ({cx:r,cy:i,innerRadius:a,outerRadius:o,cornerRadius:Math.min(m,g/2),forceCornerRadius:l,cornerIsExternal:u,startAngle:f,endAngle:c}):y=y$({cx:r,cy:i,innerRadius:a,outerRadius:o,startAngle:f,endAngle:c}),T.createElement("path",zy({},ae(n,!0),{className:d,d:y,role:"img"}))};function Au(e){"@babel/helpers - typeof";return Au=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Au(e)}function Uy(){return Uy=Object.assign?Object.assign.bind():function(e){for(var t=1;ttZ.call(e,t));function Ka(e,t){return e===t||!e&&!t&&e!==e&&t!==t}const iZ="__v",aZ="__o",oZ="_owner",{getOwnPropertyDescriptor:MS,keys:RS}=Object;function sZ(e,t){return e.byteLength===t.byteLength&&Ap(new Uint8Array(e),new Uint8Array(t))}function lZ(e,t,n){let r=e.length;if(t.length!==r)return!1;for(;r-- >0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function uZ(e,t){return e.byteLength===t.byteLength&&Ap(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function cZ(e,t){return Ka(e.getTime(),t.getTime())}function fZ(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function pZ(e,t){return e===t}function DS(e,t,n){const r=e.size;if(r!==t.size)return!1;if(!r)return!0;const i=new Array(r),a=e.entries();let o,s,l=0;for(;(o=a.next())&&!o.done;){const u=t.entries();let f=!1,c=0;for(;(s=u.next())&&!s.done;){if(i[c]){c++;continue}const p=o.value,d=s.value;if(n.equals(p[0],d[0],l,c,e,t,n)&&n.equals(p[1],d[1],p[0],d[0],e,t,n)){f=i[c]=!0;break}c++}if(!f)return!1;l++}return!0}const dZ=Ka;function hZ(e,t,n){const r=RS(e);let i=r.length;if(RS(t).length!==i)return!1;for(;i-- >0;)if(!b$(e,t,n,r[i]))return!1;return!0}function fl(e,t,n){const r=NS(e);let i=r.length;if(NS(t).length!==i)return!1;let a,o,s;for(;i-- >0;)if(a=r[i],!b$(e,t,n,a)||(o=MS(e,a),s=MS(t,a),(o||s)&&(!o||!s||o.configurable!==s.configurable||o.enumerable!==s.enumerable||o.writable!==s.writable)))return!1;return!0}function mZ(e,t){return Ka(e.valueOf(),t.valueOf())}function vZ(e,t){return e.source===t.source&&e.flags===t.flags}function IS(e,t,n){const r=e.size;if(r!==t.size)return!1;if(!r)return!0;const i=new Array(r),a=e.values();let o,s;for(;(o=a.next())&&!o.done;){const l=t.values();let u=!1,f=0;for(;(s=l.next())&&!s.done;){if(!i[f]&&n.equals(o.value,s.value,o.value,s.value,e,t,n)){u=i[f]=!0;break}f++}if(!u)return!1}return!0}function Ap(e,t){let n=e.byteLength;if(t.byteLength!==n||e.byteOffset!==t.byteOffset)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function yZ(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function b$(e,t,n,r){return(r===oZ||r===aZ||r===iZ)&&(e.$$typeof||t.$$typeof)?!0:rZ(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}const gZ="[object ArrayBuffer]",bZ="[object Arguments]",xZ="[object Boolean]",wZ="[object DataView]",OZ="[object Date]",SZ="[object Error]",PZ="[object Map]",_Z="[object Number]",AZ="[object Object]",EZ="[object RegExp]",jZ="[object Set]",TZ="[object String]",kZ={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},$Z="[object URL]",CZ=Object.prototype.toString;function NZ({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:i,areFunctionsEqual:a,areMapsEqual:o,areNumbersEqual:s,areObjectsEqual:l,arePrimitiveWrappersEqual:u,areRegExpsEqual:f,areSetsEqual:c,areTypedArraysEqual:p,areUrlsEqual:d,unknownTagComparators:g}){return function(y,h,v){if(y===h)return!0;if(y==null||h==null)return!1;const b=typeof y;if(b!==typeof h)return!1;if(b!=="object")return b==="number"?s(y,h,v):b==="function"?a(y,h,v):!1;const w=y.constructor;if(w!==h.constructor)return!1;if(w===Object)return l(y,h,v);if(Array.isArray(y))return t(y,h,v);if(w===Date)return r(y,h,v);if(w===RegExp)return f(y,h,v);if(w===Map)return o(y,h,v);if(w===Set)return c(y,h,v);const x=CZ.call(y);if(x===OZ)return r(y,h,v);if(x===EZ)return f(y,h,v);if(x===PZ)return o(y,h,v);if(x===jZ)return c(y,h,v);if(x===AZ)return typeof y.then!="function"&&typeof h.then!="function"&&l(y,h,v);if(x===$Z)return d(y,h,v);if(x===SZ)return i(y,h,v);if(x===bZ)return l(y,h,v);if(kZ[x])return p(y,h,v);if(x===gZ)return e(y,h,v);if(x===wZ)return n(y,h,v);if(x===xZ||x===_Z||x===TZ)return u(y,h,v);if(g){let O=g[x];if(!O){const S=nZ(y);S&&(O=g[S])}if(O)return O(y,h,v)}return!1}}function MZ({circular:e,createCustomConfig:t,strict:n}){let r={areArrayBuffersEqual:sZ,areArraysEqual:n?fl:lZ,areDataViewsEqual:uZ,areDatesEqual:cZ,areErrorsEqual:fZ,areFunctionsEqual:pZ,areMapsEqual:n?wm(DS,fl):DS,areNumbersEqual:dZ,areObjectsEqual:n?fl:hZ,arePrimitiveWrappersEqual:mZ,areRegExpsEqual:vZ,areSetsEqual:n?wm(IS,fl):IS,areTypedArraysEqual:n?wm(Ap,fl):Ap,areUrlsEqual:yZ,unknownTagComparators:void 0};if(t&&(r=Object.assign({},r,t(r))),e){const i=qc(r.areArraysEqual),a=qc(r.areMapsEqual),o=qc(r.areObjectsEqual),s=qc(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:i,areMapsEqual:a,areObjectsEqual:o,areSetsEqual:s})}return r}function RZ(e){return function(t,n,r,i,a,o,s){return e(t,n,s)}}function DZ({circular:e,comparator:t,createState:n,equals:r,strict:i}){if(n)return function(s,l){const{cache:u=e?new WeakMap:void 0,meta:f}=n();return t(s,l,{cache:u,equals:r,meta:f,strict:i})};if(e)return function(s,l){return t(s,l,{cache:new WeakMap,equals:r,meta:void 0,strict:i})};const a={cache:void 0,equals:r,meta:void 0,strict:i};return function(s,l){return t(s,l,a)}}const IZ=Wi();Wi({strict:!0});Wi({circular:!0});Wi({circular:!0,strict:!0});Wi({createInternalComparator:()=>Ka});Wi({strict:!0,createInternalComparator:()=>Ka});Wi({circular:!0,createInternalComparator:()=>Ka});Wi({circular:!0,createInternalComparator:()=>Ka,strict:!0});function Wi(e={}){const{circular:t=!1,createInternalComparator:n,createState:r,strict:i=!1}=e,a=MZ(e),o=NZ(a),s=n?n(o):RZ(o);return DZ({circular:t,comparator:o,createState:r,equals:s,strict:i})}function LZ(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function LS(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function i(a){n<0&&(n=a),a-n>t?(e(a),n=-1):LZ(i)};requestAnimationFrame(r)}function Wy(e){"@babel/helpers - typeof";return Wy=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wy(e)}function FZ(e){return WZ(e)||UZ(e)||zZ(e)||BZ()}function BZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function zZ(e,t){if(e){if(typeof e=="string")return FS(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return FS(e,t)}}function FS(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:h<0?0:h},m=function(h){for(var v=h>1?1:h,b=v,w=0;w<8;++w){var x=c(b)-v,O=d(b);if(Math.abs(x-v)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,i=t.damping,a=i===void 0?8:i,o=t.dt,s=o===void 0?17:o,l=function(f,c,p){var d=-(f-c)*r,g=p*a,m=p+(d-g)*s/1e3,y=p*s/1e3+f;return Math.abs(y-c)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function xee(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a=0)&&(n[i]=e[i]);return n}function Om(e){return Pee(e)||See(e)||Oee(e)||wee()}function wee(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Oee(e,t){if(e){if(typeof e=="string")return Gy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Gy(e,t)}}function See(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Pee(e){if(Array.isArray(e))return Gy(e)}function Gy(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Tp(e){return Tp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Tp(e)}var hr=function(e){Tee(n,e);var t=kee(n);function n(r,i){var a;_ee(this,n),a=t.call(this,r,i);var o=a.props,s=o.isActive,l=o.attributeName,u=o.from,f=o.to,c=o.steps,p=o.children,d=o.duration;if(a.handleStyleChange=a.handleStyleChange.bind(Yy(a)),a.changeStyle=a.changeStyle.bind(Yy(a)),!s||d<=0)return a.state={style:{}},typeof p=="function"&&(a.state={style:f}),Qy(a);if(c&&c.length)a.state={style:c[0].style};else if(u){if(typeof p=="function")return a.state={style:u},Qy(a);a.state={style:l?gl({},l,u):u}}else a.state={style:{}};return a}return Eee(n,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isActive,o=i.canBegin;this.mounted=!0,!(!a||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var a=this.props,o=a.isActive,s=a.canBegin,l=a.attributeName,u=a.shouldReAnimate,f=a.to,c=a.from,p=this.state.style;if(s){if(!o){var d={style:l?gl({},l,f):f};this.state&&p&&(l&&p[l]!==f||!l&&p!==f)&&this.setState(d);return}if(!(IZ(i.to,f)&&i.canBegin&&i.isActive)){var g=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var m=g||u?c:i.to;if(this.state&&p){var y={style:l?gl({},l,m):m};(l&&p[l]!==m||!l&&p!==m)&&this.setState(y)}this.runAnimation(Ln(Ln({},this.props),{},{from:m,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var a=this,o=i.from,s=i.to,l=i.duration,u=i.easing,f=i.begin,c=i.onAnimationEnd,p=i.onAnimationStart,d=yee(o,s,oee(u),l,this.changeStyle),g=function(){a.stopJSAnimation=d()};this.manager.start([p,f,g,l,c])}},{key:"runStepAnimation",value:function(i){var a=this,o=i.steps,s=i.begin,l=i.onAnimationStart,u=o[0],f=u.style,c=u.duration,p=c===void 0?0:c,d=function(m,y,h){if(h===0)return m;var v=y.duration,b=y.easing,w=b===void 0?"ease":b,x=y.style,O=y.properties,S=y.onAnimationEnd,_=h>0?o[h-1]:y,E=O||Object.keys(x);if(typeof w=="function"||w==="spring")return[].concat(Om(m),[a.runJSAnimation.bind(a,{from:_.style,to:x,duration:v,easing:w}),v]);var k=US(E,v,w),N=Ln(Ln(Ln({},_.style),x),{},{transition:k});return[].concat(Om(m),[N,v,S]).filter(GZ)};return this.manager.start([l].concat(Om(o.reduce(d,[f,Math.max(p,s)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=HZ());var a=i.begin,o=i.duration,s=i.attributeName,l=i.to,u=i.easing,f=i.onAnimationStart,c=i.onAnimationEnd,p=i.steps,d=i.children,g=this.manager;if(this.unSubscribe=g.subscribe(this.handleStyleChange),typeof u=="function"||typeof d=="function"||u==="spring"){this.runJSAnimation(i);return}if(p.length>1){this.runStepAnimation(i);return}var m=s?gl({},s,l):l,y=US(Object.keys(m),o,u);g.start([f,a,Ln(Ln({},m),{},{transition:y}),o,c])}},{key:"render",value:function(){var i=this.props,a=i.children;i.begin;var o=i.duration;i.attributeName,i.easing;var s=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var l=bee(i,gee),u=A.Children.count(a),f=this.state.style;if(typeof a=="function")return a(f);if(!s||u===0||o<=0)return a;var c=function(d){var g=d.props,m=g.style,y=m===void 0?{}:m,h=g.className,v=A.cloneElement(d,Ln(Ln({},l),{},{style:Ln(Ln({},y),f),className:h}));return v};return u===1?c(A.Children.only(a)):T.createElement("div",null,A.Children.map(a,function(p){return c(p)}))}}]),n}(A.PureComponent);hr.displayName="Animate";hr.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};hr.propTypes={from:re.oneOfType([re.object,re.string]),to:re.oneOfType([re.object,re.string]),attributeName:re.string,duration:re.number,begin:re.number,easing:re.oneOfType([re.string,re.func]),steps:re.arrayOf(re.shape({duration:re.number.isRequired,style:re.object.isRequired,easing:re.oneOfType([re.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),re.func]),properties:re.arrayOf("string"),onAnimationEnd:re.func})),children:re.oneOfType([re.node,re.func]),isActive:re.bool,canBegin:re.bool,onAnimationEnd:re.func,shouldReAnimate:re.bool,onAnimationStart:re.func,onAnimationReStart:re.func};function Tu(e){"@babel/helpers - typeof";return Tu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Tu(e)}function kp(){return kp=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,l=r>=0?1:-1,u=i>=0&&r>=0||i<0&&r<0?1:0,f;if(o>0&&a instanceof Array){for(var c=[0,0,0,0],p=0,d=4;po?o:a[p];f="M".concat(t,",").concat(n+s*c[0]),c[0]>0&&(f+="A ".concat(c[0],",").concat(c[0],",0,0,").concat(u,",").concat(t+l*c[0],",").concat(n)),f+="L ".concat(t+r-l*c[1],",").concat(n),c[1]>0&&(f+="A ".concat(c[1],",").concat(c[1],",0,0,").concat(u,`, - `).concat(t+r,",").concat(n+s*c[1])),f+="L ".concat(t+r,",").concat(n+i-s*c[2]),c[2]>0&&(f+="A ".concat(c[2],",").concat(c[2],",0,0,").concat(u,`, - `).concat(t+r-l*c[2],",").concat(n+i)),f+="L ".concat(t+l*c[3],",").concat(n+i),c[3]>0&&(f+="A ".concat(c[3],",").concat(c[3],",0,0,").concat(u,`, - `).concat(t,",").concat(n+i-s*c[3])),f+="Z"}else if(o>0&&a===+a&&a>0){var g=Math.min(o,a);f="M ".concat(t,",").concat(n+s*g,` - A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t+l*g,",").concat(n,` - L `).concat(t+r-l*g,",").concat(n,` - A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t+r,",").concat(n+s*g,` - L `).concat(t+r,",").concat(n+i-s*g,` - A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t+r-l*g,",").concat(n+i,` - L `).concat(t+l*g,",").concat(n+i,` - A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t,",").concat(n+i-s*g," Z")}else f="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(i," h ").concat(-r," Z");return f},Bee=function(t,n){if(!t||!n)return!1;var r=t.x,i=t.y,a=n.x,o=n.y,s=n.width,l=n.height;if(Math.abs(s)>0&&Math.abs(l)>0){var u=Math.min(a,a+s),f=Math.max(a,a+s),c=Math.min(o,o+l),p=Math.max(o,o+l);return r>=u&&r<=f&&i>=c&&i<=p}return!1},zee={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Ib=function(t){var n=QS(QS({},zee),t),r=A.useRef(),i=A.useState(-1),a=Cee(i,2),o=a[0],s=a[1];A.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var w=r.current.getTotalLength();w&&s(w)}catch{}},[]);var l=n.x,u=n.y,f=n.width,c=n.height,p=n.radius,d=n.className,g=n.animationEasing,m=n.animationDuration,y=n.animationBegin,h=n.isAnimationActive,v=n.isUpdateAnimationActive;if(l!==+l||u!==+u||f!==+f||c!==+c||f===0||c===0)return null;var b=he("recharts-rectangle",d);return v?T.createElement(hr,{canBegin:o>0,from:{width:f,height:c,x:l,y:u},to:{width:f,height:c,x:l,y:u},duration:m,animationEasing:g,isActive:v},function(w){var x=w.width,O=w.height,S=w.x,_=w.y;return T.createElement(hr,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:y,duration:m,isActive:h,easing:g},T.createElement("path",kp({},ae(n,!0),{className:b,d:YS(S,_,x,O,p),ref:r})))}):T.createElement("path",kp({},ae(n,!0),{className:b,d:YS(l,u,f,c,p)}))},Uee=["points","className","baseLinePoints","connectNulls"];function vo(){return vo=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Hee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function JS(e){return Gee(e)||Vee(e)||Kee(e)||qee()}function qee(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Kee(e,t){if(e){if(typeof e=="string")return Jy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Jy(e,t)}}function Vee(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Gee(e){if(Array.isArray(e))return Jy(e)}function Jy(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){ZS(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),ZS(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},Cl=function(t,n){var r=Xee(t);n&&(r=[r.reduce(function(a,o){return[].concat(JS(a),JS(o))},[])]);var i=r.map(function(a){return a.reduce(function(o,s,l){return"".concat(o).concat(l===0?"M":"L").concat(s.x,",").concat(s.y)},"")}).join("");return r.length===1?"".concat(i,"Z"):i},Qee=function(t,n,r){var i=Cl(t,r);return"".concat(i.slice(-1)==="Z"?i.slice(0,-1):i,"L").concat(Cl(n.reverse(),r).slice(1))},Yee=function(t){var n=t.points,r=t.className,i=t.baseLinePoints,a=t.connectNulls,o=Wee(t,Uee);if(!n||!n.length)return null;var s=he("recharts-polygon",r);if(i&&i.length){var l=o.stroke&&o.stroke!=="none",u=Qee(n,i,a);return T.createElement("g",{className:s},T.createElement("path",vo({},ae(o,!0),{fill:u.slice(-1)==="Z"?o.fill:"none",stroke:"none",d:u})),l?T.createElement("path",vo({},ae(o,!0),{fill:"none",d:Cl(n,a)})):null,l?T.createElement("path",vo({},ae(o,!0),{fill:"none",d:Cl(i,a)})):null)}var f=Cl(n,a);return T.createElement("path",vo({},ae(o,!0),{fill:f.slice(-1)==="Z"?o.fill:"none",className:s,d:f}))};function Zy(){return Zy=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ite(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var ate=function(t,n,r,i,a,o){return"M".concat(t,",").concat(a,"v").concat(i,"M").concat(o,",").concat(n,"h").concat(r)},ote=function(t){var n=t.x,r=n===void 0?0:n,i=t.y,a=i===void 0?0:i,o=t.top,s=o===void 0?0:o,l=t.left,u=l===void 0?0:l,f=t.width,c=f===void 0?0:f,p=t.height,d=p===void 0?0:p,g=t.className,m=rte(t,Jee),y=Zee({x:r,y:a,top:s,left:u,width:c,height:d},m);return!V(r)||!V(a)||!V(c)||!V(d)||!V(s)||!V(u)?null:T.createElement("path",eg({},ae(y,!0),{className:he("recharts-cross",g),d:ate(r,a,c,d,s,u)}))},ste=Vd,lte=Bk,ute=vr;function cte(e,t){return e&&e.length?ste(e,ute(t),lte):void 0}var fte=cte;const pte=je(fte);var dte=Vd,hte=vr,mte=zk;function vte(e,t){return e&&e.length?dte(e,hte(t),mte):void 0}var yte=vte;const gte=je(yte);var bte=["cx","cy","angle","ticks","axisLine"],xte=["ticks","tick","angle","tickFormatter","stroke"];function ls(e){"@babel/helpers - typeof";return ls=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ls(e)}function Nl(){return Nl=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function wte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ote(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function rP(e,t){for(var n=0;noP?o=i==="outer"?"start":"end":a<-oP?o=i==="outer"?"end":"start":o="middle",o}},{key:"renderAxisLine",value:function(){var r=this.props,i=r.cx,a=r.cy,o=r.radius,s=r.axisLine,l=r.axisLineType,u=Ki(Ki({},ae(this.props,!1)),{},{fill:"none"},ae(s,!1));if(l==="circle")return T.createElement(Jd,Zi({className:"recharts-polar-angle-axis-line"},u,{cx:i,cy:a,r:o}));var f=this.props.ticks,c=f.map(function(p){return Re(i,a,o,p.coordinate)});return T.createElement(Yee,Zi({className:"recharts-polar-angle-axis-line"},u,{points:c}))}},{key:"renderTicks",value:function(){var r=this,i=this.props,a=i.ticks,o=i.tick,s=i.tickLine,l=i.tickFormatter,u=i.stroke,f=ae(this.props,!1),c=ae(o,!1),p=Ki(Ki({},f),{},{fill:"none"},ae(s,!1)),d=a.map(function(g,m){var y=r.getTickLineCoord(g),h=r.getTickTextAnchor(g),v=Ki(Ki(Ki({textAnchor:h},f),{},{stroke:"none",fill:u},c),{},{index:m,payload:g,x:y.x2,y:y.y2});return T.createElement(Se,Zi({className:he("recharts-polar-angle-axis-tick",m$(o)),key:"tick-".concat(g.coordinate)},Na(r.props,g,m)),s&&T.createElement("line",Zi({className:"recharts-polar-angle-axis-tick-line"},p,y)),o&&t.renderTickItem(o,v,l?l(g.value,m):g.value))});return T.createElement(Se,{className:"recharts-polar-angle-axis-ticks"},d)}},{key:"render",value:function(){var r=this.props,i=r.ticks,a=r.radius,o=r.axisLine;return a<=0||!i||!i.length?null:T.createElement(Se,{className:he("recharts-polar-angle-axis",this.props.className)},o&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,i,a){var o;return T.isValidElement(r)?o=T.cloneElement(r,i):ue(r)?o=r(i):o=T.createElement(Ma,Zi({},i,{className:"recharts-polar-angle-axis-tick-value"}),a),o}}])}(A.PureComponent);th(nh,"displayName","PolarAngleAxis");th(nh,"axisType","angleAxis");th(nh,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var Ite=IT,Lte=Ite(Object.getPrototypeOf,Object),Fte=Lte,Bte=Gr,zte=Fte,Ute=Xr,Wte="[object Object]",Hte=Function.prototype,qte=Object.prototype,k$=Hte.toString,Kte=qte.hasOwnProperty,Vte=k$.call(Object);function Gte(e){if(!Ute(e)||Bte(e)!=Wte)return!1;var t=zte(e);if(t===null)return!0;var n=Kte.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&k$.call(n)==Vte}var Xte=Gte;const Qte=je(Xte);var Yte=Gr,Jte=Xr,Zte="[object Boolean]";function ene(e){return e===!0||e===!1||Jte(e)&&Yte(e)==Zte}var tne=ene;const nne=je(tne);function $u(e){"@babel/helpers - typeof";return $u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$u(e)}function Np(){return Np=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:p,x:l,y:u},to:{upperWidth:f,lowerWidth:c,height:p,x:l,y:u},duration:m,animationEasing:g,isActive:h},function(b){var w=b.upperWidth,x=b.lowerWidth,O=b.height,S=b.x,_=b.y;return T.createElement(hr,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:y,duration:m,easing:g},T.createElement("path",Np({},ae(n,!0),{className:v,d:cP(S,_,w,x,O),ref:r})))}):T.createElement("g",null,T.createElement("path",Np({},ae(n,!0),{className:v,d:cP(l,u,f,c,p)})))},dne=["option","shapeType","propTransformer","activeClassName","isActive"];function Cu(e){"@babel/helpers - typeof";return Cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cu(e)}function hne(e,t){if(e==null)return{};var n=mne(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function mne(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function fP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Mp(e){for(var t=1;t0?mn(b,"paddingAngle",0):0;if(x){var S=fn(x.endAngle-x.startAngle,b.endAngle-b.startAngle),_=Ce(Ce({},b),{},{startAngle:v+O,endAngle:v+S(m)+O});y.push(_),v=_.endAngle}else{var E=b.endAngle,k=b.startAngle,N=fn(0,E-k),$=N(m),L=Ce(Ce({},b),{},{startAngle:v+O,endAngle:v+$+O});y.push(L),v=L.endAngle}}),T.createElement(Se,null,r.renderSectorsStatically(y))})}},{key:"attachKeyboardHandlers",value:function(r){var i=this;r.onkeydown=function(a){if(!a.altKey)switch(a.key){case"ArrowLeft":{var o=++i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[o].focus(),i.setState({sectorToFocus:o});break}case"ArrowRight":{var s=--i.state.sectorToFocus<0?i.sectorRefs.length-1:i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[s].focus(),i.setState({sectorToFocus:s});break}case"Escape":{i.sectorRefs[i.state.sectorToFocus].blur(),i.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,i=r.sectors,a=r.isAnimationActive,o=this.state.prevSectors;return a&&i&&i.length&&(!o||!lc(o,i))?this.renderSectorsWithAnimation():this.renderSectorsStatically(i)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,i=this.props,a=i.hide,o=i.sectors,s=i.className,l=i.label,u=i.cx,f=i.cy,c=i.innerRadius,p=i.outerRadius,d=i.isAnimationActive,g=this.state.isAnimationFinished;if(a||!o||!o.length||!V(u)||!V(f)||!V(c)||!V(p))return null;var m=he("recharts-pie",s);return T.createElement(Se,{tabIndex:this.props.rootTabIndex,className:m,ref:function(h){r.pieRef=h}},this.renderSectors(),l&&this.renderLabels(o),bt.renderCallByParent(this.props,null,!1),(!d||g)&&Dr.renderCallByParent(this.props,o,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return i.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:i.curSectors,isAnimationFinished:!0}:r.sectors!==i.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,i){return r>i?"start":r=360?v:v-1)*l,w=y-v*d-b,x=i.reduce(function(_,E){var k=ft(E,h,0);return _+(V(k)?k:0)},0),O;if(x>0){var S;O=i.map(function(_,E){var k=ft(_,h,0),N=ft(_,f,E),$=(V(k)?k:0)/x,L;E?L=S.endAngle+zt(m)*l*(k!==0?1:0):L=o;var M=L+zt(m)*((k!==0?d:0)+$*w),D=(L+M)/2,B=(g.innerRadius+g.outerRadius)/2,W=[{name:N,value:k,payload:_,dataKey:h,type:p}],R=Re(g.cx,g.cy,B,D);return S=Ce(Ce(Ce({percent:$,cornerRadius:a,name:N,tooltipPayload:W,midAngle:D,middleRadius:B,tooltipPosition:R},_),g),{},{value:ft(_,h),startAngle:L,endAngle:M,payload:_,paddingAngle:zt(m)*l}),S})}return Ce(Ce({},g),{},{sectors:O,data:i})});var Dne=Math.ceil,Ine=Math.max;function Lne(e,t,n,r){for(var i=-1,a=Ine(Dne((t-e)/(n||1)),0),o=Array(a);a--;)o[r?a:++i]=e,e+=n;return o}var Fne=Lne,Bne=nk,mP=1/0,zne=17976931348623157e292;function Une(e){if(!e)return e===0?e:0;if(e=Bne(e),e===mP||e===-mP){var t=e<0?-1:1;return t*zne}return e===e?e:0}var M$=Une,Wne=Fne,Hne=Fd,Sm=M$;function qne(e){return function(t,n,r){return r&&typeof r!="number"&&Hne(t,n,r)&&(n=r=void 0),t=Sm(t),n===void 0?(n=t,t=0):n=Sm(n),r=r===void 0?t0&&r.handleDrag(i.changedTouches[0])}),on(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=r.props,a=i.endIndex,o=i.onDragEnd,s=i.startIndex;o==null||o({endIndex:a,startIndex:s})}),r.detachDragEndListener()}),on(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),on(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),on(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),on(r,"handleSlideDragStart",function(i){var a=xP(i)?i.changedTouches[0]:i;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:a.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return are(t,e),tre(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var i=r.startX,a=r.endX,o=this.state.scaleValues,s=this.props,l=s.gap,u=s.data,f=u.length-1,c=Math.min(i,a),p=Math.max(i,a),d=t.getIndexInRange(o,c),g=t.getIndexInRange(o,p);return{startIndex:d-d%l,endIndex:g===f?f:g-g%l}}},{key:"getTextOfTick",value:function(r){var i=this.props,a=i.data,o=i.tickFormatter,s=i.dataKey,l=ft(a[r],s,r);return ue(o)?o(l,r):l}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var i=this.state,a=i.slideMoveStartX,o=i.startX,s=i.endX,l=this.props,u=l.x,f=l.width,c=l.travellerWidth,p=l.startIndex,d=l.endIndex,g=l.onChange,m=r.pageX-a;m>0?m=Math.min(m,u+f-c-s,u+f-c-o):m<0&&(m=Math.max(m,u-o,u-s));var y=this.getIndex({startX:o+m,endX:s+m});(y.startIndex!==p||y.endIndex!==d)&&g&&g(y),this.setState({startX:o+m,endX:s+m,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,i){var a=xP(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:a.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var i=this.state,a=i.brushMoveStartX,o=i.movingTravellerId,s=i.endX,l=i.startX,u=this.state[o],f=this.props,c=f.x,p=f.width,d=f.travellerWidth,g=f.onChange,m=f.gap,y=f.data,h={startX:this.state.startX,endX:this.state.endX},v=r.pageX-a;v>0?v=Math.min(v,c+p-d-u):v<0&&(v=Math.max(v,c-u)),h[o]=u+v;var b=this.getIndex(h),w=b.startIndex,x=b.endIndex,O=function(){var _=y.length-1;return o==="startX"&&(s>l?w%m===0:x%m===0)||sl?x%m===0:w%m===0)||s>l&&x===_};this.setState(on(on({},o,u+v),"brushMoveStartX",r.pageX),function(){g&&O()&&g(b)})}},{key:"handleTravellerMoveKeyboard",value:function(r,i){var a=this,o=this.state,s=o.scaleValues,l=o.startX,u=o.endX,f=this.state[i],c=s.indexOf(f);if(c!==-1){var p=c+r;if(!(p===-1||p>=s.length)){var d=s[p];i==="startX"&&d>=u||i==="endX"&&d<=l||this.setState(on({},i,d),function(){a.props.onChange(a.getIndex({startX:a.state.startX,endX:a.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,i=r.x,a=r.y,o=r.width,s=r.height,l=r.fill,u=r.stroke;return T.createElement("rect",{stroke:u,fill:l,x:i,y:a,width:o,height:s})}},{key:"renderPanorama",value:function(){var r=this.props,i=r.x,a=r.y,o=r.width,s=r.height,l=r.data,u=r.children,f=r.padding,c=A.Children.only(u);return c?T.cloneElement(c,{x:i,y:a,width:o,height:s,margin:f,compact:!0,data:l}):null}},{key:"renderTravellerLayer",value:function(r,i){var a,o,s=this,l=this.props,u=l.y,f=l.travellerWidth,c=l.height,p=l.traveller,d=l.ariaLabel,g=l.data,m=l.startIndex,y=l.endIndex,h=Math.max(r,this.props.x),v=Pm(Pm({},ae(this.props,!1)),{},{x:h,y:u,width:f,height:c}),b=d||"Min value: ".concat((a=g[m])===null||a===void 0?void 0:a.name,", Max value: ").concat((o=g[y])===null||o===void 0?void 0:o.name);return T.createElement(Se,{tabIndex:0,role:"slider","aria-label":b,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(x){["ArrowLeft","ArrowRight"].includes(x.key)&&(x.preventDefault(),x.stopPropagation(),s.handleTravellerMoveKeyboard(x.key==="ArrowRight"?1:-1,i))},onFocus:function(){s.setState({isTravellerFocused:!0})},onBlur:function(){s.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(p,v))}},{key:"renderSlide",value:function(r,i){var a=this.props,o=a.y,s=a.height,l=a.stroke,u=a.travellerWidth,f=Math.min(r,i)+u,c=Math.max(Math.abs(i-r)-u,0);return T.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:l,fillOpacity:.2,x:f,y:o,width:c,height:s})}},{key:"renderText",value:function(){var r=this.props,i=r.startIndex,a=r.endIndex,o=r.y,s=r.height,l=r.travellerWidth,u=r.stroke,f=this.state,c=f.startX,p=f.endX,d=5,g={pointerEvents:"none",fill:u};return T.createElement(Se,{className:"recharts-brush-texts"},T.createElement(Ma,Ip({textAnchor:"end",verticalAnchor:"middle",x:Math.min(c,p)-d,y:o+s/2},g),this.getTextOfTick(i)),T.createElement(Ma,Ip({textAnchor:"start",verticalAnchor:"middle",x:Math.max(c,p)+l+d,y:o+s/2},g),this.getTextOfTick(a)))}},{key:"render",value:function(){var r=this.props,i=r.data,a=r.className,o=r.children,s=r.x,l=r.y,u=r.width,f=r.height,c=r.alwaysShowText,p=this.state,d=p.startX,g=p.endX,m=p.isTextActive,y=p.isSlideMoving,h=p.isTravellerMoving,v=p.isTravellerFocused;if(!i||!i.length||!V(s)||!V(l)||!V(u)||!V(f)||u<=0||f<=0)return null;var b=he("recharts-brush",a),w=T.Children.count(o)===1,x=Zne("userSelect","none");return T.createElement(Se,{className:b,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:x},this.renderBackground(),w&&this.renderPanorama(),this.renderSlide(d,g),this.renderTravellerLayer(d,"startX"),this.renderTravellerLayer(g,"endX"),(m||y||h||v||c)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var i=r.x,a=r.y,o=r.width,s=r.height,l=r.stroke,u=Math.floor(a+s/2)-1;return T.createElement(T.Fragment,null,T.createElement("rect",{x:i,y:a,width:o,height:s,fill:l,stroke:"none"}),T.createElement("line",{x1:i+1,y1:u,x2:i+o-1,y2:u,fill:"none",stroke:"#fff"}),T.createElement("line",{x1:i+1,y1:u+2,x2:i+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,i){var a;return T.isValidElement(r)?a=T.cloneElement(r,i):ue(r)?a=r(i):a=t.renderDefaultTraveller(i),a}},{key:"getDerivedStateFromProps",value:function(r,i){var a=r.data,o=r.width,s=r.x,l=r.travellerWidth,u=r.updateId,f=r.startIndex,c=r.endIndex;if(a!==i.prevData||u!==i.prevUpdateId)return Pm({prevData:a,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:o},a&&a.length?sre({data:a,width:o,x:s,travellerWidth:l,startIndex:f,endIndex:c}):{scale:null,scaleValues:null});if(i.scale&&(o!==i.prevWidth||s!==i.prevX||l!==i.prevTravellerWidth)){i.scale.range([s,s+o-l]);var p=i.scale.domain().map(function(d){return i.scale(d)});return{prevData:a,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:o,startX:i.scale(r.startIndex),endX:i.scale(r.endIndex),scaleValues:p}}return null}},{key:"getIndexInRange",value:function(r,i){for(var a=r.length,o=0,s=a-1;s-o>1;){var l=Math.floor((o+s)/2);r[l]>i?s=l:o=l}return i>=r[s]?s:o}}])}(A.PureComponent);on(ps,"displayName","Brush");on(ps,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var lre=lb;function ure(e,t){var n;return lre(e,function(r,i,a){return n=t(r,i,a),!n}),!!n}var cre=ure,fre=TT,pre=vr,dre=cre,hre=rn,mre=Fd;function vre(e,t,n){var r=hre(e)?fre:dre;return n&&mre(e,t,n)&&(t=void 0),r(e,pre(t))}var yre=vre;const gre=je(yre);var pr=function(t,n){var r=t.alwaysShow,i=t.ifOverflow;return r&&(i="extendDomain"),i===n},wP=YT;function bre(e,t,n){t=="__proto__"&&wP?wP(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var xre=bre,wre=xre,Ore=XT,Sre=vr;function Pre(e,t){var n={};return t=Sre(t),Ore(e,function(r,i,a){wre(n,i,t(r,i,a))}),n}var _re=Pre;const Are=je(_re);function Ere(e,t){for(var n=-1,r=e==null?0:e.length;++n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Hre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function qre(e,t){var n=e.x,r=e.y,i=Wre(e,Fre),a="".concat(n),o=parseInt(a,10),s="".concat(r),l=parseInt(s,10),u="".concat(t.height||i.height),f=parseInt(u,10),c="".concat(t.width||i.width),p=parseInt(c,10);return pl(pl(pl(pl(pl({},t),i),o?{x:o}:{}),l?{y:l}:{}),{},{height:f,width:p,name:t.name,radius:t.radius})}function SP(e){return T.createElement($$,ag({shapeType:"rectangle",propTransformer:qre,activeClassName:"recharts-active-bar"},e))}var Kre=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,i){if(typeof t=="number")return t;var a=V(r)||g4(r);return a?t(r,i):(a||Da(),n)}},Vre=["value","background"],F$;function ds(e){"@babel/helpers - typeof";return ds=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ds(e)}function Gre(e,t){if(e==null)return{};var n=Xre(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Xre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Fp(){return Fp=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(D)0&&Math.abs(M)0&&(L=Math.min((ce||0)-(M[ye-1]||0),L))}),Number.isFinite(L)){var D=L/$,B=m.layout==="vertical"?r.height:r.width;if(m.padding==="gap"&&(S=D*B/2),m.padding==="no-gap"){var W=Ut(t.barCategoryGap,D*B),R=D*B/2;S=R-W-(R-W)/B*W}}}i==="xAxis"?_=[r.left+(b.left||0)+(S||0),r.left+r.width-(b.right||0)-(S||0)]:i==="yAxis"?_=l==="horizontal"?[r.top+r.height-(b.bottom||0),r.top+(b.top||0)]:[r.top+(b.top||0)+(S||0),r.top+r.height-(b.bottom||0)-(S||0)]:_=m.range,x&&(_=[_[1],_[0]]);var I=l$(m,a,p),z=I.scale,K=I.realScaleType;z.domain(h).range(_),u$(z);var H=c$(z,Un(Un({},m),{},{realScaleType:K}));i==="xAxis"?(N=y==="top"&&!w||y==="bottom"&&w,E=r.left,k=c[O]-N*m.height):i==="yAxis"&&(N=y==="left"&&!w||y==="right"&&w,E=c[O]-N*m.width,k=r.top);var te=Un(Un(Un({},m),H),{},{realScaleType:K,x:E,y:k,scale:z,width:i==="xAxis"?r.width:m.width,height:i==="yAxis"?r.height:m.height});return te.bandSize=Op(te,H),!m.hide&&i==="xAxis"?c[O]+=(N?-1:1)*te.height:m.hide||(c[O]+=(N?-1:1)*te.width),Un(Un({},d),{},ah({},g,te))},{})},H$=function(t,n){var r=t.x,i=t.y,a=n.x,o=n.y;return{x:Math.min(r,a),y:Math.min(i,o),width:Math.abs(a-r),height:Math.abs(o-i)}},oie=function(t){var n=t.x1,r=t.y1,i=t.x2,a=t.y2;return H$({x:n,y:r},{x:i,y:a})},q$=function(){function e(t){rie(this,e),this.scale=t}return iie(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.bandAware,a=r.position;if(n!==void 0){if(a)switch(a){case"start":return this.scale(n);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+o}case"end":{var s=this.bandwidth?this.bandwidth():0;return this.scale(n)+s}default:return this.scale(n)}if(i){var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),i=r[0],a=r[r.length-1];return i<=a?n>=i&&n<=a:n>=a&&n<=i}}],[{key:"create",value:function(n){return new e(n)}}])}();ah(q$,"EPS",1e-4);var Lb=function(t){var n=Object.keys(t).reduce(function(r,i){return Un(Un({},r),{},ah({},i,q$.create(t[i])))},{});return Un(Un({},n),{},{apply:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=a.bandAware,s=a.position;return Are(i,function(l,u){return n[u].apply(l,{bandAware:o,position:s})})},isInRange:function(i){return L$(i,function(a,o){return n[o].isInRange(a)})}})};function sie(e){return(e%180+180)%180}var lie=function(t){var n=t.width,r=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=sie(i),o=a*Math.PI/180,s=Math.atan(r/n),l=o>s&&o-1?i[a?t[o]:o]:void 0}}var die=pie,hie=M$;function mie(e){var t=hie(e),n=t%1;return t===t?n?t-n:t:0}var vie=mie,yie=WT,gie=vr,bie=vie,xie=Math.max;function wie(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:bie(n);return i<0&&(i=xie(r+i,0)),yie(e,gie(t),i)}var Oie=wie,Sie=die,Pie=Oie,_ie=Sie(Pie),Aie=_ie;const Eie=je(Aie);var jie=Pz(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),Fb=A.createContext(void 0),Bb=A.createContext(void 0),K$=A.createContext(void 0),V$=A.createContext({}),G$=A.createContext(void 0),X$=A.createContext(0),Q$=A.createContext(0),jP=function(t){var n=t.state,r=n.xAxisMap,i=n.yAxisMap,a=n.offset,o=t.clipPathId,s=t.children,l=t.width,u=t.height,f=jie(a);return T.createElement(Fb.Provider,{value:r},T.createElement(Bb.Provider,{value:i},T.createElement(V$.Provider,{value:a},T.createElement(K$.Provider,{value:f},T.createElement(G$.Provider,{value:o},T.createElement(X$.Provider,{value:u},T.createElement(Q$.Provider,{value:l},s)))))))},Tie=function(){return A.useContext(G$)},Y$=function(t){var n=A.useContext(Fb);n==null&&Da();var r=n[t];return r==null&&Da(),r},kie=function(){var t=A.useContext(Fb);return si(t)},$ie=function(){var t=A.useContext(Bb),n=Eie(t,function(r){return L$(r.domain,Number.isFinite)});return n||si(t)},J$=function(t){var n=A.useContext(Bb);n==null&&Da();var r=n[t];return r==null&&Da(),r},Cie=function(){var t=A.useContext(K$);return t},Nie=function(){return A.useContext(V$)},zb=function(){return A.useContext(Q$)},Ub=function(){return A.useContext(X$)};function hs(e){"@babel/helpers - typeof";return hs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hs(e)}function Mie(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Rie(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*i)return!1;var a=n();return e*(t-e*a/2-r)>=0&&e*(t+e*a/2-i)<=0}function vae(e,t){return aC(e,t+1)}function yae(e,t,n,r,i){for(var a=(r||[]).slice(),o=t.start,s=t.end,l=0,u=1,f=o,c=function(){var g=r==null?void 0:r[l];if(g===void 0)return{v:aC(r,u)};var m=l,y,h=function(){return y===void 0&&(y=n(g,m)),y},v=g.coordinate,b=l===0||Hp(e,v,h,f,s);b||(l=0,f=o,u+=1),b&&(f=v+e*(h()/2+i),l+=u)},p;u<=a.length;)if(p=c(),p)return p.v;return[]}function Iu(e){"@babel/helpers - typeof";return Iu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Iu(e)}function DP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ct(e){for(var t=1;t0?d.coordinate-y*e:d.coordinate})}else a[p]=d=Ct(Ct({},d),{},{tickCoord:d.coordinate});var h=Hp(e,d.tickCoord,m,s,l);h&&(l=d.tickCoord-e*(m()/2+i),a[p]=Ct(Ct({},d),{},{isShow:!0}))},f=o-1;f>=0;f--)u(f);return a}function Oae(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,l=t.start,u=t.end;if(a){var f=r[s-1],c=n(f,s-1),p=e*(f.coordinate+e*c/2-u);o[s-1]=f=Ct(Ct({},f),{},{tickCoord:p>0?f.coordinate-p*e:f.coordinate});var d=Hp(e,f.tickCoord,function(){return c},l,u);d&&(u=f.tickCoord-e*(c/2+i),o[s-1]=Ct(Ct({},f),{},{isShow:!0}))}for(var g=a?s-1:s,m=function(v){var b=o[v],w,x=function(){return w===void 0&&(w=n(b,v)),w};if(v===0){var O=e*(b.coordinate-e*x()/2-l);o[v]=b=Ct(Ct({},b),{},{tickCoord:O<0?b.coordinate-O*e:b.coordinate})}else o[v]=b=Ct(Ct({},b),{},{tickCoord:b.coordinate});var S=Hp(e,b.tickCoord,x,l,u);S&&(l=b.tickCoord+e*(x()/2+i),o[v]=Ct(Ct({},b),{},{isShow:!0}))},y=0;y=2?zt(i[1].coordinate-i[0].coordinate):1,h=mae(a,y,d);return l==="equidistantPreserveStart"?yae(y,h,m,i,o):(l==="preserveStart"||l==="preserveStartEnd"?p=Oae(y,h,m,i,o,l==="preserveStartEnd"):p=wae(y,h,m,i,o),p.filter(function(v){return v.isShow}))}var Sae=["viewBox"],Pae=["viewBox"],_ae=["ticks"];function ys(e){"@babel/helpers - typeof";return ys=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ys(e)}function go(){return go=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Aae(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Eae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function LP(e,t){for(var n=0;n0?l(this.props):l(d)),o<=0||s<=0||!g||!g.length?null:T.createElement(Se,{className:he("recharts-cartesian-axis",u),ref:function(y){r.layerReference=y}},a&&this.renderAxisLine(),this.renderTicks(g,this.state.fontSize,this.state.letterSpacing),bt.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,i,a){var o,s=he(i.className,"recharts-cartesian-axis-tick-value");return T.isValidElement(r)?o=T.cloneElement(r,ot(ot({},i),{},{className:s})):ue(r)?o=r(ot(ot({},i),{},{className:s})):o=T.createElement(Ma,go({},i,{className:"recharts-cartesian-axis-tick-value"}),a),o}}])}(A.Component);Kb(Ws,"displayName","CartesianAxis");Kb(Ws,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var Mae=["x1","y1","x2","y2","key"],Rae=["offset"];function Ia(e){"@babel/helpers - typeof";return Ia=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ia(e)}function FP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Mt(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fae(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Bae=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,i=t.x,a=t.y,o=t.width,s=t.height,l=t.ry;return T.createElement("rect",{x:i,y:a,ry:l,width:o,height:s,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function lC(e,t){var n;if(T.isValidElement(e))n=T.cloneElement(e,t);else if(ue(e))n=e(t);else{var r=t.x1,i=t.y1,a=t.x2,o=t.y2,s=t.key,l=BP(t,Mae),u=ae(l,!1);u.offset;var f=BP(u,Rae);n=T.createElement("line",ua({},f,{x1:r,y1:i,x2:a,y2:o,fill:"none",key:s}))}return n}function zae(e){var t=e.x,n=e.width,r=e.horizontal,i=r===void 0?!0:r,a=e.horizontalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(s,l){var u=Mt(Mt({},e),{},{x1:t,y1:s,x2:t+n,y2:s,key:"line-".concat(l),index:l});return lC(i,u)});return T.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function Uae(e){var t=e.y,n=e.height,r=e.vertical,i=r===void 0?!0:r,a=e.verticalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(s,l){var u=Mt(Mt({},e),{},{x1:s,y1:t,x2:s,y2:t+n,key:"line-".concat(l),index:l});return lC(i,u)});return T.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function Wae(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length)return null;var f=s.map(function(p){return Math.round(p+i-i)}).sort(function(p,d){return p-d});i!==f[0]&&f.unshift(0);var c=f.map(function(p,d){var g=!f[d+1],m=g?i+o-p:f[d+1]-p;if(m<=0)return null;var y=d%t.length;return T.createElement("rect",{key:"react-".concat(d),y:p,x:r,height:m,width:a,stroke:"none",fill:t[y],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return T.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},c)}function Hae(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!n||!r||!r.length)return null;var f=u.map(function(p){return Math.round(p+a-a)}).sort(function(p,d){return p-d});a!==f[0]&&f.unshift(0);var c=f.map(function(p,d){var g=!f[d+1],m=g?a+s-p:f[d+1]-p;if(m<=0)return null;var y=d%r.length;return T.createElement("rect",{key:"react-".concat(d),x:p,y:o,width:m,height:l,stroke:"none",fill:r[y],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return T.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},c)}var qae=function(t,n){var r=t.xAxis,i=t.width,a=t.height,o=t.offset;return s$(qb(Mt(Mt(Mt({},Ws.defaultProps),r),{},{ticks:$r(r,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.left,o.left+o.width,n)},Kae=function(t,n){var r=t.yAxis,i=t.width,a=t.height,o=t.offset;return s$(qb(Mt(Mt(Mt({},Ws.defaultProps),r),{},{ticks:$r(r,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.top,o.top+o.height,n)},Ja={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function Vb(e){var t,n,r,i,a,o,s=zb(),l=Ub(),u=Nie(),f=Mt(Mt({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Ja.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Ja.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Ja.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:Ja.horizontalFill,vertical:(a=e.vertical)!==null&&a!==void 0?a:Ja.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:Ja.verticalFill,x:V(e.x)?e.x:u.left,y:V(e.y)?e.y:u.top,width:V(e.width)?e.width:u.width,height:V(e.height)?e.height:u.height}),c=f.x,p=f.y,d=f.width,g=f.height,m=f.syncWithTicks,y=f.horizontalValues,h=f.verticalValues,v=kie(),b=$ie();if(!V(d)||d<=0||!V(g)||g<=0||!V(c)||c!==+c||!V(p)||p!==+p)return null;var w=f.verticalCoordinatesGenerator||qae,x=f.horizontalCoordinatesGenerator||Kae,O=f.horizontalPoints,S=f.verticalPoints;if((!O||!O.length)&&ue(x)){var _=y&&y.length,E=x({yAxis:b?Mt(Mt({},b),{},{ticks:_?y:b.ticks}):void 0,width:s,height:l,offset:u},_?!0:m);Gn(Array.isArray(E),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(Ia(E),"]")),Array.isArray(E)&&(O=E)}if((!S||!S.length)&&ue(w)){var k=h&&h.length,N=w({xAxis:v?Mt(Mt({},v),{},{ticks:k?h:v.ticks}):void 0,width:s,height:l,offset:u},k?!0:m);Gn(Array.isArray(N),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(Ia(N),"]")),Array.isArray(N)&&(S=N)}return T.createElement("g",{className:"recharts-cartesian-grid"},T.createElement(Bae,{fill:f.fill,fillOpacity:f.fillOpacity,x:f.x,y:f.y,width:f.width,height:f.height,ry:f.ry}),T.createElement(zae,ua({},f,{offset:u,horizontalPoints:O,xAxis:v,yAxis:b})),T.createElement(Uae,ua({},f,{offset:u,verticalPoints:S,xAxis:v,yAxis:b})),T.createElement(Wae,ua({},f,{horizontalPoints:O})),T.createElement(Hae,ua({},f,{verticalPoints:S})))}Vb.displayName="CartesianGrid";var Vae=["type","layout","connectNulls","ref"],Gae=["key"];function gs(e){"@babel/helpers - typeof";return gs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gs(e)}function zP(e,t){if(e==null)return{};var n=Xae(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Xae(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ml(){return Ml=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);nc){d=[].concat(Za(l.slice(0,g)),[c-m]);break}var y=d.length%2===0?[0,p]:[p];return[].concat(Za(t.repeat(l,f)),Za(d),y).map(function(h){return"".concat(h,"px")}).join(", ")}),Wn(n,"id",Ds("recharts-line-")),Wn(n,"pathRef",function(o){n.mainCurve=o}),Wn(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),Wn(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return aoe(t,e),toe(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.points,s=a.xAxis,l=a.yAxis,u=a.layout,f=a.children,c=vn(f,uc);if(!c)return null;var p=function(m,y){return{x:m.x,y:m.y,value:m.value,errorVal:ft(m.payload,y)}},d={clipPath:r?"url(#clipPath-".concat(i,")"):null};return T.createElement(Se,d,c.map(function(g){return T.cloneElement(g,{key:"bar-".concat(g.props.dataKey),data:o,xAxis:s,yAxis:l,layout:u,dataPointFormatter:p})}))}},{key:"renderDots",value:function(r,i,a){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.dot,u=s.points,f=s.dataKey,c=ae(this.props,!1),p=ae(l,!0),d=u.map(function(m,y){var h=an(an(an({key:"dot-".concat(y),r:3},c),p),{},{index:y,cx:m.x,cy:m.y,value:m.value,dataKey:f,payload:m.payload,points:u});return t.renderDotItem(l,h)}),g={clipPath:r?"url(#clipPath-".concat(i?"":"dots-").concat(a,")"):null};return T.createElement(Se,Ml({className:"recharts-line-dots",key:"dots"},g),d)}},{key:"renderCurveStatically",value:function(r,i,a,o){var s=this.props,l=s.type,u=s.layout,f=s.connectNulls;s.ref;var c=zP(s,Vae),p=an(an(an({},ae(c,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:i?"url(#clipPath-".concat(a,")"):null,points:r},o),{},{type:l,layout:u,connectNulls:f});return T.createElement(_p,Ml({},p,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,i){var a=this,o=this.props,s=o.points,l=o.strokeDasharray,u=o.isAnimationActive,f=o.animationBegin,c=o.animationDuration,p=o.animationEasing,d=o.animationId,g=o.animateNewValues,m=o.width,y=o.height,h=this.state,v=h.prevPoints,b=h.totalLength;return T.createElement(hr,{begin:f,duration:c,isActive:u,easing:p,from:{t:0},to:{t:1},key:"line-".concat(d),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(w){var x=w.t;if(v){var O=v.length/s.length,S=s.map(function($,L){var M=Math.floor(L*O);if(v[M]){var D=v[M],B=fn(D.x,$.x),W=fn(D.y,$.y);return an(an({},$),{},{x:B(x),y:W(x)})}if(g){var R=fn(m*2,$.x),I=fn(y/2,$.y);return an(an({},$),{},{x:R(x),y:I(x)})}return an(an({},$),{},{x:$.x,y:$.y})});return a.renderCurveStatically(S,r,i)}var _=fn(0,b),E=_(x),k;if(l){var N="".concat(l).split(/[,\s]+/gim).map(function($){return parseFloat($)});k=a.getStrokeDasharray(E,b,N)}else k=a.generateSimpleStrokeDasharray(b,E);return a.renderCurveStatically(s,r,i,{strokeDasharray:k})})}},{key:"renderCurve",value:function(r,i){var a=this.props,o=a.points,s=a.isAnimationActive,l=this.state,u=l.prevPoints,f=l.totalLength;return s&&o&&o.length&&(!u&&f>0||!lc(u,o))?this.renderCurveWithAnimation(r,i):this.renderCurveStatically(o,r,i)}},{key:"render",value:function(){var r,i=this.props,a=i.hide,o=i.dot,s=i.points,l=i.className,u=i.xAxis,f=i.yAxis,c=i.top,p=i.left,d=i.width,g=i.height,m=i.isAnimationActive,y=i.id;if(a||!s||!s.length)return null;var h=this.state.isAnimationFinished,v=s.length===1,b=he("recharts-line",l),w=u&&u.allowDataOverflow,x=f&&f.allowDataOverflow,O=w||x,S=pe(y)?this.id:y,_=(r=ae(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},E=_.r,k=E===void 0?3:E,N=_.strokeWidth,$=N===void 0?2:N,L=k4(o)?o:{},M=L.clipDot,D=M===void 0?!0:M,B=k*2+$;return T.createElement(Se,{className:b},w||x?T.createElement("defs",null,T.createElement("clipPath",{id:"clipPath-".concat(S)},T.createElement("rect",{x:w?p:p-d/2,y:x?c:c-g/2,width:w?d:d*2,height:x?g:g*2})),!D&&T.createElement("clipPath",{id:"clipPath-dots-".concat(S)},T.createElement("rect",{x:p-B/2,y:c-B/2,width:d+B,height:g+B}))):null,!v&&this.renderCurve(O,S),this.renderErrorBar(O,S),(v||o)&&this.renderDots(O,D,S),(!m||h)&&Dr.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:i.curPoints}:r.points!==i.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,i){for(var a=r.length%2!==0?[].concat(Za(r),[0]):r,o=[],s=0;se.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Goe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Xoe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Qoe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?o:t&&t.length&&V(i)&&V(a)?t.slice(i,a+1):[]};function PC(e){return e==="number"?[0,"auto"]:void 0}var Pg=function(t,n,r,i){var a=t.graphicalItems,o=t.tooltipAxis,s=ch(n,t);return r<0||!a||!a.length||r>=s.length?null:a.reduce(function(l,u){var f,c=(f=u.props.data)!==null&&f!==void 0?f:n;c&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(c=c.slice(t.dataStartIndex,t.dataEndIndex+1));var p;if(o.dataKey&&!o.allowDuplicatedCategory){var d=c===void 0?s:c;p=Vf(d,o.dataKey,i)}else p=c&&c[r]||s[r];return p?[].concat(Os(l),[p$(u,p)]):l},[])},XP=function(t,n,r,i){var a=i||{x:t.chartX,y:t.chartY},o=lse(a,r),s=t.orderedTooltipTicks,l=t.tooltipAxis,u=t.tooltipTicks,f=$Y(o,s,u,l);if(f>=0&&u){var c=u[f]&&u[f].value,p=Pg(t,n,f,c),d=use(r,s,f,a);return{activeTooltipIndex:f,activeLabel:c,activePayload:p,activeCoordinate:d}}return null},cse=function(t,n){var r=n.axes,i=n.graphicalItems,a=n.axisType,o=n.axisIdKey,s=n.stackGroups,l=n.dataStartIndex,u=n.dataEndIndex,f=t.layout,c=t.children,p=t.stackOffset,d=o$(f,a);return r.reduce(function(g,m){var y,h=m.type.defaultProps!==void 0?F(F({},m.type.defaultProps),m.props):m.props,v=h.type,b=h.dataKey,w=h.allowDataOverflow,x=h.allowDuplicatedCategory,O=h.scale,S=h.ticks,_=h.includeHidden,E=h[o];if(g[E])return g;var k=ch(t.data,{graphicalItems:i.filter(function(H){var te,ce=o in H.props?H.props[o]:(te=H.type.defaultProps)===null||te===void 0?void 0:te[o];return ce===E}),dataStartIndex:l,dataEndIndex:u}),N=k.length,$,L,M;Doe(h.domain,w,v)&&($=Ly(h.domain,null,w),d&&(v==="number"||O!=="auto")&&(M=kl(k,b,"category")));var D=PC(v);if(!$||$.length===0){var B,W=(B=h.domain)!==null&&B!==void 0?B:D;if(b){if($=kl(k,b,v),v==="category"&&d){var R=x4($);x&&R?(L=$,$=Dp(0,N)):x||($=xS(W,$,m).reduce(function(H,te){return H.indexOf(te)>=0?H:[].concat(Os(H),[te])},[]))}else if(v==="category")x?$=$.filter(function(H){return H!==""&&!pe(H)}):$=xS(W,$,m).reduce(function(H,te){return H.indexOf(te)>=0||te===""||pe(te)?H:[].concat(Os(H),[te])},[]);else if(v==="number"){var I=DY(k,i.filter(function(H){var te,ce,ye=o in H.props?H.props[o]:(te=H.type.defaultProps)===null||te===void 0?void 0:te[o],ie="hide"in H.props?H.props.hide:(ce=H.type.defaultProps)===null||ce===void 0?void 0:ce.hide;return ye===E&&(_||!ie)}),b,a,f);I&&($=I)}d&&(v==="number"||O!=="auto")&&(M=kl(k,b,"category"))}else d?$=Dp(0,N):s&&s[E]&&s[E].hasStack&&v==="number"?$=p==="expand"?[0,1]:f$(s[E].stackGroups,l,u):$=a$(k,i.filter(function(H){var te=o in H.props?H.props[o]:H.type.defaultProps[o],ce="hide"in H.props?H.props.hide:H.type.defaultProps.hide;return te===E&&(_||!ce)}),v,f,!0);if(v==="number")$=wg(c,$,E,a,S),W&&($=Ly(W,$,w));else if(v==="category"&&W){var z=W,K=$.every(function(H){return z.indexOf(H)>=0});K&&($=z)}}return F(F({},g),{},se({},E,F(F({},h),{},{axisType:a,domain:$,categoricalDomain:M,duplicateDomain:L,originalDomain:(y=h.domain)!==null&&y!==void 0?y:D,isCategorical:d,layout:f})))},{})},fse=function(t,n){var r=n.graphicalItems,i=n.Axis,a=n.axisType,o=n.axisIdKey,s=n.stackGroups,l=n.dataStartIndex,u=n.dataEndIndex,f=t.layout,c=t.children,p=ch(t.data,{graphicalItems:r,dataStartIndex:l,dataEndIndex:u}),d=p.length,g=o$(f,a),m=-1;return r.reduce(function(y,h){var v=h.type.defaultProps!==void 0?F(F({},h.type.defaultProps),h.props):h.props,b=v[o],w=PC("number");if(!y[b]){m++;var x;return g?x=Dp(0,d):s&&s[b]&&s[b].hasStack?(x=f$(s[b].stackGroups,l,u),x=wg(c,x,b,a)):(x=Ly(w,a$(p,r.filter(function(O){var S,_,E=o in O.props?O.props[o]:(S=O.type.defaultProps)===null||S===void 0?void 0:S[o],k="hide"in O.props?O.props.hide:(_=O.type.defaultProps)===null||_===void 0?void 0:_.hide;return E===b&&!k}),"number",f),i.defaultProps.allowDataOverflow),x=wg(c,x,b,a)),F(F({},y),{},se({},b,F(F({axisType:a},i.defaultProps),{},{hide:!0,orientation:mn(ose,"".concat(a,".").concat(m%2),null),domain:x,originalDomain:w,isCategorical:g,layout:f})))}return y},{})},pse=function(t,n){var r=n.axisType,i=r===void 0?"xAxis":r,a=n.AxisComp,o=n.graphicalItems,s=n.stackGroups,l=n.dataStartIndex,u=n.dataEndIndex,f=t.children,c="".concat(i,"Id"),p=vn(f,a),d={};return p&&p.length?d=cse(t,{axes:p,graphicalItems:o,axisType:i,axisIdKey:c,stackGroups:s,dataStartIndex:l,dataEndIndex:u}):o&&o.length&&(d=fse(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:c,stackGroups:s,dataStartIndex:l,dataEndIndex:u})),d},dse=function(t){var n=si(t),r=$r(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:ub(r,function(i){return i.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Op(n,r)}},QP=function(t){var n=t.children,r=t.defaultShowTooltip,i=ln(n,ps),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!r}},hse=function(t){return!t||!t.length?!1:t.some(function(n){var r=Nr(n&&n.type);return r&&r.indexOf("Bar")>=0})},YP=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},mse=function(t,n){var r=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,s=t.yAxisMap,l=s===void 0?{}:s,u=r.width,f=r.height,c=r.children,p=r.margin||{},d=ln(c,ps),g=ln(c,Mr),m=Object.keys(l).reduce(function(x,O){var S=l[O],_=S.orientation;return!S.mirror&&!S.hide?F(F({},x),{},se({},_,x[_]+S.width)):x},{left:p.left||0,right:p.right||0}),y=Object.keys(o).reduce(function(x,O){var S=o[O],_=S.orientation;return!S.mirror&&!S.hide?F(F({},x),{},se({},_,mn(x,"".concat(_))+S.height)):x},{top:p.top||0,bottom:p.bottom||0}),h=F(F({},y),m),v=h.bottom;d&&(h.bottom+=d.props.height||ps.defaultProps.height),g&&n&&(h=MY(h,i,r,n));var b=u-h.left-h.right,w=f-h.top-h.bottom;return F(F({brushBottom:v},h),{},{width:Math.max(b,0),height:Math.max(w,0)})},vse=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},Gb=function(t){var n=t.chartName,r=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,s=o===void 0?["axis"]:o,l=t.axisComponents,u=t.legendContent,f=t.formatAxisMap,c=t.defaultProps,p=function(h,v){var b=v.graphicalItems,w=v.stackGroups,x=v.offset,O=v.updateId,S=v.dataStartIndex,_=v.dataEndIndex,E=h.barSize,k=h.layout,N=h.barGap,$=h.barCategoryGap,L=h.maxBarSize,M=YP(k),D=M.numericAxisName,B=M.cateAxisName,W=hse(b),R=[];return b.forEach(function(I,z){var K=ch(h.data,{graphicalItems:[I],dataStartIndex:S,dataEndIndex:_}),H=I.type.defaultProps!==void 0?F(F({},I.type.defaultProps),I.props):I.props,te=H.dataKey,ce=H.maxBarSize,ye=H["".concat(D,"Id")],ie=H["".concat(B,"Id")],be={},Ge=l.reduce(function(Vt,It){var Ks=v["".concat(It.axisType,"Map")],cc=H["".concat(It.axisType,"Id")];Ks&&Ks[cc]||It.axisType==="zAxis"||Da();var X=Ks[cc];return F(F({},Vt),{},se(se({},It.axisType,X),"".concat(It.axisType,"Ticks"),$r(X)))},be),G=Ge[B],fe=Ge["".concat(B,"Ticks")],le=w&&w[ye]&&w[ye].hasStack&&qY(I,w[ye].stackGroups),U=Nr(I.type).indexOf("Bar")>=0,we=Op(G,fe),me=[],Oe=W&&CY({barSize:E,stackGroups:w,totalSize:vse(Ge,B)});if(U){var ee,_e,ze=pe(ce)?L:ce,mt=(ee=(_e=Op(G,fe,!0))!==null&&_e!==void 0?_e:ze)!==null&&ee!==void 0?ee:0;me=NY({barGap:N,barCategoryGap:$,bandSize:mt!==we?mt:we,sizeList:Oe[ie],maxBarSize:ze}),mt!==we&&(me=me.map(function(Vt){return F(F({},Vt),{},{position:F(F({},Vt.position),{},{offset:Vt.position.offset-mt/2})})}))}var xn=I&&I.type&&I.type.getComposedData;xn&&R.push({props:F(F({},xn(F(F({},Ge),{},{displayedData:K,props:h,dataKey:te,item:I,bandSize:we,barPosition:me,offset:x,stackedData:le,layout:k,dataStartIndex:S,dataEndIndex:_}))),{},se(se(se({key:I.key||"item-".concat(z)},D,Ge[D]),B,Ge[B]),"animationId",O)),childIndex:N4(I,h.children),item:I})}),R},d=function(h,v){var b=h.props,w=h.dataStartIndex,x=h.dataEndIndex,O=h.updateId;if(!d1({props:b}))return null;var S=b.children,_=b.layout,E=b.stackOffset,k=b.data,N=b.reverseStackOrder,$=YP(_),L=$.numericAxisName,M=$.cateAxisName,D=vn(S,r),B=WY(k,D,"".concat(L,"Id"),"".concat(M,"Id"),E,N),W=l.reduce(function(H,te){var ce="".concat(te.axisType,"Map");return F(F({},H),{},se({},ce,pse(b,F(F({},te),{},{graphicalItems:D,stackGroups:te.axisType===L&&B,dataStartIndex:w,dataEndIndex:x}))))},{}),R=mse(F(F({},W),{},{props:b,graphicalItems:D}),v==null?void 0:v.legendBBox);Object.keys(W).forEach(function(H){W[H]=f(b,W[H],R,H.replace("Map",""),n)});var I=W["".concat(M,"Map")],z=dse(I),K=p(b,F(F({},W),{},{dataStartIndex:w,dataEndIndex:x,updateId:O,graphicalItems:D,stackGroups:B,offset:R}));return F(F({formattedGraphicalItems:K,graphicalItems:D,offset:R,stackGroups:B},z),W)},g=function(y){function h(v){var b,w,x;return Xoe(this,h),x=Joe(this,h,[v]),se(x,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),se(x,"accessibilityManager",new Roe),se(x,"handleLegendBBoxUpdate",function(O){if(O){var S=x.state,_=S.dataStartIndex,E=S.dataEndIndex,k=S.updateId;x.setState(F({legendBBox:O},d({props:x.props,dataStartIndex:_,dataEndIndex:E,updateId:k},F(F({},x.state),{},{legendBBox:O}))))}}),se(x,"handleReceiveSyncEvent",function(O,S,_){if(x.props.syncId===O){if(_===x.eventEmitterSymbol&&typeof x.props.syncMethod!="function")return;x.applySyncEvent(S)}}),se(x,"handleBrushChange",function(O){var S=O.startIndex,_=O.endIndex;if(S!==x.state.dataStartIndex||_!==x.state.dataEndIndex){var E=x.state.updateId;x.setState(function(){return F({dataStartIndex:S,dataEndIndex:_},d({props:x.props,dataStartIndex:S,dataEndIndex:_,updateId:E},x.state))}),x.triggerSyncEvent({dataStartIndex:S,dataEndIndex:_})}}),se(x,"handleMouseEnter",function(O){var S=x.getMouseInfo(O);if(S){var _=F(F({},S),{},{isTooltipActive:!0});x.setState(_),x.triggerSyncEvent(_);var E=x.props.onMouseEnter;ue(E)&&E(_,O)}}),se(x,"triggeredAfterMouseMove",function(O){var S=x.getMouseInfo(O),_=S?F(F({},S),{},{isTooltipActive:!0}):{isTooltipActive:!1};x.setState(_),x.triggerSyncEvent(_);var E=x.props.onMouseMove;ue(E)&&E(_,O)}),se(x,"handleItemMouseEnter",function(O){x.setState(function(){return{isTooltipActive:!0,activeItem:O,activePayload:O.tooltipPayload,activeCoordinate:O.tooltipPosition||{x:O.cx,y:O.cy}}})}),se(x,"handleItemMouseLeave",function(){x.setState(function(){return{isTooltipActive:!1}})}),se(x,"handleMouseMove",function(O){O.persist(),x.throttleTriggeredAfterMouseMove(O)}),se(x,"handleMouseLeave",function(O){x.throttleTriggeredAfterMouseMove.cancel();var S={isTooltipActive:!1};x.setState(S),x.triggerSyncEvent(S);var _=x.props.onMouseLeave;ue(_)&&_(S,O)}),se(x,"handleOuterEvent",function(O){var S=C4(O),_=mn(x.props,"".concat(S));if(S&&ue(_)){var E,k;/.*touch.*/i.test(S)?k=x.getMouseInfo(O.changedTouches[0]):k=x.getMouseInfo(O),_((E=k)!==null&&E!==void 0?E:{},O)}}),se(x,"handleClick",function(O){var S=x.getMouseInfo(O);if(S){var _=F(F({},S),{},{isTooltipActive:!0});x.setState(_),x.triggerSyncEvent(_);var E=x.props.onClick;ue(E)&&E(_,O)}}),se(x,"handleMouseDown",function(O){var S=x.props.onMouseDown;if(ue(S)){var _=x.getMouseInfo(O);S(_,O)}}),se(x,"handleMouseUp",function(O){var S=x.props.onMouseUp;if(ue(S)){var _=x.getMouseInfo(O);S(_,O)}}),se(x,"handleTouchMove",function(O){O.changedTouches!=null&&O.changedTouches.length>0&&x.throttleTriggeredAfterMouseMove(O.changedTouches[0])}),se(x,"handleTouchStart",function(O){O.changedTouches!=null&&O.changedTouches.length>0&&x.handleMouseDown(O.changedTouches[0])}),se(x,"handleTouchEnd",function(O){O.changedTouches!=null&&O.changedTouches.length>0&&x.handleMouseUp(O.changedTouches[0])}),se(x,"handleDoubleClick",function(O){var S=x.props.onDoubleClick;if(ue(S)){var _=x.getMouseInfo(O);S(_,O)}}),se(x,"handleContextMenu",function(O){var S=x.props.onContextMenu;if(ue(S)){var _=x.getMouseInfo(O);S(_,O)}}),se(x,"triggerSyncEvent",function(O){x.props.syncId!==void 0&&Am.emit(Em,x.props.syncId,O,x.eventEmitterSymbol)}),se(x,"applySyncEvent",function(O){var S=x.props,_=S.layout,E=S.syncMethod,k=x.state.updateId,N=O.dataStartIndex,$=O.dataEndIndex;if(O.dataStartIndex!==void 0||O.dataEndIndex!==void 0)x.setState(F({dataStartIndex:N,dataEndIndex:$},d({props:x.props,dataStartIndex:N,dataEndIndex:$,updateId:k},x.state)));else if(O.activeTooltipIndex!==void 0){var L=O.chartX,M=O.chartY,D=O.activeTooltipIndex,B=x.state,W=B.offset,R=B.tooltipTicks;if(!W)return;if(typeof E=="function")D=E(R,O);else if(E==="value"){D=-1;for(var I=0;I=0){var le,U;if(L.dataKey&&!L.allowDuplicatedCategory){var we=typeof L.dataKey=="function"?fe:"payload.".concat(L.dataKey.toString());le=Vf(I,we,D),U=z&&K&&Vf(K,we,D)}else le=I==null?void 0:I[M],U=z&&K&&K[M];if(ie||ye){var me=O.props.activeIndex!==void 0?O.props.activeIndex:M;return[A.cloneElement(O,F(F(F({},E.props),Ge),{},{activeIndex:me})),null,null]}if(!pe(le))return[G].concat(Os(x.renderActivePoints({item:E,activePoint:le,basePoint:U,childIndex:M,isRange:z})))}else{var Oe,ee=(Oe=x.getItemByXY(x.state.activeCoordinate))!==null&&Oe!==void 0?Oe:{graphicalItem:G},_e=ee.graphicalItem,ze=_e.item,mt=ze===void 0?O:ze,xn=_e.childIndex,Vt=F(F(F({},E.props),Ge),{},{activeIndex:xn});return[A.cloneElement(mt,Vt),null,null]}return z?[G,null,null]:[G,null]}),se(x,"renderCustomized",function(O,S,_){return A.cloneElement(O,F(F({key:"recharts-customized-".concat(_)},x.props),x.state))}),se(x,"renderMap",{CartesianGrid:{handler:Vc,once:!0},ReferenceArea:{handler:x.renderReferenceElement},ReferenceLine:{handler:Vc},ReferenceDot:{handler:x.renderReferenceElement},XAxis:{handler:Vc},YAxis:{handler:Vc},Brush:{handler:x.renderBrush,once:!0},Bar:{handler:x.renderGraphicChild},Line:{handler:x.renderGraphicChild},Area:{handler:x.renderGraphicChild},Radar:{handler:x.renderGraphicChild},RadialBar:{handler:x.renderGraphicChild},Scatter:{handler:x.renderGraphicChild},Pie:{handler:x.renderGraphicChild},Funnel:{handler:x.renderGraphicChild},Tooltip:{handler:x.renderCursor,once:!0},PolarGrid:{handler:x.renderPolarGrid,once:!0},PolarAngleAxis:{handler:x.renderPolarAxis},PolarRadiusAxis:{handler:x.renderPolarAxis},Customized:{handler:x.renderCustomized}}),x.clipPathId="".concat((b=v.id)!==null&&b!==void 0?b:Ds("recharts"),"-clip"),x.throttleTriggeredAfterMouseMove=rk(x.triggeredAfterMouseMove,(w=v.throttleDelay)!==null&&w!==void 0?w:1e3/60),x.state={},x}return tse(h,y),Yoe(h,[{key:"componentDidMount",value:function(){var b,w;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(b=this.props.margin.left)!==null&&b!==void 0?b:0,top:(w=this.props.margin.top)!==null&&w!==void 0?w:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var b=this.props,w=b.children,x=b.data,O=b.height,S=b.layout,_=ln(w,_n);if(_){var E=_.props.defaultIndex;if(!(typeof E!="number"||E<0||E>this.state.tooltipTicks.length-1)){var k=this.state.tooltipTicks[E]&&this.state.tooltipTicks[E].value,N=Pg(this.state,x,E,k),$=this.state.tooltipTicks[E].coordinate,L=(this.state.offset.top+O)/2,M=S==="horizontal",D=M?{x:$,y:L}:{y:$,x:L},B=this.state.formattedGraphicalItems.find(function(R){var I=R.item;return I.type.name==="Scatter"});B&&(D=F(F({},D),B.props.points[E].tooltipPosition),N=B.props.points[E].tooltipPayload);var W={activeTooltipIndex:E,isTooltipActive:!0,activeLabel:k,activePayload:N,activeCoordinate:D};this.setState(W),this.renderCursor(_),this.accessibilityManager.setIndex(E)}}}},{key:"getSnapshotBeforeUpdate",value:function(b,w){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==w.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==b.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==b.margin){var x,O;this.accessibilityManager.setDetails({offset:{left:(x=this.props.margin.left)!==null&&x!==void 0?x:0,top:(O=this.props.margin.top)!==null&&O!==void 0?O:0}})}return null}},{key:"componentDidUpdate",value:function(b){Zv([ln(b.children,_n)],[ln(this.props.children,_n)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var b=ln(this.props.children,_n);if(b&&typeof b.props.shared=="boolean"){var w=b.props.shared?"axis":"item";return s.indexOf(w)>=0?w:a}return a}},{key:"getMouseInfo",value:function(b){if(!this.container)return null;var w=this.container,x=w.getBoundingClientRect(),O=aV(x),S={chartX:Math.round(b.pageX-O.left),chartY:Math.round(b.pageY-O.top)},_=x.width/w.offsetWidth||1,E=this.inRange(S.chartX,S.chartY,_);if(!E)return null;var k=this.state,N=k.xAxisMap,$=k.yAxisMap,L=this.getTooltipEventType(),M=XP(this.state,this.props.data,this.props.layout,E);if(L!=="axis"&&N&&$){var D=si(N).scale,B=si($).scale,W=D&&D.invert?D.invert(S.chartX):null,R=B&&B.invert?B.invert(S.chartY):null;return F(F({},S),{},{xValue:W,yValue:R},M)}return M?F(F({},S),M):null}},{key:"inRange",value:function(b,w){var x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,O=this.props.layout,S=b/x,_=w/x;if(O==="horizontal"||O==="vertical"){var E=this.state.offset,k=S>=E.left&&S<=E.left+E.width&&_>=E.top&&_<=E.top+E.height;return k?{x:S,y:_}:null}var N=this.state,$=N.angleAxisMap,L=N.radiusAxisMap;if($&&L){var M=si($);return SS({x:S,y:_},M)}return null}},{key:"parseEventsOfWrapper",value:function(){var b=this.props.children,w=this.getTooltipEventType(),x=ln(b,_n),O={};x&&w==="axis"&&(x.props.trigger==="click"?O={onClick:this.handleClick}:O={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var S=Gf(this.props,this.handleOuterEvent);return F(F({},S),O)}},{key:"addListener",value:function(){Am.on(Em,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){Am.removeListener(Em,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(b,w,x){for(var O=this.state.formattedGraphicalItems,S=0,_=O.length;S<_;S++){var E=O[S];if(E.item===b||E.props.key===b.key||w===Nr(E.item.type)&&x===E.childIndex)return E}return null}},{key:"renderClipPath",value:function(){var b=this.clipPathId,w=this.state.offset,x=w.left,O=w.top,S=w.height,_=w.width;return T.createElement("defs",null,T.createElement("clipPath",{id:b},T.createElement("rect",{x,y:O,height:S,width:_})))}},{key:"getXScales",value:function(){var b=this.state.xAxisMap;return b?Object.entries(b).reduce(function(w,x){var O=KP(x,2),S=O[0],_=O[1];return F(F({},w),{},se({},S,_.scale))},{}):null}},{key:"getYScales",value:function(){var b=this.state.yAxisMap;return b?Object.entries(b).reduce(function(w,x){var O=KP(x,2),S=O[0],_=O[1];return F(F({},w),{},se({},S,_.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(b){var w;return(w=this.state.xAxisMap)===null||w===void 0||(w=w[b])===null||w===void 0?void 0:w.scale}},{key:"getYScaleByAxisId",value:function(b){var w;return(w=this.state.yAxisMap)===null||w===void 0||(w=w[b])===null||w===void 0?void 0:w.scale}},{key:"getItemByXY",value:function(b){var w=this.state,x=w.formattedGraphicalItems,O=w.activeItem;if(x&&x.length)for(var S=0,_=x.length;S<_;S++){var E=x[S],k=E.props,N=E.item,$=N.type.defaultProps!==void 0?F(F({},N.type.defaultProps),N.props):N.props,L=Nr(N.type);if(L==="Bar"){var M=(k.data||[]).find(function(R){return Bee(b,R)});if(M)return{graphicalItem:E,payload:M}}else if(L==="RadialBar"){var D=(k.data||[]).find(function(R){return SS(b,R)});if(D)return{graphicalItem:E,payload:D}}else if(rh(E,O)||ih(E,O)||Nu(E,O)){var B=jne({graphicalItem:E,activeTooltipItem:O,itemData:$.data}),W=$.activeIndex===void 0?B:$.activeIndex;return{graphicalItem:F(F({},E),{},{childIndex:W}),payload:Nu(E,O)?$.data[B]:E.props.data[B]}}}return null}},{key:"render",value:function(){var b=this;if(!d1(this))return null;var w=this.props,x=w.children,O=w.className,S=w.width,_=w.height,E=w.style,k=w.compact,N=w.title,$=w.desc,L=VP(w,Hoe),M=ae(L,!1);if(k)return T.createElement(jP,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},T.createElement(ty,bo({},M,{width:S,height:_,title:N,desc:$}),this.renderClipPath(),m1(x,this.renderMap)));if(this.props.accessibilityLayer){var D,B;M.tabIndex=(D=this.props.tabIndex)!==null&&D!==void 0?D:0,M.role=(B=this.props.role)!==null&&B!==void 0?B:"application",M.onKeyDown=function(R){b.accessibilityManager.keyboardEvent(R)},M.onFocus=function(){b.accessibilityManager.focus()}}var W=this.parseEventsOfWrapper();return T.createElement(jP,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},T.createElement("div",bo({className:he("recharts-wrapper",O),style:F({position:"relative",cursor:"default",width:S,height:_},E)},W,{ref:function(I){b.container=I}}),T.createElement(ty,bo({},M,{width:S,height:_,title:N,desc:$,style:sse}),this.renderClipPath(),m1(x,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])}(A.Component);se(g,"displayName",n),se(g,"defaultProps",F({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},c)),se(g,"getDerivedStateFromProps",function(y,h){var v=y.dataKey,b=y.data,w=y.children,x=y.width,O=y.height,S=y.layout,_=y.stackOffset,E=y.margin,k=h.dataStartIndex,N=h.dataEndIndex;if(h.updateId===void 0){var $=QP(y);return F(F(F({},$),{},{updateId:0},d(F(F({props:y},$),{},{updateId:0}),h)),{},{prevDataKey:v,prevData:b,prevWidth:x,prevHeight:O,prevLayout:S,prevStackOffset:_,prevMargin:E,prevChildren:w})}if(v!==h.prevDataKey||b!==h.prevData||x!==h.prevWidth||O!==h.prevHeight||S!==h.prevLayout||_!==h.prevStackOffset||!Ao(E,h.prevMargin)){var L=QP(y),M={chartX:h.chartX,chartY:h.chartY,isTooltipActive:h.isTooltipActive},D=F(F({},XP(h,b,S)),{},{updateId:h.updateId+1}),B=F(F(F({},L),M),D);return F(F(F({},B),d(F({props:y},B),h)),{},{prevDataKey:v,prevData:b,prevWidth:x,prevHeight:O,prevLayout:S,prevStackOffset:_,prevMargin:E,prevChildren:w})}if(!Zv(w,h.prevChildren)){var W,R,I,z,K=ln(w,ps),H=K&&(W=(R=K.props)===null||R===void 0?void 0:R.startIndex)!==null&&W!==void 0?W:k,te=K&&(I=(z=K.props)===null||z===void 0?void 0:z.endIndex)!==null&&I!==void 0?I:N,ce=H!==k||te!==N,ye=!pe(b),ie=ye&&!ce?h.updateId:h.updateId+1;return F(F({updateId:ie},d(F(F({props:y},h),{},{updateId:ie,dataStartIndex:H,dataEndIndex:te}),h)),{},{prevChildren:w,dataStartIndex:H,dataEndIndex:te})}return null}),se(g,"renderActiveDot",function(y,h,v){var b;return A.isValidElement(y)?b=A.cloneElement(y,h):ue(y)?b=y(h):b=T.createElement(Jd,h),T.createElement(Se,{className:"recharts-active-dot",key:v},b)});var m=A.forwardRef(function(h,v){return T.createElement(g,bo({},h,{ref:v}))});return m.displayName=g.displayName,m},yse=Gb({chartName:"LineChart",GraphicalChild:wi,axisComponents:[{axisType:"xAxis",AxisComp:Hs},{axisType:"yAxis",AxisComp:qs}],formatAxisMap:W$}),gse=Gb({chartName:"BarChart",GraphicalChild:lr,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:Hs},{axisType:"yAxis",AxisComp:qs}],formatAxisMap:W$}),bse=Gb({chartName:"PieChart",GraphicalChild:Yr,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",legendContent:"children",axisComponents:[{axisType:"angleAxis",AxisComp:nh},{axisType:"radiusAxis",AxisComp:eh}],formatAxisMap:tJ,defaultProps:{layout:"centric",startAngle:0,endAngle:360,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}});function xse({data:e}){const t=e||[{aspect:"food",positive:120,negative:30,neutral:10,conflict:5},{aspect:"service",positive:50,negative:80,neutral:20,conflict:15},{aspect:"price",positive:40,negative:60,neutral:15,conflict:5},{aspect:"ambience",positive:90,negative:10,neutral:5,conflict:2},{aspect:"staff",positive:60,negative:40,neutral:10,conflict:8}];return P.jsxs("div",{className:"bg-white dark:bg-slate-800 rounded-xl shadow-sm border border-gray-200 dark:border-slate-700 p-6 h-96",children:[P.jsx("h3",{className:"text-sm font-semibold text-gray-900 dark:text-white mb-4",children:"Top Aspects by Sentiment"}),P.jsx(fb,{width:"100%",height:"100%",children:P.jsxs(gse,{data:t,margin:{top:5,right:30,left:20,bottom:5},layout:"vertical",children:[P.jsx(Vb,{strokeDasharray:"3 3",stroke:"#374151",opacity:.2,horizontal:!1}),P.jsx(Hs,{type:"number",stroke:"#6B7280",fontSize:12}),P.jsx(qs,{dataKey:"aspect",type:"category",stroke:"#6B7280",fontSize:12,width:80}),P.jsx(_n,{cursor:{fill:"rgba(107, 114, 128, 0.1)"},contentStyle:{backgroundColor:"#1F2937",borderColor:"#374151",color:"#F9FAFB"}}),P.jsx(Mr,{}),P.jsx(lr,{dataKey:"positive",stackId:"a",fill:"#10B981"}),P.jsx(lr,{dataKey:"negative",stackId:"a",fill:"#EF4444"}),P.jsx(lr,{dataKey:"neutral",stackId:"a",fill:"#6B7280"}),P.jsx(lr,{dataKey:"conflict",stackId:"a",fill:"#F59E0B"})]})})]})}function wse({data:e}){const t=e||[{name:"English",value:400},{name:"Hindi",value:300},{name:"Hinglish",value:150}],n=["#3B82F6","#F97316","#10B981"];return P.jsxs("div",{className:"bg-white dark:bg-slate-800 rounded-xl shadow-sm border border-gray-200 dark:border-slate-700 p-6 h-96",children:[P.jsx("h3",{className:"text-sm font-semibold text-gray-900 dark:text-white mb-4",children:"Language Distribution"}),P.jsx(fb,{width:"100%",height:"100%",children:P.jsxs(bse,{children:[P.jsx(Yr,{data:t,cx:"50%",cy:"45%",innerRadius:60,outerRadius:100,paddingAngle:5,dataKey:"value",stroke:"none",children:t.map((r,i)=>P.jsx(Bd,{fill:n[i%n.length]},`cell-${i}`))}),P.jsx(_n,{contentStyle:{backgroundColor:"#1F2937",borderColor:"#374151",color:"#F9FAFB"},itemStyle:{color:"#F9FAFB"}}),P.jsx(Mr,{verticalAlign:"bottom",height:36})]})})]})}function Ose({data:e}){const t=e||[{name:"Jan",positive:400,negative:240,neutral:100,conflict:50},{name:"Feb",positive:300,negative:139,neutral:200,conflict:40},{name:"Mar",positive:200,negative:980,neutral:150,conflict:100},{name:"Apr",positive:278,negative:390,neutral:250,conflict:60},{name:"May",positive:189,negative:480,neutral:180,conflict:70},{name:"Jun",positive:239,negative:380,neutral:210,conflict:80},{name:"Jul",positive:349,negative:430,neutral:230,conflict:90}];return P.jsxs("div",{className:"bg-white dark:bg-slate-800 rounded-xl shadow-sm border border-gray-200 dark:border-slate-700 p-6 h-96",children:[P.jsx("h3",{className:"text-sm font-semibold text-gray-900 dark:text-white mb-4",children:"Sentiment Over Time"}),P.jsx(fb,{width:"100%",height:"100%",children:P.jsxs(yse,{data:t,margin:{top:5,right:30,left:20,bottom:5},children:[P.jsx(Vb,{strokeDasharray:"3 3",stroke:"#374151",opacity:.2}),P.jsx(Hs,{dataKey:"name",stroke:"#6B7280",fontSize:12}),P.jsx(qs,{stroke:"#6B7280",fontSize:12}),P.jsx(_n,{contentStyle:{backgroundColor:"#1F2937",borderColor:"#374151",color:"#F9FAFB"},itemStyle:{color:"#F9FAFB"}}),P.jsx(Mr,{}),P.jsx(wi,{type:"monotone",dataKey:"positive",stroke:"#10B981",strokeWidth:2,dot:{r:4},activeDot:{r:6}}),P.jsx(wi,{type:"monotone",dataKey:"negative",stroke:"#EF4444",strokeWidth:2,dot:{r:4}}),P.jsx(wi,{type:"monotone",dataKey:"neutral",stroke:"#6B7280",strokeWidth:2,dot:{r:4}}),P.jsx(wi,{type:"monotone",dataKey:"conflict",stroke:"#F59E0B",strokeWidth:2,dot:{r:4}})]})})]})}function JP({status:e}){switch(e){case"completed":return P.jsxs("span",{className:"badge-positive",children:[P.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-tertiary flex-shrink-0"}),"Completed"]});case"processing":return P.jsxs("span",{className:"badge-processing",children:[P.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary flex-shrink-0"}),"Processing"]});case"queued":return P.jsxs("span",{className:"badge-neutral",children:[P.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-outline flex-shrink-0"}),"Queued"]});case"failed":return P.jsxs("span",{className:"badge-error",children:[P.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-error flex-shrink-0"}),"Failed"]});default:return P.jsx("span",{className:"badge-neutral",children:e})}}function Sse(){const[e,t]=A.useState(null),[n,r]=A.useState(null),[i,a]=A.useState(!1),o=IE({mutationFn:m=>ru.uploadBatch(m),onSuccess:m=>{r(m.job_id),a(!0),ho.success("Batch job queued successfully")}}),{data:s}=_0({queryKey:["batchStatus",n],queryFn:()=>ru.getBatchStatus(n),enabled:i&&!!n,refetchInterval:i?2e3:!1});A.useEffect(()=>{((s==null?void 0:s.status)==="completed"||(s==null?void 0:s.status)==="failed")&&(a(!1),s.status==="completed"?ho.success("Batch processing completed!"):ho.error("Batch processing failed"))},[s]);const l=A.useCallback(m=>{if((m==null?void 0:m.length)>0){const y=m[0];if(!y.name.endsWith(".csv")){ho.error("Please upload a CSV file");return}t(y)}},[]),{getRootProps:u,getInputProps:f,isDragActive:c}=zj({onDrop:l,accept:{"text/csv":[".csv"]},maxFiles:1}),p=()=>{e&&o.mutate(e)},d=()=>{t(null),r(null),a(!1)},g=s?Math.min(100,Math.round(s.processed/s.total_reviews*100)):0;return P.jsxs("div",{className:"space-y-xl",children:[P.jsxs("div",{children:[P.jsx("h1",{className:"text-headline-md text-on-surface",children:"Batch Analytics"}),P.jsx("p",{className:"mt-1 text-body-md text-on-surface-variant",children:"Upload a CSV of reviews for bulk aspect-based sentiment analysis."})]}),!n&&P.jsxs("section",{className:"card",children:[P.jsxs("div",{...u(),className:`border-2 border-dashed rounded-xl p-12 flex flex-col items-center - justify-center text-center cursor-pointer transition-colors duration-200 - ${c?"drag-active border-primary/60":"border-white/[0.14] hover:border-primary/40 hover:bg-primary/[0.02]"}`,children:[P.jsx("input",{...f()}),P.jsx(it,{name:"cloud_upload",size:48,className:"text-on-surface-variant mb-4"}),P.jsx("h3",{className:"text-headline-sm text-on-surface mb-2",children:c?"Drop the CSV here…":"Drag & drop a CSV, or click to select"}),P.jsxs("p",{className:"text-body-md text-on-surface-variant max-w-sm",children:["Must contain a ",P.jsx("code",{className:"font-mono text-primary px-1",children:"text"})," column. Maximum 10,000 rows. Files are deleted after analysis."]})]}),e&&P.jsxs("div",{className:`mt-lg flex items-center justify-between - p-md rounded-lg bg-surface-container-low border border-white/[0.08] - animate-slide-in`,children:[P.jsxs("div",{className:"flex items-center gap-3",children:[P.jsx(it,{name:"description",size:20,className:"text-primary"}),P.jsxs("div",{children:[P.jsx("p",{className:"text-body-md text-on-surface font-medium",children:e.name}),P.jsxs("p",{className:"font-mono text-label-sm text-on-surface-variant",children:[(e.size/1024/1024).toFixed(2)," MB"]})]})]}),P.jsxs("div",{className:"flex gap-2",children:[P.jsx("button",{onClick:m=>{m.stopPropagation(),t(null)},className:`px-3 py-1.5 text-body-sm text-on-surface-variant border border-white/[0.12] - rounded-lg hover:bg-white/[0.05] hover:text-on-surface transition-colors`,children:"Remove"}),P.jsxs("button",{onClick:m=>{m.stopPropagation(),p()},disabled:o.isPending,className:"btn-primary text-body-sm",children:[o.isPending?P.jsx("span",{className:"material-symbols-outlined animate-spin text-[16px]",children:"progress_activity"}):P.jsx(it,{name:"rocket_launch",size:16}),"Process File"]})]})]})]}),n&&P.jsxs("section",{className:"card animate-fade-in",children:[P.jsxs("div",{className:"flex flex-wrap justify-between items-start gap-4 mb-lg",children:[P.jsxs("div",{children:[P.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[P.jsx(JP,{status:(s==null?void 0:s.status)||"queued"}),P.jsx("h3",{className:"text-title-lg text-on-surface",children:(e==null?void 0:e.name)||"Batch Job"})]}),P.jsxs("p",{className:"font-mono text-label-sm text-on-surface-variant",children:["ID: ",n]})]}),P.jsx("div",{className:"flex gap-2",children:(s==null?void 0:s.status)==="completed"&&P.jsxs(P.Fragment,{children:[P.jsx("button",{onClick:d,className:"px-3 py-1.5 text-body-sm border border-white/[0.12] rounded-lg text-on-surface-variant hover:bg-white/[0.05] transition-colors",children:"Upload New"}),(s==null?void 0:s.result_url)&&P.jsxs("a",{href:`${Ej}${s.result_url}`,download:!0,className:"btn-primary text-body-sm",children:[P.jsx(it,{name:"download",size:16}),"Download CSV"]})]})})]}),P.jsxs("div",{className:"space-y-2",children:[P.jsxs("div",{className:"flex justify-between font-mono text-label-sm text-on-surface-variant",children:[P.jsx("span",{children:"Progress"}),P.jsxs("span",{children:[s?`${s.processed} / ${s.total_reviews}`:"0"," rows  (",g,"%)"]})]}),P.jsx("div",{className:"w-full h-1.5 bg-surface-container-highest rounded-full overflow-hidden",children:P.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${(s==null?void 0:s.status)==="failed"?"bg-error":"bg-primary"}`,style:{width:`${g}%`}})})]})]}),!n&&P.jsxs("section",{children:[P.jsx("h2",{className:"text-headline-sm text-on-surface mb-lg",children:"Recent Batches"}),P.jsx("div",{className:"card overflow-hidden p-0",children:P.jsx("div",{className:"overflow-x-auto",children:P.jsxs("table",{className:"w-full text-left border-collapse",children:[P.jsx("thead",{children:P.jsxs("tr",{className:"border-b border-white/[0.08] bg-surface-container-high/50",children:[P.jsx("th",{className:"font-mono text-label-sm text-on-surface-variant py-3 px-xl",children:"Filename"}),P.jsx("th",{className:"font-mono text-label-sm text-on-surface-variant py-3 px-lg",children:"Rows"}),P.jsx("th",{className:"font-mono text-label-sm text-on-surface-variant py-3 px-lg",children:"Status"}),P.jsx("th",{className:"font-mono text-label-sm text-on-surface-variant py-3 px-xl text-right",children:"Date"})]})}),P.jsx("tbody",{className:"divide-y divide-white/[0.05]",children:[{name:"q3_customer_feedback.csv",rows:"4,250",status:"completed",date:"Today, 14:32"},{name:"product_launch_tweets.csv",rows:"8,912",status:"processing",date:"Today, 14:15"},{name:"corrupted_export_09.csv",rows:"—",status:"failed",date:"Yesterday"}].map((m,y)=>P.jsxs("tr",{className:"hover:bg-white/[0.03] transition-colors",children:[P.jsx("td",{className:"py-3 px-xl",children:P.jsxs("div",{className:"flex items-center gap-2 text-body-md text-on-surface",children:[P.jsx(it,{name:"description",size:16,className:"text-on-surface-variant"}),m.name]})}),P.jsx("td",{className:"py-3 px-lg font-mono text-body-sm text-on-surface-variant",children:m.rows}),P.jsx("td",{className:"py-3 px-lg",children:P.jsx(JP,{status:m.status})}),P.jsx("td",{className:"py-3 px-xl text-right font-mono text-body-sm text-on-surface-variant",children:m.date})]},y))})]})})})]}),(s==null?void 0:s.status)==="completed"&&P.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-xl animate-fade-in",children:[P.jsx("div",{className:"xl:col-span-2",children:P.jsx(xse,{})}),P.jsx("div",{children:P.jsx(wse,{})}),P.jsx("div",{className:"lg:col-span-2 xl:col-span-3",children:P.jsx(Ose,{})})]})]})}function Tm({icon:e,label:t,value:n,sub:r,sparkColor:i,positive:a}){return P.jsxs("div",{className:"stat-card group",children:[P.jsx("div",{className:"absolute bottom-0 left-0 w-full h-16 opacity-40 group-hover:opacity-70 transition-opacity pointer-events-none",style:{background:`linear-gradient(180deg, ${i}33 0%, transparent 100%)`},children:P.jsx("svg",{viewBox:"0 0 100 40",className:"w-full h-full",preserveAspectRatio:"none",children:P.jsx("path",{d:a?"M0 40 L0 28 Q25 24 50 20 T100 14 L100 40 Z":"M0 40 L0 32 Q25 30 50 26 T100 22 L100 40 Z",fill:`${i}22`,stroke:i,strokeWidth:"1.5",vectorEffect:"non-scaling-stroke"})})}),P.jsxs("div",{className:"relative z-10",children:[P.jsxs("div",{className:"flex items-center gap-2 mb-lg",children:[P.jsx("span",{className:"material-symbols-outlined text-2xl",style:{color:i,fontVariationSettings:"'FILL' 1"},children:e}),P.jsx("span",{className:"font-mono text-label-md text-on-surface-variant uppercase tracking-wider",children:t})]}),P.jsx("p",{className:"text-display text-on-surface font-semibold",children:n}),r&&P.jsx("p",{className:"font-mono text-label-sm text-on-surface-variant mt-1",children:r})]})]})}function Pse({ok:e}){return e?P.jsxs("span",{className:"badge-positive",children:[P.jsx("span",{className:"w-2 h-2 rounded-full bg-tertiary animate-pulse-slow flex-shrink-0"}),"Healthy"]}):P.jsxs("span",{className:"badge-error",children:[P.jsx("span",{className:"w-2 h-2 rounded-full bg-error animate-pulse flex-shrink-0"}),"Degraded"]})}function ZP({label:e,value:t,valueClass:n=""}){return P.jsxs("div",{className:"bg-surface rounded-lg p-md",children:[P.jsx("p",{className:"font-mono text-label-sm text-on-surface-variant mb-1",children:e}),P.jsx("p",{className:`text-body-md text-on-surface font-medium ${n}`,children:t})]})}function e_(){return P.jsxs("div",{className:"flex items-center gap-1.5 text-body-md text-on-surface font-medium",children:[P.jsx(it,{name:"check_circle",size:16,className:"text-tertiary"}),"Loaded"]})}function _se(){const[e,t]=A.useState(3e4),{data:n,isLoading:r}=_0({queryKey:["health-monitor"],queryFn:ru.getHealth,refetchInterval:e||!1}),i=(n==null?void 0:n.status)==="ok";return P.jsxs("div",{className:"space-y-xl",children:[P.jsxs("div",{className:"flex flex-wrap justify-between items-end gap-4",children:[P.jsxs("div",{children:[P.jsx("h1",{className:"text-headline-md text-on-surface",children:"System Monitor"}),P.jsx("p",{className:"mt-1 text-body-md text-on-surface-variant",children:"Real-time API health, model metadata, and request statistics."})]}),P.jsxs("div",{className:"flex items-center gap-2",children:[P.jsx("label",{htmlFor:"refresh-select",className:"font-mono text-label-sm text-on-surface-variant",children:"Auto-refresh"}),P.jsxs("select",{id:"refresh-select",value:e,onChange:a=>t(Number(a.target.value)),className:"input-base py-1 text-body-sm",children:[P.jsx("option",{value:1e4,children:"10s"}),P.jsx("option",{value:3e4,children:"30s"}),P.jsx("option",{value:6e4,children:"1m"}),P.jsx("option",{value:0,children:"Off"})]})]})]}),P.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-xl",children:[P.jsxs("div",{className:"lg:col-span-4 card flex flex-col gap-lg",children:[P.jsxs("div",{className:"flex items-center gap-3",children:[P.jsx("div",{className:`p-2.5 rounded-lg ${i?"bg-tertiary/10":"bg-error/10"}`,children:P.jsx(it,{name:"monitor_heart",size:24,className:i?"text-tertiary":"text-error"})}),P.jsxs("div",{children:[P.jsx("h2",{className:"text-title-lg text-on-surface",children:"API Status"}),P.jsx("p",{className:"font-mono text-label-sm text-on-surface-variant",children:"Core Inference Engine"})]})]}),P.jsxs("div",{className:"flex items-center gap-3 pt-lg border-t border-white/[0.06]",children:[P.jsx("span",{className:"text-body-md text-on-surface-variant",children:"Current state:"}),r?P.jsx("span",{className:"badge-neutral animate-pulse",children:"Checking…"}):P.jsx(Pse,{ok:i})]})]}),P.jsxs("div",{className:"lg:col-span-8 card",children:[P.jsxs("div",{className:"flex items-center gap-3 mb-xl",children:[P.jsx("div",{className:"p-2.5 rounded-lg bg-primary/10",children:P.jsx(it,{name:"memory",size:24,className:"text-primary"})}),P.jsxs("div",{children:[P.jsx("h2",{className:"text-title-lg text-on-surface",children:"Model Configuration"}),P.jsx("p",{className:"font-mono text-label-sm text-on-surface-variant",children:"Loaded ONNX Graphs"})]})]}),P.jsxs("div",{className:"grid grid-cols-2 gap-md",children:[P.jsx(ZP,{label:"Architecture",value:"XLM-RoBERTa (INT8)"}),P.jsx(ZP,{label:"Supported Languages",value:"English, Hindi, Hinglish"}),P.jsxs("div",{className:"bg-surface rounded-lg p-md",children:[P.jsx("p",{className:"font-mono text-label-sm text-on-surface-variant mb-1",children:"Aspect Extraction"}),P.jsx(e_,{})]}),P.jsxs("div",{className:"bg-surface rounded-lg p-md",children:[P.jsx("p",{className:"font-mono text-label-sm text-on-surface-variant mb-1",children:"Sentiment Classification"}),P.jsx(e_,{})]})]})]})]}),P.jsxs("div",{children:[P.jsx("h2",{className:"text-headline-sm text-on-surface mb-lg",children:"Performance Metrics"}),P.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-xl",children:[P.jsx(Tm,{icon:"database",label:"Total Requests Today",value:"12.4k",sub:"↑ 8% vs yesterday",sparkColor:"#c0c1ff",positive:!0}),P.jsx(Tm,{icon:"bolt",label:"Avg Latency (P95)",value:"145ms",sub:"Well within SLA",sparkColor:"#4edea3",positive:!0}),P.jsx(Tm,{icon:"warning",label:"Error Rate",value:"0.2%",sub:"Last 24 hours",sparkColor:"#ffb4ab",positive:!1})]})]}),P.jsxs("div",{className:"card",children:[P.jsx("h2",{className:"text-title-lg text-on-surface mb-lg",children:"Recent Endpoint Activity"}),P.jsx("div",{className:"space-y-2",children:[{method:"POST",path:"/predict",status:200,time:"3.5ms",ago:"2s ago"},{method:"GET",path:"/health",status:200,time:"0.8ms",ago:"5s ago"},{method:"POST",path:"/batch",status:202,time:"12.1ms",ago:"1m ago"},{method:"GET",path:"/status/abc12",status:200,time:"1.2ms",ago:"1m ago"},{method:"POST",path:"/predict",status:500,time:"23ms",ago:"3m ago"}].map((a,o)=>P.jsxs("div",{className:"flex items-center gap-4 py-2 px-md rounded-lg hover:bg-white/[0.03] transition-colors",children:[P.jsx("span",{className:`font-mono text-label-sm w-10 flex-shrink-0 ${a.method==="POST"?"text-primary":"text-tertiary"}`,children:a.method}),P.jsx("span",{className:"font-mono text-body-sm text-on-surface flex-1 truncate",children:a.path}),P.jsx("span",{className:`font-mono text-label-sm w-10 text-right flex-shrink-0 ${a.status>=500?"text-error":a.status>=400?"text-warning":"text-tertiary"}`,children:a.status}),P.jsx("span",{className:"font-mono text-label-sm text-on-surface-variant w-14 text-right flex-shrink-0",children:a.time}),P.jsx("span",{className:"font-mono text-label-sm text-on-surface-variant/50 w-16 text-right hidden sm:block flex-shrink-0",children:a.ago})]},o))})]})]})}function Ase(){return P.jsx(BR,{children:P.jsx(NR,{children:P.jsxs(eo,{path:"/",element:P.jsx(NL,{}),children:[P.jsx(eo,{index:!0,element:P.jsx(kR,{to:"/predict",replace:!0})}),P.jsx(eo,{path:"predict",element:P.jsx(WL,{})}),P.jsx(eo,{path:"batch",element:P.jsx(Sse,{})}),P.jsx(eo,{path:"monitor",element:P.jsx(_se,{})})]})})})}const Ese=new _M({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}});km.createRoot(document.getElementById("root")).render(P.jsx(T.StrictMode,{children:P.jsx(AM,{client:Ese,children:P.jsx(Ase,{})})})); diff --git a/dashboard_backup/dist/index.html b/dashboard_backup/dist/index.html deleted file mode 100644 index e3384fa6e5191aba7faf2e6e9471bcc3355a0cd0..0000000000000000000000000000000000000000 --- a/dashboard_backup/dist/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - SentimentAI — Multilingual ABSA - - - - - - - - - - - - - -
- - diff --git a/dashboard_backup/index.html b/dashboard_backup/index.html deleted file mode 100644 index f64b19b6d8d04b4ccfa4e7fef952a88f96b976a3..0000000000000000000000000000000000000000 --- a/dashboard_backup/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - SentimentAI — Multilingual ABSA - - - - - - - - - - - -
- - - diff --git a/dashboard_backup/package-lock.json b/dashboard_backup/package-lock.json deleted file mode 100644 index 5adb81a3f37e4373e497de61610cba49a6609df1..0000000000000000000000000000000000000000 --- a/dashboard_backup/package-lock.json +++ /dev/null @@ -1,3461 +0,0 @@ -{ - "name": "dashboard", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "dashboard", - "version": "0.0.0", - "dependencies": { - "@tanstack/react-query": "^5.0.0", - "axios": "^1.6.0", - "lucide-react": "^0.290.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-dropzone": "^14.2.3", - "react-hot-toast": "^2.4.1", - "react-router-dom": "^6.20.0", - "recharts": "^2.10.0" - }, - "devDependencies": { - "@vitejs/plugin-react": "^4.2.0", - "autoprefixer": "^10.4.16", - "postcss": "^8.4.31", - "tailwindcss": "^3.3.5", - "vite": "^5.0.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", - "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", - "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", - "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helpers": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", - "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", - "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.29.7", - "@babel/helper-validator-option": "^7.29.7", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", - "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", - "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", - "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", - "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", - "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", - "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", - "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", - "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", - "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.7" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", - "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", - "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", - "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", - "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", - "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-globals": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", - "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@remix-run/router": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.3.tgz", - "integrity": "sha512-4An71tdz9X8+3sI4Qqqd2LWd9vS39J7sqd9EU4Scw7TJE/qB10Flv/UuqbPVgfQV9XoK8Np6jNquZitnZq5i+Q==", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz", - "integrity": "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz", - "integrity": "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz", - "integrity": "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz", - "integrity": "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz", - "integrity": "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz", - "integrity": "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz", - "integrity": "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz", - "integrity": "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz", - "integrity": "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz", - "integrity": "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz", - "integrity": "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz", - "integrity": "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz", - "integrity": "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz", - "integrity": "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz", - "integrity": "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz", - "integrity": "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz", - "integrity": "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz", - "integrity": "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz", - "integrity": "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz", - "integrity": "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz", - "integrity": "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz", - "integrity": "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz", - "integrity": "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz", - "integrity": "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz", - "integrity": "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@tanstack/query-core": { - "version": "5.101.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.101.1.tgz", - "integrity": "sha512-Y6Y92dkXtNqx67m2pMSxUsA3zOCwv862JexZRP8/EPwvKXMPu9m8rv43spiXWzOUIggQ3SQApttALStzhA8B4g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-query": { - "version": "5.101.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.101.1.tgz", - "integrity": "sha512-ZnONUuQKJe1bJMStXUL1s5uKN9FcfC28j5cK+iDZcdSHtUv1wtin1cGc/Oewhf2Oc4eKY7lggtpvT/AbMmhHew==", - "license": "MIT", - "dependencies": { - "@tanstack/query-core": "5.101.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^18 || ^19" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-shape": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.28.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/attr-accept": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", - "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/autoprefixer": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.2.tgz", - "integrity": "sha512-rD5t5DwOjJdmSORcTq64j8MawTC+tbQ+HHqjR4NDumamy/ambn1UJrlKL+KdwujWxMkFjPM3pPHOEA9tl4767Q==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.4", - "caniuse-lite": "^1.0.30001799", - "fraction.js": "^5.3.4", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.1.tgz", - "integrity": "sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.16.0", - "form-data": "^4.0.5", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^2.1.0" - } - }, - "node_modules/baseline-browser-mapping": { - "version": "2.10.40", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.40.tgz", - "integrity": "sha512-BSSLZ9/Cjjv7Gtj5B68ZzXcXUg8iOf3fme+FCuh8rC/Go+Kmh8cox7M3A8dolou16s64QjLPOSdngh7GxXvkSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz", - "integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.10.38", - "caniuse-lite": "^1.0.30001799", - "electron-to-chromium": "^1.5.376", - "node-releases": "^2.0.48", - "update-browserslist-db": "^1.2.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001799", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", - "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT" - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", - "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", - "license": "MIT" - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.379", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.379.tgz", - "integrity": "sha512-v/qV5aV5EUA2pGilzUCq5/eyOloZAqDZBu9UMBIzgPpLlprjSR6zswsWBTv0KpqxLGUAZEwhO95ZCt7srymNVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/fast-equals": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz", - "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-selector": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", - "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", - "license": "MIT", - "dependencies": { - "tslib": "^2.7.0" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", - "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fraction.js": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", - "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/goober": { - "version": "2.1.19", - "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.19.tgz", - "integrity": "sha512-U7veizMqxyKlM58+Z5j2ngJBH/r9siDmxpvNxSw0PylF6WQvrASJEZrxh1hidRBJc2jqoBVSyOban5u8m+6Rxg==", - "license": "MIT", - "peerDependencies": { - "csstype": "^3.0.10" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", - "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", - "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lucide-react": { - "version": "0.290.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.290.0.tgz", - "integrity": "sha512-CBDPRLOPjdo+bVlxhaa7FVWaB8OrZZQ34mwm0Fsz9ut6JltN/Td55640ur8bRWSJuz6+nX2klKrpBpV7ktwD3Q==", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.15", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", - "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-releases": { - "version": "2.0.50", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz", - "integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", - "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", - "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.1.1" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", - "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/proxy-from-env": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", - "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-dropzone": { - "version": "14.4.1", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.4.1.tgz", - "integrity": "sha512-QDuV76v3uKbHiH34SpwifZ+gOLi1+RdsCO1kl5vxMT4wW8R82+sthjvBw4th3NHF/XX6FBsqDYZVNN+pnhaw0g==", - "license": "MIT", - "dependencies": { - "attr-accept": "^2.2.4", - "file-selector": "^2.1.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "react": ">= 16.8 || 18.0.0" - } - }, - "node_modules/react-hot-toast": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.6.0.tgz", - "integrity": "sha512-bH+2EBMZ4sdyou/DPrfgIouFpcRLCJ+HoCA32UoAYHn6T3Ur5yfcDCeSr5mwldl6pFOsiocmrXMuoCJ1vV8bWg==", - "license": "MIT", - "dependencies": { - "csstype": "^3.1.3", - "goober": "^2.1.16" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=16", - "react-dom": ">=16" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "6.30.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.4.tgz", - "integrity": "sha512-SVUsDe+DybHM/WmYKIVYhZh1o5Dcuf16yM6WjG02Q9XVFMZIJyHYhwrr6bFBXZkVP6z69kNkMyBCujt8FaFLJA==", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.23.3" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.30.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.4.tgz", - "integrity": "sha512-q4HvNl+mmDdkS0g+MqiBZNteQJCuimWoOyHMy4T/RQLAn9Z29+E91QXRaxOujeMl2HTzRSS0KFPd7lxX3PjV0Q==", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.23.3", - "react-router": "6.30.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-smooth": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", - "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", - "license": "MIT", - "dependencies": { - "fast-equals": "^5.0.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recharts": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz", - "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==", - "deprecated": "1.x and 2.x branches are no longer active. Bump to Recharts v3 to receive latest features and bugfixes. See https://github.com/recharts/recharts/wiki/3.0-migration-guide", - "license": "MIT", - "dependencies": { - "clsx": "^2.0.0", - "eventemitter3": "^4.0.1", - "lodash": "^4.17.21", - "react-is": "^18.3.1", - "react-smooth": "^4.0.4", - "recharts-scale": "^0.4.4", - "tiny-invariant": "^1.3.1", - "victory-vendor": "^36.6.8" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/recharts-scale": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", - "license": "MIT", - "dependencies": { - "decimal.js-light": "^2.4.1" - } - }, - "node_modules/recharts/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.12", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", - "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz", - "integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.9" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.62.2", - "@rollup/rollup-android-arm64": "4.62.2", - "@rollup/rollup-darwin-arm64": "4.62.2", - "@rollup/rollup-darwin-x64": "4.62.2", - "@rollup/rollup-freebsd-arm64": "4.62.2", - "@rollup/rollup-freebsd-x64": "4.62.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", - "@rollup/rollup-linux-arm-musleabihf": "4.62.2", - "@rollup/rollup-linux-arm64-gnu": "4.62.2", - "@rollup/rollup-linux-arm64-musl": "4.62.2", - "@rollup/rollup-linux-loong64-gnu": "4.62.2", - "@rollup/rollup-linux-loong64-musl": "4.62.2", - "@rollup/rollup-linux-ppc64-gnu": "4.62.2", - "@rollup/rollup-linux-ppc64-musl": "4.62.2", - "@rollup/rollup-linux-riscv64-gnu": "4.62.2", - "@rollup/rollup-linux-riscv64-musl": "4.62.2", - "@rollup/rollup-linux-s390x-gnu": "4.62.2", - "@rollup/rollup-linux-x64-gnu": "4.62.2", - "@rollup/rollup-linux-x64-musl": "4.62.2", - "@rollup/rollup-openbsd-x64": "4.62.2", - "@rollup/rollup-openharmony-arm64": "4.62.2", - "@rollup/rollup-win32-arm64-msvc": "4.62.2", - "@rollup/rollup-win32-ia32-msvc": "4.62.2", - "@rollup/rollup-win32-x64-gnu": "4.62.2", - "@rollup/rollup-win32-x64-msvc": "4.62.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sucrase": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", - "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "tinyglobby": "^0.2.11", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", - "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.7", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/victory-vendor": { - "version": "36.9.2", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", - "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" - } - }, - "node_modules/vite": { - "version": "5.4.21", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", - "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - } - } -} diff --git a/dashboard_backup/package.json b/dashboard_backup/package.json deleted file mode 100644 index 00172d18effa6c81af1b76460caa8e47c6d06b9d..0000000000000000000000000000000000000000 --- a/dashboard_backup/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "dashboard", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview" - }, - "dependencies": { - "@tanstack/react-query": "^5.0.0", - "axios": "^1.6.0", - "lucide-react": "^0.290.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-dropzone": "^14.2.3", - "react-hot-toast": "^2.4.1", - "react-router-dom": "^6.20.0", - "recharts": "^2.10.0" - }, - "devDependencies": { - "@vitejs/plugin-react": "^4.2.0", - "autoprefixer": "^10.4.16", - "postcss": "^8.4.31", - "tailwindcss": "^3.3.5", - "vite": "^5.0.0" - } -} diff --git a/dashboard_backup/postcss.config.js b/dashboard_backup/postcss.config.js deleted file mode 100644 index 2e7af2b7f1a6f391da1631d93968a9d487ba977d..0000000000000000000000000000000000000000 --- a/dashboard_backup/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/dashboard_backup/public/_redirects b/dashboard_backup/public/_redirects deleted file mode 100644 index 7797f7c6a7356b0d451d11a49925df854c22e978..0000000000000000000000000000000000000000 --- a/dashboard_backup/public/_redirects +++ /dev/null @@ -1 +0,0 @@ -/* /index.html 200 diff --git a/dashboard_backup/src/App.jsx b/dashboard_backup/src/App.jsx deleted file mode 100644 index 209b44094e22e37fa03d04f597ac937f1a0cd18a..0000000000000000000000000000000000000000 --- a/dashboard_backup/src/App.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react' -import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom' -import { Toaster } from 'react-hot-toast' -import Layout from './components/Layout' -import Predict from './pages/Predict' -import Analytics from './pages/Analytics' -import Monitor from './pages/Monitor' - -function App() { - return ( - - - }> - } /> - } /> - } /> - } /> - - - - ) -} - -export default App diff --git a/dashboard_backup/src/api/client.js b/dashboard_backup/src/api/client.js deleted file mode 100644 index 14153f672d4654909dea1d882699bbb345472621..0000000000000000000000000000000000000000 --- a/dashboard_backup/src/api/client.js +++ /dev/null @@ -1,72 +0,0 @@ -import axios from 'axios' -import toast from 'react-hot-toast' -import { API_URL } from '../config' - -// Create custom axios instance -const apiClient = axios.create({ - baseURL: API_URL, - timeout: 30000, // 30 seconds timeout -}) - -// Add Correlation ID request interceptor -apiClient.interceptors.request.use((config) => { - config.headers['X-Correlation-ID'] = crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36).substring(7) - return config -}) - -// Add retry logic with exponential backoff response interceptor -apiClient.interceptors.response.use( - (response) => response, - async (error) => { - const config = error.config - - // Set max retries - if (!config || !config.retry) { - config.retry = 3 - config.retryCount = 0 - } - - if (config.retryCount < config.retry) { - config.retryCount += 1 - const backoff = Math.pow(2, config.retryCount) * 1000 // exponential backoff - - console.warn(`Request failed. Retrying... (${config.retryCount}/${config.retry}) in ${backoff}ms`) - - await new Promise(resolve => setTimeout(resolve, backoff)) - return apiClient(config) - } - - return Promise.reject(error) - } -) - -export const api = { - predict: async (text, language = null) => { - try { - const response = await apiClient.post(`/predict`, { text, language }) - return response.data - } catch (error) { - toast.error(error.response?.data?.detail || "Prediction failed") - throw error - } - }, - uploadBatch: async (file) => { - try { - const form = new FormData() - form.append("file", file) - const response = await apiClient.post(`/batch`, form) - return response.data - } catch (error) { - toast.error(error.response?.data?.detail || "Batch upload failed") - throw error - } - }, - getBatchStatus: async (jobId) => { - const response = await apiClient.get(`/status/${jobId}`) - return response.data - }, - getHealth: async () => { - const response = await apiClient.get(`/health`) - return response.data - } -} diff --git a/dashboard_backup/src/components/AspectHeatmap.jsx b/dashboard_backup/src/components/AspectHeatmap.jsx deleted file mode 100644 index 2bf5f0f916c186b4866ee634c6c1d8b6c16419fd..0000000000000000000000000000000000000000 --- a/dashboard_backup/src/components/AspectHeatmap.jsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react' -import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, Cell } from 'recharts' - -export default function AspectHeatmap({ data }) { - // Mock data if none provided - const chartData = data || [ - { aspect: 'food', positive: 120, negative: 30, neutral: 10, conflict: 5 }, - { aspect: 'service', positive: 50, negative: 80, neutral: 20, conflict: 15 }, - { aspect: 'price', positive: 40, negative: 60, neutral: 15, conflict: 5 }, - { aspect: 'ambience', positive: 90, negative: 10, neutral: 5, conflict: 2 }, - { aspect: 'staff', positive: 60, negative: 40, neutral: 10, conflict: 8 }, - ] - - return ( -
-

Top Aspects by Sentiment

- - - - - - - - - - - - - -
- ) -} diff --git a/dashboard_backup/src/components/LanguagePie.jsx b/dashboard_backup/src/components/LanguagePie.jsx deleted file mode 100644 index a0113aafa908b4de829684e99a04abb49382aea5..0000000000000000000000000000000000000000 --- a/dashboard_backup/src/components/LanguagePie.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react' -import { PieChart, Pie, Cell, Tooltip, Legend, ResponsiveContainer } from 'recharts' - -export default function LanguagePie({ data }) { - // Mock data if none provided - const chartData = data || [ - { name: 'English', value: 400 }, - { name: 'Hindi', value: 300 }, - { name: 'Hinglish', value: 150 }, - ] - - const COLORS = ['#3B82F6', '#F97316', '#10B981'] - - return ( -
-

Language Distribution

- - - - {chartData.map((entry, index) => ( - - ))} - - - - - -
- ) -} diff --git a/dashboard_backup/src/components/Layout.jsx b/dashboard_backup/src/components/Layout.jsx deleted file mode 100644 index ece9cc25da13f5d3a6549594cbe6c8cd7a85cff4..0000000000000000000000000000000000000000 --- a/dashboard_backup/src/components/Layout.jsx +++ /dev/null @@ -1,106 +0,0 @@ -import React, { useState } from 'react' -import { Outlet, useLocation } from 'react-router-dom' -import { Toaster } from 'react-hot-toast' -import Sidebar, { MSIcon } from './Sidebar' - -const PAGE_TITLES = { - '/predict': 'Live Predictor', - '/batch': 'Batch Analytics', - '/monitor': 'System Monitor', -} - -export default function Layout() { - const [sidebarOpen, setSidebarOpen] = useState(false) - const location = useLocation() - const pageTitle = PAGE_TITLES[location.pathname] || 'SentimentAI' - - return ( -
- - - setSidebarOpen(false)} /> - - {/* Right of sidebar */} -
- {/* Top bar */} -
- {/* Mobile hamburger + brand */} -
- -
- - SentimentAI -
-

- {pageTitle} -

-
- - {/* Right actions */} -
- - - - API Docs - - {/* Avatar placeholder */} -
- -
-
-
- - {/* Page content */} -
-
- -
-
- - {/* Footer */} -
- SentimentAI — Phase 6 Analytics Dashboard -
-
-
- ) -} diff --git a/dashboard_backup/src/components/LivePredictor.jsx b/dashboard_backup/src/components/LivePredictor.jsx deleted file mode 100644 index 7b10082f043bf0b9688f8737bb9cb35ce6b4e28b..0000000000000000000000000000000000000000 --- a/dashboard_backup/src/components/LivePredictor.jsx +++ /dev/null @@ -1,297 +0,0 @@ -import React, { useState } from 'react' -import { useMutation } from '@tanstack/react-query' -import { api } from '../api/client' -import { MSIcon } from './Sidebar' - -const MAX_CHARS = 512 - -// ── Helpers ────────────────────────────────────────────────────────────────── - -function sentimentBadgeClass(s) { - switch (s) { - case 'positive': return 'badge-positive' - case 'negative': return 'badge-negative' - case 'conflict': return 'badge-error' - default: return 'badge-neutral' - } -} - -function highlightClass(s) { - switch (s) { - case 'positive': return 'highlight-positive' - case 'negative': return 'highlight-negative' - case 'conflict': return 'highlight-negative' - default: return 'highlight-neutral' - } -} - -function confidenceBarColor(s) { - if (s === 'positive') return 'bg-tertiary' - if (s === 'negative' || s === 'conflict') return 'bg-error' - return 'bg-outline' -} - -function sentimentDot(s) { - if (s === 'positive') return 'bg-tertiary' - if (s === 'negative' || s === 'conflict') return 'bg-error' - return 'bg-outline' -} - -// Build annotated text spans from API response -function AnnotatedText({ text, aspects }) { - if (!aspects || aspects.length === 0) { - return

{text}

- } - - const sorted = [...aspects].sort((a, b) => a.start - b.start) - const parts = [] - let cursor = 0 - - sorted.forEach((asp, i) => { - if (asp.start > cursor) { - parts.push({text.slice(cursor, asp.start)}) - } - parts.push( - - {text.slice(asp.start, asp.end)} - - ) - cursor = asp.end - }) - - if (cursor < text.length) parts.push({text.slice(cursor)}) - - return

{parts}

-} - -// ── Skeleton ───────────────────────────────────────────────────────────────── -function Skeleton({ className = '' }) { - return ( -
- ) -} - -// ── Empty / Loading state for results panel ────────────────────────────────── -function ResultsEmpty() { - return ( -
- - psychology - -

Enter a review and click Analyze to see results

-
- ) -} - -function ResultsLoading() { - return ( -
-
- - - -
- {[1, 2, 3].map(i => ( -
-
- - -
- -
- ))} -
- ) -} - -// ── Aspect Card ─────────────────────────────────────────────────────────────── -function AspectCard({ asp }) { - const pct = Math.round(asp.confidence * 100) - return ( -
-
- {asp.aspect} - - - {asp.sentiment} - -
-
- Confidence -
-
-
- {pct}% -
-
- ) -} - -// ── Main Component ──────────────────────────────────────────────────────────── -export default function LivePredictor() { - const [text, setText] = useState('') - const [language, setLanguage] = useState('') - - const mutation = useMutation({ - mutationFn: (data) => api.predict(data.text, data.language || null), - }) - - const handlePredict = () => { - if (!text.trim()) return - mutation.mutate({ text, language }) - } - - const handleKeyDown = (e) => { - if ((e.metaKey || e.ctrlKey) && e.key === 'Enter') handlePredict() - } - - const data = mutation.data - - return ( -
- {/* ── Left: Input ─────────────────────────────────────── */} -
-
- {/* Card header */} -
-

- Analyze Input -

-
- - -
-
- - {/* Textarea */} -
- -